功能修复: 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 统一格式化
145 lines
7.8 KiB
Markdown
145 lines
7.8 KiB
Markdown
# 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 个按钮 | 患者查询、随访记录、告警中心、行动收件箱(**没有**: 化验审核、透析管理、处方管理) | ☐ |
|
||
|
||
## 测试结果
|
||
|
||
- 测试人: _________
|
||
- 测试日期: _________
|
||
- 通过数: ___ / 总数: ___
|
||
- 问题记录:
|