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
This commit is contained in:
MingNian
2026-06-02 11:11:29 +08:00
commit 14d7c30d3d
144 changed files with 11436 additions and 0 deletions

View File

@@ -0,0 +1,804 @@
# 健康管家 — 需求规格文档 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 | 智能体面板内具体快捷按钮 | 后续可调整 |