interpolar

CDS Tool Chain Repository

https://github.com/medizininformatik-initiative/interpolar

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.6%) to scientific vocabulary

Keywords

medical-informatics medical-informatics-initiative
Last synced: 10 months ago · JSON representation ·

Repository

CDS Tool Chain Repository

Basic Info
Statistics
  • Stars: 9
  • Watchers: 5
  • Forks: 0
  • Open Issues: 85
  • Releases: 18
Topics
medical-informatics medical-informatics-initiative
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

CDS tool chain

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).

CDS tool chain Der detaillierte Datenfluss zwischen den und innerhalb der Module ist in der Datei Dataflow beschrieben.

Der gesamte Ablauf der CDS Toolchain ist in der Datei fulltoolchaindescription beschrieben.

Bestandteile der CDS tool chain

Hier werden alle verwendeten Bestandteile bzw. CDS-Module aufgelistet. Detaillierte Beschreibungen sind in den jeweiligen Ordnern zu finden. Ein Modul ist eine eigenständige Softwarekomponente mit klar definierten Funktionalitäten. Die Module kommunizieren über Schnittstellen miteinander und sind austauschbar.

FHIR Server / Endpunkt

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).

CDS2DB

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.

CDS_HUB

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-cdshub/DBdescription. \ Eine Beschreibung, wie der Zugriff erfolgt befindet sich unter Postgres-cds_hub .

DataProcessor

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.

Input-Repo

Das Input-Repo wird in zukünftigen Releases für den Zugriff auf Algorithmen zur Berechnung, z.B. von Scores, verwendet.

DB2Frontend

Dieses R-Modul befindet sich im Ordner R-db2frontend und dient der Synchronisation von Daten zwischen CDS_HUB (Postgres-Datenbank) und Frontent (redcap).

Frontend (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).

R-etlutils

Dieser Ordner ist eine Sammlung von R Funktionen, die von den R-Modulen (CDS2DB, DataProcessor, DB2Frontend) der CDS tool chain genutzt werden.

Anforderungen / Voraussetzungen

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:

  • Laufzeit ca. 2 Jahre
  • 2-6 Stationen
  • 20-24 Betten je Station
  • 5-6 Neuaufnahmen je Tag
  • durchschn. Liegedauer 5 Tage (davon 30 % Kurzlieger)

Daraus kommen wir zu folgender Abschätzung der IT-Ressourcen:

| | | | --- | --- | | CPU | 2-4 Kerne | | RAM | 8-16 Gb | | Storage | 500 Gb |

Es handelt sich dabei um eine Schätzung. Je nach Datenbestand kann es erforderlich sein, die IT-Ressourcen anzupassen. Nach bisherigen Rückmeldungen kann eine Erhöhung der IT-Ressourcen auf 8 CPU-Kerne und 64 Gb RAM die Verarbeitung ggf. stark beschleunigen.

Installation

Folgende Anweisungen müssen ausgeführt werden, um die CDS tool chain zu verwenden: Install

Verwendung

Die Ausführung kann manuell durch DIZ Mitarbeitende oder in regelmäßigen Abständen zeitgesteuert (cron) ausgeführt werden, siehe Hinweise unter Discussions #750. Der folgende Aufruf führt die CDS Tool Chain komplett aus: console docker compose run --rm --no-deps r-env Rscript R-cdstoolchain/StartCDSToolChain.R Hinweis: Um eine sinnvolles Intervall für die zeitgesteuerte Ausführung der CDS Tool Chain zu wählen, sollten die initialen Aufrufe (z.B. die ersten 3 Tage der Verwendung) manuell erfolgen, um die typischen Laufzeiten am Standort zu ermitteln. Der initiale Lauf dauert länger, spätere Läufe entsprechend kürzer, da nur noch Änderungen verarbeitet werden. Es wird empfohlen die CDS Tool Chain in der Projektlaufzeit mehrfach täglich auszuführen, mind. jedoch einmal am Tag. Bei der Wahl des Ausführungsintervals sollte darauf geachtet werden, dass ein typischer Durchlauf innerhalb des Intervalls erfolgen kann. Wird z.B. ermittelt, dass ein Lauf mit den typischen Änderungen bei den Patientendaten auf den INTERPOLAR-Stationen ca. 1h dauert, kann die CDS Tool Chain via cron 2-stündlich laufen.

