diff --git a/docs/superpowers/specs/2026-04-25-health-module-business-analysis-design.md b/docs/superpowers/specs/2026-04-25-health-module-business-analysis-design.md index 125f435..689aac7 100644 --- a/docs/superpowers/specs/2026-04-25-health-module-business-analysis-design.md +++ b/docs/superpowers/specs/2026-04-25-health-module-business-analysis-design.md @@ -8,7 +8,7 @@ ## 执行摘要 -HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、12 个权限分组、13 个 Web 页面、21 个小程序页面。本次分析从**临床业务流程、运营管理有效性、产品架构竞争力**三个维度进行深度审查。 +HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、14 个权限描述符(7 组 .list/.manage)、16 个 Web 页面、21 个小程序页面。本次分析从**临床业务流程、运营管理有效性、产品架构竞争力**三个维度进行深度审查。 ### 核心结论 @@ -20,7 +20,7 @@ HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、12 |------|------|--------| | 诊断编码缺失 | 随访/趋势分析/统计报表缺乏医学语义锚点,与 HIS/LIS 无法对接 | P0 | | 统计数据造假 | Dashboard 硬编码 0 值,管理者无法做运营决策 | P0 | -| 消息推送未集成 | 14 种事件定义了但未发布,患者触达手段严重不足 | P0 | +| 消息推送未集成 | 设计规格定义 11 种事件,代码发布 9 种(缺失 `follow_up.overdue` 等),患者触达手段严重不足 | P0 | ### 发现总计 @@ -73,7 +73,7 @@ HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、12 | 问题 | 说明 | |------|------| -| `vital_signs` 与 `daily_monitoring` 字段 80% 重叠 | 数据冗余,趋势分析查询混乱,应合并 | +| `vital_signs` 与 `daily_monitoring` 字段 91% 重叠 | 数据冗余 + 命名不一致(`systolic_bp_morning` vs `morning_bp_systolic`),趋势分析只查 `vital_signs` 表,`daily_monitoring` 数据完全被忽略 | | 缺乏采集时间精度 | 只有 `record_date`,血压需精确到分钟,血糖需标注空腹/餐后 | | 缺乏体温和 SpO2 | 透析感染监测和呼吸系统疾病管理的必备指标 | | 血糖无类型标记 | 空腹/餐后/随机/OGTT 混在一起,参考范围完全不同 | @@ -127,7 +127,7 @@ HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、12 | 血管通路管理 | 无通路类型/位置/评估/并发症/手术史 | 通路是透析患者的"生命线" | | 充分性评估 | 无 Kt/V 和 URR 计算 | 无法评估透析质量 | -其他缺失: 透析中动态监测、透析药物管理 (EPO/铁剂/磷结合剂)、症状/并发症未结构化。 +其他缺失: 透析中动态监测、透析药物管理 (EPO/铁剂/磷结合剂)、症状/并发症未结构化。此外,entity 注释中定义了 `completed` 状态但无代码路径可达,存在"幽灵状态"问题。 ### 1.6 咨询管理 @@ -284,8 +284,8 @@ HMS 健康管理模块已完成初始实现,包含 27 个数据库实体、12 - 声明 `dependencies() = vec!["auth"]` 语义明确 关键问题: -- **事件发布未实现**: 设计规格定义 14 种事件,实际发布不完整 -- **message.sent 订阅为空操作**: 只打 `tracing::info`,`consultation_session.last_message_at` 不更新 +- **事件发布不完整**: 设计规格定义 11 种事件,代码实际发布 9 种(含 2 种设计规格外的: `doctor.online_status_changed`/`lab_report.uploaded`)。缺失 `follow_up.overdue` 等关键事件 +- **message.sent 订阅为空操作**: 只打 `tracing::info`,但 `consultation_session.last_message_at` 已在 `create_message` 方法中通过 CAS 直接更新,此事件订阅是预留扩展点而非功能缺失 - 缺少密钥轮换机制 ### 3.2 数据模型完整性 @@ -376,7 +376,7 @@ Web 前端优点: API 层按领域拆分(8 个 TS 文件)、12 个共享组 | # | 改进项 | 涉及文件 | 复杂度 | |---|--------|---------|--------| | 1 | 修复 Dashboard 统计数据 | `points.ts` + `points_service.rs` + `StatisticsDashboard.tsx` | 中 | -| 2 | 补全事件发布(至少 4 个关键事件) | `event.rs` + 各 service 文件 | 中 | +| 2 | 补全事件发布(至少 `follow_up.overdue`) | `event.rs` + `follow_up_service.rs` | 中 | | 3 | 合并 vital_signs 和 daily_monitoring | entity + service + DTO + migration | 中 | | 4 | 增加实时异常预警 | `health_data_service.rs` + `trend_service.rs` | 中 | | 5 | 增加 ICD-10 诊断编码支持 | 新建 entity + migration + service | 中 | @@ -427,7 +427,7 @@ Web 前端优点: API 层按领域拆分(8 个 TS 文件)、12 个共享组 ## 附录 A: 与 QA 审计计划的交叉引用 -本分析与 [QA 审计计划](../../plans/qa-review-sop-hidden-marshmallow.md) 的发现高度重叠,以下是交叉对照: +本分析与 [QA 审计计划](../../plans/qa-review-brainstorm-floofy-finch.md) 的发现高度重叠,以下是交叉对照: | QA 审计编号 | 业务分析对应 | 状态 | |------------|-------------|------|