7.5 KiB
老人信息采集:当前交付范围
开发依据为 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、真正签署、低龄例外、角色代录、家属自动关联及初筛业务闭环全部交付。