Um die Teilschritte einzeln auszuführen, können die folgenden Aufrufe in der hier angegebenen typischen Reihenfolge verwendet werden:

  1. CDS2DB ausführen (Ziffern 1-3 in der Grafik oben), um die Daten vom FHIR-Server herunterzuladen und in CDS_HUB DB zu speichern console docker compose run --rm --no-deps r-env Rscript R-cds2db/StartRetrieval.R
  2. DB2Frontend ausführen (Ziffern 8 und 9 in der Grafik oben), um bereits vorhandene Daten im Frontend in CDSHUB zu übernehmen ```console docker compose run --rm --no-deps r-env Rscript R-db2frontend/Start1Frontend2DB.R ```
  3. DataProcessor ausführen (Ziffern 4 und 5 in der Grafik oben), um in CDS_HUB vorhandene Daten zu verarbeiten console docker compose run --rm --no-deps r-env Rscript R-dataprocessor/StartDataProcessor.R
  4. DB2Frontend ausführen (Ziffern 6 und 7 in der Grafik oben), um über CDS2DB und DataProcessor in CDSHUB hinzugefügte Daten in das Frontend zu übernehmen ```console docker compose run --rm --no-deps r-env Rscript R-db2frontend/Start2DB2Frontend.R ```

Hilfe und Unterstützung

Owner

  • Name: Medizininformatik-Initiative
  • Login: medizininformatik-initiative
  • Kind: organization
  • Email: info@medizininformatik-initiative.de
  • Location: Germany

Offizieller GitHub-Account der Medizininformatik-Initiative

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: CDS Tool Chain
message: 'If you use the CDS Tool Chain, please cite us.'
type: software
authors:
  - orcid: 'https://orcid.org/0000-0002-7221-7415'
    given-names: Sebastian
    family-names: Stäubert
    email: sebastian.staeubert@imise.uni-leipzig.de
    name-particle: Stäubert
    affiliation: Universität Leipzig
  - given-names: Alexander
    family-names: Strübing
    email: alexander.struebing@imise.uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0001-5151-7665'
  - given-names: Florian
    family-names: Schmidt
    email: florian.schmidt@imise.uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0003-2027-8213'
  - given-names: Marcel
    family-names: von Borzestowski
    email: marcel.vonBorzestowski@medizin.uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0009-0007-1369-4055'
  - given-names: Maryam
    family-names: Yahiaoui-Doktor
    orcid: 'https://orcid.org/0000-0002-3321-1598'
    affiliation: Alumni
  - given-names: Matthias
    family-names: Reusche
    email: matthias.reusche@uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0002-7395-7255'
  - given-names: Frank
    family-names: Meineke
    email: frank.meineke@imise.uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0002-9256-7543'
  - given-names: Daniel
    family-names: Neumann
    email: daniel.neumann@uni-leipzig.de
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0002-4639-5189'
  - given-names: Markus
    email: markus.loeffler@imise.uni-leipzig.de
    family-names: Loeffler
    affiliation: Universität Leipzig
    orcid: 'https://orcid.org/0000-0002-0424-9933'
  - name: Universität Leipzig
    city: Leipzig
    address: Härtelstr. 16-18
    post-code: '04107'
    region: Sachsen (Saxony)
    tel: +49 341 97 16100
    country: DE
    location: >-
      Institute for Medical Informatics, Statistics and
      Epidemiology (IMISE)
    website: 'https://www.imise.uni-leipzig.de/'
    fax: +49 341 97 16109
identifiers:
  - type: doi
    value: 10.3233/SHTI240838
    description: Publication of the CDS Tool Chain concept.
repository-code: 'https://github.com/medizininformatik-initiative/INTERPOLAR'
url: 'https://medizininformatik-initiative.github.io/INTERPOLAR/'
abstract: >-
  The CDS Tool Chain is a modular reference implementation
  that can be used, for example, by MII data integration
  centers (DIC). FHIR resources are downloaded from the KDS
  (core data set) FHIR server / endpoint, converted into a
  table structure (CDS2DB) and written to a Posgres database
  (CDS_HUB). In a next step, the data is checked, harmonized
  and can be further processed with the help of algorithms
  (DataProcessor). The data is then made visible on a user
  interface via a frontend (e.g. Redcap) (DB2Frontend,
  Frontend).
