inferred from GitHub
PatientSimulationSystem
This is a clinical patient communication training system
Core trick
Patient-persona LLM turns carry an emotion state that selects the emotional TTS voice, while speech recognition transcribes the trainee's replies.
Evidence
README matched "Opus 4.7 hackathon": Built in three days for the Opus 4.7 hackathon by a medical-doctor-turned-software-engineer ([@bedriyan](https://github.com/bedriyan)), using Claude Code with Opus 4.7.
flyinghello/PatientSimulationSystem★ 12 forksTypeScriptCreated Aug 24, 2026 · last push Sep 20, 2026
README excerpt
# PatientSimulationSystem 欢迎!这是一套面向 **CRC(临床研究协调员)受试者沟通** 的沉浸式训练系统。 你在浏览器里进入 3D 随访诊室,与「虚拟受试者」面对面沟通——可以用语音,也可以打字。受试者会带着顾虑、情绪和理解偏差回应你;练完后可用于复盘沟通质量(知情同意、依从性、不良事件等场景)。 > 训练用病例与对话均为**合成数据**,不构成真实临床或入组建议。 --- ## 这是什么 在真实入组前沟通里,CRC 需要把方案讲清楚,同时接住受试者的担心、追问和不信任。本系统把这段对话放进可重复练习的模拟器: | 你扮演 | 系统扮演 | |--------|----------| | CRC / 随访沟通者 | 带画像与状态的受试者(LLM + 语音) | **适合谁用** - 临床研究协调员、CRA 相关培训 - 医学 / 药学沟通训练、课程演示 - 需要「可说话的患者」做产品原型的团队 **你能练到什么** - 入组前答疑:到院安排、安慰剂、给药频次、随访负担… - 应对犹豫、恐惧、不满,以及 CRC 冷漠敷衍时的受试者反应 - 语音与文字双通道;受试者语气随「当前情绪」变化(火山多情感 TTS) --- ## 两条训练轨 - **主轨 · 试药前 / 受试者沟通**(推荐) medkit **3D 诊室** + CRC **PatientTurn** 多轮逻辑 + **火山** ASR/TTS(中文) - **旧项目 · ER / 全科** 原 medkit 急诊 / 全科漫游 + **LiveKit** 语音链路(需额外密钥与进程) 首页选对应的「门」即可切换。 --- ## 快速启动(CRC 主轨) 需要两个进程。在项目根目录打开两个终端: ### 1. CRC 对话后端(端口 8790) ```powershell python front/server.py ``` ### 2. 3D 前端(端口 5173) ```powershell npm install npm run dev ``` 浏览器打开:http://127.0.0.1:5173 首页选门 **「试药前 / 受试者沟通」** → 选角色卡 → 进入随访诊室。 > CRC 主轨**不需要** LiveKit,也**不需要** `8787` 后端。 ### 环境变量 在项目根目录 `.env` 中配置(勿提交到 Git): | 变量 | 用途 | |------|------| | `VOLC_API_KEY` | 火山 ASR / TTS | | `TEXT_GENERATION_API_KEY` | 患者回合 LLM(PatientTurn) | 可选: | 变量 | 用途 | |------|------| | `VOLC_TTS_SPEAKER` | TTS 音色 ID(默认高冷御姐多情感音色) | --- ## 预设账号 首次启动后端时会自动创建以下演示账号(`service/accounts/store.py`),密码仅存 PBKDF2 加盐哈希: | 账号 | 密码 | 角色 | |------|------|------| | `admin` | `admin123` | 管理员 | | `staff` | `staff123` | 带教老师 | | `student` | `student123` | 学生 | --- ## 诊室里怎