Files
hms/docs/audits/00-baseline-snapshot.md
iven d712ad78c3 docs: 审计报告(8 份) + 讨论记录(4 份)
审计报告: 基线快照/功能清单/后端完整性/事件系统/参数配置/
差距模式/错误处理/测试覆盖/审计总结报告
讨论记录: 设备管线/端到端测试/三端审计/工作台重构
2026-05-03 19:32:15 +08:00

110 lines
3.8 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.
# HMS 功能审计 — Phase 0: 基线快照
> 日期: 2026-04-30 | 审计范围: 全系统
## 环境信息
| 项目 | 值 |
|------|-----|
| Git HEAD | `84fafb0bc5bf3d742f4136c78288a3d06678fc4d` |
| 最新提交 | `fix(web+health): 修复咨询轮询 temp ID 400 + 健康数据统计 500` |
| 总提交数 | 409 |
## 编译状态
| 指标 | 值 |
|------|-----|
| `cargo check --workspace` | **通过**(有警告) |
| 编译警告总数 | 40 个 |
| 受影响 crate | erp-core(1), erp-plugin(11), erp-health(11), erp-ai(6), erp-dialysis(1), erp-workflow(2), erp-server(1) |
### 警告分类
**未使用字段9 处)**
| 文件 | 字段 | 状态 |
|------|------|------|
| erp-plugin `host.rs` | `chk`×2, `tenant_id`, `user_id` | #[allow(dead_code)] 已抑制 |
| erp-health 多处 | `message`, `usage`, `input_tokens`, `output_tokens`, `check_result`, `total` | 编译器警告 |
| erp-server `analytics.rs` | `timestamp` | 编译器警告 |
| erp-health | `RefRow` struct 从未构造 | 编译器警告 |
**未使用导入18 处)**:分布在 erp-health(7)、erp-plugin(3)、erp-ai(2)、erp-workflow(2)、erp-dialysis(1)、erp-core(1)。
**未使用变量7 处)**`user_id`, `total`, `tenant_id`, `plugin_resp`, `plugin_id`, `final_nodes`, `entity`
## 测试状态
### 总览
| 指标 | 值 |
|------|-----|
| 测试总数 | **772 个函数** |
| 通过 | **75397.5%** |
| 失败 | **91.2%** |
| 跳过 | 0 |
### 失败测试(全部因 `blind_indexes` 表缺失)
| 测试 | 文件 |
|------|------|
| `test_create_patient` | `health_patient_tests.rs` |
| `test_patient_pii_encrypted` | `health_patient_tests.rs` |
| `test_dialysis_create_without_patient_returns_error` | `health_dialysis_tests.rs` |
| `test_cross_tenant_data_integrity` | `health_pii_encryption_tests.rs` |
| `test_patient_detail_returns_decrypted_fields` | `health_pii_encryption_tests.rs` |
| `test_patient_hmac_search_by_phone` | `health_pii_encryption_tests.rs` |
| `test_patient_list_hides_tier1_fields` | `health_pii_encryption_tests.rs` |
| `test_patient_tier1_fields_encrypted_in_db` | `health_pii_encryption_tests.rs` |
| `test_tenant_isolation_encrypted_patient` | `health_pii_encryption_tests.rs` |
**根因**:测试数据库缺少 `blind_indexes` 表(迁移未执行),非代码逻辑错误。
### 模块测试分布
| Crate | 单元测试 | 集成测试 | 总计 | 通过率 |
|-------|---------|---------|------|--------|
| erp-core | 74 | — | 74 | 100% |
| erp-auth | 41 | 3 | 44 | 100% |
| erp-config | 78 | — | 78 | 100% |
| erp-workflow | 63 | 4 | 67 | 100% |
| erp-message | 72 | — | 72 | 100% |
| erp-health | 159 | 144 | 303 | 97% |
| erp-ai | 36 | — | 36 | 100% |
| erp-dialysis | 10 | 15 | 25 | 93% |
| erp-plugin | 78 | 2 | 80 | 100% |
| erp-server | — | 153 | 153 | 94% |
| **合计** | **611** | **153** | **772** | **97.5%** |
## 路由统计
| 模块 | 路由数 |
|------|--------|
| erp-health | 169 |
| erp-plugin | 38 |
| erp-config | 26 |
| erp-auth | 33含 4 个公开路由) |
| erp-workflow | 17 |
| erp-ai | 12 |
| erp-dialysis | 12 |
| erp-message | 13 |
| erp-server | 8含 4 个公开路由) |
| **合计** | **328**8 个公开 + 320 个受保护) |
## 代码规模
| 维度 | 值 |
|------|-----|
| Rust 源文件 | 462 个 |
| Rust 代码行数 | ~77,000 行 |
| Web 前端文件 | 163 个 |
| 小程序文件 | 125 个 |
| 数据库迁移 | 96 个 |
| Rust crate | 18 个 |
## 基线结论
1. **系统整体健康**编译通过97.5% 测试通过
2. **单一阻塞问题**9 个测试因 `blind_indexes` 表缺失失败,需执行迁移
3. **技术债务低**:仅 40 个编译警告(多为未使用导入/变量),无 `unimplemented!``todo!`
4. **规模庞大**233 个后端路由、40 个前端页面,审计工作量较大