---
title: 03 Konfiguration
description: "![](https://aspi-gmbh.de/wp-content/uploads/2026/09/mcdms-webakte-03konfiguration_1-1024x576.png) ## Ü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}CONFIGSTDConf.INI ``` verwenden. `WEB.INI` enthält die allgemeinen Einstellungen…"
url: "https://aspi-gmbh.de/docs/03-konfiguration/"
updated: "2026-10-15"
category: Anleitungen / MCDMS WebAkte
---

# 03 Konfiguration

![](https://aspi-gmbh.de/wp-content/uploads/2026/09/mcdms-webakte-03konfiguration_1-1024x576.png)

## Ü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}CONFIGSTDConf.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=CONFIGScriptsKTLops.MCFSCR;CONFIGScriptsDiagnosen.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=CONFIGScriptsKTLops.MCFSCR;CONFIGScriptsDiagnosen.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
ArztBefunde
ArztVerlauf
```

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

Hierarchien werden über `` gebildet.

Beispiel:

```
Arzt
ArztBefunde
ArztVerlauf
```

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}WebLOGS
```

## 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=IMAGESlogo.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=IMAGESlogo.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:

```
WebIMAGESFILEICONS
```

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:

```
WebIMAGESFILEICONS42.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:

```
WebIMAGESFILEICONSdefault.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}DATABASESTAMMDAT.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=HTMLBeispielBEISPIEL.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.
