Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Сопоставление HL7 v2 с FHIR
Сопоставление сегментов с ресурсами и полей OBX с полями OBX из HL7 v2 ORU^R01 в FHIR R4, ловушки, которые нарушают интеграцию, и конвертер, который вызывается по HTTPS.
Сопоставление HL7 v2 с FHIR означает преобразование каждого сегмента сообщения v2, разделенного символом вертикальной черты, в ресурсы FHIR R4: PID в Patient, OBR в DiagnosticReport (или ServiceRequest), каждый OBX в Observation, с переносом кодов, единиц измерения, диапазонов и времени поле за полем. HL7 публикует официальное руководство по реализации V2-to-FHIR с картами концепций для общих сегментов. Эта страница предоставляет практическое сопоставление для лабораторных результатов (ORU^R01), ловушки, которые нарушают реальные интеграции, и конвертер, который вы можете вызвать через HTTPS: лабораторный коннектор Anpheros.
- MSHSeparators, message type, message id → MessageHeader or provenance
- PIDPatient identity → Patient (or, in Anpheros, the patient in the URL)
- OBRThe order and report → DiagnosticReport, report id and date
- OBXOne result each → Observation with LOINC, value, range, flag
- FHIR recordCoded, versioned resources your apps can read
Сегмент в ресурс
| Сегмент HL7 v2 | Что содержит | Ресурс FHIR R4 | В коннекторе Anpheros lab |
|---|---|---|---|
| MSH | Разделители, отправляющая система, тип сообщения, ID сообщения | MessageHeader (или provenance) |
Разделители считываются из MSH; тип проверяется на ORU^R01; ID сообщения сохраняется для отслеживания |
| PID | Идентификаторы пациента, имя, дата рождения, пол | Patient |
Не используется: пациент — это тот, кто указан в URL запроса, поэтому сообщение не может быть записано в неправильную запись |
| PV1 | Визит | Encounter |
Не используется |
| ORC / OBR | Заказ и отчет: ID исполнителя/разместителя, дата | ServiceRequest, DiagnosticReport |
OBR-3 (или OBR-2) — это ID отчета, OBR-7 — дата по умолчанию |
| OBX | Один результат | Observation |
Одно лабораторное наблюдение (Observation) на OBX |
| NTE | Примечание свободного текста | Observation.note |
Не используется |
Поля OBX: подробное описание
| Поле OBX | Элемент FHIR Observation | Примечания |
|---|---|---|
| OBX-2 тип значения (NM, SN, ST, CWE) | choice of value[x] |
NM и SN становятся valueQuantity; текст остается текстом |
OBX-3 идентификатор code^text^system |
code.coding |
LN в OBX-3.3 означает LOINC; другие системы — это локальные коды лаборатории |
| OBX-5 значение, OBX-6 единица измерения | valueQuantity.value, .unit / .code (UCUM) |
<5 и 6,4 должны быть разобраны намеренно |
| OBX-7 референсный диапазон | referenceRange.low / .high |
3.5-5.1, <200, >40 |
| OBX-8 флаг отклонения | interpretation |
H, L, HH, LL, A, N |
| OBX-11 статус результата | status |
F → final (окончательный), C → amended (исправленный), P → preliminary (предварительный), I → registered (зарегистрированный) |
| OBX-14 время наблюдения | effectiveDateTime |
в v2 время часто не содержит часового пояса; FHIR требует его |
Преобразование сообщения с одним запросом
curl -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: x-application/hl7-v2+er7" \
-H "Idempotency-Key: $(uuidgen)" \
--data-binary @oru_r01.hl7
Ответ содержит информацию о количестве созданных наблюдений, количестве пропущенных как уже импортированных, маркерах, которые не удалось сопоставить, и новых наблюдениях с их кодами. Каждому присваивается стабильный идентификатор, полученный из отчета, теста, времени и значения, поэтому лаборатория, повторно отправляющая то же сообщение, не создает дубликатов.
Ловушки, нарушающие реальные интеграции
- Часовые пояса.
20261002074500не имеет смещения; явно определите зону отправителя. - Локальные коды. Сохраняйте собственный код лаборатории, когда LOINC отсутствует; никогда не удаляйте его.
- Повторные отправки. Без стабильного идентификатора для каждого результата повторные попытки приводят к дубликатам.
- Исправления. OBX-11
Cявляется исправлением; решите, заменяет ли он или добавляет, и пометьте старый результат. - Нечисловые значения.
positive,<5,6,4требуют явных правил, а не предположений.
Что коннектор не делает
Он принимает лабораторные результаты ORU^R01 по HTTPS. Он не принимает сообщения ADT или заказов, не работает по MLLP через TCP (интерфейсный движок спереди может перенаправлять), не создает DiagnosticReport и не сопоставляет пациентов из PID.
Часто задаваемые вопросы
Как отобразить HL7 v2 на FHIR?
Сегмент за сегментом: PID на Patient, PV1 на Encounter, ORC/OBR на ServiceRequest и DiagnosticReport, OBX на Observation, NTE на notes. Руководство по реализации HL7 V2-to-FHIR определяет карты концепций на уровне полей.
Существует ли конвертер HL7 v2 в FHIR?
Да. Интерфейсные движки и библиотеки с открытым исходным кодом преобразуют сообщения; для лабораторных результатов коннектор Anpheros для лабораторий преобразует сообщение ORU^R01 в FHIR R4 Observations одним HTTPS-запросом и сохраняет их в карте пациента.
Какие типы сообщений HL7 v2 принимает Anpheros?
ORU^R01 — лабораторные результаты. Сообщение другого типа получает предупреждение, и читаются только его сегменты OBX; ADT, сообщения заказов и другие сообщения не поддерживаются.
Как представлены флаги аномалий HL7 v2 в FHIR?
OBX-8 становится Observation.interpretation с использованием кодов интерпретации наблюдений HL7 (H, L, HH, LL, A, N).
Связанные материалы
- API лабораторных результатов: HL7 v2, FHIR и LOINC
- FHIR против HL7 v2: практические различия
- Как импортировать лабораторные результаты в запись FHIR
- HL7 v2 и FHIR для клинических панелей мониторинга
- Коннектор для лабораторных данных
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card