Kurze Antwort: Ein Terminologie-Server ist ein FHIR-Server, der auf Codes spezialisiert ist. Er speichert CodeSystems (SNOMED CT, LOINC, ICD-10, UCUM, HL7-eigene Tabellen), ValueSets (benannte Teilmengen für einen Zweck: Vitalzeichen-Codes, Allergen-Substanzen) und ConceptMaps (Übersetzungen zwischen Systemen) und antwortet über Standardoperationen: $lookup (was bedeutet dieser Code?), $validate-code (ist dieser Code hier erlaubt?), $expand (Liste die Codes in diesem ValueSet, optional gefiltert nach Text), $translate (was ist dieser Code in einem anderen System?) und $subsumes (ist A eine Art von B?). Anwendungen rufen ihn auf, anstatt Kopien von Terminologien zu versenden, die groß, lizenziert und mehrmals im Jahr aktualisiert werden.
Die Ressourcen
Ein FHIR-Terminologieserver arbeitet mit drei Ressourcen. CodeSystem deklariert ein Codesystem anhand einer kanonischen URL und Version, mit seinen Konzepten oder einem Hinweis, dass der Inhalt woanders gespeichert ist; ValueSet definiert eine zweckmäßige Teilmenge von Codes durch Kompositionsregeln und eine optionale berechnete Erweiterung; ConceptMap erfasst Quell-Ziel-Beziehungen zwischen Systemen mit einer Gleichwertigkeit für jede Zuordnung.
- CodeSystem deklariert ein System anhand seiner kanonischen URL (
http://snomed.info/sct,http://loinc.org,http://hl7.org/fhir/sid/icd-10), seiner Version und entweder seiner Konzepte oder einer Aussage, dass der Inhalt woanders gehalten wird (content: not-presentfür lizenzierte Systeme). - ValueSet hat eine
compose(Regeln: alle Codes aus einem System einschließen, spezifische Codes oder einen Filter wie Nachfahren von 404684003 Clinical finding) und, wenn berechnet, eineexpansion(die tatsächliche Liste). Bindings in Profilen verweisen auf ValueSets; siehe FHIR-Profile und Erweiterungen. - ConceptMap enthält Quell- → Ziel-Beziehungen mit einer Äquivalenz (
equivalent,wider,narrower,inexact,unmatched) und optionalen Abhängigkeiten für Maps wie SNOMED CT zu ICD-10 oder lokale Codes eines Labors zu LOINC.
Die Operationen, mit Anfragen
Ein FHIR-Terminologieserver beantwortet fünf Standardoperationen: $lookup gibt die Bedeutung eines Codes zurück, $validate-code prüft, ob ein Code zu einem System oder einer Werte Menge gehört, $expand listet die Codes in einer Werte Menge auf, optional gefiltert nach Text, $translate konvertiert einen Code über eine ConceptMap in ein anderes System und $subsumes testet, ob ein Konzept eine Art eines anderen ist.
$lookup: Details zu einem Code.
GET /CodeSystem/$lookup?system=http://loinc.org&code=4548-4
Gibt eine Parameters-Ressource mit display ("Hämoglobin A1c/Hämoglobin.total im Blut"), Bezeichnungen in anderen Sprachen und Eigenschaften zurück (für LOINC die sechs Achsen; für SNOMED CT die Eltern und definierenden Beziehungen).
$validate-code: Ist der Code im System oder im ValueSet?
GET /ValueSet/$validate-code?url=http://hl7.org/fhir/ValueSet/observation-vitalsignresult&system=http://loinc.org&code=8480-6
Gibt result: true mit der Anzeige oder false mit einer Nachricht zurück. Server, die Ressourcen validieren, rufen dies für jedes gebundene Element auf.
$expand: Die Codes in einem ValueSet, mit Textfilterung für Suchfelder.
GET /ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/condition-code&filter=diabetes&count=20
Gibt das ValueSet mit einer expansion.contains-Liste zurück: Code, System, Anzeige. So funktioniert die Diagnose-Suche eines EHR gegen SNOMED CT, ohne 360.000 Konzepte lokal zu speichern.
$translate: Systemgrenzen überschreiten.
GET /ConceptMap/$translate?url=https://lab.example.org/ConceptMap/local-to-loinc&system=https://lab.example.org/codes&code=GLU&targetsystem=http://loinc.org
Gibt die Treffer mit ihrer Äquivalenz zurück. Dieselbe Operation dient SNOMED CT → ICD-10-Maps, wo der Server sie hostet.
$subsumes: Hierarchie-Fragen.
GET /CodeSystem/$subsumes?system=http://snomed.info/sct&codeA=73211009&codeB=44054006
Beantwortet subsumes (Diabetes mellitus ist ein Vorfahre von Typ-2-Diabetes), subsumed-by, equivalent oder not-subsumed. Entscheidungsunterstützung nutzt es, um zu fragen: Ist diese Erkrankung irgendeine Art von Diabetes?, ohne jeden Untertyp aufzulisten.
Antworten sind Parameters-Ressourcen: eine Liste benannter Teile, kein einfaches Objekt, was Erstnutzer überrascht.
Server, denen Sie begegnen werden
Die in der Praxis am häufigsten anzutreffenden Terminologieserver sind tx.fhir.org, der öffentliche Referenzserver von HL7, der von seinem Validator verwendet wird; Ontoserver von CSIRO, ein kommerzieller Server, der mehreren nationalen Programmen zugrunde liegt; Snowstorm von SNOMED International, Open Source und SNOMED CT-nativ; allgemeine FHIR-Server wie HAPI FHIR und Firely Server mit Terminologieoperationen; und nationale Server, die von Gesundheitsbehörden betrieben werden.
| Server | Wer | Anmerkungen |
|---|---|---|
| tx.fhir.org | HL7 (Referenz) | Öffentlich, genutzt vom HL7-Validator und IG Publisher; LOINC, SNOMED CT (wo lizenziert), HL7-Tabellen, UCUM. Nicht für Produktionsverkehr |
| Ontoserver | CSIRO (Australien) | Kommerziell; genutzt von nationalen Programmen (Australien, UK NHS Ontology Server, Niederlande, Belgien); vollständiges SNOMED CT mit ECL-Abfragen |
| Snowstorm | SNOMED International | Open Source; SNOMED CT nativ mit FHIR-API; treibt den offiziellen Browser an |
| HAPI FHIR, Firely Server, Microsoft/Google/AWS FHIR-Dienste | Anbieter | Allgemeine FHIR-Server mit Terminologie-Operationen; laden Sie Code-Systeme selbst |
| Nationale Server | Gesundheitsministerien und Behörden | Oft Ontoserver oder Snowstorm mit der nationalen Edition und lokalen ValueSets |
Inhalt ist der schwierige Teil: SNOMED CT benötigt eine Lizenz außerhalb der Mitgliedsländer, LOINC erfordert die Annahme seiner Bedingungen, ICD-10-Landesvarianten haben ihre eigene Verteilung. Ein Server bietet Ihnen die Operationen; Sie müssen den Inhalt weiterhin legal beschaffen und laden.
Wie Anwendungen einen nutzen
Anwendungen nutzen einen Terminologieserver, um Codes und Einheiten beim Schreiben zu validieren, um Suchfelder über $expand mit einem Textfilter und einer Werte Menge zu betreiben, um offizielle Namen über $lookup anzuzeigen, um lokale Codes über $translate nach LOINC oder SNOMED CT zu ICD-10 zu übersetzen und um Hierarchien über $subsumes und die Expression Constraint Language von SNOMED CT zu analysieren.
- Validierung beim Schreiben: Ablehnen einer Observation, deren LOINC-Code nicht existiert oder deren Einheit nicht UCUM ist, mit einer Nachricht, die das Problem benennt.
- Suchfelder:
$expandmitfilterfür Auswahlfelder für Diagnosen, Prozeduren und Medikamente, begrenzt durch ein ValueSet, damit Ärzte nur relevante Konzepte sehen. - Anzeige:
$lookup, um den offiziellen Namen und Übersetzungen anzuzeigen, anstatt Anzeigestrings zu speichern, die veralten. - Mapping:
$translate, um lokale Laborcodes beim Import in LOINC zu verwandeln (wie lokale Laborcodes in LOINC gemappt werden) oder SNOMED CT in ICD-10 für die Berichterstattung (SNOMED CT vs. ICD-10). - Schlussfolgerung:
$subsumesund SNOMED's Expression Constraint Language (ECL, unterstützt von Ontoserver und Snowstorm durch$expand-Filter), um Kohorten und Regeln nach Hierarchie zu definieren.
Cache aggressiv (Terminologie ändert sich zweimal im Jahr, nicht zweimal am Tag), Versionen in der Produktion fixieren und einen Serverausfall als eingeschränkte Validierung behandeln, anstatt als Grund, jeden Schreibvorgang abzulehnen.
In Anpheros
Die Anpheros Platform validiert die LOINC-Codes und UCUM-Einheiten, die sie für Beobachtungen akzeptiert, und die ATC-Codes für Medikamente gegen die von ihr ausgelieferte Terminologie (eine LOINC-Teilmenge und der WHO ATC-Index) und dokumentiert ihre Terminologie-API auf der Entwicklerseite. Für die vollständige SNOMED CT- oder ICD-10-Suche verweist sie auf die offiziellen Browser, anstatt lizenzierte Inhalte weiterzuverbreiten.
Verwandte Seiten
- FHIR-Profile und Erweiterungen erklärt
- Wie lokale Laborcodes in LOINC gemappt werden
- SNOMED CT vs. ICD-10
- CodeableConcept und Coding in FHIR
- UCUM-Einheiten in Laborergebnissen
- Medical Terminology API (Entwicklerseite)
Quellen
- HL7 FHIR R4: Terminologie-Service
- HL7 FHIR R4: ValueSet $expand
- HL7 FHIR R4: ConceptMap $translate
- HL7 FHIR R4: CodeSystem $lookup
- HL7 Terminologie-Server tx.fhir.org
- Snowstorm (SNOMED International, GitHub)
- Ontoserver (CSIRO)
Häufige Fragen
Benötige ich einen Terminologie-Server, um FHIR zu verwenden?
Nicht für ein kleines System mit einer festen Code-Liste. Sobald Sie Codes aus großen Systemen validieren, klinische Suchen anbieten oder zwischen Systemen übersetzen, erspart Ihnen ein Terminologie-Server das Versenden und Aktualisieren der Terminologien selbst.
Kann ich tx.fhir.org in der Produktion verwenden?
Nein. Es ist der Referenzserver von HL7 für Validierungswerkzeuge und Tests, ohne Servicegarantien und mit Lizenzbeschränkungen für einige Inhalte. Betreiben Sie Ihren eigenen oder nutzen Sie einen nationalen oder kommerziellen.
Was ist ECL?
SNOMED CT's Expression Constraint Language, eine Abfragesyntax für Konzeptmengen (z. B. << 73211009 für Diabetes und alle seine Unterarten). Server, die es unterstützen, akzeptieren ECL in ValueSet-Filtern und $expand.
Woher weiß ich, welche Version von SNOMED CT ein Server hat?
Fragen Sie das CodeSystem (GET /CodeSystem?url=http://snomed.info/sct) und lesen Sie seine Version, die die Edition und das Veröffentlichungsdatum kodiert (z. B. http://snomed.info/sct/900000000000207008/version/20260301). Fixieren Sie sie in Ihren Anfragen, wenn die Ergebnisse reproduzierbar sein müssen.
Kostenlos in der Sandbox testen
Ihr erster FHIR-Aufruf in 5 Minuten. Eine HL7 FHIR R4 API mit der Zustimmung des Patienten: probieren Sie sie in der Sandbox aus und verbinden Sie dann Ihre eigene App oder Ihr Kliniksystem.
Kostenlos · 30 synthetische Patienten · keine Karte

