# 投云长护险管理系统 · P0 PRD **交付版本 · 2026-10-11 · 云南投云科技有限公司** > **📝 修订注(2026-10-12 · R1–R9 质疑回填)**:依机构老板 22 条质疑,**把产品能改的直接写进需求**,做不到的如实标注。**改动清单**:①§3.2 待遇状态 **七态 → 十态**(新增 `待起付/等待期`、`复评等待期`、`跨统筹区转移中`;`住院暂停` 补恢复出路);②§3.2 工单状态 **七态 → 八态**(新增 `未遇/扑空`);③新增 **§4.5.1 拒拍出路**、**§4.5.2 拍照分档属地核对**、**§4.9.1 扑空专门形态**;④§5.5.1 新增 **B1-A 垫付台账与结转**、**B1-B 批量导入**;⑤§7.4 字段对照同步+新增 6 个字段;⑥§8.1 新增 `3003/3004` 错误码;⑦新增 **§十三 质疑回填记录**(能改的 vs 做不到的分开列);⑧新增 **§7.3.1 多业务线扩展(R8 预留)**+`elder/order/svc_org` 三表加 `biz_line` 字段(本期恒 `ltci`)、§8.4 增 R8 行;⑨新增 **§13.2b 待补清单(P-9 身份核验缺口)**+§14 增第 8 条对客边界;⑩新增 **§5.5.2 老人个人项目库(`elder_svc` 表,R10)**+§7.2 增 `elder_svc` 表(**22 表 → 23 表**)+§7.4 增 2 个字段+§8.3 增 2 个接口+§9 增验收项。**逐条依据见 §十三。** 其余章节逐字保留。 > **📝 修订注(2026-10-14 · 居家护理六流程对齐 · 只补字段不动交互)**:依《居家护理》六份流程文档(流程 01–05+4.5)与 PRD 交叉核对,**补齐流程文档已明确、但 PRD 数据字典缺字段的 5 处硬缺口**(**只补字段、不做功能**,交互细则后补):①`record` 表补 `biz_line` 字段(R8 从三表扩到四表,自费单独计时落点);②`elder` 表补参保核验留痕(`insur_verify_status`/`insur_verify_date`)+缴费年限(`insur_years`)+上门评估五块信息(`need_assess` JSON);③`plan` 表补 `plan_basis`(计划依据/护理服务建议);④`settlement` 表补 `amount_fund`/`amount_self_pay`(个人自付拆分)。**自费服务(当场收款/同意凭证)本期不做、只留字段**(与 §11.2「平台不碰资金」红线一致)。 --- ## 〇、怎么用这份文档(开发先看这里) | 项 | 说明 | |---|---| | **这份文档是什么** | **本期要开发的东西,全在这里,不用再看别的文档。** 前面的 PRD-00~03、数据字典与接口契约,内容已全部并入本文档 | | **本期范围** | **P0 四块**:①待遇档案/②派单工单/③履约留痕/④质控闸门。**二期三块(结算对账/资质人员/院长看板)不做,只留字段** | | **本期要交付几个端** | **三个端 + 一套后端**:护理员 APP(安卓)/机构管理后台(Web)/家属端(微信公众号 H5) | | **设计总纲(一句话)** | **既满足长护险政策要求,又让机构用得方便、不复杂。两者冲突时——换实现方式,不砍合规、不逼一线硬扛。** | | **文档结构** | 第一~三章=全局规则(三端通用);第四~六章=三个端各自的页面;第七章=数据库;第八章=接口;第九章=验收;第十章=不做什么 | ### 0.1 先记住这五条,能少走一半弯路 1. **硬锁要"点不动",不要"弹提醒"**——提醒会被忽略,点不动才会被遵守。 2. **锁得少、锁得准**——只锁政策明文要求的,日常照护一律宽松。 3. **必填自由文本 = 0**——护理员端不许有任何必须打字的字段。 4. **状态靠人工维护**——本期**没有**医保接口,别按"能自动感知状态"来设计。 5. **属地差异走配置、不走代码**——新增一个州市=加配置数据,**不改代码、不发版**。 ### 0.2 术语与技术口径对齐(防歧义) | PRD 里的中文 | 技术口径 | |---|---| | 老人档案 | `elder` 表,主键 `elder_id` | | 服务计划 | `plan` / `plan_item` 两张表 | | 工单 | `order` 表,一次服务一条 | | 服务留痕 | `record` + `record_item` + `record_photo` + `record_abnormal` | | 质控记录 | `qc` 表(可多次退回补正,留历史) | | 服务项目 | `svc_national`(L1) / `svc_local`(L2) / `svc_mapping`(L3) / `svc_org`(L4) | | 人员与资质 | `staff` 表【预留】 | > **⚠️ 命名纪律(写死)**:**不得使用 `checkin`/`clockin`/`punch` 作为留痕表名**——留痕=`record`。这是合规口径在代码层的落地(不做打卡工具)。 --- ## 一、全局术语与分期用语 ### 1.1 业务对象术语(全系统统一,不得混用) | 术语 | 定义 | 禁止的说法 | |---|---|---| | **参保人** | 参加长护险的人员(政策用语) | 不说"客户""用户" | | **待遇享受对象** | 已通过评估、正在享受待遇的参保人 | — | | **服务对象 / 老人** | 机构实际提供护理服务的人(**界面用"老人"更亲和**) | 正式文书用"参保人" | | **护理员** | 执行上门/院内护理服务的一线人员 | 正式文书用"护理服务人员" | | **服务项目** | 长护险目录内的护理项目(核心主数据) | 不说"服务内容""护理项" | | **服务计划** | 针对某位老人、由机构制定并经确认的周期服务安排 | 不说"护理方案" | | **工单** | 计划落地后生成的一次具体服务任务 | 不说"订单""派工单" | | **留痕** | 服务执行过程的记录(签到、项目、时长、语音、照片、异常) | **不说"打卡记录"** | | **异常上报** | 服务现场发现问题的上报(压疮、呛咳、跌倒等) | 不说"报警" | | **质控放行** | 质控员审核后允许该记录进入上报流程 | 不说"通过审核" | | **上报池** | 已质控放行、待上报医保的记录集合(**二期**) | — | ### 1.2 分期用语(对客材料必须区分) | 说法 | 含义 | |---|---| | **首期 / P0** | 本次交付的四块 | | **二期 / P1** | 结算对账、资质人员、院长看板 | | **预留位** | 数据结构与接口已留好,**功能未开发** | --- ## 二、⭐⭐ 多属地规范(本系统最大的架构特征) > **背景**:**云南实行州(市)级统筹**(云政办规〔2025〕9 号原文),每个州市是**独立统筹区**。系统必须**同时服务昆明机构与其他州市机构**。 ### 2.1 属地目录两类(规则只有两句) | 地区类型 | 服务项目目录 | 项目数 | 官方代码 | |---|---|:---:|:---:| | **新建制州市**(曲靖/玉溪/楚雄/文山/西双版纳/大理/临沧 等) | **国家统一目录** | 36 | ✅ 有 | | **昆明市**(老试点) | **本地目录** | 45 | ❌ 无 | > **⚠️ 推定项纪律**:七州市中**仅西双版纳有原文明确**"执行国家统一的长护险服务项目目录";其余 6 个州市为**推定**。**签约前须向属地医保机构逐一核实**,不得在正式对客材料中当既定事实写。 ### 2.2 目录四层结构(数据模型基础) | 层 | 编号前缀 | 内容 | 维护方 | 机构可见 | 可修改 | |---|---|---|---|---|---| | **L1 国家基准库** | `NAT_` | 国家 36 项 + 官方项目代码 | 我方 | 只读 | ❌ | | **L2 属地目录库** | `LOC_` | 每统筹区一套(昆明 45 项;州市直接引用 L1) | 我方 | 只读 | ❌ | | **L3 属地↔国家映射表** | `MAP_` | 昆明 45 ↔ 国家 36 逐项映射 | 我方 | **不可见** | ❌ | | **L4 机构项目库** | `ORG_` | 机构勾选的项目 + 自填价格 | **机构** | 机构自管 | ✅ 仅价格与启用状态 | ### 2.3 属地加载规则(机构无感知) ``` ① 机构注册 → 必填【参保地 / 统筹区】 ↓ ② 系统自动加载该统筹区的 L2 属地目录 ↓ 州市机构:看到国家 36 项(含代码) 昆明机构:看到本地 45 项(系统已内置 L3 映射) ↓ ③ 机构在属地目录中【勾选】本机构开展的项目 → 【配价】→ 形成 L4 机构项目库 ↓ ④ 派单时 → 读 L4(机构实际开展的项目) 上报时 → 读 L3 转换出的国家代码(二期对接时生效) ``` ### 2.4 ⭐ 五条多属地纪律(写死) 1. **属地差异走配置、不走代码**——新增州市=加一份 L2 配置,**不改代码、不发版**; 2. **属地项目必须可映射**——L2 中每一项都必须在 L3 里有映射;**昆明 45 项中无法映射国家的 5 项,标注"仅属地执行、不可按国家目录上报"**; 3. **机构不可改目录、不可自创项目**——只能选用+配价。**改目录=合规事故**; 4. **国家新增项必须显式提示**——昆明目录里没有、国家目录里有的 5 项(**吞咽功能训练/言语功能训练/雾化吸入/压疮预防照护及指导/理发**),在昆明机构勾选界面**必须显式列出并标注"过渡期新增·建议纳入"**,**不得因为本地目录没有就默认隐藏**; 5. **映射表不进对客材料**——L3 是我方技术资产,对客只说"预置属地目录+国家目录,自动映射"。 > **⭐ 昆明 45 项 ↔ 国家 36 项映射统计(已逐项核过)**:完全对应 **19** 项/被合并 **15** 项/近似对应 **6** 项/仅属地 **5** 项 = 45。L3 全量数据见《20261011-昆明45项↔国家36项-逐项映射表》。 ### 2.5 ⭐ 服务计划的项目数量规则(属地差异,必须内置) | 地区 | 护理方式 | 一级护理 | 二级护理 | 三级护理 | 附加 | |---|---|:---:|:---:|:---:|---| | **昆明** | 医养结合机构 | ≥18 项 | ≥15 项 | ≥13 项 | 可再选 ≤5 项 | | **昆明** | 养老机构 | ≥18 项 | ≥15 项 | ≥13 项 | 可再选 ≤5 项 | | **昆明** | 居家(机构上门) | 每周 ≥6 次/月 ≥40 小时 | 每周 ≥5 次/月 ≥36 小时 | 每周 ≥4 次/月 ≥32 小时 | — | | **昆明** | 居家(个体护理人员) | ≥15 项 | ≥13 项 | ≥10 项 | 可再选 ≤5 项 | | **州市** | 按属地实施细则配置 | **本期不校验** | **本期不校验** | **本期不校验** | — | > **⚠️ 州市规则本期怎么做(已定,写死)**:**州市机构本期不做项数校验**——界面只提示"**州市项数规则待属地实施细则明确**",**不拦、不卡**。 > **理由**:①各州市实施细则尚未发布,规则无从谈起;②国家 36 项**没有**"一级≥18 项"这类表述,它与昆明 45 项的颗粒度对不上,**照搬昆明=给了错规则**;③项数规则是**配置数据不是代码结构**,细则出来后**补一份配置即可,不改代码、不发版**(属地差异走配置的既定纪律)。 > **⚠️ 不得的做法**:**不得把昆明规则(18/15/13)照搬给州市机构**——给错规则比不给更糟。 > **⚠️ 等级方向(全系统必须写清,不得省略)**:昆明口径**"重度失能一级=失能等级最高级,一级护理=护理级别最高级"**。 > ⇒ **一级护理要求最高**(≥18 项/每周 6 次),与"一级最轻"的直觉**相反**。**界面上必须写"一级护理(最高级)",不得只写"一级护理"。** --- ## 三、数据主干、状态机、硬锁、权限 ### 3.1 数据主干(五个核心对象的关系) ``` ┌─────────────┐ │ ① 老人档案 │ ← 待遇状态(有效期、护理等级、参保地) │ ELDER │ └──────┬──────┘ │ 1 : N ┌──────▼──────┐ │ ② 服务计划 │ ← 周期、项目清单、频次、时长、三方确认 │ PLAN │ └──────┬──────┘ │ 1 : N ┌──────▼──────┐ │ ③ 工单 │ ← 某天某次某项目、派给谁、状态 │ ORDER │ └──────┬──────┘ │ 1 : 1 ┌──────▼──────┐ │ ④ 服务留痕 │ ← 签到/签退、时长、语音、照片、项目执行 │ RECORD │ └──────┬──────┘ │ N : 1(汇总) ┌──────▼──────┐ │ ⑤ 质控记录 │ ← 审核结论、放行/退回、异常处理 │ QC │ └─────────────┘ 横向:⑥ 人员与资质(〔二期〕,本期=人工登记) 出口:⑦ 上报池 → 结算对账(〔二期〕) ``` **三条数据铁律**: 1. **一次录入、三端同源**——同一事实只录一次,不在别处手工重填; 2. **不可无痕修改**——任何修改留补正痕迹、保留原值; 3. **属地字段贯穿**——每个老人档案必带**参保地**,全链路据此取目录与规则。 ### 3.2 状态机(三个核心对象) **① 老人档案 · 待遇状态(十态)** > **⭐ 2026-10-12 修订(R2·质疑回填)**:原七态,**新增三类真实业务态**——`待起付/等待期`、`复评等待期`、`跨统筹区转移中`,并把 `住院暂停` 补上"恢复"出路。**每一态都必须明确三件事:能否派单 / 能否计费 / 如何恢复**(见下表末三列),避免"状态定义不清 ⇒ 误拦正常业务"。 | 状态 | 触发 | 系统动作(硬锁) | 可否派单 | 可否计费 | 如何恢复 | |---|---|---|:---:|:---:|---| | **待建档** | 签约后未建档 | 提醒倒计时(签约后 1 个月内);超期标红 | ❌ | ❌ | 建档完成 ⇒ 转 `正常享受` | | **待起付(等待期/垫付期)** | 待遇已受理、**6 个月等待期未满** | **允许录服务(进"垫付期服务台账")、不计费**(见 §5.5.1 B1-A) | ✅ | ❌ | 等待期满、待遇生效 ⇒ **勾选"结转"** 转 `正常享受`(原垫付记录保留) | | **正常享受** | 待遇有效期内 | 允许建档、计划、派单、服务 | ✅ | ✅ | — | | **住院暂停** | 老人住院 | ⚠️ **L1 生效:不可新增服务、不可计费**;已有服务保留 | ❌ | ❌ | **出院后人工确认 ⇒ 走"恢复"流程**,校验待遇仍有效 ⇒ 转 `正常享受` | | **复评等待期** | 待遇到期、**复评结论未出** | 停止新增服务;**保留已有记录、提示续评进度** | ❌ | ❌ | 复评结论出 ⇒ 按新等级转 `正常享受` 或 `已终止` | | **跨统筹区转移中** | 老人**参保地变更**(如昆明→玉溪) | **冻结派单**;触发**目录切换预览**(旧 45 项 → 新属地目录);历史记录**全保留** | ❌ | ❌ | 新参保地确认 ⇒ **重载属地目录** + 重制服务计划 ⇒ 转 `正常享受`(旧记录只读留档) | | **死亡** | 老人去世 | 终止一切服务流程;档案转存档 | ❌ | ❌ | 不可恢复 | | **长期异地居住** | 迁居外地 | 暂停服务 | ❌ | ❌ | 回迁 ⇒ 人工确认 ⇒ `正常享受` | | **待遇到期** | 待遇有效期届满 | 停止新增服务;提示续评 | ❌ | ❌ | 续评通过 ⇒ `正常享受`;未续 ⇒ `已终止` | | **已终止** | 协议终止 | 只读归档 | ❌ | ❌ | 不可恢复 | > **⚠️ 状态变更靠人工维护(本期)**:**首期不做医保状态自动同步**(省级接口规范未发布)。系统**只能"提醒该核状态+录后拦派单",不能替代机构发现状态变化**。此条必须写进对客边界说明。**上表"如何恢复"均为"人工确认后系统放行",不是系统自动发现。** > **⭐⭐ 关于"等待期/垫付期"的设计要点(2026-10-12 新增)**: > - **为什么要这个态**:长护险有 **6 个月等待期**,机构常在等待期内先垫钱上门。**这段时间的服务"录得进、留得住痕、但不计费"**——若不给状态而一律按"无有效待遇"拦(L1),等于把最需要凭证的一段变成纸面空白。 > - **与 L1 的关系**:L1(`1001` 无有效待遇不可服务)**只拦"要计费的在享服务"**;`待起付` 态走**独立形态的垫付台账**,**不被误拦**。 > - **不自动转正**:等待期满**不自动**把垫付记录转为正式记录(计费规则不同,自动转=埋合规雷);改由机构**勾选 + 一键结转**(见 §5.5.1 B1-A)。 **② 工单状态(八态)** | 状态 | 说明 | 可否编辑 | |---|---|---| | **待派单** | 计划已生成工单,未指定护理员 | ✅ | | **已派单** | 已指定护理员 | ✅ 可调整(调单) | | **服务中** | 护理员已签到 | ❌ | | **已完成** | 已签退并留痕 | ❌(仅补正) | | **异常** | 服务中上报异常 | ❌ | | **已取消** | 请假/轮岗等取消 | ❌(留取消原因) | | **逾期未做** | 过了服务时段仍无记录 | ❌(进风险预警) | | **未遇(扑空)** | **已到访但未能服务**(老人不在家/拒绝服务/临时改期) | ❌(**到访时间+定位+原因必留**,见 §4.9.1) | > **⭐ 2026-10-12 新增「未遇(扑空)」态**:原口径下"白跑一趟"只能靠**口头说明**,**无佐证 ⇒ 巡查看作"空单废单"**,有被判"虚假服务"的风险。新增此态后,**"到了、没人、怎么处理"三件事都留痕**,把"白跑"从"说不清"变成"有据可查"。**它是异常上报的一个专门子类,不是新流程。** **③ 留痕与质控状态** | 状态 | 说明 | |---|---| | **草稿** | 服务中未提交(离线也在此状态) | | **已提交** | 护理员签退提交 | | **待质控** | 进入质控队列 | | **已放行** | 质控通过 → 进上报池〔二期〕 | | **已退回** | 质控退回,护理员可补正 | | **已上报** | 〔二期〕 | ### 3.3 六条硬锁(本期实现口径,含降级说明) | # | 硬锁 | 本期实现 | 说明 | |---|---|---|---| | **L1** | 无有效待遇 → 不能建档/服务 | ✅ **点不动** | 状态人工维护,系统不感知变化。**⚠️ 例外:`待起付(等待期)` 态允许服务,但走垫付台账、不计费**(见 §3.2、§5.5.1 B1-A) | | **L2** | 无服务计划 → 不能生成工单 | ✅ **点不动** | — | | **L3** | 无有效工单 → 不能录入留痕 | ✅ **点不动** | — | | **L4** | 无完整留痕 → 不能进上报池 | ✅ **点不动** | 上报池本身为二期 | | **L5** | 无质控放行 → 不能上报 | ✅ 本期以"放行"为准 | 上报动作在二期 | | **L6** | 无有效资质 → 不能派该项目的单 | ⚠️ **本期降级:人工登记+派单提示** | **本期不做自动禁派**;二期升级为**自动拦截** | > **⚠️ L6 的对客口径(必须逐字使用)**: > **"『无资质不派单』是政策硬要求,但资质库在二期。首期处理方式是『人工登记+派单时系统提示』,不是自动禁派。二期升级为自动拦截。"** > **对客材料不得写"系统自动禁派"**——本期做不到。 **硬锁的设计纪律**: 1. **"点不动"优先于"弹提醒"**; 2. **只锁政策明文要求的 6 条**——日常照护记录方式**一律宽松**; 3. **锁的位置要"最早"**——在流程起点拦,不在终点拦; 4. **拦截必须给"怎么解"**——不能只说"不能做",要说"先做什么才能做"(接口的 `hint` 字段)。 ### 3.4 角色与权限 **角色定义** | 角色 | 谁 | 主要场景 | |---|---|---| | **护理员** | 一线服务人员 | 手机 APP:看任务、干活、留痕 | | **组长 / 主管** | 排班与派单负责人 | 后台:排班、派单、调单 | | **质控员** | 服务质量把关人 | 后台:建档、计划、审核、异常处理 | | **院长** | 机构负责人 | 后台:查看(**本期无看板,只见列表**) | | **家属** | 老人家属 | 公众号:查看、可选确认 | | **机构管理员** | 系统配置人 | 后台:机构信息、账号权限、属地配置 | **权限矩阵(五角色 × 本期操作)** | 操作 | 护理员 | 组长 | 质控员 | 院长 | 家属 | |---|:---:|:---:|:---:|:---:|:---:| | 查看今日任务 | ✅ 自己 | ✅ 本组 | ✅ 全部 | ✅ 全部 | — | | 签到/签退/录服务 | ✅ | ✅ | — | — | — | | 上报服务异常 | ✅ | ✅ | ✅ | — | ✅ 可反馈 | | 老人建档 | — | — | ✅ | — | — | | 制定/变更服务计划 | — | ✅ | ✅ | — | — | | 排班派单/调单 | — | ✅ 本组 | ✅ 全部 | — | — | | 质控审核/放行 | — | ✅ 本组 | ✅ 全部 | — | — | | 机构项目库配价 | — | — | ✅ | — | — | | 查看服务记录 | 自己 | 本组 | 全部 | 全部 | **仅自家老人** | | 人员资质维护 | — | — | 〔二期〕 | — | — | | 结算申报/对账 | — | — | 〔二期〕 | 〔二期〕 | — | | 经营看板 | — | 〔二期〕 | 〔二期〕 | 〔二期〕 | — | **三条权限原则(写死)**: 1. **最小必要**——护理员只能看/操作**派给自己的任务**; 2. **家属只见自家、默认只读**; 3. **院长不改数据**——院长**不设任何数据修改权限**(后端在所有写接口上一律返回 403)。 > **⚠️ 第 3 条的修正(详见下方补充 2)**:上述"院长写接口 403"**修正为"仅当账号只持 `director` 时 403"**;**若同时持 `qc`/`leader`/`admin`,按角色并集放行**。**"院长不改数据"的本意是"不许凭身份直接改记录",不是"院长永远不能写"**——院长要能配账号(`admin`)、兼质控时审记录(`qc`)。两处必须一起读。 #### 3.4.1 角色补充说明(四条,开发按此实现,不得自行发挥) > **为什么单列这一节**:上面那张矩阵是"业务操作视角",开发照着做还差四件事没说清——**机构管理员归谁管、一个人能不能兼多个角色、敏感字段谁能看、什么叫"本组"**。这四条**逐条定死**,不留解释空间。 --- **补充 1|机构管理员(`admin`)的归属与权限** | 项 | 规定 | |---|---| | **它是不是一个独立岗位** | **不是**。它是**"系统配置权限"**,不是业务角色 | | **本期由谁担任** | **本期默认由院长(`director`)兼任**——即院长账号同时持有 `director` + `admin` 两个角色(见补充 2) | | **它能做什么** | 后台:**机构信息维护、账号新增/停用、角色分配、属地配置**(=B8 系统设置全部) | | **它不能做什么** | **不得触碰任何业务数据**(不建档、不定计划、不派单、不审记录)——**配置权与业务权分离**,防止"改配置绕过硬锁" | | **单人机构怎么办** | 若机构只有一人(个体护理人员),**该账号可同时持 `admin` + `qc`**;**但其自身录入的业务记录仍须由他人质控**(见补充 2 末尾例外条) | > **⚠️ 落地纪律**:`admin` **只在后台"系统设置"菜单可见**;持 `admin` 但未持 `qc`/`leader` 的账号,**登录后看不到 B1–B4 业务菜单**。 --- **补充 2|一人多角色规则(小机构必需)** | 项 | 规定 | |---|---| | **能不能一人多角色** | **能**。**小机构"院长兼质控""组长兼质控"是常态**,不允许多角色=系统用不起来 | | **数据怎么存** | `user.role` **改为可存多值**:**逗号分隔字符串**(如 `director,admin`/`leader,qc`);**字段长度 varchar(50)**(足够 5 个角色) | | **权限怎么算** | **取并集**——某人持多个角色,则**拥有各角色权限的合并**(如"组长+质控"=能派单**且**能审记录) | | **切换角色?** | **不做**。按当前账号**全部角色**计算,**本期不做角色切换器**(避免复杂) | | **⚠️ 唯一例外(重要)** | **禁止"自审自放行"**:**同一账号录入的服务记录,不得由该账号自己质控放行**——系统须校验 `record.created_by ≠ qc.operator_id`,否则返回 **`4001`**。
**为什么**:这是**"先质控再上报"铁律**的底线,**不因"小机构人手少"而放宽**;机构若只有一人,**必须再配一个能审的人**(哪怕兼职),否则**该记录无法进上报池** | | **院长兼质控时,写接口还 403 吗** | **不返回**。按**角色并集判权,不按"院长"身份一刀切** | --- **补充 3|字段级权限(敏感信息谁能看)** > 矩阵只到"操作级"(能不能建档),但**同一张档案里不同字段敏感度不同**。以下**三个字段**必须做**字段级控制**: | 字段 | 所属表 | 谁能看 | 规则 | |---|---|---|---| | **身份证号** `id_card_no` | `staff`/`elder` | **仅 `admin` 与 `qc`** | 列表页**一律掩码**(如 `5301**********1234`);**点"查看完整"才明文**,且**每次查看留痕**(谁、何时、看了谁的) | | **手机号** `phone` | `staff`/`elder` | **`admin`/`qc`/`leader`(仅本组)** | 护理员端**只显示"姓氏+称呼"**,**不显示任何手机号**;家属端**一律不返回护理员手机号**(走机构统一联系) | | **服务照片** `record_photo` | 留痕 | **`qc`/`leader`(本组)/护理员看自己**;**`director` 可看** | **家属端本期一律不展示**(`visible_to_family` 恒 0) | > **⚠️ 两条落地纪律**: > ① **掩码在服务端做,不在前端做**——前端掩码=明文已下发到浏览器,等于没掩码; > ② **明文查看必须留痕**(写操作日志表)——对应巡查表·信息管理第 4 条"数据不出机构、访问可追溯"。 --- **补充 4|"本组"的定义(组织架构)** | 项 | 规定 | |---|---| | **"本组"指什么** | **一个"护理组"**=**1 名组长 + N 名护理员**,是**派单与质控的最小单位** | | **本期怎么建组** | **不单独建"组"表**。**改为**:`staff` 表增加字段 **`group_leader_id`**(该护理员归属的组长),**由 `admin` 在人员管理里指定** | | **组长看 "本组" 怎么算** | 组长登录 → **查 `staff` 表中 `group_leader_id = 本人 staff_id` 的护理员** → **只看这些人的任务与记录** | | **质控员看 "全部"** | `qc` **不受组限制**,**看本机构全部** | | **组长兼质控** | 按**权限并集**——**既是本组组长(管本组派单),又是质控员(审全部记录)** | | **没有组长的机构** | **允许为空**——若机构不分组,护理员 `group_leader_id` **留空**,此时**只有 `qc`/`admin` 看全部**;**`leader` 看不到任何人**(提示"您尚未被指派组员,请联系管理员") | > **⭐ 为什么用 `group_leader_id` 而不建"组表"**:**本期是单机构、组数少、结构简单**,一个外键字段就够;**建组表=多一张表、多一套增删改查界面**,**本期不值当**。二期若做"多机构/连锁"(P2),**再升级为独立组织架构模块**——**迁移路径已留**(把 `group_leader_id` 升格为 `group` 表 + 关系表即可,不影响已有数据)。 --- **补充小节汇总(开发速查)** | # | 事项 | 一句话结论 | |:---:|---|---| | 1 | 机构管理员归谁 | **不是独立岗位**,本期由**院长兼任**;只管配置、不碰业务 | | 2 | 一人多角色 | **允许**,`user.role` 存多值、**权限取并集**;**唯一禁止"自审自放行"**(`4001`) | | 3 | 字段级权限 | **身份证仅 admin/qc 明文可见且留痕**;**手机号与照片按端控制**;**掩码在服务端做** | | 4 | "本组"定义 | **1 组长 + N 护理员**;**用 `staff.group_leader_id` 实现,不建组表** | --- ## 四、护理员移动端 APP(P0 主战场:③履约留痕) > **形态**:**独立 APP**(安卓为主),**我方统一上架**。 > **一句话设计目标**:**让一个 50 岁上下、不擅长智能手机的护理员,在老人家里、可能没网的情况下,不学就会、不误操作地完成一次服务记录。** ### 4.1 用户画像(**有据可查,非臆测**) | 项 | 数据 | 来源 | |---|---|---| | 年龄 | **40–59 岁占 83.25%**,30 岁以下仅 2% | 《2025 养老护理员职业现状调研报告》 | | 学历 | 初中及以下 **56.13%** | 《2024 报告》 | | 性别 | 女性 **89.25%** | 《2025 报告》 | | 使用障碍 | 中老年 **82.9% 有使用障碍、仅 24.44% 能独立操作** | CNNIC 第 56 次报告 | | 官方自陈 | 昆明医保局承认护理员"**年龄偏大、智能设备操作困难**" | 昆明市医保局公开材料 | **⇒ 设计含义**:**这个群体"学不会"不是态度问题,是能力现实**。任何需要"培训才会用"的设计,都是失败的设计。 **三条不可协商的原则**: 1. **不为留痕而留痕**——记录必须对护理员**自己也**有用; 2. **不是增加一个系统,是减少她要开的**——替代纸质本、微信群汇报; 3. **不许比现在更慢**——比现有习惯慢的操作,两周内会被绕过。 ### 4.2 页面地图(5 个页面,不再多) | 序 | 页面 | 一句话职责 | 进入方式 | |:---:|---|---|---| | **M1** | **今日任务**(首页) | 今天去哪几家、几点、做什么 | 打开 APP 直接进 | | **M2** | **服务执行** | 签到 →(干活)→ 签退,勾项目 | 点 M1 的卡片进入 | | **M3** | **异常上报** | 一键上报压疮/呛咳/跌倒等 | M2 内入口+M1 底部 | | **M4** | **任务详情** | 老人情况、服务计划、注意事项 | M1 卡片长按/侧滑 | | **M5** | **我的** | 我的工时、我的消息、我的资质 | 底部第二栏 | > **⚠️ 刻意不做**:统计报表、排班管理、对话聊天、打字录入、消息广场、积分排名。 > **底部导航只有两栏**:📋 任务(默认)/👤 我的。**不做第三栏。** ### 4.3 M1 今日任务(首页) ``` ┌───────────────────────────────────────┐ │ 今天 10月11日 周六 [王大娘] │ ← 顶部:日期 + 我的名字(大字) ├───────────────────────────────────────┤ │ ┌─────────────────────────────────┐ │ │ │ ⏰ 09:00 李奶奶家 │ │ ← 任务卡片(大卡) │ │ 翻身 · 喂饭 · 口腔清洁 │ │ ← 项目摘要(最多 3 项 + 等 N 项) │ │ 预计 60 分钟 [ 开始 ] │ │ ← 大按钮 │ └─────────────────────────────────┘ │ │ ┌─────────────────────────────────┐ │ │ │ ⏰ 11:00 张爷爷家 ✅已完成 │ │ ← 已完成卡片(灰底) │ └─────────────────────────────────┘ │ │ ┌─────────────────────────────────┐ │ │ │ ⏰ 14:30 赵奶奶家 │ │ │ └─────────────────────────────────┘ │ │ 今天 3 家 · 已完成 1 家 │ ← 底部汇总(小字) └───────────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **日期行** | 大字;**当天**,不显示其他日期(不做日历) | | **任务卡片** | 按**时间顺序**排列;**待办在前、已完成沉底** | | **卡片三要素** | **时间**(大字)+ **老人称呼**(大字)+ **项目摘要**(最多 3 项,多的显示"等 N 项") | | **状态分色** | 待办=白底;已完成=灰底+✅;**异常=橙底**;**逾期未做=橙红底** | | **主按钮** | **[开始]** —— 唯一的大按钮,**点击即进入 M2** | | **已完成卡片** | 不可点进 M2(防重复提交);点进 M4 可看记录 | | **底部汇总** | "今天 N 家 · 已完成 M 家",**小字、不可点** | **关键交互规则** | 场景 | 规则 | |---|---| | **老人住院中** | 卡片**置灰并显示"住院中·暂停服务"**,**[开始] 按钮不可点**(L1 硬锁) | | **待遇已到期** | 同上,显示"待遇已到期·请联系机构" | | **无任务** | 显示大图+"今天没有任务,好好休息"(**不给空白页**) | | **逾期未做** | 卡片转橙红+顶部条提示(**不是责怪语气**,写"这单还没记录,别忘了") | > **⭐ 住院状态显示(已定:显示)**:护理员上门前就知道**别白跑一趟**。**⚠️ 前提**:状态靠**机构人工维护**(本期无接口自动同步),所以提示语**不说"系统检测到住院"**,只说"**住院中·暂停服务**"(事实陈述)。 ### 4.4 M2 服务执行(核心页面) > **目标:≤4 次点击完成一次服务记录,不打一个字,没网也能做。** **点击路径(严格 ≤4 击)** ``` ① 点【开始】(M1) ↓ ② 【签到】 ← 自动定位+时间,无需输入 ↓ (干活) ↓ ③ 【勾选服务项目】← 项目已按计划预勾,她只需"取消没做的" ↓ ④ 【签退】 ← 自动计算时长 ↓ 完成(自动提交或进离线队列) ────────────────────────────── 合计:4 击 ``` > **⭐ 关键设计**:**项目默认全部预勾选**。护理员只需"**取消没做的那一项**"。 > **理由**:计划内项目**绝大多数都会做到**。默认全勾=她多数情况直接点签退(**实际 2 击**)。**这是把"4 击"进一步降成"常态 3 击"的关键。** **页面布局(三段式,不跳页)** ``` ┌───────────────────────────────────────┐ │ ← 李奶奶家 · 翻身·喂饭·口腔清洁 │ ├───────────────────────────────────────┤ │ ┌───────────────┐ │ │ │ [ 签 到 ] │ │ ← ① 签到区(超大按钮) │ │ 09:02 已定位 │ │ │ └───────────────┘ │ ├───────────────────────────────────────┤ │ 本次服务项目(已按计划预选) │ ← ② 项目区 │ ☑ 协助翻身叩背排痰 📷 需拍照 │ ← 必拍档:显式标 📷 │ ☑ 协助进食/水及指导 │ │ ☑ 口腔清洁 │ │ ☐ 生命体征测量(本次未做) │ ← 她取消勾选的 │ + 临时加项 │ ← 少用入口 ├───────────────────────────────────────┤ │ ┌─────────────────────┐ │ │ │ [ 签 退 ] │ │ ← ③ 签退区 │ │ 已完成 · 58 分钟 │ │ │ └─────────────────────┘ │ └───────────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **签到** | **一键**;自动记录**时间+定位**(定位失败不阻塞,标"未获取");**不允许手工改时间** | | **项目清单** | 来源=服务计划;**默认全勾**;顺序=计划顺序 | | **取消勾选** | 点一下即取消;**取消必拍档会提示** | | **签退** | **一键**;自动算时长;**不填任何文字** | | **时长** | 系统自动计算;不设最低时长强制(**提示但不拦**) | | **提交** | 有网=自动提交;无网=**进离线队列,界面无差别** | ### 4.5 ⭐ 拍照分档规则(本期核心设计) | 档 | 适用项目 | 记录方式 | 系统行为 | |---|---|---|---| | **必拍档** | **沐浴、转移(搬抬类)、导管类(导尿/置管/深静脉置管/气管切开)、鼻饲/喂食(协助进食/水含管饲)、压疮护理** | **强制拍照 + 结构化标签**(压疮专项) | **未拍照 → [签退] 按钮不可点**,提示"这项需要拍一张照片" | | **免拍档** | **翻身、喂饭、陪伴聊天、剪指甲、整理床铺、口腔清洁、协助更衣等日常项** | **语音描述 + 家属可选确认** | 不要求拍照;**默认不弹语音**,她可主动录 | | **可拍档** | **擦身(擦浴)、协助如厕、失禁照护** | 默认免拍,**出现异常才要求补拍** | 异常上报时引导补拍 | > **⭐ 压疮护理:已定"加",实现方式="照片+结构化标签"(2026-10-11 定)** > > **为什么加**:①**国家 36 项目录里本就有独立项**「压疮预防照护及指导」(`L0000106020010000`);②**压疮是唯一"照片几乎无法替代"的项目**——严重程度与进展只能靠前后对比图;③**出事时没有照片,机构无法自证不是自己造成的** ⇒ **这一项加的其实是机构的免责能力**。 > > **⚠️ 不能做成"多一项必拍"**(那等于又给一线加活)。正确做法=**拍照后附结构化标签**: | 步骤 | 交互 | 说明 | |:---:|---|---| | 1 | 拍照 | 与既有必拍流程一致 | | 2 | **点选部位** | 9 个常见部位:骶尾部/足跟/髋部/坐骨结节/肩胛部/枕部/耳廓/踝部/其他 | | 3 | **点选分期** | 1 期/2 期/3 期/4 期/不可分期/深部组织损伤(**采用临床指南标准分期,不自行发明**) | | 4 | (可选)备注 | 一句话描述,可跳过 | > **为什么必须结构化**:**照片只能看,数据才能用**——有了部位+分期,质控端可做"同一部位持续未愈合"预警、导出文书可直接填"压疮情况"栏。**纯照片做不到这两件事。** > **⚠️ 纪律**:结构化标签**全部为点选,不打字**;**标签可跳过不填**(只强制拍照,不强制标签)。 **三条设计纪律(写死)**: 1. **免拍 ≠ 不留痕**——免拍项仍自动记录**四要素**:签到时间、服务时长、项目清单、语音描述(如有)。**四要素齐全即算留痕**; 2. **分档可配置**——机构可按自身风险偏好**调整哪些项必拍**。默认按上表,**机构可加严、不建议放宽**; 3. **照片不为"好看"**——**不要求老人摆姿势、不要求面对镜头**。**APP 内不得出现任何"请正面拍摄""请露出老人面部"之类提示**。 > **⚠️ 分档默认值的来源与纪律(2026-10-12 新增,S5 回填)**:**上表分档是我方"建议默认值",不是医保规定值。** 签约/上线前**必须与当地医保/服务规范逐项核对后确认**(列入《签约前必办清单》)。**理由**:属地巡查对"哪些项须留照片"的口径不完全一致——**把它做成"可配置"是为了改得动,把它"明示出来"才是消除风险**。**不得用"可配置"三个字把这项风险藏起来。** ### 4.5.1 ⭐ 拒拍/无法拍摄的出路(2026-10-12 新增,Q13 回填) > **要解决的真问题**:必拍项**只有"拍"这一条路**时——老人/家属坚决不让拍,护理员**要么强行拍(挨投诉)**,**要么放弃签退(活干不下去)**。**两条路对一线都是死路。** 必须给**第三条路**。 | 元素 | 规则 | |---|---| | **入口** | 必拍项拍照区下方**小字**:【无法拍摄?】 | | **点击后** | 弹**原因点选**(不打字,4 选 1):①老人/家属拒绝 ②老人状态不宜拍(如已休息/情绪激动) ③设备故障/无拍摄条件 ④其他 | | **选完** | **可直接签退**(解除 `3001` 拦截);该记录打 `is_refused_photo=1`+原因 | | **标记后果** | 质控端**显著标出"未拍(原因)"**,进**质控重点关注**;**不视为违规**(这是"如实说明",不是"漏做") | | **留痕** | 拒拍动作本身**记入操作日志**,与补正记录同源可查 | > **⭐ 设计要点**:**让"没拍"本身变成一个"有痕的证据"**——比"逼她拍"或"让她拍不了就走不掉"都强。**注意**:`is_refused_photo=1` **不等于免责**,只是**把"为什么没拍"说清楚**;是否认账由医保/机构判定。 > **与 §4.9 异常上报的区别**:异常上报是"**发现了问题**"(压疮/呛咳);拒拍登记是"**该拍的没拍成**"。**两件事,两个入口,不混。** ### 4.5.2 拍照分档的"属地核对清单"(S5·签约前必办) | 步 | 动作 | 产出 | |:---:|---|---| | 1 | 取当地(统筹区)巡查/服务规范原文 | 一份可引用的官方件 | | 2 | 逐项比对"哪些项须留照片" vs 上表默认分档 | 差异清单 | | 3 | 差异项在**机构配置层**调整(不改代码) | 配置值 | | 4 | 写入签约/上线确认单,双方签字 | 存证 | > **登记落点**:`20261012-签约前必办清单`(含拍照分档核对项)。**未完成此核对,不得对外宣称"拍照分档已符合当地要求"。** > **⭐ 责任划法(R-3 补,2026-10-12)**: > - **我方=供"建议值"**(上表默认分档);**机构="核对确认"**(逐项比对、签字)。 > - **核对遗漏的责任,以签约前《属地核对确认单》签收为界**——签字前发现的差异=协作核对范畴;签字后属地要求变化的=新的适用要求,另行处理。 > - **交付要求**:**首次交付即支持"分档批量改"**(整批调整,非逐项手调),列入 **P-5 验收**。 ### 4.6 临时加项(少用但必须有) | 项 | 规则 | |---|---| | 入口 | 项目区底部 **[+ 临时加项]**(**小字、不显眼**) | | 如何选 | **只能从属地目录里选**(不能自由输入)——保障"不得自创项目" | | 记录 | 加项**单独标记**,质控端显示"计划外加项" | | 提示 | 选完提示"计划外项目已记录,机构会看到"(**告知,不是警告**) | > **为什么必须有**:护理员现场发现老人需要额外照护,**如果没有入口,她会口头说、然后不记录**——这正是"**发现了没进系统**"的断链点。 ### 4.7 时长提示(不强制) | 情况 | 系统行为 | |---|---| | 时长 ≥ 计划时长的 70% | 正常,无提示 | | 时长 < 计划时长的 70% | **提示**"本次用时较短,确认要签退吗?"——**可继续**,不拦 | | 时长 < 5 分钟 | 提示"用时很短,是否误操作?"——**可继续**,但质控端标黄 | > **⚠️ 两条纪律**:①**不设最低时长硬拦**(硬拦会逼护理员"耗时间"或"造假");②**提示不能带责怪语气**——写"确认要签退吗",**不写"服务时长不足"**。 > > **⭐ 补充基线(2026-10-11)**:国家目录官方电子版**逐项给了「推荐服务时长」**(沐浴 30–60 分钟、常规换药 20–30 分钟、快速血糖 3–5 分钟…)。已提取全 36 项,见 > `20261011-服务时长参考基线(源自官方电子版).md`。**建议二期或本期末**把它接入为**项目级**时长基线(现表为"计划时长百分比"通用口径,不涉具体项目)。 > **接入时的红线不变**:仍为**提示级+标签级,不拦截、不扣分**;措辞用"推荐时长",**不得**写成"标准时长/规定时长"。 ### 4.8 离线逻辑(关键) | 场景 | 行为 | |---|---| | 完全无网 | **签到/勾选/签退全部可用**;数据进本地队列;**界面无任何"网络异常"红字** | | 弱网(有信号但慢) | 同上;不弹"加载中" | | 恢复联网 | **后台自动补传**;补传成功**不弹窗打扰**(只在"我的"里显示"已同步") | | 补传失败 | 重试 3 次 → "我的"里标"待同步",**提示"回家连上 WIFI 就会自动传"** | | 照片 | 本地压缩后存储(**避免占满手机**);补传后**默认保留 7 天**再清理 | > **⭐ 为什么这是硬指标**:老人家里(尤其老旧小区、城中村)**无网/弱网是常态**。**要求"必须联网才能记录"=要求护理员在门口等信号**。 ### 4.9 M3 异常上报 ``` ┌───────────────────────────────────────┐ │ ← 上报异常 │ ├───────────────────────────────────────┤ │ 这是谁?(自动带入:李奶奶) │ ← 自动,不用选 │ 什么问题?(点选,可多选) │ ← 九宫格大按钮 │ ┌──────┬──────┬──────┐ │ │ │ 压疮 │ 呛咳 │ 跌倒 │ │ │ ├──────┼──────┼──────┤ │ │ │ 发热 │ 皮肤破损│ 情绪异常│ │ │ ├──────┼──────┼──────┤ │ │ │ 进食困难│ 排泄异常│ 其他 │ │ │ └──────┴──────┴──────┘ │ │ 【按住说话】 说一句就行 │ ← 语音,非必填 │ 📷 拍一张(可选) │ │ ┌──────────────────┐ │ │ │ 提交上报 │ │ │ └──────────────────┘ │ └───────────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **对象** | **自动带入**(从当前任务),不需选择 | | **问题分类** | **9 宫格点选**,**点击即选中**,可多选 | | **语音说明** | **按住说话**;**非必填**;最长 60 秒;自动转文字(仅内部记录用) | | **照片** | **可选**;不强制(**避免吓得不敢报**) | | **提交** | 一键;**即时推送**给组长与质控员 | > **⚠️ 关键取舍**:**异常上报"一切可选"(分类必选,其余可选)**——**异常上报的价值在于"报上来",不在于"报得多详细"**。如果要求必填照片、必填描述,**护理员会选择不报**。 **提交后**:推送给组长+质控员(APP 推送+后台待办);护理员侧显示"已上报,机构看到了",**不留任务在 APP 里**;异常记录关联到该次留痕;**不影响计划**(改计划是质控员的事,**APP 不提供改计划功能**)。 ### 4.9.1 ⭐ 未遇(扑空)专门形态(2026-10-12 新增,Q12 回填) > **要解决的真问题**:护理员按时到了、**老人不在家 / 家属临时不让做 / 老人已住院**——原口径下**只能口头跟组长说**,**系统无佐证 ⇒ 巡查看作"空单废单"**,机构被判"虚假服务"的风险落在自己头上。 | 元素 | 规则 | |---|---| | **入口** | M2 服务执行页底部小字:【没见到老人?】 | | **点击后** | 弹**原因点选**(不打字,4 选 1):①老人/家属不在家 ②家属临时不同意服务 ③老人已住院/已送医 ④其他 | | **随手可留** | **到访时间自动取**、**定位自动取**(证明"我确实来过");可语音补一句(非必填) | | **结果** | 工单转 **`not_met`(未遇)**,**不是"已完成"、也不是"逾期未做"**;**不产生服务记录、不计费** | | **推送** | 推给组长+质控员,**组长可当场决定**:改期(生成新工单)或作废(留原因) | > **⭐ 与"异常上报"的关系**:**扑空是"异常上报"下的一个专门子类,复用同一套推送与留痕机制,不是新流程**(避免另起一套把 APP 做重)。 > **与"逾期未做"的区别**:**逾期未做=到点没记录**(可能压根没去);**未遇=去了、有到访时间与定位、但没做成**。**两者性质完全不同,必须分开——这正是"空单废单"能被说清的关键。** ### 4.10 M4 任务详情(只读) | 区块 | 内容 | |---|---| | **老人基本信息** | 称呼、性别、年龄(**不显示身份证号等敏感信息**) | | **本次服务计划** | 项目清单、频次、预计时长 | | **⚠️ 注意事项** | **醒目区块**:过敏史、吞咽障碍、压疮位置、禁食要求等 | | **上次服务** | 时间+项目(**帮她想起来上次做到哪**) | | **家属联系人** | 一键拨号(**走隐私号**,不显示真实号码) | **权限**:**纯只读**——**不得在此页修改任何内容**(防误改)。 > **⭐ 注意事项区块的填写来源**:**这一块是"该加的专项漏加"的防线**。内容由**质控员在制定服务计划时填写**,**护理员只读**。例:老人有吞咽障碍 → 写"**进食需慢、小口、坐起 90 度,出现呛咳立即停止**"。**这比"系统提示加项"更直接有效**——因为它告诉护理员"怎么做",不只是"要做什么"。 ### 4.11 M5 我的 | 区块 | 内容 | 说明 | |---|---|---| | **我的工时** | 本月服务次数、总时长 | **不显示金额**(本期无结算) | | **我的消息** | 机构通知、异常反馈 | 系统通知+机构群发 | | **我的资质** | 资质类型、有效期 | **本期人工登记展示**;〔二期〕做到期提醒 | | **同步状态** | "已同步 / N 条待同步" | **离线补传的可见出口** | | **设置** | 字号调节、退出登录 | **字号可再放大**(照顾老花) | > **⚠️ 不做**:不做积分、不做排名、不做"服务之星"——**评比会诱发造假**。 ### 4.12 APP 已定事项 | # | 事项 | 定论 | |:---:|---|---| | 1 | **必拍档是否加"压疮护理"** | ✅ **已定:加**。实现=**照片 + 结构化标签**(部位 9 选项 + 分期 6 选项,均可跳过)。详见 §4.5 | | 2 | **APP 名称与图标** | ✅ **开发期占位名"投云长护"**;图标用**青蓝色板+简洁图形**(不用人脸、不用心形)。**上架前再定终名**(改名成本极低) | > **⚠️ APP 名的一个前置问题(上架前必须想清)**:公司与品牌是两套——**公司=云南投云科技有限公司、品牌=滇云守护**。**APP 叫"投云长护"还是"滇云守护",本质是回答"这个 APP 是公司产品线的一员,还是品牌下的一个端口"。** 本期不影响开发。 --- ## 五、机构管理后台(①②④ + 文书/设置) > **本期只做 B1–B4 + B7/B8 精简版**;**B0 院长看板、B5 结算对账、B6 人员资质为二期,本期不在导航中出现**。 > **一句话设计目标**:**让组长"调单比微信群快",让质控员"日常做完就是合规记录",不用天天补台账。** ### 5.1 主导航(登录后,只有 6 项) ``` 投云长护 · 机构后台 ┌──────────────────────────────────────┐ │ 服务对象 排班派单 工单留痕 质控中心 │ ← 4 个主功能 │ 文书档案 系统设置 │ ← 2 个辅助 └──────────────────────────────────────┘ ``` | 序 | 导航项 | 分期 | 谁用 | |:---:|---|:---:|---| | 1 | **服务对象**(B1) | **本期** | 质控员 | | 2 | **排班派单**(B2) | **本期** | 组长 | | 3 | **工单留痕**(B3) | **本期** | 质控员/院长 | | 4 | **质控中心**(B4) | **本期** | 质控员 | | 5 | **文书档案**(B7 精简版) | **本期** | 质控员 | | 6 | **系统设置**(B8 精简版) | **本期** | 机构管理员 | > **⚠️ 本期不出现的导航项**:**院长看板(B0)/结算对账(B5)/人员资质(B6)**。 > **对客口径**:**"首期就做了这几块,余下二期上"**——**不承诺菜单**。**不做"导航都在、点进去没数据"**。 **登录后落在哪(已定)**:**直接落"服务对象"列表页(B1),不做看板首页**。理由:本期机构日常最常进的就是"找人"。 **⭐ 登录页的属地信息(多属地提示)** ``` ┌──────────────────────────────┐ │ 投云长护 · 机构后台 │ │ 机构:XX 养老服务中心 │ │ 属地:昆明市 │ ← 显示参保地 │ 目录:昆明市 45 项 │ ← 显示加载了哪套目录 │ [ 账号 ] [ 密码 ] [ 登录 ] │ └──────────────────────────────┘ ``` > **⭐ 为什么显示"属地"和"目录"**:①让机构**知道自己在哪套规则下**;②**这是多属地能力的可视化**——**对客演示时,这一行就是卖点**;③**属地不可自助修改**(改属地=重新签约)。 ### 5.2 B1 服务对象 ``` ┌────────────────────────────────────────────────────────────┐ │ 服务对象 [+ 新建老人档案] [搜索] │ ├────────────────────────────────────────────────────────────┤ │ [全部] [正常享受] [住院暂停] [待建档] [待遇到期] ← 状态筛选 │ ├────────────────────────────────────────────────────────────┤ │ 姓名 护理等级 状态 计划 下次服务 操作 │ │ 李奶奶 一级(最高) 正常享受 ✓已制定 10-11 09:00 查看 │ │ 张爷爷 二级 住院暂停 ✓已制定 —(暂停) 查看 │ │ 赵奶奶 三级 ⚠️待建档 — — 建档 │ │ 王大爷 一级(最高) 待遇到期 ✓已制定 —(暂停) 查看 │ └────────────────────────────────────────────────────────────┘ ``` | 字段 | 规则 | |---|---| | **姓名** | 显示老人称呼(**不显示身份证号**,点进详情才可见且需权限) | | **护理等级** | **必须带"(最高级)"标注在一级后** | | **状态** | 5 色标签:正常(绿)/住院暂停(橙)/待建档(黄)/待遇到期(橙红)/已终止(灰) | | **计划** | 显示"✓已制定"或"—";**未制定的标黄并显示倒计时** | **⭐ 建档(含法定时限倒计时)** | 项 | 规则 | |---|---| | **建档时限** | **签约后 1 个月内**(政策要求);顶部显示 **"距建档截止还有 N 天"**,超期标红 | | **必填** | 称呼、性别、年龄、参保地、护理等级、待遇有效期、家属联系人 | | **注意事项区块** | ⚠️ **醒目区块**:过敏史、吞咽障碍、压疮位置、禁食要求等——**这是 APP 端 M4 的数据来源** | | **属地字段** | 参保地**自动取机构属地**(跨属地老人需手工选,并提示规则差异) | | **敏感信息** | 身份证号等**加密存储、按权限查看、访问留痕** | | **参保核验(第 1 步·前置)** | 建档前先核参保:凭**身份证号+医保参保号**核对参保状态、参保类别(职工/居民)。**本期无医保接口,不做在线核验**——核验以机构线下确认为准、结果记备注留痕;接口发布后升级为在线核验(入站接口预留) | | **录入方式(降负担)** | 身份证 **OCR 拍照自动回填**(回填后仍走 18 位+校验位校验,OCR 只是省打字不替代校验);出生日期由身份证带出;地址=**行政区划级联选择+门牌文字/语音**;全表**语音双通道兜底** | | **评估结论承载(等级唯一来源)** | 失能等级**只能来自评估结论**:A 路径=**拍照上传评估结论副本(系统自动打水印+时间戳)**;B 路径=官方接口拉取〔接口发布后〕。**禁止**建档人自行"勾选/填写"出等级;**无结论佐证的档案不能转"正常享受"** | > **⚠️ 建档时限来源**:昆医保通〔2025〕27 号第三十四条"建立服务实名制档案,**1 个月内**"。 **服务计划(建档后第二步)** | 项 | 规则 | |---|---| | **计划时限** | **签约后 5 个工作日内**制定(政策要求);页面显示倒计时 | | **计划内容** | 服务项目(**从属地目录中选**)、频次、时长、配比 | | **护理方式(决定校验规则)** | **在制定计划时选择**(医养结合/养老机构/居家机构/居家个体)——**它不属老人档案的固定属性**(同一老人换护理方式=换计划),**系统据此套用 §2.5 对应的项数规则**(州市本期无规则,见下) | | **项目数量校验** | **按属地规则**:**昆明**=一级≥18 项/二级≥15/三级≥13,居家按周次数与月时长,**不满足则不能提交**;**州市**=**本期不校验**(只提示"州市项数规则待属地实施细则明确"),**不拦不卡** | | **目录外提示** | 昆明机构勾选时,**国家新增项(吞咽训练等 5 项)显式列出并标"过渡期新增·建议纳入"** | | **三方确认** | 计划需经**家属/长护专员确认**后生效——本期以**系统内确认记录**为准 | | **变更留痕** | 计划变更**全程留痕**(谁改、何时改、原值、新值) | > **⭐ 为什么"项目数量校验"是硬要求**:昆明 45 项明确规定了不同护理方式/等级的最低项数,**这是巡查会查的**。系统拦住,比事后被查出来好。 > **⚠️ 州市为何本期不校验(已定)**:各州市**实施细则未发布**,且国家 36 项**没有项数规则表述**、与昆明 45 项颗粒度对不上 ⇒ **照搬昆明=给错规则**。项数规则属**配置数据**,细则出来后**补配置即可,不改代码**。**界面提示语固定为"州市项数规则待属地实施细则明确"。** ### 5.3 B2 排班派单(组长主战场) ``` ┌────────────────────────────────────────────────────────────────┐ │ 排班派单 [日视图 ●] [周视图 ○] 10-11 周六 [← →] │ ├────────────────────────────────────────────────────────────────┤ │ 09:00 11:00 14:30 16:00 │ │ 王阿姨 ●李奶奶 ●赵奶奶 │ │ 刘阿姨 ●张爷爷 ●孙奶奶 │ │ 陈阿姨 ⚠️ 空缺 │ ← 空缺自动标 ├────────────────────────────────────────────────────────────────┤ │ ⚠️ 2 个空缺待派 · 1 个时间冲突 · 王阿姨今日 3 单(负荷偏高) │ └────────────────────────────────────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **默认视图** | **日视图**(组长每天实际是按天调的) | | **横轴** | 时间段;**纵轴**=护理员 | | **卡片** | 显示老人称呼+项目数;点击即**调单面板** | | **自动提示** | ① **空缺** ② **时间冲突** ③ **负荷偏高** | | **颜色** | 正常=蓝;冲突=红;空缺=橙虚框 | **⭐ 调单:严格 ≤3 步** ``` ① 点卡片(或点空缺位) ↓ ② 弹出「改派给谁」,列出可用护理员(含负荷显示) ↓ ③ 点选目标护理员 → 确认 ──────────────────────────── 合计:3 步 ``` | 环节 | 设计要点 | |---|---| | **第 2 步** | **只列"可派的人"**:该时段空闲的、有资质的(**本期为提示,非拦**)、不在休假的 | | **资质提示** | 〔本期〕**该护理员资质已过期/无该项目资质,请确认** ——**红色提示但可继续**(L6 降级口径) | | **负荷显示** | 每个人后面显示"今日已有 N 单",**不排序、不强制** | | **确认** | **一次确认即生效**;**自动通知护理员 APP** | | **留痕** | 调单记录**谁改的、改前改后、时间**(评查用) | > **⭐ 计时验收标准**:**同一调单操作,"微信群沟通"与"系统操作"各计时,系统不得更慢。** 这是第 7 条硬指标。**如果做不到,组长两周内就会绕过系统。** **批量派单(提效,但非必须)** | 项 | 规则 | |---|---| | **一键派单** | 选时间段 → 系统按"同资质 → 历史服务过该老人 → 距离近 → 当日负荷低"**推荐** → 组长确认 | | **批量确认** | 推荐的**可整批确认**,也可逐条改 | | **⚠️ 纪律** | **推荐 ≠ 自动派**——**必须组长确认**(自动派单一旦出错,责任无法归属) | > **⚠️ 推荐权重说明**:默认权重如上;**不做"熟练度/口碑"排序**(易引发"偏心"质疑)。**这项属现场实测型**——真实排序是否合理,须在机构走访中**观察组长实际派单 10 次**后校准。**不阻塞开发**,代码写成可配置参数。 **冲突检测(自动,不可绕过)** | 冲突类型 | 系统行为 | |---|---| | **同一护理员时间重叠** | **红色警示+不可保存**(硬拦) | | **同一老人同时段两次服务** | **红色警示+不可保存**(硬拦) | | **跨机构/跨站点冲突** | 本期不做(单机构内检测) | | **护理员休假/离职** | 排班表已排除;如手工指定则提示 | > **⚠️ 只有时间冲突硬拦**,其余(负荷、资质、距离)**都只是提示**——**"锁得少、锁得准"**。 ### 5.4 B3 工单留痕(查看与追溯) **列表筛选**:按老人(默认,最常用)/按时间/按护理员/按状态。 **留痕详情(一条记录看全)** ``` ┌──────────────────────────────────────────────┐ │ 李奶奶 · 10-11 09:02–10:00 · 王阿姨 │ ├──────────────────────────────────────────────┤ │ ✅ 签到 09:02 📍 已定位 │ │ ✅ 签退 10:00 时长 58 分钟 │ ├──────────────────────────────────────────────┤ │ 协助翻身叩背排痰 ✔️ 已执行 📷 照片 1 张 │ │ 协助进食/水及指导 ✔️ 已执行 │ │ 口腔清洁 ✔️ 已执行 │ │ 生命体征测量 ✖️ 未执行(计划内) │ │ ⭐ 临时加项:协助如厕(计划外) │ ├──────────────────────────────────────────────┤ │ 🎤 语音说明:[播放] │ │ ⚠️ 异常上报:无 │ ├──────────────────────────────────────────────┤ │ 质控:待审核 [ 放行 ] [ 退回 ] │ └──────────────────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **照片** | 缩略图+点击放大;**显示拍摄时间**(防事后补拍) | | **未执行项** | **显式标出**(这是质控重点) | | **临时加项** | **单独标记**"计划外" | | **语音** | 可播放;自动转文字(辅助阅读,**不作为正式记录**) | | **修改** | **不可直接改**——只能"补正",**保留原值+补正痕迹** | ### 5.5 B4 质控中心(质控员主战场) ``` ┌──────────────────────────────────────────────────────────────┐ │ 质控中心 │ ├──────────────────────────────────────────────────────────────┤ │ 【待我处理】14 项 ← ① 主动推送区(最关键) │ │ ⚠️ 3 条异常上报待处理 │ │ 🔴 2 条逾期未做(超 24 小时) │ │ 🟡 5 条留痕待放行 │ │ 🟡 2 位老人计划未制定(含倒计时) │ │ ⚠️ 2 条住院状态老人仍有派单 │ ├──────────────────────────────────────────────────────────────┤ │ 【待放行队列】 记录列表 → 逐条放行 / 退回 │ ├──────────────────────────────────────────────────────────────┤ │ 【异常处理台】 异常上报列表 → 处理 / 转派 / 关闭(附处理意见) │ └──────────────────────────────────────────────────────────────┘ ``` **⭐ 五类主动推送(不等人工查)** | # | 推送项 | 触发条件 | 优先级 | |:---:|---|---|:---:| | 1 | **异常上报待处理** | 护理员提交异常 | 🔴 高 | | 2 | **逾期未做** | 工单过时段仍无记录(**超 24 小时标红**) | 🔴 高 | | 3 | **住院状态仍有派单** | 老人状态=住院暂停,但存在待办工单 | ⚠️ 高 | | 4 | **计划未制定/超期** | 签约后 5 个工作日未制定计划 | 🟡 中 | | 5 | **留痕待放行** | 服务完成未审核 | 🟡 中 | > **⭐ 第 3 条是本系统的一个特色防线**:老人住院了,**如果机构没及时改状态,系统仍然允许派单**(因为状态靠人工维护)。所以这里加一道**"交叉检查"**:**只要挂了住院标记,就回头查有没有未取消的工单**——**用事后校验弥补"状态非自动"的短板**。 > **⚠️ 注意措辞**:这是**内部质控线索**,对客不说"系统自动发现住院"。 **放行与退回** | 操作 | 规则 | |---|---| | **放行** | 一键;**放行后进"上报池"**〔二期〕;本期放行=记录"质控通过" | | **退回** | 必填**退回原因**(下拉选择,不要求打字);**退回后护理员可补正** | | **批量放行** | 支持;但**异常记录、未执行项记录不可批量放行**(必须逐条看) | | **全量+分级** | **不是抽检**——所有记录都过质控队列,**异常与高危级别不允许跳过** | > **⚠️ 为什么"全量而不是抽检"**:抽检是**监管方的**做法;**机构自己的质控必须是全量的**——因为出问题时,**"我们抽检了没抽到"不是理由**。 **异常处理** | 环节 | 规则 | |---|---| | 收到 | 即时推送(组长+质控员同时收到) | | 判断 | 质控员判断:**需改计划?需上报医保?需联系家属?** | | 处理 | 记录处理意见(**下拉+可选补充**,不强制打字) | | 联动 | ⚠️ **如判断需加专项 → 联动到服务计划变更**(对应"该加的专项漏加"防线) | | 关闭 | 处理完关闭,**全过程留痕** | > **⭐ 这个联动是关键**:**护理员发现压疮 → 上报 → 质控员判断需加压疮护理 → 直接改计划 → 下次派单自动带出该项目**。**这一条链走通,"发现了没进系统"的断链就补上了。** > **质控超时提醒(已定)**:**设**,默认阈值 **24 小时**,**每天最多提醒 1 次**,且**不阻塞任何流程**(未放行只影响"能否上报",不影响护理员接单与服务)。属**现场实测型**——真实值须问机构质控岗"您现在多久看一次服务记录";做成**机构可在 B8 自行配置**的项。 ### 5.5.1 ⭐ B1–B4 交互细则(开发按此实现,逐条不省) > **这一节补的是"字段级校验 + 边界态 + 反馈"**——上面说了"有什么",这里说**"填错/漏填/状态不对时系统怎么办"**。**完整版见 `PRD-02 机构管理后台` §3.5/§4.6/§5.4/§6.6**,本节为交付开发用的收口版。 **【B1 服务对象】** | 项 | 规则 | |---|---| | **建档必填校验** | 身份证 **18 位+校验位算法**;出生日期**由身份证自动带出**(手改须填原因);参保地默认取机构属地、**跨属地须二次确认**;待遇止 > 起 | | **身份证防重** | 同机构内 `id_card_no` **不可重复建档**;命中已有档案⇒**提示"已有档案,是否查看"**(不报错,避免重复建档=档案管理扣分) | | **建档连锁动作** | 保存成功⇒自动生成档案号+状态转"正常享受"+倒计时切"距计划截止 N 天"+待办出现"制定服务计划" | | **防误操作** | **档案不可物理删除**,只能"终止";**变更护理等级须二次确认+必填原因** | | **边界态** | 无档案⇒空状态+大按钮(不留白表格);超期⇒行标红+顶部红条;住院中⇒"制定计划/派单"按钮**置灰**并提示"住院期间不可新增服务" | **【B1-A 垫付期台账与"结转"】(2026-10-12 新增,Q7 回填)** > **背景**:长护险有 **6 个月等待期**,机构常先垫钱上门。这段服务**录得进、留得住痕、但不计费**。 | 项 | 规则 | |---|---| | **录得进** | `待起付(等待期)` 态下**允许派单、允许服务、允许留痕**(`record.is_prepaid=1`) | | **不计费** | `is_prepaid=1` 的记录 `billable=0`,**不进结算池、不进医保可见的上报池** | | **不误拦** | L1(`1001`)**只拦"要计费的在享服务"**;等待期走垫付台账,**不被误拦** | | **结转入口** | 待遇生效(转 `正常享受`)后,档案页出现**〔结转垫付期服务〕**按钮 | | **结转规则** | 机构**勾选**若干垫付记录 ⇒ 一键生成对应**正式服务记录**;**原垫付记录永久保留**(只读),两套并存;**不自动转**(计费规则不同,自动转=埋合规雷) | | **原始时间戳(R-1 补,2026-10-12)** | **结转不改变原始时间戳**:转正后的记录,其**签到时间、定位、照片仍为该次服务的原始值**(**不改为"结转日"**),仅新增 **"来源=垫付台账(`is_prepaid=1`)"** 标记。**目的**:①不踩"无有效待遇不能服务"硬锁;②不制造虚假"补正痕迹"。 | | **留痕** | 结转动作**记操作日志**(谁、何时、结转了哪几条) | > **⭐ 设计要点**:**等待期恰是最需要台账的阶段**——机构垫了钱要留证、要跟家属交代、要跟医保说清"这段是我先做的"。做成**独立台账 + 手动结转**,既不违反"无待遇不能结算",又不让这段服务变纸面空白,**还不埋"自动算钱算错"的雷**。 **【B1-B 数据初始化 · 批量导入】(2026-10-12 新增,Q17 回填)** | 项 | 规则 | |---|---| | **支持对象** | **参保人档案、护理员档案、服务项目配价** 三类均支持 **Excel 批量导入** | | **模板** | 系统提供**标准模板**(含必填列、格式说明);**模板下载**在导入页 | | **校验** | 导入前**逐行校验**(身份证 18 位+校验位、必填非空、参保地合法、项目须在属地目录内);**错误行不写入、生成错误报告**(行号+原因) | | **重复处理** | 命中已有 `id_card_no` ⇒ **标"已存在"**,由机构选"跳过/更新",**不静默覆盖** | | **上限** | 单次导入 **[待定·建议 ≤2000 行]**(开发联调时定);超限提示分批 | | **留痕** | 每次导入**记操作日志**(导入人、时间、成功/失败条数、文件名) | > **⭐ 为什么必须有**:机构手里的老人/护理员名单**本来就在 Excel 里**——若只能一条条手录,**上线第一周就劝退**。**"换新账本,不用手抄几百个名字"是能否落地的关键一环。** **【B1-C 老人个人项目库】(2026-10-12 新增,R10)** > **触发**:机构提出"床位护理 + 居家护理"双线,且要求**目录能按老人维度适配**——即同一机构里,不同老人应有各自长期固定的服务项目组合,派单时直接带入,而不是每次从机构大目录重新挑一遍。 **它与"服务计划"的分工(先讲清,防两套数据打架)**: | 结构 | 回答的问题 | 性质 | 变化频率 | |---|---|---|---| | **`elder_svc` 老人个人项目库** | 这个老人**长期能做 / 常做**哪些项目 | **稳定底表**(派单带入源) | 低(老人能力变了才改) | | **`plan` / `plan_item` 服务计划** | 这个周期内**按什么规格**执行(频次/时长/拍照档/护理方式) | **周期生效的正式安排**(版本化) | 中(随评估等级、周期调整) | **关系一句话**:**派单时先读 `elder_svc` 带入"该老人常做项目"当默认勾选,再叠加 `plan` 的规格(频次/时长/拍照档)落成工单。** `elder_svc` 只回答"做哪些",`plan` 只回答"怎么做"——**两者不互相替代、不重复存。** **核心规则**: | 项 | 规则 | |---|---| | **归属** | 一张 `elder_svc` 挂在一位老人 `elder_id` 下(**一人一份**,一账号一老人天然一致) | | **项目来源** | 只能从**本机构 L4 项目库(`svc_org`)**里勾选,**不可自创、不可写机构目录外的项目**(与 `plan_item` 同纪律) | | **数量约束** | **沿用 §2.5 属地项数规则**(昆明按护理等级 ≥13/15/18 项,附加 ≤5 项)——**不是无上限自由堆**,防止"个人项目库"绕过属地合规 | | **默认带入** | 制定服务计划时,**一键"从个人项目库带入"**,自动生成 `plan_item` 初稿;派单时再按 `plan` 展开 | | **护理方式切换** | 老人换护理方式(如居家 → 机构)= **重制个人项目库**(因 §2.5 项数规则按护理方式套用),**旧库只读留档**(同"计划变更留旧版"纪律) | | **变更留痕** | 增删项目**全程留痕**(谁、何时、原值、新值)——与计划变更同标准 | | **可空** | 老人可不维护个人项目库;此时制定计划仍从 L4 手动勾选(**回退路径不变**,新能力是**可选加速**,不是**新增强制步骤**) | **交互落地(后台)**: - 老人档案页新增「**个人项目库**」区块;未维护时显"未设置,制定计划时手动选"; - 制定/续计划弹层新增「**从个人项目库带入**」按钮——**点了带入可改**(带入只是初稿,最终仍以计划为准); - 质控员 / 管理员可编辑(与"制定/变更服务计划"同权限,见 §3.4 权限表),护理员端**只读**。 > **⭐ 为什么这么做**:你要的"按老人维度适配",本质是"**每个老人的默认项目清单**"。直接做成独立 `elder_svc` 底表,①**不污染** `plan` 的"周期生效 + 版本化"语义;②**派单带入**省掉"每次重新挑一遍";③**可空**保证老机构、老流程**零迁移成本**。**"双线机构"尤其受益**——床位线和居家线可以各维护各的老人清单,互不串。 **【B2 排班派单】** **派单前置校验(按序跑,前 5 条硬拦、6–7 条仅提示、第 8 条可见性过滤)**: | 序 | 校验 | 不通过 | |:---:|---|---| | 1 | 工单状态=待派单/已派单 | 拒绝 | | 2 | 老人状态=正常享受 | **硬拦**(L1) | | 3 | 有有效计划 | **硬拦**(L2) | | 4 | 护理员当班未休假 | **硬拦** | | 5 | 时间不冲突 | **硬拦**(`2001`) | | 6 | 有该项目/等级资质 | **仅提示**(`1006`,红字可继续,L6 降级) | | 7 | 属组长本组 | **不出现该人选**(过滤,非报错) | - **"可派的人"列表**:只给**事实**(姓名/今日 N 单/资质状态),**不排序**——排序=暗示,组长会盲从; - **调单严格 3 步**:点卡片(弹层不跳页)→点"改派给谁"→点人确认(**即时生效+自动推 APP+写留痕**);**不弹二次确认**(高频操作,且可改回); - **批量派单**:推荐**必须人工确认**,**不做一键全派**;**B-1 权重未取值时不显示推荐列**(宁可不给,不给错的); - **边界态**:今日无排班⇒空状态+"生成工单";全是空缺⇒顶部黄条+空缺位橙虚框;调单时**原护理员已签到⇒不允许调**(提示已开始,如需处理走异常上报)。 **【B3 工单留痕】**(含**补正**的正确做法) | 项 | 规则 | |---|---| | **补正(本页最易做错)** | **原记录永久保留**,补正产生**新增更正说明**,两条并列;**❌ 不给"编辑"按钮直接改** | | **不能补正什么** | **签到时间、定位、照片本身**——**这三项是"服务发生过"的证据,结构上不可动** | | **补正次数** | 不限但每次留痕;同记录补正 **≥3 次⇒自动进质控重点** | | **照片** | 后台 `qc`/`leader`(本组)/`director` 可看;**默认不可下载**;**家属端一律不展示** | | **时间线** | 按时间倒序,**逾期未做显式占一行**("少做一次"比"做错"更需被看见) | | **导出** | **必须记操作日志**+文件**带水印**(机构名+时间+操作人) | > **⚠️ 为什么这么严**:巡查表违法违规查处类明确列"**伪造、变造服务记录**"。**给一个"随便改"的按钮,就是把机构架在火上。** **【B4 质控中心】** **放行前"对账自检"(按序,任一不通过不放行)**: | 序 | 检查 | 不通过 | |:---:|---|---| | 1 | 留痕四要素齐(时间/项目/时长/护理员) | `1004` | | 2 | 必拍项已拍 | `3001` | | 3 | 状态=待质控 | 幂等提示"已放行" | | 4 | **放行人 ≠ 记录录入人** | **`4001`** 自审自放行 | - **退回原因用下拉**(6 选项,不要求打字——质控员可能也是 50 岁); - **批量放行的安全边界**:有**异常/未执行项/临时加项/时长异常/补正过**的,**一律不可批量**——**批量是为省手,不是为省眼**; - **五类推送必须有"消除条件"**(否则列表只长不消,两周后就被无视); - **时效可视**:每条待放行记录显示"已等待 X 小时",超阈值(默认 24h,**待走访回填**)标黄、超 2 倍标红;**提醒不阻塞流程**; - **边界态**:全部处理完⇒显示"✅ 今日已清空"(不留空表格);待处理 >50⇒分批+总数提示;已被他人认领⇒标"处理中(张质控)"避免重复处理。 --- ### 5.6 B7 文书档案(精简版) | 功能 | 说明 | |---|---| | **一人一档** | 每位老人的档案(基本信息+服务计划+全部服务记录+异常记录) | | **导出即合规版式** | 导出对齐**国家 2026 版文书**格式(第 9 条硬指标) | | **按需检索** | 按老人/时间导出 | | **协议期满移交** | 支持整包导出 | > **⭐ 措辞纪律(写死,所有界面文案适用)**:**本模块不得出现"迎检""应对巡查""守住分值""检查前准备"等表述。** **正确表述**:**"日常留痕,随时可导出"**。理由:巡查是监管方的评价动作,**把它说成"要应对的事",等于承认平时没做好**。 > **本期不做**:电子签章、公文流转、模板自定义 —— **留二期**。 ### 5.7 B8 系统设置(精简版) | 分组 | 内容 | |---|---| | **机构信息** | 名称、地址、法人、联系方式、**参保地(只读)** | | **属地与目录** | 显示当前属地与加载的目录(**只读**);**国家新增项提示开关**(默认开) | | **账号与权限** | 新增/停用账号、分配角色(护理员/组长/质控员/院长,**可多选**,见 §3.4.1 补充 2)、**指定护理员归属组长**(下拉选本机构组长,可留空=未分组,见 §3.4.1 补充 4) | | **服务项目与配价** | **L4 机构项目库**:从属地目录勾选 + 配价 | | **对接档位** | 显示当前档位(A 人工登记/B 文件导入导出);**C 档预留,显示"待接口发布"** | | **拍照分档配置** | 机构可**加严**必拍项(**不建议放宽**,界面会提示) | | **质控提醒配置** | 质控超时提醒阈值(默认 24 小时) | **⭐ 服务项目与配价(多属地的落地页)** ``` ┌────────────────────────────────────────────────────────────┐ │ 服务项目与配价 属地:昆明市 → 加载:昆明市目录(45项) │ ├────────────────────────────────────────────────────────────┤ │ [全部] [生活照护] [医疗护理] ← 按属地目录分类 │ ├────────────────────────────────────────────────────────────┤ │ ☑ 头面部清洁、梳理 ¥XX /次 [启用●] │ │ ☑ 温水擦浴 ¥XX /次 [启用●] │ │ ☐ 会阴护理 ¥XX /次 [停用○] │ ├────────────────────────────────────────────────────────────┤ │ ⭐ 国家目录新增项(本地方案未含,建议纳入) │ │ ☐ 吞咽功能训练 国家代码 L0000204030010000 │ │ ☐ 言语功能训练 国家代码 L0000204040010000 │ │ ☐ 压疮预防照护及指导 国家代码 L0000106020010000 │ │ (以上为过渡期新增,纳入后可按国家目录上报) │ └────────────────────────────────────────────────────────────┘ ``` | 规则 | 说明 | |---|---| | **项目来源** | **只能从属地目录勾选**(不可自创、不可自由输入) | | **配价** | 机构自填价格;**公示价=备案价=上传价须一致**(三价一致,二期校验,本期提示) | | **启用/停用** | 停用的项目不参与派单 | | **国家新增项区** | ⭐ **独立区块、显式列出**——即使本地目录没有,**也要让机构看见并可选** | | **属地切换** | **不可自助**——变更属地须联系我方(属重新配置) | ### 5.8 后台权限与已定事项 | 操作 | 组长 | 质控员 | 院长 | 机构管理员 | |---|:---:|:---:|:---:|:---:| | 服务对象建档/改计划 | — | ✅ | — | — | | 排班派单/调单 | ✅ **本组** | ✅ 全部 | — | — | | 工单留痕查看 | **本组** | ✅ 全部 | ✅ 全部 | — | | 质控放行/退回 | ✅ **本组** | ✅ 全部 | — | — | | 文书导出 | — | ✅ | ✅ | — | | 系统设置(B8) | — | — | — | ✅ | > **⚠️ 四条口径(与 §3.4.1 一致)**:① **"本组"=查 `staff.group_leader_id = 本人 staff_id` 的护理员**,不分组时组长看不到任何人;② **机构管理员不碰业务数据**,只在 B8 系统设置里有权限;③ **"院长无修改权限"修正为"仅当只持 `director` 时写接口 403"**,兼 `qc`/`admin` 按并集放行;④ **一人可兼多角色**,**唯一禁止"自审自放行"**(`4001`)。 --- ## 六、家属轻量端(微信公众号) > **形态**:**微信公众号**(不做独立 APP、不做小程序)。**服务号优先**,**菜单 → H5 页面**。 > **一句话设计目标**:**让家属"偶尔看一眼"就够——不装 APP、不打卡、不被派任务。** ### 6.1 ⭐ 三条铁律(本端最重要的设计约束) 1. **零任务**——**不做每日打卡、不做强制确认、不做任何"必须完成"的事**; 2. **默认只读**——家属**没有任何修改权限**(可"反馈",但改不了任何记录); 3. **只看得见自家**——**只能看自己关联的老人**。 > **⚠️ 第 1 条的实践依据**:已有公开报道——某些地区要求家属"**每日线上打卡 1 小时**",**操作困难、怨声载道**。 > **我方判断**:**家属是"外援",不是"员工"**。**给家属派任务,是把机构的责任转嫁给家属**。 ### 6.2 页面地图(3 个页面,不再多) | 序 | 页面 | 一句话职责 | 是否必须 | |:---:|---|---|:---:| | **F1** | **我家老人** | 老人基本情况、当前服务计划(只读) | ✅ | | **F2** | **服务记录** | 谁来过、做了什么、多久(只读) | ✅ | | **F3** | **确认与反馈** | 可选确认某次服务 / 留言反馈 | ⭕ 可选 | **公众号菜单**:`[ 我家老人 ]` `[ 服务记录 ]` `[ 有问题找机构 ]`——**只有三个菜单项**。 **首次进入:绑定老人(仅一次)** ``` ┌──────────────────────────────────┐ │ 绑定家里的老人 │ │ 请输入老人姓名 + 手机号后 4 位 │ │ [ 姓名 ] [ 手机号后4位 ] │ │ [ 绑 定 ] │ │ 温馨提示:绑定后,您可以查看 │ │ 老人的服务记录。如绑定不成功, │ │ 请联系机构。 │ └──────────────────────────────────┘ ``` | 规则 | 说明 | |---|---| | **绑定方式** | 姓名 + 手机号后 4 位(**不用验证码,简化**) | | **绑定失败** | 提示"请联系机构核对信息" | | **可绑几位** | 允许多人绑同一位老人 | | **解绑** | 需联系机构 | | **⚠️ 防泄露** | 姓名+手机号后 4 位**已足以防止随机猜测**;**不做"输入身份证"这类高门槛验证** | ### 6.3 F1 我家老人 | 字段 | 规则 | |---|---| | **老人称呼** | 只显示称呼,**不显示身份证、住址等敏感信息** | | **护理等级** | **必须写"一级护理(最高级)"** | | **服务计划** | 项目+频次;**只读** | | **服务人员** | 显示**姓名**(本期 `staff` 表**无"工号"字段**,不做工号;**不显示手机号**,走机构统一联系) | | **不显示** | 价格、费用、限额、基金支付比例——**家属端不涉及钱** | ### 6.4 F2 服务记录 ``` ┌───────────────────────────────────┐ │ 李奶奶的服务记录 │ ├───────────────────────────────────┤ │ 今天 10-11 │ │ ┌─────────────────────────────┐ │ │ │ 09:02–10:00 王阿姨 · 58 分钟 │ │ │ │ 翻身叩背、进食、口腔清洁 │ │ │ │ [知道啦 ○] │ │ ← 可选确认 │ └─────────────────────────────┘ │ │ 昨天 10-10 │ │ ┌─────────────────────────────┐ │ │ │ 09:15–10:05 王阿姨 · 50 分钟 │ │ │ │ 翻身叩背、进食、擦浴 │ │ │ │ ✅ 已确认 │ │ │ └─────────────────────────────┘ │ └───────────────────────────────────┘ ``` | 元素 | 规则 | |---|---| | **排序** | 时间倒序(最新的在最上) | | **每条显示** | 日期、时间段、**服务人员姓名**、**时长**、**服务项目清单** | | **照片** | ⚠️ **本期一律不展示**——见 §6.7 | | **异常** | 如有异常上报,显示"已向机构反馈"(**不展示异常细节**,避免家属过度焦虑) | | **服务人员** | 显示姓名;**如由多位护理员服务,如实显示实际那个人**(对不上号=信任问题) | > **⭐ 家属端最实在的一件事**:**看到"计划里有的项目,实际做了没有"。** 例:计划含"生命体征测量",某天记录里标"未执行"——**家属能看到**。 > **⚠️ 但措辞要格外小心**:**不呈现为"护理员没做",而呈现为"本次未执行"**——因为"未执行"可能是老人当时状态不适合,原因在机构侧。 ### 6.5 F3 确认与反馈 **可选确认(与拍照分档配套)** ``` ┌───────────────────────────────────┐ │ 10-11 09:02–10:00 │ │ 王阿姨上门做了:翻身叩背、进食、口腔清洁 │ │ 您知道这次服务吗? │ │ [ ✅ 知道啦 ] [ 有疑问 ] │ │ (不点也没关系) │ ← 明确告知"非必须" └───────────────────────────────────┘ ``` | 规则 | 说明 | |---|---| | **是否必须** | **完全可选**——不点,**不影响服务记录成立** | | **点击"知道啦"** | 记为该次服务的**家属确认**(软证据) | | **点击"有疑问"** | 跳转到反馈,**通知机构**(走独立通道,不进异常上报流程) | | **明确告知** | **必须显示"不点也没关系"**——否则等同于隐性派任务 | | **次数限制** | 一条记录只能确认一次 | > **⭐ 为什么"不点也没关系"必须写在界面上**:**我们承诺零任务,就必须把这句话写出来。** 否则家属会认为"是不是应该点",**那就变成了软性任务**。 **反馈(有问题找机构)** | 项 | 规则 | |---|---| | **入口** | 菜单第三项 + 每次服务记录下方 | | **形式** | **可选分类**(服务态度/时间不准/项目没做/其他)+ **可选文字或语音** | | **必填** | **只有分类必选** | | **响应** | 通知机构(组长+质控员);**机构应在 24 小时内响应**(内部要求,非对外承诺) | | **闭环** | 机构处理后,家属端显示"已处理" | | **⚠️ 边界** | **反馈不是投诉受理**——不承诺处理时效、不替代医保投诉渠道 | ### 6.6 边界(写死,本端最容易出事) | 项 | 边界 | |---|---| | **费用** | **家属端完全不涉及钱**——不显示价格、不显示限额、不显示基金支付比例、不做账单 | | **评价** | **不做星级评分**——评分会让护理员为好评而"讨好"或"摆拍" | | **异常细节** | 不展示异常上报的具体内容(只显示"已向机构反馈") | | **真人联系** | **不提供护理员个人手机号**;联系走机构 | | **医疗建议** | **不给任何医疗判断或建议** | | **替代官方** | 家属端**不是官方渠道**——待遇查询、评估申请等仍走官方 | **⭐ 隐私号(与全站口径一致)**:**真实号码永不展示**(全站统一,无开关)。**家属→机构**通过机构统一电话;**家属→护理员不提供**。 ### 6.7 措辞纪律(本端专属,写死) | # | 规则 | 反例 | 正例 | |:---:|---|---|---| | 1 | **不写"未做",写"本次未执行"** | "护理员没做翻身" | "本次未执行" | | 2 | **不写"迟到",写实际时间** | "护理员迟到了" | "09:15 到达" | | 3 | **不写"缺勤"** | "今天没人来" | "今天暂无服务记录" | | 4 | **不出现"监督""考核""举报"** | "您可以监督护理员" | — | | 5 | **"知道啦"不设默认勾选** | 默认已勾选 | 必须主动点 | | 6 | **不承诺任何时效** | "我们会在 2 小时内处理" | "我们会尽快处理" | | 7 | **等级必带"(最高级)"** | "一级护理" | "一级护理(最高级)" | ### 6.8 家属端已定事项 | # | 事项 | 定论 | |:---:|---|---| | 1 | **照片对家属可见** | **本期不给**:字段 `visible_to_family` **恒为 0**,后台**不建开关**,家属端**一律不展示服务照片**。核心判断:**这个口子一旦开就回不去**——家属看惯了照片,某次因隐私或疏忽没拍,反而会被理解成"没做"。二期若要开,须先定照片保留期限与打码规则 | | 2 | **"知道啦"是否显示确认人姓名** | **显示**,格式 **"姓氏+关系"**(如"张女士(女儿)"),**不显示全名、不显示手机号**。多位子女时能避免重复追问,也让机构知道谁来对接的 | --- ## 七、数据库设计(23 张表) > **通用字段**(每张表都有,下文不再重复):`created_at`/`created_by`/`updated_at`/`updated_by`/`is_deleted`(**本期一律软删除,不物理删**)。 ### 7.1 表总览(23 张) | # | 表名 | 中文 | 本期用途 | |:---:|---|---|---| | 1 | `org` | 机构 | 机构信息、属地、账号根 | | 2 | `user` | 账号 | 登录账号(后台四角色) | | 3 | `staff` | 人员 | 护理员/医护基础信息+**资质字段预留** | | 4 | `elder` | 老人档案 | 待遇状态、等级、参保地 | | 5 | `elder_status_log` | 待遇状态变更日志 | **状态变更留痕** | | 6 | `elder_svc` | 老人个人项目库 | **老人长期可做/常做项目清单(派单带入源,R10)** | | 7 | `plan` | 服务计划(头) | 周期、等级、护理方式、确认信息 | | 8 | `plan_item` | 服务计划(项) | 计划内含哪些项目、频次、时长 | | 9 | `svc_national` | 国家基准库 | 国家 36 项+官方代码 | | 10 | `svc_local` | 属地目录库 | 昆明 45 项;州市引用 L1 | | 11 | `svc_mapping` | 属地↔国家映射 | **机构不可见** | | 12 | `svc_org` | 机构项目库 | 机构勾选+配价 | | 13 | `order` | 工单 | 一次服务任务 | | 14 | `record` | 服务留痕(主) | 签到签退、时长、语音、状态 | | 15 | `record_item` | 留痕项目明细 | 每个项目的"做了/没做/免拍" | | 16 | `record_photo` | 留痕照片 | 照片存储引用 | | 17 | `record_abnormal` | 异常上报 | 9 宫格分类+语音+照片 | | 18 | `qc` | 质控记录 | 放行/退回、异常处理 | | 19 | `report` | 上报池 | 【预留】R4,建表不写业务数据 | | 20 | `settlement` | 结算 | 【预留】R1,建表不写业务数据 | | 21 | `dict_abnormal_type` | 异常分类字典 | 9 宫格配置 | | 22 | `dict_photo_tier` | 拍照分档字典 | 必拍/免拍/可拍配置 | | 23 | `loc_config` | 统筹区配置 | 含目录来源(昆明 45 / 州市 36) | ### 7.2 核心表字段定义 **`org` 机构表** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `org_id` | varchar(32) | ✅ | 机构 ID(主键) | 【系统】 | | `org_name` | varchar(100) | ✅ | 机构全称(**须与备案名称一致**) | 【本期】 | | `org_type` | varchar(20) | ✅ | `medical_care`(医养结合)/`nursing_home`(养老机构)/`home_care`(居家上门)/`home_individual`(居家个体) | 【本期】 | | `credit_code` | varchar(18) | ✅ | 统一社会信用代码 | 【本期】 | | `loc_code` | varchar(12) | ✅ | **参保地/统筹区代码**(决定加载哪套目录) | 【本期】 | | `loc_name` | varchar(50) | ✅ | 统筹区名称(冗余,便于展示) | 【本期】 | | `svc_source` | varchar(10) | ✅ | 本机构目录来源:`national`/`local` | 【本期】 | | `license_no` | varchar(50) | ○ | 定点服务机构编号 | 【本期】 | | `address` | varchar(200) | ✅ | 机构地址 | 【本期】 | | `contact_name` / `contact_phone` | varchar | ✅ | 联系人/电话 | 【本期】 | | `bed_count` | int | ○ | **床位备案数**(机构护理类必填) | 【本期】 | | `sign_date` | date | ○ | 定点服务协议签订日(建档倒计时基准) | 【本期】 | **`user` 账号表** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `user_id` | varchar(32) | ✅ | 账号 ID | 【系统】 | | `org_id` | varchar(32) | ✅ | 所属机构 | 【本期】 | | `login_name` | varchar(50) | ✅ | 登录名(手机号) | 【本期】 | | `real_name` | varchar(30) | ✅ | 真实姓名 | 【本期】 | | `role` | varchar(50) | ✅ | **角色(可多值,逗号分隔)**:`nurse`/`leader`/`qc`/`admin`/`director`;如 `director,admin`、`leader,qc`。**判权=并集**(见 §3.4.1 补充 2) | 【本期】 | | `staff_id` | varchar(32) | ○ | 关联 `staff` 表(护理员角色必填) | 【本期】 | | `status` | varchar(10) | ✅ | `active`/`disabled` | 【本期】 | > **⚠️ 权限落地纪律**:**角色写在后端权限校验,不在界面做开关**。**仅当账号只持 `director` 时,写接口返回 403**;**若同时持 `qc`/`leader`/`admin`,按角色并集放行**(§3.4.1 补充 2)。 **`staff` 人员表(含 R2 预留)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `staff_id` | varchar(32) | ✅ | 人员 ID | 【系统】 | | `org_id` | varchar(32) | ✅ | 所属机构 | 【本期】 | | `name` | varchar(30) | ✅ | 姓名 | 【本期】 | | `id_card_no` | varchar(18) | ✅ | 身份证号(**实名制**,加密存储) | 【本期】 | | `person_code` | varchar(20) | ○ | **医保人员编码**(LN+6位区划+6位顺序;**字段留余量**) | 【预留】R4 | | `phone` | varchar(15) | ✅ | 手机号(APP 登录用) | 【本期】 | | `job_type` | varchar(20) | ✅ | `nurse`/`nurse_medical`/`manager` | 【本期】 | | `work_type` | varchar(10) | ✅ | `fulltime`/`parttime` | 【本期】 | | `entry_date` / `leave_date` | date | ○ | 入职/离职日 | 【本期】 | | `employ_status` | varchar(10) | ✅ | `on_job`/`leave`/`transfer` | 【本期】 | | `cert_type` / `cert_no` / `cert_level` / `cert_expire` / `cert_status` | varchar/date | ○ | **资质五字段**(本期**人工录入**) | **【预留】R2** | | `cert_verify_url` | varchar(200) | ○ | 联网查验结果留痕 | **【预留】R2** | | **`group_leader_id`** | varchar(32) | ○ | **归属组长**(=该护理员所在"组"的组长 `staff_id`;本组界定的唯一依据,见 §3.4.1 补充 4)。**可为空=机构未分组** | 【本期】 | > **⚠️ 本期数据不空转纪律**:**`cert_*` 字段本期就要人工录入**——签约机构手上都有证书信息,**先录进去,二期直接可用**。 > **⚠️ 界面纪律**:本期 `cert_*` 字段**只在精简版人员管理里可填可看**,**不做到期提醒、不做禁派拦截**(那是二期)。 **`elder` 老人档案表(① 待遇档案)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `elder_id` | varchar(32) | ✅ | 老人 ID | 【系统】 | | `org_id` | varchar(32) | ✅ | 所属机构 | 【本期】 | | **`loc_code`** | varchar(12) | ✅ | **参保地/统筹区**(全链路取目录依据) | 【本期】 | | `name` | varchar(30) | ✅ | 姓名 | 【本期】 | | `gender` | char(1) | ✅ | `M`/`F` | 【本期】 | | `birth_date` | date | ✅ | 出生日期(系统算年龄) | 【本期】 | | `id_card_no` | varchar(18) | ✅ | 身份证号(加密) | 【本期】 | | `phone` | varchar(15) | ○ | 联系电话 | 【本期】 | | `address` | varchar(200) | ✅ | 居住地址(服务上门用) | 【本期】 | | `guardian_name` / `guardian_phone` | varchar | ○ | 紧急联系人 | 【本期】 | | `insur_no` | varchar(30) | ✅ | **医保参保号** | 【本期】 | | `insur_type` | varchar(10) | ✅ | `employee`/`resident` | 【本期】 | | `insur_years` | int | ○ | **缴费年限**(参保核验时登记,流程 01 第 1 步) | 【本期】 | | `insur_verify_status` | varchar(20) | ○ | **参保核验状态**:`verified`/`unverified`——**本期无医保接口,核验以机构线下确认为准**,结果记此字段留痕;接口发布后升级在线核验 | 【本期】 | | `insur_verify_date` | date | ○ | 参保核验日期(留痕) | 【本期】 | | `assess_level` | varchar(20) | ✅ | **失能等级**:`sev_1`(重度一级·**最高级**)/`sev_2`/`sev_3` | 【本期】 | | `care_level` | varchar(20) | ✅ | **护理等级**:`care_1`(一级·**最高级**)/`care_2`/`care_3` | 【本期】 | | `assess_date` | date | ✅ | 评估结论日期 | 【本期】 | | `assess_org` | varchar(100) | ○ | 评估机构名称 | 【本期】 | | `benefit_start` / `benefit_end` | date | ✅ | **待遇有效期起止** | 【本期】 | | `treat_status` | varchar(20) | ✅ | **待遇状态**(见 §7.4) | 【本期】 | | `status_source` | varchar(10) | ✅ | `manual`/`api`——**本期恒 `manual`** | **【预留】R5** | | `status_change_date` | date | ○ | 状态最后变更日 | 【本期】 | | `hosp_start` / `hosp_end` | date | ○ | **住院起止日**(`住院暂停` 时必填) | 【本期】 | | `photo_tier_override` | json | ○ | 机构对本老人拍照分档的**加严覆盖**(**只能加严**) | 【本期】 | | `need_assess` | json | ○ | **上门需求评估五块信息**(流程 02 第 2 步采集,供第 3 步制定计划引用):`living_env`(居住环境)/`care_condition`(照护条件)/`svc_demand`(服务项目诉求)/`special_risk`(特殊风险)/`time_preference`(时间偏好)。**结构化 JSON 承载,非纯文本备注** | 【本期】 | | `note` | text | ○ | 备注(**含"注意事项"区块内容**) | 【本期】 | > **⚠️ 等级显示纪律**:`assess_level`/`care_level` 在界面上**必须带"最高级"字样**,**不允许前端省略**。 > **⚠️ 认知衰退边界**:`assess_level` 只反映**日常活动 6 项**自评+正式评估结论;**认知/感知觉 7 项须上门评估,系统不筛**。此口径须出现在任何展示等级的页面注脚。 **`elder_status_log` 待遇状态变更日志** | 字段 | 类型 | 必填 | 说明 | |---|---|:---:|---| | `log_id` | varchar(32) | ✅ | 主键 | | `elder_id` | varchar(32) | ✅ | 老人 ID | | `from_status` / `to_status` | varchar(20) | ✅ | 变更前后状态 | | `change_reason` | varchar(200) | ✅ | **变更原因(必填,不允许空)** | | `source` | varchar(10) | ✅ | `manual`/`api` | | `operator_id` | varchar(32) | ✅ | 操作人 | | `evidence_file` | varchar(200) | ○ | 佐证材料(如出院小结照片路径) | | `changed_at` | datetime | ✅ | 变更时间 | > **⚠️ 关键设计**:**待遇状态每一次变更都必须写一条日志,`change_reason` 强制必填**。 > **理由**:`treat_status` 直接决定"能不能服务、能不能计费"。**如果不留痕,"住院期间照做"这类问题将无法追溯**。**这条日志是机构自己的护身符。** **`elder_svc` 老人个人项目库(R10,派单带入源)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `elder_svc_id` | varchar(32) | ✅ | 主键 | 【系统】 | | `elder_id` / `org_id` | varchar(32) | ✅ | 老人/机构 | 【本期】 | | `svc_id` | varchar(32) | ✅ | **引用 L4 `svc_org.org_svc_id`**(只从本机构项目库选) | 【本期】 | | `svc_name_snapshot` | varchar(100) | ✅ | **项目名快照**(同 `plan_item` 纪律,防目录改名) | 【本期】 | | `svc_code_snapshot` | varchar(20) | ○ | **国家代码快照**(上报基准,二期用) | 【预留】R4 | | `care_mode` | varchar(20) | ✅ | **护理方式**(`inst_medical`/`inst_nursing`/`home_org`/`home_individual`)——**换方式=重制个人项目库** | 【本期】 | | `is_active` | tinyint | ✅ | 是否启用(软停用不物理删) | 【本期】 | > **⚠️ 关键设计(三条,写死)**: > 1. **`elder_svc` 只存"做哪些",`plan` 只存"怎么做"**——前者是长期稳定底表(派单带入源),后者是周期生效的正式安排(频次/时长/拍照档)。**两者不互相替代、不重复存规格字段**。 > 2. **项目只能从 L4 选**——`svc_id` 必须落在本机构 `svc_org` 内,**不可自创、不可写机构目录外项目**(与 `plan_item` 同纪律,防"个人项目库"绕开属地合规)。 > 3. **`care_mode` 是硬键**——老人换护理方式(居家→机构)必须**重制**个人项目库(因 §2.5 项数规则按护理方式套用),**旧库只读留档**(同"计划变更留旧版"纪律)。**可空**:老人可不维护,此时制定计划仍从 L4 手动勾选。 **`plan` 服务计划表(② 服务计划)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `plan_id` | varchar(32) | ✅ | 计划 ID | 【系统】 | | `elder_id` / `org_id` | varchar(32) | ✅ | 老人/机构 | 【本期】 | | `plan_period_start` / `plan_period_end` | date | ✅ | **计划周期** | 【本期】 | | `care_level` | varchar(20) | ✅ | 计划对应护理等级(**改等级须重新制定计划**) | 【本期】 | | `care_mode` | varchar(20) | ✅ | `inst_medical`/`inst_nursing`/`home_org`/`home_individual` | 【本期】 | | `item_count` | int | ✅ | **计划项目数**(系统按属地规则校验) | 【本期】 | | `item_count_rule` | varchar(100) | ○ | 校验依据快照(如"昆明·医养结合·一级护理 ≥18 项") | 【本期】 | | `extra_item_count` | int | ○ | 附加项数(**≤5**) | 【本期】 | | `week_freq` / `month_hours` | int | ○ | 居家类的**每周次数/每月小时数** | 【本期】 | | `plan_status` | varchar(20) | ✅ | `draft`/`active`/`changed`/`ended` | 【本期】 | | `confirm_elder` / `confirm_guardian` | tinyint | ○ | 确认(0/1,**可选,不强制**) | 【本期】 | | `confirm_time` | datetime | ○ | 确认时间 | 【本期】 | | `plan_basis` | json | ○ | **计划依据**(流程 02 第 3 步结构化留痕"定计划参考了什么"):护理服务建议的**来源机构/建议方向/建议项目/日期**。评估/经办侧给的**外部参考**,机构据实录入,证明"计划不是凭空定的" | 【本期】 | | `change_from_plan_id` | varchar(32) | ○ | **变更来源计划**(**旧计划不删**) | 【本期】 | > **⚠️ 计划变更纪律**:**改计划=新建一条计划 + 指向旧计划**,**绝不原地改**。 > **理由**:政策要求"服务与计划相吻合"。若原地改,历史工单会突然"对上"一个当时不存在的计划——**这恰恰是"篡改数据"的典型形态**。**留旧版=留证据。** **`plan_item` 计划项目明细表** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `plan_item_id` / `plan_id` | varchar(32) | ✅ | 主键/计划 ID | 【系统】/【本期】 | | `svc_id` | varchar(32) | ✅ | **引用 `svc_local` 或 `svc_national` 的 ID** | 【本期】 | | `svc_name_snapshot` | varchar(100) | ✅ | **项目名快照**(防目录改名后历史计划显示错乱) | 【本期】 | | `svc_code_snapshot` | varchar(20) | ○ | **国家代码快照**(上报基准,二期用) | 【预留】R4 | | `freq_type` | varchar(20) | ○ | `daily`/`weekly_n`/`monthly_n`/`as_needed` | 【本期】 | | `freq_value` | int | ○ | 频次值 | 【本期】 | | `duration_min` | int | ○ | **单次时长(分钟)** | 【本期】 | | `photo_tier` | varchar(10) | ✅ | **拍照档位**:`must`/`optional`/`free` | 【本期】 | | `caution_note` | text | ○ | **注意事项**(显示在 APP M4) | 【本期】 | | `is_medical` / `need_cert` | tinyint | ✅ | 是否医疗护理类/是否要求持证 | 【本期】 | > **⚠️ `svc_name_snapshot` 不是冗余,是必需**:目录会更新。**快照保证历史计划与历史留痕永远显示当时的项目名**,否则三年前的服务记录会突然"变成"另一个项目名——**这在稽核中是致命的**。 **服务项目四层表(L1–L4)** `svc_national`(L1 · 36 项):`nat_id`/`nat_code`(**17 字符**,字段留余量 `varchar(20)`)/`nat_name`/`nat_category`(`life`/`medical`)/`nat_sub_category`/`recommend_staff`/`recommend_duration`/`is_medical`/`version` `svc_local`(L2):`loc_id`/`loc_code`/`local_item_name`/`local_category`/`svc_time`/`min_freq`/`staff_qual`/`is_medical`/`source_doc`/`map_status`(`mapped`/`local_only`) `svc_mapping`(L3 · **机构不可见**):`map_id`/`loc_id`/`nat_id`(**可空=无法映射**)/`map_type`(`one_to_one`/`many_to_one`/`partial`/`local_only`/`national_only`)/`map_note`/`status`(`confirmed`/`pending`) `svc_org`(L4):`org_svc_id`/`org_id`/`src_type`/`src_id`/`is_enabled`/`price`【预留R1】/`price_effective`【预留R1】/`is_new_national` > **⚠️ 五条多属地纪律在表结构上的落地**: > 1. **走配置不走代码** → 新增州市=插一行 `loc_config` + 一批 `svc_local`,**代码零改动**; > 2. **必须可映射** → `svc_mapping` 保证每项可追;`map_status = local_only` 的项**上报时自动排除**; > 3. **机构不可改目录** → `svc_org` **只有 `is_enabled` 和 `price` 可改**,其余只读; > 4. **国家新增项显式提示** → `is_new_national = 1` 的项**独立区块显示**; > 5. **映射表不对外** → `svc_mapping` 表**不提供任何机构侧接口**。 **`order` 工单表(③ 派单工单)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `order_id` | varchar(32) | ✅ | 工单 ID | 【系统】 | | `elder_id` / `org_id` | varchar(32) | ✅ | 老人/机构 | 【本期】 | | `plan_id` | varchar(32) | ✅ | **来源计划**(L2 硬锁落地) | 【本期】 | | `service_date` | date | ✅ | **服务日期** | 【本期】 | | `time_slot_start` / `time_slot_end` | datetime | ✅ | **服务时段**(用于冲突检测) | 【本期】 | | `assignee_id` | varchar(32) | ○ | 派给谁(`staff_id`) | 【本期】 | | `assign_time` | datetime | ○ | 派单时间 | 【本期】 | | `assign_mode` | varchar(20) | ○ | `manual`/`batch_recommend`(**批量必须人工确认**) | 【本期】 | | `order_status` | varchar(20) | ✅ | **工单状态**(见 §7.4) | 【本期】 | | `item_list` | json | ✅ | 本次工单项目的快照 | 【本期】 | | `need_photo` | tinyint | ✅ | 本次是否含必拍项 | 【本期】 | | `cancel_reason` | varchar(200) | ○ | 取消原因(已取消必填) | 【本期】 | | `reschedule_log` | json | ○ | **调单记录** | 【本期】 | | `qualification_check` | varchar(20) | ○ | 资质校验结果(**本期恒 `unchecked`**) | **【预留】R2** | | **`billable`** / **`price_snapshot`** / **`settle_period`** | varies | ○ | 可计费/服务时点价/结算周期 | **【预留】R1** | | `exception_flag` | tinyint | ○ | 是否异常费用 | **【预留】R6** | > **⚠️ 一种硬冲突、其余软提示**:派单/调单时,**只对"同一 `assignee_id` 且 `time_slot` 重叠"返回硬错误(拒绝保存)**;其余情况**一律只返回提示、不拦**。 > **理由**:**拦截要准,不能把便利性拦掉。** 组长宁愿微信群说一句就改了,也不会忍受系统处处拦住。 **`record` 服务留痕表(③ 履约留痕)** | 字段 | 类型 | 必填 | 说明 | 标记 | |---|---|:---:|---|---| | `record_id` | varchar(32) | ✅ | 留痕 ID | 【系统】 | | `order_id` | varchar(32) | ✅ | **来源工单**(L3 硬锁落地) | 【本期】 | | `elder_id` / `assignee_id` | varchar(32) | ✅ | 老人/护理员 | 【本期】 | | `checkin_time` | datetime | ✅ | **签到时间(系统自动取,不允许手工改)** | 【本期】 | | `checkout_time` | datetime | ○ | **签退时间(同上)** | 【本期】 | | `duration_min` | int | ○ | 实际时长(**系统算,人不能改**) | 【本期】 | | `checkin_lat` / `checkin_lng` | decimal(10,6) | ○ | 签到定位(**定位失败不阻塞**) | 【本期】 | | `locate_status` | varchar(20) | ✅ | `ok`/`failed`/`denied`(**失败照常可提交**) | 【本期】 | | `record_status` | varchar(20) | ✅ | **留痕状态**(见 §7.4) | 【本期】 | | `voice_file` | varchar(200) | ○ | 语音备注(免拍档留痕四要素之一) | 【本期】 | | `offline_flag` | tinyint | ✅ | 是否离线创建 | 【本期】 | | `client_md5` | varchar(32) | ✅ | **客户端指纹**(防重复上传、防篡改) | 【系统】 | | `submit_time` | datetime | ○ | 提交时间 | 【系统】 | | `actual_duration_tier` | varchar(10) | ○ | 时长档位(**<5 分钟标黄**) | 【系统】 | | `biz_line` | varchar(20) | ✅ | **业务线**:本期恒 `ltci`(长护险)。**预留 `self_pay`(自费)等分线位**——自费服务须落在留痕层单独计时、单独记账,与待遇服务**两条时间线不重叠**(见 §7.3.1 R8 与流程 04 第 4 步) | 【预留】R8 | > **⚠️ 三条硬设计(都是合规点)**: > 1. **签到签退时间、时长一律系统取,接口不接受客户端传入这两个值**——防"补录时间"; > 2. **定位失败不阻塞提交**——老人家里弱网是常态,**不能因为定位不到就不让干活**; > 3. **时长不设"最低时长硬拦"**,只记 `actual_duration_tier`,**由质控看,不由系统罚**。 **`record_item` 留痕项目明细表**:`record_item_id`/`record_id`/`svc_id`/`exec_result`(**`done`/`undo_not_done`(本次未执行)/`undo_refused`(老人拒绝)**)/`undo_reason`/`extra_flag`/`photo_required` > **⚠️ 措辞纪律落到数据层**:`exec_result` 的枚举值**必须是 `undo_not_done`(本次未执行)而不是 `not_done`(未做)**。 > **理由**:**"未做"含指责意味,"本次未执行"是事实陈述**——这条在字段命名层就要卡住,不让前端有机会写"未做"。 **`record_photo` 留痕照片表**:`photo_id`/`record_id`/`svc_id`/`file_path`(**压缩后 ≤500KB**)/`file_size`/`visible_to_family`(**本期恒 0**)/`upload_batch`/`keep_until`(**补传后至少 7 天**) **`record_abnormal` 异常上报表**:`abnormal_id`/`record_id`/`elder_id`/`reporter_id`/`abnormal_type`(**9 宫格,必选**)/`abnormal_desc`(可选)/`voice_file`/`has_photo`/`notify_status`/`handle_status`/`handle_result`/`link_plan_change` > **⚠️ "一切可选、分类必选"的落地**:**只有 `abnormal_type` 是必填,其余全可选**。**宁要一条没人名没照片的异常,也不要一条没报上来的压疮。** **`qc` 质控记录表(④ 质控闸门)**:`qc_id`/`record_id`/`qc_type`(`normal`/`auto_push`/`recheck`)/`push_reason`(**五类**)/`qc_result`/`qc_note`(**退回时必填**)/`qc_staff_id`/`qc_time`/`pass_time`/`first_qc_id` > **⚠️ 全量非抽检(落库层面保证)**:**每一条 `record_status = submitted` 的留痕,都必须生成一条 `qc` 记录**(定时任务扫描生成)。 > **理由**:抽检=总有漏的;而**"先质控再上报"是国家明文**。**全量生成 qc 记录,是把"不抽检"从人工承诺变成数据结构。** ### 7.3 二期预留表(本期建表,不写入业务数据) **`report` 上报表**:`report_id`/`record_id`/`order_id`/`report_status`/`report_time`/`official_no`(**官方受理号**)/`loc_code`/`nat_code_snapshot`/`adapter_result` **`settlement` 结算表**:`settle_id`/`org_id`/`settle_period`/`amount_total`/`amount_passed`/`amount_rejected`/**`amount_fund`(基金支付部分)/`amount_self_pay`(个人自付部分)**/`submit_date`/`pay_date`/`exception_reason`/`handle_deadline` > **⚠️ 个人自付拆分(流程 05 对齐)**:长护险基金支付 70%(职工)/ 50%(居民),**个人自付 30% / 50%**。结算时须**分开记、分开展示**——`amount_fund`=待医保结算的基金部分,`amount_self_pay`=待老人自付的应收部分(由机构向老人/家属直接收取,不走基金)。**与"自费项目"是两回事**:个人自付=待遇内个人掏的部分;自费项目=目录外、100% 自购。 ### 7.3.1 ⭐ 多业务线扩展(R8 预留 · 2026-10-12 新增) > **问题**:机构不止有长护险业务,还有**自费陪护、居养(养老机构)、民政补贴**等其他业态。**本系统是"长护险这一条业务线的专业账本",不是机构全业务 ERP**——但须**结构上留口子**,避免将来"多业务"变成"推倒重来"。 **① 定位(写死,不膨胀)**: - **本期只做长护险这一条线**(`biz_line` 恒 `ltci`),把这条线的合规账做扎实。 - **不把其他业务硬塞进长护险规则**——自费不需要评估等级、民政补贴走民政通口径、居养走民政系统,各是各的规则,**混在一个状态机里会把长护险的账弄脏**。 **② 预留方式(只留结构,不改本期逻辑)**: - 在 `elder`/`order`/`svc_org`/`record` **四表加 `biz_line` 字段**(默认恒 `ltci`)——**这是"开一条新线"的锚点,不是"本期实现多业务"**。**`record` 表加 `biz_line` 是流程 04 自费服务"单独计时、不走基金"的落点**:自费服务与待遇服务同在一张 `record` 表,靠 `biz_line` 区分两条时间线。 - 二期若机构确有需求,则**按业务线挂不同"规则包"**:`ltci` 挂"评估等级+待遇状态+36/45 目录+六条硬锁";`self_pay` 挂"不要求等级、不拦派单、只记账";`civil_subsidy` 挂"补贴目录+民政通口径";`residence` 挂"居养管理"。 **③ 三条不可越界的线(软件管不了,须靠机构+规则)**: 1. **资金不能串**:长护险基金(政府管)与自费(老板自己的钱)**财务上必须分开**,系统只能"分开记、分开展示",**"该不该混着花"是合规问题,系统拦不住人**。 2. **政府接口各走各的**:长护险走医保平台、民政补贴走民政通、居养走民政系统——**三条接口是三个政府系统**,系统可预留对接位,**接口何时通由政府定,我方不承诺**。 3. **业务线优先级由机构定**:同一老人可能同时有"长护险档案"和"自费档案",**哪个优先、能不能叠加**,是机构的经营决策,系统只忠实记录。 **④ 对客口径(一句可用)**:"这个系统管的是你长护险这条线;你另外的自费/居养/补贴业务,我们在同一个账号里给你**预留了分线位置**,但**先别把三套规则揉在一起**——揉在一起,长护险的合规账就脏了。" ### 7.4 状态机 ↔ 字段值对照 **待遇状态 `elder.treat_status`(十态)** | 值 | 中文 | 可否新建计划 | 可否派单 | 可否服务 | 可否计费 | |---|---|:---:|:---:|:---:|:---:| | `pending_file` | 待建档 | ✅ | ❌ | ❌ | ❌ | | `waiting_period` | **待起付(等待期/垫付期)** | ✅ | ✅ | ✅(**仅垫付台账**) | ❌ | | `active` | 正常享受 | ✅ | ✅ | ✅ | ✅ | | `hosp_pause` | 住院暂停 | ❌ | ❌ | ❌ | ❌ | | `review_waiting` | **复评等待期** | ❌ | ❌ | ❌ | ❌ | | `transferring` | **跨统筹区转移中** | ❌ | ❌ | ❌ | ❌ | | `dead` | 死亡 | ❌ | ❌ | ❌ | ❌ | | `long_away` | 长期异地居住 | ❌ | ❌ | ❌ | ❌ | | `benefit_expired` | 待遇到期 | ❌ | ❌ | ❌ | ❌ | | `terminated` | 已终止 | ❌ | ❌ | ❌ | ❌ | > **接口层强制**:任何创建 `order` 的请求,**先校验 `elder.treat_status ∈ {active, waiting_period}`**,不满足**直接拒绝**(不是警告)。**这就是 L1 的代码落地。** **⚠️ 新增 `waiting_period` 是唯一例外**:允许创建 `order`,但该 `order` 生成的 `record` **标记 `is_prepaid=1`**,**不计入结算池**(`billable=0`)。**L1 拒绝逻辑不变,只是把等待期从"一律拒"改为"允许但隔离"。** **工单状态 `order.order_status`(八态)**:`to_assign`(待派单)/`assigned`(已派单)/`serving`(服务中)/`done`(已完成)/`abnormal`(异常)/`cancelled`(已取消)/`overdue`(逾期未做)/**`not_met`(未遇·扑空)** **留痕状态 `record.record_status`(六态)**:`draft`/`submitted`/`pending_qc`/`passed`/`returned`/`reported`〔二期〕 > **⭐ 2026-10-12 新增字段(供开发建表/改表)**: > - `record.is_prepaid`(`tinyint(1)` 默认 0)——**垫付台账标记**;为 1 的记录 `billable=0`。 > - `record.is_refused_photo`(`tinyint(1)` 默认 0)——**拒拍/无法拍摄标记**;与 `refuse_photo_reason` 配套(见 §4.5.1)。 > - `record.refuse_photo_reason`(`varchar(50)`)——拒拍原因枚举(见 §4.5.1)。 > - `order.not_met_reason`(`varchar(50)`)——扑空原因枚举;`order.not_met_at`(`datetime`)到访时间;定位沿用签到定位字段。 > - `elder.prev_loc_code`(`varchar(20)`)——**跨统筹区转移前的参保地**,用于"转移中"态展示与目录切换预览。 > - `elder.transfer_confirm_at`(`datetime`)——转移确认时间(人工确认后写入)。 > - `elder_svc.care_mode`(`varchar(20)`)——**个人项目库护理方式键**(R10,换方式=重制库)。 > - `elder_svc.is_active`(`tinyint(1)` 默认 1)——个人项目库启用状态(软停用不物理删)。 --- ## 八、接口契约 > **三端(APP/后台/家属端)共用同一套后端接口。** 本节定义**语义契约**(谁调、传什么、返什么、什么情况拒),不定义传输协议细节。 > **统一响应结构**(所有接口): ```json { "code": 0, // 0=成功;非0=失败(见 8.1) "message": "成功", // 面向开发;错误时给可读原因 "data": { }, // 业务数据 "hint": "" // ⚠️ 面向用户的"怎么解"提示(硬锁拒绝时必须返回) } ``` ### 8.1 统一错误码表 | code | 含义 | 前端处置 | |:---:|---|---| | `0` | 成功 | — | | `1001` | **无有效待遇,不可服务**(L1) | 显示 `hint`,禁止进入服务页 | | `1002` | **无有效计划,不可派单**(L2) | 引导"先制定计划" | | `1003` | **无有效工单,不可录痕**(L3) | 拒绝提交 | | `1004` | **留痕不完整,不可进上报池**(L4) | 列出缺什么 | | `1005` | **未质控放行,不可上报**(L5) | 提示先质控 | | `1006` | **资质不匹配(本期仅提示,不拦截)**(L6) | **仅提示,允许继续** | | `2001` | 派单时间冲突(同人同时段重叠) | **硬拒**,提示换人或改时 | | `2002` | 计划项目数不满足属地规则 | **仅提示**,可保存 | | `3001` | 必拍项未拍照,不可签退 | 硬拒,引导拍照;**提供【无法拍摄?】出路**(见 §4.5.1,选原因即放行) | | `3002` | 定位失败(**非错误,仅标记**) | 允许提交 | | `3003` | **未遇(扑空)已登记**(非错误,状态变更) | 工单转 `not_met`,推组长决策 | | `3004` | **垫付期记录不可计费**(非错误,仅标记) | `billable=0`,允许提交 | | `4001` | 越权:非本机构/非本人数据;**或"自审自放行"**(同一账号录入的记录不得由本人质控放行,见 §3.4.1 补充 2) | 403 | > **⚠️ `1006` 的设计是刻意的**:**资质校验本期返回"提示级"而不是"拒绝级"**。这样**二期只需把 `1006` 从"提示"改成"硬拒"**,前端代码基本不用动——**这就是"预留位"在接口层的价值**。 ### 8.2 本期接口清单(40+ 接口) **A · 待遇档案(①)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/elder/create` | POST | 新建老人档案 | 建档时限倒计时;`loc_code` 必填 | | `/elder/detail` | GET | 档案详情 | 权限:本机构 | | `/elder/status/change` | POST | **变更待遇状态** | **`change_reason` 必填**;写 `elder_status_log` | | `/elder/status/log` | GET | 状态变更历史 | 只读 | | `/elder/list` | GET | 老人列表(后台 B1) | 支持按状态/等级筛 | **B · 服务计划(②)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/plan/create` | POST | 制定计划 | **项目数按属地规则校验**(`2002` 提示级) | | `/plan/change` | POST | **变更计划(新建+指向旧)** | **不原地改**;旧计划转 `changed` | | `/plan/detail` | GET | 计划详情 | 含 `item_list` | | `/plan/confirm` | POST | 老人/家属确认 | 可选 | | `/svc/local/list` | GET | **按参保地加载属地目录** | 昆明→45项;州市→36项 | | `/svc/org/list` | GET | 机构项目库 | — | | `/svc/org/config` | POST | 勾选+配价 | **只允许改 `is_enabled`/`price`** | | `/svc/org/new-national` | GET | **国家新增项列表** | 昆明机构**必须显式展示** | **C · 老人个人项目库(R10)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/elder-svc/list` | GET | 某老人的个人项目库 | 权限:本机构 | | `/elder-svc/save` | POST | 增删个人项目库(整表覆盖) | **`svc_id` 必须落在本机构 `svc_org` 内**;`care_mode` 变更=重制(旧库留档);写操作日志 | **C · 派单工单(③)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/order/generate` | POST | 由计划生成工单 | **L2**:无计划拒绝 | | `/order/assign` | POST | 派单 | **L1**:待遇非 `active` 拒绝;`2001` 时间冲突硬拒;`1006` 资质提示 | | `/order/reassign` | POST | 调单 | 记 `reschedule_log`;**≤3 步** | | `/order/batch-recommend` | GET | 批量推荐 | **仅返回推荐,必须人工确认** | | `/order/today` | GET | 护理员今日任务(M1) | 仅本人 | | `/order/cancel` | POST | 取消工单 | `cancel_reason` 必填 | | `/order/detail` | GET | 工单详情(M4) | 含**注意事项区块** | **D · 履约留痕(③)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/record/checkin` | POST | 签到 | **服务器取时间**;定位失败不阻塞(`3002`) | | `/record/item/save` | POST | 保存项目执行 | `exec_result` 枚举 | | `/record/photo/upload` | POST | 上传照片 | **压缩校验 ≤500KB**;返回 `photo_id` | | `/record/checkout` | POST | 签退提交 | **必拍未拍拒绝**(`3001`);计算时长 | | `/record/offline/sync` | POST | **离线补传** | `client_md5` 去重;**静默不弹窗** | | `/record/detail` | GET | 留痕详情 | — | | `/abnormal/report` | POST | **异常上报** | 仅 `abnormal_type` 必填 | | `/abnormal/list` | GET | 异常列表(后台 B4) | 主动推送来源 | **E · 质控闸门(④)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/qc/pending/list` | GET | 待质控列表(含主动推送) | **全量**,非抽检 | | `/qc/detail` | GET | 质控详情 | 含留痕全文与照片 | | `/qc/pass` | POST | 放行 | 写 `qc_result=passed`、`pass_time` | | `/qc/return` | POST | 退回 | **`qc_note` 必填** | | `/qc/exception/link` | POST | **异常联动改计划** | 生成新 `plan_id` 并回填 `link_plan_change` | **F · 家属端(③)** | 接口 | 方法 | 说明 | 关键校验 | |---|---|---|---| | `/family/bind` | POST | 绑定(姓名+手机号后4位) | **只看自家** | | `/family/elder` | GET | 我家老人信息 | 过滤 `visible_to_family` | | `/family/records` | GET | 服务记录列表 | **不返回价格字段** | | `/family/ack` | POST | **可选确认** | **非必做,不记录"未确认"为异常** | | `/family/feedback` | POST | 反馈 | — | ### 8.3 硬锁在接口层的落点总表(L1–L6) | 锁 | 接口 | 触发条件 | 结果 | |---|---|---|---| | **L1** | `/order/assign`、`/record/checkin` | `elder.treat_status ≠ active` | `1001` **拒绝** | | **L2** | `/order/generate` | 无 `plan_status=active` 的计划 | `1002` **拒绝** | | **L3** | `/record/*` | 无有效 `order` | `1003` **拒绝** | | **L4** | `/qc/pass` | 留痕缺必填要素 | `1004` **拒绝** | | **L5** | `/report/*`〔二期〕 | 无 `qc_result=passed` | `1005` **拒绝** | | **L6** | `/order/assign` | `staff.cert_status ≠ valid` | `1006` **仅提示,不拒绝**(**二期改硬拒**) | ### 8.4 ⭐ 二期预留位落地对照(R1–R6,逐项核对) > **本节证明"只加不改"是可验证的**——二期每项功能,都能在本期表结构里找到它要用的字段。 | # | 二期功能 | 本期已建的字段/表 | 二期要新增的 | **要改的** | |:---:|---|---|---|---| | **R1** | 结算对账 | `order.billable`/`price_snapshot`/`settle_period`;`svc_org.price` | `settlement` 表、申报页、导出格式 | **无** | | **R2** | 资质人员 | `staff.cert_*` 五字段;`order.qualification_check` | 到期提醒任务、禁派逻辑、资质管理页 | **无**(`1006` 改硬拒属逻辑开关) | | **R3** | 院长看板 | 数据层可直接聚合现有表 | 聚合视图、图表页 | **无** | | **R4** | 上报池与接口 | `report` 表;`order`/`plan_item` 的 `official_no`/`loc_code`/代码快照 | 适配层实现、上报页 | **无** | | **R5** | 医保状态同步 | `elder.status_source` | 接口实现 | **无**(只改字段值来源) | | **R6** | 异常费用 | `order.exception_flag`/`exception_reason`/`handle_deadline` | 异常处理页、超时提醒 | **无** | | **R8** | 多业务线 | `elder.biz_line`/`order.biz_line`/`svc_org.biz_line`/`record.biz_line`(本期恒 `ltci`) | 业务线规则包、分线档案、分线记账 | **无**(本期只留字段,不改逻辑) | **接口契约层预留** | 预留项 | 本期定义(写死) | 二期 | |---|---|---| | **适配层输入输出格式** | **按国家编码规范定稿**(机构编码 13 位 `LH`+区划+序号、人员编码 14 位 `LN`+区划+序号、**项目代码 17 字符**) | 直接实现 | | **A/B/C 三档** | A 人工登记/B 文件导入导出【本期】/C 专线前置机【预留】 | 实现 C 档 | | **错误码 `1006`** | **提示级**(不拦) | 改**拒绝级** | > **⚠️ 项目代码位数说明**:原写"14 位"系归纳有误。**经专项复核定型为 17 字符**,且**仅内部逻辑推演、未与官方原件对照** ⇒ **正式上报前必须以官方电子版核对**。详见《20261011-国家36项代码复核报告》。**字段长度一律按 `varchar(20)` 设计,留余量。** --- ## 九、数据安全与留痕(合规条款的工程落地) > 这一节不是"技术选型",是**政策明文要求在本系统的落地方式**。 | 要求(政策) | 工程实现 | |---|---| | **一人一档** | `elder` 表 + 全链路 `elder_id` 外键,`order`/`record`/`qc` 均可回溯到人 | | **实名制管理** | `staff.id_card_no` 加密存储、唯一约束;`user` 绑定 `staff_id` | | **不可伪造/变造** | ①`checkin/checkout` 服务器取时;②`elder_status_log` 必填原因;③`record` 软删除不物理删;④`client_md5` 防重复提交 | | **记录与计划/数据/考勤相吻合** | `plan_item` → `order.item_list` → `record_item` **三级快照一致** | | **材料调取** | 全表导出接口,按老人/时间段/项目导出,**导出即合规版式** | | **数据保留** | 照片 `keep_until`(补传后 ≥7 天),业务数据软删除保留 | | **隐私号** | 家属端接口**一律不返回护理员真实手机号** | > **⚠️ 一条容易忽略的工程纪律**:**`record` 与 `qc` 表一律软删除**——`is_deleted` 置 1,**原始记录永久保留**。 > **理由**:长护险数据是**基金支付凭证**。若允许物理删除,"事后删记录"就变成可能。**软删除="不可无痕修改"的最后一道工程防线。** --- ## 十、验收条款 ### 10.1 12 条易用性硬指标(**验收圣经**,每个页面都要回指) | # | 硬指标 | 验收方式 | 本期 | |:---:|---|---|:---:| | 1 | 完成一次服务记录 **≤4 次点击** | 计数验收 | ✅ | | 2 | **必填自由文本 = 0** | 走查 | ✅ | | 3 | **离线可用+自动补传** | 断网实测 | ✅ | | 4 | 关键字号 **≥20pt**、不做多层菜单 | 走查 | ✅ | | 5 | **首屏即任务** | 走查 | ✅ | | 6 | **误操作可撤销**、录错不直接扣钱 | 功能验收 | ✅ | | 7 | 组长**调单 ≤3 步**、不比微信群慢 | 计时验收 | ✅ | | 8 | **异常主动推送** | 触发验证 | ✅ | | 9 | **导出即合规版式** | 导出比对国家 2026 版文书 | ✅ | | 10 | 院长看板**只放三块** | 走查 | **〔二期〕** | | 11 | 家属端**零任务** | 走查 | ✅ | | 12 | **最小必要留痕** | 规则验收 | ✅ | > **本期验收 11 条**(第 10 条随院长看板延至二期)。 **验收方式定义(避免扯皮)** | 方式 | 具体做法 | |---|---| | **计数验收** | 真人从"打开 APP"到"提交一次服务记录",**实际点击数 ≤4** | | **走查验收** | 逐屏人工检查,打勾确认 | | **断网实测** | 飞行模式下完成一次完整服务记录,联网后确认自动补传成功 | | **计时验收** | 同一调单操作,"微信群沟通"与"系统操作"各计时,系统**不得更慢** | | **规则验收** | 构造规则用例(高风险项不拍照能否提交/日常项不拍照能否提交) | ### 10.2 分端专项验收 **护理员 APP 端** | # | 条款 | 验收方式 | |:---:|---|---| | 1 | ≤4 击(常态预勾选时为 3 击) | 实测 | | 2 | M2/M3 **无任何必填文本输入框** | 走查 | | 3 | 飞行模式下完成完整服务记录;联网自动补传 | 断网实测 | | 4 | 正文 ≥20pt;**页面层级 ≤2** | 走查 | | 5 | 打开 APP **直接进 M1**,登录态保持 | 走查 | | 6 | 误点签退 → **10 秒内可撤销** | 功能验收 | | 12 | 必拍档未拍照 → 不可签退;免拍档未拍照 → **可正常签退** | 规则验收 | | **A1** | **新用户 10 分钟内独立完成一次记录**(不给培训、只给手机) | 真人实测(**本端最硬的一条**) | | A2 | 住院状态老人卡片置灰且不可开始 | 构造用例 | | A3 | 定位失败不阻塞签到 | 关闭定位权限实测 | | A4 | 照片本地压缩后单张 ≤500KB | 技术验收 | | A5 | 异常上报全程 ≤30 秒(不含拍照) | 计时验收 | > **⭐ A1 说明**:**如果新护理员需要培训才会用,说明设计失败了**。建议上线前找**未接触过系统的真实护理员**实测。 **机构后台端** | # | 条款 | 方式 | |:---:|---|---| | 7 | 从点卡片到改派生效 **≤3 步**;与微信群计时对比**不更慢** | 实测 | | 8 | 护理员提交异常 → **组长/质控员 10 秒内**收到推送 | 触发验证 | | 9 | 导出档案 → 逐项比对**国家 2026 版文书**格式 | 走查 | | 6 | 调单可撤销;放行可撤回(**限时 10 分钟内**) | 功能验收 | | B1 | **登录后 1 屏内看到"待我处理"事项** | 走查 | | B2 | 本期不出现的功能**在导航中完全不存在**(不是置灰) | 走查 | | B3 | 一级护理显示为"一级护理(最高级)" | 走查 | | B4 | 昆明机构登录可见"国家新增项"区块 | 构造用例(以昆明属地登录) | | B5 | 州市机构登录**只看到 36 项**、无映射提示 | 构造用例 | | B6 | 计划项目数不满足属地规则 → **不可提交** | 构造用例 | | B7 | 留痕记录**不可直接改**,只能补正且保留原值 | 技术验收 | | B8 | **老人个人项目库**:项目只能从本机构 L4 选;`care_mode` 变更=重制(旧库只读留档);制定计划可"一键带入"且可改 | 构造用例+技术验收 | **家属端** | # | 条款 | 方式 | |:---:|---|---| | 11 | **无任何"必须完成"的交互**;"知道啦"默认不勾选、可跳过;界面显式写"不点也没关系" | 走查 | | 4 | 字号 ≥20pt(**家属中含老年人,字号尤其重要**) | 走查 | | F1 | **绑定成功率**:模拟 20 位家属,**≥18 位一次成功** | 真人实测 | | F2 | 家属**看不到非关联老人**(换绑测试、URL 手工改参测试) | 安全验收 | | F3 | 照片**默认不可见** | 走查 | | F4 | 家属端**任何页面均无价格/金额字样** | 走查(搜"元""费用""限额"零命中) | | F5 | 家属端**无评分/星级组件** | 走查 | | F6 | 反馈提交后**机构端 10 秒内可见** | 触发验证 | | F7 | 措辞检查:**"未做""迟到""缺勤""监督""举报"零命中** | 走查 | --- ## 十一、不做什么(写死,防后续加需求) ### 11.1 全系统不做的(红线) | 不做 | 理由 | |---|---| | 做评估机构 | 不参与失能等级评估、不出评估结论 | | 碰基金资金 | 不经手长护基金、不做资金池 | | 替代官方系统 | 官方 APP/省平台是"只对接",不替代 | | 卖老人数据 | 平台不对外提供老人原始数据 | | 承诺结果 | 不承诺遴选通过、不承诺巡查得分、不承诺不被罚 | | 用广告法禁用词 | 不用"最/第一/国家级"等 | ### 11.2 护理员 APP 不做的 | 不做 | 理由 | |---|---| | 打字录入 | 与"必填自由文本 = 0"矛盾 | | 排班/调班 | 属组长职责,APP 上做会乱 | | 查看/修改服务计划 | 属质控职责;**防一线改计划绕过合规** | | 统计报表、排行榜 | 与"干活现场"无关,且评比诱发造假 | | 家属沟通功能 | 隐私号转接由机构侧统一处理 | | 服务评价(护理员评老人) | **伦理风险**,坚决不做 | | 积分、勋章、打卡日历 | 把照护变成游戏,**方向错** | | 支付/收款相关 | 本期无结算,且平台不碰资金 | ### 11.3 机构后台不做的 | 不做 | 理由 | |---|---| | 院长看板(B0) | 二期;**本期不做空首页** | | 结算对账(B5) | 二期 | | 人员资质管理(B6) | 二期;本期**只在排班时提示** | | 自动派单(无人确认) | 出错无法归属责任 | | 抽检式质控 | 机构质控必须全量 | | 自定义服务项目 | 合规红线 | | 属地自助切换 | 属重新配置 | | 员工绩效排名 | 评比诱发造假,且与长护合规无关 | | "迎检"类功能与话术 | 措辞纪律 | ### 11.4 家属端不做的 | 不做 | 理由 | |---|---| | 每日打卡/签到 | **核心红线**(已有反面案例) | | 强制确认 | 同上 | | 星级评分 | 诱发摆拍与讨好,且不真实 | | 费用/账单展示 | 家属端不涉及钱 | | 在线支付 | 平台不碰资金 | | 展示护理员手机号 | 隐私号原则 | | 医疗建议 | 合规红线 | | 展示异常细节 | 避免过度焦虑 | | 替代官方渠道 | 不做评估申请、待遇查询入口 | | 家属上传照片/视频 | 与"零任务"矛盾,且涉隐私 | --- ## 十二、遗留待确认(**均不阻塞开发**) | # | 事项 | 影响 | 处置 | |:---:|---|---|---| | 1 | 各州市实施细则是否另行细化服务项目 | 属地目录库内容 | 签约前逐一核实;**推定不影响结构** | | 2 | 昆明 45 项是否已更新 | 属地目录库内容 | 建议 0871-65919196 核实 | | 3 | ⚠️ **国家项目代码须官方电子版最终确认** | 二期上报准确性 | **仅影响二期上报**(P0 不含上报);字段已按 `varchar(20)` 留余量 | | 4 | 照片**保留期限**(政策要求 vs 机构成本) | 存储策略 | 有地方要求"保存 10 年";**按属地要求配置化,不当统一硬编码** | | 5 | 派单推荐权重、质控提醒阈值 | 配置值 | **已有默认值,可直接开发**;走访后只改配置、不改代码 | > **⚠️ 处理原则**:**这 5 项都不阻塞 P0 开发**——前 4 项是"数据内容"和"配置值",不是"结构"。**唯第 3 项须在真正对接上报前收口**(属二期)。 --- ## 十三、⭐ 本轮质疑回填记录(2026-10-12) > **本节回答一件事**:机构老板的 22 条质疑里,**哪些我们改了 PRD(能改就改)、哪些是产品客观做不到(如实说明)。** > **原则**:**能改的写进需求;做不到的不硬撑。** 本节只记"改了什么",不重复需求正文。 ### 13.1 已改入 PRD 的(产品能做的 —— 已写进需求) | # | 质疑 | 改动落点 | 性质 | |:---:|---|---|---| | **R1** | Q7 等待期 6 个月空窗,服务"录不进" | **新增 `待起付(等待期)` 态**(§3.2)+**垫付台账与结转**(§5.5.1 B1-A)+字段 `is_prepaid`(§7.4) | 能改,已改 | | **R2** | Q8 状态颗粒度不够(复评中/跨市搬家/住院回来) | **新增 `复评等待期`、`跨统筹区转移中` 两态**,**`住院暂停` 补"恢复"出路**(§3.2、§7.4),状态由七态 → **十态** | 能改,已改 | | **R3** | Q12 临时加单/取消/**白跑一趟**无佐证 | **新增工单态 `未遇(扑空)`**(§3.2)+**异常上报子形态**(§4.9.1)+字段 `not_met_reason/not_met_at`(§7.4) | 能改,已改 | | **R4** | Q13 必拍项**只有"拍"一条路**,不让拍就卡死 | **新增拒拍出路**(§4.5.1):选原因即放行+`is_refused_photo` 标记 + `3001` 出口 | 能改,已改 | | **R5** | Q14 拍照分档**依据谁**、属地不一致怎么办 | **明示"默认值须属地核对"**+**属地核对清单**(§4.5.2);分档本就可配置(§4.5 纪律 2) | 能改,已明示 | | **R6** | Q17 几百人资料**谁录** | **参保人/护理员/项目配价 Excel 批量导入**(§5.5.1 B1-B) | 能改,已改 | | **R7** | Q2 等级变动联动 | **`跨统筹区转移中`/`复评等待期` 均绑"重制计划"动作**;限额联动属二期院长看板 | 部分改,已改骨架 | | **R8** | 机构不止长护险业务 | **多业务线预留 `biz_line`**(§7.3.1):本期恒 `ltci`,只留字段不动逻辑 | 能改,已留口子 | | **R9** | 履约留痕**身份核验**怎么做 | **PRD 现无身份核验机制(缺口)**:谁在现场、是不是本人,需补"扫脸/人证一致/签字"三类核验方式与字段(见下表 ⚠️ 待补) | ⚠️ 缺口,待补 | | **R10** | 目录能否**按老人维度**适配(双线机构诉求) | **新增 `elder_svc` 老人个人项目库**(§5.5.2 B1-C)+`elder_svc` 表(§7.2,**22→23 表**)+2 字段(§7.4)+2 接口(§8.2 C)+验收 B8(§10.2)。**床位线明确 P0 不做**,仅保留 `bed_count` 备案数占位 | 能改,已改 | | **R11** | 居家护理六流程与 PRD 字段缺位对齐(2026-10-14) | **只补字段、不做功能**:①`record.biz_line`(R8 三表→四表)②`elder.insur_years`/`insur_verify_status`/`insur_verify_date`/`need_assess` ③`plan.plan_basis` ④`settlement.amount_fund`/`amount_self_pay`。**自费服务(收款/同意凭证)本期不做、只留字段** | 能改,已补字段 | > **说明**:**R1–R6 全部为"设计已定",开发排期须按此更新**(此前 `开发排期与模块拆分(第5步)` 未含这 6 项,须回填工时)。**R9 为新增待补项,尚未进需求正文**——待确认后补入 §4.5(履约留痕拍照)+§7.4(字段)+验收指标。 ### 13.2 产品客观做不到的(如实说明,不硬撑) | # | 质疑 | 为什么做不到 | 对客正确表述 | |:---:|---|---|---| | **N1** | Q3 昆明/省级**接口何时发**、时间表 | **接口规范发布权在统筹区经办机构**,非我方可控;昆明在省级平台(易联众建) | "**具备按医保部门统一接口规范对接的条件**",**不给日期、不说"已接通"** | | **N2** | Q6 **备案价**来源口径 | `昆医保通〔2025〕27号` 提三价一致,但**备案价取值口径未获公开原文** | "**备案价口径须回官方原件核实**";系统侧只做三价不一致拦截 | | **N3** | Q10 **昆明经办认不认**"补正" | **行政认可与否由经办机构定**,非产品能力 | "系统侧原值永久保留、只增更正说明";**认不认须与医保核** | | **N4** | Q11 昆明**认不认国家 2026 版文书** | 同上,**属地采纳权在医保** | "导出模板可按国家文书双向适配";**采纳与否须核** | | **N5** | Q4 **等保备案 / 公司存续** | **公司资质与商务层面事项**,非产品模块 | 由公司另出**书面材料**,产品文档不代答 | | **N6** | Q15 昆明**逐项计价口径** | 属属地政策,未获逐项原文 | 系统只算时长、**不参与报账**;计价口径须核 | | **N7** | Q20 **有上线客户吗** | **没有就是没有** | **如实说**:首个客户(玉溪自红)在实施阶段;用**对冲包**补信任(见 §14.3) | | **N8** | Q19/Q21/Q22 报价/SLA/退出条款 | **商务决策**,不是产品能力 | 由商务出**书面条款**,产品文档不代答 | > **⭐ 一句话**:**上表 8 条不是"我们没做",是"这事不由我方单方面定"。** 对客时**如实说"这部分要一起找医保/由公司出材料"**,比硬答更可信。 ### 13.2b ⭐ 待补清单(已识别缺口 · 尚未进需求正文) > **本节回答一件事**:哪些是"产品能做、但当前 PRD 还没定义"的缺口。**待补 ≠ 做不到**,是**尚未设计、留待确认后补入**。补入后移出本节。 | # | 缺口 | 现状 | 待补内容(确认后补入 §4.5 / §7.4 / 验收) | |:---:|---|---|---| | **P-9** | **履约留痕·身份核验** | 现有 PRD **只有"拍照留痕",没有"谁在现场、是不是本人"的核验机制** | 三选一或组合:①**扫脸核验**(护理员/老人人脸比对,需第三方识别或医保 APP 能力);②**人证一致**(身份证号+姓名比对+签字);③**签字确认**(护理员+老人/家属电子签名)。须补字段:核验方式、核验结果、核验时间、经办人,并明确**无网络/老人无法扫脸的兜底**(如家属代签+拍照佐证)。**注意:是否可调用医保 APP 扫脸,须与统筹区经办机构确认,非我方可自行定** | > **原则**:**P-9 是"待补"不是"已做"**。对客表述="**身份核验的落地方式,正在与医保/机构确认核验手段**",**不得说"已实现扫脸"**。 ### 13.3 需商务/公司配合出书面材料的(产品侧无法单独收口) | # | 事项 | 归属 | 建议动作 | |:---:|---|---|---| | **B-1** | **首个客户对冲包**(POC 试运行 / 首年实施费减免 / 达标付费) | 商务 | 三选一或组合,**写进报价与合同** | | **B-2** | **等保备案现状、公司后续维护存续** | 公司 | 出**书面承诺/资质说明** | | **B-3** | **SLA、驻场、响应时限、退款、试用期数据条款** | 商务 | 写入**服务合同附件** | | **B-4** | **拍照分档属地核对**(§4.5.2) | 实施 | 列入**签约前必办清单**,双方签字 | --- ## 十四、对客边界说明(**六条,逐字可用**) 1. **首期范围**:本期交付**待遇档案/派单工单/履约留痕/质控闸门**四块;**结算对账、人员资质、院长看板为二期**。 2. **资质校验**:**"无资质不派单"是政策要求,但资质库在二期**。首期=**人工登记+派单时提示**,**不是自动禁派**。 3. **医保状态同步**:首期**不做自动同步**。状态**由机构人工维护**,系统只能"提醒该核状态+录后拦派单",**不能替你发现状态变化**。 4. **接口对接**:首期按**"人工登记+文件导入导出"**设计,**预留专线口**。**不得表述为"已接通医保系统"**——正确表述是"**具备按医保部门统一接口规范对接的条件**"。 > **背景事实(昆明现状,写死)**:昆明长护险信息系统已于 **2025-01-01 切换到云南省医疗保障信息平台**,定点护理机构的护理员是**直接用「云南医保服务平台」APP 手工录入**服务数据(签到/签退、扫脸、定位、拍照、**服务项目与时长明细**)。**系统只自动算开始/结束时间,项目明细靠护理员护理完成后手工选择、手工录入**,机构须 **T+2 内**上传。⇒ **这不是"系统间自动传递",而是"护理员在医保 APP 上人肉录入"**。故我方系统 P0 **不接医保直连、不自动同步评估/服务数据**,是符合昆明现行事实的正确边界,**不得误设计成"自动同步医保数据"的接口**。 5. **结算数据**:首期**不自动生成结算申报数据**;服务记录可导出,**申报仍按现行方式人工办理**。 6. **巡查与评分**:本系统只做**日常留痕与国家文书查阅项对照**,**不预测巡查评分、不承诺合格**;判定权在统筹地区医疗保障经办机构。 7. **本轮新增能力(2026-10-12)**:**等待期垫付台账、十态待遇状态、扑空登记、拒拍出路、批量导入**等,均为**"需求已写定、开发中"**;**对客不得表述为"现已上线可验收"**。 8. **身份核验(2026-10-12 新增待补)**:**首期不承诺"扫脸/人证识别"**。系统当前只做**拍照留痕**,**"谁在现场、是不是本人"的核验机制仍在确认中**。对客正确表述="**身份核验的落地方式正在与医保/机构确认**",**不得说"已实现扫脸核验"**。 --- **云南投云科技有限公司** 编制:滇小构|2026-10-11(P0 PRD · 交付开发版 · V1)|2026-10-12 按 22 条质疑回填修订|2026-10-14 居家护理六流程字段对齐(只补字段)