Terminologia

Serwery terminologii FHIR: $lookup, $validate-code, $expand, $translate i $subsumes – z przykładami zapytań

Serwer terminologii przechowuje SNOMED CT, LOINC, ICD-10, zestawy wartości i mapowania. Odpowiada na pytania o kody przez FHIR. Poznaj operacje, przykłady, serwery (tx.fhir.org, Ontoserver, Snowstorm, HAPI) i integrację z aplikacjami.

autor Opublikowano 6 min czytania

Krótka odpowiedź: serwer terminologiczny to serwer FHIR wyspecjalizowany w kodach. Przechowuje CodeSystems (SNOMED CT, LOINC, ICD-10, UCUM, własne tabele HL7), ValueSets (nazwane podzbiory do określonych celów: kody parametrów życiowych, substancje alergiczne) i ConceptMaps (tłumaczenia między systemami) oraz odpowiada za pomocą standardowych operacji: $lookup (co oznacza ten kod?), $validate-code (czy ten kod jest tutaj dozwolony?), $expand (wymień kody z tego zestawu wartości, opcjonalnie filtrowane według tekstu), $translate (co to za kod w innym systemie?) i $subsumes (czy A jest rodzajem B?). Aplikacje korzystają z niego zamiast wysyłać kopie terminologii, które są duże, licencjonowane i aktualizowane kilka razy w roku.

Zasoby

