Files
hms/docs/qa/role-test-plans/R05-operator.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

6.4 KiB
Raw Permalink Blame History

R05 — Operator运营人员业务场景测试计划

角色: operator | 测试账号: operator_test / Admin@2026 | 菜单数: 24 | 重点: 内容运营与积分商城

1. 登录 & 仪表盘

# 测试项 操作 预期结果 通过
1.1 登录 输入 operator_test / Admin@2026 成功登录,左侧菜单 24 项
1.2 运营仪表盘 查看首页 显示"运营仪表盘":运营洞察、积分动态(今日发放/消费)、内容矩阵(已发布/草稿)、今日待办
1.3 AI 摘要 查看顶部 AI 摘要 显示 AI 生成的运营重点摘要
1.4 快捷操作 查看按钮 审核积分订单、发布新文章、推送活动提醒

2. 场景 A — 患者与标签管理

业务链: 管理标签 → 查看患者(只读)

# 步骤 操作 预期结果 通过
A.1 标签管理 /health/tags → 新增"术后康复"标签 → 编辑 → 保存 标签 CRUD 正常(有 tags.manage
A.2 患者列表 /health/patients → 查看列表 只读查看,确认新增按钮是否隐藏(有 patient.list 无 manage
A.3 患者搜索 搜索框输入 → 标签筛选 搜索和筛选正常

交接点: 标签创建后,医护角色可在患者筛选中使用。

3. 场景 B — 内容发布链

业务链: 创建文章 → 编辑 → 提交审核 → 发布 → 验证已发布

# 步骤 操作 预期结果 通过
B.1 创建文章 /health/articles → 新增 → 填写标题/内容 → 保存草稿 文章状态 draft
B.2 编辑文章 点击草稿 → 修改内容 → 保存 内容更新
B.3 发布文章 点击发布 状态 draft → published有 articles.manage 和 articles.review
B.4 内容矩阵 回到运营仪表盘 → 查看内容矩阵 已发布/草稿数量更新

交接点: 已发布文章患者端小程序可见。

4. 场景 C — 积分商城链

业务链: 配置积分规则 → 上架商品 → 查看订单

# 步骤 操作 预期结果 通过
C.1 积分规则 /health/points-rules → 查看 → 编辑规则 可管理积分规则
C.2 新增商品 /health/points-products → 新增 → 填写名称/积分/库存 → 保存 商品出现在列表
C.3 订单管理 /health/points-orders → 查看订单列表 显示兑换订单
C.4 积分动态 回到运营仪表盘 → 查看积分动态 今日发放/消费数据更新

交接点: 商品上架后,患者端小程序积分商城可见可兑换。

5. 场景 D — 线下活动链

业务链: 创建活动 → 查看报名 → 管理

# 步骤 操作 预期结果 通过
D.1 创建活动 /health/offline-events → 新增 → 填写名称/时间/地点 → 保存 活动创建成功
D.2 查看活动 列表查看活动详情 显示报名人数、活动状态

6. 场景 E — 设备与告警查看

业务链: 查看设备状态 → 查看告警统计

# 步骤 操作 预期结果 通过
E.1 设备管理 /health/devices → 查看列表 只读查看(无 devices.manage
E.2 告警仪表盘 /health/alert-dashboard → 查看 只读查看(只有 alerts.list确认操作按钮不可用

7. 场景 F — AI 用量

业务链: 查看 AI 调用统计

# 步骤 操作 预期结果 通过
F.1 AI 用量 /health/ai-usage → 查看 只读查看 AI 调用量

8. 消息

# 测试项 操作 预期结果 通过
8.1 消息列表 /messages → 查看 只读消息列表

9. 权限边界验证

operator 不应访问的模块

# 测试项 操作 预期结果 通过
9.1 无用户管理 地址栏输入 /users 403
9.2 无医护管理 地址栏输入 /health/doctors 403
9.3 无随访管理 地址栏输入 /health/follow-up-tasks 403
9.4 无咨询管理 地址栏输入 /health/consultations 403
9.5 无诊断记录 地址栏输入 /health/diagnoses 403
9.6 无行动收件箱 地址栏输入 /health/action-inbox 403
9.7 无知情同意 地址栏输入 /health/consents 403
9.8 无 AI 分析 地址栏输入 /health/ai-analysis 403
9.9 无系统设置 地址栏输入 /settings 403

10. 跨角色协作验证

# 协作场景 操作 预期结果 通过
X.1 标签共享 新建标签 → 用 doctor 账号验证 doctor 可在患者筛选中使用新标签
X.2 内容发布同步 发布文章 → 验证患者端可见 小程序患者端可见已发布内容
X.3 积分订单联动 患者兑换商品 → 查看订单 订单出现在积分订单列表
X.4 线下活动报名 创建活动 → 小程序端报名 → 查看报名数 报名数实时更新
X.5 积分规则生效 修改积分规则 → 患者端操作 → 验证积分变化 新规则立即生效

11. 事件链路验证

# 事件链路 触发操作 验证方式 通过
E.1 文章发布事件 发布文章 小程序患者端可见article.published 事件消费)
E.2 积分变动事件 积分规则变更 运营仪表盘积分动态数据更新
E.3 商品上架事件 新增积分商品 小程序积分商城可见新商品

11. 小程序端(患者视角)

operator 不在医护列表中,以普通患者身份使用小程序

# 测试项 操作 预期结果 通过
11.1 登录跳转 operator_test 登录小程序 跳转到患者首页isMedicalStaff=false
11.2 患者首页 查看首页 显示体征完成度、今日待办、快捷操作(普通患者视图)

测试结果

  • 测试人: _________
  • 测试日期: _________
  • 通过数: ___ / 总数: ___
  • 问题记录: