Installationsskript: Automatische Installation und Konfiguration der AKTIN-Datawarehouse-Software mit dem Installationsskript

Mit diesem Installationsskript wird das AKTIN Data Warehouse mit einem Applikationsserver installiert. Die AKTIN-DWH-Software ist auf allen Linux Distributionen ausführbar. Das Installationsskript wurde unter Ubuntu 20.04 Server LTS getestet. Wenn Sie eine andere Distribution verwenden möchten, kontaktieren Sie den AKTIN IT-Support. Bei einer Neuinstallation beachten Sie bitte die Hinweise unter der Seite Server-Installation.



Vorbereitung der Installation

Falls eine bestehende Betriebsversion verwendet wird, beachten Sie bitte, ob Java installiert ist. Mittels des AKTIN-Installationsskriptes wird Java Version 11 von OpenJDK installiert. Sind bereits niedrigere Versionen von Java vorhanden, kann dies zu Problemen bei der Installation und im Betrieb führen. Sofern Java installiert ist, können Sie die Version über folgenden Befehl herausfinden:

java --version

Um das Skript zu starten, brauchen Sie einen Konsolenzugang zum Server sowie die Rechte des Nutzers root. Standardmäßig ist dieser Nutzer seit Ubuntu 14.04 deaktiviert. Um ihn zu reaktivieren, wechseln Sie zunächst zu einer root-Sitzung über den Befehl

sudo -i

und geben Sie das Passwort des aktiven Nutzers an. Anschließend können Sie über den Befehl

sudo passwd root

den Nutzer root wieder reaktivieren. Dafür werden Sie aufgefordert, für root ein neues Passwort festzulegen und dies zu bestätigen. Haben Sie das Passwort festgelegt, können Sie sich nach einem Abmelden mit dem Nutzer root anmelden.

Das Installationspaket können Sie unter folgendem Link herunterladen (evtl. mit der Option --no-check-certificate bei Zertifikatfehlern):

wget http://www.aktin.org/software/repo/org/aktin/dwh/dwh-install/1.3/dwh-install-1.3.tar.gz

Ist das Paket heruntergeladen, kann es entpackt werden mit

tar xvzf dwh-install-1.3.tar.gz

Die Dateien werden dabei automatisch im Ordner aktin-dwh-installer entpackt.

Installation der AKTIN-DWH-Software

Starten Sie das Skript mit:

./<IHR VERZEICHNIS>/aktin-dwh-installer/aktin_install.sh

Das Installationsskript wird nun automatisch ausgeführt. Im Anschluss wird außerdem auch die aktuelleste Version von dwh-update eingespielt. Es ist anzumerken, dass für die Installation Zugriff auf das Internet benötigt wird, damit entsprechende Pakete und Komponente heruntergeladen werden können. Sämtliche Logausgaben finden Sie nach der Installation im jeweiligen Installationsordner. Weiterhin werden nach Abschluss der Installation die Komponenten apache2, postgresql und wildfly automatisch gestartet.

Folgende Pakete werden dabei installiert und konfiguriert:

Software Version Paket(e)
Wildfly 18.0.0.Final -
Postgres Datenbank Server 12 postgresql-12
Apache2 2.4.41-4ubuntu3.1 apache2=2.4.41-4ubuntu3.1
Java Runtime Environment 11 openjdk-11-jre-headless
PHP 7.4.3

php

php-common

libapache2-mod-php

php-curl

R 3.6.3-2

r-base-core

r-cran-xml

r-cran-lattice

libcurl4-openssl-dev

libssl-dev

libxml2-dev

tidyverse

Python 3.8.2

python3

python3-pandas

python3-numpy

python3-requests

python3-sqlalchemy

python3-psycopg2

python3-postgresql

python3-zipp

python3-plotly

python3-unicodecsv

python3-gunicorn



Konfiguration und lokale Einstellungen

Nach Abschluss der Installation und vor Start der Anwendung ist es unbedingt notwendig, die Datei aktin.properties an die Anforderungen Ihres Systems zu konfigurieren. Die Datei befindet sich im Verzeichnis /<IHR VERZEICHNIS>/aktin-dwh-installer/dwh-update/.

