全系统前端走查 — 业务流程/UI/功能问题清单
日期: 2026-05-03 | 参与者: Claude 全系统模拟走查
背景
对 HMS Web 前端全部 35+ 页面进行逐页走查,模拟用户操作,覆盖基础模块(7 页)+ 健康管理模块(25+ 页)+ 插件模块(2 页)。截图存档于 docs/walkthrough/。
走查范围
| 模块 |
页面数 |
走查状态 |
| 工作台 |
1 |
已走查 |
| 基础模块(用户/角色/组织/工作流/消息/设置) |
6 |
已走查 |
| 健康管理 — 统计报表 |
1 |
已走查 |
| 健康管理 — 患者医护(患者列表/详情/医护/标签) |
4 |
已走查 |
| 健康管理 — 预约排班(预约/排班) |
2 |
已走查 |
| 健康管理 — 随访咨询(随访任务/记录/咨询/模板) |
4 |
已走查 |
| 健康管理 — 积分运营(规则/商品/订单/活动) |
1 |
已走查(规则) |
| 健康管理 — 内容运营(文章/分类/标签/编辑器) |
1 |
已走查(文章) |
| 健康管理 — AI(Prompt/分析/用量) |
1 |
已走查(分析历史) |
| 健康管理 — 告警(列表/仪表盘/规则) |
2 |
已走查 |
| 健康管理 — 设备/透析/行动收件箱 |
3 |
已走查 |
| 插件管理 |
1 |
已走查 |
A. 发现的问题(按严重程度排序)
P0 — 数据展示错误
| # |
页面 |
问题 |
影响 |
| A1 |
告警列表/仪表盘/行动收件箱 |
患者姓名全部显示"未知"或 ID 截断 — EntityName 组件未能解析告警关联的患者姓名 |
运营人员无法识别是哪个患者的告警 |
| A2 |
告警列表/仪表盘 |
严重程度 "high"/"medium" 未翻译 — 与 "紧急" 混用,枚举映射不完整 |
界面不一致,用户困惑 |
| A3 |
告警列表/仪表盘 |
状态 "active" 未翻译 — 应显示"未处理"或"活跃" |
界面不一致 |
| A4 |
咨询管理 |
所有咨询患者显示"未知"、医护显示"未分配" — 咨询关联的患者/医护名称未正确解析 |
无法区分不同咨询 |
P1 — 功能缺陷/体验问题
| # |
页面 |
问题 |
建议 |
| B1 |
工作台 |
3 个服务状态卡始终显示"数据加载中..." |
检查后端 health check API 是否响应 |
| B2 |
工作台 |
"业务模块 0/8" — 插件未启用但显示比例,可能误导 |
加文字说明或改为隐藏 |
| B3 |
统计报表 |
"医护人数 0" — 实际有 9 条医护记录 |
统计查询逻辑可能有误 |
| B4 |
设备管理 |
查询需要手动输入患者 ID,无患者搜索下拉 |
改为 Select 搜索选择患者 |
| B5 |
告警列表 |
"规则名称"列全部显示 "-" |
告警的 detail.rule_name 字段可能为空或解析逻辑有误 |
| B6 |
排班管理 |
需先选择医护才能查看,无初始引导 |
加空状态引导或默认展示本周排班 |
P2 — 优化建议
| # |
页面 |
问题 |
建议 |
| C1 |
全局 |
测试数据过多(大量 E2E_* 记录)影响走查 |
提供测试数据清理脚本 |
| C2 |
告警列表 |
患者列用 ID 截断而非头像+姓名 |
对齐患者列表页的展示风格 |
| C3 |
随访管理 |
"未分配"负责人显示不直观 |
加筛选"未分配"快捷入口 |
| C4 |
AI 分析历史 |
患者列显示 ID 截断(019dba80...) |
解析为患者姓名 |
B. 业务流程完整性评估
B.1 核心医疗流程
| 流程 |
链路 |
完整度 |
备注 |
| 患者建档 → 健康数据 → 告警 |
患者创建 → 详情 → 健康数据Tab → 告警列表 |
✅ 完整 |
告警自动触发正常 |
| 预约排班 → 就诊 → 随访 |
预约创建 → 状态变更 → 随访任务 |
✅ 完整 |
预约状态流转齐全 |
| 随访任务 → 填写记录 → 完成 |
任务列表 → 填写记录 → 完成 |
✅ 完整 |
分配/填写/删除齐全 |
| 咨询 → 消息 → 关闭 |
咨询创建 → 消息交互 → 关闭 |
⚠️ 部分 |
患者名显示"未知" |
| AI 分析 → 建议 → 行动 |
AI分析历史 → 行动收件箱 → 处理 |
⚠️ 部分 |
SSE 端点无 UI 触发入口 |
| 告警 → 确认 → 处理 |
告警列表 → 确认/忽略 → 行动收件箱 |
✅ 完整 |
告警仪表盘+行动收件箱联动 |
| 积分 → 规则 → 商品 → 兑换 |
积分规则 → 商品管理 → 订单 |
✅ 完整 |
连续打卡奖励体系完善 |
| 内容 → 创作 → 审核 → 发布 |
文章编辑 → 提交审核 → 发布 → 撤回 |
✅ 完整 |
审核流程齐全 |
B.2 跨模块联动
| 联动 |
状态 |
发现 |
| 患者 → 预约 → 排班 |
✅ |
患者详情有"预约记录"快捷跳转 |
| 患者 → 随访 → 咨询 |
✅ |
患者详情有"随访任务""咨询记录"快捷跳转 |
| 患者 → 透析 → AI |
✅ |
患者详情有"透析记录""AI 分析"快捷跳转 |
| 告警 → 患者 |
⚠️ |
链接存在但 EntityName 解析失败 |
| 工作流 → 消息 |
✅ |
工作流事件触发消息通知(消息中心有记录) |
| 插件 → 权限 → 菜单 |
✅ |
插件启用后自动注册权限和菜单 |
B.3 缺失功能/断点
| 缺失 |
严重程度 |
说明 |
| AI SSE 触发 UI |
P1 |
4 个 SSE 端点(分析/趋势/解读/摘要)无前端入口 |
| 设备数据同步 |
P2 |
设备管理有查询但无数据,缺少绑定/解绑流程 |
| 随访模板 → 自动创建任务 |
P2 |
模板管理存在但缺少"基于模板创建周期任务"流程 |
| 告警规则管理 |
P2 |
告警规则列表页面存在但未深入验证 |
C. UI/UX 一致性评估
C.1 优秀设计
- 患者详情页 — 6 个 Tab + 5 个快捷跳转按钮,信息架构清晰
- 行动收件箱 — 统一聚合告警/AI建议/随访,优先级标签醒目
- 内容管理 — 草稿/待审核/已发布/已拒绝 完整内容生命周期
- 积分体系 — 连续打卡 7/14/30 天阶梯奖励,设计贴心
C.2 一致性问题
- 实体名称显示 — 患者列表用头像+姓名,告警用 ID 截断,咨询显示"未知"
- 枚举翻译 — 部分状态已翻译("已确认"/"活跃"),部分显示英文("active"/"high")
- 空状态处理 — 排班"请先选择医护"、透析"请先选择患者",但设备管理直接"No data"
结论 / 待定
核心发现
- 功能完整度高 — 35+ 页面中所有核心业务流程可走通,CRUD 齐全
- 主要问题集中在数据展示层 — EntityName 组件解析失败、枚举翻译不完整
- AI SSE 端点无前端入口 — 后端能力已就绪,前端未对接
- 行动收件箱是亮点 — 统一工作台概念执行良好
待讨论
- EntityName 解析失败是否需要后端 API 优化(返回关联名称)还是前端 batch 解析?
- AI SSE 端点的管理界面何时对接?
- 枚举翻译统一方案(i18n key vs 常量映射)?
- 测试数据清理策略?