elder-yudao-pro/docs/spec/elder for AI coding.md

60 KiB
Raw Blame History

《智慧养老与主动健康管理平台 全栈开发总体方案(最终定稿·直接使用版)》

文档定位:本文档是项目的最终开发蓝图,可直接作为 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❓view 查看待答问题
expert❓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接口清单+状态枚举值+消息模板」编写测试用例。
  • 项目经理可直接依据「交付范围切分+项目里程碑+第三方服务清单」排期和采购。

祝项目顺利落地,真正为老年人带来福祉。