docs(wiki): 全景梳理 — 更新 9 个 wiki + CLAUDE.md scope + 头脑风暴记录
Some checks failed
CI / security-audit (push) Has been cancelled
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled

基于 3 个并行探索代理的全面扫描结果,更新 wiki 数据至实际状态:
- index.md: 18 crate / 76 迁移 / 44 实体 / 77k 行 / 409 提交
- erp-health.md: 44 实体 / 21 handler / 22 权限 / 25 事件 / 6 消费者
- erp-server.md: 9 后台任务 / RLS 中间件栈
- architecture.md: 新增 erp-ai/dialysis 到依赖图 / 测试覆盖表
- testing.md: 225 单元 + 159 集成 / 4 模块零测试警告
- database.md: 76 迁移 / RLS+哈希链+盲索引+Dead Letter
- erp-core.md: PiiCrypto 加密体系 / EventBus 完整描述
- frontend.md: 163 文件 / 5 store / 10 API 文件
- CLAUDE.md: 新增 health/ai/dialysis/assessment scope

头脑风暴 4 个议题决策:
- dialysis: 接入激活
- 测试: 按风险排序(workflow > ai > message > config)
- AI: 数据桥接优先
- 路线图: AI 驱动 3 个月 5 Phase
This commit is contained in:
iven
2026-04-28 14:53:04 +08:00
parent ac1033dbaf
commit 75cd305996
10 changed files with 359 additions and 91 deletions

View File