In dieser Datei werden Angaben zum lokalen DWH und Standort-spezifische Änderungen gemacht. Für das Anpassen der Datei aktin.properties muss folgender Befehl ausgeführt werden:

nano /<IHR VERZEICHNIS>/aktin-dwh-installer/dwh-update/aktin.properties

Wichtig ist hierbei das Feld local.email, in das die E-Mail-Adresse eingetragen wird. An diese eingetragene Adresse werden später Berichte und Meldungen geschickt. Es ist auch möglich, eine Liste von E-Mailadressen anzugeben, an die der Bericht gesendet werden soll (wie z.B. alle Oberärzte der Notaufnahme). In diesem Fall müssen die Einträge komma-separiert ohne Leerzeichen erfolgen.

Auch sollten Sie unter dem Feld broker.keys den alphanumerischen API-Key eintragen, der Ihnen zugesendet wurde. Sollten Sie noch keinen Key bekommen haben, melden Sie sich bitte bei it-support@aktin.org.

Weiterhin ist es auch wichtig, die Felder für die Email-Konfiguration am Ende der Datei entsprechend zu befüllen. In diesen Feldern wird die E-Mail-Konfiguration für die Ausgangsmailadresse vorgenommen, welche für hausinterne Benachrichtigungen und Berichte verwendet werden soll (z.B. für den Versand von monatlich erzeugten Berichtsdokumente an die angegebene Emfänger-Adresse). Die Sender-Adresse sollte eine dedizierte E-Mail-Adresse (Dienstkonto mit festem Passwort oder Funktions-E-Mail-Adresse) sein. Eine funktionstüchtige E-Mail-Adresse ist Voraussetzung für die Installation.

Welche Wirkung die jeweiligen Felder haben, finden Sie in diesem Abschnitt in der Template-Datei:

# name of the installation
local.cn=AKTIN DWH

# used in AKTIN reports, should contain the name of the Organization (Hospital)
local.o=Ev. Klinikum Beispielhausen

# used in AKTIN reports, should contain the name of the Unit (Notaufnahme, Rettungsstelle, ZNA, etc.)
local.ou=Notaufnahme

# town
local.l=Beispielhausen

# state
local.s=Niedersachen

# country
local.c=Deutschland

# default e-mail-adress for notifications, reports (non technical); multiple adresses possible (comma separated in one line without empty space)
local.email=zna-contact@klinikum-beipielhausen.de
local.tz=Europe/Berlin

# language tag according to IETF BCP 47. If not defined, the system language will be used.
local.language=de-DE

# location of the R standalone executable
rscript.binary=/usr/bin/Rscript

# needed for read/write access to the i2b2 database
i2b2.project=AKTIN
i2b2.datasource.crc=java:/QueryToolDemoDS

# needed for i2b2 authentication and user management
i2b2.service.pm=http://localhost:9090/i2b2/services/PMService/
i2b2.service.domain=i2b2demo

# broker and report paths
report.data.path=/var/lib/aktin/reports
report.temp.path=/var/tmp/report-temp
report.archive.path=/var/lib/aktin/report-archive
report.debug.keeptempfiles=false
broker.data.path=/var/lib/aktin/broker
broker.archive.path=/var/lib/aktin/broker-archive
broker.uris=https://aktin-broker.klinikum.rwth-aachen.de/broker/
broker.intervals=PT15M

# used in AKTIN to connect to the broker, you can get your API key from it-support@aktin.org
broker.keys=XXXyourapikeyXXX
db.datasource=java:jboss/datasources/AktinDS
wildfly.management.url=http://localhost:9990/management
wildfly.management.user=admin
wildfly.management.password=admin2

# patient reference, allowed values: Patient, Encounter, Billing
study.id.reference=Patient

# root numbers of the different reference types. Can be empty.
cda.patient.root.preset=1.2.276.0.76.4.8
cda.encounter.root.preset=1.2.276.0.76.3.87686
cda.billing.root.preset=1.2.276.0.76.3.87686.1.45

# label for the extension textfield of the consent-manager, based on the reference type.
study.id.patient.label=Patientennr.
study.id.encounter.label=Episodennummer
study.id.billing.label=Fallnummer

