Преглед изворни кода

docs: 设计移动端患者服务台原型

WangKang пре 2 недеља
родитељ
комит
dafe9103d9

+ 658 - 0
docs/initiatives/FEAT-202606-001-unified-entry-client/design/患者服务台移动端原型设计.md

@@ -0,0 +1,658 @@
+---
+doc_id: DES-202607-001
+feature_id: FEAT-202606-001-unified-entry-client
+type: design
+title: 统一入口客户端患者服务台移动端原型设计
+status: draft
+owner: 医梦研发团队
+created_at: 2026-07-02
+updated_at: 2026-07-02
+reviewers:
+  - 产品负责人
+  - 业务负责人
+  - 终端负责人
+related_docs:
+  - PRD-202606-001
+  - ODS-202606-002
+  - ADR-202606-001
+related_modules:
+  - emoon-terminal-client
+  - emoon-openplatform
+  - emoon-ai-agent
+  - emoon-ai-command
+  - emoon-ai-mcp
+  - emoon-ai-device
+tags:
+  - 统一入口客户端
+  - 患者服务台
+  - 移动端
+  - 事件驱动
+  - TaskState
+  - Command Runtime
+source:
+  - Open Design 统一入口客户端 v2 原型
+  - 蚂蚁阿福业务介绍与报告接入资料
+---
+
+# 统一入口客户端患者服务台移动端原型设计
+
+## 1. 文档定位
+
+本文定义统一入口客户端从院内 16:9 三栏演示原型升级为患者手机端
+小程序/H5“患者服务台”的产品结构、页面范围、交互状态和方案演示主线。
+
+本设计以 `codex/feat-202606-006-agent-semantic-interaction` 分支中正在开发的
+Agent 语义交互与命令治理方案为中台依据:
+
+- `TaskState` 是患者任务事实源;
+- 医疗事件创建或更新任务;
+- FastGPT 与只读 MCP 负责查询、解释和推荐;
+- `SemanticResponse` 提供完整文本结论;
+- `Presentation` 是可选无状态展示;
+- `Command Runtime` 执行挂号、支付、签到、取消等副作用。
+
+本文是方案演示原型设计,不声明上述中台能力已经全部上线。
+
+## 2. 产品定位
+
+患者服务台是医院官方、事件驱动的患者服务入口。
+
+它不以功能宫格或聊天窗口作为产品中心,而以患者当前就医任务为中心:
+
+```text
+现在发生了什么
+→ 患者需要做什么
+→ 为什么需要处理
+→ 是否可以立即办完
+→ 完成后下一步是什么
+```
+
+产品由五类能力组成:
+
+1. 当前任务;
+2. 下一步行动;
+3. 医院服务;
+4. AI 助手;
+5. 健康档案。
+
+## 3. 设计目标
+
+1. 患者进入首页后,三秒内看懂当前最重要的事项。
+2. 报告、挂号、检查、缴费、签到、候诊和随访由事件主动触发。
+3. 用户点击和自然语言表达进入同一交互链路。
+4. 查询和解释不依赖 Card 渲染成功。
+5. 写操作具备明确影响、二次确认、执行状态和异常恢复。
+6. 保留医院品牌、入口、数据和服务运营主权。
+7. 原型能够向医院领导和客户完整演示“服务找人、即问即办”。
+
+## 4. 非目标
+
+- 不在移动端显示 BLE、NFC、L0/L1、traceId 等工程状态。
+- 不以固定 Card 链定义业务流程。
+- 不在原型中承诺无授权自动签到、自动支付或自动挂号。
+- 不把患者服务台设计成独立于医院品牌的公共医疗平台。
+- 不在本轮覆盖完整住院、慢病和区域医疗业务。
+
+## 5. 事件驱动产品模型
+
+```mermaid
+flowchart TD
+    E["医疗事件"] --> R["事件识别与任务关联"]
+    U["用户提问或点击"] --> R
+    R --> T["TaskState"]
+    T --> A["Agent + 只读 MCP"]
+    A --> S["SemanticResponse"]
+    S --> P["无状态 Presentation"]
+    T --> C["Command Runtime"]
+    C --> E2["业务结果事件"]
+    E2 --> T
+```
+
+### 5.1 事件原则
+
+事件只表达已经发生的事实,不直接代表患者授权或业务执行。
+
+例如:
+
+- `REPORT_ISSUED` 表示报告已经出具,不表示患者同意 AI 解读;
+- `CHECKIN_AVAILABLE` 表示当前可以签到,不表示系统自动签到;
+- `PAYMENT_PENDING` 表示存在待缴费用,不表示允许自动支付;
+- `QUEUE_UPDATED` 表示候诊队列发生变化,不改变挂号事实。
+
+### 5.2 TaskState 原则
+
+首页、就医旅程和 AI 对话引用同一 TaskState。
+
+TaskState 至少表达:
+
+- 任务类型;
+- 当前状态;
+- 当前阶段;
+- 完成条件;
+- 下一步允许动作;
+- 关联业务对象;
+- 有效时间;
+- 是否需要患者确认。
+
+### 5.3 Presentation 原则
+
+医生、号源、报告摘要、费用和路线等 Card 只负责提高可读性。
+
+Presentation:
+
+- 不创建业务事实;
+- 不推进 TaskState;
+- 不保存可信写参数;
+- 失败时不阻塞文本或语音;
+- 点击后以稳定引用重新提交 interaction。
+
+### 5.4 Command 原则
+
+挂号、支付、取消等不可逆或收费操作必须通过 Command Runtime。
+
+移动端只允许:
+
+- 查看确认摘要;
+- 确认;
+- 拒绝;
+- 查询执行状态。
+
+移动端不得自行构造金额、患者、号源或医院系统参数。
+
+## 6. 信息架构
+
+底部使用五个一级导航:
+
+| 导航 | 主要内容 |
+|---|---|
+| 首页 | 当前任务、今日旅程、常用服务和主动关怀 |
+| 就医 | 门诊、检查、住院、随访任务总览 |
+| AI 助手 | 查询、解释、推荐和服务办理入口 |
+| 健康档案 | 报告、处方、病历、过敏史和健康趋势 |
+| 我的 | 就诊人、授权、消息、隐私和帮助 |
+
+AI 助手位于底部中间,可提高识别度,但首页任务仍是首要入口。
+
+## 7. 首页设计
+
+首页按以下顺序组织。
+
+### 7.1 身份与医院
+
+- 医院 Logo 和名称;
+- 当前院区;
+- 当前就诊人;
+- 家庭就诊人切换;
+- 消息中心;
+- 隐私模式。
+
+### 7.2 AI 欢迎区
+
+推荐文案:
+
+```text
+张先生,上午好
+今天有 2 项就医事项需要处理
+```
+
+提供轻量输入入口:
+
+```text
+问病情、查报告、找医生、办就医服务
+```
+
+医生助手形象只作为头像或局部陪伴形象,不占据首页主要空间。
+
+### 7.3 现在要做
+
+任务按以下优先级排列:
+
+1. 立即处理;
+2. 今天处理;
+3. 进行中;
+4. 即将开始;
+5. 已完成。
+
+任务卡必须回答:
+
+- 发生了什么;
+- 为什么需要处理;
+- 建议做什么;
+- 主操作;
+- 次操作;
+- 紧急程度或有效时间。
+
+示例:
+
+```text
+血常规报告已出
+发现 3 项指标需要关注
+[查看报告] [AI 解读]
+```
+
+```text
+神经内科可以签到
+您已到达门诊三楼,距预约时间还有 20 分钟
+[确认签到] [查看路线]
+```
+
+### 7.4 今日就医旅程
+
+首页只显示当前节点及前后相邻节点:
+
+```text
+09:10 到院
+09:20 神经内科签到
+09:30 候诊
+10:05 医生接诊
+10:30 检验检查
+11:20 报告出具
+```
+
+点击后进入完整就医旅程。
+
+### 7.5 常用服务
+
+首屏最多展示八项:
+
+- 预约挂号;
+- 智能导诊;
+- 报告查询;
+- 门诊缴费;
+- 检查预约;
+- 住院服务;
+- 院内导航;
+- 在线问诊。
+
+其余能力进入全部服务。
+
+### 7.6 主动关怀
+
+- 报告异常提示;
+- 用药提醒;
+- 检查准备;
+- 复诊提醒;
+- 出院随访;
+- 慢病任务;
+- 健康宣教。
+
+## 8. 就医模块
+
+### 8.1 总览
+
+按任务状态组织:
+
+- 待办理;
+- 进行中;
+- 已完成;
+- 需要人工处理。
+
+### 8.2 门诊
+
+- 智能导诊;
+- 科室、医生和号源查询;
+- 挂号和支付;
+- 到院提醒;
+- 签到;
+- 候诊动态;
+- 院内导航;
+- 诊后小结;
+- 处方和取药;
+- 复诊预约。
+
+### 8.3 检查检验
+
+- 检查预约;
+- 检查须知;
+- 检查准备提醒;
+- 检查位置导航;
+- 排队状态;
+- 报告生成提醒;
+- 报告查看;
+- AI 报告解读;
+- 历史趋势对比。
+
+### 8.4 住院与随访
+
+作为后续扩展:
+
+- 入院办理;
+- 床位和病区信息;
+- 住院待办;
+- 医嘱和检查提醒;
+- 住院费用;
+- 出院办理;
+- 出院小结解读;
+- 出院随访。
+
+## 9. AI 助手
+
+### 9.1 场景入口
+
+- 帮我看报告;
+- 我该挂哪个科;
+- 帮我找医生;
+- 今天下一步做什么;
+- 检查前需要准备什么;
+- 这笔费用是什么。
+
+### 9.2 对话规则
+
+- 已知信息不重复询问;
+- 可信结果来自只读 MCP;
+- 无精确结果时提供受控替代方案;
+- 插入普通问题不丢失当前任务;
+- 切换任务时明确提示;
+- Card 失败不影响文本回答。
+
+### 9.3 可选展示
+
+- 医生候选;
+- 号源候选;
+- 报告摘要;
+- 异常指标;
+- 费用明细;
+- 路线;
+- 检查须知;
+- 趋势图。
+
+### 9.4 Command 确认
+
+统一确认层包含:
+
+- 操作名称;
+- 医院业务对象;
+- 患者;
+- 金额;
+- 有效期;
+- 风险提示;
+- 确认和拒绝。
+
+必须覆盖以下状态:
+
+- 准备中;
+- 待确认;
+- 执行中;
+- 成功;
+- 失败;
+- 已过期;
+- 结果确认中;
+- 已拒绝。
+
+`UNKNOWN` 状态显示“结果确认中,请勿重复操作”。
+
+## 10. 报告解读演示主线
+
+### 10.1 报告事件到达
+
+收到 `REPORT_ISSUED` 后:
+
+- 消息中心出现新消息;
+- 首页新增任务;
+- AI 助手显示未处理提示;
+- 不自动发起 AI 解读。
+
+### 10.2 患者授权
+
+首次解读展示:
+
+- 数据用途;
+- 使用范围;
+- 有效期;
+- AI 辅助性质;
+- 风险说明;
+- 撤回方式。
+
+操作:
+
+- 同意并继续;
+- 暂不授权。
+
+### 10.3 报告详情
+
+- 医院和报告信息;
+- 最终审核状态;
+- 异常指标;
+- 全部指标;
+- 原始报告;
+- 历史趋势;
+- AI 解读入口。
+
+### 10.4 AI 解读
+
+结果分为五层:
+
+1. 一句话总结;
+2. 需要重点关注;
+3. 异常指标解释;
+4. 常见相关因素;
+5. 下一步建议。
+
+患者端不得输出确定性诊断。
+
+### 10.5 后续服务
+
+- 预约相关科室;
+- 在线咨询;
+- 查看复查建议;
+- 设置复查提醒;
+- 联系人工服务。
+
+点击预约后创建或切换到挂号 TaskState,不继续使用报告 Card 串流程。
+
+## 11. 健康档案
+
+- 检验报告;
+- 检查报告;
+- 门诊记录;
+- 住院记录;
+- 处方与用药;
+- 过敏史;
+- 慢病指标;
+- 健康趋势;
+- 授权记录。
+
+报告支持:
+
+- 时间和类型筛选;
+- 未读和已解读状态;
+- 异常优先;
+- 历史趋势比较。
+
+## 12. 我的
+
+- 就诊人管理;
+- 家庭关系;
+- 授权中心;
+- 数据使用记录;
+- 消息设置;
+- 常用医院和院区;
+- 医保和支付;
+- 电子票据;
+- 人工客服;
+- 意见反馈;
+- 关于 AI;
+- 演示控制台。
+
+## 13. 事件与客户端响应
+
+| 事件 | TaskState 变化 | 客户端响应 |
+|---|---|---|
+| 报告出具 | 创建报告任务 | 首页任务和消息 |
+| 报告更正 | 原结果失效 | 强提醒重新查看 |
+| 挂号成功 | 进入待到院 | 今日旅程和提醒 |
+| 到达医院 | 进入院内服务 | 路线和签到建议 |
+| 可签到 | 进入待确认 | 签到确认 |
+| 队列变化 | 更新等待状态 | 人数和预计时间 |
+| 待缴费 | 创建缴费任务 | 费用和支付入口 |
+| 支付状态未知 | Command UNKNOWN | 禁止重复支付 |
+| 处方完成 | 创建取药任务 | 药房路线和提醒 |
+| 出院完成 | 创建诊后任务 | 小结和随访 |
+| 随访到期 | 创建随访任务 | 首页待办和问卷 |
+
+## 14. 视觉设计
+
+### 14.1 保留
+
+- 深蓝 `#2B1F99`;
+- 青色 `#3AD4D8`;
+- 医生助手形象;
+- 圆角卡片;
+- 成功、异常、加载和断连状态。
+
+### 14.2 重构
+
+| 现有原型 | 新版患者服务台 |
+|---|---|
+| 16:9 三栏 | 单列手机布局 |
+| 中央聊天主导 | 首页任务主导 |
+| 技术感知矩阵 | 患者可理解的主动服务 |
+| 底部通知条 | 消息中心 |
+| 六步 Card 链 | TaskState + Presentation + Command |
+| 多区域同时展示 | 一屏一个主要行动 |
+| Emoji 图标 | 统一医疗线性图标 |
+| 工程错误信息 | 患者语言和可展开详情 |
+
+### 14.3 风格
+
+采用“医院可信感 + AI 轻智能感”:
+
+- 白色和极浅蓝背景;
+- 深蓝表达可信和关键操作;
+- 青色表达 AI、进行中和服务提醒;
+- 红色只用于真正高风险;
+- 不使用大面积科技渐变和发光;
+- 任务行动优先于装饰。
+
+## 15. 原型页面范围
+
+完整方案包含 18 个主要页面或状态:
+
+1. 首页空闲态;
+2. 首页多任务态;
+3. 报告到达;
+4. 报告授权;
+5. 报告详情;
+6. AI 解读加载;
+7. AI 解读结果;
+8. 后续服务;
+9. AI 助手首页;
+10. 自然语言挂号;
+11. 号源候选;
+12. 挂号确认;
+13. 挂号执行中;
+14. 挂号成功;
+15. 到院可签到;
+16. 候诊动态;
+17. 支付结果确认中;
+18. 网络异常和恢复。
+
+## 16. 方案演示脚本
+
+主故事线:
+
+```text
+患者进入首页
+→ 报告事件到达
+→ 患者授权
+→ AI 解读
+→ 推荐复诊
+→ 自然语言查询号源
+→ 确认挂号
+→ 到院主动提示签到
+→ 候诊状态更新
+```
+
+演示重点:
+
+1. 首页随事件变化,而不是静态宫格;
+2. AI 解读不自动发生,患者先授权;
+3. 挂号不再重复走科室、医生、时间 Card 链;
+4. 写操作进入统一 Command 确认;
+5. 挂号成功继续产生到院和签到任务;
+6. 展示 Card 关闭后,文本和任务仍能工作。
+
+## 17. 现有原型迁移
+
+### 17.1 保留
+
+- 医生助手视觉资产;
+- 品牌色;
+- 对话气泡;
+- 加载、失败、成功和断连;
+- 挂号确认摘要;
+- 就医旅程概念。
+
+### 17.2 重构
+
+- `idle-v2.html` 重构为患者服务台首页;
+- `chat-card-v2.html` 重构为 TaskState 驱动的 AI 助手;
+- `card-confirm-v2.html` 重构为通用 Command 确认层;
+- 成功页重构为任务结果和下一任务;
+- 右侧动线重构为移动端今日旅程。
+
+### 17.3 删除或隐藏
+
+- Card 链进度;
+- BLE、NFC、L0/L1 技术标签;
+- 手表连接作为主要内容;
+- 患者可见 Mock 和 traceId;
+- 自动代替患者签到的表述;
+- CSS 模拟二维码;
+- 固定头痛挂号线性流程。
+
+## 18. 迭代优先级
+
+### P0 方案演示
+
+- 移动端首页;
+- 当前任务;
+- 报告事件;
+- 报告授权;
+- 报告解读;
+- AI 助手;
+- 自然语言挂号;
+- Command 确认;
+- 主动签到提示。
+
+### P1 完整门诊
+
+- 缴费;
+- 检查预约;
+- 候诊;
+- 处方取药;
+- 导航;
+- 消息中心;
+- 家庭就诊人。
+
+### P2 住院和健康管理
+
+- 住院服务;
+- 出院小结;
+- 随访;
+- 慢病;
+- 健康趋势;
+- 多报告联合分析。
+
+## 19. 原型验收标准
+
+1. 首页第一屏清晰展示最高优先级任务和下一步。
+2. 报告事件能够驱动首页任务变化。
+3. 报告解读前存在明确授权。
+4. AI 解读结果不输出确定性诊断。
+5. 完整挂号条件不再重复选择已知信息。
+6. 号源候选是无状态展示,不作为任务事实。
+7. 最终挂号通过 Command 确认。
+8. Command UNKNOWN 明确禁止重复操作。
+9. 挂号完成后出现新的到院和签到任务。
+10. Card 隐藏或失败不影响文本结论和任务状态。
+11. 页面不向患者暴露 BLE、NFC、traceId 和 Mock 等工程信息。
+12. 手机端关键操作可单手完成,主按钮不依赖横向布局。
+
+## 20. 生命周期说明
+
+`FEAT-202606-006-agent-semantic-interaction` 已完成设计评审并进入开发,
+本设计可以采用其目标协议作为原型依据。
+
+本设计仍为患者服务台原型 `draft`。完成页面线框、视觉稿和交互走查后,
+再更新为 `reviewing`;不得仅凭方案演示稿声明移动端已经实现。

