Demo der ELT-Implementierung für PostgreSQL mit Aidbox, dem quelloffenen ViewDefinition Builder und Grafana.
Schauen wir den Tatsachen ins Gesicht: FHIR hat sich fest etabliert, und immer mehr Gesundheitsdaten werden im FHIR-Format gespeichert. Doch was ist der effizienteste Weg, um aus diesen Daten Erkenntnisse zu gewinnen?
In diesem Blogbeitrag untersuchen wir, wie sich die Lücke zwischen FHIR und SQL mithilfe der neuen SQL on FHIR v2-Spezifikation schließen lässt – sodass FHIR-Daten nicht nur interoperabel, sondern auch abfragbar und analysierbar werden.
Beim Lesen erfahren Sie:
- Was ist SQL on FHIR?
- Wie wird es in der Praxis eingesetzt?
- Wie wird sich diese Technologie weiterentwickeln?

Warum SQL on FHIR?
FHIR verfügt über eine integrierte Such-API, die jedoch für komplexe Abfragen auf FHIR-Daten nicht ausreicht. Es fehlen wesentliche Funktionen wie Aggregationen, Joins und andere Datenbankwerkzeuge, die man möglicherweise benötigt.
Die größte Herausforderung besteht darin, dass FHIR-Daten verschachtelt sind – eine Abkehr vom traditionellen flachen relationalen Datenbankansatz. Dieser Unterschied macht es schwierig, direkt Standard-SQL-Abfragen auszuführen. Man könnte es mit dem Versuch vergleichen, einen eckigen Zapfen in ein rundes Loch zu stecken.
Natürlich gibt es fortschrittliche Datenbanktechnologien wie JSONB in PostgreSQL oder Parquet in Spark SQL, die verschachtelte Datenstrukturen verarbeiten können. Sowohl Anwender als auch Tools sind jedoch daran gewöhnt, mit flachen Tabellen zu arbeiten, wie sie für SQL typisch sind.
Um dies zu umgehen, müssen Entwickler unter Umständen abgeflachte Views der Daten erstellen oder spezifische Datenbankfunktionen nutzen, die verschachtelte Datenstrukturen unterstützen.
Genau hier kommt SQL on FHIR ins Spiel.

Zwei Welten verbinden, um FHIR-Daten zugänglich zu machen
Die SQL on FHIR-Spezifikation schlägt vor, abgeflachte Views von FHIR-Daten auf standardisierte Weise zu definieren, damit diese zwischen Systemen portierbar sind. Das bedeutet, dass Sie problemlos Standard-SQL-Abfragen auf diesen abgeflachten Views ausführen können. Kurz gesagt: Es erschließt die Daten für das SQL-Ökosystem – ähnlich einem Werkzeugkasten, der sowohl für runde als auch für eckige Zapfen geeignet ist.
Die SQL on FHIR-Engine in Aidbox befindet sich derzeit in der Vorschauphase, steht aber zum Testen und für Feedback zur Verfügung. Mehr erfahren
Was ist eine abgeflachte View?
Im SQL-Kontext ist eine abgeflachte View eine Tabelle, die Daten in einer vereinfachten, einschichtigen Struktur darstellt. Entwickler und Data Engineers können abgeflachte Views mithilfe einer Teilmenge standardisierter FHIRPath-Ausdrücke definieren. Dadurch erhalten Verbraucher die Daten in einem vertrauteren Format.
Nutzen Sie unseren kostenlosen Online-ViewDefinition Builder, um im JSON-Format gespeicherte FHIR-Daten in ein tabellarisches, flaches Format für eine komfortable Datenanalyse umzuwandeln. Zum ViewDefinition Builder
Wie bereits erwähnt, sind verschachtelte FHIR-Daten in einer hierarchischen Struktur organisiert, bei der Informationen innerhalb anderer Informationen eingebettet sind und so Schichten zusammengehöriger Daten entstehen.
So ist eine Patient-Ressource in FHIR aufgebaut:
Schauen wir uns an, wie komplexe FHIR-Daten in ein tabellenähnliches Format „übersetzt" werden können. Dazu müssen wir eine abgeflachte View Definition für eine Patient-Ressource erstellen. In unserem Beispiel enthält die View die Parameter Patienten-ID, Geburtsdatum, Geschlecht, Ethnizität und Name.
- Geben Sie in der Zeile „from" den Ressourcentyp an, den Sie abflachen möchten.
- Verwenden Sie die Zeile „select", um Spalten zusammen mit den zugehörigen FHIRPath-Extraktionsausdrücken zu definieren.
Als Ergebnis erhalten wir die folgende flache Tabelle:
Betrachten wir eine weitere FHIR-Ressource – Condition:
Flachen wir die Condition-Ressource genauso ab wie die Patient-Ressource. Die View enthält die Parameter ID, Patienten-ID, Code, Status, Verifizierungsstatus und Erfassungsdatum:
Als Ergebnis erhalten wir die folgende flache Tabelle:

Starten Sie mit dem Aidbox FHIR Server für Datenspeicherung, Integrationen, Healthcare-Analytik und mehr, oder beauftragen Sie unser Team zur Unterstützung Ihrer Softwareentwicklungsanforderungen.
Standardisierte SQL on FHIR-Daten
Sobald wir flache Tabellen haben, können wir komplexe Abfragen ausführen, mit denen wir Daten auf verschiedene Weisen verknüpfen, filtern, sortieren und aggregieren können. Sie können auch Unterabfragen, Fensterfunktionen und andere erweiterte Funktionen verwenden, um genau die benötigten Informationen zu extrahieren.
Verwenden wir beispielsweise die zuvor abgeflachte Condition-View und suchen mit einer einfachen SQL-Abfrage alle Patienten mit einer Prädiabetes-Diagnose:
Als Ergebnis erhalten wir die folgende flache Tabelle:
Nun verwenden wir sowohl die Patient- als auch die Condition-View, um noch mehr Erkenntnisse zu gewinnen. Zählen wir, wie viele Männer und Frauen an Prädiabetes erkrankt sind:
Hier ist das Ergebnis:
Ermitteln wir nun die Erkrankungsdauer:
Die resultierende flache Tabelle sieht wie folgt aus:
Berechnen wir nun die durchschnittliche Prädiabetes-Dauer für Männer und Frauen:
Als Ergebnis erhalten wir die durchschnittliche Erkrankungsdauer für jedes Geschlecht:

Zusammenfassung
SQL on FHIR ist ein leistungsstarker Ansatz, der die Stärken von SQL und FHIR vereint und es Ihnen ermöglicht, mit komplexen Gesundheitsdaten, die in FHIR-Ressourcen gespeichert sind, mithilfe vertrauter SQL-Abfragewerkzeuge und -Frameworks zu arbeiten.
Hier eine kurze Zusammenfassung der Vorteile:
- Fundierte Entscheidungen: SQL on FHIR eignet sich hervorragend, um aussagekräftige Erkenntnisse aus komplexen FHIR-Datensätzen zu gewinnen.
- Vertrautes Terrain: Wer SQL kennt, findet sich schnell zurecht.
- Portierbarkeit: SQL on FHIR verwendet FHIRPath, um Views zu definieren, die systemübergreifend genutzt werden können. Die FHIR-Community kann flache Views und Abfragen definieren, die in jedem SQL-basierten Ökosystem ausgeführt werden können.
Insgesamt schließt SQL on FHIR die Lücke zwischen verschachtelten FHIR-Daten und SQL und bietet einen optimierten Weg, Gesundheitsdaten effektiv zu verwalten und zu nutzen.
Hinweis
Es ist wichtig zu beachten, dass der Einsatz von SQL on FHIR den Bedarf an FHIR-APIs nicht ersetzt, die für den Datenaustausch zwischen Gesundheitssystemen und die Umsetzung von Interoperabilitätsstandards unerlässlich sind. SQL on FHIR ergänzt diese Fähigkeiten, indem es eine effektivere Möglichkeit bietet, mit Gesundheitsdaten im FHIR-Format für analytische, forschungs- und berichtsbezogene Zwecke zu interagieren. Es ist wie ein Universalschlüssel, der viele Türen öffnet und die Arbeit mit FHIR-Daten über verschiedene Technologien hinweg erleichtert.
Um zu erkunden, wie SQL on FHIR in Ihren Projekten eingesetzt werden kann, empfehlen wir die Nutzung der kostenlosen Version von Aidbox. Sie bietet eine umfassende Umgebung zum Testen und Experimentieren mit diesen Funktionen und stellt alle notwendigen Werkzeuge ohne Funktionseinschränkungen bereit.
Die nahe Zukunft
Der SQL on FHIR-Entwurf wird im September 2023 beim HL7 FHIR Connectathon 34 in Phoenix, Arizona, vorgestellt.
SQL on FHIR v2 ist eine offene Initiative und begrüßt die Beteiligung interessierter Parteien. Treten Sie der SQL on FHIR-Arbeitsgruppe bei, nehmen Sie an Diskussionen teil und tragen Sie zur Weiterentwicklung dieser Lösung bei.
- SQL on FHIR v2-Spezifikation lesen
- An der Diskussion auf GitHub teilnehmen
- Fragen im Zulip-Chat stellen
- Auf YouTube ansehen
Zum aktuellen Stand des Standards – ViewDefinition, SQLView/SQLQuery und die Standard-Run/Export/Materialize-API – siehe interoperable Analytik mit SQL on FHIR.
Health Samurai treibt die SQL on FHIR-Arbeitsgruppe aktiv voran, der auch Google, CSIRO, Microsoft, Philips, NCQA, CQLab, Center Square Solutions und Vermonster angehören. Die Arbeitsgruppe konzentriert sich auf frühe Implementierungen, um eine standardisierte Lösung ohne Anbieterabhängigkeit zu entwickeln.
Die SQL on FHIR-Engine von Health Samurai steht zur Vorschau und zum Testen zur Verfügung. Wenn Sie Fragen haben oder bestimmte Anwendungsfälle im Sinn haben, teilen Sie diese gerne mit. Buchen Sie einen Termin, um sie in Aktion zu sehen.







