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 |
家庭成员健康代理 |
十、关键发现
正面变化
- 代码量大幅增长: Rust +28% (21,501 行),Phase 0+1 新增大量功能代码
- V1 问题全部修复: 15 项中 14 项已修复/改善,仅 M7 (MP 测试) 未变
- 日志大幅改善: 从 11 处 → 116 处 tracing 调用,覆盖率从 30% → 预计 >80%
- 权限码覆盖提升: 从 50 → 53 个 PermissionDescriptor,262 次权限检查调用
- Web 测试激增: 从 10 → 62 文件
关注点
- 18 处
#[allow(...)] 标注: 9 个文件中存在,部分可能是合理抑制,需 Phase 4 逐一审查
- 路由计数差异: V2 统计 293 vs V1 的 328,需 Phase 2 统一对齐
- MP 测试仍为 0: 40+ 页面无自动化测试
- 2 个 PENDING 事件:
patient.verified、patient.deceased 未实现