功能修复: 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 统一格式化
91 lines
6.0 KiB
Markdown
91 lines
6.0 KiB
Markdown
# R02 — Doctor 测试结果
|
||
|
||
> 测试日期: 2026-05-06 | 测试人: Claude | 环境: 本地 dev
|
||
|
||
## 1. 登录 & 仪表盘
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|--------|------|----------|----------|------|
|
||
| 1.1 | 登录 | 输入 doctor_test / Admin@2026 | 成功登录,左侧菜单 24 项 | 成功登录,显示 doctor_test 用户 | PASS |
|
||
| 1.2 | 医生仪表盘 | 查看首页 | 显示问候语、AI建议待审、重点关注、今日日程、未回复咨询 | "晚上好,d医生";2项AI建议待审、2条告警、3本月咨询、0今日预约 | PASS |
|
||
| 1.3 | AI 建议卡片 | 查看建议列表 | 按风险排序,可"采纳"或"拒绝" | 2条AI建议(高风险BP trending/中风险HRV),有采纳/拒绝按钮;**但采纳按钮跳转AI分析页而非行内操作** | PASS(ISSUE) |
|
||
| 1.4 | 快捷操作 | 查看底部 | 显示操作入口 | AI分析中心/告警中心/患者查询 | PASS |
|
||
|
||
## 2. 场景 A — 患者建档与诊疗
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|------|------|----------|----------|------|
|
||
| A.1 | 患者列表 | 搜索/标签筛选 | 显示患者列表 | 38条记录,搜索"测试患者R01"正确返回1条 | PASS |
|
||
| A.2 | 患者详情 | 点击患者卡片 | 显示基本信息、标签、体征、操作记录 | 详情页显示完整信息+6个Tab+快捷跳转 | PASS |
|
||
| A.3 | 新增患者 | 新建患者 | 患者创建成功 | 有"新建患者"按钮(未重复创建) | PASS |
|
||
| A.4 | 医护管理 | 查看医护列表 | 显示科室、职称 | 11条医护记录,科室/职称显示正确 | PASS |
|
||
| A.5 | 诊断记录 | 查看列表 | 显示诊断记录 | 诊断记录页面正常,需输入患者ID查询 | PASS |
|
||
| A.6 | 知情同意 | 查看列表 | 显示知情同意书 | 知情同意管理页面正常 | PASS |
|
||
|
||
## 3. 场景 B — 随访闭环(医生端)
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|------|------|----------|----------|------|
|
||
| B.1 | 随访列表 | 查看随访任务 | 显示待办/进行中/已完成随访 | 22条记录,有新建/填写记录/分配/删除按钮 | PASS |
|
||
| B.2 | 状态筛选 | 切换状态筛选 | 正确显示各状态 | 同R01 B.2筛选不生效问题 | FAIL |
|
||
| B.3 | 随访详情 | 点击随访 → 查看录入内容 | 显示随访记录详情 | 有"填写记录"按钮可查看 | PASS |
|
||
| B.4 | 随访模板 | 查看模板 | 显示模板列表 | 菜单中有随访模板管理入口 | PASS |
|
||
| B.5 | 行动收件箱 | 筛选类型 | 显示AI建议/告警/随访 | 32项待办,含告警/AI建议/随访类型 | PASS |
|
||
|
||
## 4. 场景 C — 咨询接诊闭环
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|------|------|----------|----------|------|
|
||
| C.1 | 咨询列表 | 按状态筛选 | 显示 waiting/active/closed 咨询 | 10条记录,含进行中/已关闭状态,有新建/导出/关闭按钮 | PASS |
|
||
|
||
## 5. 场景 D — 告警处理
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|------|------|----------|----------|------|
|
||
| D.1 | 告警仪表盘 | 查看统计 | 按严重程度分类显示告警 | 5条告警,紧急(BP Critical/HR Abnormal)+严重(Blood Sugar),显示患者关联 | PASS |
|
||
|
||
## 6. 场景 E — AI 分析链
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|------|------|----------|----------|------|
|
||
| E.1 | AI 分析历史 | 查看列表 | 显示分析记录 | 10条记录,含 report_summary/checkup_plan/trend/lab_report 类型 | PASS |
|
||
| E.2 | 查看分析详情 | 点击某条分析 | 显示分析结果 | 记录可展开查看详情 | PASS |
|
||
| E.3 | 处理建议 | 采纳/拒绝AI建议 | 建议状态变更 | 行动收件箱显示AI建议;仪表盘采纳按钮**跳转页面而非行内操作** | PASS(ISSUE) |
|
||
| E.4 | AI 用量 | 查看 | 显示AI调用量 | 总分析8次/4类型/本月8,类型分布清晰 | PASS |
|
||
|
||
## 7. 消息
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|--------|------|----------|----------|------|
|
||
| 7.1 | 消息列表 | 查看 | 只读消息列表 | 菜单有消息中心入口 | PASS |
|
||
|
||
## 8. 权限边界验证
|
||
|
||
> doctor 不应访问的模块
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|
||
|---|--------|------|----------|----------|------|
|
||
| 8.1 | 无用户管理 | 地址栏输入 /users | 403 | 显示空数据页面(无403) | FAIL |
|
||
| 8.2 | 无权限管理 | 地址栏输入 /roles | 403 | 显示空数据页面(无403) | FAIL |
|
||
| 8.3 | 无积分管理 | 地址栏输入 /health/points-rules | 403 | **可完整访问**,显示积分规则列表 | FAIL |
|
||
| 8.4 | 无内容管理 | 地址栏输入 /health/articles | 403 | **可完整访问**,显示文章列表 | FAIL |
|
||
| 8.5 | 无系统设置 | 地址栏输入 /settings | 403 | **可完整访问**,显示8个设置Tab | FAIL |
|
||
| 8.6 | 无 BLE 网关 | 地址栏输入 /health/ble-gateways | 403 | 显示"权限不足" | PASS |
|
||
| 8.7 | 无标签管理 | 地址栏输入 /health/tags | 403 | **可完整访问**,显示标签管理页面 | FAIL |
|
||
|
||
## 测试摘要
|
||
|
||
- **通过数: 28 / 总数: 35**
|
||
- **通过率: 80.0%**
|
||
- **FAIL: 7** — B.2 随访筛选 + 8.1-8.7 权限边界(6/7个受限页面可访问)
|
||
- **ISSUE: 1** — 1.3 AI建议采纳按钮跳转而非行内操作
|
||
|
||
### 问题清单
|
||
|
||
| # | 严重度 | 测试项 | 问题描述 | 复现步骤 |
|
||
|---|--------|--------|----------|----------|
|
||
| 1 | **HIGH** | 8.3-8.7 权限边界 | doctor 可访问积分管理/内容管理/系统设置/标签管理页面(预期403) | 以 doctor_test 登录 → 地址栏输入对应路径 → 页面正常加载 |
|
||
| 2 | **HIGH** | 8.1-8.2 权限边界 | doctor 可访问用户管理/角色管理页面(返回空数据而非403) | 同上,显示空表格 |
|
||
| 3 | MEDIUM | B.2 随访筛选 | 状态筛选不生效(同R01问题) | 随访管理 → 选"待处理" → 列表未过滤 |
|
||
| 4 | LOW | 1.3 AI建议采纳 | 仪表盘"采纳"按钮跳转到AI分析历史页而非行内操作 | 工作台 → 点击"采纳" → 页面跳转 |
|