healthcare-emr-patterns

healthcare-emr-patterns

热门

用于医疗应用的EMR/EHR开发模式。临床安全、就诊工作流程、处方生成、临床决策支持集成以及面向无障碍的医疗数据录入UI。

23万Star
3.5万Fork
更新于 2026/7/19
SKILL.md
readonly只读
name
healthcare-emr-patterns
description

EMR/EHR development patterns for healthcare applications. Clinical safety, encounter workflows, prescription generation, clinical decision support integration, and accessibility-first UI for medical data entry.

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)——用于戴手套或匆忙操作
  • 键盘导航——供快速输入数据的熟练用户使用
  • 无纯颜色指示——始终将颜色与文本/图标配对(色盲临床医生)
  • 所有表单字段都有屏幕阅读器标签
  • 临床警报不能自动消失——临床医生必须主动确认

反模式

  • 将临床数据存储在浏览器localStorage中
  • 药物相互作用检查静默失败
  • 关键临床警报使用可关闭的toast
  • 基于标签页的就诊UI碎片化临床工作流程
  • 允许编辑已签名/锁定的就诊记录
  • 显示临床数据但没有审计追踪
  • 对临床数据结构使用any类型

示例

示例1:患者就诊流程

医生打开患者#4521的就诊
  → 固定头部显示:"Rajesh M, 58岁男, 过敏: 青霉素, 当前用药: 二甲双胍500mg"
  → 主诉:选择"胸痛"模板
    → 点击标签:"胸骨后", "向左臂放射", "压榨性"
    → 红色标记"压榨性胸骨后胸痛"触发不可关闭的警报
  → 检查:心血管系统——"S1 S2正常,无杂音"
  → 生命体征:心率110,血压90/60,血氧饱和度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链接到原始记录
  → 时间线显示两者:原始就诊 + 附录,带有时间戳