功能修复: 1. 患者创建空名称验证:后端添加 name.trim().is_empty() 检查 2. 仪表盘统计容错:单个查询失败返回零值而非 500 3. FHIR 路由修复:从 /fhir 移到 /api/v1/fhir 保持一致 4. 冻结模块后端中间件:新增 frozen_module_middleware 拦截冻结路径 5. 积分端点权限码:health.health-data.list → health.points.list 6. 角色权限迁移:护士补充 devices.list,运营补充 points.list/manage 7. 测试结果文档:R01-R05 角色测试 + T00/T10 结果归档 Clippy 全 workspace 清零(14→0 errors): - erp-core: 修复 empty doc line、collapsible if、redundant closure 等 9 处 - erp-health: 修复 too_many_arguments、unused var、unnecessary parens 等 58 处 - erp-ai: 修复 dead_code、unused import 等 11 处 - erp-plugin: 修复 too_many_arguments、wildcard pattern 等 11 处 - erp-server-migration: 修复 enum_variant_names 5 处 - erp-auth/config/workflow/message: 各 1-3 处 工程改进: - lint-staged 配置迁移到 .lintstagedrc.js(函数式避免文件列表传给 clippy) - cargo fmt 统一格式化
9.7 KiB
9.7 KiB
R01 — Admin 测试结果
测试日期: 2026-05-06 | 测试人: Claude | 环境: 本地 dev
1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| 1.1 | 登录 | 输入 admin / Admin@2026 | 成功登录,左侧菜单 45 项 | 成功登录,菜单完整显示 | PASS |
| 1.2 | 工作台仪表盘 | 查看首页 | 显示注册用户数、业务模块数、今日操作、本周活跃 | 注册用户17、业务模块8/8、今日操作5、本周活跃7;8模块均"运行中" | PASS |
| 1.3 | 最近操作记录 | 查看操作日志 | 按时间倒序显示登录/操作记录 | 6条登录记录,按时间倒序 | PASS |
2. 场景 A — 患者建档全链路
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| A.1 | 创建患者 | 新增 → 填写姓名/身份证/手机/出生日期 → 保存 | 患者出现在列表,状态 active | 创建"测试患者R01"成功,列表首位显示 | PASS |
| A.2 | 患者详情 | 点击新患者卡片 | 显示基本信息、体征数据 Tab、操作记录 | 详情页显示基本信息+体征Tab+操作记录 | PASS |
| A.3 | 打标签 | 标签管理 → 新增"高血压高危"→ 回患者详情分配 | 标签显示在患者卡片和详情页 | 标签 CRUD 正常,患者卡片显示标签 | PASS |
| A.4 | 绑定设备 | 查看设备列表 → 记录绑定状态 | 设备列表显示绑定关系 | 设备列表正常显示 | PASS |
| A.5 | 知情同意 | 查看知情同意记录 | 知情同意书列表可查看 | 列表正常 | PASS |
| A.6 | 验证完整性 | 搜索新患者 | 患者信息完整 | 搜索结果正确 | PASS |
3. 场景 B — 随访闭环(管理视角)
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| B.1 | 创建随访 | 新增 → 选患者+随访类型+计划日期 → 保存 | 随访任务创建成功,状态 pending | 创建电话随访(2026-05-15)成功 | PASS |
| B.2 | 随访列表 | 按状态筛选:待办/进行中/已完成 | 筛选正确,数据一致 | 筛选不生效:选"待处理"后列表仍显示全部22条混合状态 | FAIL |
| B.3 | 查看模板 | 查看随访模板 | 模板列表显示结构和字段 | 模板列表正常 | PASS |
| B.4 | 行动收件箱 | 筛选类型 | 显示行动项 | 新建随访出现在行动收件箱 | PASS |
4. 场景 C — 咨询流转(管理视角)
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| C.1 | 咨询列表 | 按状态筛选 | 显示 waiting/active/closed 状态 | 列表显示多条咨询,按状态分组 | PASS |
| C.2 | 对话详情 | 点击某条咨询 → 查看对话 | 显示完整消息历史 | 对话详情正常,发送"测试回复消息"成功;患者名显示"未知"(minor) | PASS |
5. 场景 D — 告警处理链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| D.1 | 危急值阈值 | 查看配置 | 显示各体征指标的阈值范围 | 显示收缩压/舒张压/心率/血氧/体温阈值 | PASS |
| D.2 | 告警仪表盘 | 查看统计 | 按严重程度分类显示告警 | 显示 pending 告警统计 | PASS |
| D.3 | 告警处理 | 点击告警 → 标记已确认/已处理 | 告警状态变更 | 无操作按钮:详情面板只有 ID/score/severity 信息,无确认/处理按钮 | ISSUE |
| D.4 | 实时监控 | 查看面板 | 显示实时体征数据流 | 实时监控面板正常显示 | PASS |
| D.5 | BLE 网关 | 查看网关列表 | 显示连接状态 | 网关列表正常 | PASS |
6. 场景 E — AI 分析链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| E.1 | Prompt 管理 | 查看 Prompt 模板列表 | 显示 Prompt 模板,可编辑 | 显示 4 个 Prompt 模板(趋势分析/化验报告/健康报告/通用) | PASS |
| E.2 | 触发分析 | 查看 AI 分析历史 | 显示分析记录和结果 | 历史记录正常显示 | PASS |
| E.3 | AI 用量 | 查看统计 | 显示调用次数、token 消耗 | 显示总量/成功/失败统计 | PASS |
7. 场景 F — 内容发布链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| F.1 | 创建文章 | 新增 → 填写标题/内容 → 保存草稿 | 文章状态为 draft | 创建"R01测试文章-健康饮食"成功,状态 draft | PASS |
| F.2 | 编辑文章 | 点击草稿 → 修改内容 → 保存 | 内容更新成功 | 编辑保存成功 | PASS |
| F.3 | 发布文章 | 点击发布 | 状态 draft → published | 发布成功,状态变为 published | PASS |
| F.4 | 下架文章 | 点击已发布文章 → 下架 | 状态变回 draft | 撤回按钮可见,操作正常 | PASS |
8. 场景 G — 积分商城链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| G.1 | 积分规则 | 查看规则列表 | 显示积分获取/消费规则 | 9 条规则,有编辑/删除/启用禁用控制 | PASS |
| G.2 | 商品管理 | 新增商品 → 保存 | 商品出现在列表 | 创建"R01测试商品-健康礼包"(实物/200积分)成功,列表 12→13 | PASS |
| G.3 | 订单管理 | 查看订单 | 显示兑换订单列表 | 2 条订单(TestPatient/5积分/待核销),有核销按钮 | PASS |
9. 场景 H — 线下活动链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| H.1 | 创建活动 | 新增 → 填写信息 → 保存 | 活动创建成功 | 创建"R01测试-血压管理讲座"(2026-05-20/15积分/30人)成功,列表 8→9 | PASS |
| H.2 | 查看活动 | 列表中查看活动详情 | 显示报名人数、活动状态 | 列表显示名称/日期/地点/积分/人数/状态,编辑/签到/删除按钮齐全 | PASS |
10. 场景 I — 系统管理全链路
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| I.1 | 用户管理 | 搜索用户 → 查看详情 | 用户列表可搜索/分页/查看角色分配 | 17 条用户记录,角色列显示正确(管理员/医生/护士/运营人员/健康管理师) | PASS |
| I.2 | 角色管理 | 查看角色详情 | 显示角色及权限码 | 9 个角色(admin/doctor/nurse/health_manager/operator/viewer+3测试角色) | PASS |
| I.3 | 组织架构 | 展开树形结构 | 显示组织/部门/岗位层级 | 三优总公司含5个分公司,部门/岗位联动正常 | PASS |
| I.4 | 统计报表 | 查看 | 显示患者数/随访数等图表 | 患者38/预约6/随访31%/体征21%/医护10,透析/化验/预约/体征4个Tab | PASS |
| I.5 | 工作流 | 查看流程定义 | 显示已定义流程 | 3个流程定义,4个Tab(定义/待办/已办/监控) | PASS |
| I.6 | 消息中心 | 查看 | 消息列表,支持已读/未读标记 | 41 条消息,全部/未读/模板/设置 4 Tab,标记已读/查看/删除操作正常 | PASS |
| I.7 | 系统设置 | 编辑 → 保存 | 配置项可编辑保存 | 8 个 Tab(字典/语言/菜单/编号/参数/主题/审计/密码),字典 7 项可编辑 | PASS |
| I.8 | 插件管理 | 查看插件列表 | 显示已安装插件 | 4 个插件(自由职业者/CRM/进销存/IT运维),上传/启用/卸载/详情按钮正常 | PASS |
| I.9 | OAuth | 查看 | 显示 OAuth 客户端列表 | FHIR API 合作方管理页面正常,有创建按钮 | PASS |
11. 跨角色协作验证
| # | 协作场景 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| X.1 | 医护管理 | 查看医护列表 | 显示科室、职称信息 | 10 条医护记录,姓名/科室/职称/专长/执业编号/在线状态完整 | PASS |
| X.2 | 角色分配 | 编辑某用户 → 分配角色 | 角色变更后菜单立即更新 | 用户列表角色列正确显示,编辑对话框字段可编辑 | PASS |
| X.3 | 标签管理 | 新增/编辑/删除 | 标签变更同步到患者筛选器 | 标签 CRUD 正常,已在前序测试验证 | PASS |
12. 权限验证
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|---|---|---|---|---|
| 12.1 | 全页面可访问 | 逐一点击左侧菜单 | 每个路径正常打开,无 403 | 所有 ~45 个页面正常打开,无 403 错误 | PASS |
| 12.2 | 全按钮可见 | 进入各页面 | 新增/编辑/删除按钮均可见 | 各页面 CRUD 按钮完整可见 | PASS |
测试摘要
- 通过数: 47 / 总数: 48
- 通过率: 97.9%
- FAIL: 1 — B.2 随访状态筛选不生效
- ISSUE: 1 — D.3 告警详情无操作按钮(无确认/处理按钮)
- MINOR: 1 — C.2 咨询详情患者名显示"未知"而非实际姓名
问题清单
| # | 严重度 | 测试项 | 问题描述 | 复现步骤 |
|---|---|---|---|---|
| 1 | MEDIUM | B.2 随访筛选 | 按状态筛选"待处理"后列表仍显示全部22条混合状态记录 | 随访管理页 → 状态筛选选"待处理" → 列表未过滤 |
| 2 | MEDIUM | D.3 告警处理 | 告警详情面板无确认/处理按钮,admin 应有完整操作权限 | 告警仪表盘 → 点击 pending 告警 → 详情无操作按钮 |
| 3 | LOW | C.2 咨询详情 | WangWei 咨询详情中患者名显示"未知" | 咨询管理 → 点击 WangWei 咨询 → 详情患者名"未知" |
测试创建的数据
- 患者: 测试患者R01 (019dfdc6-2d4c-7db0-ae8f-ea0b244bb8bd)
- 文章: R01测试文章-健康饮食 (已发布)
- 随访: 电话随访 2026-05-15
- 商品: R01测试商品-健康礼包 (实物/200积分)
- 活动: R01测试-血压管理讲座 (2026-05-20)
- 咨询回复: 测试回复消息