- T40 UI 审计计划和结果文档(docs/qa/) - wiki 更新:miniprogram 设计系统合规审计记录 + index 关键数字更新 - 审计 V2 完整报告(docs/audits/v2/) - 讨论记录文档(docs/discussions/) - 设计规格和实施计划(docs/superpowers/) - 角色测试计划和结果(docs/qa/role-test-*) - Docker 生产部署配置
155 lines
5.7 KiB
Markdown
155 lines
5.7 KiB
Markdown
# V2 审计基线刷新 — 2026-05-04
|
||
|
||
> 日期: 2026-05-04 | Git HEAD: 95fa09c | 提交数: 623
|
||
|
||
## 一、代码库规模
|
||
|
||
| 维度 | V1 (2026-04-30) | V2 (2026-05-04) | 增量 |
|
||
|------|-----------------|-----------------|------|
|
||
| Rust 源文件 | 462 | **551** | +89 (+19%) |
|
||
| Rust 总行数 | ~77,000 | **98,501** | +21,501 (+28%) |
|
||
| Web TS/TSX | 225 | **264** | +39 (+17%) |
|
||
| MP TS/TSX | 182 | **116** | *(统计口径不同)* |
|
||
| Git 提交 | 409 | **623** | +214 |
|
||
| 迁移文件 | 96 | **115** | +19 (+20%) |
|
||
|
||
## 二、Entity 统计(97 个)
|
||
|
||
| Crate | Entity 数 | V1 数 | 增量 |
|
||
|-------|----------|-------|------|
|
||
| erp-health | **55** | 46 | +9 |
|
||
| erp-auth | 12 | 11 | +1 |
|
||
| erp-plugin | 5 | 4 | +1 |
|
||
| erp-config | 6 | 6 | 0 |
|
||
| erp-workflow | 5 | 5 | 0 |
|
||
| erp-core | 4 | 4 | 0 |
|
||
| erp-ai | **5** | 3 | +2 (suggestion, risk_threshold) |
|
||
| erp-message | 3 | 3 | 0 |
|
||
| erp-dialysis | **2** | 1 | +1 |
|
||
| **合计** | **97** | 83 | **+14** |
|
||
|
||
## 三、Handler 统计(54 文件)
|
||
|
||
| Crate | Handler 数 |
|
||
|-------|----------|
|
||
| erp-health | **29** |
|
||
| erp-config | 6 |
|
||
| erp-auth | 5 |
|
||
| erp-message | 4 |
|
||
| erp-dialysis | 3 |
|
||
| erp-plugin | 3 |
|
||
| erp-workflow | 3 |
|
||
| erp-ai | 1 |
|
||
|
||
## 四、路由统计
|
||
|
||
| Crate | 公开路由 | 受保护路由 | 特殊认证 | 合计 |
|
||
|-------|---------|-----------|---------|------|
|
||
| erp-health | 1 | 145 | FHIR 18 + OAuth 1 + 网关 2 | **167** |
|
||
| erp-auth | 4 | 20 | - | **24** |
|
||
| erp-plugin | 0 | 31 | - | **31** |
|
||
| erp-ai | 0 | 17 | - | **17** |
|
||
| erp-config | 1 | 16 | - | **17** |
|
||
| erp-workflow | 0 | 14 | - | **14** |
|
||
| erp-message | 0 | 9 | - | **9** |
|
||
| erp-dialysis | 0 | 7 | - | **7** |
|
||
| erp-server | 3 | 4 | - | **7** |
|
||
| **合计** | **9** | **263** | **21** | **293** |
|
||
|
||
> 注:V1 计为 328 路由,V2 计为 293 `.route()` 调用。差异可能因 V1 含中间件链中隐式注册的路由或统计口径不同。
|
||
|
||
### 新增路由亮点
|
||
- **FHIR R4**: 18 条路由(OAuth client_credentials 认证)
|
||
- **BLE 网关**: 2 条路由(API Key 认证)
|
||
- **班次管理**: 新增 handler(13 次权限检查)
|
||
- **护理计划**: 新增 handler(14 次权限检查)
|
||
- **行动收件箱**: 新增 handler
|
||
- **日聚合**: 新增 handler
|
||
|
||
## 五、事件系统
|
||
|
||
| 指标 | V1 | V2 |
|
||
|------|-----|-----|
|
||
| 事件类型总数 | 25 | **51** |
|
||
| OK(完整链路) | 11 | **24** |
|
||
| FIRE-AND-FORGET | 14 | **25** |
|
||
| PENDING | 2 | **2** |
|
||
|
||
**PENDING 事件**: `patient.verified`、`patient.deceased`
|
||
|
||
## 六、DTO 与权限
|
||
|
||
| 指标 | V1 | V2 |
|
||
|------|-----|-----|
|
||
| erp-health DTO 文件 | 23 | **19** (*拆分后文件减少但覆盖更全*) |
|
||
| PermissionDescriptor | 50 | **53** |
|
||
| require_permission 调用 | ~170 | **262** |
|
||
|
||
## 七、测试统计
|
||
|
||
| 类别 | V1 | V2 | 变化 |
|
||
|------|-----|-----|------|
|
||
| 后端测试函数 | 772 | 待 `cargo test` | -- |
|
||
| Web 测试文件 | 10 | **62** | +520% |
|
||
| MP 测试文件 | 0 | **0** | 未变 |
|
||
| E2E spec | 5 | **0** | *(待确认)* |
|
||
|
||
## 八、V1 问题修复验证
|
||
|
||
| ID | 问题 | 状态 | 验证详情 |
|
||
|----|------|------|---------|
|
||
| C1 | 晚间血压丢失 | **PASS** | V1 已确认修复 |
|
||
| C2 | 告警权限拼写 | **PASS** | `health.alerts.manage` 前后端一致 |
|
||
| H1 | 透析管理 MP | **PASS** | 7 个 MP 页面(患者端 4 + 医生端 3)+ 2 个 service |
|
||
| H2 | 知情同意 MP | **PASS** | consents 页面 + consent service |
|
||
| H3 | 日志补全 | **PASS** | 17 个 service 文件 / 116 处 tracing 调用(V1: 11 处) |
|
||
| M1 | 权限声明 | **PASS** | 53 个 PermissionDescriptor(V1: 50) |
|
||
| M3 | 体温/血氧 MP | **PASS** | BLE + 手动录入双通道映射完整 |
|
||
| M4 | SSE 指数退避 | **PASS** | V1 已确认修复 |
|
||
| M5 | erp-ai 集成测试 | **PASS** | V1 已确认修复 |
|
||
| M6 | Web 前端测试 | **大幅改善** | 62 文件(V1: 10) |
|
||
| M7 | MP 测试 | **未修复** | 仍为 0 |
|
||
| M8 | 健康记录/诊断 MP | **PASS** | 新增页面 |
|
||
| L1 | 孤立事件 | **PASS** | V1 已确认修复 |
|
||
| L5 | unwrap() 风险 | **PASS** | V1 已确认修复 |
|
||
| L12 | 编译警告 | **需关注** | 9 文件 / 18 处 `#[allow(...)]` |
|
||
|
||
## 九、V1 后新增迁移(19 个)
|
||
|
||
| 迁移文件 | 内容 |
|
||
|----------|------|
|
||
| m20260501_000097 | 菜单权限种子 |
|
||
| m20260501_000098 | AI 建议表 |
|
||
| m20260501_000099 | AI 风险阈值表 |
|
||
| m20260501_000100 | 行动收件箱菜单种子 |
|
||
| m20260502_000101 | 健康字典种子 |
|
||
| m20260502_000102 | 告警阈值种子 |
|
||
| m20260502_000103 | 随访模板菜单种子 |
|
||
| m20260504_000104 | 生命体征日汇总表 |
|
||
| m20260504_000105 | 患者设备增加 status |
|
||
| m20260504_000106 | API 客户端表 |
|
||
| m20260504_000107 | 文章标签加租户+软删除 |
|
||
| m20260504_000108 | 小时体征加软删除 |
|
||
| m20260504_000109 | 补充缺失外键约束 |
|
||
| m20260504_000110 | 危急值版本字段 i32 |
|
||
| m20260505_000111 | 护理计划表 |
|
||
| m20260505_000112 | 班次管理表 |
|
||
| m20260505_000113 | BLE 网关表 |
|
||
| m20260505_000114 | 透析记录关联工作流 |
|
||
| m20260505_000115 | 家庭成员健康代理 |
|
||
|
||
## 十、关键发现
|
||
|
||
### 正面变化
|
||
1. **代码量大幅增长**: Rust +28% (21,501 行),Phase 0+1 新增大量功能代码
|
||
2. **V1 问题全部修复**: 15 项中 14 项已修复/改善,仅 M7 (MP 测试) 未变
|
||
3. **日志大幅改善**: 从 11 处 → 116 处 tracing 调用,覆盖率从 30% → 预计 >80%
|
||
4. **权限码覆盖提升**: 从 50 → 53 个 PermissionDescriptor,262 次权限检查调用
|
||
5. **Web 测试激增**: 从 10 → 62 文件
|
||
|
||
### 关注点
|
||
1. **18 处 `#[allow(...)]` 标注**: 9 个文件中存在,部分可能是合理抑制,需 Phase 4 逐一审查
|
||
2. **路由计数差异**: V2 统计 293 vs V1 的 328,需 Phase 2 统一对齐
|
||
3. **MP 测试仍为 0**: 40+ 页面无自动化测试
|
||
4. **2 个 PENDING 事件**: `patient.verified`、`patient.deceased` 未实现
|