Files
hms/docs/discussions/2026-05-21-multi-expert-production-readiness-brainstorm.md
iven b0f96258ee fix(health+server): 多专家组生产就绪度分析 — DTO 校验补全 + 审计日志用户名
五维度分析结果(DevOps 4.0/10, 医疗合规 9C/6P/1NC, 前端 Lighthouse 94/100/100):

1. Article/Category/Tag DTO 补全 #[derive(Validate)] + handler .validate() 调用(6 DTO + 8 handler)
2. 审计日志 API 新增 user_name 字段(批量关联 users 表),仪表盘显示用户名而非 UUID
3. 多专家组分析报告存档 docs/discussions/
2026-05-21 17:53:00 +08:00

8.3 KiB
Raw Blame History

HMS 生产就绪度全面分析 — 多专家组头脑风暴

日期: 2026-05-21 | 方法论: 5 专家组并行分析 + 浏览器 MCP 实测 + 代码扫描 + Lighthouse 审计

一、分析方法论

维度 方法 数据来源
架构/代码质量 专家组 Agent429 受限,手动补充) unwrap 扫描 / validate 扫描 / SQL 注入扫描
安全 专家组 Agent429 受限,手动补充) OWASP 检查 / unwrap / localhost / SSRF
医疗合规 专家组 Agent 完成 17 个子维度逐项评估
前端 UX/性能 专家组 Agent429 受限,手动补充) 'any' 扫描 / fetch 扫描 / console.log / Lighthouse
DevOps/生产就绪 专家组 Agent 完成 Docker / CI/CD / 监控 / 备份 / 性能
浏览器实测 Chrome DevTools MCP 登录 → 工作台 → 患者管理 → 患者详情 → 告警 → 咨询 → 媒体库 → AI 客服

二、各维度评分总览

维度 评分 趋势 一句话总结
业务功能完整度 8.5/10 A 稳定 5 大业务流程 3 个 COMPLIANT随访/咨询/告警最完善
医疗数据合规 6.5/10 B 需提升 9 COMPLIANT / 6 PARTIAL / 1 NON-COMPLIANT药品编码缺失
前端质量 8.0/10 A- 优秀 Lighthouse 94/100/1000 console.log97.8% loading 覆盖
安全 7.5/10 B+ 良好 DTO 校验基本完整PII 加密到位,~15 handler 缺 validate
DevOps 4.0/10 D 阻塞 无 TLS、备份未加密、无监控告警、无法水平扩展
综合 6.9/10 B 功能强但运维弱,需要 7-10 天集中加固可上线

三、CRITICAL 阻塞项(必须修复才能上线)

C1. 无 TLS 终端 — DevOps

  • 现状: 无 Nginx/OpenResty 反代配置HTTP 明文传输
  • 风险: 医疗数据PII + 健康记录)明文传输,违反《数据安全法》
  • 修复: 新增 docker/nginx/ 含 TLS 配置 + 静态文件缓存
  • 工时: 1 天

C2. 备份未加密 — DevOps

  • 现状: pg_dump | gzip 明文存储
  • 风险: 备份文件泄露 = 全量患者数据泄露
  • 修复: gpg --encryptage 加密备份文件
  • 工时: 0.5 天

C3. 无备份恢复验证 — DevOps

  • 现状: 有备份脚本但从未验证恢复
  • 风险: 备份可能损坏,紧急恢复时才发现
  • 修复: 新增 restore.sh + 月度恢复演练文档
  • 工时: 1 天

C4. 药品编码完全缺失 — 医疗合规

  • 现状: medication_record 无 ATC/国药准字号,纯文本识别
  • 风险: 无法做药物相互作用检查、过敏交叉反应分析
  • 修复: 新增 medication_code + national_drug_code 字段 + 药品字典表
  • 工时: 2 天

C5. 无 Prometheus 告警规则 — DevOps

  • 现状: 指标已采集Prometheus 端点 9090但无告警规则
  • 风险: 系统故障无人知道,生产事故发现延迟
  • 修复: 新增 docker/prometheus/alerts.yml + Grafana Dashboard
  • 工时: 1 天

四、HIGH 优先改进项(影响用户体验和数据完整性)

H1. Article Handler 缺少 .validate() 调用 — 安全

  • 现状: article_handler.rs / article_category_handler.rs / article_tag_handler.rs 共 ~15 个 handler 缺 .validate()
  • 影响: 恶意输入可绕过 DTO 校验
  • 工时: 0.5 天

H2. FHIR Patient 资源字段不完整 — 医疗合规

  • 现状: 缺 telecom/address/communication/maritalStatus
  • 影响: 与外部 HIS 系统互操作性受限
  • 工时: 1 天

H3. ICD 编码无格式校验 — 医疗合规

  • 现状: icd_code 是纯字符串,可输入任意值
  • 影响: 诊断数据无法标准化比较
  • 工时: 0.5 天

H4. 身份证号/手机号无格式校验 — 医疗合规

  • 现状: id_number 无 18 位校验位验证,phone 无 1[3-9]\d{9} 验证
  • 影响: 脏数据入库,影响患者匹配和去重
  • 工时: 0.5 天