@@ -0,0 +1,166 @@
# HMS 系统全景梳理与多专家头脑风暴
> 日期: 2026-04-28 | 参与者: iven, Claude (多专家角色)
## 背景
系统经过快速迭代代码库规模已显著增长18 crate, 77k 行 Rust, 163 前端文件, 409 次提交。wiki 数据严重滞后于实际状态。本次全面梳理后召开多专家头脑风暴,确定下一阶段方向。
## 系统现状全景
### 关键数据(实际值 vs 之前 wiki 值)
| 指标 | wiki 更新前 | 实际值 |
|------|------------|--------|
| Rust crate | 15 | **18** |
| 数据库迁移 | 72 | **76** |
| erp-health 实体 | 34 | **44** |
| Web 前端文件 | 133 | **163** |
| Rust 代码行 | ~63k | **~77k** |
| Git 提交 | 301 | **409** |
| 后端测试 | 119 | **384**225 单元 + 159 集成) |
### 架构优势
1. 模块化设计优秀 — ErpModule trait + 拓扑排序 + 依赖注入
2. 事件驱动完整 — EventBus + Outbox + LISTEN/NOTIFY + 幂等消费 + Dead Letter
3. 安全体系完善 — PII 加密(KEK/DEK) + HMAC 盲索引 + RLS + 审计哈希链
4. 健康模块业务域覆盖全面 — 44 实体覆盖患者/体征/预约/随访/咨询/告警/积分/透析等
### 主要风险
1. **P1**: AI 模块使用 placeholder 数据HealthDataProviderImpl 全部 stub
2. **P1**: erp-dialysis 已拆分但 erp-server 未注册激活
3. **P2**: 4 个核心模块config/message/workflow/ai零单元测试
4. **P2**: i18n 未实现,所有前端文本硬编码中文
## 议题 Aerp-dialysis 模块归属决策
### 现状审计
- erp-dialysis crate17 个源文件,~1,490 行 Rust
- 2 个实体dialysis_record, dialysis_prescription
- 完整的 entity/service/handler/dto 四层架构
- DialysisModule 已实现 ErpModule trait
- 4 个权限码(但用了 `health.health-data.list/manage` 而非专用 `health.dialysis.*`
- 依赖仅 erp-core无其他业务依赖
- erp-health 中已无 dialysis 的 entity/service/handler已完全迁出
- erp-health 中残留stats 端点引用透析统计、validation 中引用透析验证
- erp-server 中未注册 DialysisModule
- 集成测试在 erp-server/tests/ 下2 个文件)
### 决策
**接入并激活**。代码已完整拆分,只需在 erp-server 注册 DialysisModule、挂载路由、修复权限码和测试引用。约 2 小时工作量。
### 待办
- [ ] erp-server/Cargo.toml 添加 erp-dialysis 依赖
- [ ] erp-server/main.rs 注册 DialysisModule
- [ ] 修复权限码:使用 `health.dialysis.list/manage` 替代借用的 `health.health-data.*`
- [ ] 迁移集成测试引用
- [ ] 清理 erp-health 中的残留引用
## 议题 B测试覆盖率提升路径
### 现状
| Crate | 单元测试 | 集成测试 | 覆盖评估 |
|-------|---------|---------|---------|
| erp-health | 104 | 159 | 良好 |
| erp-core | 42 | - | 良好 |
| erp-auth | 38 | 3 | 中等 |
| erp-plugin | 31 | 2 | 中等 |
| erp-dialysis | 10 | - | 中等 |
| **erp-config** | **0** | - | 缺失 |
| **erp-message** | **0** | - | 缺失 |
| **erp-workflow** | **0** | - | 缺失 |
| **erp-ai** | **0** | - | 缺失 |
### 决策
**按风险排序**。优先补充业务风险最高、影响面最大的模块。
### 优先级
1. **P0 erp-workflow** — BPMN 引擎是业务核心parser + executor + expression evaluator 零测试
2. **P1 erp-ai** — AI 输入脱敏 + Prompt 模板注入风险高
3. **P2 erp-message** — SSE 推送 + 事件消费者影响通知可靠性
4. **P3 erp-config** — CRUD 为主,风险最低
## 议题 CAI 集成破局
### 现状
- erp-ai 4 个 SSE 分析端点lab_report, trends, checkup_plan, report_summary全部使用 placeholder 数据
- HealthDataProviderImpl 4 个方法全部 stub
- HealthDataProvider trait 定义在 erp-core桥接实现放在 erp-health/src/health_provider_impl.rs
- AI 模块依赖 erp-health 但无法获取真实数据
### 决策
**数据桥接优先**。先实现 HealthDataProvider trait 的 4 个方法,从真实数据替换 placeholder。
### 数据桥接方向
1. **化验单解读** (lab_report) — 查询患者的 lab_report + vital_signs构造结构化输入给 Claude
2. **趋势分析** (trends) — 查询时间序列体征数据vital_signs + vital_signs_hourly生成趋势描述
3. **体检方案** (checkup_plan) — 查询患者基本信息 + 诊断 + 体征,生成个性化体检建议
4. **报告摘要** (report_summary) — 查询健康档案 + 化验 + 诊断,生成综合健康报告
### 安全要求
- AI 输入必须经过 sanitization 模块脱敏
- AI 输出不可直接存入数据库,必须经过审核流程
- 患者数据跨模块传输通过 trait 接口,不直接依赖
## 议题 D3 个月产品路线图
### 决策
**AI 驱动路线**。以 AI 数据桥接为核心主线,其他工作围绕它展开。
### Phase 1基础准备第 1-2 周)
- 激活 erp-dialysis 模块2 小时)
- 补充 erp-workflow 单元测试P0
- wiki 全面更新(已完成)
### Phase 2AI 数据桥接(第 3-6 周)
- 实现 HealthDataProviderImpl 4 个方法
- 替换所有 placeholder 数据为真实患者数据
- 补充 erp-ai 单元测试Mock Claude API
- AI 输入/输出安全脱敏完善
### Phase 3前端 AI 体验(第 7-8 周)
- AI 分析页面交互优化(流式响应 UI
- 化验单解读结果展示组件
- 趋势图表 + AI 解读联动
### Phase 4小程序医护端第 9-10 周)
- 医护端工作台完善
- 患者列表/详情/报告查看优化
- 随访管理流程打通
### Phase 5安全加固第 11-12 周)
- 补充 erp-message 单元测试
- RLS 全面验证(多租户隔离测试)
- 安全扫描 + 修复
## 结论
4 个议题均已达成决策:
1. **dialysis** → 接入激活2 小时工作量)
2. **测试** → 按风险排序workflow > ai > message > config
3. **AI** → 数据桥接优先,实现 HealthDataProvider 4 个方法
4. **路线图** → AI 驱动路线3 个月分 5 个 Phase
## 产出物
- wiki 9 个文件更新index/erp-health/erp-server/architecture/testing/database/frontend/erp-core + CLAUDE.md scope 表)
- 本讨论记录
- 后续:按路线图分阶段执行