Dieses Repository enthält die Bestandteile der CDS tool chain zur Verarbeitung von MII KDS FHIR Ressourcen
. Es handelt sich um eine modular aufgebaute Referenzimplementierung, welche z.B. Datenintegrationszentren (DIZ) der MII eingesetzt werden kann. Hierbei werden FHIR-Ressourcen vom KDS (Kerndatensatz) FHIR Server / Endpunkt heruntergeladen, in eine Tabellenstruktur überführt (CDS2DB) und in eine Posgres-Datenbank (CDS_HUB) geschrieben. In einen nächsten Schritt werden die Daten geprüft, harmonisiert und können mit Hilfe von Algorithmen weiter verarbeitet werden (DataProcessor). Anschließend werden die Daten über ein Frontend (z.B. Redcap) auf einer Benutzeroberfläche sichtbar gemacht (DB2Frontend, Frontend).
Der gesamte Datenfluss zwischen den und innerhalb der Module ist in der Datei Dataflow.md beschrieben.
Hier werden alle verwendeten Bestandteile aufgelistet. Detailliertere Beschreibungen befinden sich im jeweiligen Ordner.
Hierbei handelt es sich um die vom Datenintegrationszentrum zur Verfügung gestellten FHIR Server. Zu Testzwecken ist es zudem möglich, andere FHIR Server mit KDS-konformen FHIR Ressourcen zu konfigurieren, z.B. die der MII Testinfrastruktur (kerndatensatz-testdaten).
Dieses R-Modul dient zur Ausleitung Kerndatensatz-konformer Daten in eine Postgres-Datenbank.
Der Quellcode (R) dafür befindet sich im Ordner R-cds2db.
Eine Beschreibung zur Konfiguration und Ausführung befindet sich in R-cds2db/README.md.
Beim CDS_HUB handelt es sich um eine relationale Datenbank (Postgres). Im Ordner Postgres-cds_hub befinden sich Dateien für die Konfiguration und Initialisierung.
Eine Beschreibung der Datenbankstruktur befindet sich unter Postgres-cds_hub/DB_description.md. \ Eine Beschreibung, wie der Zugriff erfolgt befindet sich unter Postgres-cds_hub/Readme.md .
Der DataProcessor verarbeitet die Daten des CDS_HUB. Diese Verarbeitung kann z.B. eine Filterung von zuvor importierten Daten für die Anzeige im Frontend sein.
Weitere Informationen zum DataProcessor befinden sich im Ordner R-dataprocessor.
Das Input-Repo wird in zukünftigen Releases für den Zugriff auf Algorithmen zur Berechnung, z.B. von Scores, verwendet.
Dieses R-Modul befindet sich im Ordner R-db2frontend und dient der Synchronisation von Daten zwischen CDS_HUB (Postgres-Datenbank) und Frontent (redcap).
Das Frontend dient der Anzeige von importierten KDS-FHIR Daten und zur Erfassung von Rückmeldungen. Das Frontend ist eine Web-Anwendung und besteht aus 2 Teilen.
Die Web-Anwendung (PHP) befindet sich im Verzeichnis REDCap-app. Dieses Verzeichnis enthält u.a. Anweisungen zur Erzeugung der Laufzeitumgebung (Dockerfile).
Die REDCap-app benötigt eine Datenbank (mariadb), welche sich im Verzeichnis REDCap-db befindet. Dort befinden sich zudem Dateien zum Setzen von Passwörtern, Umgebundgvariablen, etc. sowie zur Initialisierung der Datenbank (init/redcap.sql).
Dieser Ordner ist eine Sammlung von R Funktionen, die von den R-Modulen (CDS2DB, DataProcessor, DB2Frontend) der CDS tool chain genutzt werden.
Aktuell werden Erfahrungen beim Einsatz der CDS tool chain gesammelt. Wir können die Anforderungen an CPU/RAM/Storage daher nur schätzen. Dabei gehen wir vom folgenden Anwendungsfall an einem Standort aus:
Daraus kommen wir zu folgender Abschätzung der IT-Ressourcen:
CPU | 2-4 Kerne |
RAM | 8-16 Gb |
Storage | 500 Gb |
Folgende Anweisungen müssen ausgeführt werden, um die CDS tool chain zu verwenden: Install.md
Ein typischer Ablauf sieht wie folgt aus:
docker compose run --rm --no-deps r-env Rscript R-cds2db/StartRetrieval.R
docker compose run --rm --no-deps r-env Rscript R-dataprocessor/StartDataProcessor.R
docker compose run --rm --no-deps r-env Rscript R-db2frontend/StartDB2Frontend.R
docker compose run --rm --no-deps r-env Rscript R-db2frontend/StartDB2Frontend.R
Die Ausführung kann manuell durch DIZ Mitarbeitende oder in regelmäßigen Abständen zeitgesteuert (cron) auszuführen. Vor der ersten Dokumentation (4."Frontend aufrufen und dokumentieren") an einem Tag sollten die vorhergehenden Schritte ausgeführt werden. Nach der letzten Dokumentation sollte erneut DB2Frontend ausgeführt werden, damit die im Frontend eingegebenen Daten synchronisiert werden können.