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-presentdla 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:
$expandzfilterdla selektorów diagnoz, procedur i leków, ograniczone zestawem wartości, dzięki czemu klinicyści widzą tylko odpowiednie koncepcje. - Wyświetlanie:
$lookupdo wyświetlania oficjalnej nazwy i tłumaczeń zamiast przechowywania ciągów znaków, które się dezaktualizują. - Mapowanie:
$translatedo 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:
$subsumesi 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
- FHIR profiles and extensions explained
- How to map local lab codes to LOINC
- SNOMED CT vs ICD-10
- CodeableConcept and Coding in FHIR
- UCUM units in lab results
- Medical terminology API (developer site)
Źródła
- HL7 FHIR R4: Terminology Service
- HL7 FHIR R4: ValueSet $expand
- HL7 FHIR R4: ConceptMap $translate
- HL7 FHIR R4: CodeSystem $lookup
- HL7 terminology server tx.fhir.org
- Snowstorm (SNOMED International, GitHub)
- Ontoserver (CSIRO)
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.
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