keywords:
  - Medical Informatics
  - Core Data Set
  - Medical Informatics Initiative
  - HL7 FHIR
  - Medical Data Science
  - Distributed Processing
license: Apache-2.0
preferred-citation:
  type: article
  authors:
    - orcid: 'https://orcid.org/0000-0002-7221-7415'
      given-names: Sebastian
      family-names: Stäubert
      email: sebastian.staeubert@imise.uni-leipzig.de
      name-particle: Stäubert
      affiliation: Universität Leipzig
    - given-names: Alexander
      family-names: Strübing
      email: alexander.struebing@imise.uni-leipzig.de
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0001-5151-7665'
    - given-names: Florian
      family-names: Schmidt
      email: florian.schmidt@imise.uni-leipzig.de
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0003-2027-8213'
    - given-names: Maryam
      family-names: Yahiaoui-Doktor
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0002-3321-1598'
    - given-names: Matthias
      family-names: Reusche
      email: matthias.reusche@uni-leipzig.de
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0002-7395-7255'
    - given-names: Frank
      family-names: Meineke
      email: frank.meineke@imise.uni-leipzig.de
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0002-9256-7543'
    - given-names: Daniel
      family-names: Neumann
      email: daniel.neumann@uni-leipzig.de
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0002-4639-5189'
    - given-names: Markus
      email: markus.loeffler@imise.uni-leipzig.de
      family-names: Loeffler
      affiliation: Universität Leipzig
      orcid: 'https://orcid.org/0000-0002-0424-9933'
  doi: "10.3233/SHTI240838"
  journal: "Stud Health Technol Inform"
  month: 8
  year: 2024
  date-published: "2024-08-30"
  title: "Introducing a versatile Medical Informatics Initiative Core Data Set computing tool chain"
  volume: 317
  start: 59
  end: 66

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 426
  • Total pull requests: 326
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 21
  • Total pull request authors: 9
  • Average comments per issue: 0.77
  • Average comments per pull request: 0.04
  • Merged pull requests: 251
  • Bot issues: 1
  • Bot pull requests: 5
Past Year
  • Issues: 234
  • Pull requests: 174
  • Average time to close issues: 19 days
  • Average time to close pull requests: 1 day
  • Issue authors: 19
  • Pull request authors: 8
  • Average comments per issue: 0.68
  • Average comments per pull request: 0.05
  • Merged pull requests: 131
  • Bot issues: 1
  • Bot pull requests: 5
Top Authors
Issue Authors
  • SebStaeubert (123)
  • Flow191 (114)
  • astruebi (55)
  • reuschem (35)
  • KoesterH (34)
  • mayadogh (15)
  • neumdan (7)
  • vicho001 (7)
  • wendtt (6)
  • pdi-uk (5)
  • faubele (4)
  • bejoe1 (4)
  • t-beppler (3)
  • jkiederle (3)
  • MarcelvonBorzestowski (3)
Pull Request Authors
  • Flow191 (105)
  • astruebi (82)
  • SebStaeubert (80)
  • reuschem (44)
  • renovate[bot] (5)
  • mayadogh (4)
  • KoesterH (4)
  • jkiederle (1)
  • vicho001 (1)
Top Labels
Issue Labels
enhancement (109) Component::cds2db (95) Component::cds_hub (83) Component::dataprocessor (81) bug (69) Component::frontend (55) Component::db2frontend (50) documentation (47) question (18) prio:major (15) Component::etlutils (13) Component::kds2db (9) prio:blocker (7) Component::amts_db (6) EPIC (5) good first issue (2) duplicate (2) prio:minor (1) help wanted (1)
Pull Request Labels
enhancement (132) bug (92) Component::dataprocessor (77) Component::cds2db (69) Component::cds_hub (67) Component::db2frontend (45) documentation (40) Component::etlutils (24) Component::frontend (13) Component::kds2db (11) duplicate (2) prio:blocker (2) prio:major (2) Component::amts_db (1) question (1)