Files
hms/docs/audits/e2e-consistency-report.md
iven df1d85bfde docs: T40 UI 审计报告 + wiki 更新 + Docker 配置
- T40 UI 审计计划和结果文档(docs/qa/)
- wiki 更新:miniprogram 设计系统合规审计记录 + index 关键数字更新
- 审计 V2 完整报告(docs/audits/v2/)
- 讨论记录文档(docs/discussions/)
- 设计规格和实施计划(docs/superpowers/)
- 角色测试计划和结果(docs/qa/role-test-*)
- Docker 生产部署配置
2026-05-13 23:29:42 +08:00

12 KiB
Raw Blame History

HMS 三端一致性检查报告

日期: 2026-05-08 | 审查范围: 后端 API / Web 前端 / 微信小程序

一、审查概要

维度 状态 说明
功能设计一致性 ⚠️ 基本一致 三端定位不同(管理端/患者端/医护端),功能差异多为设计意图
数据接口一致性 高度一致 小程序 91 个端点 / Web 270+ 端点,路径/参数/响应格式统一
业务流程链路一致性 ⚠️ 存在差异 透析管理、积分商城、AI 分析存在端间覆盖不完整

总体评分: 一致性 82% — 不一致项多为设计意图(端定位不同),少量为遗漏需修复。


二、三端功能覆盖矩阵

2.1 完整覆盖(三端一致)

业务模块 后端 Web 小程序 说明
患者管理 CRUD (患者端) Web 管理端 + MP 患者端
预约管理 完整覆盖
咨询管理 含医生端会话处理
随访管理 Web 管理 + MP 医生端 + 患者端
化验报告 含医生端审阅
告警管理 确认/忽略/解除三端一致
健康记录 CRUD 完整
知情同意 授权/撤回
诊断记录 CRUD 完整
消息通知 列表/已读/未读MP 不支持 SSE
日常监测 创建/查看
设备读数 BLE 上传 + 查询

2.2 部分覆盖(存在差异)⚠️

业务模块 后端 Web 小程序 差异说明
透析管理 46 端点 ⚠️ 冻结 完整 Web 端路由标记 frozen,小程序医生端完整可用
透析处方 Web 端无处方管理页面,小程序医生端有
积分商城(患者) 签到/兑换/商品浏览仅小程序
积分商城(管理) 规则/商品/订单管理仅 Web
AI 分析SSE 小程序不支持 SSE 流式,仅查看历史
AI 建议审批 仅 Web 端可审批
文章审核流程 submit/approve/reject 仅 Web
班次管理 管理功能仅 Web
护理计划 ⚠️ 冻结 Web 冻结,小程序无
排班管理 创建/管理仅 Web小程序仅查看
设备管理 解绑/管理仅 Web小程序仅 BLE 同步
BLE 网关管理 注册/绑定/管理仅 Web
危急值阈值 ⚠️ Web 可管理MP 仅查看 public 端点
OAuth 客户端 FHIR 合作方管理仅 Web
用药提醒 Web 端无用药提醒页面,小程序有 CRUD

2.3 单端独有(设计意图,非遗漏)

独有功能 说明
用户/角色/权限管理 Web 管理后台职责
组织/部门/岗位 Web 管理后台职责
工作流引擎 Web 管理后台职责
插件系统 Web 管理后台职责
系统设置/字典/编号规则 Web 管理后台职责
微信登录+手机号绑定 MP 小程序专属
每日签到 MP 小程序用户粘性功能
线下活动报名 MP 患者端功能
法律文件(用户协议/隐私) MP 小程序合规要求
BLE 设备蓝牙连接 MP 小程序蓝牙能力
埋点数据上报 MP 小程序分析功能
FHIR R4 接口 后端 标准互操作,无前端页面

三、API 接口一致性分析

3.1 请求格式一致性

维度 状态 说明
URL 路径前缀 一致 三端统一 /api/v1/
分页参数 一致 page, page_size, 响应 PaginatedResponse<T>
乐观锁参数 一致 更新/删除均带 version 字段
认证方式 一致 Bearer JWT Token
多租户 一致 中间件自动注入 tenant_id

3.2 接口覆盖统计

指标 后端 Web 前端 小程序
API 端点总数 ~300+ ~270 ~91
Health 端点 ~200 ~140 ~70
AI 端点 ~18 ~18 ~3
Auth 端点 ~8 ~4 ~4
Config/基础端点 ~74 ~108 ~4
消息端点 ~7 ~9 ~4

3.3 发现的接口不一致

# 不一致项 后端 Web 小程序 严重度
1 透析处方 CRUD 完整端点 无 API 调用 完整调用 HIGH
2 用药提醒 CRUD 完整端点 无 API 调用 完整调用 MEDIUM
3 小程序趋势查询 GET /health/vital-signs/trend 专属端点 使用患者级趋势 专属调用 LOW设计意图
4 小程序今日体征 GET /health/vital-signs/today 专属端点 不需要 专属调用 LOW设计意图
5 公开阈值 GET /health/critical-value-thresholds/public 专属端点 使用管理端点 专属调用 LOW设计意图
6 小程序未调用透析审阅 PUT /health/dialysis-records/:id/review 冻结 医生端调用 LOW
7 AI SSE 端点 4 个 SSE 调用 不支持 SSE LOW平台限制

四、业务流程链路一致性