# character for separating root and extension in case of manual setting. Will be applied if root is not set in properties.
study.id.separator=/

# log function for imported CDAs: all imported CDAs are stored as a file (Allowed values: 'all','info' or 'none')
import.cda.debug.dir=/tmp/
import.cda.debug.level=none
import.cda.fhir.outcome.level=info

# mail server via java, use configuration below 
email.session=local

# adress received mails will reply to
mail.x.replyto=it-support@aktin.org

# mail server protocol
mail.transport.protocol=smtp

# mail server name
mail.smtp.host=smtp.gmail.com

# mail server port, e.g. 465 (SSL) or 587 (TLS), or 25 (no auth)
mail.smtp.port=587

# mail server authentification, false for "no login is needed"
mail.smtp.auth=true

# user name for authentication (this name is displayed as addressor of every mail)
mail.user=userforssending

# password for authentication
mail.x.password=passwordforsending

# security configuration
mail.smtp.starttls.enable=true

# connection timeout
mail.smtp.timeout=10000
mail.smtp.connectiontimeout=10000

Für Kliniken, die die Root-ID aus dem Beispiel-CDA übernommen haben (z.B. mit einer E.Care-Schnittstelle) und für den Consent-Manager die Patientennummer verwenden (empfohlene Einstellung), müssen keine weiteren Änderungen vorgenommen werden. Die Einstellungen in aktin.properties sind bereits korrekt eingestellt.

Für Kliniken mit einer AGFA-Schnittstelle muss lediglich die Patientennummer geändert werden. Suchen Sie hierfür in der Datei aktin.properties die Zeile

cda.patient.root.preset=1.2.276.0.76.4.8

heraus und ändern Sie den Wert auf 1.2.276.0.76.4.17.9814184919.

Sollten Sie die Fallnummer oder die Encounter-Nummer statt der Patientennummer für den Consent-Manager verwenden wollen und/oder Ihr KIS-Anbieter weder AGFA noch die Beispiel-Root-IDs übernommen haben, so befolgen Sie bitte die folgende Anleitung und halten Sie gegebenenfalls Rücksprache mit it-support@aktin.org:

Für den Ein- oder Ausschluss von Patienten im Consent-Manager (weitere Informationen zu diesem Feature finden Sie in der Benutzeranleitung) wird eine Identifikationsnummer des Patienten benötigt. Hierfür stehen drei verschiedene Nummern zur Verfügung: Patientennummer (Patient), Episodennummer (Encounter) und Fallnummer (Billing). Unter dem Feld study.id.reference muss die entsprechende Referenz eingetragen werden. Wir empfehlen Ihnen, die Patientennummer (Patient) zu benutzen, da im Gegensatz zu den anderen beiden Nummern diese für jeden Patienten einzigartig ist. Zum aktuellen Zeitpunkt findet bei der Eintragung eines Ein- oder Ausschlusses keine Überprüfung statt, ob der Patient bereits mit einer anderen Episoden- oder Fallnummer eingetragen wurde, sodass es gegebenenfalls zu Dubletten kommen kann, wenn nicht die Patientennummer genutzt wird.

Für jede dieser Nummern gibt es i.d.R. eine feste Root-Nummer, die unter den Feldern cda.patient.root.preset, cda.encounter.root.preset bzw. cda.billing.root.preset hinterlegt werden kann. Dadurch muss die Root-Nummer nicht bei jedem Ein- bzw. Ausschluss angegeben werden und die Angabe der patienten-, episoden- oder fallbezogenen Nummer, die auch im Krankenhausinformationssystem sichtbar ist (die sogenannte Extension-Nummer), ist ausreichend.

Um herauszufinden, welche dieser Nummern über die AKTIN-Schnittstelle in das Data-Warehouse übertragen werden und somit in den Einstellungen angegeben werden können, benötigen Sie Zugriff auf ein CDA-Dokument. Dieses wird als Datenstruktur zur Übertragung der Daten aus dem Notaufnahme-System in das klinikinterne Data Warehouse verwendet. Ein gekürztes CDA-Beispieldokument sieht wie folgt aus:

