Files
hms/docs/qa/role-test-plans/R02-doctor.md
iven 6d5a711d2c
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
fix: 修复测试发现的 7 个问题 + 全 workspace clippy 清零
功能修复:
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 统一格式化
2026-05-07 23:43:14 +08:00

136 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# R02 — Doctor医生业务场景测试计划
> 角色: doctor | 测试账号: doctor_test / Admin@2026 | 菜单数: 24 | 重点: 临床诊疗
## 1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 1.1 | 登录 | 输入 doctor_test / Admin@2026 | 成功登录,左侧菜单 24 项 | ☐ |
| 1.2 | 医生仪表盘 | 查看首页 | 显示"测试医生"问候语,含 AI 建议待审、重点关注患者、今日日程、未回复咨询 | ☐ |
| 1.3 | AI 建议卡片 | 查看建议列表 | 按风险排序,可"采纳"或"拒绝" | ☐ |
| 1.4 | 快捷操作 | 查看底部 | 显示AI分析中心、告警中心、患者查询 | ☐ |
## 2. 场景 A — 患者建档与诊疗
> **业务链**: 接收患者 → 查看档案 → 添加诊断 → 开随访任务
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| A.1 | 患者列表 | /health/patients → 搜索/标签筛选 | 显示患者列表,支持搜索和标签过滤 | ☐ |
| A.2 | 患者详情 | 点击患者卡片 | 显示基本信息、标签、体征数据、操作记录 | ☐ |
| A.3 | 新增患者 | 点击新增 → 填写姓名/身份证/手机号 → 保存 | 患者创建成功,状态 active | ☐ |
| A.4 | 医护管理 | /health/doctors → 查看医护列表 | 显示医护列表,含科室和职称 | ☐ |
| A.5 | 诊断记录 | /health/diagnoses → 查看列表 → 点击详情 | 显示诊断记录,可查看诊断详情 | ☐ |
| A.6 | 知情同意 | /health/consents → 查看列表 | 显示知情同意书记录 | ☐ |
**交接点**: 诊断记录完成后,随访管理中可基于诊断创建随访任务。
## 3. 场景 B — 随访闭环(医生端)
> **业务链**: 创建随访任务 → 查看执行情况 → 审核 AI 建议
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| B.1 | 创建随访 | /health/follow-up-tasks → 新增 → 选患者/随访类型/计划日期 → 保存 | 随访任务创建,状态 pending | ☐ |
| B.2 | 随访列表 | 切换状态筛选:待办/进行中/已完成 | 正确显示各状态随访 | ☐ |
| B.3 | 随访详情 | 点击某条随访 → 查看录入内容 | 显示随访记录详情(护士录入的数据) | ☐ |
| B.4 | 随访模板 | /health/follow-up-templates → 查看模板 | 显示模板列表和内容 | ☐ |
| B.5 | 行动收件箱 | /health/action-inbox → 筛选类型 | 显示 AI 建议/告警/随访等行动项 | ☐ |
**交接点**: 医生创建随访后护士可执行并录入AI 生成的建议出现在行动收件箱。
## 4. 场景 C — 咨询接诊闭环
> **业务链**: 查看待回复咨询 → 接诊 → 回复消息 → 关闭咨询
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| C.1 | 咨询列表 | /health/consultations → 按状态筛选 | 显示 waiting/active/closed 咨询 | ☐ |
| C.2 | 接诊 | 点击 waiting 状态咨询 → 进入对话 | 咨询状态变为 active | ☐ |
| C.3 | 回复消息 | 在对话中输入文字 → 发送 | 消息实时显示,患者端可收到 | ☐ |
| C.4 | 关闭咨询 | 点击结束咨询 | 咨询状态变为 closed | ☐ |
**交接点**: 咨询中发现的健康问题可触发随访任务。
## 5. 场景 D — 告警处理
> **业务链**: 查看告警仪表盘 → 评估告警 → 处理/确认
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| D.1 | 告警仪表盘 | /health/alert-dashboard → 查看统计 | 按严重程度分类显示告警 | ☐ |
| D.2 | 处理告警 | 点击某条告警 → 标记已确认/已处理 | 状态 pending → acknowledged/resolved | ☐ |
| D.3 | 告警关联 | 查看告警关联的患者 | 可跳转到患者详情 | ☐ |
## 6. 场景 E — AI 分析链
> **业务链**: 触发 AI 分析 → 查看结果 → 采纳/拒绝建议
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| E.1 | AI 分析历史 | /health/ai-analysis → 查看列表 | 显示分析记录 | ☐ |
| E.2 | 查看分析详情 | 点击某条分析 | 显示分析结果和 AI 建议 | ☐ |
| E.3 | 处理建议 | 在行动收件箱中 → 采纳/拒绝 AI 建议 | 建议状态变更pending → approved/rejected | ☐ |
| E.4 | AI 用量 | /health/ai-usage → 查看 | 显示 AI 调用量统计 | ☐ |
## 7. 消息
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 7.1 | 消息列表 | /messages → 查看 | 只读消息列表,可标记已读 | ☐ |
## 8. 权限边界验证
> doctor 不应访问的模块
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 8.1 | 无用户管理 | 地址栏输入 /users | 403 | ☐ |
| 8.2 | 无权限管理 | 地址栏输入 /roles | 403 | ☐ |
| 8.3 | 无积分管理 | 地址栏输入 /health/points-rules | 403 | ☐ |
| 8.4 | 无内容管理 | 地址栏输入 /health/articles | 403 | ☐ |
| 8.5 | 无系统设置 | 地址栏输入 /settings | 403 | ☐ |
| 8.6 | 无 BLE 网关 | 地址栏输入 /health/ble-gateways | 403 | ☐ |
| 8.7 | 无标签管理 | 地址栏输入 /health/tags | 403 | ☐ |
## 9. 跨角色协作验证
| # | 协作场景 | 操作 | 预期结果 | 通过 |
|---|----------|------|----------|------|
| X.1 | 随访执行查看 | 查看护士已录入的随访记录 | 可查看完整录入内容 | ☐ |
| X.2 | AI 建议联动 | 行动收件箱中有 AI 生成的建议 | 建议来自 AI 分析结果 | ☐ |
| X.3 | 咨询转随访 | 咨询中发现问题 → 创建随访 | 随访任务出现在护士待办列表 | ☐ |
| X.4 | 诊断驱动随访 | 添加诊断记录 → 创建随访 → 用 nurse_test 验证 | 护士可看到并执行 | ☐ |
| X.5 | 告警→患者详情 | 告警仪表盘 → 点击告警 → 跳转患者详情 | 跳转正确,患者体征数据同步 | ☐ |
| X.6 | 仪表盘待回复联动 | 回复咨询 → 刷新仪表盘 | 未回复咨询数量减少 | ☐ |
## 10. 事件链路验证
| # | 事件链路 | 触发操作 | 验证方式 | 通过 |
|---|----------|----------|----------|------|
| E.1 | 随访任务接收 | admin/health_manager 创建随访 | 医生仪表盘和随访列表中出现新任务 | ☐ |
| E.2 | AI 建议推送 | AI 分析完成后 | 行动收件箱出现新建议 | ☐ |
| E.3 | 告警实时通知 | 患者体征超阈值 | 告警出现在仪表盘和收件箱 | ☐ |
| E.4 | 咨询通知 | 患者发起咨询 | 仪表盘未回复咨询数更新 | ☐ |
## 11. 小程序端(医护工作台)
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 10.1 | 登录跳转 | doctor_test 登录小程序 | 跳转到 `/pages/doctor/index`(医护工作台) | ☐ |
| 10.2 | 工作台标题 | 查看顶部 | 显示"医护工作台" | ☐ |
| 10.3 | 问候语 | 查看问候 | 显示"测试医生,您好" | ☐ |
| 10.4 | 工作概览 | 查看 4 个数据卡片 | 我的患者、未读消息、待处理随访、今日咨询 | ☐ |
| 10.5 | 健康审核区 | 查看健康审核卡片 | 显示待审化验、今日预约doctor 专属) | ☐ |
| 10.6 | 快捷操作 | 查看 7 个按钮 | 化验审核、患者查询、随访记录、告警中心、透析管理、处方管理、行动收件箱 | ☐ |
| 10.7 | 透析管理 | 点击"透析管理" | 跳转到 `/pages/doctor/dialysis/index` | ☐ |
| 10.8 | 处方管理 | 点击"处方管理" | 跳转到 `/pages/doctor/prescription/index` | ☐ |
## 测试结果
- 测试人: _________
- 测试日期: _________
- 通过数: ___ / 总数: ___
- 问题记录: