# 07|P0 客户端总交互流程
> 产品:医梦患者智能服务门户(内部代号 Adjutant)
>
> 范围:单医院、固定 Mock 患者、三个智能体、语音优先。
>
> 本图目的:让产品、设计、FastGPT、MCP 与测试人员对“患者从哪里进入、如何完成任务、结果回到哪里”形成同一理解。

## 1. 一张图看懂完整闭环
```mermaid
flowchart LR
subgraph ENTRY["① 发现与唤起"]
E1["首页统一语音入口
不知道用什么服务"]
E2["首页 / 服务中心卡片
明确选择某项服务"]
E3["患者状态与待办
继续未完成任务"]
E4["健康记录 / 业务内嵌
查看结果或再次办理"]
end
subgraph START["② 路由与任务启动"]
G["统一助手 / 任务启动器
识别意图 · 加载医院和患者上下文
医疗安全前置判断"]
D{"如何进入任务?"}
D1["明确能力
直接创建任务"]
D2["自然语言诉求
确认目标服务后创建任务"]
D3["已有 taskId
恢复原任务状态"]
end
subgraph SHELL["③ 统一对话式任务界面"]
S1["最近 1–2 轮对话
患者原话 + 助手理解"]
S2["已收集信息
显示完整度、缺失项和修改入口"]
S3["当前唯一任务
一次只追问或处理一件事"]
S4["语音主输入
文字备选 + 快捷选项"]
S5["完整性与安全检查
通过后才查询或执行"]
S6["操作记录
可展开查看转写、规则和工具调用"]
end
subgraph AGENTS["④ 三个 P0 智能体"]
R["智能分诊挂号
急诊门禁 → 挂号补槽
号源选择 → 独立确认
Mock 锁号 / 挂号 / 支付"]
P["报告智能解读
选择或上传 → 归属确认
质量 / 风险检查
结构化解读"]
T["中医舌诊
体质症候问答 → 舌象采集
调用现有舌诊 MCP
融合评估结果"]
end
X["共同异常与恢复
信息不足继续追问 · 图片重传 · 工具重试
医疗风险中止普通流程 · 必要时转人工"]
subgraph RETURN["⑤ 结果与患者状态回流"]
U["统一结果组件
成功、风险、失败和行动建议"]
H["健康记录
保存完成结果与未完成任务"]
W["首页状态与待办
预约、新报告、继续舌诊、失败重试"]
end
E1 --> G
E2 --> G
E3 --> G
E4 --> G
G --> D
D --> D1
D --> D2
D --> D3
D1 --> S1
D2 --> S1
D3 --> S1
S1 --> S2 --> S3 --> S4 --> S5
S6 -.过程留痕.-> S5
S5 --> R
S5 --> P
S5 --> T
R --> U
P --> U
T --> U
R -.异常.-> X
P -.异常.-> X
T -.异常.-> X
X -.恢复任务.-> S3
U --> H --> W
W -.继续或发起新任务.-> G
```
## 2. 五段交互分别解决什么问题
| 阶段 | 患者看到什么 | 产品需要保证什么 |
|---|---|---|
| 发现与唤起 | 语音入口、服务卡、待办、健康记录 | 三项服务可发现,但患者不需要理解“智能体” |
| 路由与启动 | 系统确认准备办理的事情 | 多个入口调用同一能力;风险信号优先于普通业务 |
| 对话式任务界面 | 最近对话、已收集信息、当前追问 | 语音负责表达和补槽,卡片负责检查、修改与确认 |
| 三智能体任务 | 挂号、报告、舌诊各自的专业流程 | 共享任务壳,但不把三种业务混在一个大对话线程里 |
| 结果与回流 | 结果详情、健康记录、首页待办 | 完成结果可回看,未完成或失败任务可继续 |
## 3. 三类入口如何进入同一任务
### 3.1 统一语音入口
适合患者不知道该选择什么服务。
```text
患者说出诉求
→ 语音转文字并回显
→ 识别挂号 / 报告 / 舌诊意图
→ 医疗风险前置判断
→ 告知准备进入的服务
→ 患者确认
→ 创建具体任务并带入已识别信息
```
例如:
> “我头疼,帮我挂神经内科明天早上九点的专家号。”
系统进入挂号任务,并直接展示已得到的科室、日期、时间、号别;只追问缺失的医生信息。
### 3.2 服务卡片入口
适合患者已经知道要使用哪项服务。
```text
点击服务卡
→ capabilityCode 已确定
→ 进入该智能体的语音任务起点
→ 患者用一句话表达完整或部分诉求
```
服务卡不会跳过对话式任务壳,也不会直接进入一组静态表单。
### 3.3 状态、待办与健康记录入口
适合恢复任务或查看结果。
| 记录状态 | 点击后的动作 |
|---|---|
| `WAITING_USER` | 恢复最近对话、已收集信息和当前缺失项 |
| `PROCESSING` | 回到分析或执行进度页 |
| `COMPLETED` | 打开业务结果详情 |
| `FAILED` | 展示失败原因,允许保留上下文重试 |
| `TRANSFERRED` | 展示急诊、人工或线下处理指引 |
## 4. 统一对话式任务界面
三个智能体共用六个区域:
1. **任务标题**:明确当前正在办理挂号、报告解读或舌诊;
2. **最近对话**:保留最近 1–2 轮患者原话和助手理解;
3. **已收集信息**:持续显示业务字段、完整度和缺失项;
4. **当前任务**:一次只追问一个问题,或要求患者完成一个动作;
5. **输入与操作**:语音为主,文字、快捷选项、上传和标准卡片为辅;
6. **操作记录**:默认折叠,患者可查看转写、规则判断和工具步骤。
```text
语音表达
→ 回显患者原话
→ 展示助手理解
→ 更新已收集信息
→ 高亮当前缺失项
→ 语音 / 文字 / 选项补充
→ 完整性与安全检查
→ 进入查询、分析或确认
```
关键原则:
- 不做只有聊天气泡的无限对话;
- 不隐藏患者已经说过什么;
- 已收集信息在补槽过程中持续可见;
- 患者可以修改识别错误的字段;
- 具有副作用的操作必须使用独立确认卡;
- 完成后保存业务记录,不建立“机器人会话列表”。
## 5. 三个智能体的主路径
### 5.1 智能分诊挂号
```text
语音描述挂号需求
→ 急诊安全门禁
→ 显示已收集的挂号条件
→ 逐项补齐缺失信息
→ 查询医生和号源
→ 选择具体号源
→ 独立确认挂号信息
→ Mock 锁号、挂号和支付
→ 挂号结果
```
必须演示:
- 一句话提供多个条件,只追问医生;
- 修改科室、日期、时间或号别;
- 胸痛和呼吸困难中止普通挂号;
- 无号源或锁号失败后保留已收集信息重新选择。
### 5.2 检验检查报告解读
```text
语音说明解读诉求
→ 展示患者和目标报告类型
→ 选择院内报告或上传文件
→ 确认归属、来源和报告状态
→ 文件质量、OCR 和风险检查
→ 生成结构化解读
→ 保存报告解读记录
```
必须演示:
- 从首页待办直接进入指定报告;
- 从语音入口进入后再选择报告;
- 图片模糊时重传;
- 风险提示优先于普通指标解释。
### 5.3 中医舌诊
```text
语音说明健康诉求
→ 展示已识别诉求
→ 完成体质与症候问答
→ 保存阶段进度
→ 舌象拍摄和图片质控
→ 调用现有舌诊 MCP
→ 融合问答与舌象结果
→ 保存中医评估记录
```
必须演示:
- 问答中断后继续;
- 图片模糊后重新拍摄;
- MCP 失败后保留问答和图片重试;
- 输出辅助评估和健康建议,不输出确诊或处方。
## 6. 结果如何回到门户
任务完成后不能只停留在对话页面:
```text
任务结果
→ 保存到健康记录
→ 首页生成或更新状态卡
→ 患者从待办、最近记录或健康记录再次进入
```
典型回流:
| 任务结果 | 健康记录 | 首页变化 |
|---|---|---|
| 挂号成功 | 新增挂号记录 | 展示明日预约和就诊提醒 |
| 报告解读完成 | 新增报告解读记录 | “待解读”变为“解读已完成” |
| 舌诊问答未完成 | 保存进行中评估 | 展示“继续完成舌诊” |
| 工具调用失败 | 保存失败原因与上下文 | 展示“任务未完成,可重试” |
| 急诊风险 | 保存分流结果和依据 | 不生成普通预约,保留急诊提示 |
## 7. P0 固定边界
- 单家指定医院;
- 固定 Mock 患者本人,不提供登录和家庭成员切换;
- 三个能力固定开通;
- 语音使用演示转写;
- 挂号与报告使用 Mock MCP;
- 舌诊调用现有 MCP;
- 不接真实 HIS、LIS、支付和消息系统;
- 所有结果和风险规则明确标记为演示数据;
- 客户端使用稳定能力编码,不直接绑定 FastGPT App ID。
能力编码:
- `SMART_REGISTRATION`
- `REPORT_INTERPRETATION`
- `TCM_TONGUE_ASSESSMENT`
## 8. 原型评审顺序
评审时按以下顺序完整演示:
1. 首页统一语音入口识别挂号诉求;
2. 挂号任务展示 5/6 已收集信息并补齐医生;
3. 查询号源、独立确认并完成 Mock 挂号;
4. 返回首页查看预约状态,再进入健康记录;
5. 从首页新报告待办进入报告解读;
6. 从服务卡进入中医舌诊并演示任务中断与恢复;
7. 演示急诊打断、报告模糊和舌诊分析失败三个异常场景。
可编辑视觉源:
- `医梦患者智能服务门户_P0客户端总交互流程.excalidraw`