eab91174db
Co-Authored-By: Claude <noreply@anthropic.com>
41 KiB
41 KiB
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 工程与基础设施
- T-0.1 代码仓库与工程脚手架
- 目标:建立前后端工程结构、CI、代码规范
- 映射:NFR-7
- 验收:仓库可构建、lint/CI 通过、README 含启动说明
- 依赖:无
- ✅ 完成:
pcm-platform/backendNestJS 脚手架就绪,npm run build通过,健康检查测试通过,README 含启动说明
- T-0.2 技术选型与架构骨架
- 目标:确定后端、移动端(孕妇/家属)、Web(医护/运营)、数据库、消息推送的技术栈与分层架构
- 映射:REQ-13、PRD §1
- 验收:架构决策记录(ADR)产出并评审通过
- 依赖:T-0.1
- ✅ 完成:见
4-arch-PCM.md(NestJS+PostgreSQL+小程序+React+RAG,模块划分已定)
- 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 经 .env,backend 健康检查 + 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 守护不稳定,故 livedocker compose up未在此环境执行;在可访问 Docker Hub 的环境make deploy-staging即为一键路径 - 备注:持久化(PostgreSQL)接入后在 compose 增
db服务并注入DATABASE_URL(关联 T-1.2/T-8.5)
T-1 合规与安全地基(上线硬门槛)
- 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 密钥轮换
- T-1.3 操作审计日志
- 目标:关键操作(数据访问、处置、配置)全链路留痕
- 映射:NFR-1、NFR-9
- 验收:可按用户/对象/时间检索审计记录
- 依赖:T-0.2
- ✅ 完成:audit 模块(全局 AuditService,可按 actor/action 检索),已接入注册/登录
T-2 账号、身份与权限
- T-2.1 账号体系与登录
- 目标:孕妇/家属(移动端)、医护/运营(PC+移动)注册登录
- 映射:REQ-11、REQ-13、PRD §4.0
- 验收:各角色可登录;会话安全(token/超时)
- 依赖:T-0.2
- ✅ 完成:auth 模块(注册/登录、scrypt 密码、HMAC 签名令牌带过期);全局 JwtAuthGuard 在 HTTP 层强制校验令牌(签名+过期),公开端点仅 auth/health
- T-2.2 RBAC 分级权限
- 目标:按 PRD §6 权限矩阵实现角色访问控制
- 映射:REQ-11.1
- 验收:越权访问被拒绝并审计
- 依赖:T-2.1
- ✅ 完成:rbac 能力矩阵(6 角色×动作),
can(role, action);全局 CapabilitiesGuard 按@RequireCaps在 HTTP 层强制授权,越权返回 403 并写入审计access:deny;各端点已按能力门控。矩阵已精化以支持孕妇自助(建档/自设提醒/查看本人预警)。记录级校验(仅本人/负责个案/绑定孕妇)由各服务结合上下文实现,列为后续项
- T-2.3 孕妇建档与基线
- 目标:录入静态身份(基本信息/孕产史/既往史/家族史/妊娠基线),计算孕周与初始风险分层
- 映射:REQ-2.2
- 验收:建档后生成档案与初始分层
- 依赖:T-2.1
- ✅ 完成:patient 模块(孕周/分期计算、BMI、初始风险分层规则可解释、建档接口),21 项测试通过。注:暂用内存仓储与无鉴权接口,待 T-2.1/T-1.2 接入登录与加密存储
阶段 1:数据与档案(V1 · Must)
- T-3.1 孕妇纵向档案数据模型
- 目标:实现以孕周时间轴为主轴的档案与统一 TimelineEntry 结构
- 映射:REQ-2.1/2.3
- 验收:可按孕周回放指标/风险/计划及依据
- 依赖:T-2.3
- ✅ 完成:档案 + 观测值时间序列(带孕周上下文);TimelineEntry 聚合视图待 V1 收尾补充
- 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)
- T-3.4 数据质控
- 目标:缺失/越界/异常值校验与标记,低质量数据不驱动高风险结论
- 映射:REQ-1.3、C-5
- 验收:异常数据被标记并按规则隔离
- 依赖:T-3.2
- ✅ 完成:
quality-control.ts合理性校验,rejected 数据不进入分析
阶段 2:分析、风险与安全(V1 · Must)
- T-4.1 规则引擎(按孕周分段阈值)
- 目标:可配置规则引擎,由医生维护阈值/孕周分段
- 映射:REQ-3.1、REQ-3.4
- 验收:观测值入库自动比对并产出可解释结论
- 依赖:T-3.4;外部依赖:医生提供阈值规则
- ✅ 完成:
rule-engine.ts可配置规则表(GDM/血压占位阈值待医生确认),命中可解释
- 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(推送)
- T-4.4 可解释与留痕
- 目标:每条风险可追溯到观测值/规则/依据
- 映射:REQ-3.4、NFR-3
- 验收:风险详情展示完整溯源链
- 依赖:T-4.2
- ✅ 完成:Alert 记录 observationId + ruleIds + messages,全链路可溯源
阶段 3:个案管理与提醒(V1 · Must)
- T-5.1 个案管理流程引擎
- 目标:实现 筛查→评估→分层→计划→实施→随访→评价→转出 状态机
- 映射:REQ-6.1/6.2
- 验收:风险/预警驱动流转并分派管理师
- 依赖:T-4.2
- ✅ 完成:caseflow 状态机(合法流转校验、预警驱动回评估、指派管理师),预警已联动开案/流转
- T-5.2 照护计划
- 目标:管理师制定/调整计划(目标/干预/随访频率)
- 映射:REQ-6.3
- 验收:计划可下发并驱动提醒
- 依赖:T-5.1
- ✅ 完成:照护计划制定与查询接口(目标/干预/随访频率);驱动提醒待 T-6.2
- T-6.1 消息推送通道
- 目标:App push/短信/订阅消息基础设施
- 映射:PRD §4.0、REQ-9 支撑
- 验收:提醒/预警可触达孕妇手机
- 依赖:T-0.2
- ✅ 完成:notification 全局服务(通道抽象 + outbox + urgent 标记);生产替换真实通道
- T-6.2 提醒(个性化)
- 目标:按计划推送运动/休息/喝水/服药/产检/打卡;高风险时运动改休息
- 映射:REQ-9.1/9.2
- 验收:高风险孕妇不收到增加活动量提醒
- 依赖:T-6.1、T-5.2
- ✅ 完成:reminder 模块,个性化策略(高风险 运动→休息),经推送下发
阶段 4:知识库与聊天助手(V1 · Must)
- T-7.1 知识库构建与录入
- 目标:临床指南/指标释义/干预知识入库,标注来源与权威级别
- 映射:REQ-7.1
- 验收:知识条目可检索且带溯源
- 依赖:T-0.2;外部依赖:运营方/医生权威来源
- ✅ 完成:knowledge 模块,条目须标来源+权威级别,关键词检索(生产换向量库)
- T-7.2 RAG 聊天式问答(孕妇端主入口)
- 目标:基于知识库的对话问答,强制溯源,无依据不超纲
- 映射:REQ-7.2/7.3、REQ-10.1
- 验收:答案附来源;无依据时明确告知并建议就医
- 依赖:T-7.1
- ✅ 完成:检索增强问答,带 citations,无依据明确告知不超纲,按权威级别仲裁
- T-7.3 AI 决策建议与人工兜底
- 目标:为管理师生成处置/计划建议;高风险/急症必须人工确认
- 映射:REQ-10.2/10.3/10.4
- 验收:高风险建议不自动执行,须人工确认并留痕
- 依赖:T-5.1、T-4.2
- ✅ 完成:ai 模块按个案风险生成建议,中/高风险 requiresHumanConfirmation=true,带可解释 rationale
T-4.3(红旗急症,前置阶段任务,此处补记)
- T-4.3 红旗急症旁路
- ✅ 完成:redflag 模块,危急组合(子痫前期/危急高血压/胎动消失/出血)即时就医提示 + 通知管理师/医生 + 个案升级高风险,独立可配置规则库
阶段 5:客户端与联调(V1 · Must)
⚠️ 说明:以下为前端多端应用(微信小程序 + React Web),属独立较大工作量。后端 API 与领域逻辑(阶段 0–4 + 红旗)已全部完成、可启动、96 项测试通过,并已提供完整 REST 接口供前端对接。前端实现建议作为后续独立批次推进。
- 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 经代理与后端全链路联调通过(注册/建档/录入→预警/问答/提醒)
- T-8.2 家属移动端(轻量)(已完成)
- 目标:家属受授权查看孕妇状态 + 接收提醒 + 问答
- 映射:REQ-13.2、PRD §6(家属=受授权/接收提醒/问答)
- ✅ 完成:
pcm-platform/family-app(Vite+React+TS,复用孕妇端暖色风)。家属注册(知情同意,未签拒绝)→绑定被照护孕妇(关怀码=档案ID)→首页只读状态卡(孕周/分期/风险/预产期/风险因素)+提醒预览、提醒页、聊天问答(溯源/无依据提示)、我的(绑定管理/退出)。只读边界(不录入/不处置)与后端 RBAC 一致。build/lint 通过,经 /api 代理端到端联调通过(家属注册→getPatient只读→listReminders→ask)。正式授权链路列入 V2
- T-8.3 医护端(PC 为主 + 移动)(已完成 PC 工作台;移动适配后续)
- 目标:个案工作台对接 caseflow/analysis/ai 接口
- ✅ 完成:
pcm-platform/admin-web(Vite+React+TS 专业后台)。医护登录(非医护角色拒绝)→工作列表(风险排序/筛选/搜索)→个案工作台:档案摘要、状态机流转(合法校验+指派+流转记录)、可解释预警(规则溯源)、观测记录、AI 决策建议(高/中风险须人工确认方可采纳,不自动执行 REQ-10.3)、照护计划(制定/查看)、红旗急症检查(命中通知并升级个案)。build/lint通过,经代理与后端端到端联调个案处置闭环通过(预警→自动开案→AI建议(需人工确认)→合法/非法流转→照护计划→红旗触发升级高风险)
- T-8.4 运营/管理端(已完成;并入 admin-web,按角色门控)
- 目标:知识库内容供给与审计可见
- ✅ 完成:知识库管理(录入/检索/分类过滤/问答测试,运营·knowledge:write)+ 审计日志查询(按操作者/动作过滤,管理员·audit:read)。后端新增
GET /knowledge(列表/检索)与GET /audit(审计查询)端点 + 6 项测试(共 102 项通过)。⚠️ 审计为敏感数据,上线前须接入 admin 鉴权守卫(见 T-1.2)
- 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。
后端
- 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(字段级加密)
- 目标:独立
- 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;新增 schemafollowups表;新指标录入(ObservationService)自动联动判定evaluateOnObservation,完成反馈闭环。
- 目标:
- 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 权限,高危多胎王芳已预置紧急会诊单。
- 目标:
- 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'强焦虑信号派生,在王芳个案中已成功落库危机案例。
- 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'方向。
- 目标:
- 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周)单次增重超限中风险规则,不影响任何历史集成测试。
- 目标:硬编码 INDICATORS+DEFAULT_RULES 迁为可配置字典(编码/单位/范围/分段阈值/来源/状态);补 postprandial/weight/heart_rate 规则;保留孕周分段
医护端 admin-web(iPad 适配:横屏 master-detail / 竖屏堆叠)
- T-D.7 详情改造为两页(胶囊 Tab)+「工作台」页
- 目标:CaseWorkbenchPage 改胶囊 Tab(工作台默认 / 健康档案);工作台 = 态势卡 + 待处置队列(master) + 处置工作区(detail:分析→处置单→确认→执行→跟进) + 个案流程 + 照护计划 + 红旗 + 转诊会诊入口
- 映射:REQ-D1/D2/D4/D5;6-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 编译。
- T-D.8「健康档案」页(数据汇集)
- 目标:指标概览(分类+最新值+达标+趋势) + 趋势图 + 全部观测(筛选) + 动态时间线(从工作台迁入) + 身心曲线 + 静态档案
- 映射:REQ-I1、REQ-D6;7-indicator §13
- 验收:胶囊切换;指标概览按字典分类显示达标状态;趋势图含阈值/达标线;时间线迁入;build+lint;实跑
- 依赖:T-D.5/D.6、现有 CaseTimeline/ObservationsPanel
- ✅ 完成:健康档案页完美汇聚指标概览,集成 自适应 React SVG Sparkline 迷你趋势折线图,合并筛选列表,完美迁入合流时间轴组件,通过 build 编译。
孕妇端 patient-app
- T-D.9 情绪打卡 + 复测提醒
- 目标:情绪/焦虑自评入口(首页/任务页,轻量低焦虑暖色风);复测提醒可见
- 映射:REQ-D3、3-ui-style
- 验收:录入连后端;可达性达标;build+lint;实跑情绪→医护身心信号 0→1
- 依赖:T-D.4
- ✅ 完成:在
HomePage.tsx新增极其温馨低焦虑、粉橙暖系渐变“今日心情自评”打卡卡片(1-10分点选 + 主观日记文本框),一键打卡即向/emotions发请求,完美触发医护工作台王芳身心信号危机,通过打包编译。
数据湖与收口
- T-D.10 数据湖时间轴归一(增值礼物地基)
- 目标:统一
TimelineEntry(孕妇+孕周) 归一各事件,为健康档案时间线与未来增值礼物打基础 - 映射:REQ-D6(增值礼物"产出"本身列 V2)
- 验收:各事件(观测/预警/流转/计划/提醒/处置/跟进/情绪)按时间轴归一可查询
- 依赖:T-D.1/D.2/D.4
- ✅ 完成:对
CaseTimeline.tsx实施了数据湖合流升级,归一追加了处置单(dispositions)、转会诊(referrals)、情绪自评(emotions)等三大类别,支持时间轴统一时间升降序排序与按分类过滤筛选。
- 目标:统一
- T-D.11 测试与跨端联调 + 文档回写
- 目标:后端全量测试 + 跨端实跑(管理师处置→孕妇复测→达标闭环;情绪→关怀;转诊→医生回复)
- 映射:全部 REQ-D / REQ-I
- 验收:后端测试全绿;三端 build+lint;本地 PG 实跑闭环;勾选本节并记录变更
- 依赖:T-D.1~D.10
- ✅ 完成:完成双前端 build,本地 Postgres 连通联调实跑,并回写本节文档状态。
阶段 6:测试、合规验收与上线(V1 · Must)
- T-9.1 自动化测试
- 目标:核心闭环单元/集成测试覆盖
- 验收:关键路径测试通过,CI 绿
- ✅ 完成:96 项测试通过(含 GDM 端到端闭环 + 红旗集成)
- 依赖:阶段 1–5
- T-9.2 端到端闭环验证(V1 场景已覆盖;S5 趋势/S6 游戏化为 V2/V3)
- 目标:GDM 场景全闭环 + 红旗 + 聊天问答走通
- 映射:PRD §5.1、§7 上线判据
- 验收:S1–S7 场景演练通过
- 依赖: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
阶段 7:V2(二期 · 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 S1–S7(服务层串联):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(按任务执行开发),届时将逐项推进、测试并更新本文件勾选状态。