---
name: healthcare-emr-patterns
description: 医疗应用中EMR/EHR的开发模式。临床安全、就诊工作流程、处方生成、临床决策支持集成以及以可访问性为先的医疗数据录入用户界面。
origin: Health1 Super Speciality Hospitals — contributed by Dr. Keyur Patel
version: "1.0.0"
---

# 医疗电子病历开发模式

构建电子病历（EMR）和电子健康档案（EHR）系统的模式。优先考虑患者安全、临床准确性和医生工作效率。

## 使用场景

* 构建患者就诊工作流（主诉、检查、诊断、处方）
* 实现临床记录（结构化文本 + 自由文本 + 语音转文字）
* 设计含药物相互作用检查的处方/用药模块
* 集成临床决策支持系统（CDSS）
* 构建带参考范围高亮显示的检验结果展示
* 实现临床数据审计追踪
* 设计医疗场景下易用的临床数据录入界面

## 工作原理

### 患者安全优先

每个设计决策必须通过以下问题评估："这会对患者造成伤害吗？"

* 药物相互作用**必须**发出警报，不能静默通过
* 异常检验值**必须**以视觉方式标记
* 关键生命体征**必须**触发升级工作流
* 无审计追踪不得修改临床数据

### 单页就诊流程

临床就诊应在单页上垂直流动——无需切换标签页：

```
患者头部信息（固定显示 — 始终可见）
├── 人口学信息、过敏史、当前用药
│
就诊流程（垂直滚动）
├── 1. 主诉（结构化模板 + 自由文本）
├── 2. 现病史
├── 3. 体格检查（按系统分类）
├── 4. 生命体征（自动触发临床评分）
├── 5. 诊断（ICD-10/SNOMED 搜索）
├── 6. 用药（药品数据库 + 相互作用检查）
├── 7. 检查（实验室/影像学医嘱）
├── 8. 计划与随访
└── 9. 签名 / 锁定 / 打印
```

### 智能模板系统

```typescript
interface ClinicalTemplate {
  id: string;
  name: string;             // e.g., "Chest Pain"
  chips: string[];          // clickable symptom chips
  requiredFields: string[]; // mandatory data points
  redFlags: string[];       // triggers non-dismissable alert
  icdSuggestions: string[]; // pre-mapped diagnosis codes
}
```

任何模板中的危险信号必须触发可见且不可关闭的警报——而非通知提示。

### 用药安全模式

```
用户选择药物
  → 检查当前用药是否存在相互作用
  → 检查就诊用药是否存在相互作用
  → 检查患者过敏史
  → 根据体重/年龄/肾功能验证剂量
  → 若为严重相互作用：完全阻止开药
  → 临床医生必须记录覆盖理由才能继续操作
  → 若为重大相互作用：显示警告，要求确认
  → 将所有警报和覆盖理由记录在审计追踪中
```

关键相互作用**默认阻止开药**。临床医生必须明确覆盖，并在审计追踪中记录原因。系统绝不允许静默通过关键相互作用。

### 锁定就诊模式

临床就诊一旦签署：

* 不允许编辑——仅可添加附录（独立的关联记录）
* 原始记录和附录均显示在患者时间线中
* 审计追踪记录签署人、签署时间及所有附录记录

### 临床数据界面模式

**生命体征显示：** 当前值带正常范围高亮（绿/黄/红），与上次对比的趋势箭头，自动计算的临床评分（NEWS2、qSOFA），内联升级指导。

**检验结果展示：** 正常范围高亮，与上次值对比，关键值带不可关闭警报，采集/分析时间戳，待处理医嘱及预期周转时间。

**处方PDF：** 一键生成，包含患者基本信息、过敏史、诊断、药物详情（通用名+商品名、剂量、给药途径、频率、疗程）、临床医生签名栏。

### 医疗场景无障碍设计

医疗界面的要求比典型网页应用更严格：

* 最小对比度4.5:1（WCAG AA）——临床医生在不同光照条件下工作
* 大触摸目标（最小44x44px）——适用于戴手套或快速操作
* 键盘导航——供快速录入数据的熟练用户使用
* 不使用纯颜色指示——始终将颜色与文字/图标配对（色盲临床医生）
* 所有表单字段带屏幕阅读器标签
* 临床警报不使用自动消失的提示——临床医生必须主动确认

### 反模式

* 在浏览器localStorage中存储临床数据
* 药物相互作用检查静默失败
* 关键临床警报使用可关闭提示
* 基于标签页的就诊界面导致临床工作流碎片化
* 允许编辑已签署/锁定的就诊记录
* 无审计追踪显示临床数据
* 使用`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 检测到：华法林 + 阿司匹林 = 严重相互作用
  → 用户界面：红色不可关闭的模态框阻止开药
  → 医生点击“输入理由并覆盖”
  → 输入：“获益大于风险 — 已监测 INR 方案”
  → 覆盖理由及警报记录在审计追踪中
  → 处方在记录覆盖后继续执行
```

### 示例3：锁定就诊 + 附录

```
Encounter #E-2024-0891 signed by Dr. Shah at 14:30
  → All fields locked — no edit buttons visible
  → "Add Addendum" button available
  → Dr. Shah clicks addendum, adds: "Lab results received — Troponin elevated"
  → New record E-2024-0891-A1 linked to original
  → Timeline shows both: original encounter + addendum with timestamps
```
