---
{
  "title": "Atom-Feed-Syndizierung in Termbox",
  "description": "Die neue Unterstützung von Termbox für Atom-Feed-Syndizierung: Was sie löst, wie sie funktioniert und welche spezifischen Funktionen wir dafür entwickelt haben",
  "date": "2026-05-27",
  "author": "Guillermo Rodríguez",
  "tags": ["Termbox", "FHIR", "Terminology", "Syndication", "Atom", "Feed"]
}
---

Terminology-Inhalte in Healthcare-Ökosystemen sind von Natur aus fragmentiert und heterogen. Für ein Krankenhausnetzwerk, eine nationale Gesundheitsbehörde oder eine regionale HIE stellt es eine erhebliche operative Herausforderung dar, sicherzustellen, dass alle Beteiligten auf der Grundlage einheitlicher Terminologien arbeiten.

Die Inhalte sind vielfältig:

- Gepflegt von verschiedenen Organisationen mit unterschiedlichen gesetzlichen Anforderungen.
- Mit unterschiedlichen Veröffentlichungs- und Aktualisierungszyklen sowie Versionierungsstrategien.
- In verschiedenen Formaten und Varianten aufbereitet und verteilt: Implementation Guides (IGs), eigenständige FHIR-Ressourcen, proprietäre Binärformate, unterschiedliche Distributionsformate (RF2, RRF, CSVs usw.), FHIR-npm-Pakete usw.

Die Inhaltsnutzer haben einige allgemeine Anforderungen:

- Aktualität: Neu veröffentlichte Inhalte so schnell wie möglich erhalten.
- Minimale Abhängigkeiten: Nur die Terminologien und Versionen auswählen, von denen sie abhängen.
- Genauigkeit und Vollständigkeit: Sicherstellen, dass die Terminologiedaten vollständig und korrekt gemäß der in den Leitlinien und Standards definierten Interpretation sind.
- Reproduzierbarkeit: Den Terminologieserver konsistent und vorhersehbar in einen bestimmten Zustand versetzen.
- Operative Agilität: Sicherstellen, dass die Zustandsänderung in der kürzestmöglichen Zeit und mit optimalem Ressourceneinsatz erfolgt.

## Community-Bemühungen in FHIR

