Files
AI-Health/健康管家-需求规格文档-v2.md
MingNian 14d7c30d3d Initial commit: 健康管家 AI 健康陪伴助手
- Backend: .NET 10 Minimal API + EF Core + PostgreSQL
- Frontend: Flutter + Riverpod + GoRouter + Dio
- AI: DeepSeek LLM + Qwen VLM (OpenAI-compatible)
- Auth: SMS + JWT (access/refresh tokens)
- Features: AI chat, health tracking, medication management, diet analysis, exercise plans, doctor consultations, report analysis
2026-06-02 11:11:29 +08:00

805 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 健康管家 — 需求规格文档 V2
> 基于原始需求文档,经多轮讨论后重新整理。本文档覆盖全部功能,不做分期,一次性设计完整。
---
## 一、产品概述
### 1.1 产品定位
面向心脏术后康复患者的私人 AI 健康管家。以对话为核心交互方式(参考蚂蚁阿福),患者通过自然语言记录健康数据、获取饮食运动建议、管理用药、解读报告。配合公司自有医疗硬件(后期接入),实现居家自检。每月享有 2-3 次与签约医生的真人问诊机会。
### 1.2 用户角色
- **患者**:心脏术后康复患者(如冠心病 PCI 术后),年龄偏大,手机操作能力参差不齐
- **医生**:公司签约的私人医生团队,通过 Web 后台管理患者、审阅报告、在线问诊
### 1.3 核心设计理念
**"对话即入口,对话即服务"** —— 用户打开 App 看到的是一个对话框。所有功能通过对话完成AI 理解用户意图并执行。
### 1.4 商业模式
硬件 + App + 医生服务打包付费。患者购买产品 → 下载 App → 手机号登录 → 开始使用。
---
## 二、患者获取流程
患者自行购买产品 → 下载 App → 手机号验证码登录(登录即注册)→ 进入首页 → AI 主动问候 → 通过对话逐步完善健康档案。
```
购买产品 → 下载App → 手机号登录 → AI问候 → 对话建档
```
---
## 三、登录与认证
### 3.1 登录方式
- **手机号 + 短信验证码登录**(登录即注册,无单独注册流程)
- 微信登录(后期加,首次需绑定手机号)
- Apple ID 登录(后期加,首次需绑定手机号)
- 登录前必须勾选同意《服务协议》《隐私协议》
### 3.2 登录状态
- 登录一次后长期有效,用户日常打开 App 直接进首页
- 仅在 token 全部过期后才需要重新登录
### 3.3 业务规则
- 开发阶段验证码任意 6 位数字通过;生产环境对接短信服务商(待定)
- 不强制填昵称,登录后去个人中心自行修改
- 不加入脸/指纹解锁和实名认证
---
## 四、首页
### 4.1 整体布局
```
┌──────────────────────────────────┐
│ 左上角头像 → 侧滑抽屉 │
│ │
│ 任务卡片区(可折叠) │ ← 有任务才显示对应卡片
│ - AI 主动问候(带数据) │
│ - 用药提醒卡片 │
│ - 健康打卡进度 │
│ - 今日数据摘要 │
│ - 异常指标警告 │
│ - 复查/随访提醒 │
│ │
│ 对话流 │ ← 跟 AI 的聊天内容
│ │
├──────────────────────────────────┤
│ 智能体栏(横向滑动胶囊按钮) │
│ [AI问诊] [记数据] [拍饮食] │
│ [药管家] [看报告] [运动计划] │
├──────────────────────────────────┤
│ [📎] [输入框...(系统键盘语音转文字)] [📤] │
└──────────────────────────────────┘
```
### 4.2 AI 问候
- 每次打开 App 自动进入新对话
- AI 根据时间段主动问候,仅当健康数据存在异常时附带提醒
- 异常示例:"早上好!昨天心率 105有点偏高注意休息哦"
- 无异常时纯问候:"早上好!今天有什么可以帮您的?"
- 用药、运动、打卡等日常提醒由任务卡片区负责,不在问候语中出现
**首次使用**
- 新用户(零数据、档案全空)首次打开 App
- AI 问候后主动引导建档:"我是你的AI健康管家为了更好地帮助你我们先来完善一下你的健康档案吧"
- 不强制,用户可跳过,但 AI 会在后续对话中适时提醒
- 侧滑抽屉健康概览各指标显示"--"
### 4.3 任务卡片区
**显示规则:**
- 有相关任务时才显示对应卡片,无任务时不占空间
- 用户向上滑动对话流时卡片区自动折叠
- 有新任务提醒时卡片区自动展开
- 用户可手动点击箭头折叠/展开
- 默认展开
- 多卡片时按行排列
**卡片交互规则:**
- 每张卡片为一行,左侧显示任务内容,右侧配有操作按钮
- 每张卡片同时是该功能模块的快捷入口,点击卡片可进入对应管理界面
- √ 按钮为快捷打卡:点击效果等同于进入管理界面完成打卡
**卡片类型:**
| 卡片 | 触发条件 | 显示内容 | 交互 |
|------|---------|---------|------|
| 用药提醒 | 到服药时间 | "💊 计划 8:00 吃 阿司匹林 100mg" | 右侧 [✓] 按钮,点击即打卡;超时未打卡卡片变红 |
| 运动打卡 | 今日有运动计划未完成 | "🏃 今日待运动:跑步 30 分钟" | 右侧 [✓] 按钮,点击即完成;超期未完成卡片变红 |
| 指标测量 | 今日有指标未测量 | "🩺 今日待测量:血压" | 点击进入记数据界面,不设 ✓ 打卡 |
| 异常警告 | 健康数据超出正常范围 | "⚠️ 昨日心率 105偏高" | 点击进入该指标趋势页 |
| 数据摘要 | 今日已有健康记录 | "今日已记录:血压 128/82、心率 72" | 点击进入健康数据详情 |
| 复查提醒 | 未来 3 天内有复查安排 | "📋 后天 15:00 心内科复查" | 点击进入复查详情 |
### 4.4 对话流
- 用户和 AI 的聊天记录,新消息出现在底部
- 支持多种消息类型:文本气泡、数据确认卡片、饮食记录卡片、报告解读卡片、用药确认卡片、图片
- 每次打开 App 自动进入新对话
- 对话记录保留 30 天
- 历史对话可通过侧滑抽屉中的对话列表回看、继续聊、删除
### 4.5 无传统底部 Tab Bar
底部黄金位置留给 AI 输入框。功能入口全部上移到智能体栏和侧滑抽屉。
---
## 五、智能体系统
### 5.1 交互模式
- 智能体栏横向滑动6 个胶囊按钮
- **点击胶囊** → 胶囊高亮变色 → 从底部弹出该智能体的功能面板 → 对话上下文切换至该智能体
- **再次点击同一胶囊** → 面板收起 → 胶囊恢复默认 → 回到默认对话
- 所有智能体均支持 **AI 对话 + 手动操作双通道**
### 5.2 AI 问诊
**入口**:点击 [AI问诊] 胶囊
**面板内容**[找医生] 按钮
**AI 对话流程**
1. AI 先查看患者全部信息(病史、用药、近期数据)
2. AI 多轮阶段化追问,每步给出快捷选项
3. AI 给出初步分析 + 建议:
- 日常问题 → AI 直接回答
- 轻微症状 → AI 追问 + 给出建议
- 紧急情况(胸痛、呼吸困难等)→ 建议立即就医
- 用户主动要求 → 转医生
**转医生流程**
1. 用户点 [找医生] → 显示可选医生列表(公司签约的 3-4 名不同科室医生)
2. 选择医生 → 查看本月剩余次数 → 确认
3. 先与医生的 AI 分身对话(医生有空时在 Web 后台查看并回复)
4. 医生在 Web 后台可实时看到 AI 与患者的对话内容
5. 对话结束 → 扣除本月 1 次机会
**医生 AI 分身**
- 每个医生有自己的 AI 分身(形象、口吻不同)
- AI 回复末尾标注"以上为 AI 分析,具体请咨询 X 主任"
- 以下情况建议转真人:胸痛、呼吸困难、心悸;血压持续 >160/100心率异常用户明确要求
### 5.3 记数据
**入口**:点击 [记数据] 胶囊
**面板内容**[手动录入血压] [手动录入血糖] [手动录入心率] [手动录入血氧] [手动录入体重]
**支持指标**:血压(收缩压+舒张压)、心率、血糖、血氧、体重
**AI 对话录入**
- 用户说"血压 135/85" → AI 解析指标+数值→填入对应页面→回复确认卡片
- 用户说"120"(缺指标)→ AI 追问"是收缩压还是血糖?"
- 用户说"早上血压 135/85"(缺时间)→ 取当前时间,告知用户
**录入来源标记**:记录列表中标注是否"设备自动同步"AI 对话录入和手动录入不区分来源
**异常提醒**数值超出正常范围时AI 在确认卡片中附带提醒
**正常值参考范围**(医生可为具体患者调整):
| 指标 | 正常范围 | 偏高警戒 | 偏低警戒 |
|------|---------|---------|---------|
| 收缩压 | 90-139 mmHg | ≥140 | ≤89 |
| 舒张压 | 60-89 mmHg | ≥90 | ≤59 |
| 心率 | 60-100 次/分 | ≥101 | ≤59 |
| 空腹血糖 | 3.9-6.1 mmol/L | ≥7.0 | ≤3.8 |
| 血氧 | 95-100% | — | ≤94 |
| 体重 | BMI 18.5-24 | 个体化 | 个体化 |
### 5.4 拍饮食
**入口**:点击 [拍饮食] 胶囊
**面板内容**[拍照] [上传照片](支持多张)
**VLM 识别**:使用千问 VL 模型
**流程**
1. 用户拍照或从相册选图(支持多张,多张识别更准)
2. 显示照片 + "正在分析食物..."
3. VLM 识别食物种类、估算份量
4. 面板展示识别结果(食物列表,每项可编辑/删除/新增)
5. 用户确认无误后点 [确定]
6. AI 基于最终确认的食物数据生成评价:总热量、健康评分、单项警告、整体饮食建议
7. AI 追问餐次:[早餐] [午餐] [晚餐] [加餐],未选择时 AI 根据时间推断
8. [确认保存] [取消]
**编辑规则**用户修改食物数据后AI 基于最新结果重新生成评价
**"能不能吃"判断依据**:疾病诊断、过敏信息、药物相克、医生饮食建议、近期健康指标
**编辑界面**
- 识别结果直接在面板中展示,每条食物独立一行
- 每项可修改:食物名(文本输入)、份量(文本输入)
- 支持删除任意食物条目
- 支持手动添加新食物条目
- 修改后热量自动重算
- 对话修正作为补充:对 AI 说"我只吃了半碗" → AI 自动更新记录
**识别失败处理**
- 手动修正识别结果
- 补充文字描述
- 放弃识别,完全自己填写
- 超过 15 秒提示"分析超时,请重试"
- 一顿饭最多识别 8 种食物
### 5.5 药管家
**入口**:点击 [药管家] 胶囊
**面板内容**[用药管理] [用药提醒]
**用药计划来源**
1. 医生处方(拍照上传 → AI 解析 → 生成计划 → 患者确认)
2. AI 对话录入(用户说"我每天早上吃阿司匹林 100mg" → AI 解析 → 展示确认卡片)
3. 手动表单录入(点 [用药管理] → 填写药品名/剂量/时间)
**AI 对话示例**
```
用户: "医生让我吃阿托伐他汀 20mg从今天开始每日一次晚饭后吃"
AI: "晚饭后具体是几点吃呢?"
用户: "8点"
AI: "收到!已创建用药计划:
💊 阿托伐他汀 20mg 每天 20:00
需要调整吗?"
[确认] [修改时间] [改剂量]
```
**时间转换规则**:用户使用模糊时间描述(早饭后/晚饭后等AI 必须追问具体时间点,不做默认映射。
**服药提醒**
- 到预设时间 → 推送通知 → 点通知进 App → 确认卡片
- [我已服用] → 记录打卡 → AI:"真棒!已记录 ✅"
- [晚点提醒] → 15 分钟后再推 → 30 分钟仍未确认 → 标记"漏服"
- 漏服后 1 小时再提醒一次
**暂不做**:拍药盒识别、药物库存管理、药物相互作用检查
### 5.6 看报告
**入口**:点击 [看报告] 胶囊 → 直接调起相机 / 文件选择器
**支持格式**拍照、从相册选图、PDF 文件
**解读范围**数值类报告血常规、生化全项等AI 可提取指标并预解读图像类报告彩超、CT、心电图等AI 可能无法准确解读,标注"需医生人工审阅"
**AI 预解读流程**
1. 上传完成后显示进度:
- ① 🔍 扫描报告图片... ✓
- ② 🏷️ 识别报告类型 ✓
- ③ 📊 提取关键指标... ✓
- ④ 📝 生成解读报告... ✓
2. AI 预解读结果展示:
- 提取所有指标及其数值
- 异常指标标注(红色偏高、黄色偏低、绿色正常)
- AI 初步分析
- 标注"AI 预解读,待医生确认"
- [查看原始图片] 按钮
3. **用户可立即查看 AI 预解读结果**
4. 医生在 Web 后台审阅 → 确认/修改/补充 → 最终结果推送通知给患者
5. 最终结果标记"医生已确认"
### 5.7 运动计划
**入口**:点击 [运动计划] 胶囊
**面板内容**[查看本周计划] [创建新计划]
**计划内容**:以周为单位,每天指定运动类型和时长
- 示例:「周一:散步 30 分钟」「周二:慢跑 20 分钟」「周三:休息」...
**设定方式**
- AI 对话设定:用户说"我想定个运动计划,每周一三五散步 30 分钟" → AI 拆解为每日条目 → 展示确认
- 手动设定:面板中点 [创建新计划] → 逐天填写
**打卡与追踪**
- 首页任务卡片区显示当日运动任务,右侧 [✓] 快捷打卡
- 当日完成则标记为已完成,未完成则卡片持续显示
- 每天全部完成 = 本周计划完成
- 不设 AI 鼓励消息
- 支持随时修改或放弃(对 AI 说或手动编辑)
---
## 六、AI 对话系统
### 6.1 对话是功能入口
用户不需要在菜单中找功能。直接对 AI 说话AI 理解意图并执行:
| 用户说 | AI 做什么 |
|--------|----------|
| "血压 135/85" | 解析指标+数值→记录健康数据→回复确认卡片 |
| "中午吃了牛肉面" | 解析食物→估算热量营养→记录饮食→回复分析结果 |
| "散步了 30 分钟" | 解析运动→估算消耗→记录运动 |
| "我每天早上吃阿司匹林" | 创建用药计划→设定提醒 |
| "最近胸口不舒服" | 启动 AI 问诊追问流程 |
| "帮我看看这份报告" | 触发报告解读流程 |
| "血压多少算正常" | 回答健康知识问题 |
### 6.2 数据录入规则
- **直接录入**:指标明确 + 数值明确 + 时间明确(如"早上血压 135/85"
- **取默认值**:指标明确 + 数值明确 + 时间模糊 → 取当前时间,告知用户
- **追问**:数值明确但指标模糊(如只说"120")→ AI 追问并提供选项
- **走问诊流程**:纯症状描述(如"感觉有点头晕"
### 6.3 AI 回复内容类型
- **数据确认卡片** — "已记录:血压 135/85 ✅" + 可点击编辑
- **饮食分析卡片** — 食物列表 + 热量 + 评分 + 警告
- **用药确认卡片** — 药名 + 剂量 + 时间 + [确认] [修改]
- **报告解读卡片** — 指标列表 + AI 分析 + "待医生确认"标签
- **用药提醒卡片** — 药名 + 剂量 + [我已服用] [晚点提醒]
### 6.4 对话生命周期
- 每次打开 App → 自动进入新对话,上一段对话自动转为历史记录
- 退出 App → 当前对话保留,成为历史对话
- 对话记录保留 30 天
- 历史对话可回看、继续聊、删除
- 不设手动「新建对话」按钮
### 6.5 输入框附件
输入框旁的 📎 按钮:
| 操作 | 用途 |
|------|------|
| 📸 拍照 | 拍食物(触发饮食识别)、拍报告(触发报告解读) |
| 🖼️ 从相册选 | 上传已有照片 |
| 📎 传文件 | 上传 PDF 报告 |
**已决定**
- AI 回答风格:专业严谨
- AI 回复直接流式展示文字,不需要"正在输入..."动画
- 语音输入使用系统键盘自带语音转文字,不额外开发
---
## 七、拍照识别饮食
### 7.1 技术方案
使用千问 VLqwen-vl-max作为 VLM 模型,后端 httpx 直连调用。火山引擎豆包 Vision 作为备用。
### 7.2 识别结果要求
每张照片返回:
- 食物名称列表(每项含:名称、份量描述、热量千卡、蛋白质克、碳水克、脂肪克)
- 总热量
- 单项警告(针对特定食物的警告)
- 整体饮食建议
- 健康评分1-5 星)
### 7.3 餐次归属
拍照后需要用户选择餐次(早餐/午餐/晚餐/加餐)。未选择时 AI 根据当前时间推断并追问确认。所有饮食记录按日期+餐次归档,支持后续健康趋势追溯。
### 7.4 识别失败处理
- 允许手动修正识别结果
- 允许补充文字描述
- 允许放弃识别,完全自己填写
- 正常识别时间 1-5 秒,超过 15 秒提示超时
- 一顿饭最多识别 8 种食物
---
## 八、健康数据管理
### 8.1 数据类型
| 指标 | 录入方式 | 来源标记 |
|------|---------|---------|
| 血压(收缩压+舒张压) | AI 对话 / 蓝牙设备自动同步 | AI 录入 / 设备同步 / 手动修正 |
| 心率 | 同上 | 同上 |
| 血糖 | 同上 | 同上 |
| 血氧 | 同上 | 同上 |
| 体重 | AI 对话 | 同上 |
### 8.2 录入规则
- **AI 对话录入**AI 解析后展示确认卡片,用户可修改
- **设备自动同步(后期)**:全自动入库,不需要逐条确认
- 默认测量时间:未提时间 → 取当前时间,在确认卡片中告知用户
- 异常值提醒:数值超出正常范围时附带提醒
- **数据冲突**:同一指标短时间内多次录入时,后者覆盖前者,不做合并
### 8.3 趋势图表
- 每种指标展示趋势折线图7 天 / 30 天 / 90 天可选)
- 血压用双轴图(收缩压 + 舒张压同框)
- 点击数据点看详情
- 支持双指缩放、滑动查看历史
- 支持导出图片分享给医生
### 8.4 健康日历
- 月视图日历
- 标记类型:用药情况、运动完成、复查/随访日期
- 点击某天弹出当日健康摘要
---
## 九、运动记录
### 9.1 录入方式
- **AI 对话录入**:用户说"散步了 30 分钟" → AI 识别运动类型、时长、估算消耗热量
- **硬件同步(后期)**:手表/手环自动同步
- **手动修改**AI 录入后可进入编辑页修改
### 9.2 AI 能力
- 自动识别运动类型
- 自动估算消耗热量
- 支持用户修正
---
## 十、饮食记录
### 10.1 录入方式
- **AI 对话录入**:用户说"中午吃了牛肉面" → AI 解析食物 + 估算份量和热量
- **拍照识别**:通过「拍饮食」智能体
- **手动修改**:录入后可进入编辑页修改
### 10.2 AI 能力
- 自动拆解同一餐多个食物
- 根据描述估算份量和热量
- 模糊份量自行判断
---
## 十一、用药管理
### 11.1 用药计划来源
1. **医生处方**(拍照上传 → AI 解析 → 生成计划 → 患者确认)
2. **AI 对话**(用户口述用药信息 → AI 解析 → 展示确认卡片)
3. **手动表单**(药管家面板 → 填写药品名/剂量/时间)
### 11.2 服药提醒
```
到服药时间 → 推送通知 → 点通知进入 App → 确认卡片
├── [我已服用] → 打卡 → 记录 ✅
├── [晚点提醒] → 15分钟后再次推送
└── 30分钟未确认 → 标记"漏服" → 1小时后再次提醒
```
### 11.3 暂不做
- 拍药盒识别
- 药物库存管理
- 药物相互作用检查
---
## 十二、报告管理
### 12.1 上传
- 从「看报告」智能体进入,直接调起相机/文件选择
- 支持拍照、从相册选图、PDF 文件
### 12.2 解读流程
1. 上传 → AI 预解读(用户可立即查看)
2. AI 结果标注"AI 预解读,待医生确认"
3. 医生在 Web 后台审阅、修改、补充
4. 最终结果推送通知给患者
5. 最终结果标记"医生已确认"
### 12.3 解读结果展示
- 提取指标及数值
- 异常标注(红偏高/黄偏低/绿正常)
- AI 初步分析
- [查看原始图片]
- 多报告对比(后期)
---
## 十三、复查/随访
- 医生端创建的复查/随访计划自动同步到患者端
- 支持复查提醒推送(提前 1-3 天通知)
- 复查列表:即将到来 / 已完成
- 术后复查节点参考:术后 3/6/9/12 周(依医嘱)
---
## 十四、侧滑抽屉
### 14.1 入口
左上角头像图标点击打开(从左侧滑出)
### 14.2 内容
```
┌──────────────┬──────────────────┐
│ │ │
│ 👤 张三 │ │
│ 冠心病支架术后│ │
│ │ │
│ [头像点击→个人中心] │
│ [设置] │
│ │ │
│ ❤️ 血压 128/82 (最新) │
│ 💓 心率 72 │
│ 💉 血糖 5.2 │
│ 🫁 血氧 98% │
│ │ │
│ 📋 历史对话记录 │
│ - 2026-05-30 血压咨询 │
│ - 2026-05-28 饮食分析 │
│ ... │
│ │ │
│ 退出登录 │
└──────────────┴──────────────────┘
```
- 头像点击 → 个人中心(含账号切换等)
- 设置 → 设置页面(具体内容后续讨论)
- 健康概览:显示各项指标最近一次上传的值,未测过的指标显示"--"
- 历史对话记录:按时间倒序排列,每条显示日期 + 摘要
- 点击某条历史对话 → 当前对话自动转为历史记录 → 所选对话成为当前活跃对话,可继续聊
- 要回到之前的对话 → 从历史记录中重新选择
- 支持删除历史对话
---
## 十五、个人中心
### 15.1 入口
侧滑抽屉 → 点击头像
### 15.2 菜单
- 头像 + 姓名 + 诊断信息
- 健康档案:完整个人健康信息
- 设备管理:查看已绑定设备(一期为入口占位,后期蓝牙对接)
- 家属关联(后期)
- 通知偏好设置
- 修改资料:可编辑姓名、性别、出生日期,手机号不可改
- 设置:隐私保护中心、通知偏好、字体大小、协议与公告、关于、退出登录(隐私保护中心、协议与公告、关于均为文本展示页,内容后期填充)
---
## 十六、健康档案
### 16.1 信息收集方式
- **AI 对话自动填写**AI 在与用户对话中了解信息后自动填充
- **用户手动填写/修改**:从个人中心 → 健康档案进入,手动编辑
### 16.2 档案内容
| 类别 | 字段 |
|------|------|
| 基本信息 | 姓名、性别、出生日期、身高、体重 |
| 诊断信息 | 主要诊断(冠心病/心梗等、手术类型PCI支架等、手术日期 |
| 病史 | 高血压、糖尿病、高血脂等慢病史、既往手术史 |
| 过敏 | 药物过敏、食物过敏 |
| 饮食限制 | 低盐、低脂、低糖、忌辣等 |
| 家族病史 | 父母/兄弟姐妹心血管病史 |
### 16.3 档案维护规则
**填写方式**AI 对话自动填写 + 用户手动填写/修改,两条路均可
**冲突处理**AI 在对话中识别到信息与档案现有记录矛盾时,主动反问确认
- 示例:档案记录"心梗",用户对话中说"冠心病" → AI"我注意到你之前记录的是心梗,现在提到的是冠心病,需要我更新吗?"
- 不做字段锁定,不做静默覆盖,用户始终知情
### 16.4 档案数据流
```
AI对话了解信息 ──→ 自动填充档案字段
用户手动编辑 ←┘
AI 发现矛盾时反问
档案持久化存储
AI 对话时作为上下文注入(用于"能不能吃"判断、异常判断等)
```
### 16.5 医生视角(患者画像)
医生在 Web 后台可查看患者的完整健康档案:基本信息、健康数据历史、用药记录、检查报告、饮食运动记录
---
## 十七、设备绑定
### 17.1 策略
- 保留设备管理入口(个人中心),暂不做真实蓝牙连接
- 预留蓝牙数据同步接口
- 后期对接公司自有硬件(血压计、血氧仪、血糖仪等)以及主流第三方设备
### 17.2 后期规划
- 蓝牙扫描与绑定
- 多设备同时连接
- 设备数据自动同步到健康记录,标记数据来源
---
## 十八、推送通知
### 18.1 推送类型
| 类型 | 内容示例 | 触发条件 |
|------|---------|---------|
| 用药提醒 | "🔔 该吃阿司匹林了100mg" | 到预设服药时间 |
| 复查提醒 | "📋 后天下午 3 点心内科复查" | 复查前 1-3 天 |
| 医生回复 | "王主任回复了您的消息" | 医生在问诊中发消息 |
| 异常警告 | "⚠️ 检测到心率偏高105 次/分)" | 硬件上传异常数据 |
### 18.2 点击行为
| 通知类型 | 点击后跳转 |
|---------|----------|
| 用药提醒 | 首页 + 自动打开药管家面板 |
| 复查提醒 | 首页 + 复查详情 |
| 医生回复 | 直接进入该问诊对话 |
| 异常警告 | 首页 + 该指标趋势页 |
### 18.3 技术方案
- iOSAPNs
- AndroidFCM
- 推送文案人性化、温暖
- 通知偏好:四类推送(用药提醒、复查提醒、医生回复、异常警告)各设独立开关,用户可分别开启/关闭
---
## 十九、在线问诊
### 19.1 业务模型
- 私人医疗 App患者付费使用
- 每月 2-3 次真人医生问诊机会
- 超出套餐暂不限次数,先跑通流程
- 平时由 AI 处理大部分问题
- 不存在"紧急问诊"场景——真正紧急的情况患者直接去医院
### 19.2 转人工流程
```
用户在「AI问诊」中 → 点 [找医生] → 查看剩余次数 → 确认
选择医生 → 先与医生 AI 分身对话
医生在 Web 后台有空时查看、回复
对话结束 → 扣除本月 1 次机会
```
### 19.3 医生 AI 分身
- 每个医生有自己的 AI 分身(形象、口吻不同)
- AI 回答末尾标注"以上为 AI 分析,具体请咨询 X 主任"
- 以下情况建议转真人:胸痛/呼吸困难/心悸;血压持续 >160/100心率 >120 或 <50用户明确要求
### 19.4 通知
- App 前台 聊天界面实时显示新消息
- App 后台/关闭 推送通知显示消息摘要点击进入聊天
---
## 二十、异常处理
### 20.1 网络异常
- 无网络时显示"无网络连接"全屏提示阻挡所有操作
- 网络恢复后自动恢复正常
### 20.2 AI 异常
| 情况 | 处理 |
|------|------|
| AI 响应超时>30 秒) | 提示"回复时间较长,请稍候或重试",提供 [重试] 按钮 |
| AI 返回乱码/格式错误 | 提示"AI 回复异常,请重试",自动重试一次 |
| AI 拒答(超出能力范围) | 直接告知"这个问题我暂时无法回答,建议咨询您的医生" |
| VLM 识别超时(>15 秒) | 提示"分析超时,请重试或手动填写" |
### 20.3 空状态
| 页面 | 无数据时显示 |
|------|------------|
| 对话流 | AI 问候语 |
| 任务卡片区 | 不显示(无卡片) |
| 健康概览 | 各项指标显示 "--" |
| 历史对话 | "暂无历史对话" |
| 健康档案 | 各字段显示空白,提示"可通过 AI 对话或手动填写" |
| 报告列表 | "暂无报告" |
| 用药列表 | "暂无用药计划" |
| 运动计划 | "暂无运动计划,点击创建" |
| 饮食记录 | "暂无饮食记录" |
| 复查列表 | "暂无复查安排" |
| 趋势图表 | "暂无足够数据生成趋势图" |
### 20.4 账号注销
- 入口:设置 → 退出登录旁 → 注销账号
- 流程:二次确认 → 清除服务端全部数据 → 清除本地数据 → 返回登录页
- 注销后数据不可恢复
---
## 二十一、性能预期
- VLM 食物识别等待时间1-5 秒
- AI 对话回复时间:尽可能快,流式逐字展示
- App 启动到首页:< 2
- VLM 超时时间15
---
## 二十二、数据归属与隐私
- 用户数据归用户和其绑定医生可见
- 不对外共享
- 对话记录保留 30
---
## 二十三、暂不做
- 面容/指纹解锁
- 实名认证
- 药盒拍照识别
- 药物库存管理
- 药物相互作用检查
- 健康积分体系
- 导出 PDF 报告
- 多报告对比后期
- 家属关联后期
- 设备蓝牙连接后期
---
## 二十四、待定事项
| # | 事项 | 状态 |
|---|------|------|
| 1 | 微信/Apple ID 登录 | 后期加第一期只做手机号 |
| 2 | 语音输入 | 用系统键盘自带不额外开发 |
| 3 | 医生端 | Web 后台先不做等患者端跑通 |
| 4 | 短信服务商 | 待定 |
| 5 | 问诊配额具体次数 | 先按 3 / |
| 6 | 硬件数据同步 | 留接口硬件出来后对接 |
| 7 | 智能体面板内具体快捷按钮 | 后续可调整 |