Serwer terminologii FHIR działa z trzema zasobami. CodeSystem deklaruje system kodowania za pomocą kanonicznego adresu URL i wersji, wraz z jego koncepcjami lub informacją, że zawartość znajduje się gdzie indziej; ValueSet definiuje celowy podzbiór kodów za pomocą reguł kompozycji i opcjonalnego rozszerzenia obliczeniowego; ConceptMap rejestruje relacje źródło-cel między systemami z równoważnością dla każdego mapowania.

  • CodeSystem deklaruje system za pomocą swojego kanonicznego adresu URL (http://snomed.info/sct, http://loinc.org, http://hl7.org/fhir/sid/icd-10), jego wersji, a także jego koncepcji lub oświadczenia, że zawartość znajduje się gdzie indziej (content: not-present dla systemów licencjonowanych).
  • ValueSet ma compose (zasady: uwzględnij wszystkie kody z systemu, określone kody lub filtr, taki jak potomkowie 404684003 Clinical finding) i, po obliczeniu, expansion (rzeczywista lista). Powiązania w profilach wskazują na zestawy wartości; zobacz FHIR profiles and extensions.
  • ConceptMap przechowuje relacje źródło → cel z równoważnością (equivalent, wider, narrower, inexact, unmatched) i opcjonalnymi zależnościami, dla mapowań takich jak SNOMED CT do ICD-10 lub lokalnych kodów laboratorium do LOINC.

Operacje, wraz z żądaniami

Serwer terminologii FHIR odpowiada na pięć standardowych operacji: $lookup zwraca znaczenie jednego kodu, $validate-code sprawdza, czy kod należy do systemu lub zestawu wartości, $expand wymienia kody w zestawie wartości, opcjonalnie filtrowane według tekstu, $translate konwertuje kod do innego systemu za pomocą ConceptMap, a $subsumes testuje, czy jedna koncepcja jest rodzajem innej.

$lookup: szczegóły jednego kodu.

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

Zwraca zasób Parameters z display („Hemoglobin A1c/Hemoglobin.total in Blood”), oznaczeniami w innych językach i właściwościami (dla LOINC sześć osi; dla SNOMED CT rodzice i definiujące relacje).

$validate-code: czy kod znajduje się w systemie, czy w zestawie wartości?

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

Zwraca result: true z wyświetlaną nazwą lub false z komunikatem. Serwery, które walidują zasoby, wywołują tę operację dla każdego powiązanego elementu.

$expand: kody w zestawie wartości, z filtrowaniem tekstu dla pól wyszukiwania.

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

Zwraca ValueSet z listą expansion.contains: kod, system, wyświetlana nazwa. W ten sposób wyszukiwanie diagnoz w systemie EHR działa w oparciu o SNOMED CT bez konieczności przechowywania 360 000 koncepcji lokalnie.

$translate: przekraczanie granicy systemu.

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

Zwraca dopasowania z ich równoważnością. Ta sama operacja obsługuje mapowania SNOMED CT → ICD-10, gdzie serwer je hostuje.

$subsumes: pytania o hierarchię.

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

Odpowiada na pytania subsumes (cukrzyca jest nadrzędna wobec cukrzycy typu 2), subsumed-by, equivalent lub not-subsumed. Systemy wsparcia decyzji wykorzystują ją do zadawania pytań czy ten stan jest jakimkolwiek rodzajem cukrzycy? bez wymieniania każdego podtypu.

Odpowiedzi to zasoby Parameters: lista nazwanych części, a nie zwykły obiekt, co zaskakuje osoby korzystające po raz pierwszy.

Serwery, z którymi się spotkasz

Serwery terminologii najczęściej spotykane w praktyce to tx.fhir.org, publiczny serwer referencyjny HL7 używany przez jego walidator; Ontoserver od CSIRO, komercyjny serwer stojący za kilkoma programami krajowymi; Snowstorm od SNOMED International, open source i natywny dla SNOMED CT; ogólne serwery FHIR, takie jak HAPI FHIR i Firely Server z operacjami terminologii; oraz serwery krajowe prowadzone przez agencje zdrowia.

Serwer Kto Uwagi
tx.fhir.org HL7 (referencyjny) Publiczny, używany przez walidator HL7 i publikator IG; LOINC, SNOMED CT (tam, gdzie licencjonowany), tabele HL7, UCUM. Nie do ruchu produkcyjnego
Ontoserver CSIRO (Australia) Komercyjny; używany przez programy krajowe (Australia, UK NHS Ontology Server, Holandia, Belgia); pełny SNOMED CT z zapytaniami ECL
Snowstorm SNOMED International Open source; natywny dla SNOMED CT z API FHIR; zasila oficjalną przeglądarkę
HAPI FHIR, Firely Server, Microsoft/Google/AWS FHIR services Dostawcy Ogólne serwery FHIR z operacjami terminologicznymi; ładuj systemy kodów samodzielnie
Serwery krajowe Ministerstwa zdrowia i agencje Często Ontoserver lub Snowstorm z wydaniem krajowym i lokalnymi zestawami wartości

Treść jest trudna: SNOMED CT wymaga licencji poza krajami członkowskimi, LOINC wymaga zaakceptowania jego warunków, a krajowe warianty ICD-10 mają własną dystrybucję. Serwer zapewnia operacje; nadal musisz legalnie uzyskać i załadować treść.

Jak aplikacje z niego korzystają

Aplikacje wykorzystują serwer terminologii do walidacji kodów i jednostek w momencie zapisu, do zasilania pól wyszukiwania za pomocą $expand z filtrem tekstowym i zestawem wartości, do wyświetlania oficjalnych nazw za pomocą $lookup, do mapowania lokalnych kodów do LOINC lub SNOMED CT do ICD-10 za pomocą $translate, oraz do wnioskowania o hierarchiach za pomocą $subsumes i języka Expression Constraint Language SNOMED CT.

  • Walidacja w momencie zapisu: odrzucenie obserwacji, której kod LOINC nie istnieje lub której jednostka nie jest UCUM, z komunikatem wskazującym problem.
  • Pola wyszukiwania: $expand z filter dla selektorów diagnoz, procedur i leków, ograniczone zestawem wartości, dzięki czemu klinicyści widzą tylko odpowiednie koncepcje.
  • Wyświetlanie: $lookup do wyświetlania oficjalnej nazwy i tłumaczeń zamiast przechowywania ciągów znaków, które się dezaktualizują.
  • Mapowanie: $translate do zamiany lokalnych kodów laboratoryjnych na LOINC podczas importu (how to map local lab codes to LOINC) lub SNOMED CT na ICD-10 do raportowania (SNOMED CT vs ICD-10).
  • Rozumowanie: $subsumes i Expression Constraint Language (ECL) SNOMED (obsługiwane przez Ontoserver i Snowstorm poprzez filtry $expand) do definiowania kohort i reguł według hierarchii.

Buforuj agresywnie (terminologia zmienia się dwa razy w roku, a nie dwa razy dziennie), przypinaj wersje w produkcji i traktuj awarię serwera jako pogorszenie walidacji, a nie powód do odrzucenia każdego zapisu.

W Anpheros

Anpheros Platform waliduje kody LOINC i jednostki UCUM, które akceptuje dla obserwacji, oraz kody ATC dla leków w odniesieniu do dostarczanej terminologii (podzbiór LOINC i indeks WHO ATC) oraz dokumentuje swoje terminology API na stronie dla deweloperów. W przypadku pełnego przeglądania SNOMED CT lub ICD-10, wskazuje na oficjalne przeglądarki zamiast redystrybuować licencjonowane treści.

Powiązane strony

Źródła

Najczęstsze pytania

Czy potrzebuję serwera terminologicznego, aby używać FHIR?

Nie dla małego systemu ze stałą listą kodów. Gdy tylko walidujesz kody z dużych systemów, oferujesz wyszukiwanie kliniczne lub tłumaczysz między systemami, serwer terminologiczny pozwala uniknąć wysyłania i aktualizowania samych terminologii.

Czy mogę używać tx.fhir.org w produkcji?

Nie. Jest to serwer referencyjny HL7 dla narzędzi walidacyjnych i testowania, bez gwarancji usług i z ograniczeniami licencyjnymi na niektóre treści. Uruchom własny lub skorzystaj z krajowego lub komercyjnego.

Co to jest ECL?

Expression Constraint Language SNOMED CT, składnia zapytań dla zestawów koncepcji (na przykład << 73211009 dla cukrzycy i wszystkich jej podtypów). Serwery, które ją obsługują, akceptują ECL w filtrach ValueSet i $expand.

Skąd mam wiedzieć, którą wersję SNOMED CT ma serwer?

Zapytaj CodeSystem (GET /CodeSystem?url=http://snomed.info/sct) i odczytaj jego wersję, która koduje wydanie i datę publikacji (na przykład http://snomed.info/sct/900000000000207008/version/20260301). Przypnij ją w swoich żądaniach, gdy wyniki muszą być powtarzalne.

Anpheros Platform

Wypróbuj za darmo w sandboksie

Pierwsze wywołanie FHIR w 5 minut. API HL7 FHIR R4 z wbudowaną zgodą pacjenta: wypróbuj w piaskownicy, a następnie połącz własną aplikację lub system kliniczny.

Za darmo · 30 syntetycznych pacjentów · bez karty

Ten poradnik ma charakter informacyjny i nie zastępuje konsultacji lekarskiej. Decyzje dotyczące zdrowia podejmuj z lekarzem. W nagłym wypadku zadzwoń pod lokalny numer alarmowy (112 w Europie).
Napisane przez
Zespół Anpheros

Anpheros tworzy dokumentację medyczną, nad którą pacjent ma kontrolę i którą może udostępniać dowolnej klinice, na platformie HL7 FHIR R4, z siedzibą w UE. Te przewodniki pomogą Ci zrozumieć i uporządkować informacje o Twoim zdrowiu; nie zastępują one wizyty u lekarza.

O Anpheros →