Um diesen Anforderungen gerecht zu werden, haben Terminologieserver einen *Content-Syndizierungsmechanismus* auf Basis des **Atom Syndication Format** [RFC-4287](https://www.rfc-editor.org/info/rfc4287/) übernommen. Obwohl dieser Mechanismus schon seit einiger Zeit im Healthcare-Ökosystem vorhanden ist, gab es bis vor Kurzem keine formalen Bestrebungen zur Standardisierung innerhalb von FHIR. Dies hat zu proprietären Implementierungen und der Einführung herstellerspezifischer Funktionen durch Serveranbieter geführt. Im Mai 2026 wurde eine formale Standardisierungsinitiative ins Leben gerufen, die nicht nur Terminologien, sondern die FHIR-Inhaltsverteilung im Allgemeinen abdeckt.

- [CRMI-Syndizierungsspezifikation](https://build.fhir.org/ig/HL7/crmi-ig/en/distribution.html#distribution-syndication)
- [fhir-syndication-ig](https://github.com/aehrc/fhir-syndication-ig)
- [Dokumentation des Terminology-Syndizierungsformats](https://chat.fhir.org/#narrow/channel/179202-terminology/topic/Documenting.20the.20terminology.20syndication.20format/with/593758453)

Dieses Thema befindet sich noch in der Entwicklung. Das Termbox-Team strebt eine aktive Beteiligung an der Definition dieses Standards an und möchte die Diskussion mit den Anwendungsfällen unserer Kunden und den Herausforderungen, denen wir bei der Implementierung der Atom-Feed-Syndizierung begegnet sind, bereichern.

## Inhaltsladen in Termbox

Das Laden von Terminology-Inhalten in Termbox erfolgt deklarativ auf Basis einer Definitionsdatei [`data.yaml`](https://www.health-samurai.io/docs/termbox/loading-data). Diese Datei ist zur Versionierung vorgesehen und repräsentiert den Zustand des Terminologieservers. Dieser Mechanismus vereinfacht das Betriebsmanagement, gewährleistet die Reproduzierbarkeit der Plattform und bietet eine deklarative Möglichkeit, die Terminologien anzugeben, von denen eine Termbox-Instanz abhängt. Termbox ist darauf ausgelegt, sich leicht in Pipelines integrieren zu lassen und die Versionierung einer Termbox-Instanz in Git zu ermöglichen. Mehrere Arten von Terminologiequellen werden unterstützt: NPM-Pakete, kuratierte vorindizierte Terminologien, eigenständige FHIR-Ressourcen und **Atom-Feed-Syndizierung**.

## Termbox-Unterstützung für Atom-Feed

Die Atom-Feed-Syndizierung wurde von Ontoserver pioniert, und Termbox gehört zu den ersten Terminologieservern, die sie unterstützen – mit eigenen Erweiterungen auf Basis der Grundspezifikation.

Eine dieser Funktionen ist [**Filtering**](https://www.health-samurai.io/docs/termbox/loading-data/atom#filtering-feed-entries). Syndizierungs-Feeds können Hunderte von Einträgen enthalten, die Dutzende von Terminologien und Versionen umfassen. Termbox ermöglicht die Auswahl von Einträgen – sowohl über Whitelists als auch Blacklists – sowie einen Wildcard-Versionsabgleich gemäß der [FHIR-Spezifikation](https://build.fhir.org/references.html#matching) auf deklarative Weise; siehe nachstehendes Beispiel.

Termbox implementiert außerdem einen **sync**-Modus. Terminologieserver-Instanzen verändern sich, wenn Clients Pakete installieren, Ressourcen erstellen, Inhalte entfernen usw. Übergeordnete Terminologieserver stellen Inhalte nach und nach ein und entfernen Pakete, Versionen usw. Termbox ermöglicht die Angabe der Option `sync: true` in der `data.yaml`, die Termbox anweist, sich vollständig mit dem Syndizierungsserver zu synchronisieren und nur die deklarierten Terminologien beizubehalten. Diese Funktion spart Speicherplatz und gewährleistet die Konsistenz des Terminologieservers.

Beispiel: Nur SNOMED UK Edition und ICD-10-UK Version 4.0 einbinden

```yaml
sync: true
sources:
  - type: atom
    feed: https://ontology.nhs.uk/production1/synd/syndication.xml
    auth:
      type: client_credentials
      client_id_env: NHS_CLIENT_ID
      client_secret_env: NHS_SECRET
      token_url: https://ontology.nhs.uk/authorisation/auth/realms/nhs-digital-terminology/protocol/openid-connect/token
    include:
      - url: http://snomed.info/sct
        version: http://snomed.info/sct/83821000000107
      - url: http://hl7.org/fhir/sid/icd-10-uk
        version: '4.0'
```

### Streaming-Ingestion im großen Maßstab

Bei der Integration mit einem Content-Syndizierungsserver gibt es einige Herausforderungen zu bewältigen. Eine davon ist die Größe von FHIR-Ressourcen. FHIR verfügt noch über kein streaming-freundliches Distributionsformat [^1], weshalb große JSONs weit verbreitet sind. Aufgrund der Natur des JSON-Formats geht die Verarbeitung eines großen CodeSystem wie dm+d (394 MB) mit einem übermäßig hohen RAM-Verbrauch einher, der skaliert, sobald mehrere CodeSystems gleichzeitig verarbeitet werden müssen. Termbox implementiert einen gestreamten FHIR-Ressourcen-Ingestionsmechanismus, der auf geringen RAM-Verbrauch optimiert ist – unabhängig von der Anzahl der zu verarbeitenden FHIR-Ressourcen oder deren Größe. Termbox optimiert außerdem die Zeit, die zum Laden großer Terminologien benötigt wird, z. B. SNOMED, LOINC und RxNorm.

Um zu erkunden, was Termbox sonst noch bietet, ist die [Erste-Schritte-Anleitung](https://www.health-samurai.io/docs/termbox/getting-started) ein schneller Einstiegspunkt, und das Laden von Inhalten ist ausführlich unter [Loading Data](https://www.health-samurai.io/docs/termbox/loading-data) dokumentiert.

[^1]: Die FHIR-Community hat begonnen, Vorschläge für streaming-freundliche Distributionsformate zu diskutieren. Wir werden dieses Thema in zukünftigen Artikeln vertiefen.