# HMS 技术债看板 > 最后更新: 2026-05-13 | 分支: feat/media-library-banner ## 度量总览 | 指标 | 当前值 | 目标 | 状态 | |------|--------|------|------| | Fix 率 | 22.8% (177/776) | < 15% | 🟡 需改善 | | 后端测试 | 999 个函数 | 维持 | 🟢 健康 | | 前端测试覆盖 | 62/235 文件 (26%) | > 40% | 🟡 需改善 | | 小程序测试 | 9 文件 / 125 源文件 (7%) | > 80% | 🔴 真空 | | utoipa 注解 | Health 22/31, AI 0/19 | > 80% | 🔴 缺失 | | 大文件 (>800 行) | 15 个 | < 5 个 | 🟡 需拆分 | | production unwrap | 43 处 | < 10 | 🟡 需清理 | | TODO/FIXME | 5 处 | 清零 | 🟢 可控 | | 前端 any 类型 | 1 处 | 0 | 🟢 可控 | | console.log | 0 处 | 0 | 🟢 清洁 | ## 高利息债务(修复频率 × 影响范围) ### TD-1: utoipa 注解覆盖率 33% [利息: 高] - **当前**: 22/64 handler 文件有 utoipa 注解,AI 模块 0/19 - **影响**: OpenAPI 文档不完整,前端无法自动生成 API 客户端 - **修复成本**: 2-3d - **计划**: P2-2 openapi-typescript 自动生成时一并补全 ### TD-2: 大文件未拆分 [利息: 中] | 文件 | 行数 | 模块 | 建议 | |------|------|------|------| | data_service.rs | 1907 | plugin | 按实体拆分 | | manifest.rs | 1809 | plugin | 解析/验证/序列化分离 | | dynamic_table.rs | 1758 | plugin | SQL 构建/执行分离 | | module.rs | 1220 | message | 路由注册独立文件 | | service.rs | 1136 | plugin | 按功能拆分 | | data_handler.rs | 1121 | plugin | CRUD/查询/导入分离 | | action_inbox_service.rs | 1104 | health | 查询/聚合/通知分离 | | follow_up_service.rs | 1000 | health | 任务/记录/模板分离 | | main.rs | 981 | server | 路由注册独立模块 | | validation.rs | 916 | health | 按实体类型拆分 | | consultation_service.rs | 859 | health | 会话/消息/统计分离 | | points_service/event.rs | 858 | health | 事件类型拆分 | | fhir/handler.rs | 824 | health | 按资源类型拆分 | ### TD-3: erp-plugin 巨石模块 [利息: 中] - **当前**: 7 个文件 > 800 行,总 189 文件 - **影响**: 编译时间长、认知负担大 - **修复成本**: 3-5d - **优先级**: 低(冻结功能,暂不活跃开发) ### TD-4: production unwrap 43 处 [利息: 低] - **当前**: 从 514 降至 43,剩余多为安全解包(如 `get()` 已确认存在) - **影响**: 潜在 panic 风险 - **修复成本**: 1d - **优先级**: 低(Clippy 0 警告,剩余均为安全场景) ## 已偿还的债务 | 债务 | 偿还日期 | 投入 | |------|---------|------| | event.rs 2871 行 | 2026-05-09 | 拆分为 13 个领域文件 | | module.rs 1595 行 | 2026-05-09 | 拆分为 13 个子模块 | | Clippy 警告 | 2026-05-07 | 全 workspace 0 警告 | | production unwrap 514→43 | 2026-05-07 | 批量替换为 expect/unwrap_or_default | | 权限码 4 处手动同步 | 2026-05-13 | CI 检查脚本 + seed 补全 | | 前后端 API 路径不一致 | 2026-05-13 | CI 检查脚本归一化 | | 小程序 0 测试 | 2026-05-13 | service 层 75 断言覆盖 | ## 冻结模块看板 | 模块 | 路由 | 后端 | 前端 | 冻结日期 | 超时日期 | 状态 | |------|------|------|------|---------|---------|------| | 护理计划 | /health/care-plans | Entity+Service+Handler 已有 | 列表+详情页已有 | 2026-05-05 | 2026-05-19 | 待决策 | | 班次管理 | /health/shifts | Entity+Service+Handler 已有 | 列表+详情页已有 | 2026-05-05 | 2026-05-19 | 待决策 | | 家庭代理 | /health/family-proxy | Entity+Service+Handler 已有 | 页面已有 | 2026-05-05 | 2026-05-19 | 待决策 | | 药物管理 | /health/medications | 部分实现 | 页面已有 | 2026-05-05 | 2026-05-19 | 待决策 | | 透析管理 | /health/dialysis | Entity+Service 已有 | 列表页已有 | 2026-05-05 | 2026-05-19 | 待决策 | | 排班日历 | /health/schedules | 复用 appointment | 日历页已有 | 2026-05-05 | 2026-05-19 | 待决策 | ### 冻结策略 1. **超时规则**: 冻结超过 14 天自动触发决策评审 2. **决策选项**: (a) 解冻并完成 (b) 继续冻结并设新截止日 (c) 移除前端页面和菜单 3. **当前**: 全部 6 个模块冻结于 2026-05-05,超时日期 2026-05-19 4. **建议**: 优先解冻"透析管理"(已有完整后端)和"班次管理"(已有完整后端+前端) ## 偿还优先级排序 | 优先级 | 债务 | 预计投入 | 预期效果 | |--------|------|---------|---------| | 1 | 补全 utoipa 注解 (AI 模块) | 1d | OpenAPI 文档完整 | | 2 | 拆分 main.rs (981 行) | 0.5d | server 模块可维护性 | | 3 | 拆分 validation.rs (916 行) | 0.5d | health 模块可读性 | | 4 | 清理剩余 43 处 unwrap | 1d | 消除潜在 panic | | 5 | 拆分 service 大文件 (4 个 > 900 行) | 2d | health 模块可维护性 |