Was sind wichtige Aspekte im MIO-Kontext? Extensions & Datentypen & Choice-Elemente

Hallo und willkommen zu Per Anhalter durch das MIOVersum. In diesem Video möchten wir dir zeigen, was für Arten von Elementen in MIO-Profilen vorkommen können, unter anderem komplexe Datentypen, Choice-Elemente und Extensions.

Profile wie in diesem Fall ein MedicationStatement für die Medikationsinformation im MIO Medikation, haben bestimmte vorgegebene Elemente.
Welche Elemente in einem Profil zur Verfügung stehen, ist in erster Linie abhängig vom Typen der Ressource. Ein MedicationStatement beinhaltet beispielsweise andere Elemente als ein Patient. 

Welchen Datentyp ein Element aufweist, siehst du rechts neben dem Element. Der Datentyp bestimmt, welche Unterelemente und Daten dieses Element beinhalten kann. 

So sehen wir zum Beispiel, dass das status Element den "Code" Datentyp hat und direkt einen Code enthalten muss, während statusReason ein CodeableConcept ist, das weitere Unterelemente beinhaltet.
Wie du also sieht, gibt es in FHIR® einige verschiedene Datentypen.

Dazu gehören einerseits atomare Datentypen, in FHIR® primitive Datentypen genannt, wie Integer oder Strings für Zahlen oder Texte, aber auch komplexe Datentypen. Eine detaillierte Übersicht aller Datentypen findest du in der FHIR®-Spezifikation.

Komplexe Datentypen können ein Wertebereich, Werte mit vorgegebenen Einheiten, oder komplexere Strukturen wie Identifier definieren. Diese können durch ihre Definition stets die gleichen Unterelemente beinhalten.
Andere Beispiele sind Datentypen für Adressen oder Namen, welche wir auch MIO-übergreifend aus den KBV-Basisprofilen oder Basisprofilen von HL7 Deutschland übernehmen.
Die vorgegebenen Datentypen bieten eine Konsistenz, die Herstellern helfen kann, wieder verwendbare Module oder Skripte für den Umgang mit FHIR® zu erstellen.

Einige Elemente in den FHIR®-Profilen unserer MIOs ermöglichen die Auswahl zwischen verschiedenen Datentypen.
Diese nennen wir folgerichtig "choice-Elemente". Erkennen kannst du sie an dem blauen Symbol für Slicings in Kombination mit einem X in eckigen Klammern hinter dem Elementnamen. Außerdem haben Choice-Elemente keinen Datentypen angegeben.

Wenn du ein Choice Element nun aufklappst, siehst du die Auswahl möglicher Datentypen dargestellt wie Slices. Achte hier auf die Kardinalitäten des Choice Elementes sowie der einzelnen Optionen.
In den meisten Fällen musst du dich für genau einen Datentypen entscheiden, da das Choice-Element eine maximale Kardinalität von 1 hat.
Bei unseren MIOs herrscht die Besonderheit, dass wir Choice-Elemente explizit per Slicing anführen, wenn wir beispielsweise deren Kardinalität anpassen, da dies mit FHIR®-Tooling aktuell nicht anders möglich ist.

In manchen Fällen müssen wir in MIOs auch Informationen unterbringen, für die es keine vorgesehenen Elemente gibt. Dies wird über Extensions, also Erweiterungen für die Profile umgesetzt.

Eine Extension erkennst du in der Baumdarstellung am Stern-Symbol.

Ein Beispiel ist die Extension für das "behandlungsziel", die wir auf oberster Ebene der Medikationsinformation hinzugefügt haben. 

Beim Datentyp sehen wir, dass es sich um eine Extension für eine Referenz auf eine Goal Ressource handelt.
Manchmal sind die Inhalte einer Extension nicht direkt ersichtlich, zum Beispiel, wenn diese aus einer Dependency übernommen wurde.
In diesen Fällen kannst du mehr Details sehen, indem du dir die Spezifikation der Extension ansiehst. Dies geht entweder, indem du auf die Extension klickst und in dem Informationsfenster dem Link der Extension-URL folgst, oder im Projekt aus welchem die Extension stammt nach ihr suchst.

Extensions behandelst du wie normale Bestandteile des Profils. Sie können an allen Elementen vorkommen. Es können auch mehrere Extensions an einem Element angefügt sein.

In der Regel darfst du in MIOs nur in den Profilen vorgegebene Extensions verwenden und keine eigenen Extensions hinzufügen.

Damit hast du einen ersten Überblick über Datentypen, Choice-Elemente und Extensions in MIOs. Vielen Dank für's Zuschauen!