+ 16 - 1
docs/initiatives/FEAT-202606-001-unified-entry-client/专题索引.md

@@ -4,7 +4,7 @@ title: 统一入口客户端
 status: implemented
 owner: 医梦研发团队
 created_at: 2026-06-17
-updated_at: 2026-06-17
+updated_at: 2026-07-02
 tags:
   - 统一入口客户端
   - 挂号演示
@@ -35,6 +35,21 @@ tags:
 | 开发进度 | `DEV-202606-002` | [Terminal Web Demo Implementation Plan](dev-progress/终端Web演示实施计划.md) | implemented |
 | 开发进度 | `DEV-202606-003` | [Unified Entry Registration Demo Implementation Plan](dev-progress/统一入口挂号演示实施计划.md) | implemented |
 | UI 设计 | `DES-202606-001` | [Terminal Web Demo Design](design/终端Web演示设计.md) | approved |
+| 移动端原型设计 | `DES-202607-001` | [患者服务台移动端原型设计](design/患者服务台移动端原型设计.md) | draft |
+
+## 患者服务台迭代
+
+统一入口客户端下一阶段从院内 16:9 多终端演示,扩展到患者手机端小程序/H5。
+移动端采用事件驱动的任务型患者服务台,以正在开发的
+`FEAT-202606-006-agent-semantic-interaction` 为中台设计依据:
+
+- 医疗事件创建或更新患者任务;
+- TaskState 是当前任务事实源;
+- 查询和解释使用只读 MCP;
+- Presentation 只负责无状态展示;
+- 挂号、支付、签到和取消等副作用通过 Command Runtime 执行。
+
+本阶段先完成方案演示原型,不改变既有终端客户端实现状态。
 
 ## 关联代码模块