View Categories

03 Konfiguration

Überblick

Die Konfiguration der MCDMS WebAkte befindet sich unter:

{APPPATH}\Web

Die zentrale Konfiguration besteht aus:

WEB.INI
FORMULARE.INI

Zusätzlich kann die WebAkte ausgewählte vorhandene MCDMS-Konfigurationen aus:

{APPPATH}\CONFIG\STDConf.INI

verwenden.

WEB.INI enthält die allgemeinen Einstellungen der WebAkte.

FORMULARE.INI beschreibt die verfügbaren Webformulare, deren Datenquellen, Berechtigungen, Scripts und Laufzeitverhalten.

WEB.INI

Typische Bereiche der WEB.INI sind:

[GENERAL]
[PATIENT]
[SEARCH]
[AKTENSTRUKTUR]
[SERVER]
[AUTHENTICATION]
[SESSION]
[LOGGING]
[BRANDING]
[SETTINGS]
[NATIVE_AKTE]
[DATABASE]
[SELECTIONS]
[SQL-SERVER]

Nicht jede Installation muss alle Bereiche enthalten.

[GENERAL]

Beispiel:

[GENERAL]
StartForm=PATIENT_HOME
ScriptPatientSelect=CONFIG\Scripts\KTLops.MCFSCR;CONFIG\Scripts\Diagnosen.MCFSCR

StartForm

Definiert das Formular, das nach erfolgreicher Patientenauswahl geöffnet wird.

Beispiel:

StartForm=PATIENT_HOME

Die angegebene Formular-ID muss in FORMULARE.INI vorhanden sein.

ScriptPatientSelect

Optional können nach erfolgreicher Patientenauswahl ein oder mehrere MCDMS-Scripts ausgeführt werden.

Beispiel:

ScriptPatientSelect=CONFIG\Scripts\KTLops.MCFSCR;CONFIG\Scripts\Diagnosen.MCFSCR

Mehrere Scripts werden durch Semikolon getrennt und in der angegebenen Reihenfolge ausgeführt.

Die Pfade werden relativ zu:

{APPPATH}

aufgelöst.

Beim Patientenwechsel wird der vorherige MCDMS-Patientenkontext kontrolliert beendet. Erst nach erfolgreichem Reset wird der neue Patient initialisiert.

Kann der bisherige Patientenkontext nicht sicher beendet werden, wird die WebSession beendet. Dadurch wird verhindert, dass MCDMS-Zustände unterschiedlicher Patienten vermischt werden.

[PATIENT]

Beispiel:

[PATIENT]
HomeForm=PATIENT_HOME
RecentPatientCount=10
RecentEnabled=TRUE
PatientInfo=GESAMTNAME|bold;GEBDATUM

HomeForm

Definiert das Patientenstammblatt bzw. die Startseite des aktuell ausgewählten Patienten.

Beispiel:

HomeForm=PATIENT_HOME

RecentPatientCount

Bestimmt die Anzahl der im Bereich „Zuletzt“ angezeigten Patienten.

Beispiel:

RecentPatientCount=10

RecentEnabled

Aktiviert oder deaktiviert die Liste zuletzt verwendeter Patienten.

RecentEnabled=TRUE

Zum Abschalten:

RecentEnabled=FALSE

PatientInfo

Optional kann die Anzeige des aktuell ausgewählten Patienten angepasst werden.

Beispiel:

PatientInfo=GESAMTNAME|bold;GEBDATUM

Die Ausgabe erfolgt strukturiert und sicher als Text.

Mögliche Formatierungen richten sich nach dem aktuell unterstützten PatientInfo-Vertrag.

[SEARCH]

Beispiel:

[SEARCH]
SearchFields=Name;Vorname;Fallnummer;Patientid
DefaultPageSize=20
MaximumPageSize=50

SearchFields

Definiert die Felder, über die die Patientensuche erfolgt.

Beispiel:

SearchFields=Name;Vorname;Fallnummer;Patientid

Die Namen beziehen sich auf die tatsächlich verfügbaren Feldnamen bzw. SQL-Aliase der Patientenauswahl.

Beispiel:

PatientFallNr AS Fallnummer

erfordert:

SearchFields=Fallnummer

