# FHIR 与 HL7 v2：实际区别

> 对比 HL7 v2 消息和 FHIR 资源，面向开发者：格式、传输、两种格式下的相同实验室结果、翻译陷阱，以及 Anpheros 接受 v2 的地方。

Source: https://developers.anpheros.com/zh/guides/fhir-vs-hl7-v2

**HL7 v2 是自 20 世纪 80 年代末以来医院系统交换的消息格式——管道分隔的事件，例如“患者入院”或“实验室结果就绪”，通过网络连接在系统之间推送——而 HL7 FHIR 是一个 Web API 标准，应用程序通过 HTTPS 以 JSON 格式读取和写入 Patient 和 Observation 等资源。** 它们不是一次性的选择：大多数医院内部仍在使用 v2，新的应用程序和面向患者的 API 使用 FHIR，集成工作通常是将一种格式翻译成另一种。本页将从您编写代码时关心的角度对它们进行比较，展示两种格式下的相同数据，并解释 Anpheros 接受 v2 的地方。

## 并排对比

| | HL7 v2 | HL7 FHIR R4 |
|---|---|---|
| 风格 | 由事件触发的消息（入院、医嘱、结果） | 您创建、读取、更新、搜索的资源 |
| 格式 | 由换行符分隔的文本段，字段由 `\|` 分隔，组件由 `^` 分隔 | JSON (或 XML) |
| 传输 | 通常在医院网络内部通过 TCP 上的 MLLP | HTTPS REST |
| 查询 | 有限；系统主要推送 | 搜索参数、`_include`、历史记录 |
| 安全 | 网络级别（VPN、私有链接） | OAuth 2.0 / SMART on FHIR、TLS、范围 |
| 灵活性 | 许多可选字段和本地 Z-段；每个接口都需要协商 | 基础资源加上配置文件（US Core、IPS、European IGs） |
| 典型用户 | 医院内部的 EHR、实验室、放射科、计费系统 | 应用、患者访问 API、跨组织交换、AI |

最常见的 v2 消息：

| 消息 | 含义 | 最接近的 FHIR 资源 |
|---|---|---|
| ADT^A01, A03, A08 | 入院、出院、更新患者 | `Patient`、`Encounter` |
| ORM / OML | 医嘱检查 | `ServiceRequest` |
| ORU^R01 | 结果就绪 | `Observation`、`DiagnosticReport` |
| SIU | 计划 | `Appointment` |
| MDM | 文档 | `DocumentReference` |

## 相同的实验室结果在两者中

ORU^R01 结果行（OBX 段）：

```
OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
```

与 HL7 FHIR R4 Observation 相同的、Anpheros 导入该消息后存储的结果：

```json
{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "2093-3", "display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
  "effectiveDateTime": "2026-10-02T07:45:00Z",
  "valueQuantity": {"value": 212.0, "unit": "mg/dL"},
  "interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
  "referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}
```

