Для розробників

Лабораторний конектор: як лабораторний звіт у форматі HL7 v2, CSV або JSON перетворюється на FHIR Observations за один запит

Як підключити лабораторію до запису пацієнта: один POST із повним звітом (HL7 v2 ORU^R01, CSV або JSON), результати зіставлені з LOINC із одиницями вимірювання, референтними діапазонами та лабораторією як виконавцем, незіставлені маркери повертаються. Лабораторний конектор Anpheros із правилами, які він застосовує.

від Опубліковано 4 хв читання

Лабораторія має одне завдання в інтеграції: внести звіт до запису пацієнта без повторного введення, без втрати діапазону референсних значень та без створення формату, який ніхто інший не читає. Лабораторний конектор Anpheros приймає звіт у тому вигляді, в якому його вже надає лабораторія (HL7 v2, CSV або JSON), і перетворює кожен результат на Observation у форматі FHIR з кодом LOINC, одиницею вимірювання, діапазоном референсних значень, датою та назвою лабораторії як виконавця. Цей посібник є контрактом.

Технічна версія для розробників: Лабораторний конектор · API лабораторних результатів на developers.anpheros.com, з запитами, відповідями та обмеженнями. Ця сторінка є версією простою мовою.

Один запит

POST /v1/patients/{patient_id}/labs/import
Authorization: Bearer <project key>
Content-Type: text/csv | x-application/hl7-v2+er7 | application/json
X-Anpheros-Source-System: labx        (необов'язково; записується в Provenance)
Idempotency-Key: <report id>          (необов'язково; повторний запит повертає ту саму відповідь)

Відповідь повідомляє, що сталося:

{"created": 3, "skipped": 0, "unmapped": ["Marker foarte rar"], "warnings": [],
 "observations": [{"id": "…", "marker": "TSH", "code": "3016-3", "system": "http://loinc.org",
                   "value": 2.1, "unit": "mUI/L", "date": "2026-09-01"}]}

Формати

HL7 v2 ORU^R01, як текст ER7. OBX-3 — це ідентифікатор (code^text^LN — це LOINC; локальний код зберігається як власний код лабораторії), OBX-5 — значення, OBX-6 — одиниця вимірювання, OBX-7 — діапазон референсних значень, OBX-8 — прапорець аномальності (стає interpretation), OBX-11 — статус, OBX-14 або OBR-7 — дата. MSH-4 називає відправляючу установу, яка стає виконавцем; OBR-3 та MSH-10 стають ідентифікатором звіту в Provenance. Результати, що очікують, видалені або неправильні (I, X, D, W), а також сегменти OBX без значення не стають Observations і згадуються у warnings.

CSV з рядком заголовка; роздільники , ; або табуляція, десяткова кома прийнятна, дати в форматі ISO, DD.MM.YYYY або DD/MM/YYYY. Розпізнавані стовпці румунською або англійською мовами: маркер, значення, одиниця вимірювання, діапазон референсних значень (70-100, <5, >3.5) або ref_low/ref_high, дата, необов'язковий код LOINC, примітка. CSV не містить інформації про лабораторію, тому виконавець відсутній, якщо ви не надсилаєте X-Anpheros-Acting-As.

Analiza;Rezultat;UM;Interval de referinta;Data
Hemoglobina glicozilata (HbA1c);6,4;%;4,0-5,6;01.09.2026
TSH;2,1;mUI/L;0,4-4,0;01.09.2026

JSON, коли у вас вже є структуровані дані: {"date": "2026-09-01", "origin": "report-77", "laboratory": "Synevo", "items": [{"marker": "TSH", "value": 2.1, "unit": "mUI/L", "ref_low": 0.4, "ref_high": 4.0, "code": "3016-3"}]}.

Правила зіставлення, що мають значення

  • LOINC, якщо надано, інакше за назвою. Назви зіставляються з назвами LOINC та синонімами румунською та англійською мовами. Назва, яка відповідає кільком концепціям або має кваліфікатор, якого немає у концепції (сеча, не-ЛПНЩ, вільний, співвідношення), не вгадується: вона зберігає код лабораторії під urn:anpheros:lab-code і з'являється в unmapped, щоб ви могли покращити зіставлення на своїй стороні. Надсилайте коди LOINC, коли вони у вас є.
  • Значення ніколи не конвертуються. Сечовина та азот сечовини — це різні коди; ЛПНЩ прямий та ЛПНЩ розрахунковий — це різні коди; глюкоза з сироватки та з капілярної крові — це різні коди. Конектор обирає правильний за назвою та методом і залишає число без змін.
  • Час зберігає свою зону. Час v2 з зміщенням зберігається; без нього використовується зміщення MSH-7 з попередженням; без жодного зміщення зберігається лише дата. Час у CSV не має зони і зберігається як дати.
  • Ідемпотентність. Надішліть той самий звіт двічі з тим самим Idempotency-Key, і ви отримаєте ту саму відповідь і жодних дублікатів.
  • Provenance для кожного результату: вихідна система, ідентифікатор звіту та виконавець, як того вимагає HL7 Europe Laboratory Report.

Що бачить пацієнт

Результати з'являються в записі особи та, якщо вони використовують Anpheros Daily, на їхньому телефоні одразу після надходження, з діапазоном референсних значень та тенденцією за попередніми звітами. Нічого сканувати, нічого повторно вводити. Якщо результат аномальний, людина бачить прапорець; додаток його не інтерпретує.

Тестування

Пісочниця безкоштовна, а синтетичні пацієнти вже мають історію лабораторних досліджень. Надішліть звіт одному з них і прочитайте його назад:

curl -X POST "$BASE/v1/patients/$PID/labs/import" -H "Authorization: Bearer $KEY" \
     -H "Content-Type: text/csv" --data-binary @report.csv
curl "$BASE/fhir/R4/Observation?patient=$PID&category=laboratory&_sort=-date" -H "Authorization: Bearer $KEY"

Повна специфікація, включаючи примітки щодо відповідності HL7 Europe, доступна за адресою developers.anpheros.com/guides/lab-connector.

Поширені запитання

Чи потрібно змінювати те, що виробляє наш LIS?

Ні. Надішліть повідомлення ORU^R01 або експорт CSV як є. Якщо ви можете додати коди LOINC, зробіть це; інакше конектор зіставляє за назвою та повідомляє вам, що він не зміг зіставити.

Що робити з результатами, які ви не можете зіставити?

Вони зберігаються з власним кодом лабораторії та точним текстом зі звіту, тому нічого не втрачається, і перераховуються в unmapped, щоб ви могли додати код LOINC наступного разу.

Чи зберігаються діапазони референсних значень та прапорці аномальності?

Так: діапазон переходить до referenceRange, прапорець до interpretation, одиниця вимірювання зберігається як UCUM, а значення ніколи не конвертується.

Чи може лабораторія надсилати результати для пацієнта, якого вона не створила?

Тільки за згодою особи або як організація, для якої діє проєкт, з X-Anpheros-Acting-As. Проєкт бачить створених ним пацієнтів; все інше вимагає дозволу.

Чи є плата за інтеграцію?

Пісочниця безкоштовна. Виробництво коштує від 49 євро на місяць за організацію, перший місяць безкоштовно; див. ціни.

Цей посібник призначений для інформаційних цілей і не замінює медичну консультацію. Для прийняття рішень щодо вашого здоров'я зверніться до лікаря. У разі надзвичайної ситуації телефонуйте 112.
Про автора
Adrian Kereky

Founder of Anpheros. An electronics engineer, he spent six years in autonomous driving, on automotive projects run in partnership with Samsung and NVIDIA, designing the architecture of driver-assistance and AI systems that run on NVIDIA chips with CUDA. He then built Anpheros: the patient-controlled medical record and the HL7 FHIR R4 platform it runs on.

Більше про Anpheros та автора →

Тримайте свою медичну карту завжди з собою

Anpheros Daily зберігає симптоми, результати аналізів, ліки та документи в одному місці, у стандартному форматі, під вашим контролем. Базовий план безкоштовний.

Отримати Anpheros Daily