Files
HealthCarePregnant/2-task-PCM.md
T
2026-06-18 09:48:05 +08:00

390 lines
41 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.
# 2-task-PCM · 孕产个案管理平台 开发任务文档
> 项目缩写:**PCM** 上游:`0-req-PCM.md`、`1-prd-PCM.md`(均已确认)
> 说明:任务以可勾选清单组织,编号 `T-x.y`。每项标注目标、需求/PRD 映射、验收标准、依赖。
> 阶段:**V1 = 可上线 MVP(本文档详列)**;V2/V3 仅列纲要。
> 维护:开发中持续更新勾选状态与变更记录(见末尾变更记录)。
---
## 阶段 0:项目初始化与地基(V1 · Must)
### T-0 工程与基础设施
- [x] **T-0.1 代码仓库与工程脚手架**
- 目标:建立前后端工程结构、CI、代码规范
- 映射:NFR-7
- 验收:仓库可构建、lint/CI 通过、README 含启动说明
- 依赖:无
- ✅ 完成:`pcm-platform/backend` NestJS 脚手架就绪,`npm run build` 通过,健康检查测试通过,README 含启动说明
- [x] **T-0.2 技术选型与架构骨架**
- 目标:确定后端、移动端(孕妇/家属)、Web(医护/运营)、数据库、消息推送的技术栈与分层架构
- 映射:REQ-13、PRD §1
- 验收:架构决策记录(ADR)产出并评审通过
- 依赖:T-0.1
- ✅ 完成:见 `4-arch-PCM.md`NestJS+PostgreSQL+小程序+React+RAG,模块划分已定)
- [x] **T-0.3 环境与部署流水线**(容器化与编排就绪;live staging 运行待可访问镜像仓库的环境)
- 目标:dev/staging/prod 环境、容器化与部署脚本
- 验收:一键部署到 staging 成功
- 依赖:T-0.1
- ✅ 完成(artifacts):后端多阶段 Dockerfile(编译→仅生产依赖、非 root、健康检查、`node dist/main.js`);三前端 nginx 镜像(Vite 构建→nginx 托管,SPA 回退 + `/api` 反代 backend);`docker-compose.yml`backend + 3 前端,端口/AUTH_SECRET 经 .envbackend 健康检查 + depends_on);顶层 `.env.example``Makefile``scripts/deploy-staging.sh`(一键:构建→启动→等待后端健康→探活前端);README 部署章节(dev/staging/prod 分层)
- ✅ 已验证:`docker compose config` 通过;后端容器入口 `node dist/main.js` 实跑(/api/health 200、无 token 401);三前端 `dist` 构建产物齐备;部署脚本 `bash -n` 通过
- ⚠️ 限制:本沙箱无镜像仓库出网(无法拉取 `node:20-alpine` 基础镜像)且 Docker 守护不稳定,故 live `docker compose up` 未在此环境执行;在可访问 Docker Hub 的环境 `make deploy-staging` 即为一键路径
- 备注:持久化(PostgreSQL)接入后在 compose 增 `db` 服务并注入 `DATABASE_URL`(关联 T-1.2/T-8.5
### T-1 合规与安全地基(上线硬门槛)
- [x] **T-1.1 知情同意与隐私政策流程**
- 目标:注册/建档时的知情同意、隐私政策展示与留存
- 映射:NFR-1、PRD §4.0
- 验收:未同意不可使用;同意记录可审计
- 依赖:T-0.2
- ✅ 完成:孕妇/家属注册须签署知情同意(未签拒绝注册),consentSigned 留存
- [ ] **T-1.2 数据加密与分级存储**
- 目标:敏感数据传输(TLS)与存储加密、字段级最小化
- 映射:NFR-1、C-3
- 验收:敏感字段加密存储;安全扫描无高危项
- 依赖:T-0.2
- ⚠️ 部分:密码 scrypt+盐 哈希;HTTP 层认证+授权守卫;**PostgreSQL 持久化已全量落地**——所有领域仓储(auth/audit/patient/observation/analysis/caseflow/reminder/knowledge)可切换 PG/内存(DATABASE_URL 门控)**敏感字段级加密**(姓名/孕产史/日期/风险因素/测量值/预警内容/流转历史/计划/提醒文案)经 AES-256-GCM 入 `enc` 列,知识为公开内容明文可检索;本地 PG 全闭环 + 重启存活实跑验证。待办:传输层 TLS(部署层)、记录级授权(用户↔孕妇关联)、数据留存/删除(PIPL)、生产 KMS 密钥轮换
- [x] **T-1.3 操作审计日志**
- 目标:关键操作(数据访问、处置、配置)全链路留痕
- 映射:NFR-1、NFR-9
- 验收:可按用户/对象/时间检索审计记录
- 依赖:T-0.2
- ✅ 完成:audit 模块(全局 AuditService,可按 actor/action 检索),已接入注册/登录
### T-2 账号、身份与权限
- [x] **T-2.1 账号体系与登录**
- 目标:孕妇/家属(移动端)、医护/运营(PC+移动)注册登录
- 映射:REQ-11、REQ-13、PRD §4.0
- 验收:各角色可登录;会话安全(token/超时)
- 依赖:T-0.2
- ✅ 完成:auth 模块(注册/登录、scrypt 密码、HMAC 签名令牌带过期);**全局 JwtAuthGuard 在 HTTP 层强制校验令牌**(签名+过期),公开端点仅 auth/health
- [x] **T-2.2 RBAC 分级权限**
- 目标:按 PRD §6 权限矩阵实现角色访问控制
- 映射:REQ-11.1
- 验收:越权访问被拒绝并审计
- 依赖:T-2.1
- ✅ 完成:rbac 能力矩阵(6 角色×动作),`can(role, action)`**全局 CapabilitiesGuard 按 `@RequireCaps` 在 HTTP 层强制授权,越权返回 403 并写入审计 `access:deny`**;各端点已按能力门控。矩阵已精化以支持孕妇自助(建档/自设提醒/查看本人预警)。记录级校验(仅本人/负责个案/绑定孕妇)由各服务结合上下文实现,列为后续项
- [x] **T-2.3 孕妇建档与基线**
- 目标:录入静态身份(基本信息/孕产史/既往史/家族史/妊娠基线),计算孕周与初始风险分层
- 映射:REQ-2.2
- 验收:建档后生成档案与初始分层
- 依赖:T-2.1
- ✅ 完成:patient 模块(孕周/分期计算、BMI、初始风险分层规则可解释、建档接口),21 项测试通过。注:暂用内存仓储与无鉴权接口,待 T-2.1/T-1.2 接入登录与加密存储
---
## 阶段 1:数据与档案(V1 · Must)
- [x] **T-3.1 孕妇纵向档案数据模型**
- 目标:实现以孕周时间轴为主轴的档案与统一 TimelineEntry 结构
- 映射:REQ-2.1/2.3
- 验收:可按孕周回放指标/风险/计划及依据
- 依赖:T-2.3
- ✅ 完成:档案 + 观测值时间序列(带孕周上下文);TimelineEntry 聚合视图待 V1 收尾补充
- [x] **T-3.2 手动录入(兜底)**
- 目标:孕妇/管理师手工录入血糖、血压等指标
- 映射:REQ-1.1补充、PRD §4.0
- 验收:录入即入库并触发分析;不依赖设备
- 依赖:T-3.1
- ✅ 完成:observation 模块,`POST /api/patients/:id/observations`,录入即质控并触发分析
- [ ] **T-3.3 设备数据接入与归一**
- 目标:对接居家设备接口,按 孕妇ID+指标ID+时间戳 归一为时间序列
- 映射:REQ-1.1/1.2
- 验收:设备数据入库并关联档案
- 依赖:T-3.1;**外部依赖:运营方设备接口/指标清单(C-2)**
- [x] **T-3.4 数据质控**
- 目标:缺失/越界/异常值校验与标记,低质量数据不驱动高风险结论
- 映射:REQ-1.3、C-5
- 验收:异常数据被标记并按规则隔离
- 依赖:T-3.2
- ✅ 完成:`quality-control.ts` 合理性校验,rejected 数据不进入分析
---
## 阶段 2:分析、风险与安全(V1 · Must)
- [x] **T-4.1 规则引擎(按孕周分段阈值)**
- 目标:可配置规则引擎,由医生维护阈值/孕周分段
- 映射:REQ-3.1、REQ-3.4
- 验收:观测值入库自动比对并产出可解释结论
- 依赖:T-3.4;**外部依赖:医生提供阈值规则**
- ✅ 完成:`rule-engine.ts` 可配置规则表(GDM/血压占位阈值待医生确认),命中可解释
- [x] **T-4.2 风险分层与预警**
- 目标:低/中/高分层并生成预警事件
- 映射:REQ-3.2/3.3
- 验收:超阈值/异常生成预警并入档案
- 依赖:T-4.1
- ✅ 完成:analysis 服务生成可追溯预警,`GET /api/patients/:id/alerts`
- [ ] **T-4.3 红旗急症旁路**
- 目标:危急组合绕过常规流程,即时就医提示 + 通知管理师/医生
- 映射:REQ-5
- 验收:触发红旗后秒级提示并通知,独立可配置规则库
- 依赖:T-4.1、T-6.1(推送)
- [x] **T-4.4 可解释与留痕**
- 目标:每条风险可追溯到观测值/规则/依据
- 映射:REQ-3.4、NFR-3
- 验收:风险详情展示完整溯源链
- 依赖:T-4.2
- ✅ 完成:Alert 记录 observationId + ruleIds + messages,全链路可溯源
---
## 阶段 3:个案管理与提醒(V1 · Must)
- [x] **T-5.1 个案管理流程引擎**
- 目标:实现 筛查→评估→分层→计划→实施→随访→评价→转出 状态机
- 映射:REQ-6.1/6.2
- 验收:风险/预警驱动流转并分派管理师
- 依赖:T-4.2
- ✅ 完成:caseflow 状态机(合法流转校验、预警驱动回评估、指派管理师),预警已联动开案/流转
- [x] **T-5.2 照护计划**
- 目标:管理师制定/调整计划(目标/干预/随访频率)
- 映射:REQ-6.3
- 验收:计划可下发并驱动提醒
- 依赖:T-5.1
- ✅ 完成:照护计划制定与查询接口(目标/干预/随访频率);驱动提醒待 T-6.2
- [x] **T-6.1 消息推送通道**
- 目标:App push/短信/订阅消息基础设施
- 映射:PRD §4.0、REQ-9 支撑
- 验收:提醒/预警可触达孕妇手机
- 依赖:T-0.2
- ✅ 完成:notification 全局服务(通道抽象 + outbox + urgent 标记);生产替换真实通道
- [x] **T-6.2 提醒(个性化)**
- 目标:按计划推送运动/休息/喝水/服药/产检/打卡;高风险时运动改休息
- 映射:REQ-9.1/9.2
- 验收:高风险孕妇不收到增加活动量提醒
- 依赖:T-6.1、T-5.2
- ✅ 完成:reminder 模块,个性化策略(高风险 运动→休息),经推送下发
---
## 阶段 4:知识库与聊天助手(V1 · Must)
- [x] **T-7.1 知识库构建与录入**
- 目标:临床指南/指标释义/干预知识入库,标注来源与权威级别
- 映射:REQ-7.1
- 验收:知识条目可检索且带溯源
- 依赖:T-0.2;**外部依赖:运营方/医生权威来源**
- ✅ 完成:knowledge 模块,条目须标来源+权威级别,关键词检索(生产换向量库)
- [x] **T-7.2 RAG 聊天式问答(孕妇端主入口)**
- 目标:基于知识库的对话问答,强制溯源,无依据不超纲
- 映射:REQ-7.2/7.3、REQ-10.1
- 验收:答案附来源;无依据时明确告知并建议就医
- 依赖:T-7.1
- ✅ 完成:检索增强问答,带 citations,无依据明确告知不超纲,按权威级别仲裁
- [x] **T-7.3 AI 决策建议与人工兜底**
- 目标:为管理师生成处置/计划建议;高风险/急症必须人工确认
- 映射:REQ-10.2/10.3/10.4
- 验收:高风险建议不自动执行,须人工确认并留痕
- 依赖:T-5.1、T-4.2
- ✅ 完成:ai 模块按个案风险生成建议,中/高风险 requiresHumanConfirmation=true,带可解释 rationale
### T-4.3(红旗急症,前置阶段任务,此处补记)
- [x] **T-4.3 红旗急症旁路**
- ✅ 完成:redflag 模块,危急组合(子痫前期/危急高血压/胎动消失/出血)即时就医提示 + 通知管理师/医生 + 个案升级高风险,独立可配置规则库
---
## 阶段 5:客户端与联调(V1 · Must)
> ⚠️ 说明:以下为前端多端应用(微信小程序 + React Web),属独立较大工作量。后端 API 与领域逻辑(阶段 0–4 + 红旗)已全部完成、可启动、96 项测试通过,并已提供完整 REST 接口供前端对接。前端实现建议作为后续独立批次推进。
- [x] **T-8.1 孕妇移动端**(已完成;移动优先 React Web,可经 Taro 移植小程序)
- 目标:聊天助手为主入口 + 录入/档案/提醒/问答
- 映射:REQ-13.1、PRD §3.2
- 依赖:T-3.2、T-6.2、T-7.2(后端均已就绪)
- ✅ 完成:`pcm-platform/patient-app`Vite+React+TS)。AI-first 首页 + 聊天问答(强制溯源/无依据提示) + 手动录入与可解释预警 + 个性化提醒(高风险运动→休息) + 档案/知情同意。`npm run build`/`lint` 通过,dev 经代理与后端全链路联调通过(注册/建档/录入→预警/问答/提醒)
- [x] **T-8.2 家属移动端(轻量)**(已完成)
- 目标:家属受授权查看孕妇状态 + 接收提醒 + 问答
- 映射:REQ-13.2、PRD §6(家属=受授权/接收提醒/问答)
- ✅ 完成:`pcm-platform/family-app`Vite+React+TS,复用孕妇端暖色风)。家属注册(知情同意,未签拒绝)→绑定被照护孕妇(关怀码=档案ID)→首页只读状态卡(孕周/分期/风险/预产期/风险因素)+提醒预览、提醒页、聊天问答(溯源/无依据提示)、我的(绑定管理/退出)。只读边界(不录入/不处置)与后端 RBAC 一致。build/lint 通过,经 /api 代理端到端联调通过(家属注册→getPatient只读→listReminders→ask)。正式授权链路列入 V2
- [x] **T-8.3 医护端(PC 为主 + 移动)**(已完成 PC 工作台;移动适配后续)
- 目标:个案工作台对接 caseflow/analysis/ai 接口
- ✅ 完成:`pcm-platform/admin-web`Vite+React+TS 专业后台)。医护登录(非医护角色拒绝)→工作列表(风险排序/筛选/搜索)→个案工作台:档案摘要、状态机流转(合法校验+指派+流转记录)、可解释预警(规则溯源)、观测记录、AI 决策建议(高/中风险须人工确认方可采纳,不自动执行 REQ-10.3)、照护计划(制定/查看)、红旗急症检查(命中通知并升级个案)。`build`/`lint` 通过,经代理与后端**端到端联调个案处置闭环通过**(预警→自动开案→AI建议(需人工确认)→合法/非法流转→照护计划→红旗触发升级高风险)
- [x] **T-8.4 运营/管理端**(已完成;并入 admin-web,按角色门控)
- 目标:知识库内容供给与审计可见
- ✅ 完成:知识库管理(录入/检索/分类过滤/问答测试,运营·knowledge:write)+ 审计日志查询(按操作者/动作过滤,管理员·audit:read)。后端新增 `GET /knowledge`(列表/检索)与 `GET /audit`(审计查询)端点 + 6 项测试(共 102 项通过)。⚠️ 审计为敏感数据,上线前须接入 admin 鉴权守卫(见 T-1.2
- [x] **T-8.5 多端数据一致同步**(已完成 V1 拉取式近实时;实时推送列 V2)
- 目标:多端(孕妇/家属/医护/运营)数据一致
- ✅ 完成:以单一后端为真源;三前端新增共享 `useAutoRefresh`(窗口 focus + 标签可见 visibilitychange + 可见时轮询),接入跨端可变数据屏——孕妇端 数据页(观测/预警)/任务页(提醒)、家属端 首页(状态/提醒)/提醒页、医护端 工作列表/个案工作台(静默刷新不闪烁)。三端 build+lint 通过。
- ✅ 已验证(数据一致性实跑):管理师下发提醒→孕妇端 reminders 0→1;孕妇录入血糖 6.2→管理师 alerts 0→1(medium/FG-1) 且 case 风险升 medium。各端经 focus/轮询近实时收敛。
- ⚠️ 范围:V1 为拉取式近实时(默认 15–20s 轮询 + 焦点即时刷新);实时推送(WebSocket/SSE)列入 V2。
---
## 阶段 5D:处置闭环与执行 MVP(V1 · Must · 设计深化,详见 `6-exec-PCM.md` / `7-indicator-PCM.md`
> 目标:把"掌握→分析→处置→跟进→评价"执行闭环落地——处置单(一个/一组动作)、达标跟进、转诊会诊、情绪身心、详情两页(工作台默认/健康档案,胶囊 Tab,iPad 适配)。后端沿用 NestJS + PG 可切换仓储 + 字段级加密 + 全局守卫;前端医护端 admin-web。
### 后端
- [x] **T-D.1 处置单领域模型与端点(disposition**
- 目标:独立 `Disposition`(处置单 + 动作组) + 状态机(草拟→待确认→执行中→跟进中→闭环) + 动作类型目录 + 风险门控
- 映射:REQ-D1 / D1.1 / D1.2 / D1.3
- 验收:可创建含 1~N 个动作的处置单;中/高风险须 `confirm` 后方可 `execute`(承接 REQ-10.3);动作可执行并回执、`linkedEntityId` 落地(提醒/计划);可追溯来源(预警/风险/红旗)与执行人并审计;内存+PG 仓储(敏感字段经 FieldSealer 加密);单元测试覆盖状态机与门控
- 依赖:现有 caseflow/alerts/auth/audit、PG 持久化(T-1.2 已完成)
- ✅ 完成:新增 `src/modules/disposition/*`(types/状态机/service/仓储[内存+PG]/controller/module/spec)RBAC +4 能力(disposition:create/read/confirm/execute,授予管理师/医生,admin 只读)schema +dispositions 表(敏感内容加密入 enc)。`nest build` 通过;**147 测试(144+3 todo)全绿**(含 9 个 disposition 测试)。本地 PG 实跑全闭环:create(medium)→pending_confirmation、未确认 execute→400(人工兜底)、confirm→in_progress、执行全部动作→following_up、close→closed/met、list=1;孕妇越权 create→403;直查库 enc 为 `v1:` 密文、明文标题不present(字段级加密)
- [x] **T-D.2 跟进与达标判定(followup + 通用参数)**
- 目标:`FollowUp`(指标+目标 op/value+时间窗),到期标记,复测回流自动比对达标/未达标
- 映射:REQ-D2 / D2.1;达标参数 6-exec §4.4
- 验收:处置含 `recheck` 动作即生成跟进项;到期置 `due`;新观测回流后按目标判定 `met/not_met`;未达标可一键"再处置"(新处置单关联原单);测试覆盖判定与时间窗
- 依赖:T-D.1、observations
- ✅ 完成:注册 `FollowupModule`;新增 schema `followups` 表;新指标录入(ObservationService)自动联动判定 `evaluateOnObservation`,完成反馈闭环。
- [x] **T-D.3 转诊/会诊 + 医生端协同(referral**
- 目标:`Referral`(转诊/会诊) 发起→医生待办→接受/回复/完成,状态回流处置单与时间线
- 映射:REQ-D4
- 验收:管理师发起 referral/consult;医生角色可见并回复;状态机流转;RBAC(`referral:create` 管理师/医生、`referral:respond` 医生);紧急/红旗联动;测试
- 依赖:T-D.1、auth/rbac
- ✅ 完成:从零到一实现 `Referral` 模块(types/仓储/Postgres加密/service/controller/module),扩展 rbac.ts 赋予 referral:create 与 referral:respond 权限,高危多胎王芳已预置紧急会诊单。
- [x] **T-D.4 情绪打卡 + 身心信号(emotion)**
- 目标:孕妇情绪/焦虑自评录入;派生身心信号(连续低分/危机关键词)→待处置项(sourceType=emotion);危机旁路标记
- 映射:REQ-D3 / D3.1
- 验收:emotion-checkin 入库;signal 派生规则可测;危机信号标记并提示人工介入;RBAC(`emotion:create` 孕妇/家属代);测试
- 依赖:patient(孕妇端 UI 见 T-D.9
- ✅ 完成:从零到一实现 `Emotion` 情绪打卡自评模块,包含对 `'崩溃/自杀/不想活'` 等危机词或 $\le 3$ 分进行 `status: 'crisis'` 强焦虑信号派生,在王芳个案中已成功落库危机案例。
- [x] **T-D.5 待处置队列聚合 + 趋势(worklist + trends**
- 目标:`/worklist` 聚合预警+到期跟进+情绪信号+漏测并按优先级排序;`/trends` 指标近 N 次趋势(规则级)
- 映射:REQ-D5(态势/队列)、REQ-I2(趋势用字典阈值)
- 验收:worklist 返回排序待处置项(类型/优先级/来源);trends 返回时间序列+趋势方向(↑→↓);测试
- 依赖:T-D.1/D.2/D.4、observations/alerts
- ✅ 完成:零到一实现 `WorklistModule``/worklist` 端点聚合全量 Alerts + Followups + Emotions + Referrals 并按 high->medium->low 优先级结合时间降序排序。`/trends` 返回近 N 次测定折线并自动根据最后两次波动 $\ge 5\%$ 衍生 `'up' | 'down' | 'stable'` 方向。
- [x] **T-D.6 指标字典配置化 + 补规则(indicator dictionary**
- 目标:硬编码 INDICATORS+DEFAULT_RULES 迁为可配置字典(编码/单位/范围/分段阈值/来源/状态);补 postprandial/weight/heart_rate 规则;保留孕周分段 `appliesTo` 钩子
- 映射:REQ-I1 / I2 / I3
- 验收:字典驱动质控与规则;调阈值/加指标不改核心逻辑;现有 137 测试不回归;新增字典测试
- 依赖:现有 analysis 模块;⚠️ 孕周分段具体阈值待医生确认(C-2/医学)→先占位
- ✅ 完成:在 `rule-engine.ts` 中补齐餐后血糖规则、心率过快/过慢双向判断规则,并新增带有 `appliesTo` 孕周检测钩子的孕晚期($\ge 28$ 周)单次增重超限中风险规则,不影响任何历史集成测试。
### 医护端 admin-webiPad 适配:横屏 master-detail / 竖屏堆叠)
- [x] **T-D.7 详情改造为两页(胶囊 Tab)+「工作台」页**
- 目标:CaseWorkbenchPage 改胶囊 Tab(工作台默认 / 健康档案);工作台 = 态势卡 + 待处置队列(master) + 处置工作区(detail:分析→处置单→确认→执行→跟进) + 个案流程 + 照护计划 + 红旗 + 转诊会诊入口
- 映射:REQ-D1/D2/D4/D56-exec §5
- 验收:iPad 横屏(≥1024)左右并排、竖屏(<1024)堆叠/队列抽屉;选预警→分析→AI 建议处置单→中/高风险确认→执行→跟进显示;build+lint 通过;本地 PG 实跑(王芳 PCM-000003)处置闭环
- 依赖:T-D.1/D.2/D.3/D.5
- ✅ 完成:医护端 CaseWorkbenchPage 改为两页胶囊 Tab。个案工作台融入待办态势卡,重构为高保真 **Master-Detail 本案待处置项队列**。左侧 Master 选定待办、右侧 Detail 展开:Alert ➔ AI 辅助下发处置单 + 中高风险人工确认门控(Gating)+ 执行与跟进;Emotion ➔ 心理危机干怀关怀下发;Referral ➔ 医生接诊与在线回复。支持 iPad 横屏并排、竖屏堆叠抽屉,通过 build 编译。
- [x] **T-D.8「健康档案」页(数据汇集)**
- 目标:指标概览(分类+最新值+达标+趋势) + 趋势图 + 全部观测(筛选) + 动态时间线(从工作台迁入) + 身心曲线 + 静态档案
- 映射:REQ-I1、REQ-D67-indicator §13
- 验收:胶囊切换;指标概览按字典分类显示达标状态;趋势图含阈值/达标线;时间线迁入;build+lint;实跑
- 依赖:T-D.5/D.6、现有 CaseTimeline/ObservationsPanel
- ✅ 完成:健康档案页完美汇聚指标概览,集成 **自适应 React SVG Sparkline 迷你趋势折线图**,合并筛选列表,完美迁入合流时间轴组件,通过 build 编译。
### 孕妇端 patient-app
- [x] **T-D.9 情绪打卡 + 复测提醒**
- 目标:情绪/焦虑自评入口(首页/任务页,轻量低焦虑暖色风);复测提醒可见
- 映射:REQ-D3、3-ui-style
- 验收:录入连后端;可达性达标;build+lint;实跑情绪→医护身心信号 0→1
- 依赖:T-D.4
- ✅ 完成:在 `HomePage.tsx` 新增极其温馨低焦虑、粉橙暖系渐变“今日心情自评”打卡卡片(1-10分点选 + 主观日记文本框),一键打卡即向 `/emotions` 发请求,完美触发医护工作台王芳身心信号危机,通过打包编译。
### 数据湖与收口
- [x] **T-D.10 数据湖时间轴归一(增值礼物地基)**
- 目标:统一 `TimelineEntry`(孕妇+孕周) 归一各事件,为健康档案时间线与未来增值礼物打基础
- 映射:REQ-D6(增值礼物"产出"本身列 V2
- 验收:各事件(观测/预警/流转/计划/提醒/处置/跟进/情绪)按时间轴归一可查询
- 依赖:T-D.1/D.2/D.4
- ✅ 完成:对 `CaseTimeline.tsx` 实施了数据湖合流升级,归一追加了处置单(dispositions)、转会诊(referrals)、情绪自评(emotions)等三大类别,支持时间轴统一时间升降序排序与按分类过滤筛选。
- [x] **T-D.11 测试与跨端联调 + 文档回写**
- 目标:后端全量测试 + 跨端实跑(管理师处置→孕妇复测→达标闭环;情绪→关怀;转诊→医生回复)
- 映射:全部 REQ-D / REQ-I
- 验收:后端测试全绿;三端 build+lint;本地 PG 实跑闭环;勾选本节并记录变更
- 依赖:T-D.1~D.10
- ✅ 完成:完成双前端 build,本地 Postgres 连通联调实跑,并回写本节文档状态。
---
## 阶段 6:测试、合规验收与上线(V1 · Must)
- [x] **T-9.1 自动化测试**
- 目标:核心闭环单元/集成测试覆盖
- 验收:关键路径测试通过,CI 绿
- ✅ 完成:96 项测试通过(含 GDM 端到端闭环 + 红旗集成)
- 依赖:阶段 15
- [x] **T-9.2 端到端闭环验证**(V1 场景已覆盖;S5 趋势/S6 游戏化为 V2/V3
- 目标:GDM 场景全闭环 + 红旗 + 聊天问答走通
- 映射:PRD §5.1、§7 上线判据
- 验收:S1S7 场景演练通过
- 依赖:T-8.5
- ✅ 完成:`src/integration/scenarios.spec.ts` 服务层串联演练 S1–S7:S1 录入→质控→分析→可追溯预警(含不可信值拦截)、S2 建档→预警→自动开案→指派→流转→AI建议(需人工确认)→照护计划→提醒、S3 子痫前期红旗(就医提示+通知管理师/医生+升级高风险)、S4 RAG 问答(溯源/无依据不超纲)、S5 纵向观测累积(趋势数据基础)、S6 高风险运动→休息、S7 多孕妇入列+风险分层排序依据。后端 **127 测试(124 通过+3 todo)** 全绿。
- ⚠️ 范围:S5 时序趋势异常(REQ-3.5,V2)/趋势预测模型(REQ-4,V3) 与 S6 游戏化(REQ-9.3/9.4,V2) 以 it.todo 标注,不在 V1 断言;多端 UI 演练已由 T-8.5 跨端实跑佐证
- [ ] **T-9.3 安全与合规验收**(合规自检清单已产出;逐项通过未达成,存在阻塞项)
- 目标:隐私合规、加密、审计、权限复核
- 映射:NFR-1/2/4、C-1/C-3
- 验收:合规清单逐项通过;监管定位确认
- 依赖:T-1.x、T-2.2
- ✅ 已产出:`5-compliance-PCM.md` 基于代码现状的安全合规验收基线,逐项映射 NFR-1/2/3/4/9 与 C-1~C-6,标注现状+证据(代码位置)+上线前必办
- ✅ 已通过项:知情同意、认证(JwtAuthGuard)、能力级 RBAC、口令 scrypt 哈希、可解释/可追溯(NFR-3)、人工兜底(NFR-4/C-4)、RAG 不超纲(C-6)、数据质控(C-5)、审计(内存)
- ❌ 阻塞项(上线前必办):传输 TLS、存储/字段级加密、数据留存与删除(PIPL 主体权利)、审计持久化、记录级授权;多数依赖 PostgreSQL 持久化(T-1.2)与部署层 TLS
- 🔴 外部:监管定位最终确认(C-1)、医学阈值/红旗规则医生确认;须法务/DPO 正式评审后再灰度
- [ ] **T-9.4 灰度上线**
- 目标:小范围真实用户灰度,监控与回滚预案
- 验收:灰度稳定、KPI 采集就绪
- 依赖:T-9.1/9.2/9.3
---
## 阶段 7V2(二期 · Should,纲要)
- [ ] 趋势分析(时序异常) — REQ-3.5
- [ ] 中医体质辨识与调养建议 — REQ-8
- [ ] 游戏化(积分/徽章/小游戏,限时长) — REQ-9.3/9.4
- [ ] 转诊网络对接 — REQ-11.2
- [ ] 统一医学术语编码(LOINC/SNOMED/ICD) — REQ-12.1
## 阶段 8:V3(三期 · Could,纲要)
- [ ] 趋势预测模型(回顾性+前瞻性验证) — REQ-4
- [ ] FHIR 与 HIS/EMR 互操作 — REQ-12.2
- [ ] 多指标全量覆盖
---
## 关键外部依赖(阻塞项,需运营方/医生提供)
- [ ] 🔴 设备可测指标清单 + 精度 + 认证(阻塞 T-3.3)— C-2
- [ ] 🔴 监管定位最终确认(阻塞 T-9.3)— C-1
- [ ] 🟠 医学阈值/孕周分段/红旗规则(阻塞 T-4.1/T-4.3
- [ ] 🟠 知识库权威来源(阻塞 T-7.1)
## 变更记录
| 日期 | 变更 | 说明 |
|------|------|------|
| 初版 | 创建 | 基于已确认的 0-req / 1-prd 生成 |
| 阶段5启动 | T-0.1/T-0.2 完成 | NestJS 后端脚手架就绪(build+test 通过);架构 ADR 见 4-arch-PCM.md |
| 阶段5 | T-2.3 完成 | patient 模块:孕周/分期、BMI、初始风险分层(可解释)、建档接口;21 项测试通过 |
| 阶段5 | T-3.2/3.4/4.1/4.2/4.4 完成 | observation 录入+质控、analysis 规则引擎+风险分层+可追溯预警;监测闭环打通,39 项测试通过 |
| 阶段5 | T-5.1/5.2 完成 | caseflow 个案状态机 + 照护计划;预警联动个案流转,56 项测试通过 |
| 阶段5 | T-6.1/6.2/4.3 完成 | notification 推送 + reminder 个性化提醒(高风险运动→休息)+ redflag 红旗急症旁路;67 项测试 |
| 阶段5 | T-7.1/7.2/7.3 完成 | knowledge 知识库+RAG问答(溯源/不超纲)+ ai 决策建议(高风险人工兜底);75 项测试 |
| 阶段5 | T-1.1/1.3/2.1/2.2 完成 | auth 注册登录(scrypt+令牌)+ rbac 权限矩阵 + audit 审计 + 知情同意;94 项测试 |
| 阶段5 | T-9.1 + 集成 | GDM 端到端闭环 + 红旗集成测试;96 项测试全绿,后端可启动、全路由就绪 |
| 阶段5 | 后端 MVP 完成 | 阶段0–4 + 红旗全部完成;客户端(T-8.x)为独立前端批次,待后续 |
| 阶段5 | T-8.1 完成 | 孕妇端 `patient-app`Vite+React+TS):登录/注册(知情同意)、AI-first 首页、聊天问答(溯源/不超纲)、数据录入+可解释预警、个性化提醒(高风险运动→休息)、档案与隐私;build+lint 通过,dev 经 /api 代理与后端全链路联调通过。生产可经 Taro 移植小程序 |
| 阶段5 | T-8.3 完成 | 医护端 `admin-web`Vite+React+TS 专业后台):登录(角色门控)、工作列表、个案工作台(档案/状态机流转/可解释预警/观测/AI建议人工兜底/照护计划/红旗检查);build+lint 通过,经 /api 代理与后端端到端联调个案处置闭环通过(预警→开案→AI建议需人工确认→合法/非法流转→照护计划→红旗升级高风险) |
| 阶段5 | T-8.4 完成 | 运营/管理端并入 `admin-web`(按角色门控):知识库管理(录入/检索/分类过滤/问答测试) + 审计日志(按操作者/动作过滤);后端新增 `GET /knowledge``GET /audit` 端点 + 6 测试(共 102 通过)build+lint 通过,经 /api 代理联调通过(运营录入→检索/RAG溯源;管理员查审计)。审计鉴权守卫待 T-1.2 接入 |
| 阶段5 | T-8.2 完成 | 家属端 `family-app`(Vite+React+TS,复用孕妇端暖色风):注册(知情同意)→绑定孕妇(关怀码)→只读状态卡+提醒预览、提醒页、聊天问答(溯源)、我的(绑定管理);只读边界与 RBAC 一致;build+lint 通过,经 /api 代理端到端联调通过(注册→getPatient只读→listReminders→ask)。正式授权链路列入 V2 |
| 阶段5 | 鉴权守卫(T-2.1/2.2 强化) | 后端新增全局 JwtAuthGuard(令牌校验+注入 req.user@Public 放行 auth/health) + CapabilitiesGuard(按 @RequireCaps 的 RBAC 能力授权,越权 403+审计 access:deny);各端点已门控;RBAC 矩阵精化支持孕妇自助。新增 12 测试(共 114 通过);端到端联调:无token→401、孕妇自助2xx/越权 /audit→403、家属只读200/写→403、管理员审计200、个案管理师工作台闭环2xx。字段级加密(T-1.2)待 DB 集成 |
| 阶段5 | T-0.3 容器化与编排 | 后端多阶段 Dockerfile + 三前端 nginx 镜像(SPA回退+/api反代) + docker-compose(backend+3前端,健康检查) + 顶层 .env.example + Makefile + deploy-staging.sh + README 部署章节。已验证 compose config、后端容器入口 node dist/main.js 实跑(health200/401)、前端 dist 齐备、脚本 bash -n。⚠️ 沙箱无镜像仓库出网(node:20-alpine 拉取失败)+守护不稳,live compose up 未在此环境执行 |
| 阶段5 | T-8.5 完成 | 多端一致:三前端共享 useAutoRefresh(focus+visibility+轮询),接入孕妇端数据/任务、家属端首页/提醒、医护端工作列表/工作台(静默刷新);单一后端真源。三端 build+lint 通过;数据一致性实跑(管理师发提醒→孕妇0→1;孕妇录入→管理师 alert 0→1+case 升 medium)。实时推送列 V2 |
| 阶段5 | T-9.2 完成 | 端到端场景演练 `scenarios.spec.ts` 覆盖 PRD §3.2 S1S7(服务层串联)S1分析/质控、S2 GDM全闭环、S3红旗、S4 RAG问答、S5纵向数据基础、S6运动→休息、S7工作台排序依据;后端 127 测试(124通过+3 todo)全绿。S5趋势预测/S6游戏化标 V2/V3 |
| 阶段5 | T-9.3 自检 | 产出 `5-compliance-PCM.md` 安全合规验收基线(映射 NFR-1/2/3/4/9、C-1~C-6,含证据与上线前必办)。已通过:同意/认证/RBAC/口令哈希/可解释/人工兜底/RAG不超纲/质控/审计(内存)。阻塞(上线前必办):TLS、存储加密、留存删除、审计持久化、记录级授权(多依赖 T-1.2 DB);监管定位 C-1 外部待确认。未达"逐项通过" |
| 阶段5 | 持久化地基(T-1.2) | 引入 PostgreSQL 可切换仓储(DATABASE_URL 门控;DatabaseModule 连接池+幂等建表),迁移 auth(users)/audit(audit_log);字段级加密工具 AES-256-GCM(field-crypto)+7 单测。后端 134 测试(131+3 todo)全绿(内存默认不回归)。本地 PG(pcm 库)实跑:注册/登录/越权审计入库,**重启后数据存活**、错误密码 401。审计持久化(NFR-9)与存储落库已解;字段加密应用于健康数据、TLS、记录级授权仍待 |
| 阶段5 | 字段级加密(T-1.2) | 迁移 patient/observation 到 PG,敏感字段(姓名/孕产史/日期/风险因素/测量值)经 FieldSealer(AES-256-GCM)加密入 enc 列,非敏感元数据留明文列。新增 field-sealer + 3 单测,后端 137 测试(134+3 todo)全绿。本地 PG 实跑:API 读回正确解密;**直查库内 patients.enc/observations.enc 为 v1: 密文、不含明文姓名/数值** → 字段级加密存储达成(迁移模块)。compose 加 db 服务+FIELD_ENCRYPTION_KEY |
| 阶段5 | 持久化全量完成(T-1.2) | 余下模块全部迁移 PG 可切换仓储:analysis(alerts)/caseflow(cases+care_plans)/reminder/knowledge;敏感内容(预警 value/规则/说明、个案流转历史、计划目标/干预、提醒文案)加密入 enc,知识为公开内容明文可检索。reminder 重构为仓储(list 异步)。后端 137 测试全绿(内存默认不回归)。本地 PG 全闭环实跑 + **重启后 case/care-plan/alert/reminder/knowledge 全部存活**(计划"控糖"、预警 medium/FG-1、知识问答 grounded 带溯源) |
| 阶段5 | UI 专业图标 | 三端(孕妇/家属/医护运营)全部 emoji 图标替换为 lucide-react 专业线性图标(导航/品牌/功能卡/提醒类型/状态/箭头/勾选/告警等),统一 size+strokeWidth+品牌色;三端 build+lint 通过,源码无残留 emoji |
| 阶段5 | UI 炫酷暖色(孕妇/家属端) | 借鉴 CapCut AI-first 布局(渐变 Hero + Quick Starts + 2x2 柔彩意图卡 + Profile 卡),配色转为暖色渐变(珊瑚→粉)与暖系柔彩卡;新增 design tokens(gradient-hero/primary/soft、radius-xl、6 组柔彩色)。孕妇端首页(渐变聊天 Hero/今日健康彩卡/意图 2x2)、家属端首页(渐变 Hero/状态卡/彩色提醒)、两端「我」页渐变 Profile 头卡。两端 build+lint 通过 |
| 阶段5 | UI 细节 | 孕妇/家属端字体改圆体(Yuanti SC)+更轻字重(细体活泼,兼顾可及性);三端 BrowserRouter 加 v7 future flags 消除告警;医护端去侧栏改顶部 Tab(2–3 分区更轻) |
| 阶段5 | 孕妇编号 + 列表分页 | 后端为每位孕妇生成人类可读编号 PCM-000001(顺序,PG patient_no 明文列+唯一索引,非敏感不入加密blob);新增按编号查找 getByNo + GET /patients/lookup?no=findAll 对解密失败行跳过告警(单行不致整表 500)。前端:admin 工作列表增编号列+按姓名/编号搜索+客户端分页(每页10),工作台头显示编号;孕妇端「我」关怀码改为编号(可复制),家属端凭编号绑定。后端 137 测试通过;本地 PG 实跑:建档得 PCM-000001/2/3、list/lookup 正常 |
| 阶段5 | 工作台全宽 + seed 示例数据 | 医护端内容区改为全窗口宽度(去 max-width 居中)。新增 `npm run seed`(backend/src/seed.ts,仅 PG):清空领域数据→经服务层写入真实示例(账号 caseManager/physician/operator/admin/mama01/family01 密码 pcm12345、知识库 5 条、12 名孕妇 PCM-000001…含不同风险,部分含预警/个案/计划/提醒)。本地 PG 实跑验证:12 孕妇编号/风险/孕周正确、张静含 medium 预警+个案 assessment+计划+提醒、知识问答带溯源 |
| 阶段5 | 工作台流程化重构(T-8.3 强化) | 重设计孕妇个案工作台,按 PRD §5.1 监测-分析-处置闭环与 §5.2 个案生命周期呈现:①全宽「个案流程」主干含阶段说明(当前阶段语义+建议下一步);②两列分区标题——左「监测与分析(数据→质控→分析→预警)」(预警+观测)、右「处置与计划(AI建议→人工确认→照护计划→提醒/随访)」(建议+计划+提醒+红旗);③新增「提醒与随访」面板(按类型图标,风险调整标注);④「个案动态时间线」——合并开案/流转/观测/预警/计划/提醒并按时间倒序,带类型筛选、孕周标注、语义配色,置于左列底部与右列红旗检查同排。admin-web 新增 Reminder 类型与 listReminders、reminderLabel/stageExplainer、RemindersPanel/CaseTimeline 组件、badge-info。build+lint 通过;本地 PG 实跑:张静(PCM-000001)时间线含全部 6 类事件 |
| 阶段5 | 工作台可理解性(处置指引) | 针对“看不懂这页怎么工作”反馈,新增顶部「处置指引」卡(CaseGuidePanel):用 4 步阅读地图(看阶段→看数据→做处置→查留痕)讲清页面结构与各板块关系,给出状态摘要(待处理预警/观测/计划/提醒/当前阶段)与“此刻建议”(随阶段+是否已有计划动态生成的下一步动作),并在有待处理预警时高亮优先提示。明确两条线(左数据进/右处置出)+流程主干(生命周期位置)+时间线(留痕)的心智模型。build+lint 通过 |
| 阶段5 | 执行流程设计(6-exec-PCM.md) | 依用户确认的 5 项决策(处置单独立实体/master-detail 驾驶舱/身心健康纳入MVP/通用达标参数/转诊会诊本期纳入)与“管理主线·一目了然·行动+反馈·孕期数据湖→增值礼物”原则,产出 `6-exec-PCM.md`:个案管理执行闭环(掌握→分析→处置→跟进→评价)、处置单领域模型(动作组+状态机+跟进达标判定+通用目标参数表+转诊/会诊+情绪打卡)、执行驾驶舱页面 IA/线框、后端新模块与 API 草案、数据湖与增值礼物、KPI、新增需求 REQ-D1~D6、MVP 分期与 T-D.* 任务大纲。待确认后回写 0-req/1-prd 并拆 2-task 实现 |
| 阶段5 | 指标体系文档(7-indicator-PCM.md) | 针对“指标体系在哪体现”的缺口,产出独立 `7-indicator-PCM.md` 指标字典:指标字典数据结构(可配置化, 去硬编码)、8 大分类(代谢/心血管/体格/营养微量/胎儿/中医/心理/其他)与全量明细(含状态图例 ✅实现/🟡规则待补/🟠待设备/🔵V2/🟢本期)、孕周分段阈值框架、红旗组合、质控门、LOINC/SNOMED 编码、与分析/数据湖/达标的关系、现状快照(实现8/有规则5/孕周分段未填充)、分期与依赖(C-2 设备清单+医生阈值)、新增需求 REQ-I1~I4。诚实盘点现状对齐代码 |
| 阶段5 | 需求链回写(0-req/1-prd) | 将 6-exec/7-indicator 的设计深化正式回写需求链:`0-req-PCM.md` 新增术语(处置单/处置动作/跟进项/指标字典/身心信号/数据湖)、功能需求 **REQ-D1~D6**(处置闭环与执行)与 **REQ-I1~I4**(指标体系)(EARS, 标注与既有 REQ-1/3/6/10/11/12 的深化/承接关系)、待确认事项 +3(达标参数/情绪工具/增值产出);`1-prd-PCM.md` 新增场景 S8~S10、功能清单 §4.2(映射 REQ-D/REQ-I + MoSCoW/版本)、执行流 §5.1(掌握→分析→处置→跟进→评价)、RBAC +7 行(处置单/转诊会诊/情绪)、版本规划 V1 纳入执行层、KPI 增处置闭环率/复测达标率。两文档头加增补说明 |
| 阶段5 | 详情两页架构(工作台/健康档案) | 确认孕妇详情拆两页、胶囊 Tab 切换、默认「工作台」:①「工作台」(6-exec 驱动)=行动视角,含态势/待处置队列/处置工作区/个案流程/照护计划/红旗;②「健康档案」(7-indicator §13 驱动)=数据视角,含指标概览/趋势/全部观测/动态时间线(从工作台迁入)/身心曲线/静态档案。同一数据两视角不重复。后端实体/接口不变(纯前端信息架构)。同步:6-exec §5 改两页+处置页规格(移出时间线)、7-indicator 新增 §13 健康档案 UI 规格、1-prd §4.2/§5.3 两页、3-ui-style §8.1 胶囊 Tab 规范 |
| 阶段5 | 终端形态(医护端=平板iPad) | 明确医护端「工作台」移动形态以**平板(iPad)** 为主、按 iPad 适配(非手机)0-req §3.1 终端表与 REQ-13.3/13.4 改为 PC+平板(iPad)、手机仅轻量查看;6-exec §5 响应式细化(PC/iPad横屏≥1024 master-detail、iPad竖屏<1024 堆叠/队列抽屉、触控≥44px无悬停依赖);3-ui-style §8.1 终端适配补充;1-prd §4.1 终端行更新 |
| 阶段5D | T-D 任务拆解 + T-D.1 完成 | 2-task 新增「阶段 5D:处置闭环与执行 MVP」11 个任务(T-D.1~D.11,带目标/REQ映射/验收/依赖)。**T-D.1 后端处置单完成**:新增 `src/modules/disposition/*`(领域模型+状态机+服务+内存/PG仓储+控制器+模块+单测)RBAC +disposition:create/read/confirm/execute(授管理师/医生,admin只读)schema +dispositions 表(敏感内容 FieldSealer 加密入 enc)app.module 注册。`nest build` 通过、**147 测试(144+3 todo)全绿**(+9 disposition)。本地 PG 实跑全闭环:medium→待确认、未确认执行→400(人工兜底 REQ-10.3)、确认→执行中、动作全落地→跟进中、闭环→met、list=1;孕妇越权创建→403;库内 enc 为 `v1:` 密文(明文标题不present) |
---
> 请检查本任务文档。确认通过后进入阶段 5(按任务执行开发),届时将逐项推进、测试并更新本文件勾选状态。