H5. 前端 'any' 类型残留 — 前端

  • 现状: 16 处 any 跨 5 个文件client.ts / points.ts / ArticleEditor / MediaLibrary 等)
  • 影响: 类型安全缺口
  • 工时: 0.5 天

H6. 咨询列表日期选择器英文 — 前端 UX

  • 现状: ConsultationList 日期筛选显示 "Start date" / "End date"(其他页面中文)
  • 影响: 中英文混搭降低专业感
  • 工时: 0.1 天

H7. 仪表盘审计日志显示 UUID 而非用户名 — 前端 UX

  • 现状: 最近操作记录显示 "019d80" 而非 "系统管理员"
  • 影响: 用户无法理解操作记录
  • 工时: 0.5 天

H8. uploads 文件无独立备份 — DevOps

  • 现状: Docker volume 无宿主机映射或 S3 同步
  • 影响: 主机故障丢失所有上传文件(化验单/体检报告)
  • 工时: 0.5 天

五、MEDIUM 优化项(提升专业度和可维护性)

M1. 无分布式追踪OpenTelemetry— DevOps

  • 工时: 2 天8 模块跨请求延迟归因

M2. 化验报告 items 缺 LOINC 编码 — 医疗合规

  • 工时: 1 天,检验项标准化

M3. Redis 无持久化配置 — DevOps

  • 工时: 0.1 天,添加 appendonly yes

M4. 级联软删除缺失 — 数据完整性

  • 工时: 1 天,删除患者时级联标记子记录

M5. 预约流程缺签到状态 — 业务

  • 工时: 0.5 天,新增 checked_in 状态

M6. CI 密码硬编码 — DevOps

  • 工时: 0.1 天,迁移到 GitHub Secrets

M7. npm audit 使用 || true — DevOps

  • 工时: 0.1 天,改为白名单机制

六、头脑风暴:差异化竞争力方向

方向 A: 医疗数据标准化领先

投入: 5 天 | 收益: 与 HIS/LIS 系统互通能力

  1. 药品字典表ATC + 国药准字)+ 药物相互作用引擎
  2. ICD-10/ICD-11 编码字典 + 智能编码推荐
  3. LOINC 检验项目字典 + 化验报告标准化
  4. FHIR R4 完整 Patient/Condition/MedicationStatement 映射

方向 B: 运维自动化领先

投入: 4 天 | 收益: 从"不可运维"到"无人值守"

  1. TLS 终端 + 安全头加固
  2. 备份加密 + 恢复验证 + 异地存储
  3. Prometheus 告警 + Grafana Dashboard
  4. Redis AOF + DB 连接池可配置
  5. Docker 镜像版本管理 + 自动部署流水线

方向 C: 用户体验精雕

投入: 3 天 | 收益: 专业医疗 SaaS 质感

  1. 审计日志显示操作者姓名(非 UUID
  2. 全站日期选择器中文化
  3. 咨询分配自动化(当前大量"未分配"
  4. 患者合并功能(批量导入去重)
  5. 全站 'any' 类型清理

七、建议实施路径7-10 天可上线)

阶段 天数 目标 关键交付物
Phase 0: 阻塞修复 2 天 消除上线阻断项 TLS + 备份加密 + 恢复验证 + Prometheus 告警
Phase 1: 数据加固 2 天 医疗数据完整性 validate 补全 + 身份证/手机校验 + ICD 校验 + 药品编码框架
Phase 2: UX 精雕 1.5 天 专业 SaaS 质感 审计日志姓名 + i18n 统一 + any 清理 + 咨询分配
Phase 3: 运维完善 1.5 天 可运维性达标 Redis AOF + DB 连接池可配 + uploads 备份 + CI 密钥
Phase 4: 验收上线 2 天 端到端验收 全角色回归测试 + 压力测试 + 灰度上线

八、专家组详细报告引用

专家组 状态 关键发现
DevOps 完整报告 4.0/105 个 CRITICAL + 5 个 HIGHP0 约 2.5 天
医疗合规 完整报告 9 COMPLIANT / 6 PARTIAL / 1 NON-COMPLIANT药品编码
架构/代码 手动补充 unwrap 仅在测试代码SQL 无注入风险validate ~15 处缺失
安全 手动补充 PII 加密到位SSRF 防护已有localhost 仅 Ollama 默认值
前端 UX 手动补充 Lighthouse 94/100/10016 处 any213 处 catch0 console.log

九、结论

HMS 系统在业务功能层面已达到生产级别(随访/咨询/告警三大流程 COMPLIANT前端 Lighthouse 94 分),但运维基础设施是上线最大瓶颈4.0/10。核心差距不在代码质量而在运维自动化和医疗数据标准化。

推荐路径: 先花 2 天消除 DevOps 阻塞项TLS + 备份 + 监控),再用 3 天补齐数据校验和 UX 精雕,最后 2 天全角色验收。总计 7 天可达到用户可测试版本标准。