Terminologie

Serverele de terminologie FHIR explicate: $lookup, $validate-code, $expand, $translate și $subsumes, cu exemple de cereri

Un server de terminologie stochează sisteme de coduri (SNOMED CT, LOINC, ICD-10), seturi de valori și hărți de concepte și răspunde la întrebări despre coduri prin operațiuni FHIR. Ce face fiecare operațiune, exemple de cereri, ce servere există (tx.fhir.org, Ontoserver, Snowstorm, HAPI) și cum le folosesc aplicațiile.

de Publicat 7 min de citit

Pe scurt: un server de terminologie este un server FHIR specializat pe coduri. Acesta stochează CodeSystems (SNOMED CT, LOINC, ICD-10, UCUM, tabelele proprii HL7), ValueSets (submulțimi denumite pentru un scop: coduri pentru semne vitale, substanțe pentru alergii) și ConceptMaps (traduceri între sisteme) și răspunde prin operațiuni standard: $lookup (ce înseamnă acest cod?), $validate-code (este acest cod permis aici?), $expand (listează codurile din acest set de valori, opțional filtrate după text), $translate (ce este acest cod în celălalt sistem?) și $subsumes (este A un fel de B?). Aplicațiile îl apelează în loc să distribuie copii ale terminologiilor, care sunt mari, licențiate și actualizate de mai multe ori pe an.

Resursele

Un server de terminologie FHIR funcționează cu trei resurse. CodeSystem declară un sistem de coduri prin URL canonic și versiune, cu conceptele sale sau o notă că conținutul este stocat în altă parte; ValueSet definește un subset intenționat de coduri prin reguli de compunere și o expansiune calculată opțională; ConceptMap înregistrează relațiile sursă-țintă între sisteme, cu o echivalență pentru fiecare mapare.

  • CodeSystem declară un sistem prin URL-ul său canonic (http://snomed.info/sct, http://loinc.org, http://hl7.org/fhir/sid/icd-10), versiunea sa și fie conceptele sale, fie o declarație că conținutul este deținut în altă parte (content: not-present pentru sistemele licențiate).
  • ValueSet are un compose (reguli: include toate codurile dintr-un sistem, coduri specifice sau un filtru precum descendenții lui 404684003 Clinical finding) și, atunci când este calculat, o expansion (lista efectivă). Legăturile din profiluri indică seturi de valori; vezi Profiluri și extensii FHIR.
  • ConceptMap deține relații sursă → țintă cu o echivalență (equivalent, wider, narrower, inexact, unmatched) și dependențe opționale, pentru hărți precum SNOMED CT către ICD-10 sau codurile locale ale unui laborator către LOINC.

Operațiunile, cu cereri

Un server de terminologie FHIR răspunde la cinci operațiuni standard: $lookup returnează semnificația unui cod, $validate-code verifică dacă un cod aparține unui sistem sau unui set de valori, $expand listează codurile dintr-un set de valori, opțional filtrat după text, $translate convertește un cod într-un alt sistem printr-un ConceptMap, iar $subsumes testează dacă un concept este un fel de altul.

$lookup: detalii despre un cod.

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

Returnează o resursă Parameters cu display („Hemoglobin A1c/Hemoglobin.total in Blood”), denumiri în alte limbi și proprietăți (pentru LOINC cele șase axe; pentru SNOMED CT părinții și relațiile definitorii).

$validate-code: este codul în sistem sau în setul de valori?

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

Returnează result: true cu afișajul, sau false cu un mesaj. Serverele care validează resurse apelează acest lucru pentru fiecare element legat.

$expand: codurile dintr-un set de valori, cu filtrare după text pentru casetele de căutare.

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

Returnează ValueSet cu o listă expansion.contains: cod, sistem, afișaj. Aceasta este modul în care căutarea de diagnostice a unui EHR funcționează împotriva SNOMED CT fără a deține 360.000 de concepte local.

$translate: traversează o graniță de sistem.

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

Returnează potrivirile cu echivalența lor. Aceeași operațiune servește hărților SNOMED CT → ICD-10 unde serverul le găzduiește.

$subsumes: întrebări despre ierarhie.

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

Răspunde subsumes (diabetul zaharat este un strămoș al diabetului de tip 2), subsumed-by, equivalent sau not-subsumed. Suportul decizional îl folosește pentru a întreba este această afecțiune un fel de diabet? fără a lista fiecare subtip.

Răspunsurile sunt resurse Parameters: o listă de părți numite, nu un obiect simplu, ceea ce surprinde apelanții pentru prima dată.

Serverele pe care le veți întâlni

Serverele de terminologie întâlnite cel mai des în practică sunt tx.fhir.org, serverul public de referință al HL7, utilizat de validatorul său; Ontoserver de la CSIRO, un server comercial din spatele mai multor programe naționale; Snowstorm de la SNOMED International, open source și nativ pentru SNOMED CT; servere FHIR generale precum HAPI FHIR și Firely Server cu operațiuni de terminologie; și servere naționale operate de agenții de sănătate.

Server Cine Note
tx.fhir.org HL7 (referință) Public, utilizat de validatorul HL7 și IG Publisher; LOINC, SNOMED CT (unde este licențiat), tabele HL7, UCUM. Nu pentru trafic de producție
Ontoserver CSIRO (Australia) Comercial; utilizat de programe naționale (Australia, UK NHS Ontology Server, Olanda, Belgia); SNOMED CT complet cu interogări ECL
Snowstorm SNOMED International Open source; nativ SNOMED CT cu API FHIR; alimentează browserul oficial
HAPI FHIR, Firely Server, servicii FHIR Microsoft/Google/AWS Furnizori Serverele FHIR generale cu operațiuni de terminologie; încărcați singuri sistemele de coduri
Serverele naționale Ministere și agenții de sănătate Adesea Ontoserver sau Snowstorm cu ediția națională și seturi de valori locale

Conținutul este partea dificilă: SNOMED CT necesită o licență în afara țărilor membre, LOINC necesită acceptarea termenilor săi, variantele naționale ICD-10 au propria distribuție. Un server vă oferă operațiunile; obțineți și încărcați conținutul legal.

Cum le folosesc aplicațiile

Aplicațiile folosesc un server de terminologie pentru a valida coduri și unități la momentul scrierii, pentru a alimenta casetele de căutare prin $expand cu un filtru de text și un set de valori, pentru a afișa nume oficiale prin $lookup, pentru a mapa coduri locale la LOINC sau SNOMED CT la ICD-10 prin $translate și pentru a raționa asupra ierarhiilor prin $subsumes și Expression Constraint Language al SNOMED CT.

  • Validare la scriere: respinge o Observație al cărei cod LOINC nu există sau a cărei unitate nu este UCUM, cu un mesaj care numește problema.
  • Casete de căutare: $expand cu filter pentru selectoare de diagnostic, procedură și medicamente, delimitate de un set de valori, astfel încât clinicienii să vadă doar concepte relevante.
  • Afișare: $lookup pentru a afișa numele oficial și traducerile în loc să stocați șiruri de afișare care devin învechite.
  • Mapare: $translate pentru a transforma codurile locale de laborator în LOINC la import (cum să mapați codurile locale de laborator la LOINC) sau SNOMED CT în ICD-10 pentru raportare (SNOMED CT vs ICD-10).
  • Raționament: $subsumes și Expression Constraint Language (ECL) al SNOMED (suportat de Ontoserver și Snowstorm prin filtrele $expand) pentru a defini cohorte și reguli prin ierarhie.

Cachați agresiv (terminologia se schimbă de două ori pe an, nu de două ori pe zi), fixați versiunile în producție și tratați o întrerupere a serverului ca o validare degradată, mai degrabă decât un motiv pentru a respinge fiecare scriere.

În Anpheros

Platforma Anpheros validează codurile LOINC și unitățile UCUM pe care le acceptă pentru observații și codurile ATC pentru medicamente în raport cu terminologia pe care o distribuie (un subset LOINC și indexul WHO ATC) și documentează API-ul de terminologie pe site-ul dezvoltatorilor. Pentru navigarea completă în SNOMED CT sau ICD-10, indică browserele oficiale în loc să redistribuie conținut licențiat.

Pagini conexe

Surse

Întrebări frecvente

Am nevoie de un server de terminologie pentru a utiliza FHIR?

Nu pentru un sistem mic cu o listă fixă de coduri. De îndată ce validați coduri din sisteme mari, oferiți căutare clinică sau traduceți între sisteme, un server de terminologie vă scutește de distribuirea și actualizarea terminologiilor singuri.

Pot folosi tx.fhir.org în producție?

Nu. Este serverul de referință al HL7 pentru instrumente de validare și testare, fără garanții de serviciu și cu restricții de licență pentru anumite conținuturi. Rulați propriul server sau utilizați unul național sau comercial.

Ce este ECL?

Expression Constraint Language al SNOMED CT, o sintaxă de interogare pentru seturi de concepte (de exemplu, << 73211009 pentru diabet și toate subtipurile sale). Serverele care îl suportă acceptă ECL în filtrele ValueSet și $expand.

Cum știu ce versiune de SNOMED CT are un server?

Întrebați CodeSystem (GET /CodeSystem?url=http://snomed.info/sct) și citiți versiunea sa, care codifică ediția și data lansării (de exemplu, http://snomed.info/sct/900000000000207008/version/20260301). Fixați-o în cererile dvs. atunci când rezultatele trebuie să fie reproductibile.

Anpheros Platform

Încearcă gratuit în sandbox

Primul apel FHIR în 5 minute. Un API HL7 FHIR R4 cu consimțământul pacientului integrat: încearcă-l în sandbox, apoi conectează-ți propria aplicație sau sistemul clinicii.

Gratuit · 30 de pacienți sintetici · fără card

Acest ghid este informativ și nu înlocuiește consultul medical. Pentru decizii despre sănătatea ta, vorbește cu medicul tău. În caz de urgență, sună la numărul de urgență local (112 în Europa).
Scris de
Echipa Anpheros

Anpheros construiește un dosar medical pe care pacientul îl controlează și îl poate da oricărei clinici, pe o platformă HL7 FHIR R4, cu sediul în UE. Ghidurile te ajută să-ți înțelegi și să-ți organizezi sănătatea; nu înlocuiesc medicul.

Despre Anpheros →