逐字段对照：OBX-3 变为 `code`，OBX-5 和 OBX-6 变为 `valueQuantity`，OBX-7 `referenceRange`，OBX-8 `interpretation`，OBX-11 `status`，OBX-14 `effectiveDateTime`。HL7 发布了官方的 [HL7 Version 2 to FHIR](https://build.fhir.org/ig/HL7/v2-to-fhir/) 实现指南，其中包含段、数据类型和词汇表的映射。

## 翻译中的常见错误

- **时区。** v2 时间戳（例如 `20261002074500`）通常不包含偏移量；您必须知道发送者的时区。FHIR 在存在时间时需要时区。（Anpheros 将未带时区的 v2 时间读取为 UTC；如果您有偏移量，请发送它。）
- **本地代码。** 许多实验室在 OBX-3 中使用自己的代码而不是 LOINC。好的翻译会保留本地代码，并在可能的情况下将其映射到 LOINC，而不是丢弃它。
- **重复发送。** v2 发送者在超时时会重新传输。如果没有每个结果的稳定标识符，FHIR 存储将充满重复项。
- **一切皆可选。** 同一个字段可能为空、重复，或者被两个发送者以不同的方式使用。验证 FHIR 端；[FHIR R4 validator](https://developers.anpheros.com/tools/fhir-validator) 显示了翻译后的资源缺少什么。
- **更正。** v2 结果状态 `C`（已更正）应更新现有 Observation 并保留其历史记录，而不是创建第二个。

## 何时使用哪种标准

- **在医院内部，现有系统之间：** v2 通常是系统之间沟通的语言。集成引擎负责路由和转换消息。
- **构建应用程序、患者访问 API 或任何跨组织的系统：** 使用 FHIR，并结合 OAuth 和授权。
- **为 AI 或分析提供数据：** 使用 FHIR，因为它易于查询、编码且版本化。
- **两者兼顾：** 常见的实际应用模式——从实验室或 EHR 接收 v2 数据，存储为 FHIR 格式，然后为应用程序提供 FHIR 数据。

## Anpheros 的定位

Anpheros 将患者记录存储为 FHIR R4 格式，并接受一种 HL7 v2 消息类型：**ORU^R01 实验室结果**，通过 HTTPS 发送到 [lab connector](https://developers.anpheros.com/zh/guides/lab-connector)（`POST /v1/patients/{id}/labs/import` 和 `Content-Type: x-application/hl7-v2+er7`）。每个 OBX 都将成为一个实验室 Observation，包含 LOINC 代码、参考范围和解释；报告 ID 保存在 provenance 中，重复发送的报告将被跳过。修正后的结果（OBX-11 = `C`）带有新值，将作为状态为 `amended` 的新 Observation 存储；原始记录保持不变，因此如果您的源系统发送修正，请将之前的 Observation 标记为 `entered-in-error` 或通过 FHIR API 进行更新。一个工作示例是 [Lab results API](https://developers.anpheros.com/zh/guides/lab-results-api)。

它不接受其他 v2 消息（ADT、订单、调度），不监听 MLLP，也不发送 v2。对于这些场景，Anpheros 前端的集成引擎会将消息转换为 FHIR 并通过 API 写入。

## 常见问题解答

### FHIR 会取代 HL7 v2 吗？
短期内不会。v2 仍然是大多数医院的骨干，因为它有效且已集成到现有系统中。FHIR 正在围绕它发展——在应用程序、患者访问和组织间的交换中——两者共存，通常需要进行转换。

### MLLP 是什么？
Minimal Lower Layer Protocol：一种在 TCP 连接上封装 v2 消息的简单方法，每条消息前后都有起始和结束字符，并带有确认 (ACK) 回复。FHIR 使用 HTTPS。

### 我可以自动将 HL7 v2 消息转换为 FHIR 吗？
大部分可以。HL7 的 v2-to-FHIR 实现指南提供了标准映射，集成引擎会实现它们。对于本地代码、Z-segments、时区以及每个发送者如何使用可选字段，预计需要手动处理。

### Anpheros 是否支持 HL7 v2？
是的，用于实验室结果：通过 HTTPS 发布到实验室连接器的 ORU^R01 消息会转换为 FHIR Observations。不支持其他 v2 消息类型和 MLLP 连接。

## 相关资源

- [HL7 v2 到 FHIR 映射](https://developers.anpheros.com/zh/guides/hl7-v2-to-fhir-mapping)：段和字段映射，以及转换器
- [实验室结果 API：HL7 v2、FHIR 和 LOINC](https://developers.anpheros.com/zh/guides/lab-results-api)
- [如何将实验室结果导入 FHIR 记录](https://developers.anpheros.com/zh/guides/import-lab-results-fhir)
- [医疗保健数据互操作性](https://developers.anpheros.com/zh/guides/interoperability)
- [DICOM 与 FHIR：影像数据和临床数据](https://developers.anpheros.com/zh/guides/dicom-vs-fhir)
- [FHIR 平台](https://developers.anpheros.com/zh/guides/fhir)