Die Suche:

  • unterscheidet nicht zwischen Groß- und Kleinschreibung
  • durchsucht alle konfigurierten Suchfelder
  • arbeitet innerhalb der aktuell ausgewählten Patientenliste
  • verwendet dieselbe Mehrfeldsuche auch bei numerischer Eingabe
  • ignoriert ungeeignete Suchfelder anhand ihres Datentyps

Fallback über StandardSuche

Ist SearchFields nicht gesetzt oder leer, kann die Suchfeldliste aus StandardSuche übernommen werden.

Beispiel:

[DATABASE]
StandardSuche=Name,Vorname;Name;Vorname;Gebdatum;Patientid;AufTyp

Für die Suchfeldliste wird nur der Teil vor dem ersten Semikolon verwendet:

Name,Vorname

DefaultPageSize / MaximumPageSize

Beispiel:

DefaultPageSize=20
MaximumPageSize=50

Diese Werte steuern die Größe der schrittweise geladenen Patientenlisten.

Patientenauswahl

Die sichtbare Patiententabelle wird vollständig aus dem tatsächlich ausgeführten SQL-Resultset aufgebaut.

Dadurch bestimmen die aktuelle Selection bzw. StandardSQL:

  • sichtbare Spalten
  • Reihenfolge
  • Überschriften
  • Datentypen

Beispiel:

SELECT
    Name,
    Vorname,
    PatientFallNr AS Fallnummer,
    Gebdatum AS Geburtsdatum,
    Patientid
FROM Patientenstammdaten

ergibt beispielsweise:

Name
Vorname
Fallnummer
Geburtsdatum
Patientid

SQL-Aliase werden direkt als Spaltenüberschrift verwendet.

Datumsfelder werden als Datum formatiert dargestellt.

[AKTENSTRUKTUR]

Die Navigation der WebAkte wird in WEB.INI definiert.

Beispiel:

[AKTENSTRUKTUR]
Start
Verwaltung
Arzt
Therapie
Medikation
Aufnahme
Pflege
Arzt\Befunde
Arzt\Verlauf

Die Reihenfolge in der INI bestimmt die Reihenfolge in der Navigation.

Hierarchien werden über \ gebildet.

Beispiel:

Arzt
Arzt\Befunde
Arzt\Verlauf

ergibt:

Arzt
 ├─ Befunde
 └─ Verlauf

Jeder übergeordnete Bereich muss zuvor ausdrücklich definiert sein.

Formulare werden über ihre Konfiguration in FORMULARE.INI den Aktenbereichen zugeordnet.

[SERVER]

Beispiel:

[SERVER]
EnvironmentName=Production
Prefixes=https://mcdms-webakte.klinik.intern:8443/
AllowedHosts=mcdms-webakte.klinik.intern
MaxRequestBodyBytes=1048576
AllowInsecureHttpDevelopment=FALSE

EnvironmentName

Kennzeichnet die Laufzeitumgebung.

Beispiel:

EnvironmentName=Production

Prefixes

Definiert die HTTP.sys-/HttpListener-Endpunkte.

Beispiel:

Prefixes=https://mcdms-webakte.klinik.intern:8443/

AllowedHosts

Definiert die zulässigen Hostnamen.

Beispiel:

AllowedHosts=mcdms-webakte.klinik.intern

MaxRequestBodyBytes

Legt die maximale Größe eines HTTP-Requests fest.

Beispiel:

MaxRequestBodyBytes=1048576

AllowInsecureHttpDevelopment

Unsicheres HTTP darf ausschließlich für lokale Entwicklungs- oder Testzwecke verwendet werden.

AllowInsecureHttpDevelopment=FALSE

Im Produktivbetrieb muss dieser Wert deaktiviert bleiben.

[AUTHENTICATION]

Beispiel:

[AUTHENTICATION]
Provider=MCDMS
FailedLoginLimit=5
FailedLoginWindowMinutes=15

Provider

Aktuell wird die vorhandene MCDMS-Benutzerverwaltung verwendet.

Provider=MCDMS

FailedLoginLimit

Definiert die maximale Anzahl fehlgeschlagener Anmeldeversuche innerhalb des Zeitfensters.

Beispiel:

FailedLoginLimit=5

FailedLoginWindowMinutes

Definiert das Zeitfenster für die Loginbegrenzung.

Beispiel:

FailedLoginWindowMinutes=15

[SESSION]

Beispiel:

