Skip to content
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.

Tags

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` | 学生 |

---

## 诊室里怎