<< Klicken Sie, um das Inhaltsverzeichnis anzuzeigen >> Navigation: Schnittstellen > Daten-Referenzierung |
Da EMIL ein stark parametrierbares System ist, das sich laufend weiterentwickelt und mit den Plus-Funktionen auch vom EMIL-Administrator selbst um eigene Strukturen erweitert werden kann, ist es nicht möglich, alle Datenstrukturen vorausschauend fest zu dokumentieren. Wir haben das System daher stattdessen selbstdokumentierend konzipiert, was bedeutet, dass die Hinweise und Anleitungen im Folgenden für alle aktuellen, zukünftigen und auch für selbst angelegte Strukturen gelten. In den vorhergehenden Beschreibungen der Query-Schnittstelle und der bidirektionalen Schnittstelle wurde daher überall, wo Daten aus EMIL zu referenzieren sind, auf diesen Abschnitt verwiesen.
Grundsätzliche Hinweise
Alle Entitäten in EMIL haben intern eindeutige IDs (Primärschlüssel), die automatisch generiert werden und keinen weiteren semantischen Inhalt haben. Alle Selektionen und Referenzierungen geschehen über diese IDs, da eine Referenzierung über Klarname z.B. das Problem unterschiedlicher Schreibweisen und Dubletten beinhaltet, zudem eine Reihe von Entitäten in EMIL im Dictionary von Anwendenden umbenannt werden können. Zudem sind Referenzierungen über numerische IDs in Datenbanken auch am schnellsten. Kodierte Items in EMIL speichern ebenfalls keinen Klartext in der Datenbank, sondern nur Codes, um eine Umbenennung ohne Datenverlust zu ermöglichen.
Referenzierung von Patienten
Patienten werden über ihre interne SUBJECT_ID referenziert. Diese findet sich in der Patientenakte als interne ID:
Referenzierung von Items
Alle Daten außer Stammdaten sind in Items gespeichert, die nach dem Single Point of Truth Prinzip nur einmal
•pro Patient
•pro Zeitpunkt (Visit), feste Daten wie Hauptdiagnose grundsätzlich nur einmal
•pro Itemtyp
auftreten können. Items enthalten als Payload alle erforderlichen Daten. Das kann ein Zahlenwert sein oder auch eine JSON Struktur, wenn es sich im einen Questionnaire handelt.
Um ein Item zu spezifizieren, ist neben Patient und Zeitpunkt die sogenannte TypID erforderlich, welche die Art des Items beschreibt. Diese findet sich in EMIL bei Rechtsklick auf eine Zelle mit dem gewünschten Item unter (1):
Referenzierung von Studien
Auch Studien werden intern über eindeutige IDs referenziert. Diese IDs sind bei Versorgungsverträgen über alle Instanzen gleich, bei selbst angelegten Studien aber einrichtungsspezifisch! Die ID einer Studie kann man über das Studienpanel in den Stammdaten eines beliebigen Patienten durch Rechtsklick auf die Studie (1) in der Titelleiste des Menüs (2) ermitteln.
Referenzierung der Codes kodierter Items
Einfach- und Mehrfachauswahlitems werden grundsätzlich kodiert in der Datenbank gespeichert, um den Anzeigetext ohne Datenverlust gegebenenfalls übersetzen, korrigieren und anpassen zu können.
Wenn Daten über die Query-Schnittstelle abgerufen werden, erhalten Sie eine mit Semikolon separierte Liste der Codes (bei Mehrfachauswahl) oder nur einen Code und können darüber über die mitgelieferte Tabelle codes den entsprechenden decode ermitteln.
In EMIL existieren verschiedene Standardkodierungen für bestimmte häufig auftretende Feldtypen, die nicht explizit in den Codelisten zu finden sind.
Itemtyp |
Optionen |
Diagnosesicherheit |
G = Gesichert |
Seite |
L = Links |
Positiv/Negativ |
P = Positiv |
Ja/Nein |
Y = Ja |
Ja/Nein/Unbekannt |
Y = Ja |
Geschlecht |
F = Weiblich |
Die folgende weitere Beschreibung gilt nur für die Nutzung der bidirektionalen Schnittstelle:
Wenn mehrere Codes in einem Item zutreffen, werden diese in einer durch $ getrennten Kette gespeichert. So repräsentiert beispielsweise "$001$002$ABC" bei einer Mehrauswahl die Optionen mit den Codes 001, 002 und ABC.
Um sicher zu stellen, dass man korrekt vergleicht, sollte immer ein Vergleich der Art
"$<gesuchter code>$" gegen "<codeliste>$"
vorgenommen werden. Ansonsten wird potenziell in $012 fälschlicherweise auch der code $01 erkannt.
Die Codes und Decodes von Items findet man im Datendictionary unter Administration|Datendictionary.
Bei kodierten Items (1) erscheint rechts die Liste der verfügbaren Codes (2). Bitte beachten Sie, dass nur die Codes, die unter (3) mit einem Schloss versehen sind, in allen Installationen der jeweiligen Indikation sicher vorhanden sind, andere sind variabel oder sogar kundenspezifisch.
So würden die angezeigten Visitgründe "Einzelschulung, Rezept" kodiert den Wert "$Z$R" aufweisen.
Referenzierung von Subitems (Elemente in Questionnaires)
Questionnaires werden in der Datenbank als JSON Strukturen direkt mit dem jeweiligen Item gespeichert. Die einzelnen Elemente liegen nicht als einzelne Spalten in der EMIL-Datenbank vor, sondern müssen aus der JSON-Struktur entnommen werden. Bei der Query-Schnittstelle für Statistiker werden diese Strukturen in Subtabellen übersetzt, da eine Verarbeitung von JSON Strukturen in Tabellenspalten in den meisten Statistiksysteme wie auch R recht komplex ist. Bei der bidirektionalen Schnittstelle, die für Softwareentwickler vorgesehen ist, werden direkt die beschriebenen JSON Strukturen ausgetauscht.
Über die Namen der Subitems können Sie die jeweilige Information in der JSON Struktur referenzieren. Dies gilt sowohl für das Lesen von Detaildaten als auch für die Übermittlungen ausgefüllter Formulare.
{
...,
"edIK": "101575519",
...
}
Werte werden grundsätzlich als Strings in der JSON Struktur gespeichert. Checkboxen in Questionnaires werden immer mit dem Wert "1" ausgegeben, wobei nur angekreuzte Checkboxen in die JSON Struktur übertragen werden. Inhalte sogenannter Comboboxen werden intern auch kodiert gespeichert.
Die Dokumentation der Subitems von Formularen findet sich in der Dokumentation des Datendictionary, die unter Administration|Datendictionary|Dokumentation erzeugt werden kann.
Ermitteln unterstützter Einheiten
Die folgende Beschreibung ist für die Query-Schnittstelle irrelevant, da EMIL immer in der aktuell eingestellten Einheit ausgibt und diese auch bei den jeweiligen Items angibt, z.B. CRP (mg/L). Bei der bidirektionalen Schnittstelle erfolgt die Ausgabe in der in EMIL eingestellten Einheit. Empfangsseitig kann aber jede beliebige der von EMIL unterstützten Einheiten verwendet werden und EMIL rechnet Werte bei Bedarf in die eingestellte Einheit um.
Die unterstützten Einheiten eines Itemtyps lassen sich bequem im Datendictionary einsehen. Bei numerischen Werten gibt es das Feld Einheit, das beim Aufklappen alle unterstützten Einheiten anzeigt, beim CRP sind es sogar sieben verschiedene.
Die eingehende Funktion setitem unterstützt im Feld unit alle Einheiten, die hier aufgeführt sind und rechnet eingehende Werte bei Bedarf automatisch in die in EMIL für dieses Item eingestellte Einheit um. Auch wenn nur eine Einheit angegeben ist, ist diese zwingend anzugeben.