| name | healthcare-emr-patterns |
| description | 医疗应用程序的 EMR/EHR 开发模式。临床安全、就诊工作流、处方生成、临床决策支持集成,以及医疗数据录入的无障碍优先 UI。 |
| origin | Health1 Super Speciality Hospitals — 贡献者:Dr. Keyur Patel |
| version | 1.0.0 |
医疗 EMR 开发模式
用于构建电子病历(EMR)和电子健康记录(EHR)系统的模式。优先考虑患者安全、临床准确性和从业者效率。
何时使用
- 构建患者就诊工作流(主诉、检查、诊断、处方)
- 实现临床笔记记录(结构化 + 自由文本 + 语音转文字)
- 设计带有药物相互作用检查的处方/药物模块
- 集成临床决策支持系统(CDSS)
- 构建带有参考范围高亮显示的实验室结果显示
- 为临床数据实现审计跟踪
- 为临床数据录入设计医疗无障碍 UI
工作原理
患者安全第一
每个设计决策都必须根据以下标准进行评估:"这可能伤害患者吗?"
- 药物相互作用必须发出警报,而非静默通过
- 异常实验室值必须视觉标记
- 危急生命体征必须触发升级工作流
- 没有审计跟踪的临床数据修改
单页就诊流程
临床就诊应在单页上垂直流动——无需切换选项卡:
患者标题(粘性 — 始终可见)
├── 人口统计、过敏、活动药物
│
就诊流程(垂直滚动)
├── 1. 主诉(结构化模板 + 自由文本)
├── 2. 现病史
├── 3. 体格检查(按系统)
├── 4. 生命体征(自动触发临床评分)
├── 5. 诊断(ICD-10/SNOMED 搜索)
├── 6. 药物(药物数据库 + 相互作用检查)
├── 7. 检查(实验室/放射科医嘱)
├── 8. 计划与随访
└── 9. 签署 / 锁定 / 打印
智能模板系统
interface ClinicalTemplate {
id: string;
name: string;
chips: string[];
requiredFields: string[];
redFlags: string[];
icdSuggestions: string[];
}
任何模板中的危险信号必须触发可见的、不可关闭的警报——而非 toast 通知。
药物安全模式
用户选择药物
→ 检查当前药物的相互作用
→ 检查就诊药物的相互作用
→ 检查患者过敏
→ 根据体重/年龄/肾功能验证剂量
→ 如果为危急相互作用:完全阻止开药
→ 临床医生必须记录覆盖原因才能继续越过阻止
→ 如果为重要相互作用:显示警告,需要确认
→ 在审计跟踪中记录所有警报和覆盖原因
危急相互作用默认阻止开药。临床医生必须明确覆盖并记录存储在审计跟踪中的原因。系统从不静默允许危急相互作用。
锁定就诊模式
一旦临床就诊被签署:
- 不允许编辑——仅允许附录(单独的关联记录)
- 原始记录和附录都出现在患者时间线中
- 审计跟踪记录签署人、时间以及任何附录记录
临床数据的 UI 模式
生命体征显示: 当前值带有正常范围高亮显示(绿色/黄色/红色),与之前对比的趋势箭头,自动计算的临床评分(NEWS2、qSOFA),内联升级指导。
实验室结果显示: 正常范围高亮显示,与前值对比,危急值带有不可关闭的警报,采集/分析时间戳,带有预期周转时间的待处理医嘱。
处方 PDF: 一键生成,包含患者人口统计、过敏、诊断、药物详情(通用名 + 商品名、剂量、途径、频率、持续时间)、临床医生签署栏。
医疗无障碍性
医疗 UI 的要求比典型 Web 应用更严格:
- 最低 4.5:1 对比度(WCAG AA)——临床医生在各种光照条件下工作
- 大触摸目标(最小 44x44px)——用于戴手套/匆忙时的交互
- 键盘导航——用于快速输入数据的熟练用户
- 无仅颜色指示器——始终将颜色与文本/图标配对(色盲临床医生)
- 所有表单字段上的屏幕阅读器标签
- 临床警报无自动关闭的 toast——临床医生必须主动确认
反模式
- 在浏览器 localStorage 中存储临床数据
- 药物相互作用检查中的静默失败
- 危急临床警报的可关闭 toast
- 碎片化临床工作流的基于选项卡的就诊 UI
- 允许编辑已签署/锁定的就诊
- 显示没有审计跟踪的临床数据
- 对临床数据结构使用
any 类型
示例
示例 1:患者就诊流程
医生打开患者 #4521 的就诊
→ 粘性标题显示:"Rajesh M, 58岁男性, 过敏:青霉素, 活动药物:二甲双胍 500mg"
→ 主诉:选择"胸痛"模板
→ 点击芯片:"胸骨后"、"放射至左臂"、"压榨性"
→ 危险信号"压榨性胸骨后胸痛"触发不可关闭的警报
→ 检查:CVS 系统 — "S1 S2 正常,无杂音"
→ 生命体征:HR 110, BP 90/60, SpO2 94%
→ NEWS2 自动计算:分数 8, 高风险, 显示升级警报
→ 诊断:搜索"ACS" → 选择 ICD-10 I21.9
→ 药物:选择阿司匹林 300mg
→ CDSS 检查与二甲双胍:无相互作用
→ 签署就诊 → 锁定,此后仅可添加附录
示例 2:药物安全工作流
医生为患者 #4521 开华法林处方
→ CDSS 检测到:华法林 + 阿司匹林 = 危急相互作用
→ UI:红色不可关闭模态框阻止开药
→ 医生点击"输入原因覆盖"
→ 输入:"利大于弊 — 监测 INR 方案"
→ 覆盖原因 + 警报存储在审计跟踪中
→ 处方继续进行,带有记录的覆盖
示例 3:锁定就诊 + 附录
就诊 #E-2024-0891 由 Shah 医生于 14:30 签署
→ 所有字段锁定 — 无可见编辑按钮
→ "添加附录"按钮可用
→ Shah 医生点击附录,添加:"收到实验室结果 — 肌钙蛋白升高"
→ 新记录 E-2024-0891-A1 关联到原始记录
→ 时间线显示两者:原始就诊 + 带时间戳的附录