img1

Hier befinden sich die jeweiligen Root- und Extension-Nummern der Referenzen. Bei der ersten ID unter encompassingEncounter ist die Episodennummer zu finden. Die zweite ID steht für die Fallnummer. Die Patientennummer ist unter patientRole.id zu finden. Prüfen Sie, welche dieser Nummern dem Notaufnahme-Personal bekannt ist, d.h. welche der Nummern mit der im Krankenhausinformationssystem übereinstimmt. Tragen Sie von dieser Nummer die im CDA-stehende Root-Nummer in die Datei aktin.properties ein und geben die entsprechende Referenz (Patient, Encounter oder Billing) an.

Sollte in der Klinik keine feste Root-Nummer verwendet werden, darf auch keine Root-Nummer in aktin.properties hinterlegt werden – lassen Sie das Feld in diesem Fall einfach leer. Dies kann der Fall sein, wenn entweder die Extension-Nummer direkt als Root-Nummer verwendet wird oder sich die Root-Nummer klinikintern unterscheidet. Im ersteren Fall tragen Sie im Consent-Manager ganz normal die Identifikationsnummer ein, welche dann als Root-Nummer erkannt wird. Im letzteren Fall geben Sie unter study.id.separator ein Trennzeichen ein und tragen im Consent-Manager die Root-Nummer und die Extension-Nummer mit dem definierten Trennzeichen dazwischen ein.

Haben Sie die aktin.properties nach Ihren Wünschen angepasst, kopieren Sie sie anschließend in das Konfigurationsverzeichnis des Wildfly-Servers über den Befehl:

cp /<IHR VERZEICHNIS>/aktin-dwh-installer/dwh-update/aktin.properties /opt/wildfly/standalone/configuration/

Nachdem Sie die Datei aktin.properties in das Konfigurationsverzeichnis kopiert haben, muss der Wildfly-Server neugestartet werden. Im Zuge der Installation wurden bereits alle Komponenten des AKTIN Data Warehouse automatisch gestartet. Führen Sie also den Befehl

service wildfly restart

aus, um den Server neuzustarten und die neuen Einstellungen in den Wildfly-Server einzulesen. Haben Sie die Installation erfolgreich abgeschlossen und die Datei aktin.properties entsprechend konfiguriert und eingespielt, ist das AKTIN Data Warehouse nun einsatzbereit.

Für nachträgliche Änderungen an aktin.properties beachten Sie die Hinweise im Abschnitt Weitere Anmerkungen.

Einstellungen in der i2b2-Adminoberfläche

