Files
hms/docs/qa/role-test-plans/R04-health-manager.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

145 lines
7.8 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.
# R04 — Health Manager健康管理师业务场景测试计划
> 角色: health_manager | 测试账号: 需手动创建或复用 | 菜单数: 29 | 重点: 健康协调与 AI 分析
> **注意**: 当前数据库中暂无 health_manager 角色的测试用户。先以 admin 登录,在用户管理中给某用户分配"健康管理师"角色后再测试。
## 1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 1.1 | 登录 | 使用 health_manager 角色账号登录 | 成功登录,左侧菜单 29 项 | ☐ |
| 1.2 | 仪表盘 | 查看首页 | 显示综合仪表盘(含统计概览和运营数据) | ☐ |
## 2. 场景 A — 患者建档与标签管理
> **业务链**: 管理标签 → 创建患者 → 分配标签 → 查看患者
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| A.1 | 标签管理 | /health/tags → 新增"慢性病管理"标签(绿色)→ 编辑颜色 → 保存 | 标签 CRUD 正常 | ☐ |
| A.2 | 患者管理 | /health/patients → 新增患者 → 分配标签 → 保存 | 患者创建成功,标签显示在卡片上 | ☐ |
| A.3 | 患者搜索 | 搜索框输入姓名 → 标签筛选 | 搜索和筛选结果正确 | ☐ |
| A.4 | 医护列表 | /health/doctors → 查看(只读) | 显示医护列表,无编辑/新增按钮(无 doctor.manage | ☐ |
**交接点**: 标签创建后doctor/nurse 可在患者筛选器中使用。
## 3. 场景 B — 随访管理闭环
> **业务链**: 创建随访任务 → 查看执行情况 → 管理团队行动
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| B.1 | 创建随访 | /health/follow-up-tasks → 新增 → 选患者/类型/日期 → 保存 | 随访任务创建成功 | ☐ |
| B.2 | 随访列表 | 按状态筛选 | 正确显示各状态随访 | ☐ |
| B.3 | 随访录入 | 点击某条随访 → 录入 → 保存 | 可录入随访记录 | ☐ |
| B.4 | 随访模板 | /health/follow-up-templates → 查看/编辑 | 可管理随访模板 | ☐ |
| B.5 | 团队视图 | 行动收件箱 → 切换团队视图 | 支持个人和团队视图(有 action-inbox.team 权限) | ☐ |
**交接点**: 健康管理师创建的随访任务,护士可执行录入。
## 4. 场景 C — 咨询管理
> **业务链**: 查看待处理咨询 → 回复 → 关闭
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| C.1 | 咨询列表 | /health/consultations → 按状态筛选 | 显示 waiting/active/closed 咨询 | ☐ |
| C.2 | 回复咨询 | 进入对话 → 输入回复 → 发送 | 可回复(有 consultation.manage 权限) | ☐ |
| C.3 | 关闭咨询 | 点击结束咨询 | 咨询状态变为 closed | ☐ |
## 5. 场景 D — 告警与监测
> **业务链**: 管理告警规则 → 查看告警 → 处理 → 监测数据
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| D.1 | 告警仪表盘 | /health/alert-dashboard → 查看 | 显示告警统计,可管理告警 | ☐ |
| D.2 | 告警规则 | 通过告警仪表盘进入 → 查看/编辑规则 | 可管理告警规则(有 alert-rules.manage | ☐ |
| D.3 | 处理告警 | 点击某条告警 → 确认/处理 | 告警状态变更 | ☐ |
| D.4 | 危急值阈值 | /health/critical-value-thresholds → 查看 | 可查看阈值配置 | ☐ |
| D.5 | 设备管理 | /health/devices → 查看(只读) | 设备列表可查看,无编辑按钮(无 devices.manage | ☐ |
| D.6 | 日常监测 | /health/daily-monitoring → 查看数据 | 可查看和管理日常监测数据 | ☐ |
| D.7 | 实时监控 | /health/realtime-monitor → 查看 | 显示实时体征监控面板 | ☐ |
## 6. 场景 E — AI 分析与建议
> **业务链**: 触发 AI 分析 → 查看 Prompt → 管理 AI 建议 → 查看用量
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| E.1 | AI 分析 | /health/ai-analysis → 触发新分析 → 查看结果 | 可触发和管理 AI 分析(有 ai.analysis.manage | ☐ |
| E.2 | AI Prompt | /health/ai-prompts → 查看模板 | 只读查看 Prompt有 ai.prompt.list无 manage | ☐ |
| E.3 | AI 建议 | 行动收件箱 → 查看 AI 建议 → 采纳/拒绝 | 可管理 AI 建议(有 ai.suggestion.manage | ☐ |
| E.4 | AI 用量 | /health/ai-usage → 查看 | 显示 AI 调用量统计 | ☐ |
## 7. 场景 F — 诊断与知情同意
> **业务链**: 查看诊断 → 管理知情同意
| # | 步骤 | 操作 | 预期结果 | 通过 |
|---|------|------|----------|------|
| F.1 | 诊断记录 | /health/diagnoses → 查看 | 可查看和管理诊断记录 | ☐ |
| F.2 | 知情同意 | /health/consents → 管理 | 可查看和管理知情同意书 | ☐ |
## 8. 消息
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 8.1 | 消息列表 | /messages → 查看 | 只读消息列表 | ☐ |
## 9. 工作流
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 9.1 | 工作流 | 查看/启动流程 | 可查看workflow.read和启动workflow.start不可编辑 | ☐ |
## 10. 权限边界验证
> health_manager 不应访问的模块
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 10.1 | 无用户管理 | 地址栏输入 /users | 403 | ☐ |
| 10.2 | 无积分管理 | 地址栏输入 /health/points-rules | 403 | ☐ |
| 10.3 | 无内容管理 | 地址栏输入 /health/articles | 403 | ☐ |
| 10.4 | 无系统设置 | 地址栏输入 /settings | 403 | ☐ |
| 10.5 | 无插件管理 | 地址栏输入 /plugins/admin | 403 | ☐ |
| 10.6 | 无 BLE 网关 | 地址栏输入 /health/ble-gateways | 403 | ☐ |
## 11. 跨角色协作验证
| # | 协作场景 | 操作 | 预期结果 | 通过 |
|---|----------|------|----------|------|
| X.1 | 标签共享 | 新建标签 → 用 doctor 账号验证 | doctor 可在患者筛选中使用新标签 | ☐ |
| X.2 | 随访指派 | 创建随访 → 用 nurse 账号验证 | 护士可看到并执行该随访 | ☐ |
| X.3 | 团队行动 | 切换团队视图 → 查看全团队行动 | 显示所有团队成员的待办行动 | ☐ |
| X.4 | AI 建议协同 | 查看 AI 建议 → 采纳 → 验证医生可见 | 采纳的建议同步到医生视图 | ☐ |
| X.5 | 告警规则联动 | 编辑告警规则 → 模拟触发条件 | 新规则生效,告警按新阈值生成 | ☐ |
| X.6 | 实时监控→告警 | 实时监控面板异常 → 告警生成 | 异常体征自动触发告警 | ☐ |
## 12. 事件链路验证
| # | 事件链路 | 触发操作 | 验证方式 | 通过 |
|---|----------|----------|----------|------|
| E.1 | 标签创建广播 | 新建标签 | 其他角色用户刷新后可见新标签 | ☐ |
| E.2 | 随访指派推送 | 创建随访任务 | 护士/医生收件箱出现新任务 | ☐ |
| E.3 | AI 分析完成 | 触发 AI 分析 | 分析结果出现在 AI 分析历史 | ☐ |
| E.4 | 告警规则变更 | 修改阈值 → 触发条件 | 按新阈值正确生成/抑制告警 | ☐ |
## 12. 小程序端(医护工作台)
| # | 测试项 | 操作 | 预期结果 | 通过 |
|---|--------|------|----------|------|
| 12.1 | 登录跳转 | health_manager 登录小程序 | 跳转到 `/pages/doctor/index`isMedicalStaff 包含 health_manager | ☐ |
| 12.2 | 工作概览 | 查看 4 个数据卡片 | 我的患者、未读消息、待处理随访、今日咨询 | ☐ |
| 12.3 | 无健康审核区 | 查看页面 | **不显示**"健康审核"区域 | ☐ |
| 12.4 | 快捷操作 | 查看 4 个按钮 | 患者查询、随访记录、告警中心、行动收件箱(**没有**: 化验审核、透析管理、处方管理) | ☐ |
## 测试结果
- 测试人: _________
- 测试日期: _________
- 通过数: ___ / 总数: ___
- 问题记录: