Was ist ein FHIR Terminology Service?
Terminology-Server (TX-Server) sind FHIR-Dienste, die auf die Verwaltung von Wissensartefakt-Ressourcen im Bereich Terminologie und Vokabular spezialisiert sind. Ein einziger TX-Server kann Terminologieoperationen fĂŒr viele FHIR-Server bereitstellen. TX-Server verwalten in der Regel keine klinischen Ressourcen wie Patienten, Beobachtungen, Medikamente oder Diagnosenberichte, sondern Ressourcen, die zur Integration von Wissen in Gesundheitssysteme dienen. TX-Dienste helfen dabei, Fragen wie die folgenden zu beantworten:
- âIst
85354-9ein gĂŒltiger LOINC-Code?" ($validate-code) - âGib mir alle Codes fĂŒr Vitalzeichen-Messungen" (
$expand) - âWie lautet der Anzeigename fĂŒr den ICD-10-Code S920?" (
$lookup) - âWas ist das SNOMED-Ăquivalent dieser ICD-10-Diagnose?" (
$translate)
TX-Server verwalten hÀufig inhaltsreiche Standardterminologien, auch externe Terminologien genannt. Diese Terminologien stellen erhebliche Herausforderungen in Bezug auf Speicherung und Wartung dar:
- SNOMED CT International: Ăber 365.000 aktive Konzepte mit komplexen hierarchischen Beziehungen
- LOINC: Ăber 100.000 Labor- und klinische Beobachtungscodes mit umfangreichen Eigenschaften
- RxNorm: Ăber 200.000 Arzneimittelkonzepte einschlieĂlich historischer und markenbezogener Varianten
- ICD-10: Ăber 70.000 Diagnosecodes in mehreren nationalen Varianten
TX-Server verwalten auĂerdem Community-Terminologien, die in Implementation Guides (IGs) enthalten sind, wie z. B. US Core (das Terminologie enthĂ€lt, die auf die Gesundheitsversorgung in den Vereinigten Staaten zugeschnitten ist), sowie organisationsspezifische benutzerdefinierte Terminologien, die als lokale CodeSystems und ValueSets abgebildet werden.
Das Problem
Organisationen, die FHIR implementieren, benötigen eine umfassende Abdeckung externer Terminologien in Kombination mit benutzerdefinierten Terminologien und Community-Terminologien. Terminologien werden selten isoliert verwendet. Nennen wir dies das Problem der gemischten Terminologien. Eine typische Implementierung einer elektronischen Patientenakte könnte Folgendes erfordern:
resourceType: ValueSet
compose:
include:
- system: http://loinc.org
filter:
- property: SCALE_TYP
op: "="
value: Qn
- system: http://example.org/fhir/CodeSystem/custom-vitals
concept:
- code: pain-scale-1-10
- code: mobility-assessment
- system: http://hl7.org/fhir/us/core/CodeSystem/us-core-category
concept:
- code: vital-signs
Dieses einzelne ValueSet kombiniert:
- Externe Terminologie (LOINC) mit Filteranforderungen
- Benutzerdefinierte Terminologie fĂŒr organisationsspezifische Messungen
- Community-Terminologie aus US Core fĂŒr InteroperabilitĂ€t
Der traditionelle Ansatz fĂŒr diese Anforderung an gemischte Terminologien besteht darin, alle drei Arten von Terminologien im selben TX-Server zu verwalten.
Rein lokale Terminology-Server und groĂe Terminologien
Rein lokal bedeutet, den FHIR-Server sowohl fĂŒr klinische als auch fĂŒr Terminologieressourcen zu nutzen. Dieser Ansatz setzt voraus, dass Wissensartefakte im Zusammenhang mit Terminologien Ă€hnlich wie klinische Ressourcen behandelt werden und dieselbe Engine, denselben Speicher und dieselbe Infrastruktur teilen.
Vorteile
- Einfache Nutzung: Alles an einem Ort. Es sind keine externen Integrationen oder Orchestrierungen erforderlich.
- VollstĂ€ndige Kontrolle: Terminologieressourcen können sofort geĂ€ndert werden, ohne auf externe Aktualisierungen warten zu mĂŒssen.
Nachteile
- Datenverwaltung: Die Verwaltung externer Terminologien erfordert in der Regel Gigabytes an Speicherplatz fĂŒr Konzeptdefinitionen, Eigenschaften und Beziehungen â auch wenn die Clients möglicherweise nur eine kleine Teilmenge der Terminologiekonzepte benötigen.
- Lifecycle-Management: Es ist ein Mechanismus erforderlich, um die Terminologie mit offiziellen Releases aktuell zu halten.
- Mangelhafte UnterstĂŒtzung von TX-Operationen: Die meisten FHIR-Server unterstĂŒtzen erweiterte Funktionen, die TX-Server bieten, nicht vollstĂ€ndig, zum Beispiel: Implizite ValueSets
- Terminologiespezifische Abfragesprache (ECL)
- UnterstĂŒtzung von Supplements
- Sprachpakete
Rein externe Terminology-Server und kontextspezifische Terminologien
Externe Terminology-Server sind gehostete TX-Dienste, die Zugang zu groĂen Standardterminologien bieten, ohne lokalen Speicherbedarf. Beispiele hierfĂŒr sind Community-Dienste wie HL7's TX-Server und Ontoserver sowie kommerzielle SaaS-Angebote wie Health Samurai's Termbox. Diese Dienste sind hervorragend geeignet, umfassende Abdeckung fĂŒr umfangreiche Terminologien wie SNOMED CT und LOINC bereitzustellen. Die vollstĂ€ndige AbhĂ€ngigkeit von einer externen Delegierung schafft jedoch mehrere betriebliche Herausforderungen, insbesondere wenn eine Organisation auch kontextspezifische Terminologien verwalten muss, wie etwa solche aus Implementation Guides oder benutzerdefinierten lokalen Codesystemen.
Vorteile
- VollstÀndige TX-Dienste: Breite Abdeckung von Terminologieoperationen.
- Content-Lifecycle-Management: Die Inhalte externer Terminologien sind garantiert aktuell.
- Kein lokaler Speicher: Es werden nur die benötigten Daten vom TX-Server und den externen Terminologien genutzt, ohne unnötige Daten lokal zu speichern.
Nachteile
- Wenig Kontrolle: Clients können keine Aktualisierungen an Terminologien vornehmen; nur der TerminologieeigentĂŒmer kann Aktualisierungen ĂŒber Releases bereitstellen.
- Benutzerdefinierte Terminologien: Da gemischte Terminologien eine stĂ€ndige Anforderung darstellen, muss entschieden werden, wie mit benutzerdefinierten Terminologien umgegangen wird â entweder durch deren Veröffentlichung auf dem externen Dienst (wodurch sie fĂŒr alle TX-Server-Clients verfĂŒgbar werden) oder durch die Einrichtung eines intelligenten Mechanismus zur Weiterleitung bzw. Koordinierung von Terminologieanfragen basierend auf deren Eigenschaften.
- Erhöhte AnfÀlligkeit: Die Delegierung jeder Terminologieanfrage an einen externen TX-Server macht das System anfÀlliger aufgrund der NetzwerkabhÀngigkeit und potenzieller KonnektivitÀtsprobleme.
Sowohl der rein lokale als auch der rein externe Ansatz sind fĂŒr das Szenario der gemischten Terminologien unzureichend und erzwingen Kompromisse bei FunktionalitĂ€t oder Performance. Das Kernproblem besteht darin, dass inhaltsreiche Terminologien wie SNOMED CT, LOINC und RxNorm breite Anwendbarkeit haben, wĂ€hrend Community- und benutzerdefinierte Terminologien kontextspezifisch sind und andere TX-Server-Clients nicht beeinflussen sollten.
Die Lösung der Infrastrukturherausforderungen umfangreicher Terminologien (Speicherung, Indexierung, Aktualisierungen) erfordert völlig andere AnsĂ€tze als die Verwaltung kleiner, sich schnell Ă€ndernder lokaler Vokabulare (AgilitĂ€t, Anpassung, Governance). Traditionelle TX-Dienste können nicht gleichzeitig fĂŒr beide Szenarien optimiert werden, was entweder zu ĂŒberdimensionierten Lösungen fĂŒr einfache lokale Terminologien oder zu unzureichender Infrastruktur fĂŒr groĂe Standardterminologien fĂŒhrt.
Der hybride Ansatz
Der hybride Terminology-Dienst löst diese Herausforderung durch intelligente Anfragenanalyse und -partitionierung. Anstatt eine binĂ€re Wahl zwischen lokaler und externer Verarbeitung zu erzwingen, untersucht die hybride Engine jede Anfrage, um zu bestimmen, welche Ressourcen lokal verfĂŒgbar sind und welche eine externe Delegierung erfordern, und setzt die Ergebnisse anschlieĂend zusammen.
Um den hybriden Algorithmus zu veranschaulichen, betrachten wir eine Gesundheitsorganisation mit:
- Lokalem CodeSystem:
http://hl7.org/fhir/test/CodeSystem/simple - Entferntem CodeSystem:
http://hl7.org/fhir/sid/icd-10
Definition des lokalen CodeSystem:
resourceType: CodeSystem
language: en
url: http://hl7.org/fhir/test/CodeSystem/simple
version: 0.1.0
hierarchyMeaning: is-a
content: complete
concept:
- code: code1
display: Display 1
Beispiel fĂŒr die Validierung eines Remote-Codes
Validieren wir einen ICD-10-Code, der eine externe Delegierung erfordert.
Anfrage:
POST /fhir/ValueSet/$validate-code
resourceType: Parameters
parameter:
- name: code
valueCode: S920
- name: system
valueUri: http://hl7.org/fhir/sid/icd-10
- name: valueSet
resource:
resourceType: ValueSet
url: http://example.org/fhir/ValueSet/vs1
compose:
include:
- system: http://hl7.org/fhir/test/CodeSystem/simple
- system: http://hl7.org/fhir/sid/icd-10
Antwort:
resourceType: Parameters
parameter:
- name: result
valueBoolean: true
- name: code
valueCode: S920
- name: system
valueUri: http://hl7.org/fhir/sid/icd-10
- name: version
valueString: 2019-covid-expanded
- name: display
valueString: 'Fracture of foot, except ankle : closed'
Das System erkennt, dass http://hl7.org/fhir/sid/icd-10 lokal nicht verfĂŒgbar ist, und delegiert die Validierung an den externen Terminology-Server.
Wie funktioniert diese Engine?
Die hybride Engine verarbeitet ValueSet/$validate-code-Anfragen in den folgenden Phasen:
1. Lokales ValueSet & AbhÀngigkeiten auflösen
Das ValueSet ist der Einstiegspunkt in den TerminologieausfĂŒhrungskontext. Die hybride Engine löst den vollstĂ€ndigen AbhĂ€ngigkeitsgraphen lokal auf, einschlieĂlich aller referenzierten CodeSystems und verschachtelter ValueSets.
2. AbhÀngigkeiten-Map aufbauen
Es wird eine AbhÀngigkeits-Map aus den Kompositionsregeln des ValueSet erstellt. Die AbhÀngigkeitsauflösung basiert auf dem kanonischen Auflösungsalgorithmus von FHIR, um die aktuellsten kompatiblen Versionen auszuwÀhlen.
3. VerfĂŒgbarkeit analysieren
Die hybride Engine analysiert den TerminologieausfĂŒhrungskontext, um Ressourcenanforderungen zu erkennen. Diese Analyse umfasst:
- VerfĂŒgbarkeit von CodeSystem-Inhalten: Systeme, die als
content: "not-present"markiert sind, erfordern externe Verarbeitung - AbhĂ€ngigkeiten in der ValueSet-Komposition: Include/Exclude-Regeln, die auf nicht verfĂŒgbare CodeSystems verweisen
- Kanonische URL-Auflösung: Fehlende Ressourcen in der lokalen FHIR Artifact Registry
4. Verarbeitung mit einzelnem Ziel
Wenn alles lokal oder alles remote ist, wird die Anfrage an dieses einzelne Ziel weitergeleitet und das Ergebnis zurĂŒckgegeben.
5. Hybride Verarbeitung
Wenn die Analyse ergibt, dass Teile des AbhĂ€ngigkeitsgraphen externe Verarbeitung erfordern, wird die Anfrage zunĂ€chst lokal ausgefĂŒhrt. Wenn die lokale Validierung erfolgreich ist, wird das Ergebnis an den Client zurĂŒckgegeben. SchlĂ€gt sie fehl, entfernt die hybride Engine die lokalen Komponenten und delegiert die verbleibende Anfrage an den konfigurierten externen Terminology-Server.
Ein komplexeres Szenario: die ValueSet/$expand-Operation
Der hybride Algorithmus wird Ă€hnlich auf $expand-Operationen angewendet, mit einem wesentlichen Unterschied: der FĂ€higkeit, Ergebnisse aus verschiedenen Quellen zusammenzufĂŒhren. Betrachten wir die Expansion eines ValueSet, das lokale und remote Terminologiesysteme kombiniert.
Lokal verfĂŒgbare ValueSets
resourceType: ValueSet
url: http://example.org/vs-local1
compose:
include:
- system: http://hl7.org/fhir/administrative-gender
filter:
- property: concept
op: "="
value: female
---
resourceType: ValueSet
url: http://example.org/vs-remote1
compose:
include:
- system: http://loinc.org
filter:
- property: concept
op: in
value: 1751-7,2339-0
---
resourceType: ValueSet
url: http://example.org/vs-remote2
compose:
include:
- system: http://loinc.org
filter:
- property: concept
op: "="
value: 2339-0
Anfrage:
POST /fhir/ValueSet/$expand
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
compose:
include:
- valueSet:
- http://example.org/vs-local1
- valueSet:
- http://example.org/vs-remote1
exclude:
- valueSet:
- http://example.org/vs-remote2
Antwort:
resourceType: ValueSet
expansion:
total: 2
parameter:
- name: used-valueset
valueUri: http://example.org/vs-local1
- name: used-valueset
valueUri: http://example.org/vs-remote1
- name: used-valueset
valueUri: http://example.org/vs-remote2
- name: used-codesystem
valueUri: http://hl7.org/fhir/administrative-gender|4.0.1
- name: used-codesystem
valueUri: http://loinc.org|3.1.0
- name: used-codesystem
valueUri: http://loinc.org|2.76
- name: version
valueUri: http://loinc.org|2.76
contains:
- code: female
system: http://hl7.org/fhir/administrative-gender
display: Female
- system: http://loinc.org
code: 1751-7
display: Albumin [Mass/volume] in Serum or Plasma
Die hybride Engine verarbeitet das administrative-gender-Konzept lokal, wĂ€hrend die LOINC-Filterung an den konfigurierten externen TX-Server delegiert wird. WĂ€hrend $validate-code-Operationen binĂ€re Validierungsergebnisse erfordern, mĂŒssen $expand-Operationen Konzeptlisten aus lokalen und Remote-Quellen kombinieren.
Der hybride Algorithmus fĂŒr $expand-Operationen umfasst zwei zusĂ€tzliche Schritte:
6. Werden weitere EintrÀge benötigt?
Wenn die lokale Expansion die Anfrage nicht vollstĂ€ndig erfĂŒllen kann, entfernt die hybride Engine die lokalen Komponenten aus der ursprĂŒnglichen Anfrage und delegiert die verbleibenden Teile an den konfigurierten externen Terminology-Server, um die Remote-Expansion aufzulösen.
7. Mit lokalem Ergebnis zusammenfĂŒhren
Die hybride Engine kombiniert anschlieĂend die lokalen und Remote-Expansionen, dedupliziert Konzepte und erstellt die abschlieĂenden Expansionsmetadaten mit BeitrĂ€gen aus beiden Quellen.
Hybride Terminology Engine in Aidbox
Aidbox hat die Hybride TX-Engine im Release 2507 eingefĂŒhrt, mit UnterstĂŒtzung (zum Zeitpunkt der Veröffentlichung dieses Artikels) fĂŒr:
- CodeSystem: Operationen
$lookupund$validate-code - ValueSet: Operationen
$validate-codeund$expand - ConceptMap-Operationen: Operation
$translate
Weitere Details finden Sie im Capabilities-Register.
Hybride Engine in v2507+ aktivieren
Starten Sie Aidbox lokal gemÀà der Anleitung Aidbox lokal ausfĂŒhren. Die heruntergeladene docker-compose.yaml-Datei enthĂ€lt Umgebungsvariablen zur Aktivierung des Hybrid-Modus:
services:
aidbox:
environment:
BOX_FHIR_TERMINOLOGY_ENGINE: hybrid
BOX_FHIR_TERMINOLOGY_ENGINE_HYBRID_EXTERNAL_TX_SERVER: https://tx.health-samurai.io/fhir
Weitere Konfigurationsdetails finden Sie unter Einrichtung des Aidbox Terminology-Moduls.
FHIR-Ressourcen vorbereiten
Ăffnen Sie Aidbox's REST Console und senden Sie:
POST /fhir/ValueSet
resourceType: ValueSet
status: active
url: http://example.org/vs-local1
compose:
include:
- system: http://hl7.org/fhir/administrative-gender
filter:
- property: concept
op: "="
value: female
POST /fhir/ValueSet
resourceType: ValueSet
status: active
url: http://example.org/vs-remote1
compose:
include:
- system: http://loinc.org
filter:
- property: concept
op: in
value: 1751-7,2339-0
POST /fhir/ValueSet
resourceType: ValueSet
status: active
url: http://example.org/vs-remote2
compose:
include:
- system: http://loinc.org
filter:
- property: concept
op: "="
value: 2339-0
ValueSet $expand-Operation ausfĂŒhren
Erweitern Sie nun ein ValueSet, das aus lokalen und Remote-Terminologien zusammengesetzt ist.
Anfrage:
POST /fhir/ValueSet/$expand
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
compose:
include:
- valueSet:
- http://example.org/vs-local1
- valueSet:
- http://example.org/vs-remote1
exclude:
- valueSet:
- http://example.org/vs-remote2
Antwort:
resourceType: ValueSet
expansion:
identifier: urn:uuid:f087ced0-b9b7-4277-a4d7-e97d23ff44fe
timestamp: '2025-09-05T14:27:07.118905554Z'
total: 2
parameter:
- {name: used-valueset, valueUri: 'http://example.org/vs-local1'}
- {name: used-valueset, valueUri: 'http://example.org/vs-remote1'}
- {name: used-valueset, valueUri: 'http://example.org/vs-remote2'}
- {name: used-codesystem, valueUri: 'http://hl7.org/fhir/administrative-gender|4.0.1'}
- {name: used-codesystem, valueUri: 'http://loinc.org|2.76'}
- {name: version, valueUri: 'http://loinc.org|2.76'}
contains:
- {code: female, system: 'http://hl7.org/fhir/administrative-gender', display: Female}
- {system: 'http://loinc.org', code: 1751-7, display: 'Albumin [Mass/volume] in Serum or Plasma'}
Weitere Beispiele finden Sie in der Dokumentation des Aidbox Terminology-Moduls.
Zusammenfassung
Die hybride Terminology Engine ist ein produktionsreifer Ansatz, um das zu bewÀltigen, womit traditionelle TX-Dienste Schwierigkeiten haben: breite Abdeckung und lokale Kontrolle gleichzeitig zu bieten.
Wesentliche Vorteile gegenĂŒber traditionellen AnsĂ€tzen
- Reduzierte externe API-Nutzung: Nur externe Ressourcen lösen Anfragen an den externen Server aus.
- Parallele Verarbeitung: Lokale und externe Abfragen können gleichzeitig ausgefĂŒhrt werden.
- Intelligentes Caching: Lokale Ressourcen profitieren von Datenbankoptimierungen und Indexierung sowie vom Caching von Remote-Ergebnissen.
- Schrittweise Migration: Terminologien können in eigenem Tempo zwischen lokal und extern verschoben werden.
- Kontrolle ĂŒber benutzerdefinierte Terminologien: Sensible oder proprietĂ€re Terminologie verbleibt unter lokaler Kontrolle.
- Zugang zu Standard-Terminologien: Umfassende Abdeckung externer Terminologien ohne lokale Speicherlast.
- Erweiterte UnterstĂŒtzung von TX-Server-Operationen: Die hybride Engine implementiert die TX-Dienstspezifikation nahezu zu 100 % mit Schwerpunkt auf benutzerdefinierten und Community-Terminologien.






