1208 lines
60 KiB
Markdown
1208 lines
60 KiB
Markdown
# 《智慧养老与主动健康管理平台 全栈开发总体方案(最终定稿·直接使用版)》
|
||
|
||
> **文档定位**:本文档是项目的最终开发蓝图,可直接作为 AI Coding 工具(Cursor / 通义灵码 / GitHub Copilot)的 System Prompt,也可直接作为开发团队、测试团队、项目经理的执行依据。
|
||
> **核心定位**:聚焦老年人群体,老年人端采用 WebApp,登录方式支持扫码/公众号登录,降低老人使用门槛。
|
||
> **一期技术策略**:模块化单体架构,不做微服务拆分;知识库优先使用 MySQL 全文索引;大模型仅作过渡兜底,专家应答为核心。
|
||
> **逻辑自洽性**:本文档已通过五轮批判性审查,业务闭环、数据生命周期、状态机边界、内容体系、外部依赖、边缘场景、交付规格、API请求方法规范、列表排序规范,全部覆盖。
|
||
> **可直接使用**:状态枚举、API清单、页面路由、定时任务、消息模板、权限点、数据字典、交付切分、第三方服务清单、项目里程碑,全部齐备。
|
||
|
||
|
||
## 一、 项目概述与核心定位
|
||
|
||
### 1.1 项目愿景
|
||
构建一个基于 **“评估—干预—反馈—迭代”** 闭环的智慧养老平台。系统以权威医学标准(ACSM、MMSE、GDS-15、CDC跌倒风险等)为基石,深度融合**专家应答体系**、跌倒风险预警以及 LBS 位置服务,为老年人提供个性化、动态可调的运动健康处方与健康教育。
|
||
|
||
系统致力于打通 **“线上视频跟练”** 与 **“线下志愿者上门”** 的 O2O 服务闭环,解决老年人“不会用、不敢练、无人管”的痛点,实现真正的适老化、智能化、数据可视化与精准健康管理。
|
||
|
||
### 1.2 核心定位
|
||
- **聚焦老年人**:不服务学生或其他年龄段,所有设计围绕老年医学与适老化展开。
|
||
- **老年人端采用 WebApp**:老人、家属、志愿者共用 Vue3 + Vant 技术栈,通过角色动态渲染不同界面。
|
||
- **扫码/公众号登录**:老年人无需记密码,扫码或公众号一键登录,降低使用门槛,方便系统维护。
|
||
- **多登录方式兜底**:微信只是便捷选项之一,保留手机号验证码、账号密码等降级方案。
|
||
- **评估驱动**:以权威量表评估为起点,以规则引擎精确计算为核心。
|
||
- **专家为主,大模型为辅**:问答系统以专家应答为核心,大模型仅作过渡兜底,专家回答沉淀入知识库。
|
||
- **O2O闭环**:线上视频跟练 + 线下志愿者上门,形成完整服务闭环。
|
||
- **可运营平台**:支持国家级、省级、市级、县级多层级组织管理与数据权限隔离。
|
||
- **双轨服务**:一期公益志愿服务,二期预留市场化付费能力。
|
||
- **按需评估**:量表模块化,按需分发,分次填答,每张填完即出结论。
|
||
- **数据资产化**:已有数据先治理、后导入,确保数据质量和合规性。
|
||
- **逻辑自洽**:状态机边界、数据生命周期、内容体系关系明确。
|
||
- **外部依赖可控**:微信、地图、短信均有降级方案,不依赖单一外部服务。
|
||
- **边缘场景兜底**:老人不会用手机、三方不配合、数据膨胀,均有对应策略。
|
||
- **API规范**:按RESTful语义使用GET/POST/PUT/DELETE,安全靠HTTPS+加密+鉴权,不靠“全用POST”。
|
||
- **列表排序规范**:无逻辑顺序的选项按拼音排序,有逻辑顺序的选项按业务逻辑排序,后端统一维护,前端不自行排序。
|
||
- **交付规格完整**:状态枚举、API清单、页面路由、定时任务、消息模板、权限点、数据字典、交付切分、第三方服务清单,全部齐备。
|
||
|
||
### 1.3 核心业务闭环(状态机流转)
|
||
1. **信息采集**:老人扫码登录 / 家属代劳 / 志愿者上门。集成身份证OCR、扫码/公众号登录、自动获取经纬度与海拔。
|
||
2. **健康初筛**:通过5道快速问卷,判断需要进入哪些深度评估。
|
||
3. **运动准入筛查**:当老人/家属/志愿者发起“我想运动/参加体适能测评”时,追加身体状况安全问卷和ACSM运动前筛查。
|
||
4. **量表评估(按需分发)**:系统根据初筛结果、老人档案和历史数据有效期,自动判断需要填哪些量表。
|
||
5. **单量表结论**:每张量表填完后立即计分、立即出结论、立即触发后续动作。
|
||
6. **风险判定**:规则引擎按决策树判定“运动风险等级(高/中/低)”。
|
||
7. **综合评估**:所有评估任务完成/标记无需填写/已复用后,单量表结论 + 老人画像 → 生成综合健康报告(专家复核后推送)。
|
||
8. **处方生成**:结合海拔、体适能、专家知识库,生成个性化运动处方。
|
||
9. **用户决策**:老人决定【采纳】或【忽略】。忽略则终止;采纳则进入干预。
|
||
10. **视频跟练与跌倒预警**:跟随专家视频练习,AI实时检测跌倒风险并预警。
|
||
11. **阶段性复采**:干预周期结束后,系统自动推送量表复评。
|
||
12. **效果分析**:对比前后数据(结合量表版本差异),生成效果报告。
|
||
13. **处方迭代与沉淀**:动态调整处方,成功案例沉淀至知识库,不断迭代。
|
||
|
||
|
||
## 二、 技术栈与架构选型
|
||
|
||
| 层级 | 选型 | 说明 |
|
||
|---|---|---|
|
||
| 后端语言与框架 | Java + 芋道 (yudao-cloud) | 一期采用模块化单体(yudao-boot),二期再拆微服务 |
|
||
| 数据库与缓存 | MySQL + Redis + MongoDB(备选) | MySQL核心业务;Redis缓存Token/验证码/字典;MongoDB存非结构化日志 |
|
||
| 知识库检索 | 一期:MySQL全文索引 + 关键词匹配;二期:PgVector/Milvus | 先用简单方案跑通业务 |
|
||
| 前端形态(统一WebApp) | Vue3 + Vant + Vite | 老人端、家属端、志愿者端共用一套技术栈 |
|
||
| 前端适配 | 响应式布局 + 大字体模式 + 语音辅助 | 一套代码,通过角色配置动态渲染不同界面 |
|
||
| 登录方式 | 扫码登录 / 公众号登录 / 手机号验证码 / 账号密码 | 老人端优先扫码,家属/志愿者端可用手机号验证码,管理员端用账号密码 |
|
||
| 定位与地图 | 高德/百度地图 Web SDK + API | 需评估配额,缓存地址与海拔数据,预留降级方案 |
|
||
| 短信服务 | 阿里云/腾讯云短信 | 模板提前报备;非紧急通知优先用App推送;成本监控 |
|
||
| API与协作 | Eolink (API管理) + Gitee (代码托管/CI-CD) | |
|
||
| AI与算法 | 大模型(仅过渡兜底)+ 独立Python跌倒风险检测模型 | 优先本地部署;云端调用需数据脱敏 |
|
||
| 测试 | Playwright | 端到端自动化测试,需支持模拟定位 |
|
||
| 原型设计 | Figma / 即时设计 | 支持多人协作、组件库、AI辅助生成 |
|
||
|
||
### 2.1 API请求方法规范
|
||
采用标准 RESTful 风格,不强行全用 POST:
|
||
- **查询列表/详情**:使用 GET,但禁止在 URL 中传递敏感信息。
|
||
- **新增/提交**:使用 POST,敏感信息放在 Body 中。
|
||
- **修改**:使用 PUT。
|
||
- **删除**:使用 DELETE。
|
||
- **特殊状态变更**(签到、确认、审核):使用 POST。
|
||
|
||
### 2.2 安全约束
|
||
- 全站强制 HTTPS,禁止 HTTP。
|
||
- 身份证号、手机号在 MySQL 中 AES 加密存储,前端展示脱敏。
|
||
- 所有接口必须校验 JWT Token 和权限码。
|
||
- 短信发送接口必须集成阿里云滑动验证。
|
||
- 登录接口增加失败次数限制和异地登录告警。
|
||
- 所有参数必须校验,防止 SQL 注入和 XSS。
|
||
- 日志脱敏,禁止打印完整的敏感信息。
|
||
|
||
|
||
## 三、 用户角色与权限体系
|
||
|
||
| 角色 | 说明 | 核心权限 |
|
||
|---|---|---|
|
||
| 老人 | 核心服务对象 | 查看评估结果、查看处方、视频跟练、SOS、健康问答 |
|
||
| 家属 | 代劳录入、查看数据、接收通知 | 通过家庭组关联老人,可代录、确认服务、接收警报 |
|
||
| 志愿者 | 上门协助测评、指导跟练 | 接单、导航、签到、拍照上传、服务记录 |
|
||
| 专家 | 知识库审核、处方复核、问答应答 | 量表版本管理、知识库审核、问题应答、处方复核 |
|
||
| 管理员 | 后台运营、组织管理 | 数据统计、组织管理、系统配置 |
|
||
|
||
**数据权限设计**:
|
||
- 基于组织架构树形结构的 `path` 字段,实现数据权限自动隔离。
|
||
- 国家管理员看全国,省级看本省,市级看本市,县级看本县,机构看本机构。
|
||
- 志愿者只能看到分配给自己的订单。
|
||
- 家属只能看到家庭组内关联老人的数据。
|
||
|
||
|
||
## 四、 登录与认证体系
|
||
|
||
### 4.1 核心设计原则
|
||
- **老年人端优先扫码登录**:老人无需记住账号密码,打开微信扫一扫即可登录。
|
||
- **公众号一键登录**:关注公众号后,点击菜单栏入口即可免密登录。
|
||
- **家属/志愿者端支持手机号验证码登录**:便于独立使用。
|
||
- **一套账号体系**:所有角色共用同一套用户表,通过角色字段区分。
|
||
- **多方式兜底**:微信只是便捷选项之一,保留手机号验证码、账号密码等降级方案。
|
||
|
||
### 4.2 登录方式
|
||
|
||
| 登录方式 | 适用角色 | 说明 |
|
||
|---|---|---|
|
||
| 扫码登录 | 老人为主 | 老人打开WebApp,显示二维码,用微信扫码确认后登录 |
|
||
| 公众号登录 | 老人为主 | 关注公众号,点击菜单栏“我的健康”,免密登录WebApp |
|
||
| 手机号验证码 | 家属/志愿者/无微信老人 | 输入手机号,获取验证码,验证后登录 |
|
||
| 账号密码 | 管理员/专家 | 后台管理端使用,支持密码+滑动验证 |
|
||
|
||
### 4.3 扫码登录流程
|
||
1. 老人打开WebApp(未登录状态)。
|
||
2. 页面显示登录二维码(含临时Token)。
|
||
3. 老人用微信扫一扫。
|
||
4. 微信授权确认。
|
||
5. 后端校验Token,绑定openid与老人账号。
|
||
6. WebApp自动登录成功,跳转首页。
|
||
|
||
### 4.4 公众号登录流程
|
||
1. 老人关注公众号。
|
||
2. 点击菜单栏“我的健康”。
|
||
3. 公众号跳转WebApp,携带授权code。
|
||
4. 后端用code换取openid,绑定老人账号。
|
||
5. WebApp自动登录成功。
|
||
|
||
### 4.5 账号绑定规则
|
||
- **首次扫码/公众号登录**:如果openid未绑定任何账号,引导老人/家属完成注册。
|
||
- **后续登录**:openid已绑定,直接免密登录。
|
||
- **多账号绑定**:一个微信可绑定多个老人账号,登录后选择要管理的老人。
|
||
- **解绑**:老人/家属可在个人中心解绑微信。
|
||
- **无微信老人**:用手机号+验证码登录,或由家属代为注册后绑定。
|
||
|
||
### 4.6 安全策略
|
||
- **扫码Token有效期**:二维码Token有效期5分钟,过期自动刷新。
|
||
- **登录态保持**:JWT Token有效期7天,支持自动续期。
|
||
- **多端登录**:同一账号可在多端登录,互不冲突。
|
||
- **异常登录告警**:异地登录、频繁登录失败触发告警。
|
||
|
||
### 4.7 外部依赖降级方案
|
||
- **微信扫码失败** → 备选“手机号验证码登录”。
|
||
- **微信政策调整** → WebApp同时支持多种登录方式,微信不是唯一入口。
|
||
- **老人没有微信** → 家属代为注册,用手机号+密码登录;或志愿者上门时用志愿者端代为操作。
|
||
|
||
|
||
## 五、 多层级组织架构设计
|
||
|
||
### 5.1 核心设计原则
|
||
- **灵活树形结构**:不预设固定层级,志愿者机构可挂在国家、省、市、县任意层级。
|
||
- **统一组织节点**:所有组织单元统一用 `sys_org` 表表示。
|
||
- **数据权限隔离**:基于 `path` 字段实现,无需递归查询,性能高。
|
||
|
||
### 5.2 组织架构表设计
|
||
|
||
| 表名 | 用途 | 关键字段 |
|
||
|---|---|---|
|
||
| sys_org | 组织架构表(树形) | id, parent_id, org_name, org_type(COUNTRY/PROVINCE/CITY/COUNTY/VOLUNTEER_ORG/EXPERT_ORG), region_code, altitude, level, path, status |
|
||
| sys_region | 行政区划表 | code(国标区划码), name, parent_code, level, altitude(平均海拔), climate_type(预留) |
|
||
| sys_user_org | 用户与组织关联表 | user_id, org_id, role |
|
||
|
||
### 5.3 志愿者机构灵活挂载
|
||
- 国家层面:中国老年志愿者协会。
|
||
- 省级层面:青海省养老服务中心、青海省专家库。
|
||
- 市级层面:西宁市社区服务队。
|
||
- 县级层面:湟源县本地志愿团、湟源县社区卫生服务中心。
|
||
- 各层级机构均可直接挂志愿者。
|
||
|
||
### 5.4 派单逻辑
|
||
1. 优先匹配同县区的志愿者机构。
|
||
2. 同县区没有机构,向上级(市、省、国家)逐级查找。
|
||
3. 紧急情况可直接基于GPS距离指定最近志愿者。
|
||
|
||
|
||
## 六、 老年人信息结构
|
||
|
||
### 6.1 核心设计原则
|
||
1. 隐私合规:身份证号、手机号加密存储,前端脱敏;知情同意状态是采集前置。
|
||
2. 归档分离:过世老人档案迁入归档表,主表只保留活跃老人。
|
||
3. 家庭组管理:通过家庭组表支持“多人管一老、一人管多老”。
|
||
4. 区划联动:籍贯、居住地使用国标区划编码,自动关联海拔、气候数据。
|
||
5. 数据溯源:记录数据来源(本人/家属/志愿者/机构),为AI评估提供可信度参考。
|
||
6. 审计留痕:所有关键操作记录操作人和时间。
|
||
|
||
### 6.2 老人档案主表(elder)
|
||
|
||
| 字段分类 | 字段名 | 类型 | 说明 |
|
||
|---|---|---|---|
|
||
| 身份标识 | id | bigint | 主键 |
|
||
| | id_card | varchar | 身份证号(AES加密,唯一索引) |
|
||
| | name | varchar | 姓名 |
|
||
| | gender | tinyint | 性别(0未知/1男/2女) |
|
||
| | birth_date | date | 出生日期 |
|
||
| | age | int | 年龄(冗余字段,定时更新) |
|
||
| | ethnicity | varchar | 民族(字典) |
|
||
| | has_wx | boolean | 是否有微信(用于差异化推送策略) |
|
||
| 社会属性 | marital_status | tinyint | 婚姻状况(0未婚/1已婚/2离异/3丧偶) |
|
||
| | native_place_code | varchar | 籍贯(区划编码) |
|
||
| | residence_code | varchar | 现长期居住地(区划编码) |
|
||
| | residence_address | varchar | 详细地址 |
|
||
| | residence_type | tinyint | 居住地类型(1城市/2农村/3城镇/4牧区/5其他) |
|
||
| | living_situation | tinyint | 居住状况(1独居/2与配偶/3与子女/4养老机构/5其他) |
|
||
| | is_living_alone | boolean | 是否独居 |
|
||
| | hukou_type | tinyint | 户口类型(1城镇/2农村) |
|
||
| | education_level | tinyint | 教育程度(1文盲/2小学/3初中/4高中/5大专/6本科及以上)MMSE关键字段 |
|
||
| | last_occupation | varchar | 最近职业(字典) |
|
||
| | religion | varchar | 宗教信仰(字典,可空) |
|
||
| | attended_elder_university | boolean | 是否参加过老年大学 |
|
||
| 经济与保障 | social_security_type | tinyint | 社保类型(1职工医保/2居民医保/3新农合/4无) |
|
||
| | income_range | tinyint | 收入区间(1无收入/2 1万以下/3 1-3万/4 3-5万/5 5万以上) |
|
||
| | medical_insurance_no | varchar | 医保卡号(可空,加密) |
|
||
| 健康与照护 | care_level | tinyint | 照护等级(1自理/2半自理/3失能) |
|
||
| | disability_type | varchar | 残疾类型(可空) |
|
||
| | altitude | decimal | 居住地海拔(从区划自动带入) |
|
||
| | primary_doctor | varchar | 家庭医生(可空) |
|
||
| 系统管理 | data_source | tinyint | 数据来源(1本人/2家属/3志愿者/4机构导入) |
|
||
| | consent_status | tinyint | 知情同意状态(0未签署/1已签署/2已撤回) |
|
||
| | status | tinyint | 状态(0正常/1停用) |
|
||
| | remark | varchar | 备注 |
|
||
| | create_time / update_time | datetime | 时间戳 |
|
||
| | create_by / update_by | bigint | 审计字段 |
|
||
|
||
### 6.3 家庭组表
|
||
|
||
**家庭组主表(family_group)**:
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| id | bigint | 主键 |
|
||
| group_name | varchar | 家庭组名称 |
|
||
| elder_id | bigint | 核心老人ID |
|
||
| region_code | varchar | 所在区划 |
|
||
| status | tinyint | 状态(0正常/1已归档) |
|
||
| create_time | datetime | 创建时间 |
|
||
| create_by | bigint | 创建人 |
|
||
|
||
**家庭成员关联表(family_member)**:
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| id | bigint | 主键 |
|
||
| group_id | bigint | 关联家庭组ID |
|
||
| user_id | bigint | 系统用户ID(可空) |
|
||
| member_name | varchar | 成员姓名 |
|
||
| member_phone | varchar | 手机号(加密) |
|
||
| relation_type | tinyint | 关系(1配偶/2子女/3孙辈/4其他亲属/5社区网格员) |
|
||
| role | tinyint | 角色(1主管理员/2普通成员/3只读) |
|
||
| is_primary_contact | boolean | 是否第一紧急联系人 |
|
||
| join_time | datetime | 加入时间 |
|
||
| status | tinyint | 状态(0正常/1退出) |
|
||
|
||
**业务规则**:
|
||
- 一个老人可属于多个家庭组。
|
||
- 一个家庭组可包含多个家庭成员。
|
||
- SOS触发时,按 `is_primary_contact` 优先级依次拨打。
|
||
- 志愿者服务完成后,推送确认通知给主管理员。
|
||
- 老人过世后:家庭组状态改为“已归档”。
|
||
|
||
### 6.4 紧急联系人表(emergency_contact)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| id | bigint | 主键 |
|
||
| elder_id | bigint | 关联老人ID |
|
||
| name | varchar | 联系人姓名 |
|
||
| relation | varchar | 关系 |
|
||
| phone | varchar | 手机号(加密) |
|
||
| is_primary | boolean | 是否第一联系人 |
|
||
| remark | varchar | 备注 |
|
||
|
||
### 6.5 老人归档表(elder_archive)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| id | bigint | 主键(与主表id一致) |
|
||
| 所有主表字段 | - | 完整复制主表结构 |
|
||
| death_date | date | 过世时间 |
|
||
| death_reason | varchar | 过世原因 |
|
||
| archive_time | datetime | 归档时间 |
|
||
| archive_by | bigint | 归档操作人 |
|
||
| archive_reason | tinyint | 归档原因(1过世/2注销/3其他) |
|
||
|
||
**老人过世级联归档流程**:
|
||
1. `elder` 主表记录标记为“已归档”。
|
||
2. `assessment_task` 中所有“待填写”任务标记为“已作废”。
|
||
3. `exercise_prescription` 中“已下发未采纳”标记“已作废”;“已采纳执行中”标记“已终止”。
|
||
4. `volunteer_appointment` 中所有“待服务/服务中”订单自动取消。
|
||
5. `family_group` 状态改为“已归档”,停止推送。
|
||
6. `qa_log` 中未回答的问题标记为“已关闭”。
|
||
7. 所有关联数据在归档表中保留,用于科研分析。
|
||
|
||
|
||
## 七、 数据治理与历史数据导入
|
||
|
||
### 7.1 核心原则
|
||
**“有数据”不等于“能用数据”。** 已有数据必须先治理,后导入。
|
||
|
||
### 7.2 数据治理流程
|
||
1. 数据盘点。
|
||
2. 数据质量评估(完整性、准确性、一致性、重复性)。
|
||
3. 数据清洗与标准化。
|
||
4. 合规审查(知情同意、匿名化)。
|
||
5. 分批导入。
|
||
6. 输出数据质量报告。
|
||
|
||
### 7.3 历史数据复用逻辑
|
||
- 数据有效期管理:每张量表结论设置有效期(如GDS-15有效期3个月,MMSE有效期6个月)。
|
||
- 复用规则:有效期内+版本一致 → 直接复用;版本不一致 → 提示重新评估;过期 → 强制重新评估。
|
||
- 历史数据对比:复用时自动对比历史结论,生成“变化趋势”。
|
||
|
||
### 7.4 数据来源与置信度
|
||
- 答卷记录中增加 `operator_type`(1本人/2家属/3志愿者/4医生)和 `confidence_level`(1高/2中/3低)。
|
||
- 权重仅用于“综合评估报告的可信度标注”。
|
||
- 关键量表强制医生复核:身体状况安全问卷、ACSM运动前筛查、GDS-15(重度抑郁)、MMSE(认知障碍)。
|
||
|
||
### 7.5 数据膨胀与归档策略
|
||
- 冷热数据分离:
|
||
- 热数据(近3个月):主表实时查询。
|
||
- 温数据(3-12个月):历史表按月分区。
|
||
- 冷数据(1年以上):归档到OSS,用于科研分析。
|
||
- 定期清理:`qa_log`保留1年;`assessment_task`保留2年;`exercise_log`保留1年;`volunteer_service_log`保留3年。
|
||
- 科研数据匿名化后存入独立数据仓库。
|
||
|
||
|
||
## 八、 动态量表与评估引擎(按需分发版)
|
||
|
||
### 8.1 六大核心量表结构化分析
|
||
|
||
| 量表名称 | 题型特征 | 计分逻辑 | 结论判定 | 特殊逻辑 |
|
||
|---|---|---|---|---|
|
||
| GDS-15 | 15道是/否题 | 反向计分 | 0-4无抑郁;5-9中度;10-15重度 | 无 |
|
||
| 身体状况安全问卷 | 12道有/无题 | 无分数 | 一票否决制 | 准入门槛量表 |
|
||
| MMSE | 多题型 | 每题1分 | 按受教育程度调整分界值 | 计分依赖教育程度 |
|
||
| 营养不良评估 | 两阶段 | 选项分值0/0.5/1/2/3分 | 初筛≤11分需继续 | 动态跳转 |
|
||
| 生活自主能力评估 | 10项能力 | 每项0/5/10/15分 | 100独立;61-99轻度;40-60中度;≤40重度 | 无 |
|
||
| 跌倒风险自评表 | 12道是/否题 | 每题“是”得1或2分 | ≥4分为高风险 | 无 |
|
||
|
||
### 8.2 量表版本控制机制
|
||
- 量表主表:仅存量表唯一标识。
|
||
- 量表版本表:存储题目JSON、评分规则JSON、生效日期、状态。
|
||
- 答卷记录表:绑定版本ID,确保历史数据可追溯。
|
||
- 版本策略:补丁版本仅文案修正不新建;主版本题目/规则变更必须新建;旧版本保留归档不删除。
|
||
|
||
### 8.3 两阶段筛查与按需分发
|
||
|
||
**阶段一:健康初筛(5道题)**
|
||
|
||
| 初筛题目 | 触发量表 |
|
||
|---|---|
|
||
| 生活能力是否下降 | 生活自主能力评估 |
|
||
| 情绪是否低落 | GDS-15抑郁量表 |
|
||
| 记忆力是否减退 | MMSE智力状态检查 |
|
||
| 食欲是否不振 | 营养不良评估 |
|
||
| 是否有肢体障碍/跌倒史 | 跌倒风险自评表 |
|
||
|
||
**阶段二:运动准入筛查**
|
||
|
||
| 触发条件 | 触发量表 |
|
||
|---|---|
|
||
| 老人/家属/志愿者发起“我想运动/参加体适能测评” | 身体状况安全问卷、ACSM运动前筛查 |
|
||
|
||
两阶段筛查在数据模型中属于不同的 `screening_type`。
|
||
|
||
**系统分发逻辑**:
|
||
1. 老人完成健康初筛问卷(5题)。
|
||
2. 系统根据初筛结果、老人档案和历史数据有效期,自动计算“需要填哪些量表”。
|
||
3. 不需要填写的量表,前端标注“您当前无需填写此量表”及原因。
|
||
4. 需要填写的量表按优先级排序,依次推送。
|
||
5. 历史数据有效期内的量表,直接复用。
|
||
6. 当老人发起“我想运动”时,追加运动准入筛查。
|
||
|
||
### 8.4 评估任务表(assessment_task)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| id | bigint | 主键 |
|
||
| elder_id | bigint | 老人ID |
|
||
| scale_id | bigint | 量表ID |
|
||
| scale_version_id | bigint | 量表版本ID |
|
||
| status | tinyint | 状态(0待填写/1已填写/2无需填写/3已跳过/4已复用历史数据/5已作废) |
|
||
| skip_reason | varchar | 无需填写的原因 |
|
||
| priority | int | 优先级 |
|
||
| create_time | datetime | 创建时间 |
|
||
| complete_time | datetime | 完成时间(可空) |
|
||
|
||
### 8.5 分次填答机制
|
||
- 每张量表填完后立即保存进度、立即出结论。
|
||
- 支持中途退出,下次从未完成的量表继续。
|
||
- 答题进度自动保存,超时7天自动作废。
|
||
|
||
### 8.6 单量表“填完即出结论”
|
||
1. 规则引擎精确计分(Java代码)。
|
||
2. 匹配结论阈值,输出单量表结论。
|
||
3. 前端弹窗展示结论(通俗语言、大字体、语音播报)。
|
||
4. 根据结论触发后续动作。
|
||
|
||
### 8.7 综合评估触发条件
|
||
- 所有 `assessment_task` 中状态不为“待填写”的任务,全部完成或标记为“无需填写”/“已复用”时,触发综合评估。
|
||
- 存在“已跳过”任务时,综合评估仍触发,但报告标注“本报告基于部分量表结论”。
|
||
- 存在“待填写”任务时,7天后提醒,14天后自动标记“已跳过”,触发综合评估。
|
||
|
||
### 8.8 动态表单引擎六大能力
|
||
1. 反向计分(GDS-15)
|
||
2. 一票否决(身体状况安全问卷)
|
||
3. 教育程度调整分界值(MMSE)
|
||
4. 动态跳转(营养评估两阶段)
|
||
5. 不同分值选项(营养评估、生活自主能力)
|
||
6. 多题型混合(单选、文本输入、口头测试)
|
||
|
||
### 8.9 风险判定引擎(决策树)
|
||
- **高风险**:有已知疾病或出现特定症状(胸闷、晕厥、端坐呼吸、间歇性跛行、不寻常疲倦、脚踝水肿等)。
|
||
- **中风险**:无疾病无相关症状,但心血管危险因素≥2。
|
||
- **低风险**:危险因素<2。
|
||
|
||
|
||
## 九、 综合评估模型与专家审核
|
||
|
||
### 9.1 两层架构
|
||
- **第一层(规则引擎)**:Java精确算分,输出各量表结构化结论。
|
||
- **第二层(专家+大模型)**:单量表结论 + 老人画像作为Context,专家审核后生成综合评估报告。大模型仅作过渡辅助。
|
||
|
||
### 9.2 综合评估输入输出
|
||
|
||
**输入**:老人画像(年龄、性别、教育程度、海拔、地区)+ 各量表结论(得分、结论、严重程度)。
|
||
|
||
**输出**:整体健康等级、关键问题列表、运动建议(能否运动、强度、禁忌、推荐类型、海拔调整)、复评计划。
|
||
|
||
### 9.3 核心原则
|
||
- 大模型只做综合判断和自然语言生成,所有原始得分必须由Java规则引擎精确计算。
|
||
- 每条建议必须可解释、可追溯。
|
||
- 强制专家复核:报告必须经专家点击【复核通过】后才能推送。
|
||
- 免责声明:所有建议标注“本建议仅供健康参考,不能替代医生诊断”。
|
||
- 年龄+海拔交叉权重。
|
||
- 数据脱敏后调用大模型,优先本地部署。
|
||
|
||
|
||
## 十、 专家应答体系(核心)
|
||
|
||
### 10.1 三层应答架构
|
||
|
||
**第一层:本地专家知识库(优先)**
|
||
- 一期:MySQL全文索引+关键词匹配;二期:向量检索。
|
||
- 命中阈值 >= 0.85 → 直接返回。
|
||
|
||
**第二层:专家应答(核心)**
|
||
- 问题推送给值班专家,专家在后台回答,审核后返回老人,同时沉淀入知识库。
|
||
|
||
**第三层:大模型兜底(过渡方案)**
|
||
- 紧急/夜间/专家不在线时,大模型生成回答,标注“AI生成,仅供参考,专家正在复核”。
|
||
- 专家上线后复核并覆盖。
|
||
|
||
### 10.2 核心原则
|
||
- 专家是主力,大模型是替补。
|
||
- 大模型回答必须明确标注“待专家复核”。
|
||
- 专家复核后的回答自动替换大模型回答,并沉淀入知识库。
|
||
|
||
### 10.3 专家分级应答机制
|
||
|
||
| 级别 | 专家类型 | 处理问题 | 响应时间 |
|
||
|---|---|---|---|
|
||
| 一级 | 社区医生/家庭医生 | 常见问题 | <4小时 |
|
||
| 二级 | 专科医生/康复专家 | 复杂问题 | <24小时 |
|
||
| 三级 | 三甲医院专家 | 疑难问题 | <48小时 |
|
||
|
||
### 10.4 专家排班制
|
||
- 每天安排1-2位专家值班,确保问题不积压。
|
||
- 值班专家在后台处理当日问题,超时未处理自动升级到上一级。
|
||
- 夜间/节假日:大模型兜底,次日专家复核。
|
||
|
||
### 10.5 专家应答质量控制
|
||
1. 双人复核制:重要问题需两位专家交叉复核。
|
||
2. 回答留痕。
|
||
3. 老人反馈机制:点赞/点踩,低分触发复核。
|
||
4. 免责声明。
|
||
5. 专家资质审核:持证医生/康复师才能成为应答专家。
|
||
|
||
### 10.6 专家酬劳模式
|
||
- 政府购买服务:按应答量结算。
|
||
- 平台补贴:初期由项目经费承担。
|
||
- 公益积分:与职称评定、评优挂钩。
|
||
|
||
### 10.7 数据库设计
|
||
|
||
| 表名 | 用途 | 关键字段 |
|
||
|---|---|---|
|
||
| knowledge_base | 专家知识库 | 分类、问题、答案、标签JSON、适用海拔区间、来源、审核状态、content_type(1健康教育/2问答知识) |
|
||
| qa_log | 问答记录 | 老人ID、问题、命中类型、命中知识ID、答案、置信度 |
|
||
| expert_schedule | 专家排班表 | expert_id, date, time_slot, status |
|
||
| expert_answer | 专家应答记录 | question_id, expert_id, answer, review_status, review_by |
|
||
| knowledge_audit_log | 审核日志 | 审核人、审核结果、审核时间、修改内容 |
|
||
|
||
### 10.8 外部依赖与兜底机制
|
||
- 专家不响应 → 大模型兜底 + 次日专家复核。
|
||
- 问题积压超过48小时 → 自动升级到上一级专家。
|
||
- 夜间/节假日 → 大模型兜底,次日专家复核。
|
||
|
||
|
||
## 十一、 老年人主动健康教育板块
|
||
|
||
### 11.1 核心逻辑
|
||
数据采集 → 初筛 → 深度评估 → 诊断模块 → 健康教育(千人千面推送)+ 反馈指导(运动处方)。
|
||
|
||
### 11.2 教育内容分类
|
||
慢病管理、高原健康、运动康复、营养膳食、心理健康、跌倒预防、认知训练。
|
||
|
||
### 11.3 千人千面推送引擎
|
||
触发时机:首次评估完成时、处方下发时、阶段性复评后、定时推送。
|
||
推送规则:根据量表结论和海拔区间,匹配对应的健康教育内容。
|
||
|
||
### 11.4 内容载体
|
||
短视频、图文长页、音频、交互式问答、直播/录播课、每日打卡任务。
|
||
|
||
### 11.5 统一内容底座
|
||
- 健康教育内容与知识库共用同一张 `knowledge_base` 表,通过 `content_type` 区分。
|
||
- 推送逻辑优先走知识库。
|
||
- 健康教育内容更新时自动同步知识库。
|
||
- 入库去重,相似度>0.9提示合并。
|
||
|
||
### 11.6 与问答系统联动
|
||
- 健康教育是主动推送,问答系统是被动响应。
|
||
- 教育文章底部设“我还有疑问”跳转问答。
|
||
- 问答高频问题可一键转为健康教育内容。
|
||
|
||
|
||
## 十二、 视频跟练与跌倒风险预警
|
||
|
||
### 12.1 核心定位
|
||
**不是“动作标准度纠偏”,而是“跌倒风险实时预警”。**
|
||
|
||
### 12.2 检测场景与信号
|
||
|
||
| 场景 | 检测方式 | 技术实现 | 适用老人 |
|
||
|---|---|---|---|
|
||
| 跟练时(手机前台) | 手机端本地AI实时检测 | TensorFlow.js | 能独立使用手机的老人 |
|
||
| 志愿者上门指导 | 志愿者人工观察 + App辅助记录 | 全程录制,后台离线分析 | 75岁以上高龄老人 |
|
||
| 机构/社区集中锻炼 | 边缘设备实时预警 | 摄像头+边缘盒子 | 社区养老场景 |
|
||
| 全天候跌倒监测(非跟练) | 智能手环 + 手机App推送 | 手环检测自由落体+撞击 | 跌倒高风险人群 |
|
||
| 居家无手机场景 | 毫米波雷达/智能摄像头 | 独立设备 | 高龄独居老人 |
|
||
|
||
**检测信号**:
|
||
- 重心剧烈偏移
|
||
- 步态异常(步幅变小、拖步、摇晃加剧)
|
||
- 扶靠行为(突然扶墙/扶椅子)
|
||
- 长时间静止(超过N秒)
|
||
- 蹲起困难
|
||
|
||
### 12.3 分等级预警机制
|
||
|
||
| 等级 | 触发条件 | 响应动作 |
|
||
|---|---|---|
|
||
| 提示级 | 重心偏移、步态轻微异常 | App内文字提示,不通知家属 |
|
||
| 警告级 | 长时间静止、扶靠行为、蹲起困难 | 语音询问“您还好吗?需要帮助吗?” |
|
||
| 紧急级 | 确认跌倒、语音询问无响应 | 通知家庭组 + 拨打第一联系人 + 发送带定位的SOS短信 |
|
||
|
||
**语音询问流程(跟练场景,手机前台)**:
|
||
1. 手机AI检测到疑似跌倒。
|
||
2. 立即触发语音询问“您还好吗?需要帮助吗?”。
|
||
3. 老人回应:说“没事”→记录日志继续;无响应(5-10秒)→升级紧急级;说“救命”→立即升级紧急级。
|
||
4. 紧急级:通知家庭组 + 拨打第一联系人 + 发送SOS短信。
|
||
|
||
**多信号融合判定**:手机端AI检测到“疑似跌倒”后,先触发语音询问,等待5-10秒。若老人无响应或发出求助语音,再升级为紧急级通知。若老人佩戴了智能手环,手环检测到“自由落体+撞击”时,才判定为真正跌倒,手机端AI仅作为辅助。
|
||
|
||
### 12.4 技术约束
|
||
- 手机摄像头方案只能前台运行,无法做全天候监测。
|
||
- 全天候监测必须依赖可穿戴设备或居家传感器。
|
||
- 一期只做“跟练时手机端跌倒预警 + 语音询问”。
|
||
- 二期接入智能手环,三期接入居家毫米波雷达。
|
||
|
||
### 12.5 数据库设计
|
||
|
||
| 表名 | 用途 | 关键字段 |
|
||
|---|---|---|
|
||
| fitness_video | 体适能视频库 | 指标名称、视频URL、动作要领文本 |
|
||
| exercise_log | 跟练记录 | 老人ID、视频ID、动作标准度、完成度、跌倒预警次数、AI纠偏报告 |
|
||
|
||
|
||
## 十三、 O2O志愿者服务与预约闭环
|
||
|
||
### 13.1 分期实施策略
|
||
- **一期**:社区集中服务,志愿者在固定时间固定地点为老人服务,不需上门。
|
||
- **二期**:上线O2O上门预约、导航、打卡。
|
||
- **三期**:与现有社区养老服务体系合作,接入其志愿者资源。
|
||
|
||
### 13.2 预约流程(二期)
|
||
WebApp发起预约(协助测评/指导跟练)→ 志愿者接单 → 上门服务 → 老人确认评价。
|
||
|
||
### 13.3 服务打卡与定位凭证
|
||
- GPS定位仅作辅助记录,不作为唯一依据。
|
||
- **核心凭证 = 老人的确认与评价**。
|
||
|
||
**服务流程**:
|
||
1. 志愿者到达老人家附近,点击“开始服务”(记录GPS和时间)。
|
||
2. 服务过程中,上传照片(带水印:时间+地点)。
|
||
3. 服务结束后,系统自动向家庭组推送确认通知。
|
||
4. 老人/家属点击【确认完成】并打分(1-5星)。
|
||
5. 只有老人确认后,服务才被标记为“已完成”,计入服务时长/积分。
|
||
6. 24小时内未确认,系统默认“自动确认”,但标记为“未评价”。
|
||
|
||
### 13.4 志愿者资质审核
|
||
1. 注册后需上传:身份证、健康证、无犯罪记录证明。
|
||
2. 由机构管理员审核,审核通过后才能接单。
|
||
3. 上岗前必须完成培训(在线课程+考试)。
|
||
|
||
### 13.5 服务质量管理
|
||
1. 服务SOP:签到→问候→服务→记录→签退。
|
||
2. 双人上门制度:高风险场景建议双人上门。
|
||
3. 服务保险:为志愿者购买意外险。
|
||
4. 投诉与仲裁机制。
|
||
5. 服务评价体系:老人评价+系统自动评分综合计算信用分。
|
||
|
||
### 13.6 派单逻辑
|
||
1. 优先匹配同县区的志愿者机构。
|
||
2. 同县区没有机构,向上级(市、省、国家)逐级查找。
|
||
3. 紧急情况可直接基于GPS距离指定最近志愿者。
|
||
|
||
### 13.7 志愿者激励设计
|
||
- 积分/星级/荣誉体系,与政府购买服务、社区评优挂钩。
|
||
- 服务时长、老人评价、服务次数综合计算积分。
|
||
- 积分可兑换小礼品、服务、荣誉证书等。
|
||
|
||
### 13.8 费用支付预留设计(一期预留,二期实现)
|
||
- 一期:公益志愿服务,无资金流转,仅记录服务时长与积分。
|
||
- 二期:接入微信/支付宝服务商分账,实现市场化付费服务。
|
||
- `volunteer_service_log` 表预留 `service_type`、`pricing_rule_id`、`service_fee`、`platform_fee`、`volunteer_income`、`settlement_status`、`settlement_time`、`payment_order_id` 字段。
|
||
- 二期新增 `pricing_rule`、`payment_order`、`volunteer_wallet`、`withdraw_record` 表。
|
||
|
||
|
||
## 十四、 数据模型总览
|
||
|
||
| 表名 | 用途 |
|
||
|---|---|
|
||
| elder | 老人档案主表 |
|
||
| elder_archive | 老人归档表 |
|
||
| family_group / family_member | 家庭组 |
|
||
| emergency_contact | 紧急联系人 |
|
||
| sys_org / sys_region / sys_user_org | 组织架构与区划 |
|
||
| sys_user | 用户表 |
|
||
| scale_master / scale_version | 量表与版本 |
|
||
| scale_answer_record | 答卷记录 |
|
||
| assessment_task | 评估任务 |
|
||
| exercise_prescription | 运动处方 |
|
||
| knowledge_base | 专家知识库(含健康教育内容) |
|
||
| qa_log | 问答记录 |
|
||
| expert_schedule / expert_answer / knowledge_audit_log | 专家应答 |
|
||
| health_edu_push_rule / health_edu_push_log | 健康教育推送 |
|
||
| fitness_video / exercise_log | 体适能视频与跟练记录 |
|
||
| volunteer / volunteer_appointment / volunteer_service_log / volunteer_complaint | 志愿者服务 |
|
||
| pricing_rule / payment_order / volunteer_wallet / withdraw_record | 二期支付相关 |
|
||
|
||
|
||
## 十五、 状态枚举值(完整版)
|
||
|
||
### 15.1 用户与权限
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| sys_user.status | 0正常 / 1停用 / 2锁定 |
|
||
| sys_user.user_type | 1老人 / 2家属 / 3志愿者 / 4专家 / 5管理员 |
|
||
| sys_org.org_type | COUNTRY / PROVINCE / CITY / COUNTY / VOLUNTEER_ORG / EXPERT_ORG |
|
||
| sys_org.status | 0正常 / 1停用 |
|
||
|
||
### 15.2 老人与家庭
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| elder.status | 0正常 / 1停用 |
|
||
| elder.consent_status | 0未签署 / 1已签署 / 2已撤回 |
|
||
| elder.data_source | 1本人 / 2家属 / 3志愿者 / 4机构导入 |
|
||
| family_group.status | 0正常 / 1已归档 |
|
||
| family_member.status | 0正常 / 1退出 |
|
||
| family_member.role | 1主管理员 / 2普通成员 / 3只读 |
|
||
| family_member.relation_type | 1配偶 / 2子女 / 3孙辈 / 4其他亲属 / 5社区网格员 |
|
||
|
||
### 15.3 量表与评估
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| scale_version.status | 0草稿 / 1启用 / 2停用 |
|
||
| assessment_task.status | 0待填写 / 1已填写 / 2无需填写 / 3已跳过 / 4已复用历史数据 / 5已作废 |
|
||
| assessment_task.screening_type | 1健康初筛 / 2运动准入筛查 |
|
||
| scale_answer_record.operator_type | 1本人 / 2家属 / 3志愿者 / 4医生 |
|
||
| scale_answer_record.confidence_level | 1高 / 2中 / 3低 |
|
||
|
||
### 15.4 处方与干预
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| exercise_prescription.status | 0草稿 / 1已下发待采纳 / 2已采纳执行中 / 3已完成 / 4已忽略 / 5已终止 / 6已作废 |
|
||
|
||
### 15.5 志愿者与服务
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| volunteer.qualification_status | 0待审核 / 1已通过 / 2已驳回 / 3已过期 |
|
||
| volunteer_appointment.status | 0待接单 / 1已接单 / 2服务中 / 3已完成 / 4已取消 / 5已作废 |
|
||
| volunteer_appointment.service_type | 1协助测评 / 2指导跟练 / 3健康咨询 / 4其他 |
|
||
| volunteer_service_log.elder_confirm_status | 0待确认 / 1已确认 / 2未评价自动确认 |
|
||
| volunteer_service_log.settlement_status | 0无需结算 / 1待结算 / 2已结算 / 3已退款 |
|
||
| volunteer_service_log.service_type | 1公益免费 / 2政府购买 / 3市场化收费 |
|
||
| volunteer_complaint.complaint_type | 1服务态度 / 2专业能力 / 3迟到早退 / 4隐私泄露 / 5财物纠纷 / 6其他 |
|
||
|
||
### 15.6 知识库与问答
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| knowledge_base.content_type | 1健康教育 / 2问答知识 |
|
||
| knowledge_base.audit_status | 0待审核 / 1已通过 / 2已驳回 |
|
||
| knowledge_base.source | 1专家录入 / 2AI生成待审核 / 3AI生成已审核 |
|
||
| qa_log.matched_type | 1知识库 / 2专家应答 / 3大模型兜底 / 4未命中 |
|
||
| qa_log.status | 0待处理 / 1已回答 / 2已关闭 |
|
||
| expert_answer.review_status | 0待复核 / 1已复核通过 / 2已驳回 |
|
||
| expert_schedule.status | 0正常 / 1请假 / 2停用 |
|
||
|
||
### 15.7 健康教育推送
|
||
| 字段 | 枚举值 |
|
||
|---|---|
|
||
| health_edu_push_rule.status | 0停用 / 1启用 |
|
||
| health_edu_push_log.read_status | 0未读 / 1已读 |
|
||
|
||
|
||
## 十六、 API接口清单
|
||
|
||
### 16.1 认证模块
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取扫码二维码 | GET | /app-api/auth/qrcode |
|
||
| 扫码登录确认 | POST | /app-api/auth/qrcode/confirm |
|
||
| 扫码登录轮询 | GET | /app-api/auth/qrcode/poll |
|
||
| 公众号登录 | POST | /app-api/auth/wx-login |
|
||
| 手机号验证码发送 | POST | /app-api/auth/sms/send |
|
||
| 手机号验证码登录 | POST | /app-api/auth/sms/login |
|
||
| 账号密码登录 | POST | /app-api/auth/login |
|
||
| 退出登录 | POST | /app-api/auth/logout |
|
||
| 刷新Token | POST | /app-api/auth/refresh |
|
||
|
||
### 16.2 用户与家庭组
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取当前用户信息 | GET | /app-api/user/info |
|
||
| 绑定微信 | POST | /app-api/user/bind-wx |
|
||
| 解绑微信 | POST | /app-api/user/unbind-wx |
|
||
| 获取家庭组列表 | GET | /app-api/family/list |
|
||
| 创建家庭组 | POST | /app-api/family/create |
|
||
| 添加家庭成员 | POST | /app-api/family/member/add |
|
||
| 移除家庭成员 | DELETE | /app-api/family/member/remove |
|
||
| 切换当前管理的老人 | POST | /app-api/family/switch |
|
||
|
||
### 16.3 老人档案
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 老人档案列表 | GET | /app-api/elder/list |
|
||
| 老人档案详情 | GET | /app-api/elder/{id} |
|
||
| 创建老人档案 | POST | /app-api/elder/create |
|
||
| 更新老人档案 | PUT | /app-api/elder/{id} |
|
||
| 身份证OCR识别 | POST | /app-api/elder/ocr |
|
||
| 签署知情同意 | POST | /app-api/elder/consent/sign |
|
||
| 老人归档 | POST | /app-api/elder/{id}/archive |
|
||
| 获取区划树 | GET | /app-api/region/tree |
|
||
| 获取区划海拔 | GET | /app-api/region/{code}/altitude |
|
||
| 紧急联系人列表 | GET | /app-api/elder/{id}/emergency-contacts |
|
||
| 添加紧急联系人 | POST | /app-api/elder/{id}/emergency-contacts |
|
||
| 更新紧急联系人 | PUT | /app-api/emergency-contacts/{id} |
|
||
| 删除紧急联系人 | DELETE | /app-api/emergency-contacts/{id} |
|
||
|
||
### 16.4 量表与评估
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取评估任务列表 | GET | /app-api/assessment/tasks |
|
||
| 获取量表详情 | GET | /app-api/assessment/scale/{id} |
|
||
| 提交量表答案 | POST | /app-api/assessment/answer |
|
||
| 保存答题进度 | POST | /app-api/assessment/progress |
|
||
| 获取评估历史 | GET | /app-api/assessment/history |
|
||
| 获取综合评估报告 | GET | /app-api/assessment/report/{elderId} |
|
||
| 触发运动准入筛查 | POST | /app-api/assessment/screening/trigger |
|
||
|
||
### 16.5 运动处方
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取当前处方 | GET | /app-api/prescription/current |
|
||
| 获取处方历史 | GET | /app-api/prescription/history |
|
||
| 采纳处方 | POST | /app-api/prescription/{id}/accept |
|
||
| 忽略处方 | POST | /app-api/prescription/{id}/ignore |
|
||
| 完成处方 | POST | /app-api/prescription/{id}/complete |
|
||
|
||
### 16.6 视频跟练与跌倒预警
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取跟练视频列表 | GET | /app-api/exercise/videos |
|
||
| 获取视频详情 | GET | /app-api/exercise/videos/{id} |
|
||
| 提交跟练记录 | POST | /app-api/exercise/log |
|
||
| 跌倒预警上报 | POST | /app-api/exercise/fall-alert |
|
||
| 获取跟练历史 | GET | /app-api/exercise/history |
|
||
|
||
### 16.7 专家应答与知识库
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 老人提交问题 | POST | /app-api/qa/ask |
|
||
| 获取问答历史 | GET | /app-api/qa/history |
|
||
| 评价回答 | POST | /app-api/qa/{id}/rate |
|
||
| 专家获取待答问题列表 | GET | /admin-api/expert/questions |
|
||
| 专家回答问题 | POST | /admin-api/expert/answer |
|
||
| 专家复核回答 | POST | /admin-api/expert/review |
|
||
| 知识库列表 | GET | /admin-api/knowledge/list |
|
||
| 知识库新增 | POST | /admin-api/knowledge/create |
|
||
| 知识库审核 | POST | /admin-api/knowledge/audit |
|
||
|
||
### 16.8 健康教育
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 获取个性化推荐内容 | GET | /app-api/education/recommend |
|
||
| 获取内容分类 | GET | /app-api/education/categories |
|
||
| 获取内容列表 | GET | /app-api/education/list |
|
||
| 获取内容详情 | GET | /app-api/education/{id} |
|
||
| 记录阅读状态 | POST | /app-api/education/{id}/read |
|
||
| 打卡任务列表 | GET | /app-api/education/tasks |
|
||
| 完成任务 | POST | /app-api/education/tasks/{id}/complete |
|
||
|
||
### 16.9 志愿者服务
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 志愿者注册 | POST | /app-api/volunteer/register |
|
||
| 上传资质证明 | POST | /app-api/volunteer/qualification |
|
||
| 获取附近订单 | GET | /app-api/volunteer/orders/nearby |
|
||
| 接单 | POST | /app-api/volunteer/orders/{id}/accept |
|
||
| 开始服务(签到) | POST | /app-api/volunteer/orders/{id}/check-in |
|
||
| 上传服务照片 | POST | /app-api/volunteer/orders/{id}/photo |
|
||
| 结束服务(签退) | POST | /app-api/volunteer/orders/{id}/check-out |
|
||
| 获取我的服务记录 | GET | /app-api/volunteer/orders/mine |
|
||
| 老人发起预约 | POST | /app-api/appointment/create |
|
||
| 老人确认服务 | POST | /app-api/appointment/{id}/confirm |
|
||
| 老人评价服务 | POST | /app-api/appointment/{id}/rate |
|
||
| 投诉志愿者 | POST | /app-api/appointment/{id}/complaint |
|
||
|
||
### 16.10 后台管理
|
||
|
||
| 接口 | 方法 | 路径 |
|
||
|---|---|---|
|
||
| 组织架构树 | GET | /admin-api/org/tree |
|
||
| 组织新增/编辑/删除 | POST/PUT/DELETE | /admin-api/org |
|
||
| 用户列表 | GET | /admin-api/user/list |
|
||
| 用户新增/编辑/停用 | POST/PUT/DELETE | /admin-api/user |
|
||
| 量表管理 | GET/POST/PUT | /admin-api/scale |
|
||
| 量表版本管理 | GET/POST/PUT | /admin-api/scale/version |
|
||
| 量表版本对比 | GET | /admin-api/scale/version/diff |
|
||
| 数据统计 | GET | /admin-api/stats/overview |
|
||
| 地图热力图数据 | GET | /admin-api/stats/map |
|
||
| 专家排班管理 | GET/POST/PUT | /admin-api/expert/schedule |
|
||
| 服务记录查询 | GET | /admin-api/service/logs |
|
||
| 数据导出 | GET | /admin-api/export/{type} |
|
||
|
||
|
||
## 十七、 页面清单与路由
|
||
|
||
### 17.1 老人端 WebApp
|
||
|
||
| 页面 | 路由 |
|
||
|---|---|
|
||
| 登录页 | /login |
|
||
| 二维码登录页 | /qrcode |
|
||
| 首页 | /home |
|
||
| 评估任务列表 | /assessment/tasks |
|
||
| 量表答题页 | /assessment/scale/:id |
|
||
| 评估结论页 | /assessment/result/:id |
|
||
| 综合评估报告 | /assessment/report |
|
||
| 我的处方 | /prescription |
|
||
| 处方详情 | /prescription/:id |
|
||
| 视频跟练 | /exercise/:id |
|
||
| 跟练记录 | /exercise/history |
|
||
| 健康问答 | /qa |
|
||
| 健康教育 | /education |
|
||
| 健康教育详情 | /education/:id |
|
||
| 打卡任务 | /education/tasks |
|
||
| 预约服务 | /appointment |
|
||
| 预约详情 | /appointment/:id |
|
||
| 个人中心 | /profile |
|
||
| SOS紧急联系 | /sos |
|
||
|
||
### 17.2 家属端 WebApp
|
||
|
||
| 页面 | 路由 |
|
||
|---|---|
|
||
| 家属首页 | /family/home |
|
||
| 老人档案 | /family/elder/:id |
|
||
| 代填量表 | /family/elder/:id/assessment |
|
||
| 查看评估报告 | /family/elder/:id/report |
|
||
| 服务确认与评价 | /family/appointment/:id |
|
||
| 家庭组管理 | /family/group |
|
||
| 健康周报 | /family/weekly-report |
|
||
|
||
### 17.3 志愿者端 WebApp
|
||
|
||
| 页面 | 路由 |
|
||
|---|---|
|
||
| 志愿者首页 | /volunteer/home |
|
||
| 附近订单 | /volunteer/orders |
|
||
| 订单详情 | /volunteer/orders/:id |
|
||
| 服务签到 | /volunteer/orders/:id/check-in |
|
||
| 我的服务记录 | /volunteer/records |
|
||
| 个人资料与资质 | /volunteer/profile |
|
||
|
||
### 17.4 专家端 WebApp
|
||
|
||
| 页面 | 路由 |
|
||
|---|---|
|
||
| 专家工作台 | /expert/dashboard |
|
||
| 问题应答 | /expert/questions |
|
||
| 报告复核 | /expert/reports |
|
||
| 知识库审核 | /expert/knowledge |
|
||
|
||
### 17.5 后台管理端
|
||
|
||
| 页面 | 路由 |
|
||
|---|---|
|
||
| 数据看板 | /admin/dashboard |
|
||
| 老人档案管理 | /admin/elder |
|
||
| 家庭组管理 | /admin/family |
|
||
| 组织架构管理 | /admin/org |
|
||
| 用户管理 | /admin/user |
|
||
| 量表管理 | /admin/scale |
|
||
| 量表版本对比 | /admin/scale/version/diff |
|
||
| 评估记录 | /admin/assessment |
|
||
| 运动处方管理 | /admin/prescription |
|
||
| 视频库管理 | /admin/video |
|
||
| 知识库管理 | /admin/knowledge |
|
||
| 专家排班 | /admin/expert/schedule |
|
||
| 志愿者管理 | /admin/volunteer |
|
||
| 服务记录查询 | /admin/service/log |
|
||
| 投诉仲裁 | /admin/complaint |
|
||
| 健康教育内容管理 | /admin/education |
|
||
| 推送规则管理 | /admin/push-rule |
|
||
| 数据统计与导出 | /admin/stats |
|
||
| 系统配置 | /admin/settings |
|
||
|
||
|
||
## 十八、 定时任务清单
|
||
|
||
| 任务名 | 频率 | 说明 |
|
||
|---|---|---|
|
||
| 评估任务超时提醒 | 每日 08:00 | 检查7天未完成的评估任务,提醒家属 |
|
||
| 评估任务自动跳过 | 每日 08:05 | 14天未完成,自动标记“已跳过”,触发综合评估 |
|
||
| 数据归档任务 | 每月1日 02:00 | 按冷热数据分离策略归档 |
|
||
| 志愿者资质过期检查 | 每日 09:00 | 资质过期前30天提醒续期 |
|
||
| 志愿者资质自动冻结 | 每日 09:05 | 资质过期后自动停用 |
|
||
| 专家问题升级 | 每小时 | 检查超时未应答的问题,自动升级 |
|
||
| 专家排班提醒 | 每日 07:00 | 提醒当日值班专家 |
|
||
| 健康教育推送 | 按规则触发 | 根据推送规则执行 |
|
||
| 综合评估自动触发 | 实时 | 评估任务全部完成后触发 |
|
||
| 历史数据复用标记 | 每日 03:00 | 检查有效期内可复用的历史结论 |
|
||
| 老人年龄更新 | 每日 00:30 | 根据出生日期更新年龄字段 |
|
||
| 家庭组归档检查 | 每日 04:00 | 检查归档家庭组状态 |
|
||
| 大模型成本统计 | 每日 23:00 | 统计当日大模型调用次数和Token消耗 |
|
||
|
||
|
||
## 十九、 消息通知模板
|
||
|
||
| 通知类型 | 触发条件 | 推送渠道 | 模板示例 |
|
||
|---|---|---|---|
|
||
| 评估任务提醒 | 评估任务生成后 | APP推送 | “您有1项新评估任务,预计用时3分钟,点击开始” |
|
||
| 评估超时提醒 | 7天未完成评估 | APP推送+短信 | “您的评估任务已超时,请尽快完成” |
|
||
| 评估结论通知 | 单量表出结论后 | APP推送 | “您的抑郁评估结果为轻度抑郁,系统已为您推荐相关内容” |
|
||
| 综合评估报告 | 专家复核后 | APP推送 | “您的综合健康报告已生成,点击查看” |
|
||
| 处方下发通知 | 处方生成后 | APP推送 | “系统为您生成了新的运动处方,请查看是否采纳” |
|
||
| 处方执行提醒 | 每日固定时间 | APP推送 | “今天的运动处方还没完成,记得跟练哦” |
|
||
| 复评提醒 | 干预周期结束 | APP推送+短信 | “您的干预周期已结束,请进行复评” |
|
||
| 服务确认通知 | 志愿者服务完成后 | APP推送 | “志愿者小王已完成服务,请确认并评价” |
|
||
| 服务超时自动确认 | 24小时未确认 | APP推送 | “您的服务已自动确认,如有疑问请联系客服” |
|
||
| SOS紧急通知 | SOS触发后 | 短信+电话+APP推送 | “您的家人XXX发出紧急求助,位置:XXX” |
|
||
| 跌倒预警通知 | 疑似跌倒触发 | APP推送(家庭组) | “检测到您的家人可能有跌倒风险,请及时查看” |
|
||
| 专家应答通知 | 专家回答后 | APP推送 | “您的问题已有专家回复,点击查看” |
|
||
| 健康教育推送 | 按规则触发 | APP推送 | “根据您的评估结果,为您推荐以下内容” |
|
||
| 志愿者资质到期提醒 | 到期前30天 | APP推送 | “您的健康证即将到期,请及时更新” |
|
||
| 志愿者订单提醒 | 附近有新订单 | APP推送 | “附近有1个新订单,点击查看” |
|
||
|
||
|
||
## 二十、 权限点定义
|
||
|
||
### 20.1 老人端权限
|
||
| 权限码 | 说明 |
|
||
|---|---|
|
||
| elder:profile:view | 查看本人档案 |
|
||
| elder:profile:edit | 编辑本人档案 |
|
||
| assessment:task:view | 查看评估任务 |
|
||
| assessment:answer:submit | 提交量表答案 |
|
||
| assessment:report:view | 查看综合评估报告 |
|
||
| prescription:view | 查看处方 |
|
||
| prescription:accept | 采纳处方 |
|
||
| prescription:ignore | 忽略处方 |
|
||
| exercise:video:view | 查看跟练视频 |
|
||
| exercise:log:submit | 提交跟练记录 |
|
||
| qa:ask | 提问 |
|
||
| qa:history:view | 查看问答历史 |
|
||
| education:view | 查看健康教育 |
|
||
| appointment:create | 发起预约 |
|
||
| appointment:confirm | 确认服务 |
|
||
| appointment:rate | 评价服务 |
|
||
|
||
### 20.2 家属端权限
|
||
| 权限码 | 说明 |
|
||
|---|---|
|
||
| family:group:manage | 家庭组管理 |
|
||
| family:elder:view | 查看家庭组老人档案 |
|
||
| family:elder:edit | 代录老人档案 |
|
||
| family:assessment:submit | 代填量表 |
|
||
| family:appointment:confirm | 代为确认服务 |
|
||
|
||
### 20.3 志愿者端权限
|
||
| 权限码 | 说明 |
|
||
|---|---|
|
||
| volunteer:order:view | 查看附近订单 |
|
||
| volunteer:order:accept | 接单 |
|
||
| volunteer:service:check-in | 服务签到 |
|
||
| volunteer:service:check-out | 服务签退 |
|
||
| volunteer:service:photo | 上传服务照片 |
|
||
| volunteer:record:view | 查看服务记录 |
|
||
| volunteer:profile:edit | 编辑个人资料 |
|
||
|
||
### 20.4 专家端权限
|
||
| 权限码 | 说明 |
|
||
|---|---|
|
||
| expert:question:view | 查看待答问题 |
|
||
| expert:question:answer | 回答问题 |
|
||
| expert:report:review | 复核综合评估报告 |
|
||
| expert:knowledge:audit | 知识库审核 |
|
||
| expert:scale:manage | 量表版本管理 |
|
||
|
||
### 20.5 管理员权限
|
||
| 权限码 | 说明 |
|
||
|---|---|
|
||
| admin:elder:manage | 老人档案管理 |
|
||
| admin:org:manage | 组织架构管理 |
|
||
| admin:user:manage | 用户管理 |
|
||
| admin:scale:manage | 量表管理 |
|
||
| admin:knowledge:manage | 知识库管理 |
|
||
| admin:volunteer:manage | 志愿者管理 |
|
||
| admin:stats:view | 数据统计 |
|
||
| admin:export | 数据导出 |
|
||
| admin:settings | 系统配置 |
|
||
|
||
|
||
## 二十一、 数据字典
|
||
|
||
### 21.1 民族字典
|
||
汉族、蒙古族、回族、藏族、维吾尔族、苗族、彝族、壮族、布依族、朝鲜族、满族、侗族、瑶族、白族、土家族、哈尼族、哈萨克族、傣族、黎族、傈僳族、佤族、畲族、高山族、拉祜族、水族、东乡族、纳西族、景颇族、柯尔克孜族、土族、达斡尔族、仫佬族、羌族、布朗族、撒拉族、毛南族、仡佬族、锡伯族、阿昌族、普米族、塔吉克族、怒族、乌孜别克族、俄罗斯族、鄂温克族、德昂族、保安族、裕固族、京族、塔塔尔族、独龙族、鄂伦春族、赫哲族、门巴族、珞巴族、基诺族、其他。
|
||
|
||
### 21.2 其他字典
|
||
| 字典 | 枚举值 |
|
||
|---|---|
|
||
| 婚姻状况 | 0未婚 / 1已婚 / 2离异 / 3丧偶 |
|
||
| 教育程度 | 1文盲 / 2小学 / 3初中 / 4高中 / 5大专 / 6本科及以上 |
|
||
| 职业 | 农民 / 工人 / 教师 / 医生 / 公务员 / 军人 / 商人 / 工程师 / 会计 / 律师 / 艺术家 / 服务员 / 司机 / 技术人员 / 自由职业 / 无业 / 其他 |
|
||
| 社保类型 | 1职工医保 / 2居民医保 / 3新农合 / 4无 |
|
||
| 收入区间 | 1无收入 / 2 1万以下 / 3 1-3万 / 4 3-5万 / 5 5万以上 |
|
||
| 照护等级 | 1自理 / 2半自理 / 3失能 |
|
||
| 居住状况 | 1独居 / 2与配偶 / 3与子女 / 4养老机构 / 5其他 |
|
||
| 居住地类型 | 1城市 / 2农村 / 3城镇 / 4牧区 / 5其他 |
|
||
| 户口类型 | 1城镇 / 2农村 |
|
||
| 宗教信仰 | 无 / 佛教 / 道教 / 伊斯兰教 / 基督教 / 天主教 / 其他 |
|
||
| 数据来源 | 1本人 / 2家属 / 3志愿者 / 4机构导入 |
|
||
| 知情同意状态 | 0未签署 / 1已签署 / 2已撤回 |
|
||
| 服务类型 | 1协助测评 / 2指导跟练 / 3健康咨询 / 4其他 |
|
||
| 投诉类型 | 1服务态度 / 2专业能力 / 3迟到早退 / 4隐私泄露 / 5财物纠纷 / 6其他 |
|
||
|
||
|
||
## 二十二、 列表选择排序规范
|
||
|
||
### 22.1 排序原则
|
||
| 类型 | 排序方式 | 举例 |
|
||
|---|---|---|
|
||
| 无逻辑顺序的选项 | 按拼音字母排序 | 民族、职业、宗教信仰、区划、技能标签 |
|
||
| 有逻辑顺序的选项 | 按业务逻辑排序 | 婚姻状况、教育程度、收入区间、照护等级 |
|
||
| 英文缩写 | 按字母顺序排序 | GDS-15、MMSE、ACSM |
|
||
| 数字开头 | 数字优先,字母其次 | 1-3万、3-5万 |
|
||
|
||
### 22.2 需要拼音排序的字段清单
|
||
|
||
| 字段 | 所在表 | 排序方式 |
|
||
|---|---|---|
|
||
| 民族 | elder.ethnicity | 拼音 |
|
||
| 职业 | elder.last_occupation | 拼音 |
|
||
| 宗教信仰 | elder.religion | 拼音 |
|
||
| 区划(省/市/县) | sys_region.name | 拼音 |
|
||
| 组织名称 | sys_org.org_name | 拼音 |
|
||
| 志愿者技能标签 | volunteer.skill_tags | 拼音 |
|
||
| 健康教育分类 | knowledge_base.category | 拼音 |
|
||
| 投诉类型 | volunteer_complaint.complaint_type | 拼音 |
|
||
| 残疾类型 | elder.disability_type | 拼音 |
|
||
|
||
### 22.3 需要业务逻辑排序的字段清单
|
||
|
||
| 字段 | 所在表 | 排序方式 |
|
||
|---|---|---|
|
||
| 婚姻状况 | elder.marital_status | 未婚→已婚→离异→丧偶 |
|
||
| 教育程度 | elder.education_level | 文盲→小学→初中→高中→大专→本科及以上 |
|
||
| 收入区间 | elder.income_range | 无收入→1万以下→1-3万→3-5万→5万以上 |
|
||
| 照护等级 | elder.care_level | 自理→半自理→失能 |
|
||
| 社保类型 | elder.social_security_type | 职工医保→居民医保→新农合→无 |
|
||
| 居住状况 | elder.living_situation | 独居→与配偶→与子女→养老机构→其他 |
|
||
| 居住地类型 | elder.residence_type | 城市→农村→城镇→牧区→其他 |
|
||
| 量表严重程度 | scale_answer_record.severity | 正常→轻度→中度→重度 |
|
||
| 处方状态 | exercise_prescription.status | 草稿→已下发→已采纳→已完成 |
|
||
| 预约状态 | volunteer_appointment.status | 待接单→已接单→服务中→已完成 |
|
||
| 评估任务状态 | assessment_task.status | 待填写→已填写→无需填写→已跳过 |
|
||
| 知识库审核状态 | knowledge_base.audit_status | 待审核→已通过→已驳回 |
|
||
|
||
### 22.4 技术实现要求
|
||
- **后端统一排序**:所有字典表增加 `sort_order` 字段,由后端按拼音排序后写入,前端不自行排序。
|
||
- **MySQL 排序规则**:使用 `utf8mb4_zh_0900_as_cs` 或 `CONVERT(... USING gbk)` 实现中文拼音排序。
|
||
- **Java 排序规则**:使用 `Collator.getInstance(Locale.CHINA)` 进行中文拼音排序。
|
||
- **前端排序**:使用 `localeCompare('zh-Hans-CN')` 方法。
|
||
- **例外处理**:英文缩写按字母顺序,数字开头按数值大小。
|
||
|
||
|
||
## 二十三、 交付范围切分
|
||
|
||
### 23.1 一期交付(3-6个月)
|
||
|
||
**后端**:
|
||
- 用户认证(扫码/公众号/手机号验证码登录)
|
||
- 老人档案管理(含OCR识别、家庭组、紧急联系人)
|
||
- 组织架构(树形结构、数据权限)
|
||
- 数据治理与历史数据导入
|
||
- 动态量表引擎(版本控制、按需分发)
|
||
- 六大核心量表(GDS-15、身体状况安全问卷、MMSE、营养评估、生活自主能力、跌倒风险)
|
||
- 单量表计分与结论引擎
|
||
- 风险判定引擎(决策树)
|
||
- 综合评估模型(专家复核流程)
|
||
- 专家应答体系(三级应答、排班、质量控制)
|
||
- 健康问答(知识库优先+专家应答+大模型兜底)
|
||
- 健康教育(内容管理+千人千面推送+打卡任务)
|
||
- 视频跟练(视频库+跟练记录)
|
||
- 跌倒预警(跟练时手机端本地AI+语音询问+分等级预警)
|
||
- 志愿者管理(注册、资质审核、基础档案)
|
||
- 社区集中服务记录
|
||
- 定时任务、消息通知、数据字典、权限点
|
||
|
||
**前端**:
|
||
- 老人端 WebApp(登录、首页、评估、处方、跟练、问答、健康教育、个人中心、SOS)
|
||
- 家属端 WebApp(家庭组、代录、查看报告、确认服务)
|
||
- 志愿者端 WebApp(注册、资质、服务记录)
|
||
- 专家端 WebApp(问题应答、报告复核)
|
||
- 后台管理端(数据看板、老人档案、组织架构、量表管理、知识库、专家排班、志愿者管理、数据统计)
|
||
|
||
### 23.2 二期交付(6-12个月)
|
||
- 跌倒全天候监测(智能手环接入)
|
||
- O2O志愿者上门预约(派单、导航、签到、服务确认)
|
||
- 健康教育内容扩充(视频、直播)
|
||
- 市场化付费能力(服务计价、支付、结算、提现)
|
||
- 数据统计与科研分析模块完善
|
||
- 大模型本地部署
|
||
- 向量数据库引入
|
||
|
||
### 23.3 三期交付(12-18个月)
|
||
- 居家毫米波雷达接入
|
||
- 科研数据仓库建设
|
||
- 多地区扩展
|
||
- 与政府养老平台对接
|
||
- 智能硬件生态扩展
|
||
|
||
|
||
## 二十四、 第三方服务清单
|
||
|
||
| 服务 | 用途 | 申请所需 | 备注 |
|
||
|---|---|---|---|
|
||
| 微信开放平台 | 扫码登录、公众号登录 | 企业资质、认证费300元/年 | 需提前申请 |
|
||
| 微信公众号 | 公众号登录、模板消息 | 企业资质、认证费300元/年 | 服务号优先 |
|
||
| 阿里云/腾讯云短信 | 验证码、SOS通知 | 企业资质、模板报备 | 模板审核需提前 |
|
||
| 阿里云OCR | 身份证识别 | 企业资质、开通服务 | 按调用量计费 |
|
||
| 阿里云OSS | 文件存储 | 企业资质、开通服务 | 按存储量计费 |
|
||
| 高德/百度地图 | 地址选点、导航、海拔查询 | 企业资质、申请Key | 需评估配额 |
|
||
| 阿里云滑动验证 | 防刷 | 企业资质、开通服务 | 按调用量计费 |
|
||
| 通义千问/文心一言 | 大模型兜底 | 企业资质、开通API | 需签署DPA |
|
||
| 服务器与带宽 | 部署 | 阿里云/腾讯云ECS | 按配置计费 |
|
||
| 域名与SSL证书 | WebApp访问 | 域名注册、SSL证书 | 需备案 |
|
||
| 微信支付/支付宝 | 二期市场化付费 | 企业资质、商户号 | 二期申请 |
|
||
|
||
|
||
## 二十五、 最终交付声明
|
||
|
||
本文档为《智慧养老与主动健康管理平台 全栈开发总体方案》的**最终定稿(第五版·直接使用版)**,已通过:
|
||
|
||
1. **五轮批判性审查**:业务闭环、数据生命周期、状态机边界、内容体系、外部依赖、边缘场景、交付规格、API请求方法规范、列表排序规范,全部覆盖。
|
||
2. **交付规格审查**:状态枚举值、API接口清单、页面清单、定时任务、消息模板、权限点、数据字典、交付范围、第三方服务清单、项目里程碑,全部齐备。
|
||
3. **API规范审查**:按RESTful语义使用GET/POST/PUT/DELETE,安全靠HTTPS+加密+鉴权+参数校验+日志脱敏。
|
||
4. **列表排序规范**:明确区分“拼音排序”和“业务逻辑排序”,所有字典表增加 `sort_order` 字段,后端统一排序,前端不自行排序。
|
||
5. **外部依赖审查**:微信、地图、短信均有降级方案,不依赖单一外部服务。
|
||
6. **边缘场景审查**:老人不会用手机、三方不配合、数据膨胀,均有对应策略。
|
||
|
||
**本方案可直接交付开发团队使用。**
|
||
|
||
开发团队拿到本文档后:
|
||
- 后端开发可直接依据「数据库设计+API接口清单+状态枚举值+定时任务+权限点」进行编码。
|
||
- 前端开发可直接依据「页面清单+路由+状态枚举值+列表排序规范」进行开发。
|
||
- 测试团队可直接依据「API接口清单+状态枚举值+消息模板」编写测试用例。
|
||
- 项目经理可直接依据「交付范围切分+项目里程碑+第三方服务清单」排期和采购。
|
||
|
||
**祝项目顺利落地,真正为老年人带来福祉。** |