Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
HL7 v2 и FHIR для клинических панелей мониторинга
От лабораторного сообщения HL7 v2 ORU^R01 до плитки на панели мониторинга: FHIR Observations с диапазонами и флагами, подписанные веб-хуки, отсутствие дубликатов — и почему это не мониторинг у постели больного.
Клиническому дашборду нужны результаты в виде структурированных, кодированных данных в момент их получения — тест, значение, единица измерения, референсный диапазон и флаг — а не PDF-файлы, которые ему приходится читать. Лаборатории по-прежнему отправляют большинство результатов в виде сообщений HL7 v2 ORU^R01, в то время как дашборды проще всего создавать на основе FHIR R4 Observations. Anpheros находится между ними: лабораторная система отправляет сообщение HL7 v2 (или отчет в формате CSV или JSON) через HTTPS, каждый результат становится FHIR Observation с его кодом (LOINC, если его отправила лаборатория), значением и референсным диапазоном, а подписанный вебхук уведомляет ваш дашборд о поступлении новых результатов.
- Laboratory systemSends an HL7 v2 ORU^R01 message or a CSV report
- Lab connectorPOST /v1/patients/{id}/labs/import over HTTPS
- FHIR ObservationsLOINC code, value, unit, reference range, H/L flag
- Signed webhookresource.created reaches your server, retried on failure
- Your dashboardReads the new results and updates the tile
Что получает дашборд
Каждый сегмент OBX сообщения становится одним лабораторным наблюдением (Observation):
| Поле HL7 v2 OBX | FHIR R4 Observation | На дашборде |
|---|---|---|
| OBX-3 test code | code (LOINC, если лаборатория его отправляет; локальный код сохраняется как код лаборатории) |
Название теста; LOINC делает его сопоставимым между лабораториями |
| OBX-5 value, OBX-6 unit | valueQuantity (единица UCUM) |
Число и его единица измерения |
| OBX-7 reference range | referenceRange |
Нормальный диапазон |
| OBX-8 abnormal flag | interpretation (H, L, …) |
Красный или синий флажок |
| OBX-14 time | effectiveDateTime |
Время взятия образца |
Импорт сообщения и реакция на него
Отправьте сообщение для созданного вами пациента (или того, на кого у вас есть разрешение):
import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) }); // a sandbox key, sk_test_…
const message = await readFile('oru_r01.hl7', 'utf8');
const result = await anpheros.labs.importHl7(patientId, message, { sourceSystem: 'lab-lis' });
console.log(result); // created, skipped and unmapped counts
Затем позвольте платформе вызвать ваш бэкенд панели управления вместо опроса:
await anpheros.webhooks.create('https://dashboard.example.org/anpheros/hook', { events: ['resource.created'] });
Каждая доставка подписана (проверьте ее с помощью verifyWebhookSignature из SDK) и повторяется, если ваш сервер не отвечает. Событие содержит тип ресурса, идентификатор и пациента; прочитайте новые Observations и обновите плитку. Повторно отправленные отчеты пропускаются, поэтому лаборатория, которая повторно передает данные при тайм-ауте, не создает дублирующихся строк на экране.
Выбор HL7 v2 или FHIR для каждого канала связи
| Канал связи | Использование | Причина |
|---|---|---|
| Лаборатория → слой данных | HL7 v2 ORU^R01 (или CSV/JSON) | То, что уже генерируют лабораторные системы; никаких изменений с их стороны |
| Слой данных → панель управления | FHIR R4 Observation + webhooks | Кодированный, версионированный JSON, который ваш фронтенд может читать напрямую |
| Панель управления → другие приложения | FHIR R4, с согласия пациента | Единый стандарт для всех потребителей |
Чем это не является
- Не поток данных с прикроватного монитора. Anpheros принимает лабораторные отчеты по HTTPS. Он не получает непрерывные волновые формы или потоки данных с мониторов интенсивной терапии и не является системой оповещения: оповещения, влияющие на уход, требуют сертифицированной клинической системы.
- Не интерфейсный движок MLLP. Сообщения поступают по HTTPS; если ваша лаборатория работает только с MLLP через TCP, интерфейсный движок на переднем плане перенаправляет их.
- Один тип сообщения HL7 v2. Принимаются лабораторные результаты ORU^R01; заказы (ORM/OML) и сообщения ADT не принимаются.
Часто задаваемые вопросы
Может ли дашборд напрямую читать лабораторные результаты HL7 v2?
Может, но тогда каждому дашборду потребуется собственный парсер HL7 v2, сопоставление кодов и дедупликация. Однократное преобразование в FHIR R4 Observations с кодами LOINC предоставляет каждому экрану одни и те же чистые данные.
Как быстро импортированные результаты достигают дашборда?
Запрос на импорт возвращается, когда Observations сохранены, и одновременно ставится в очередь resource.created вебхуков для каждого из них. Повторные попытки доставки выполняются, если ваш конечный пункт недоступен.
Как помечаются аномальные результаты?
OBX-8 становится interpretation Observation (например, H или L), а OBX-7 — его referenceRange, чтобы дашборд мог отображать как флаг, так и нормальный диапазон.
Поддерживает ли Anpheros мониторинг в реанимации?
Нет. Он хранит лабораторные и клинические результаты и уведомляет ваши системы о новых данных; непрерывный мониторинг у постели больного и клинические сигналы остаются за сертифицированными медицинскими устройствами.
Связанные материалы
- API лабораторных результатов: HL7 v2, FHIR и LOINC
- Как импортировать лабораторные результаты в запись FHIR
- Коннектор для лабораторных данных: справочник конечных точек
- FHIR против HL7 v2: практические различия
- Удаленный мониторинг пациентов с помощью FHIR
- Вебхуки
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card