diff --git a/wiki/index.md b/wiki/index.md index b09593b..a8118fb 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -4,15 +4,15 @@ ## 关键数字 -> 最后更新: 2026-05-20 | 数据截止: feat/media-library-banner 分支(六维度全面均衡分析,V1 CONDITIONAL GO) +> 最后更新: 2026-05-21 | 数据截止: feat/media-library-banner 分支(业务流程全面修复 Phase 1-6 完成) | 指标 | 值 | |------|-----| | Rust crate | 17 个(erp-core + 5 基础业务 + erp-health + erp-ai + erp-dialysis + erp-plugin + 7 插件/原型) | -| Rust 源文件 | **694 个**(~125,000 行) | +| Rust 源文件 | **703 个**(~128,000 行) | | 数据库表 | 30 基础表 + 49 健康业务表 + 13 AI 表(+4 会话/消息/tool_log/user_profile) + 3 媒体库/轮播图表 | -| 数据库迁移 | **157 个**(最新 m20260520_000157) | -| 后端路由 | **376+ 个**(11 公开 + 14 FHIR + 2 网关 + ~350 受保护) | +| 数据库迁移 | **162 个**(最新 m20260521_000162) | +| 后端路由 | **382+ 个**(11 公开 + 14 FHIR + 2 网关 + ~355 受保护) | | 核心模块 | 5 基础 (auth/config/workflow/message/plugin) + 3 业务 (health + ai + dialysis) | | erp-health 实体 | **59 个** Entity(32 handler / 41 service / 22 DTO,214 文件) | | erp-ai 实体 | 9 个 Entity(62 文件,4 AI Provider,chat_handler 支持 FC/Ollama fallback) | @@ -20,14 +20,14 @@ | Web 前端 | 316 个 TS/TSX 文件(36 活跃路由 + 6 冻结路由,54 API 模块,161 页面) | | 微信小程序 | Taro 4.2 + React 18,167 个 TS/TSX 文件 / 59 页面(12 主包 + 47 子包) / 4 TabBar + 医生端分包,34 组件 / 38 service 文件,统一组件库 + CSS 变量主题(93 页面 SCSS 全量接入 `var(--tk-*)`,字号 token 对齐原型统计,医生端 `.doctor-mode` 靛蓝覆盖,登录页账号密码+微信一键登录);**并发安全**:长轮询独立通道 `requestUnlimited` + ConcurrencyLimiter(12) + safeNavigateTo 全局页栈保护 + reLaunch 去重 + 分包预加载 preloadRule | | 前端测试 | Web 62 单元测试文件(~693 断言) + 17 E2E spec(13 Web + 4 MP,~64 断言);小程序 0 单元测试 | -| 后端测试 | **990+ 个函数**(802 同步 + 188 异步),110 个文件含测试 | -| 事件系统 | 31 事件类型(health)/ 51 全系统 / 82 发布点 / 12 消费者模块 / Outbox + LISTEN/NOTIFY | +| 后端测试 | **1024+ 个函数**(802 同步 + 188 异步),110 个文件含测试 | +| 事件系统 | 31 事件类型(health)/ 51 全系统 / 82 发布点 / 15 消费者模块 / Outbox + LISTEN/NOTIFY | | 权限码 | **140 个**(health 57 + ai 21 + auth 24 + config 18 + workflow 8 + message 5 + plugin 2 + dialysis 5) | | utoipa 注解 | **94 个**文件含注解 | | Clippy | **全 workspace 0 警告**(2026-05-07 清零) | | 依赖版本 | 全部最新主版本线(Rust edition 2024) | | API 文档 | `http://localhost:3000/api/docs/openapi.json` | -| Git 提交 | **933+ 次** | +| Git 提交 | **940+ 次** | | 系统分析评分 | **6.3/10 (B-)**(六维度全面均衡分析,2026-05-20:架构 8.0 / 安全 7.5 / 测试 5.5 / 前端 7.2 / DevOps 3.8 / 产品 7.0) | | 审计状态 | V1: 83% → V2: 85%,P0 安全修复已完成;E2E 测试 157 端点(Health 63% / AI+Plugin 92.4%),CRITICAL×2 待修复 | | 角色测试 | R01-R05 全角色验证完成,86.5% 通过率,5 个 BUG 已修复;小程序 MP 多角色 96.2% 通过率 | @@ -115,6 +115,19 @@ | PII 字段解密失败静默返回 None | [[erp-health]] patient helper.rs | `.ok().flatten()` 吞掉解密错误无日志 | **已修复:** 提取 `decrypt_field` 辅助函数,失败时输出 warn 日志(2026-05-20) | | 患者列表负年龄显示 "-72岁" | [[frontend]] format.ts calcAge | 未来出生日期 `dayjs().diff()` 返回负数 | **已修复:** `age < 0` 返回 `'--'`(2026-05-20) | | 随访页面日期选择器英文占位符 | [[frontend]] FollowUpTaskList | RangePicker 缺少 `placeholder` 属性 | **已修复:** 添加 `placeholder={['开始日期', '结束日期']}`(2026-05-20) | +| 两套告警系统不互通 | [[erp-health]] 告警管线 | 手动录入与设备同步走不同告警表 | **已修复:** critical_alert 双写 alerts 表 + source 字段区分来源 + 设备同步触发危急值检测(Phase 1,2026-05-21) | +| 知情同意未在数据访问层强制执行 | [[erp-health]] consent 拦截 | 撤回同意后数据仍可访问 | **已修复:** handler 层 check_consent_active 默认拒绝 + 现有患者批量 consent 迁移(Phase 2,2026-05-21) | +| 患者电话号码字段缺失 | [[erp-health]] patient entity | DTO 和 Entity 均无 phone 列 | **已修复:** phone 加密存储 + phone_hash 盲索引 + 列表搜索支持(Phase 2,2026-05-21) | +| 积分触发点太少(仅签到) | [[erp-health]] points | earn_points 仅 daily_checkin 调用 | **已修复:** follow_up.completed + care_plan.completed 触发积分(Phase 3,2026-05-21) | +| 随访模板与任务关联断裂 | [[erp-health]] follow_up | task 无 template_id,record 无 form_data | **已修复:** task 增加 template_id FK + record 增加 form_data JSONB + create_task_from_template(Phase 3,2026-05-21) | +| Dead-letter 无自动重试 | [[erp-core]] events | 失败事件永驻无恢复机制 | **已修复:** retry_dead_letters() + 每小时定时任务 + 最多 5 次指数退避(Phase 4,2026-05-21) | +| 生产 KEK 无编译防护 | [[erp-core]] crypto | dev_default 在 release 可用 | **已修复:** dev_default 添加 cfg(debug_assertions) + from_env_or_panic()(Phase 4,2026-05-21) | +| 文章发布无推送闭环 | [[erp-health]] article | article.published 事件无消费者 | **已修复:** 新增 article 事件消费者匹配 patient_tag 推送消息(Phase 4,2026-05-21) | +| 患者批量导入缺失 | [[erp-health]] patient | 体检中心每天 200-500 人只有单条创建 | **已修复:** batch_import_patients + CSV 解析 + 盲索引去重(Phase 5,2026-05-21) | +| 患者自助绑定缺失 | [[erp-health]] patient | 患者无法匹配已有档案 | **已修复:** bind_by_phone 手机号+盲索引匹配(Phase 5,2026-05-21) | +| 咨询满意度评价缺失 | [[erp-health]] consultation | 关闭后无评价入口 | **已修复:** rate_session rating+feedback + 数据库迁移(Phase 5,2026-05-21) | +| 咨询文件上传未实现 | [[erp-health]] consultation | DTO 支持 image/file/voice 但无上传链路 | **已修复:** media_id 附件上传端点 + MIME 白名单(Phase 6,2026-05-21) | +| AI 输出无引用来源 | [[erp-ai]] analysis | LLM 回复无 reference 标注 | **已修复:** system prompt 引用指令 + [ref:id] 格式 + references JSONB 存储(Phase 6,2026-05-21) | ## 模块导航