Термінологія

Сервери термінології FHIR: $lookup, $validate-code, $expand, $translate та $subsumes з прикладами запитів

Сервер термінології містить кодові системи (SNOMED CT, LOINC, ICD-10), набори значень та карти понять, а також відповідає на запитання щодо кодів за допомогою операцій FHIR. Що робить кожна операція, приклади запитів, які сервери існують (tx.fhir.org, Ontoserver, Snowstorm, HAPI) та як їх використовують додатки.

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

Коротка відповідь: сервер термінології — це FHIR-сервер, що спеціалізується на кодах. Він зберігає CodeSystems (SNOMED CT, LOINC, ICD-10, UCUM, власні таблиці HL7), ValueSets (іменовані підмножини для певної мети: коди життєво важливих показників, речовини, що викликають алергію) та ConceptMaps (переклади між системами) і відповідає через стандартні операції: $lookup (що означає цей код?), $validate-code (чи дозволено цей код тут?), $expand (перелічити коди в цьому наборі значень, опціонально фільтруючи за текстом), $translate (який цей код в іншій системі?) та $subsumes (чи є А видом Б?). Додатки звертаються до нього замість того, щоб надсилати копії термінологій, які є великими, ліцензованими та оновлюються кілька разів на рік.

Ресурси

Сервер термінології FHIR працює з трьома ресурсами. CodeSystem оголошує систему кодів за канонічною URL-адресою та версією, з її концепціями або приміткою про те, що вміст зберігається в іншому місці; ValueSet визначає цільову підмножину кодів за правилами композиції та необов'язковим обчисленим розгортанням; ConceptMap записує взаємозв'язки між системами від джерела до цілі з еквівалентністю для кожного відображення.

  • CodeSystem оголошує систему за її канонічною URL-адресою (http://snomed.info/sct, http://loinc.org, http://hl7.org/fhir/sid/icd-10), її версією та або її концепціями, або твердженням, що вміст зберігається в іншому місці (content: not-present для ліцензованих систем).
  • ValueSet має compose (правила: включити всі коди з системи, конкретні коди або фільтр, такий як нащадки 404684003 Клінічна знахідка) і, коли обчислено, expansion (фактичний список). Прив'язки в профілях вказують на набори значень; див. FHIR профілі та розширення.
  • ConceptMap містить зв'язки джерело → ціль з еквівалентністю (equivalent, wider, narrower, inexact, unmatched) та опціональними залежностями, для карт, таких як SNOMED CT до ICD-10 або локальних кодів лабораторії до LOINC.

Операції із запитами

Сервер термінології FHIR відповідає на п'ять стандартних операцій: $lookup повертає значення одного коду, $validate-code перевіряє, чи належить код системі або набору значень, $expand перелічує коди в наборі значень, опціонально фільтруючи за текстом, $translate перетворює код на іншу систему через ConceptMap, а $subsumes перевіряє, чи є одна концепція різновидом іншої.

$lookup: деталі одного коду.

GET /CodeSystem/$lookup?system=http://loinc.org&code=4548-4

Повертає ресурс Parameters з display ("Гемоглобін A1c/Гемоглобін.загальний у крові"), позначеннями іншими мовами та властивостями (для LOINC — шість осей; для SNOMED CT — батьківські елементи та визначальні зв'язки).

$validate-code: чи є код у системі або в наборі значень?

GET /ValueSet/$validate-code?url=http://hl7.org/fhir/ValueSet/observation-vitalsignresult&system=http://loinc.org&code=8480-6

Повертає result: true з відображенням або false з повідомленням. Сервери, що валідують ресурси, викликають це для кожного прив'язаного елемента.

$expand: коди в наборі значень з фільтрацією за текстом для полів пошуку.

GET /ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/condition-code&filter=diabetes&count=20

Повертає ValueSet зі списком expansion.contains: код, система, відображення. Саме так працює пошук діагнозів в EHR проти SNOMED CT без локального зберігання 360 000 концепцій.

$translate: перетин меж систем.

GET /ConceptMap/$translate?url=https://lab.example.org/ConceptMap/local-to-loinc&system=https://lab.example.org/codes&code=GLU&targetsystem=http://loinc.org

Повертає збіги з їхньою еквівалентністю. Та ж операція обслуговує карти SNOMED CT → ICD-10, де їх розміщує сервер.

$subsumes: запити щодо ієрархії.

GET /CodeSystem/$subsumes?system=http://snomed.info/sct&codeA=73211009&codeB=44054006

Відповідає subsumes (цукровий діабет є предком діабету 2 типу), subsumed-by, equivalent або not-subsumed. Система підтримки прийняття рішень використовує це, щоб запитати чи є цей стан будь-яким видом діабету? без переліку кожного підтипу.

Відповіді — це ресурси Parameters: список іменованих частин, а не простий об'єкт, що дивує тих, хто звертається вперше.

Сервери, з якими ви зустрінетеся

Сервери термінології, з якими найчастіше зустрічаються на практиці: tx.fhir.org — публічний референсний сервер HL7, який використовується його валідатором; Ontoserver від CSIRO — комерційний сервер, що стоїть за кількома національними програмами; Snowstorm від SNOMED International — відкритий вихідний код та нативний для SNOMED CT; загальні сервери FHIR, такі як HAPI FHIR та Firely Server, з операціями термінології; та національні сервери, керовані агентствами охорони здоров'я.

Сервер Хто Примітки
tx.fhir.org HL7 (референсний) Публічний, використовується валідатором HL7 та видавцем IG; LOINC, SNOMED CT (де ліцензовано), таблиці HL7, UCUM. Не для виробничого трафіку
Ontoserver CSIRO (Австралія) Комерційний; використовується національними програмами (Австралія, UK NHS Ontology Server, Нідерланди, Бельгія); повний SNOMED CT із запитами ECL
Snowstorm SNOMED International Відкритий вихідний код; нативний для SNOMED CT з FHIR API; забезпечує роботу офіційного браузера
HAPI FHIR, Firely Server, Microsoft/Google/AWS FHIR services Постачальники Загальні FHIR-сервери з операціями термінології; завантажуйте кодові системи самостійно
Національні сервери Міністерства охорони здоров'я та агентства Часто Ontoserver або Snowstorm з національним виданням та локальними наборами значень

Вміст — це складна частина: SNOMED CT вимагає ліцензії за межами країн-членів, LOINC вимагає прийняття його умов, національні варіанти ICD-10 мають власне розповсюдження. Сервер надає вам операції; ви все ще отримуєте та завантажуєте вміст законно.

Як їх використовують додатки

Додатки використовують сервер термінології для валідації кодів та одиниць вимірювання під час запису, для живлення полів пошуку через $expand з текстовим фільтром та набором значень, для відображення офіційних назв через $lookup, для відображення локальних кодів на LOINC або SNOMED CT до ICD-10 через $translate, а також для міркувань над ієрархіями через $subsumes та мову обмежень виразів SNOMED CT (Expression Constraint Language).

  • Валідація під час запису: відхилення спостереження, чий код LOINC не існує, або одиниця вимірювання не є UCUM, з повідомленням, яке називає проблему.
  • Поля пошуку: $expand з filter для вибору діагнозів, процедур та ліків, обмежених набором значень, щоб клініцисти бачили лише релевантні концепції.
  • Відображення: $lookup для показу офіційної назви та перекладів замість зберігання рядків відображення, які застарівають.
  • Мапування: $translate для перетворення локальних лабораторних кодів на LOINC під час імпорту (як мапувати локальні лабораторні коди на LOINC) або SNOMED CT на ICD-10 для звітності (SNOMED CT проти ICD-10).
  • Міркування: $subsumes та Expression Constraint Language (ECL) SNOMED (підтримується Ontoserver та Snowstorm через фільтри $expand) для визначення когорт та правил за ієрархією.

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

В Anpheros

Платформа Anpheros валідує коди LOINC та одиниці UCUM, які вона приймає для спостережень, та коди ATC для медикаментів проти термінології, яку вона надає (підмножина LOINC та індекс WHO ATC), і документує свій API термінології на сайті для розробників. Для повного перегляду SNOMED CT або ICD-10 вона посилається на офіційні браузери замість перерозповсюдження ліцензованого вмісту.

Пов'язані сторінки

Джерела

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

Чи потрібен мені термінологічний сервер для використання FHIR?

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

Чи можу я використовувати tx.fhir.org у виробництві?

Ні. Це референсний сервер HL7 для інструментів валідації та тестування, без гарантій обслуговування та з ліцензійними обмеженнями на деякий вміст. Запустіть власний або використовуйте національний чи комерційний.

Що таке ECL?

Expression Constraint Language SNOMED CT, синтаксис запитів для наборів концепцій (наприклад, << 73211009 для діабету та всіх його підтипів). Сервери, що його підтримують, приймають ECL у фільтрах ValueSet та $expand.

Звідки я знаю, яку версію SNOMED CT має сервер?

Запитайте CodeSystem (GET /CodeSystem?url=http://snomed.info/sct) і прочитайте його версію, яка кодує видання та дату випуску (наприклад, http://snomed.info/sct/900000000000207008/version/20260301). Закріпіть її у своїх запитах, коли результати мають бути відтворюваними.

Anpheros Platform

Спробуйте безкоштовно в пісочниці

Перший запит FHIR за 5 хвилин. API стандарту HL7 FHIR R4 з вбудованою згодою пацієнта: спробуйте в пісочниці, а потім підключіть власну програму чи клінічну систему.

Безкоштовно · 30 синтетичних пацієнтів · без картки

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

Anpheros створює медичну карту, яку пацієнт контролює та може ділитися з будь-якою клінікою, на платформі HL7 FHIR R4, розташованій в ЄС. Ці посібники допоможуть вам зрозуміти та організувати своє здоров'я; вони не замінюють вашого лікаря.

Про Anpheros →