elder-yudao-pro/docs/老人信息采集开发进度.md

83 lines
7.5 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.

# 老人信息采集:当前交付范围
开发依据为 `docs/spec/` 中老师的三份说明;桌面原文件保留。
此前完成管理员录入、完善和查看**老人档案的完整七步采集**。本次补充志愿者、家属自身登记与后台家庭关联的界面美化;未增加角色代录工作台或家属自动授权。
## 管理端入口与七步流程
登录后进入“健康服务 → 身份与档案”,点击“开始信息采集”,或已有老人行的“继续采集”。
强制分步,每次仅展示当前步骤,进度条不可跳步;下一步须通过当前步骤校验。
此展示方式按用户要求执行,覆盖导师说明中的管理员默认平铺方式。
姓名紧接身份证号,账号设置放在第一步末尾。使用分组卡片、固定操作区、双向淡入滑动;小屏单列,减少动画偏好关闭动画。
| 步骤 | 内容 | 约束与联动 |
| --- | --- | --- |
| 1 基本信息 | 知情同意确认、姓名、身份证、性别、生日、民族、微信、联系电话、账号 | 核心身份和账号必填;进入后续步骤前确认同意。身份证兼容X/x、全角和空格,检查真实日期与校验码,自动填生日/性别并允许修正。年龄至少60岁。 |
| 2 社会属性 | 婚姻、籍贯、长期居住地区划和地址、居住地类型、居住状况、户口、教育、职业、老年大学 | 县级居住地、详细地址、教育必填,其余选填。 |
| 3 经济与保障 | 医保类型、年收入区间、医保卡号 | 全选填,可跳过;支持无收入、不方便说;医保号加密。 |
| 4 健康与照护 | 自理/半自理/失能、是否残疾、残疾类型、原因 | 照护等级必填;自理设无残疾;选择残疾须选类型;无残疾清空隐藏信息。 |
| 5 慢病信息 | 有/没有/记不清/不想说;疾病分组多选;确诊日期、当前患病、治疗状态、其他名称 | 全选填,可跳过;有也允许空列表;其他回答清空详情;日期真实且不未来。 |
| 6 父母信息 | 父母分别健在/已故/不方便说/跳过;离世原因与说明 | 全选填,可跳过;非已故不保留原因,非其他不保留补充说明。 |
| 7 紧急联系人 | 多位姓名、关系、手机号、第一联系人;提交前核对 | 至少1位、最多10位;恰好1位第一联系人;同老人联系人手机号不重复;不创建家属账号或授权。 |
第七步“确认并提交档案”统一保存,记录管理员采集人、采集时间、首次完成时间与同意确认时间。
旧单联系人可预填姓名/电话,关系须核实,不猜测。正式进度不回退;低步骤旧接口也不能清空已完成的必填项。
旧接口步骤1/2兼容;本轮页面只在第七步正式提交。
## 草稿与退出
输入自动保存 `health_collection_draft`,任何一步可保存草稿并退出;允许不完整字段与嵌套慢病/联系人,支持1~7步。
按租户、管理员、目标老人隔离。新建草稿一份,已有老人各有独立草稿;JSON AES加密,最大64KiB。
白名单排除密码、令牌、服务器审计与其他身份字段;嵌套数组快照和串行请求防止慢请求覆盖新输入。
恢复字段/步骤时重新检查前置必填;新账号密码需重新输入。正式提交事务清草稿;失败保留当前表单和会话密码方便重试,密码不写草稿。
## 区划、海拔与配偶
省市县复用系统地区树并按拼音排序,县级叶子编码校验。海拔按租户/区划读取,不允许手改。
无经核实海拔数据的地区显示缺失提示,不虚构0米。已婚、同区划与地址提供配偶线索;核实选择并最终保存后才确认关联。
配偶解除页尚未提供。
## 数据与接口
`deploy/local/initialize-health.sh`(macOS)或 `.ps1`(Windows)顺序应用V000~V007,重复执行保留原数据。
V007幂等增加23个老人采集与审计字段,不改写志愿者或家属关系。
身份证、医保号、慢病JSON、联系人JSON、草稿使用现有AES加密机制。
老人并发更新按身份、档案固定顺序加锁,保留当前值并防止已完成进度/必填被旧请求覆盖。
敏感接口访问日志、参数校验与JSON解析异常不输出原始资料。
| 接口 | 用途 |
| --- | --- |
| POST /admin-api/health/identity/create | 创建老人账号与完整档案,collectionStep=7;兼容旧步骤1/2 |
| PUT /admin-api/health/identity/update | 更新1~7步,实际完成进度不回退 |
| GET /admin-api/health/identity/get | 读取七步字段、结构化慢病/联系人和审计记录 |
| GET/PUT/DELETE /admin-api/health/collection-draft | 本管理员草稿恢复/保存/清除,currentStep=1~7 |
| GET /admin-api/health/elderly-social/altitude | 核实海拔 |
| GET /admin-api/health/elderly-social/spouse-candidates | 同址配偶线索 |
| POST /admin-api/health/elderly-social/confirm-spouse | 核实配偶关联 |
## 本轮之外
身份证OCR、知情同意电子签名、低龄强制录入、老人端一屏一题、家属账号/影子成员/授权、志愿者工作台不在本轮范围。
本轮同意为采集确认记录,不等于电子签名。独立健康初筛与标准量表仍待后续开发,不跳转到未实现功能。
## 运行包更新
Server 打包启用 `maven-jar-plugin.forceCreation`,即使只有业务模块变化也重新生成薄包,再由 Spring Boot 打入最新依赖,避免“构建成功但可运行包仍是旧版本”。
## 本轮验证记录(2026-10-08)
- 前端41项、健康后端51项、日志保护4项,共96项自动测试通过;前后端构建通过。
- 七步页面、健康接口及工具类型检查无报错;整仓其他未启用模块原有类型报错仍存在。
- 实际MySQL/HTTP验证完整创建读取、0/false、联动清空、医保/慢病/联系人加密、重复号码/首位联系人/同意/日期拦截、七步不完整草稿恢复、编辑及正式保存清草稿;合成记录清理,原管理员新建草稿保留。
- 运行包内健康与日志依赖摘要与当前构建逐一核对,最新后端健康UP,前端5173运行。
- 浏览器视觉验收因此前浏览权限被拒绝未执行,不通过其他浏览器或截图方式绕过。
## 本次角色界面美化与需求审计(2026-10-08)
- 志愿者自身资料使用绿色分组卡片,家属自身资料与家庭关联使用蓝色布局;基本资料、账号、服务意愿分组,审核与关系确认提示更清楚,小屏单列。
- 前端禁止未确认同意时输入身份证/生日/民族/微信;前后端草稿均只保留基础资料,旧未确认草稿回读不暴露敏感字段。正式旧步骤1/2接口仍保留兼容,不声称已完成全接口签署门控。
- 列表与只读详情身份证/手机号/医保号统一掩码,异常长度也不回显全号。授权编辑仍使用原始值;普通联系方式存储及全量列表响应仍需后续整改。
- 民族选项补拼音排序,配偶提示改为最后提交时确认;草稿读取失败支持保留当前输入重试,关闭时保存失败保持表单打开。浏览器强退/刷新时离线缓存仍未实现。
- 本次48项前端、53项健康后端测试通过。前后端构建与健康检查通过;采集与家庭关联代码无类型报错,整仓其他模块原有报错保留。
- 完整对照见《信息采集需求对照审计.md》。七步表单完整不等同OCR、真正签署、低龄例外、角色代录、家属自动关联及初筛业务闭环全部交付。