[SESSION]
CookieName=MCDMS_SESSION
IdleTimeoutMinutes=30
AbsoluteTimeoutHours=8
MaxSessionsPerUser=3

Die WebSession enthält serverseitig unter anderem:

  • angemeldeten MCDMS-Benutzer
  • ausgewählten Patienten
  • MCDMS-Framework-Kontext
  • Patientenkontext
  • Sicherheitsinformationen
  • Kontextrevision

Jede aktive WebSession besitzt ihren eigenen MCDMS-Framework-Kontext.

CookieName

Name des Session-Cookies.

CookieName=MCDMS_SESSION

IdleTimeoutMinutes

Maximale Inaktivitätszeit.

IdleTimeoutMinutes=30

AbsoluteTimeoutHours

Maximale Gesamtdauer einer Session.

AbsoluteTimeoutHours=8

MaxSessionsPerUser

Maximale Anzahl paralleler Sessions eines Benutzers.

MaxSessionsPerUser=3

[LOGGING]

Beispiel:

[LOGGING]
DeleteLogsAfterDays=30
DetailedFormDiagnostics=FALSE

Die Logdateien befinden sich unter:

{APPPATH}\Web\LOGS

DeleteLogsAfterDays

Steuert die Aufbewahrungsdauer der Betriebslogs.

Beispiel:

DeleteLogsAfterDays=30

DetailedFormDiagnostics

Erweiterte Formulardiagnose:

DetailedFormDiagnostics=TRUE

sollte nur zur gezielten Fehlersuche verwendet werden.

Im Normalbetrieb:

DetailedFormDiagnostics=FALSE

[BRANDING]

Beispiel:

[BRANDING]
ApplicationName=MCDMS-WebAkte
ClinicName=
Logo=IMAGES\logo.svg
FontFamily=Segoe UI, Arial, sans-serif
BorderRadius=8
NavigationWidth=260

Die Branding-Einstellungen steuern das grundsätzliche Erscheinungsbild der WebAkte.

Formular-HTML kann darüber hinaus eigene CSS-Regeln verwenden.

ApplicationName

Bezeichnung der Anwendung.

ApplicationName=MCDMS-WebAkte

ClinicName

Optionaler Klinikbezug.

Der tatsächlich angezeigte Klinikname kann aus dem MCDMS-Kontext stammen.

Logo

Pfad zum Logo innerhalb des Web-Verzeichnisses.

Logo=IMAGES\logo.svg

FontFamily

Beispiel:

FontFamily=Segoe UI, Arial, sans-serif

BorderRadius

Beispiel:

BorderRadius=8

NavigationWidth

Breite der Navigation.

NavigationWidth=260

[SETTINGS]

Über [SETTINGS] wird das Farbschema der allgemeinen WebAkte-Oberfläche festgelegt.

Mögliche Werte:

[SETTINGS]
ColorScheme=LIGHT
[SETTINGS]
ColorScheme=DARK
[SETTINGS]
ColorScheme=SYSTEM

SYSTEM folgt dem vom Browser bzw. Betriebssystem verwendeten Farbschema.

Formular-HTML kann weiterhin eigene Styles verwenden. Diese sollten auf den jeweiligen Formularbereich begrenzt sein.

[NATIVE_AKTE]

Dieser Bereich steuert die Einbindung nativer MCDMS-Akteneinträge.

Beispiel:

[NATIVE_AKTE]
Enabled=TRUE
Typ=300,301,302,303,311,312,313
OrderBy=ErstelltAm;DESC

Enabled

Aktiviert bzw. deaktiviert die native Aktenintegration.

Enabled=TRUE

Typ

Definiert die erlaubten MCDMS-Dokumenttypen.

Beispiel:

Typ=300,301,302,303

Die genaue Bedeutung der unterstützten Typen wird im Kapitel zur nativen MCDMS-Akte beschrieben.

Datei- und Aktenicons

Die WebAkte verwendet für Akteneinträge und native Dokumente Icons aus dem festen Verzeichnis:

Web\IMAGES\FILEICONS\

Der Pfad ist nicht separat konfigurierbar.

Für die Auswahl des Icons gilt folgende Reihenfolge:

  1. Ist im Akteneintrag ein positiver Wert in Symbol hinterlegt und existiert dazu eine PNG-Datei, wird diese verwendet.Beispiel:
Symbol = 42

