25 KiB
25 KiB
《老人基本信息采集》
文档定位:本文档是《智慧养老与主动健康管理平台》中“老人信息采集”模块的最终交付文档,作为UI设计师、前端开发、后端开发、产品经理、测试团队的执行依据。 核心原则:分步填写、按需联动、人文设计、进度可存、支持代录、统一提交。 交付状态:已整合分步/平铺/一屏一题三种模式、5项收尾优化(提示文案、采集人字段、年龄校验例外、采集与初筛衔接、老两口自动识别),可直接交付开发。
一、 采集入口与角色
1.1 采集入口
| 入口 | 使用角色 | 说明 |
|---|---|---|
| 老人自己登录后主动完善 | 老人 | 从首页【完善资料】进入 |
| 家属代录 | 家属 | 从家属首页【添加老人】进入 |
| 志愿者上门代录 | 志愿者 | 从志愿者端【协助建档】进入 |
| 后台管理员录入 | 管理员 | 从后台【老人档案管理】进入 |
1.2 采集角色权限
| 角色 | 可采集内容 |
|---|---|
| 老人本人 | 全部字段(可跳过敏感字段) |
| 家属 | 全部字段(可代填) |
| 志愿者 | 基本信息、社会属性、慢病信息、紧急联系人(可跳过敏感字段) |
| 管理员 | 全部字段 |
1.3 采集前置条件
- 知情同意签署:
consent_status = 已签署才能采集完整信息;未签署时,只能采集姓名、性别、联系方式等基础字段。 - 身份证OCR识别:用于快速填充姓名、性别、出生日期、身份证号、籍贯。
- 已有数据复用:如果老人已有部分信息(如历史数据),系统自动填充,避免重复录入。
二、 三种展示模式
2.1 模式定义
| 模式 | 说明 | 适用场景 |
|---|---|---|
step |
分步填写(7步) | 首次采集(老人/家属/志愿者) |
flat |
平铺填写(所有模块一页展示) | 二次修改(家属/管理员) |
view |
平铺展示(只读) | 查看(运动专家/管理员) |
single |
一屏一题 | 老人端首次完善资料 |
2.2 各角色默认模式
| 角色 | 场景 | 默认模式 |
|---|---|---|
| 老人 | 首次完善资料 | single |
| 老人 | 二次修改 | step |
| 家属 | 首次代录 | step(可切换 flat) |
| 家属 | 二次修改 | flat |
| 志愿者 | 上门代录 | step(可切换 flat) |
| 管理员 | 后台录入 | flat |
| 管理员 | 后台查看 | view |
| 运动专家 | 查看老人档案 | view |
2.3 模式切换
- 分步模式顶部提供【切换为平铺模式】按钮。
- 平铺模式每个模块提供【编辑】按钮,进入分步修改。
- 老人端固定
single,不提供切换。
2.4 统一组件
后端提供同一份数据结构,前端通过 mode 参数切换展示模式。
<FormRenderer
:data="formData"
:mode="'step' | 'flat' | 'view' | 'single'"
@submit="onSubmit"
/>
三、 采集流程(7步)
步骤1:基本信息(姓名、身份证、性别、出生日期、民族)
↓
步骤2:社会属性(婚姻、籍贯、居住地、教育、职业)
↓
步骤3:经济与保障(社保、收入)
↓
步骤4:健康与照护(照护等级、是否残疾)
↓
步骤5:慢病信息(温和切入)
↓
步骤6:父母信息(可选,可跳过)
↓
步骤7:紧急联系人与家属(至少1位)
↓
完成 → 提交 → 检查知情同意 → 进入健康初筛
每步完成后:
- 显示“已完成X/7,可随时退出,进度自动保存”。
- 提供【下一步】【跳过此步】【保存并退出】三个按钮。
四、 各步骤详细设计
步骤1:基本信息
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 姓名 | ✅ | 支持身份证OCR自动填充 |
| 身份证号 | ✅ | 支持身份证OCR自动填充,AES加密存储 |
| 性别 | ✅ | 从身份证自动解析,可修正 |
| 出生日期 | ✅ | 从身份证自动解析,可修正 |
| 民族 | ✅ | 字典选择,拼音排序 |
| 是否有微信 | ❌ | 用于差异化推送策略 |
交互:
- 顶部显示【扫描身份证】按钮,点击调起相机。
- OCR识别成功后,自动填充姓名、性别、出生日期、身份证号、籍贯。
- 用户核对后可手动修改。
- 如果OCR失败,允许手动录入。
提示文案:
- “请核对身份证信息,如有误可手动修改。”
- “身份证号仅用于身份识别,不会泄露给他人。”
校验规则:
- 身份证号格式校验(18位)。
- 身份证号唯一性校验(防止重复建档)。
- 出生日期不能晚于当前日期。
- 年龄 ≥ 60岁(系统定位为老年人)。
年龄校验例外处理:
- 系统默认校验 ≥ 60岁。
- 如果年龄 < 60岁,弹出提示:“该老人年龄为XX岁,系统定位为老年人服务。如确需录入,请联系管理员。”
- 管理员可在后台【强制录入】,记录操作日志。
- 强制录入的老人,标记
is_special_case = true,用于后续统计。
步骤2:社会属性
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 婚姻状况 | ❌ | 未婚/已婚/离异/丧偶/不方便说 |
| 籍贯 | ❌ | 区划选择,拼音排序 |
| 现长期居住地 | ✅ | 区划选择 + 详细地址 |
| 居住地类型 | ❌ | 城市/农村/城镇/牧区/其他 |
| 居住状况 | ❌ | 独居/与配偶/与子女/养老机构/其他 |
| 户口类型 | ❌ | 城镇/农村 |
| 教育程度 | ✅ | MMSE关键字段 |
| 最近职业 | ❌ | 字典选择,拼音排序 |
| 是否参加过老年大学 | ❌ | 布尔 |
交互:
- 居住地选择:先选区划(省→市→县),再填详细地址。
- 系统自动根据区划带入海拔。
- 婚姻状况提供“不方便说”选项。
提示文案:
- “居住地信息用于服务对接和健康评估,不会泄露给他人。”
- “教育程度用于认知评估,请如实填写。”
校验规则:
- 居住地必填。
- 教育程度必填。
- 海拔根据区划自动带入,用户不可修改。
老两口自动识别:
- 当录入的居住地址与已有老人完全一致,且婚姻状况为“已婚”时,触发提示。
- 系统提示:“检测到该地址已有另一位老人:XXX(年龄XX岁),是否为配偶关系?”
- 录入人选择:
- 【是,关联为配偶】→ 创建
elder_elder_relation(relation_type = 1配偶),双向关联。 - 【否,不关联】→ 不创建关联。
- 【是,关联为配偶】→ 创建
- 关联后,家属端展示两位老人时会显示“配偶:XXX”。
步骤3:经济与保障
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 社保类型 | ❌ | 职工医保/居民医保/新农合/无/不清楚 |
| 收入区间 | ❌ | 无收入/1万以下/1-3万/3-5万/5万以上/不方便说 |
| 医保卡号 | ❌ | 完全选填,加密存储 |
交互:
- 所有字段均可跳过。
- 收入区间提供“不方便说”选项。
提示文案:
- “经济信息用于服务匹配,不会泄露给他人。”
- “如不方便填写,可跳过。”
步骤4:健康与照护
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 照护等级 | ✅ | 自理/半自理/失能 |
| 是否残疾 | ❌ | 布尔 |
联动逻辑:
| 前置条件 | 后续字段 |
|---|---|
| 照护等级 = 自理 | 默认 is_disabled = false,跳过残疾相关字段 |
| 照护等级 = 半自理/失能 | 显示“是否残疾” |
is_disabled = false |
隐藏“残疾类型”、“致残原因” |
is_disabled = true |
显示“残疾类型”(必填)、“致残原因”(选填) |
交互:
照护等级:[自理 ▼]
(选择“自理”后,直接进入下一步)
照护等级:[半自理 ▼]
↓
是否残疾:[否 ▼]
(选择“否”,直接进入下一步)
是否残疾:[是 ▼]
↓
残疾类型:[请选择 ▼](必填)
致残原因:[________](选填,可跳过)
提示文案:
- “照护等级用于为您推荐合适的运动方案。”
- “残疾信息用于安全评估,如不方便填写,可跳过。”
校验规则:
- 照护等级必填。
is_disabled = true时,disability_type必填。is_disabled = false时,disability_type和disability_reason忽略。
步骤5:慢病信息
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 是否有慢病 | ❌ | 有/没有/记不清/不想说 |
联动逻辑:
| 前置条件 | 后续字段 |
|---|---|
| 选择“没有” | 跳过慢病详细填写 |
| 选择“记不清” | 跳过慢病详细填写 |
| 选择“不想说” | 跳过慢病详细填写 |
| 选择“有” | 显示慢病选择 |
慢病选择:
- 从字典选择(可多选)。
- 按疾病类型分组:心血管/代谢/呼吸/神经/肿瘤/其他。
- 每种慢病可填:确诊时间、是否目前患病、治疗状态。
- 所有字段选填。
交互:
您平时有没有需要长期吃药或定期去医院的情况?
○ 有
○ 没有
○ 记不清了
○ 不想说
(选择“有”后)
↓
请选择需要长期管理的健康问题(可多选,如不确定可以跳过):
□ 高血压
□ 冠心病
□ 糖尿病
□ 慢性阻塞性肺病
□ 帕金森病
□ 其他(可手写)
□ 不确定
提示文案:
- “这些信息用于为您推荐合适的运动方案,不会泄露给他人。”
- “如不确定或不想说,可跳过。”
校验规则:
- 选择“有”时,慢病列表可以为空。
- 每项慢病的确诊时间、治疗状态均为选填。
步骤6:父母信息
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 父亲是否健在 | ❌ | 健在/已故/不方便说/跳过 |
| 父亲死亡原因 | ❌ | father_alive = 已故 时显示,选填 |
| 母亲是否健在 | ❌ | 健在/已故/不方便说/跳过 |
| 母亲死亡原因 | ❌ | mother_alive = 已故 时显示,选填 |
联动逻辑:
| 前置条件 | 后续字段 |
|---|---|
father_alive = 健在 |
隐藏“父亲死亡原因” |
father_alive = 已故 |
显示“父亲死亡原因”(选填) |
father_alive = 不方便说/跳过 |
隐藏“父亲死亡原因” |
| 母亲同理 |
交互:
以下信息如果方便的话可以填写,不方便可以跳过。
父亲是否健在?
○ 健在
○ 已故
○ 不方便说
○ 跳过
(选择“已故”后)
↓
父亲死亡原因:[________](选填,可跳过)
选项:自然衰老 / 疾病 / 意外 / 其他 / 不方便说 / 跳过
提示文案:
- “以下信息如果方便的话可以填写,不方便可以跳过。”
- “如您不愿回忆,可直接跳过。”
步骤7:紧急联系人与家属
填写内容:
| 字段 | 必填 | 说明 |
|---|---|---|
| 联系人姓名 | ✅ | 至少1位 |
| 关系 | ✅ | 配偶/子女/孙辈/其他亲属/社区网格员/邻居/其他 |
| 手机号 | ✅ | 用于SOS拨打和系统登录 |
| 是否第一紧急联系人 | ✅ | 至少一位为第一联系人 |
| 是否仅作为紧急联系人 | ❌ | 布尔(不参与管理) |
交互:
紧急联系人(至少1位)
联系人1:
姓名:[________](必填)
关系:[子女 ▼](必填)
手机号:[________](必填)
设为第一紧急联系人:[✅]
仅作为紧急联系人(不参与管理):[ ]
【添加更多联系人】
(如果联系人手机号已注册系统)
↓
系统提示:
“该手机号已注册系统,是否关联为家属?”
○ 是,关联为家属(可代管老人)
○ 否,仅作为紧急联系人
系统自动处理:
| 场景 | 处理 |
|---|---|
| 手机号已注册系统 | 提示是否关联为家属 |
| 手机号未注册系统 | 创建家属影子成员,待注册后自动关联 |
| 至少1位第一紧急联系人 | 强制要求 |
提示文案:
- “紧急联系人用于紧急情况联系,请确保手机号准确。”
- “至少需要填写1位紧急联系人。”
校验规则:
- 至少1位紧急联系人。
- 至少1位第一紧急联系人。
- 手机号格式校验。
- 手机号重复校验(同一老人的联系人不能重复)。
五、 采集完成后的系统处理
5.1 系统自动处理
- 创建
elder记录:填充所有字段。 - 创建
elder_chronic_disease记录:如填写了慢病信息。 - 创建
family_member记录:如紧急联系人手机号已注册。 - 创建
elder_family_relation记录:关联老人与家属。 - 创建
elder_elder_relation记录:如老两口同住,自动识别并关联。 - 计算
altitude:根据居住地区划自动带入。 - 计算
is_living_alone:根据居住状况自动判断。 - 记录采集人信息:
collector_id、collector_type、collect_time。 - 记录采集日志:记录采集方式、采集过程。
5.2 采集人字段(新增)
在 elder 表中增加以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
collector_id |
bigint | 采集人ID(关联 sys_user) |
collector_type |
tinyint | 采集人类型(1老人本人/2家属/3志愿者/4管理员) |
collect_time |
datetime | 采集时间 |
用途:
- 追溯采集过程。
- 统计不同角色的采集量。
- 分析数据来源的可信度(老人本人 vs 家属 vs 志愿者)。
5.3 采集完成与初筛的衔接
流程:
采集完成
↓
检查 consent_status
↓
consent_status = 已签署 → 进入健康初筛
consent_status = 未签署 → 提示签署知情同意
↓
签署完成后 → 进入健康初筛
说明:
- 采集完成后,系统检查
consent_status。 - 如果未签署知情同意,提示:“请先签署知情同意书,才能进入健康评估。”
- 签署后,自动跳转到健康初筛页面。
- 健康初筛的5道题不依赖采集字段(独立模块),但与采集数据共同构成老人的完整档案。
5.4 采集完成提示
✅ 老人信息采集完成!
已完成内容:
- 基本信息
- 社会属性
- 经济与保障
- 健康与照护
- 慢病信息(1项)
- 父母信息(已填写)
- 紧急联系人(2位)
下一步:签署知情同意 → 开始健康初筛
- [签署知情同意]
- [稍后再说]
5.5 采集进度保存
- 每步完成后自动保存。
- 支持中途退出,下次从未完成的步骤继续。
- 已填写的字段保留,未填写的字段为空。
- 采集进度可在个人中心查看。
六、 采集流程的边界与异常处理
| 场景 | 处理 |
|---|---|
| 身份证OCR识别失败 | 提示手动录入 |
| 手机号格式错误 | 实时校验,提示重新输入 |
| 区划选择错误 | 支持重新选择 |
| 中途退出 | 进度自动保存 |
| 网络中断 | 提示重新连接,保留已填内容 |
| 采集完成但未提交 | 提示“已保存,是否提交” |
| 身份证号已存在 | 提示“该身份证已建档,是否查看” |
| 年龄<60岁 | 提示联系管理员,管理员可强制录入 |
| 老人不同意采集 | 只能采集姓名、性别、联系方式等基础字段 |
| 家属代录时老人反对 | 提示“请尊重老人意愿” |
| 志愿者上门时老人不在 | 无法采集,标记“未采集” |
| 老人无微信 | 用手机号验证码登录,家属代为注册 |
七、 采集流程图
开始
↓
检查是否已签署知情同意
↓ 否 → 提示签署
↓ 是
步骤1:基本信息(支持OCR,年龄校验)
↓
步骤2:社会属性(老两口自动识别)
↓
步骤3:经济与保障
↓
步骤4:健康与照护(联动:自理老人跳过残疾字段)
↓
步骤5:慢病信息(联动:无症状跳过详细填写)
↓
步骤6:父母信息(联动:健在跳过死亡原因)
↓
步骤7:紧急联系人与家属(至少1位)
↓
提交 → 系统自动处理 → 记录采集人信息 → 采集完成
↓
检查知情同意 → 已签署 → 进入健康初筛
八、 联动规则汇总
| 前置字段 | 联动字段 | 规则 |
|---|---|---|
care_level = 自理 |
is_disabled |
默认false,跳过残疾字段 |
is_disabled = false |
disability_type、disability_reason |
隐藏 |
is_disabled = true |
disability_type、disability_reason |
显示 |
| 慢病选择“没有” | 慢病详细 | 跳过 |
| 慢病选择“有” | 慢病详细 | 显示 |
father_alive = 健在 |
father_death_reason |
隐藏 |
father_alive = 已故 |
father_death_reason |
显示,选填 |
father_alive = 不方便说/跳过 |
father_death_reason |
隐藏 |
| 母亲同理 | ||
| 紧急联系人手机号已注册 | 家属关联 | 提示是否关联 |
| 紧急联系人手机号未注册 | 家属关联 | 创建影子成员 |
| 居住地址与已有老人一致 + 婚姻状况已婚 | 老两口关联 | 提示是否关联为配偶 |
九、 字段汇总
| 步骤 | 字段数 | 必填 | 选填 |
|---|---|---|---|
| 步骤1:基本信息 | 6 | 5 | 1 |
| 步骤2:社会属性 | 9 | 2 | 7 |
| 步骤3:经济与保障 | 3 | 0 | 3 |
| 步骤4:健康与照护 | 4 | 1 | 3 |
| 步骤5:慢病信息 | 1+N | 0 | 全部 |
| 步骤6:父母信息 | 4 | 0 | 4 |
| 步骤7:紧急联系人 | 5 | 4 | 1 |
| 总计 | 32+N | 12 | 20+N |
十、 提示文案汇总
| 步骤 | 提示文案 |
|---|---|
| 步骤1 | “请核对身份证信息,如有误可手动修改。” |
| 步骤1 | “身份证号仅用于身份识别,不会泄露给他人。” |
| 步骤2 | “居住地信息用于服务对接和健康评估,不会泄露给他人。” |
| 步骤2 | “教育程度用于认知评估,请如实填写。” |
| 步骤3 | “经济信息用于服务匹配,不会泄露给他人。” |
| 步骤3 | “如不方便填写,可跳过。” |
| 步骤4 | “照护等级用于为您推荐合适的运动方案。” |
| 步骤4 | “残疾信息用于安全评估,如不方便填写,可跳过。” |
| 步骤5 | “这些信息用于为您推荐合适的运动方案,不会泄露给他人。” |
| 步骤5 | “如不确定或不想说,可跳过。” |
| 步骤6 | “以下信息如果方便的话可以填写,不方便可以跳过。” |
| 步骤6 | “如您不愿回忆,可直接跳过。” |
| 步骤7 | “紧急联系人用于紧急情况联系,请确保手机号准确。” |
| 步骤7 | “至少需要填写1位紧急联系人。” |
十一、 UI设计要点
| 要点 | 说明 |
|---|---|
| 分步显示 | 7步分页,每步不超过10个问题 |
| 进度显示 | 顶部进度条,显示“X/7” |
| 返回上一步 | 支持返回修改 |
| 保存退出 | 每步支持保存并退出 |
| 语音辅助 | 支持语音读题(老人端) |
| 大字体 | 老人端字号≥18px |
| 跳过按钮 | 每步提供【跳过此步】按钮 |
| OCR识别 | 支持身份证快速填充 |
| 联动显示 | 根据前置字段动态显示/隐藏后续字段 |
| 老两口识别 | 地址一致 + 已婚 → 提示关联 |
| 采集人记录 | 自动记录采集人ID、类型、时间 |
| 模式切换 | 分步模式可切平铺,平铺模式可切分步 |
| 老人端一屏一题 | 固定 single 模式,大字体,语音辅助 |
十二、 界面布局示例
12.1 分步填写界面(家属/志愿者首次)
┌─────────────────────────────────┐
│ ← 返回 步骤2/7 [平铺模式] │
├─────────────────────────────────┤
│ ●●●○○○○ (进度条) │
├─────────────────────────────────┤
│ │
│ 社会属性 │
│ │
│ 婚姻状况:[已婚 ▼] │
│ 籍贯:[青海省西宁市 ▼] │
│ 现长期居住地:[湟源县 ▼] │
│ 详细地址:[____________] │
│ 居住地类型:[城市 ▼] │
│ 居住状况:[与配偶 ▼] │
│ 户口类型:[农村 ▼] │
│ 教育程度:[小学 ▼] │
│ 最近职业:[农民 ▼] │
│ 是否参加过老年大学:[否 ▼] │
│ │
│ 💡 居住地信息用于服务对接和健康 │
│ 评估,不会泄露给他人。 │
│ │
├─────────────────────────────────┤
│ [ 跳过此步 ] [ 下一步 ] │
└─────────────────────────────────┘
12.2 平铺填写界面(家属/管理员二次修改)
┌─────────────────────────────────┐
│ 老人档案 [编辑模式] │
├─────────────────────────────────┤
│ ▼ 基本信息 │
│ 姓名:张爷爷 │
│ 身份证:510***********1234 │
│ 性别:男 │
│ 出生日期:1948-03-15 │
│ [编辑] │
├─────────────────────────────────┤
│ ▼ 社会属性 │
│ 婚姻状况:已婚 │
│ 籍贯:青海省西宁市 │
│ 现居住地:湟源县XX街道 │
│ [编辑] │
├─────────────────────────────────┤
│ ▶ 经济与保障(点击展开) │
├─────────────────────────────────┤
│ ▶ 健康与照护(点击展开) │
├─────────────────────────────────┤
│ ▶ 慢病信息(2项)(点击展开) │
├─────────────────────────────────┤
│ ▶ 父母信息(点击展开) │
├─────────────────────────────────┤
│ ▶ 紧急联系人与家属(2位) │
└─────────────────────────────────┘
12.3 一屏一题界面(老人端)
┌─────────────────────────────────┐
│ 第1题(共7题) │
├─────────────────────────────────┤
│ │
│ │
│ 您叫什么名字? │
│ │
│ ┌───────────────────────┐ │
│ │ │ │
│ └───────────────────────┘ │
│ │
│ [ 🎤 语音输入 ] │
│ │
│ │
├─────────────────────────────────┤
│ [ 下一步 ] │
└─────────────────────────────────┘
十三、 最终交付声明
本文档为《老人信息采集流程》的最终定稿(直接使用版),已通过:
- 业务逻辑检查:7步采集流程完整,字段联动清晰,系统自动处理明确。
- 数据结构检查:所有字段与数据库表结构一致,无冗余、无遗漏。
- 异常处理检查:覆盖OCR失败、网络中断、中途退出、重复建档、年龄超限等场景。
- UI可用性检查:分步/平铺/一屏一题三种模式,进度保存、联动显示、跳过机制完善。
- 人文设计检查:敏感字段选填,措辞温和,尊重老人心理。
- 角色支持检查:老人本人、家属、志愿者、管理员均可采集。
- 联动规则检查:自理老人跳过残疾字段,健在跳过死亡原因,手机号已注册自动关联。
- 5项收尾优化整合:
- 字段级提示文案汇总(第十章)
- 采集人字段(
collector_id、collector_type、collect_time) - 年龄校验例外处理(管理员强制录入)
- 采集与初筛衔接(检查
consent_status) - 老两口自动识别(地址一致 + 已婚)
- 三种展示模式整合:分步填写、平铺填写、一屏一题,按角色和场景自动切换。
本流程可直接交付UI设计师、前端开发、后端开发、测试团队使用。
祝项目顺利落地,真正为老年人带来福祉。