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

101 lines
7.1 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.
# 5-compliance-PCM · 安全与合规验收清单(T-9.3)
> 项目缩写:**PCM** 上游:`0-req-PCM.md`NFR/约束)、`1-prd-PCM.md`(§8 合规)、`4-arch-PCM.md`
> 用途:上线前安全与合规基线核查。逐项标注现状、证据(代码位置)与上线前必办事项。
> 状态图例:✅ 已实现 ⚠️ 部分(V1 占位/待补强) ❌ 待办 🔴 外部阻塞(待运营方/法务/医生)
> ⚠️ 说明:本清单为**工程自检基线**,不替代法务/DPO 的正式合规评审与(如适用)监管注册评估。
---
## 1. 监管定位声明(NFR-2 / C-1
- 产品定位:**健康管理 / 临床决策支持**,**非诊断、非急救替代、非处方**。
- 工程体现:
- AI 决策建议对中/高风险 `requiresHumanConfirmation=true`,系统不自动执行临床决策(人工兜底)。
- 知识问答强制 RAG + 溯源,无依据明确告知并建议就医,不超纲生成。
- 红旗急症仅给"立即就医"提示并通知医护,不下诊断结论。
- 孕妇端/家属端知情同意文案明示"提供健康陪伴与信息参考,不替代医生的诊断与治疗"。
- 🔴 **上线前必办**:监管定位与合规边界的**最终确认**(C-1,待运营方/法务);若功能演进触及 SaMD 边界须重新评估 NMPA 注册。
---
## 2. 合规核对清单
### NFR-1 安全合规(PIPL / 数据安全法)—— 拆分逐项
| 项 | 要求 | 现状 | 证据 / 说明 |
|----|------|------|-------------|
| 1.1 知情同意 | 使用前签署,留存可审计 | ✅ | `auth.service.ts`:孕妇/家属未签 `consent` 拒绝注册;`consentSigned` 留存;前端登录页含同意勾选 + 隐私政策页 |
| 1.2 身份认证 | 会话安全、令牌校验 | ✅ | 全局 `JwtAuthGuard` 校验签名令牌 + 过期;`token.ts` HMAC + 过期;8h TTL |
| 1.3 分级权限 | 按角色访问控制 | ⚠️ | 能力级:`CapabilitiesGuard` + `rbac.ts` 矩阵,越权 403。**记录级**(仅本人/负责个案/绑定孕妇)待补(无用户↔孕妇关联表) |
| 1.4 口令保护 | 不明文存储 | ✅ | `password.ts`scrypt + 16B 随机盐 + `timingSafeEqual`;最短 8 位。生产建议 argon2/bcrypt |
| 1.5 传输加密 | TLS | ❌ | 应用层未含 TLS;须在入口(nginx/ingress/网关)终止 TLS。**上线前必办** |
| 1.6 存储加密 | 敏感字段加密、最小化 | ✅ | PostgreSQL 持久化(auth/audit/patient/observation`DATABASE_URL` 门控);**敏感 PII/PHI 字段级加密已落地**——patient(姓名/孕产史/日期/风险因素)、observation(测量值) 经 AES-256-GCM 入 `enc` 列(`field-sealer.ts`/`field-crypto.ts`),实跑验证库内为密文、不含明文。非敏感元数据留明文列以供检索。生产经 KMS 注入 `FIELD_ENCRYPTION_KEY` 并轮换 |
| 1.7 数据最小化 | 仅采所需 | ⚠️ | 建档/录入 DTO 仅收必要字段;代码示例/日志未回显敏感值。缺正式数据分级清单 |
| 1.8 留存与删除 | 留存策略 + 删除权 | ❌ | 未实现数据留存期与删除/导出(PIPL 主体权利)。**上线前必办** |
| 1.9 审计日志 | 关键操作留痕 | ✅ | `audit.service.ts` 记录注册/登录/越权(access:deny)`audit.controller.ts``audit:read`(admin)可查。**持久化可用**:PG `audit_log``DATABASE_URL` 门控),已实跑入库+重启存活验证。生产再加防篡改/WORM 与归档 |
### NFR-2 监管定位 / C-1
| 项 | 现状 | 证据 |
|----|------|------|
| 非诊断定位的工程约束 | ✅ | 人工兜底 + RAG 不超纲 + 红旗仅就医提示(见 §1) |
| 监管定位最终确认 | 🔴 外部 | C-1,待运营方/法务确认 |
### NFR-3 可解释性
| 项 | 现状 | 证据 |
|----|------|------|
| 风险/预警可追溯 | ✅ | `Alert``ruleIds`+`messages`+`observationId``scenarios.spec.ts` S1 断言可追溯 |
| AI 建议可解释 | ✅ | `Recommendation.rationale` 溯源到预警说明 |
| 问答溯源 | ✅ | `QaAnswer.citations`(标题/来源/权威级别) |
### NFR-4 临床安全 / C-4
| 项 | 现状 | 证据 |
|----|------|------|
| 红旗人工兜底 | ✅ | `redflag.service.ts` 即时就医 + 通知管理师/医生 + 升级高风险;S3 测试 |
| 高风险 AI 必须人工确认 | ✅ | `recommendation.ts` 中/高风险 `requiresHumanConfirmation=true`;工作台"确认采纳"门控 |
| 误报/漏报责任边界与处置 SLA | ❌ | 责任边界与 SLA 为运营/医疗制度,未在系统固化。**上线前必办(制度+配置)** |
### NFR-9 可观测/审计
| 项 | 现状 | 证据 |
|----|------|------|
| 全链路审计 | ⚠️ | 已覆盖鉴权/越权;处置/配置类操作的审计点待逐步补全;存储须持久化 |
### 约束核查
| 约束 | 现状 | 证据 / 说明 |
|------|------|-------------|
| C-1 监管定位(🔴最高) | 🔴 外部 | 待最终确认 |
| C-2 设备指标清单(🔴最高) | 🔴 外部 | 待运营方;V1 以手动录入兜底,不阻塞上线核心闭环 |
| C-3 数据合规隐私(🔴最高) | ⚠️ | 同意/审计/口令已实现;传输/存储加密、留存删除待办(见 1.5/1.6/1.8 |
| C-4 红旗+人工兜底(🟠高) | ✅ | 见 NFR-4 |
| C-5 低质量数据不驱动高风险(🟠高) | ✅ | `quality-control.ts` 拒绝不可信值,rejected 不进入分析;S1 测试断言 |
| C-6 RAG 溯源不超纲 + 高风险人工确认(🟡中) | ✅ | 见 NFR-3 / NFR-4 |
---
## 3. 上线前必办(阻塞项)
1.**传输加密 TLS**(1.5):入口层 TLS 终止 + HSTS。
2.**存储加密与持久化**(1.6 / T-1.2):全部领域仓储已迁移 PostgreSQLauth/audit/patient/observation/analysis/caseflow/reminder/knowledge+ 敏感字段 AES-256-GCM 加密入库,本地 PG 全闭环 + 重启存活验证。**剩**:生产 KMS 密钥管理与轮换。
3.**数据留存与删除/导出**(1.8):留存期策略 + 主体删除/导出(PIPL 权利)。
4. ⚠️ **审计持久化**1.9):PG `audit_log` 持久化已落地;**剩** 生产防篡改/WORM 存储与归档策略。
5. ⚠️ **记录级授权**(1.3):用户↔孕妇关联,强制"仅本人/负责个案/绑定孕妇"。
6.**误报/漏报责任边界与处置 SLA**(NFR-4):制度化并在系统配置/留痕。
7. 🔴 **监管定位最终确认**(C-1)+ 医学阈值/红旗规则由医生确认(外部)。
8. 🔁 **密钥与配置**`AUTH_SECRET` 强随机 + 轮换;密钥管理(KMS/Secrets);勿用默认值。
---
## 4. 验收结论
- V1 工程层面已落地:知情同意、认证、能力级 RBAC、口令哈希、可解释/可追溯、人工兜底、RAG 不超纲、数据质控、审计(内存)。
- **不满足"无条件上线"**:传输/存储加密、数据留存删除、审计持久化、记录级授权、监管定位确认为阻塞项(§3)。
- 建议:完成 §3 阻塞项(多数依赖 PostgreSQL 持久化与部署层 TLS)后,由法务/DPO 正式评审再灰度上线(T-9.4)。
---
## 变更记录
| 日期 | 变更 | 说明 |
|------|------|------|
| T-9.3 | 创建 | 基于代码现状的安全与合规验收基线;映射 NFR-1/2/3/4/9 与 C-1~C-6 |