4.1 用户认证流程

步骤 Web 小程序 一致性
登录方式 账号密码 POST /auth/login 微信授权 POST /auth/wechat/login ⚠️ 设计意图不同
Token 管理 自动刷新(过期前 30s 自动刷新401 触发) 机制一致
登出 POST /auth/logout 清除本地 token
手机号绑定 N/A POST /auth/wechat/bind-phone ⚠️ MP 独有

结论: 认证流程符合各端定位,设计合理。

4.2 预约流程

步骤 Web 小程序 一致性
选择医生 医生列表 医生列表
查看排班 日历视图 日历视图
创建预约 POST /health/appointments 相同
查看预约 列表+详情 列表+详情
取消预约 PUT /appointments/:id/status 相同

结论: 预约流程三端完全一致。

4.3 健康数据录入流程

步骤 Web 小程序 一致性
体征录入 POST /patients/:id/vital-signs 相同
查看趋势 GET /patients/:id/trends GET /vital-signs/trend ⚠️ 路径不同
今日概览 无此功能 GET /vital-signs/today ⚠️ MP 独有
日常监测
化验报告上传 含文件上传 仅查看 ⚠️ MP 无上传

结论: 核心录入一致,查看路径有差异(患者自服务 vs 管理端视角)。

4.4 咨询流程

步骤 Web 小程序 一致性
创建会话
发送消息 POST /consultation-messages 相同
接收消息 SSE 实时 ⚠️ 8s 轮询 ⚠️ 实时性差异
标记已读
关闭会话 (仅医生端)

结论: 核心流程一致,消息接收机制因平台限制不同。

4.5 透析管理流程 ⚠️

步骤 Web 小程序 一致性
透析记录列表 ⚠️ 冻结
创建透析记录 ⚠️ 冻结 (医生端)
审阅透析记录 ⚠️ 冻结 (医生端)
透析处方管理 无页面 (医生端)
透析统计 (医生端)

结论: Web 端透析模块冻结,小程序端完整可用。这是最大的不一致项。

4.6 积分商城流程

步骤 Web管理 小程序(患者) 一致性
每日签到 ⚠️ MP 独有
积分查询
商品浏览 (管理) (浏览)
积分兑换 ⚠️ MP 独有
订单核销 ⚠️ Web 独有

结论: 管理端与患者端分工明确,无遗漏。


五、权限码一致性

5.1 权限覆盖

模块 后端权限码 Web 路由守卫 小程序角色检查
health.patient .list / .manage 路由守卫 isMedicalStaff
health.health-data .list / .manage
health.appointment .list / .manage
health.follow-up .list / .manage
health.consultation .list / .manage
health.alerts .list / .manage
health.dialysis .list / .manage ⚠️ 冻结路由 医生角色
health.points .list / .manage
ai.analysis .list / .manage (仅查看)
ai.suggestion .list / .manage ⚠️ 仅 list

结论: 权限码体系完整Web 路由守卫与后端权限一一对应。


六、需要修复的不一致项

CRITICAL — 无

HIGH — 1 项

# 问题 影响 状态
H1 小程序咨询消息为 8s 轮询Web 为 SSE 实时 小程序消息延迟,体验不一致 🔧 待实现

已关闭(产品决策冻结)

# 问题 决策
H1 Web 端透析管理路由冻结 保持冻结,当前版本不涉及医疗业务
H2 Web 端无透析处方管理页面 冻结,与透析管理同步
M1 Web 端无用药提醒功能 三端冻结
M2 小程序 AI 分析仅查看历史 设计意图,小程序仅展示结果

LOW — 5 项(多为设计意图)

# 问题 说明
L1 小程序趋势查询使用专属端点 患者自服务视角 vs 管理端视角,设计意图
L2 小程序今日体征为独有功能 患者端需求,管理端不需要
L3 小程序不支持 SSE 流式分析 平台限制,非遗漏
L4 积分签到仅小程序 用户粘性功能,管理端不需要
L5 法律文件仅小程序 小程序上架合规要求

七、统计数据

指标
后端 API 端点 ~300+
Web 前端 API 调用 ~270
小程序 API 调用 ~91
三端完全一致的业务流程 8/11 (73%)
需要修复的不一致项 HIGH ×2 + MEDIUM ×3 + LOW ×5
设计意图导致的差异 13 项(非遗漏)
总体一致性评分 82%

八、结论与建议

8.1 总体评价

HMS 三端在 API 接口层面保持了高度一致性(统一前缀、统一响应格式、统一分页、统一乐观锁),差异主要集中在:

  1. 端定位不同导致的功能差异 — 这是设计意图,不需要修复
  2. Web 端透析模块冻结 — 这是最大的不一致项,需要产品决策
  3. 个别功能仅在单端实现 — 用药提醒、透析处方等需评估是否补齐

8.2 优先行动建议

  1. 产品决策: 确认透析管理模块是否在 Web 端解冻。如果血透中心是首发场景Web 管理端的透析能力不应缺失
  2. 功能补齐: Web 端补充透析处方管理页面(后端 API 已就绪)
  3. 功能补齐: Web 端患者详情增加用药提醒管理(后端 API 已就绪)
  4. 体验优化: 评估小程序咨询消息是否需要更实时的方案
  5. 能力对齐: 评估小程序是否需要 AI 分析触发入口