verwendet:

Web\IMAGES\FILEICONS\42.png
  1. Bei nativen Dokumenten wird andernfalls die tatsächliche Dateiendung verwendet.Beispiele:
PDF  -> pdf.png
DOC  -> doc.png
TXT  -> txt.png
  1. Ist kein passendes Icon vorhanden, wird verwendet:
Web\IMAGES\FILEICONS\default.png

Es werden ausschließlich PNG-Dateien aus FILEICONS verwendet. Historische JPG-/SYM-/0.png– oder Textsymbol-Fallbacks gehören nicht mehr zum aktuellen Verfahren.

STDConf.INI und WEB.INI

Die WebAkte kann vorhandene MCDMS-Konfigurationen aus STDConf.INI übernehmen.

Unterstützt werden:

[DATABASE]
[SELECTIONS]
[SQL-SERVER]

Für jeden dieser Bereiche gilt eine eindeutige Section-Regel:

Section in WEB.INI vorhanden
→ komplette Section aus WEB.INI

Section in WEB.INI nicht vorhanden
→ komplette Section aus STDConf.INI

Einzelne Schlüssel beider Dateien werden nicht miteinander gemischt.

[DATABASE]

Beispiel:

[DATABASE]
StandardDatabase={APPPATH}\DATABASE\STAMMDAT.MDB
StandardIDField=PatientID
StandardSQL=SELECT ...
StandardOrder=Name,Vorname
StandardSuche=Name,Vorname;Name;Vorname;Gebdatum;Patientid;AufTyp

StandardSQL definiert die Standard-Patientenliste.

StandardDatabase definiert die zugrunde liegende Patientendatenquelle.

[SELECTIONS]

Zusätzliche Patientenlisten können als vollständige SQL-Abfragen definiert werden.

Beispiel:

[SELECTIONS]
Alle Anwesenden=SELECT ...
Nachsorge=SELECT ...
Archiv=SELECT ...

Der Benutzer kann zwischen der Standardauswahl und den zusätzlich konfigurierten Selections wechseln.

[SQL-SERVER]

Dieser Bereich enthält die SQL-Server-Konfiguration für SQL-basierte Formulare.

Die genaue Struktur richtet sich nach der verwendeten MCDMS-Konfiguration.

Auch hier gilt die vollständige Section-Override-Regel zwischen WEB.INI und STDConf.INI.

FORMULARE.INI

FORMULARE.INI definiert die verfügbaren Webformulare.

Eine Formularsektion beschreibt unter anderem:

  • Formular-ID
  • Titel
  • HTML-Datei
  • Datenquelle
  • Bearbeitbarkeit
  • Mehrfachdatensätze
  • Löschen
  • Duplizieren
  • Scripts
  • MCDMS-Rechte
  • Aktenzuordnung
  • Listenansicht
  • Master-/Detailstruktur

Beispiel:

[FORMULAR_BEISPIEL]
Title=Beispiel
HTML=HTML\Beispiel\BEISPIEL.html
Edit=TRUE
MultiRecord=TRUE
Delete=TRUE
AllowDuplicate=TRUE
Database=FRM_BEISPIEL;FRMID;PatientID
OrderBy=FRMID;DESC
MATCHCODE=BEISPIEL

Die vollständige Formularreferenz wird im Kapitel 04 Formulare & Scripts beschrieben.

Änderungen an der Konfiguration

HTML-Dateien werden beim Öffnen eines Formulars neu gelesen.

Änderungen an:

HTML
CSS
JavaScript

können daher grundsätzlich ohne Austausch der WebServer-EXE vorgenommen werden.

Serverseitige Konfigurationsdateien wie:

WEB.INI
FORMULARE.INI

werden beim Start des WebServers geladen.

Nach Änderungen daran sollte der Dienst neu gestartet werden:

Stop-Service MCDMS.WebAkte
Start-Service MCDMS.WebAkte

Sicherheit

Sicherheitsrelevante Zuordnungen stammen ausschließlich aus serverseitiger Konfiguration.

Dazu gehören unter anderem:

  • Formulare
  • Datenbanktabellen
  • Primärschlüssel
  • Patientenfelder
  • Scriptpfade
  • MCDMS-MATCHCODEs
  • Rechte
  • Aktionszuordnungen

Der Browser bestimmt diese Werte nicht selbst.