# 02|信息架构与智能服务入口 ## 1. 本文档的核心结论 三个智能体不是通过一种入口唤起,而是通过三类入口进入同一个任务能力: 1. **直接服务入口**:患者明确知道要做什么; 2. **统一助手入口**:患者只会描述问题,不知道应该使用哪个服务; 3. **状态与记录入口**:患者继续未完成任务或查看既有结果。 同一能力无论从哪里进入,都以稳定的 `capabilityCode` 启动,不创建多套工作流。 ## 2. P0 一级信息架构 ```text 首页|服务|健康记录|我的 ``` | 一级页面 | 回答的问题 | P0 主要内容 | |---|---|---| | 首页 | 我现在可以做什么? | 三项服务、统一助手、待办、最近结果 | | 服务 | 这家医院提供什么? | 就医服务、检验检查、中医服务 | | 健康记录 | 我做过什么、结果在哪里? | 挂号、报告解读、舌诊任务 | | 我的 | 当前服务对象和演示环境是什么? | Mock 患者、医院信息、隐私与演示说明 | 一级导航固定,不因医院开通的能力变化而改变。P0 只有一家医院和三个能力,但仍采用该结构,为 P1 动态装配保留产品骨架。 ## 3. 首页布局优先级 ```text 医院品牌 + 当前患者 ↓ 状态/待办(有则出现) ↓ 统一助手入口 ↓ 三项核心服务 ↓ 最近记录 ↓ 底部导航 ``` P0 首次进入时,三项服务必须同时可见或在首屏内可快速触达,不能把所有入口隐藏在统一助手背后。 ## 4. 三类入口的统一启动协议 ```mermaid flowchart LR A["服务卡直达"] --> L["Launch Request"] B["统一助手路由"] --> C["识别意图 / 风险"] C --> D["患者确认目标服务"] D --> L E["待办 / 健康记录"] --> L L --> G["capabilityCode"] G --> T["创建或恢复 Task"] T --> P["进入独立任务页"] ``` 建议启动参数: ```json { "hospitalId": "DEMO_HOSPITAL_001", "operatorId": "DEMO_USER_001", "subjectPatientId": "DEMO_PATIENT_001", "relationType": "SELF", "capabilityCode": "SMART_REGISTRATION", "entrySource": "HOME_SERVICE_CARD", "taskId": null, "input": { "type": "QUICK_ACTION", "content": "SYMPTOM_TRIAGE" }, "context": { "mock": true, "reportId": null, "currentPage": "HOME" } } ``` ## 5. 入口一:直接服务卡 适合患者目标明确时使用。 ### 首页卡片文案 | 能力 | 主标题 | 说明 | 主按钮 | |---|---|---|---| | 挂号 | 智能分诊挂号 | 描述症状,推荐科室并完成预约 | 开始分诊 | | 报告 | 报告智能解读 | 上传检验检查报告,查看异常与建议 | 上传报告 | | 舌诊 | 中医舌诊 | 完成体质问答并拍摄舌象 | 开始评估 | ### 点击后的行为 直接进入具体任务页,不需要先经过通用聊天欢迎语。 ```text 点击“开始分诊” → 打开“智能分诊挂号” → 展示两种开始方式: 1. 描述症状,帮我找科室 2. 我知道科室,直接找号 → 创建挂号任务 ``` ```text 点击“上传报告” → 打开“报告智能解读” → 展示上传/选择示例报告 → 创建报告解读任务 ``` ```text 点击“开始评估” → 打开“中医舌诊” → 展示服务边界和预计步骤 → 点击同意后开始体质问答 ``` ## 6. 入口二:统一助手 统一助手适合患者目标不明确、只会自然描述时使用。 ### 首页入口形态 ```text 描述您的症状,或告诉我想办理什么 [输入文字] [按住说话] [上传报告/图片] ``` ### 统一助手只做四件事 1. 理解用户需求; 2. 识别多意图和医疗风险; 3. 确认要启动的目标服务; 4. 将已有输入作为上下文交给具体任务。 ### 路由示例 | 患者输入 | 系统动作 | |---|---| | “我头疼三天,不知道挂什么科” | 确认进入智能分诊挂号,并携带主诉 | | “我胸痛还喘不过气,想挂明天心内科” | 先触发急症风险筛查,不直接挂号 | | “帮我看一下这份血常规” + 图片 | 确认报告归属后进入报告解读 | | “我想看看自己的中医体质” | 确认进入中医舌诊 | | “我要看皮肤科医生,同时帮我看报告” | 展示两个任务选择,先完成一个,不在同一线程并行 | | 当前医院未开通能力 | P0 不出现;P1 提示该服务暂不可用并提供替代入口 | ### 从助手切换到任务 ```text 助手: “我理解您希望根据头痛症状选择科室并预约。 在继续前,我需要先确认是否存在需要尽快就医的情况。” [开始智能分诊] [重新描述] ``` 患者确认后: - 页面标题切换为“智能分诊挂号”; - 创建独立 `taskId`; - 将“头痛三天”作为已收集信息; - 通用助手会话结束,不继续承载后续挂号步骤。 ## 7. 入口三:状态、待办和健康记录 适合继续任务或回看结果。 ### 首页待办 ```text 待完成 中医舌诊:问答已完成,待上传舌象 [继续评估] ``` ```text 新结果 血常规解读已完成,发现 3 项异常 [查看结果] ``` ### 健康记录 ```text 全部|挂号|报告|中医 ``` 每条记录包含: - 服务名称; - 时间; - 任务状态; - 结果摘要; - 继续或查看按钮。 记录点击规则: | 状态 | 点击后 | |---|---| | `WAITING_USER` | 恢复到上次等待的交互步骤 | | `PROCESSING` | 打开进度页 | | `COMPLETED` | 打开结果详情 | | `FAILED` | 打开失败说明和重试入口 | | `CANCELLED` | 只读详情,可重新发起 | ## 8. 三项服务的入口矩阵 | 入口位置 | 挂号 | 报告解读 | 中医舌诊 | |---|:---:|:---:|:---:| | 首页服务卡 | 必须 | 必须 | 必须 | | 服务中心 | 必须 | 必须 | 必须 | | 统一助手文字 | 必须 | 必须 | 必须 | | 统一助手语音 | P0 模拟 | P0 模拟 | P0 模拟 | | 统一助手上传 | 不需要 | 必须 | 可识别为舌象并确认 | | 首页待办 | 挂号结果/失败 | 新报告/解读结果 | 未完成问答/待上传 | | 健康记录 | 必须 | 必须 | 必须 | | 业务详情内嵌 | P1 扩展 | P0 可在示例报告详情进入 | P0 可从历史评估重新开始 | ## 9. 页面与任务的关系 ```mermaid flowchart TD HOME["首页"] --> ASSIST["统一助手"] HOME --> SERVICES["服务中心"] HOME --> RECORDS["健康记录"] ASSIST --> CONFIRM["服务确认"] CONFIRM --> REG["智能分诊挂号任务"] CONFIRM --> REPORT["报告解读任务"] CONFIRM --> TONGUE["中医舌诊任务"] SERVICES --> REG SERVICES --> REPORT SERVICES --> TONGUE RECORDS --> REG RECORDS --> REPORT RECORDS --> TONGUE REG --> REG_RESULT["挂号结果"] REPORT --> REPORT_RESULT["报告解读结果"] TONGUE --> TONGUE_RESULT["舌诊综合结果"] REG_RESULT --> RECORDS REPORT_RESULT --> RECORDS TONGUE_RESULT --> RECORDS ``` ## 10. 需要坚持的边界 - 前端不直接绑定 FastGPT App ID,只识别 `capabilityCode`; - 同一能力多个入口共享同一任务协议; - 统一助手不创建长期混合会话; - 三项任务必须有独立标题、步骤和结果; - 任务结果进入健康记录,不以会话列表作为主导航; - 首页区块固定,动态的是内容和优先级; - P0 无登录,但数据结构仍区分操作人和服务对象; - 风险判断可以中断任何普通业务入口。