Перейти к содержанию
Innovialabs

HL7 и FHIR: как медицинские системы обмениваются данными

Продвинутое3 мин

Коротко

HL7 v2 — это текстовые сообщения о событиях (поступление пациента, результат анализа), которыми системы обмениваются десятилетиями; FHIR — современный стандарт с ресурсами и REST API в JSON. В новых интеграциях обычно выбирают FHIR, но со старым оборудованием и лабораториями всё ещё нужен HL7 v2.

Коротко: в чём разница

HL7 (Health Level Seven) — семейство стандартов обмена медицинскими данными. На практике чаще всего встречаются два:

HL7 v2FHIR
ФорматТекст с разделителями | и ^JSON или XML
МодельСообщения о событияхРесурсы (Patient, Observation и др.)
ТранспортЧаще всего MLLP поверх TCP, файлыHTTP, REST API
Где встречаетсяЛабораторные анализаторы, старые МИС, больничные системыНовые системы, мобильные приложения, порталы пациентов
Порог входаНужен опыт с диалектами конкретных системПривычен веб-разработчикам

Стандарты не исключают друг друга: многие проекты принимают HL7 v2 от лаборатории и внутри работают с FHIR.

Как выглядит HL7 v2

Сообщение состоит из сегментов (строк), сегмент — из полей, разделённых |, поле — из компонентов через ^. Тип сообщения отражает событие: ADT^A01 — поступление пациента, ORM^O01 — заказ исследования, ORU^R01 — результат.

MSH|^~\&|LAB|CLINIC|MIS|CLINIC|202601151030||ORU^R01|MSG00001|P|2.5
PID|1||123456^^^CLINIC^MR||Karimov^Aziz||19850312|M
OBR|1||LAB7781|58410-2^CBC panel^LN
OBX|1|NM|718-7^Hemoglobin^LN||142|g/L|130-170|N|||F
  • MSH — заголовок: отправитель, получатель, тип и версия;
  • PID — данные пациента;
  • OBR — заказ исследования;
  • OBX — конкретный показатель: код, значение, единицы, референс, флаг.

Получатель отвечает подтверждением ACK. Главная сложность HL7 v2 — диалекты: каждый производитель по-своему заполняет поля и добавляет Z-сегменты, поэтому спецификацию интеграции согласуют для каждой пары систем.

Как устроен FHIR

FHIR описывает данные как ресурсы с адресом и стандартными операциями REST. Основные ресурсы для клиники: Patient, Practitioner, Encounter, Appointment, ServiceRequest, Observation, DiagnosticReport, Coverage, Claim.

GET /fhir/Observation?patient=Patient/123&category=laboratory
{
  "resourceType": "Observation",
  "status": "final",
  "code": {
    "coding": [{ "system": "http://loinc.org", "code": "718-7", "display": "Hemoglobin" }]
  },
  "subject": { "reference": "Patient/123" },
  "valueQuantity": { "value": 142, "unit": "g/L", "system": "http://unitsofmeasure.org", "code": "g/L" }
}

Сильные стороны FHIR: единые правила поиска, профили для национальных и проектных требований, подписки на изменения и связка с OAuth 2.0 через SMART on FHIR для приложений. Спецификация опубликована на сайте HL7: hl7.org/fhir.

Типичные интеграции клиники

  • Лаборатория — заказ анализа из МИС уходит в лабораторную систему, результат возвращается и попадает в карту пациента. Часто это HL7 v2.
  • Анализаторы и оборудование — результаты напрямую от приборов, обычно через промежуточное ПО.
  • Медицинская информационная система (МИС) — обмен пациентами, расписанием и визитами с сайтом, колл-центром, мобильным приложением.
  • Страховые компании — проверка полиса, согласование услуг, выставление счетов.
  • Государственные системы — передача данных в национальные платформы по их требованиям; формат определяет оператор системы.

Что продумать перед подключением

  1. Инвентаризация систем: что умеет каждая сторона — HL7 v2, FHIR, собственный API, только файлы.
  2. Справочники и коды: как кодируются анализы, услуги, диагнозы (LOINC, МКБ-10 или внутренние коды) и кто ведёт таблицу соответствия.
  3. Идентификация пациента: по какому ключу сопоставлять записи, чтобы не создать дубли и не перепутать людей.
  4. Интеграционный слой: брокер или интеграционный движок, который принимает сообщения, преобразует форматы и складывает их в очередь, вместо прямых связей «каждый с каждым».
  5. Ошибки и повторы: что происходит, если получатель недоступен; журнал сообщений и ручная повторная отправка.
  6. Безопасность и закон: шифрование канала, аутентификация, журнал доступа и соответствие требованиям к персональным и медицинским данным.
  7. Тестирование: тестовый контур и набор реальных обезличенных сценариев, включая нестандартные случаи.

Частые ошибки

  • Считать, что «поддерживает HL7» означает готовую совместимость — без согласования диалекта не обойтись.
  • Хранить коды анализов в свободном тексте.
  • Интегрировать системы напрямую без очереди и журнала — потерянное сообщение невозможно найти.
  • Использовать реальные данные пациентов в тестовой среде.

Частые вопросы

Для новых API, порталов и мобильных приложений обычно выбирают FHIR. HL7 v2 нужен там, где другая сторона — лаборатория или оборудование — поддерживает только его.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.