Falls Sie den Data-Warehouse-Manager mit einem Benutzer verwenden wollen, der kein i2b2-Admin ist (d.h. keinen Zugriff auf die i2b2-Adminoberfläche unter http://<IHR SERVER>/admin hat), sind noch die folgenden zwei Schritte für einen erfolgreichen Login in den Data Warehouse-Manager notwendig:

  1. Die Zuordnung des Nutzers zum AKTIN-Projekt

  2. Die Zuweisung einer AKTIN-Rolle an den Benutzer

Das genaue Vorgehen hierfür können Sie in den letzten beiden Abschnitten Benutzer einem Projekt hinzufügen und AKTIN-Rolle zuweisen der i2b2-Benutzeranleitung nachlesen.

Test der Betriebsfähigkeit

Nach der Installation der AKTIN-DWH-Software ist es anzuraten, dessen Betriebsfähigkeit zu testen. Im folgenden Bereich können Sie Methoden und Funktionalitäten für die Verifikation der Betriebsfähigkeit entnehmen.

Data Warehouse

Wenn die Installation erfolgreich durchgeführt wurde, kann anschließend per Webbrowser auf das integrierte Data Warehouse zugegriffen werden. In der Adresszeile muss die entsprechende IP-Adresse/Servername angepasst werden: http://<IHR SERVER>/webclient/

CDA Importschnittstelle

Die Importschnittstelle des Servers kann mit den Client-Programmen aus dem Software-Paket (ZIP) des Demo-Server getestet werden:

java-client-fhir.bat http://<IHR SERVER>/aktin/cda/fhir/Binary examples\basismodul-beispiel-storyboard01.xml
Verbindung und E-Mail-Konfiguration

Unter dem Link http://<IHR SERVER>/aktin/admin/plain/test.html lassen sich die durchgeführten Anpassungen bezüglich Broker und E-Mail sowie Reporterstellung testen.

img2

Der erste Button testet die Erreichbarkeit des zentralen AKTIN-Broker. Der lokale Server übersendet dem zentralen Broker nur Statusinformationen, wie die Serverversion und Aktivität. Der zweite Button testet die eingerichtete E-Mail-Adresse. Nach Bestätigung des Buttons wird eine E-Mail an die in aktin.properties angegebene Ziel-Adresse gesendet. Der dritte Button testet die R-Bibliotheken. Diese werden zur Erzeugung der Berichte verwendet.

img3

Sollte der E-Mail-Test fehlschlagen und das Textfeld zeigt keine grüne Erfolgsmeldung anzeigen, könnte dies ein Hinweis auf eine fehlerhafte E-Mail-Einstellung sein. In diesem Fall muss die E-Mail-Konfiguration geändert (Abschnitt Weitere Anmerkungen) oder die Softwarepakete erneut geladen werden.

img4

Überprüfung der Funktionalität des AKTIN Data Warehouse

Eine Anleitung für die Überprüfung der technischen Funktionalität des AKTIN Data Warehouse und für die Überprüfung der Plausibilität finden Sie unter der Rubrik Checkliste für Funktionalität..

Betrieb des AKTIN Data Warehouse

Anleitungen zur Benutzerverwaltung sowie dem Betrieb des AKTIN- und i2b2 Data Warehouses finden Sie unter der Rubrik Support für Anwender.

AKTIN-Diagnose-Skript

Sollten bei der Installation Probleme aufgetreten sein, wechseln Sie in das Update-Verzeichnis und führen Sie das AKTIN-Diagnose-Skript aus:

cd /<IHR VERZEICHNIS>/aktin-dwh-installer/dwh-update/scripts/

./aktin_diag.sh

Nachdem das Skript erfolgreich durchgelaufen ist, befindet sich im Verzeichnis /<IHR VERZEICHNIS>/aktin-dwh-installer/dwh-update/scripts/ eine Datei namens aktin_diag_<ZEITPUNKT DER DURCHFÜHRUNG>.tar.gz. Diese Datei enthält eine Ansammlung von Informationen über das Betriebssystem und die Komponenten von AKTIN. Senden Sie diese Datei bitte anschließend mit einer Support-Anfrage an it-support@aktin.org, um uns mit den erzeugten Protokolle helfen bei der Identifizierung des Problems zu helfen.

Weitere Anmerkungen

  • Der Wildfly-Server hat ist während des Betriebs abhängig vom Postgres Datenbank-Server. Der Wildfly-Server sollte daher nur gestartet werden, wenn eine laufende Instanz des Postgres Datenbank-Servers vorhanden ist. Ebenso sollte bei einem Neustart der Postgres Datenbank auch der Wildfly-Server neugestartet werden mit dem Befehl
service wildfly restart
  • Im Internet Explorer kommt es in der i2b2-Oberfläche zu Darstellungsfehlern. So werden z.B. keine User unter Manage Users angezeigt und unter Manage Projects sind die Projekte nicht einsehbar (sattdessen erscheint ein permanentes Ladezeichen). Dieser Fehler ist bereits bekannt, kann aber von unserer Seite aus nicht behoben werden, da i2b2 von i2b2 Foundation Inc. entwickelt wird. Wir würden Sie daher bitten für die Nutzerverwaltung einen anderen Browser zu verwenden (z.B. Firefox oder Chrome).

  • Für nachträgliche Änderungen in der Datei aktin.properties bearbeiten Sie über den Befehl nano die im Wildfly-Konfigurationsordner hinterlegte Datei. Nach Abschluss der Bearbeitung, speichern Sie die Änderungen ab und starten Sie den Wildfly-Server neu.

nano /opt/wildfly/standalone/configuration/aktin.properties

service wildfly restart