docs(wiki): 全量 wiki 更新 — C1 晚间血压已修复标记 + 数据校正
- miniprogram.md: 晚间血压 CRITICAL 标记为已修复 - index.md: 症状导航表更新 - architecture/database/erp-core/erp-health/frontend/testing: 同步更新
This commit is contained in:
@@ -101,14 +101,14 @@ hms/
|
||||
|
||||
| 模块 | 状态 | 实体数 | 权限数 | 页面数 | 测试覆盖 |
|
||||
|------|------|--------|--------|--------|---------|
|
||||
| erp-auth | ✅ 完成 | 11 表 | - | 用户/角色/组织 | 38 单元 + 3 集成 |
|
||||
| erp-config | ✅ 完成 | 6 表 | - | 设置/字典/菜单 | ⚠️ 0 测试 |
|
||||
| erp-workflow | ✅ 完成 | 5 表 | - | 工作流管理 | ⚠️ 0 测试 |
|
||||
| erp-message | ✅ 完成 | 3 表 | - | 消息中心 | ⚠️ 0 测试 |
|
||||
| erp-plugin | ✅ 完成 | 4 表 | - | 插件管理/市场 | 31 单元 + 2 集成 |
|
||||
| erp-health | ✅ 完成 | 44 表 | 22 | 25+ 页面 + 11 组件 | 104 单元 + 159 集成 |
|
||||
| erp-ai | 🔄 Phase 1 | 3 表 | - | AI 分析/Prompt/用量 | ⚠️ 0 测试 |
|
||||
| erp-dialysis | 🔄 已拆分 | - | - | - | 10 单元 |
|
||||
| erp-auth | ✅ 完成 | 11 表 | 23(种子数据) | 用户/角色/组织 | 41 单元 + 3 集成 |
|
||||
| erp-config | ✅ 完成 | 6 表 | 18(种子数据) | 设置/字典/菜单 | 78 单元 |
|
||||
| erp-workflow | ✅ 完成 | 5 表 | 8(种子数据) | 工作流管理 | 63 单元 + 4 集成 |
|
||||
| erp-message | ✅ 完成 | 3 表 | 5(种子数据) | 消息中心 | 72 单元 |
|
||||
| erp-plugin | ✅ 完成 | 4 表 | 2(种子数据) | 插件管理/市场 | 78 单元 + 2 集成 |
|
||||
| erp-health | ✅ 完成 | 45 表 | 39 | 25+ 页面 + 11 组件 | 159 单元 + 144 集成 |
|
||||
| erp-ai | 🔄 Phase 1 | 3 表 | 6 | AI 分析/Prompt/用量 | 36 单元 |
|
||||
| erp-dialysis | 🔄 已拆分 | - | 5 | - | 10 单元 + 15 集成 |
|
||||
|
||||
### 技术选型
|
||||
|
||||
@@ -220,10 +220,21 @@ impl ErpModule for AuthModule {
|
||||
⚠️ EventBus 内存 broadcast 需 outbox 持久化保障(已通过后台任务实现)
|
||||
⚠️ 微信登录固定到 default_tenant_id — 多租户场景需设计解析策略
|
||||
|
||||
### 2026-04-30 审计发现
|
||||
|
||||
| 发现 | 严重性 | 说明 |
|
||||
|------|--------|------|
|
||||
| 前端权限码拼写错误 | CRITICAL | `health.alert.manage` → `health.alerts.manage`(缺 s),告警管理按钮永远不显示 |
|
||||
| 56 个基础模块权限码未通过 PermissionDescriptor 声明 | MEDIUM | auth/config/workflow/message/plugin 通过种子数据手动注册,新增易遗漏 |
|
||||
| 14 个事件无业务消费者 | LOW | 发布到 EventBus 但无后端消费者,SSE 推送仍有价值 |
|
||||
| Health service 层运行时日志极缺 | HIGH | 26 个 service 文件仅 11 处 tracing,patient_service(949 行)0 处 |
|
||||
| 基础模块 ErpModule trait 实现度低 | LOW | 5/8 模块使用默认值(auth/config/workflow/message/plugin) |
|
||||
|
||||
## 7. 变更记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计数据更新:模块状态表刷新(772 测试 / 328 路由 / 50 权限码)、审计发现清单 |
|
||||
| 2026-04-26 | 从 CLAUDE.md 迁移:目录结构、模块开发规范(§5)、安全注意事项(§7) |
|
||||
| 2026-04-25 | 全面更新:6 模块已实现状态表、预约 CAS 决策、PII 加密不变量、健康模块集成 |
|
||||
| 2026-04-23 | 重构为 5 节结构,删除 erp-common 引用,精简技术选型表 |
|
||||
|
||||
@@ -24,7 +24,7 @@ tags: [database, seaorm, migration, multi-tenant]
|
||||
| 文件 | 职责 |
|
||||
|------|------|
|
||||
| `crates/erp-server/migration/src/lib.rs` | Migrator 注册所有迁移 |
|
||||
| `crates/erp-server/migration/src/m*.rs` | 76 个迁移文件 |
|
||||
| `crates/erp-server/migration/src/m*.rs` | 96 个迁移文件 |
|
||||
| `crates/erp-core/src/types.rs` | BaseFields 标准字段定义 |
|
||||
|
||||
### 迁移命名规则
|
||||
@@ -34,7 +34,7 @@ m{YYYYMMDD}_{6位序号}_{描述}.rs
|
||||
例: m20260410_000001_create_tenant.rs
|
||||
```
|
||||
|
||||
### 当前表概览(67+ 张)
|
||||
### 当前表概览(70+ 张)
|
||||
|
||||
| 模块 | 表 |
|
||||
|------|-----|
|
||||
@@ -145,6 +145,7 @@ m{YYYYMMDD}_{6位序号}_{描述}.rs
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 更新至 96 迁移,刷新迁移文件数 |
|
||||
| 2026-04-28 | 更新至 76 迁移,新增设备采集/告警/RLS/审计哈希链/盲索引/Dead Letter/透析处方等 19 个迁移 |
|
||||
| 2026-04-26 | 更新至 72 迁移、67+ 表,新增积分商城/透析/诊断/内容管理/线下活动/PII 加密扩展等 22 个迁移 |
|
||||
| 2026-04-25 | 更新至 50 迁移、48 表,新增健康模块迁移(m000042-m000050)和 18 张健康业务表 |
|
||||
|
||||
@@ -104,9 +104,36 @@ ErpModule trait → ModuleRegistry::register() →
|
||||
⚠️ EventBus 当前为内存 broadcast,outbox 持久化通过后台任务实现
|
||||
⚠️ 微信注册路径的 display_name 需调用 `sanitize_string()` 防止 XSS
|
||||
|
||||
### 2026-04-30 审计发现
|
||||
|
||||
**事件系统评分**:
|
||||
|
||||
| 检查项 | 评分 | 说明 |
|
||||
|--------|------|------|
|
||||
| 事件定义完整性 | 95% | 25/27 常量有发布者(2 个 KNOWN 未实现) |
|
||||
| 消费者覆盖率 | 44% | 11/25 事件有活跃消费者 |
|
||||
| Payload 一致性 | 100% | 抽样 5 个全部一致 |
|
||||
| 幂等性保证 | 100% | 所有消费者使用 `is_event_processed` 检查 |
|
||||
| 死信处理 | 100% | 消费失败自动进入 dead_letter_event 表 |
|
||||
|
||||
**错误处理评分**:
|
||||
|
||||
| 检查项 | 评分 | 说明 |
|
||||
|--------|------|------|
|
||||
| 错误变体覆盖 | 95% | 8 AppError + 37 领域错误(HealthError 26 + AiError 11) |
|
||||
| Handler 错误传播 | 100% | 统一 `?` + IntoResponse,无手动 match |
|
||||
| PII 错误安全 | 100% | Internal 错误消息对外隐藏 |
|
||||
| SSE 挂起风险 | 100% | Provider 不可用不会挂起,有完整清理 |
|
||||
| 生产 unwrap() 安全性 | 95% | 2 处中等风险(PluginHost::db + 信号量 acquire) |
|
||||
|
||||
**审计日志**:140 处调用 / 33 文件 / SHA256 哈希链 / 变更快照
|
||||
|
||||
**运行时日志缺口**:health service 层仅 11 处 tracing(26 个文件),运维排查困难
|
||||
|
||||
## 5. 变更记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计结果更新:事件系统 44% 消费者覆盖率 / 错误处理 95% / 审计日志 140 处 / 运行时日志不足 |
|
||||
| 2026-04-25 | 添加 erp-health 集成契约、健康模块事件、sanitize 模块引用 |
|
||||
| 2026-04-23 | 重构为 5 节结构,更新为已完全集成状态 |
|
||||
|
||||
@@ -73,7 +73,7 @@ crates/erp-health/
|
||||
| 积分商城 | points_account, points_rule, points_product, points_order, points_transaction, points_checkin |
|
||||
| 线下活动 | offline_event, offline_event_registration |
|
||||
|
||||
### 权限码(22 个)
|
||||
### 权限码(39 个)
|
||||
|
||||
| 权限码 | 说明 |
|
||||
|--------|------|
|
||||
@@ -87,19 +87,16 @@ crates/erp-health/
|
||||
| `health.articles.review` | 文章审核 |
|
||||
| `health.points.list` / `health.points.manage` | 积分查看/管理 |
|
||||
| `health.device-readings.list` / `health.device-readings.manage` | 设备数据查看/管理 |
|
||||
| `health.devices.list` / `health.devices.manage` | 设备查看/管理 |
|
||||
| `health.alerts.list` / `health.alerts.manage` | 告警查看/管理 |
|
||||
| `health.alert-rules.list` / `health.alert-rules.manage` | 告警规则查看/管理 |
|
||||
|
||||
| 权限码 | 说明 |
|
||||
|--------|------|
|
||||
| `health.patient.list` / `health.patient.manage` | 患者查看/管理 |
|
||||
| `health.health-data.list` / `health.health-data.manage` | 健康数据查看/管理 |
|
||||
| `health.appointment.list` / `health.appointment.manage` | 预约查看/管理 |
|
||||
| `health.follow-up.list` / `health.follow-up.manage` | 随访查看/管理 |
|
||||
| `health.consultation.list` / `health.consultation.manage` | 咨询查看/管理 |
|
||||
| `health.doctor.list` / `health.doctor.manage` | 医护查看/管理 |
|
||||
| `health.articles.list` / `health.articles.manage` | 文章查看/管理 |
|
||||
| `health.articles.review` | 文章审核 |
|
||||
| `health.critical-alerts.list` / `health.critical-alerts.manage` | 危急值告警查看/管理 |
|
||||
| `health.critical-value-thresholds.list` / `health.critical-value-thresholds.manage` | 危急值阈值查看/管理 |
|
||||
| `health.follow-up-templates.list` / `health.follow-up-templates.manage` | 随访模板查看/管理 |
|
||||
| `health.daily-monitoring.list` / `health.daily-monitoring.manage` | 日常监测查看/管理 |
|
||||
| `health.consent.list` / `health.consent.manage` | 知情同意查看/管理 |
|
||||
| `health.medication-records.list` / `health.medication-records.manage` | 用药记录查看/管理 |
|
||||
| `health.medication-reminders.list` / `health.medication-reminders.manage` | 用药提醒查看/管理 |
|
||||
|
||||
### 集成契约
|
||||
|
||||
@@ -236,6 +233,34 @@ draft → pending_review → published → draft (撤回)
|
||||
| 健康趋势图 ECharts | P1 | 小程序已有 echarts 集成,Web 端待接入 |
|
||||
| 咨询导出 Excel | P2 | 后端已有 `rust_xlsxwriter` 依赖,导出端点已实现 |
|
||||
|
||||
### 2026-04-30 审计发现
|
||||
|
||||
**功能域评分**(审计报告 8 个域):
|
||||
|
||||
| 域 | 评分 | 关键问题 |
|
||||
|----|------|---------|
|
||||
| 患者管理 | 93% | 健康摘要仅 MP,家庭医生管理仅 Web |
|
||||
| 健康数据 | 85% | 小程序丢失晚间血压/体温/血氧字段 |
|
||||
| 预约管理 | 95% | Web/MP 基本对齐 |
|
||||
| 随访管理 | 88% | MP 仅列表+创建 |
|
||||
| 咨询管理 | 94% | 高度对齐 |
|
||||
| 内容管理 | 86% | MP 仅只读 published 文章 |
|
||||
| 积分商城 | 90% | 角色分叉正常 |
|
||||
| 告警系统 | 87% | 前端权限码拼写错误(`alert` vs `alerts`) |
|
||||
|
||||
**关键审计发现**:
|
||||
|
||||
| 发现 | 严重性 | 说明 |
|
||||
|------|--------|------|
|
||||
| 告警管理按钮不显示 | CRITICAL | 前端 `health.alert.manage` 缺 s,应为 `health.alerts.manage` |
|
||||
| 小程序晚间血压丢失 | CRITICAL | indicator_type 固定映射 `*_morning`,`*_evening` 从未写入 |
|
||||
| 小程序透析管理缺失 | HIGH | 后端 12 路由完整,小程序 0 入口 |
|
||||
| 小程序知情同意缺失 | HIGH | 后端完整,小程序 0 入口 |
|
||||
| 运行时日志不足 | HIGH | 26 个 service 仅 11 处 tracing |
|
||||
| 14 事件无消费者 | LOW | 发布到 EventBus,SSE 推送仍有价值 |
|
||||
| DTO 覆盖率 | 100% | 105 个 DTO 完整覆盖 23 个 handler |
|
||||
| 调用链连通性 | 100% | Handler→Service→Entity 全部连通 |
|
||||
|
||||
### 全链路验证结果(2026-04-25)
|
||||
|
||||
| 链路 | API | 前端 UI | 状态 |
|
||||
@@ -252,6 +277,7 @@ draft → pending_review → published → draft (撤回)
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计数据更新:权限码 22→39、审计发现(2 CRITICAL + 3 HIGH)、功能域评分、DTO/调用链 100% |
|
||||
| 2026-04-28 | 全面数据刷新:44 实体(+10 告警/设备/随访模板/体征小时聚合等)、21 handler、22 权限、25+ Web 路由、事件系统完善(25 发布/6 消费者)、3 个后台任务、PiiCrypto 迁移到 erp-core |
|
||||
| 2026-04-26 | 全面更新:34 实体(+13 积分/透析/诊断/日常监测/线下活动/危急值/知情同意)、16 handler、stats 统计端点、validation 统一模块(83 测试)、PII 加密扩展(doctor_profile/dialysis_record/lab_report/diagnosis key_version) |
|
||||
| 2026-04-26 | 新增内容管理:article_category/article_tag/article_article_tag/article_revision 4 实体、审核状态机 |
|
||||
|
||||
@@ -221,6 +221,19 @@ React 19.2.4 / Ant Design 6.3.5 / React Router 7.14.0 / Zustand 5.0.12 / Vite 8.
|
||||
| `pages/health/components/StatusTag.test.tsx` | 状态标签渲染 |
|
||||
| `utils/exprEvaluator.test.ts` | 表达式求值 |
|
||||
|
||||
> ⚠️ **审计发现**:Web 前端 163 个文件仅 10 个测试(5 单元 + 5 E2E),测试覆盖率约 5%。小程序完全无测试。详见 `docs/audits/07-test-coverage.md`。
|
||||
|
||||
### 2026-04-30 审计发现
|
||||
|
||||
| 发现 | 严重性 | 说明 |
|
||||
|------|--------|------|
|
||||
| 告警管理按钮永远不显示 | CRITICAL | AlertList.tsx 使用 `health.alert.manage`(单数),后端声明 `health.alerts.manage`(复数),AuthButton 隐藏 |
|
||||
| AI 分析 SSE 无 UI 入口 | MEDIUM | 4 个 SSE 端点(vital-signs/lab-report/health-trend/health-summary)前端未调用 |
|
||||
| SSE 重连无指数退避 | MEDIUM | 依赖浏览器原生 EventSource,固定 3 秒间隔 |
|
||||
| 前端测试极低 | MEDIUM | 163 文件仅 10 个测试 |
|
||||
| 前端路由级权限控制缺失 | LOW | 健康模块路由无前端权限守卫,依赖后端 403 |
|
||||
| AuthButton 覆盖率 26% | LOW | 13/50 声明权限码有 AuthButton,其余依赖 API 403 |
|
||||
|
||||
### 插件页面系统
|
||||
|
||||
插件通过 `plugin.toml` schema 声明页面,前端根据 schema 动态生成:
|
||||
@@ -259,6 +272,7 @@ ws://localhost:5174/ws/* → ws://localhost:3000/* (WebSocket)
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计发现更新:CRITICAL 权限码拼写错误(alert→alerts)、前端测试极低、AI SSE 无入口 |
|
||||
| 2026-04-28 | UI/UX 重构 Phase 5(小程序端 8 项优化):首页健康资讯+空状态引导、Hub sparkline bar+打卡合并、日常监测 3 分组折叠+异常高亮、预约时段灰显、咨询消息日期分组+图片预览、医护异常横幅+搜索、趋势图骨架屏 |
|
||||
| 2026-04-28 | UI/UX 重构 Phase 4:4 个表单 Modal→DrawerForm(患者 4 分组/预约 3 分组+排班校验/随访 2 分组/积分商品 2 分组) |
|
||||
| 2026-04-28 | UI/UX 重构 Phase 3:10 个列表页统一迁移至 PageContainer + usePaginatedData + EntityName + 共享格式化工具,移除手动 isDark 处理 |
|
||||
|
||||
@@ -8,17 +8,22 @@
|
||||
|------|-----|
|
||||
| Rust crate | 18 个(erp-core + 5 基础业务 + erp-health + erp-ai + erp-dialysis + erp-plugin + 5 插件 + erp-plugin-prototype) |
|
||||
| 数据库表 | 30 基础表 + 44 健康业务表 + 3 AI 表(已实现) |
|
||||
| 数据库迁移 | 76 个 |
|
||||
| 数据库迁移 | 96 个 |
|
||||
| 后端路由 | 328 个(8 公开 + 320 受保护) |
|
||||
| 核心模块 | 5 基础 (auth/config/workflow/message/plugin) + 3 业务 (health + ai + dialysis) |
|
||||
| erp-health 实体 | 44 个 Entity(~21k 行 Rust) |
|
||||
| erp-health 实体 | 45 个 Entity(~21k 行 Rust) |
|
||||
| erp-ai 实体 | 3 个 Entity(1.7k 行 Rust) |
|
||||
| Web 前端 | 92 TSX + 71 TS = 163 个源文件(含 25+ 健康路由页面 + 11 健康组件) |
|
||||
| 微信小程序 | Taro 4.2 + React 18,40 个页面(31 患者端 + 9 医护端),5 个 TabBar |
|
||||
| 前端单元测试 | 5 个(vitest)+ 5 E2E spec(playwright) |
|
||||
| 后端测试 | 225 单元 + 159 集成(含 18 个健康模块集成测试文件) |
|
||||
| 总代码量 | Rust ~77k 行(459 源文件)+ Web 前端 163 文件 + 小程序 125 文件 |
|
||||
| 后端测试 | 611 单元 + 153 集成 = 772 个函数(97.5% 通过率) |
|
||||
| 总代码量 | Rust ~77k 行(462 源文件)+ Web 前端 163 文件 + 小程序 125 文件 |
|
||||
| 事件系统 | 25 事件类型 / 44 发布处 / 14 消费者 |
|
||||
| DTO | 105 个结构体(17 文件) |
|
||||
| 权限码 | 50 声明(health 39 + ai 6 + dialysis 5)+ 56 基础模块手动注册 |
|
||||
| API 文档 | `http://localhost:3000/api/docs/openapi.json` |
|
||||
| Git 提交 | 409 次 |
|
||||
| 审计状态 | 2026-04-30 全系统审计完成(83% 总体完成度) |
|
||||
| UI/UX 重构 | Phase 1-5 完成(6 共享组件 + 4 角色仪表盘 + 个人统计数据 + 表单抽屉 + 小程序优化) |
|
||||
|
||||
## 症状导航
|
||||
@@ -45,6 +50,9 @@
|
||||
| MCP token 注入后仍 401 | [[miniprogram]] MCP 联调 §6.1 | 用了生产构建 | dev 构建(`NODE_ENV=development`)+ 空密钥 |
|
||||
| 积分商城 Tab 页空白 | [[miniprogram]] 待优化 | 未关联患者档案 | 需增加降级 UI 引导建档 |
|
||||
| MCP 批量审计页面栈溢出 | [[miniprogram]] MCP 联调 §6.6 | `navigateTo` 超 10 层 | 改用 `reLaunch` 逐页测试 |
|
||||
| 告警管理按钮不显示 | [[frontend]] 权限码拼写 | AlertList.tsx | `health.alert.manage` → `health.alerts.manage`(缺 s) |
|
||||
| 小程序晚间血压丢失 | [[miniprogram]] 体征录入 | indicator_type 映射 | **已修复:** 新增 `blood_pressure_evening` 类型,录入页+日常监测页+后端+测试全覆盖 |
|
||||
| AI 分析 SSE 无 UI 入口 | [[erp-health]] AI 分析 | 前端未调用 | 4 个 SSE 端点无管理界面触发 |
|
||||
|
||||
## 模块导航
|
||||
|
||||
@@ -71,7 +79,7 @@
|
||||
|
||||
### 基础设施
|
||||
- [[infrastructure]] — 连接信息 · 环境变量 · 一键启动 (**单一真相源**)
|
||||
- [[database]] — SeaORM 迁移 · 多租户表结构(76 迁移)
|
||||
- [[database]] — SeaORM 迁移 · 多租户表结构(96 迁移)
|
||||
- [[frontend]] — React 19 SPA · 健康管理页面(25+ 路由 + 11 组件)
|
||||
- [[testing]] — 验证清单 · 测试分布 · 性能基准
|
||||
|
||||
@@ -99,6 +107,15 @@
|
||||
| UI/UX 重构设计规格 | `docs/superpowers/specs/2026-04-28-ui-ux-overhaul-design.md` |
|
||||
| UI/UX 重构实施计划 | `docs/superpowers/plans/2026-04-28-ui-ux-overhaul-plan.md` |
|
||||
| 实施计划(全量) | `docs/superpowers/plans/` (27 份) |
|
||||
| 全系统审计报告 | `docs/audits/08-audit-report-2026-04-30.md`(83% 总体完成度,2 CRITICAL + 3 HIGH) |
|
||||
| 审计基线快照 | `docs/audits/00-baseline-snapshot.md` |
|
||||
| 审计功能清单 | `docs/audits/01-feature-inventory.md`(328 路由三端映射矩阵) |
|
||||
| 审计后端完整性 | `docs/audits/02-backend-integrity.md`(100% 调用链连通) |
|
||||
| 审计事件系统 | `docs/audits/03-event-system.md`(25 事件 / 14 消费者 / 100% payload 一致) |
|
||||
| 审计参数配置 | `docs/audits/04-parameter-config.md`(105 DTO / 50 权限码 / 数据映射缺口) |
|
||||
| 审计差距模式 | `docs/audits/05-gap-patterns.md`(5 种模式,透析/知情同意 MP 缺失) |
|
||||
| 审计错误处理 | `docs/audits/06-error-handling.md`(SSE 不挂起 / 日志 30% 覆盖) |
|
||||
| 审计测试覆盖 | `docs/audits/07-test-coverage.md`(772 测试 / 前端极低 / AI 无集成测试) |
|
||||
| 讨论记录 | `docs/discussions/` (10 份) |
|
||||
| 协作规则 | `CLAUDE.md` |
|
||||
| 插件制作指南 | `.claude/skills/plugin-development/SKILL.md` |
|
||||
|
||||
@@ -290,6 +290,35 @@ secret = "<通过环境变量 ERP__WECHAT__SECRET 设置>"
|
||||
| URL 拼接构建查询参数 | P2 | `request.ts` 已支持 `buildQuery(params)` 但内部使用 |
|
||||
| 生产配置 | P2 | `urlCheck`/`minified` 需区分环境 |
|
||||
|
||||
### 2026-04-30 审计发现
|
||||
|
||||
**三端对齐差距**(小程序 API 覆盖 76 个,Web 235 个,后端 328 个):
|
||||
|
||||
| 发现 | 严重性 | 说明 |
|
||||
|------|--------|------|
|
||||
| ~~晚间血压数据永久丢失~~ | ~~CRITICAL~~ **已修复** | 新增 `blood_pressure_evening` indicator_type,小程序录入页 + 日常监测页 + 后端 service + 集成测试均已覆盖 |
|
||||
| 透析管理完全无入口 | HIGH | 后端 12 路由完整,小程序 0 个 API 调用、0 个页面 |
|
||||
| 知情同意完全无入口 | HIGH | 后端完整,小程序 0 入口 |
|
||||
| 体温/血氧未映射 | MEDIUM | `body_temperature`/`spo2` 无 indicator_type |
|
||||
| 健康记录小程序无入口 | MEDIUM | 患者移动端无法查看健康档案 |
|
||||
| 诊断记录小程序无入口 | MEDIUM | 患者移动端无法查看诊断 |
|
||||
| 小程序完全无测试 | HIGH | 40 个页面全靠手工验证 |
|
||||
|
||||
**功能域完成度**(小程序端):
|
||||
|
||||
| 功能域 | 完成度 | 关键差距 |
|
||||
|--------|--------|---------|
|
||||
| 咨询管理 | 95% | 无导出(预期) |
|
||||
| 预约管理 | 90% | 基本对齐 |
|
||||
| 随访管理 | 70% | 仅列表+创建 |
|
||||
| 患者管理 | 85% | 无删除(预期) |
|
||||
| 健康数据 | 60% | 丢失晚间血压/体温/血氧 |
|
||||
| 告警系统 | 60% | 仅查看+处理 |
|
||||
| 统计仪表盘 | 30% | 仅医护端 3 个统计 |
|
||||
| AI 分析 | 30% | 仅历史查看 |
|
||||
| 透析管理 | 0% | 完全空白 |
|
||||
| 知情同意 | 0% | 完全空白 |
|
||||
|
||||
### 注意事项
|
||||
|
||||
- `Taro.login()` 的 code 一次性使用,每次调用会返回新 code
|
||||
@@ -514,6 +543,7 @@ main();
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计发现更新:CRITICAL 晚间血压丢失 / HIGH 透析+知情同意完全空白 / 功能域完成度矩阵 |
|
||||
| 2026-04-28 | **全面性能优化**:分包加载(6 分包,主包 517KB→275KB,vendors 192KB→36KB);GET 请求去重+60s TTL 缓存;points store 集中积分/签到状态;todaySummary 60s TTL;7 组件 React.memo;TrendChart 双重渲染修复;restoreAuth 提升 App 级别;prod terser drop_console;crypto-js 按需引入 |
|
||||
| 2026-04-27 | **移除 echarts-taro3-react**:内嵌 Taro 3 + React 16 导致 webpack 模块加载失败,改为自定义 `EcCanvas` 组件 + `echarts/core` 按需引入;更新版本说明 + 历史教训 + 组件列表 |
|
||||
| 2026-04-27 | **MCP 联调全面更新**:§6.1 增加 dev 构建前置条件,§6.4 重写为明文 token 注入法(评估两种方案),§6.6 补充 7 条已知限制,新增 §6.7 审计脚本说明 + §6.8 实测审计结果(40/40 页面通过);§5 补充 4 条审计发现 |
|
||||
|
||||
@@ -19,20 +19,22 @@ tags: [testing, verification]
|
||||
|
||||
### 测试分布
|
||||
|
||||
| Crate | 单元测试 | 集成测试 | 覆盖评估 |
|
||||
|-------|---------|---------|---------|
|
||||
| erp-health (validation) | 104 | 18 文件 ~159 | 良好 |
|
||||
| erp-core | 42 | - | 良好(crypto/module/error/rbac/sanitize/types) |
|
||||
| erp-auth | 38 | 3 | 中等 |
|
||||
| erp-plugin | 31 | 2 | 中等 |
|
||||
| erp-dialysis | 10 | - | 中等 |
|
||||
| erp-config | **0** | - | ⚠️ 缺失 |
|
||||
| erp-message | **0** | - | ⚠️ 缺失 |
|
||||
| erp-workflow | **0** | - | ⚠️ 缺失 |
|
||||
| erp-ai | **0** | - | ⚠️ 缺失 |
|
||||
| **后端总计** | **225** | **159** | |
|
||||
| 前端 (vitest) | 5 | - | 健康常量/useThemeMode/useDebouncedValue/StatusTag/exprEvaluator |
|
||||
| E2E (playwright) | - | 5 spec | 登录/用户管理/插件/租户隔离 |
|
||||
| Crate | 单元测试 | 集成测试 | 总计 | 通过率 | 覆盖评估 |
|
||||
|-------|---------|---------|------|--------|---------|
|
||||
| erp-core | 74 | - | 74 | 100% | 良好(crypto/module/error/rbac/sanitize/types) |
|
||||
| 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% | 良好(9 个因 blind_indexes 表失败) |
|
||||
| erp-ai | 36 | - | 36 | 100% | 中等(缺集成测试) |
|
||||
| erp-dialysis | 10 | 15 | 25 | 93% | 中等(2 个失败待修复) |
|
||||
| erp-plugin | 78 | 2 | 80 | 100% | 良好 |
|
||||
| erp-server | - | 153 | 153 | 94% | 良好(API 集成测试) |
|
||||
| **后端总计** | **611** | **153** | **772** | **97.5%** | |
|
||||
| 前端 (vitest) | 5 | - | - | - | 健康常量/useThemeMode/useDebouncedValue/StatusTag/exprEvaluator |
|
||||
| E2E (playwright) | - | 5 spec | - | - | 登录/用户管理/插件/租户隔离 |
|
||||
| 小程序 | 0 | 0 | 0 | N/A | ⚠️ 完全无测试 |
|
||||
|
||||
### 编译 + 测试
|
||||
|
||||
@@ -130,12 +132,23 @@ SELECT count(*) FROM patient WHERE deleted_at IS NULL; -- 患者数量
|
||||
|
||||
| 领域 | 当前状态 | 优先级 |
|
||||
|------|---------|--------|
|
||||
| erp-config 单元测试 | **0 测试** | P1 |
|
||||
| erp-message 单元测试 | **0 测试** | P1 |
|
||||
| erp-workflow 单元测试 | **0 测试**(BPMN 解析 + Token 驱动) | P1 |
|
||||
| erp-ai 单元测试 | **0 测试**(Prompt 管理 + 脱敏) | P2 |
|
||||
| 前端健康模块组件测试 | 仅 StatusTag + exprEvaluator | P2 |
|
||||
| E2E 健康模块测试 | 无 | P2 |
|
||||
| erp-ai 集成测试 | **0 测试**(SSE 流 + 外部 API 无法回归) | P0 |
|
||||
| 小程序测试 | **0 测试**(40 个页面全靠手工验证) | P1 |
|
||||
| erp-message 集成测试 | **0 测试**(SSE 推送连接/重连未测试) | P1 |
|
||||
| Web 前端测试 | 仅 10 个(163 文件的 API/组件/路由无覆盖) | P2 |
|
||||
| erp-dialysis | 93% 通过率(2 个测试失败待修复) | P2 |
|
||||
| blind_indexes 迁移 | 9 个测试因表缺失失败(环境配置问题) | P3 |
|
||||
|
||||
### 测试覆盖良好的领域
|
||||
|
||||
| 领域 | 测试特点 |
|
||||
|------|---------|
|
||||
| 患者 CRUD | 完整集成测试覆盖创建/更新/删除/列表 |
|
||||
| PII 加密 | 独立测试文件验证加密/解密/盲索引/跨租户隔离 |
|
||||
| 预约并发 | CAS 原子操作测试,验证乐观锁和排班满额 |
|
||||
| 工作流引擎 | BPMN 解析 + Token 驱动 + 任务分配测试 |
|
||||
| 权限 RBAC | 角色/权限/菜单关联测试 |
|
||||
| 插件系统 | WASM 运行时 + 动态表 CRUD + 租户隔离 |
|
||||
|
||||
### 活跃问题
|
||||
|
||||
@@ -158,6 +171,7 @@ SELECT count(*) FROM patient WHERE deleted_at IS NULL; -- 患者数量
|
||||
|
||||
| 日期 | 变更 |
|
||||
|------|------|
|
||||
| 2026-05-01 | 审计数据全面刷新:772 测试(611 单元 + 153 集成)/ 97.5% 通过率 / 9 个因 blind_indexes 失败 / 前端仅 10 个测试 / 小程序 0 测试 |
|
||||
| 2026-04-25 | 全面更新:93 后端测试 + 3 前端测试、健康模块全链路验证结果、测试覆盖空白清单 |
|
||||
| 2026-04-24 | 添加微信小程序验证步骤 |
|
||||
| 2026-04-23 | 重构为 5 节结构,去除与 infrastructure.md 重复 |
|
||||
|
||||
Reference in New Issue
Block a user