View Categories

02 Installation & Inbetriebnahme

MCDMS WebAkte wird vollständig innerhalb einer vorhandenen MCDMS-Installation betrieben.

Alle zur WebAkte gehörenden Dateien befinden sich unter:

{APPPATH}\Web

Beispiel:

D:\Kliniken\KLINIK\MCDMS\Web

Für die Installation stehen zwei Möglichkeiten zur Verfügung:

  • Empfohlen: automatische Installation mit Install.ps1
  • Alternativ: manuelle Einrichtung durch die Klinik-IT

Voraussetzungen

Auf dem Server muss eine funktionsfähige MCDMS-Installation vorhanden sein.

Erforderlich sind insbesondere:

  • Windows Server
  • .NET Framework 4.7.2
  • 32-Bit-MCDMS5API
  • 32-Bit Microsoft Jet OLE DB 4.0
  • vorhandene STAMMDATEN
  • vorhandene STDConf.INI
  • Zugriff auf den konfigurierten SQL Server, sofern SQL-Formulare verwendet werden
  • interner DNS-Name für die MCDMS WebAkte
  • HTTPS-Serverzertifikat für diesen DNS-Namen

MCDMS WebAkte wird als 32-Bit-Anwendung (x86) betrieben.

Installationspaket

Das Installationspaket enthält einen vollständigen Ordner:

Web\

mit folgender Grundstruktur:

Web\
├─ WEB.INI
├─ FORMULARE.INI
├─ PATIENTEN.INI
├─ AKTENSTRUKTUR.INI
│
├─ PROGRAM\
│  ├─ MCDMS.WebServer.exe
│  ├─ MCDMS.WebServer.exe.config
│  └─ benötigte DLLs
│
├─ SETUP\
│  ├─ Install.ps1
│  ├─ Uninstall.ps1
│  └─ README.txt
│
├─ LOGS\
├─ HTML\
├─ CSS\
├─ JS\
└─ IMAGES\

Der komplette Ordner Web wird in den vorhandenen MCDMS-APPPATH kopiert.

Beispiel:

D:\Kliniken\KLINIK\MCDMS\Web

Die eigentliche Serveranwendung befindet sich anschließend unter:

{APPPATH}\Web\PROGRAM\MCDMS.WebServer.exe

DNS-Name festlegen

Vor der HTTPS-Einrichtung muss für die MCDMS WebAkte ein interner DNS-Name festgelegt werden.

Beispiel:

mcdms-webakte.klinik.intern

Dieser Name muss im Kliniknetz auf die IP-Adresse des WebAkte-Servers aufgelöst werden.

Prüfung unter Windows:

Resolve-DnsName mcdms-webakte.klinik.intern

Der gleiche DNS-Name wird anschließend verwendet für:

  • das HTTPS-Serverzertifikat
  • WEB.INI
  • HTTP.sys
  • den Browserzugriff

HTTPS-Zertifikat

Für den Produktivbetrieb sollte ein Serverzertifikat verwendet werden, das von einer in der Klinik bereits vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.

In einer Klinik ist dies typischerweise eine interne Unternehmens- bzw. Klinik-CA.

Das Serverzertifikat muss:

  • für den verwendeten DNS-Namen ausgestellt sein
  • den DNS-Namen im Subject Alternative Name (SAN) enthalten
  • einen privaten Schlüssel besitzen
  • für Server Authentication geeignet sein
  • im Zertifikatsspeicher des lokalen Computers installiert sein

Beispiel:

DNS-Name:
mcdms-webakte.klinik.intern

SAN:
DNS=mcdms-webakte.klinik.intern

Das Serverzertifikat wird auf dem WebAkte-Server unter:

Lokaler Computer
→ Persönlich
→ Zertifikate

installiert.

Prüfung:

Get-ChildItem Cert:\LocalMachine\My |
Select-Object Subject, Thumbprint, NotAfter, HasPrivateKey

Für das verwendete Zertifikat muss gelten:

HasPrivateKey = True

Vertrauen der Clients

Die Arbeitsplätze und mobilen Geräte müssen der Zertifizierungsstelle vertrauen, die das Serverzertifikat ausgestellt hat.

In einer verwalteten Klinik erfolgt dies üblicherweise zentral:

  • Windows-Arbeitsplätze über Active Directory bzw. Gruppenrichtlinien
  • iPhone/iPad über MDM
  • weitere Geräte über die jeweilige zentrale Geräteverwaltung

Dadurch muss nicht das einzelne WebAkte-Serverzertifikat auf jedem Client installiert werden.

Die Clients vertrauen stattdessen der Root-CA bzw. Zertifikatskette der Klinik.

Bei einer Testumgebung mit eigener Test-CA muss deren Root-Zertifikat einmal auf den Testclients als vertrauenswürdig eingerichtet werden.

Ein einzelnes selbstsigniertes Serverzertifikat sollte nur für einfache technische Tests verwendet werden.

Certificate Thumbprint

Für die Installation wird der Thumbprint des Serverzertifikats benötigt.

Beispiel:

FF358F500F887C0D518712D8842A7F573D36CBA9

Wichtig:

Es wird der Thumbprint des für die MCDMS WebAkte ausgestellten Serverzertifikats verwendet – nicht der Thumbprint der Root-CA.

Variante A – Installation mit Install.ps1

Dies ist die empfohlene Installationsmethode.

Das Setup ist für Windows PowerShell 5.1 vorgesehen.

PowerShell als Administrator starten und in den Setup-Ordner wechseln:

cd "D:\Kliniken\KLINIK\MCDMS\Web\SETUP"

Für eine lokale MCDMS-Installation:

.\Install.ps1 -ServiceAccount LocalSystem

LocalSystem wurde für lokale APPPATH-Installationen getestet.

Befindet sich der APPPATH auf einer Netzwerkfreigabe, muss stattdessen ein geeignetes Dienst- bzw. Domänenkonto verwendet werden, das Zugriff auf die benötigten Netzwerkressourcen besitzt.

HttpsPrefix

Das Setup fragt nach dem HTTPS-Prefix.

Beispiel:

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

Der Hostname muss dem DNS-Namen des Serverzertifikats entsprechen.

CertificateThumbprint

Anschließend wird der Thumbprint des installierten Serverzertifikats eingegeben.

Beispiel:

FF358F500F887C0D518712D8842A7F573D36CBA9

Das Setup prüft unter anderem, ob das Zertifikat vorhanden ist und einen privaten Schlüssel besitzt.

MCDMS-APPPATH

Danach wird der vorhandene MCDMS-APPPATH angegeben.

Beispiel:

D:\Kliniken\KLINIK\MCDMS

Wird der richtige APPPATH bereits vorgeschlagen, kann dieser einfach mit Enter bestätigt werden.

Automatische Einrichtung

Install.ps1 übernimmt die für die WebAkte erforderliche Einrichtung.

Dazu gehören insbesondere:

  • Prüfung des APPPATH
  • Prüfung der vorhandenen MCDMS-Struktur
  • Prüfung des HTTPS-Prefix
  • Prüfung des Serverzertifikats
  • Anpassung der Servereinstellungen in WEB.INI
  • HTTP.sys-Konfiguration
  • HTTPS-Zertifikatbindung
  • gegebenenfalls erforderliche URLACL
  • Windows-Firewallkonfiguration
  • benötigte Dateisystemberechtigungen
  • Installation des Windows-Dienstes
  • Übergabe des APPPATH an den Dienst
  • Starttyp Automatic
  • Recovery-Konfiguration des Dienstes
  • Start des Dienstes

Der Windows-Dienst heißt:

MCDMS.WebAkte

Anzeigename:

MCDMS-WebAkte

Gestartet wird:

{APPPATH}\Web\PROGRAM\MCDMS.WebServer.exe

mit:

--apppath="{APPPATH}"

Automatische WEB.INI-Konfiguration

Das Installationsscript passt gezielt die für den WebServer erforderlichen Werte unter [SERVER] an.

Beispiel:

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

Automatisch angepasst werden:

EnvironmentName
Prefixes
AllowedHosts
AllowInsecureHttpDevelopment

Andere Sektionen und klinikspezifische Einstellungen der WEB.INI bleiben erhalten.

Schlägt die Installation während der Einrichtung fehl, werden die in diesem Installationslauf neu vorgenommenen Änderungen soweit möglich zurückgerollt.

Bestehende passende Systemkonfigurationen werden dabei nicht unnötig überschrieben oder entfernt.

Installation prüfen

Dienststatus:

Get-Service MCDMS.WebAkte

Erwartet:

Status : Running

Port prüfen:

netstat -ano | findstr ":8443"

Der Port muss lauschen.

Status-Endpunkt prüfen:

Invoke-WebRequest `
  https://mcdms-webakte.klinik.intern:8443/api/status `
  -UseBasicParsing

Erwartet:

StatusCode : 200

Die Antwort enthält unter anderem:

{
  "Status": "ok",
  "Application": "MCDMS WebServer",
  "Version": "1.0.0.0"
}

Browser-Test

Im Browser öffnen:

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

Es darf keine Zertifikatswarnung erscheinen.

Anschließend prüfen:

  • MCDMS-Login
  • Patientensuche
  • Patientenauswahl
  • Patientenstammblatt
  • Aktenbereiche
  • vorhandene Formulare
  • Speichern eines Testdatensatzes

Der Test sollte nach Möglichkeit sowohl von einem normalen Windows-Arbeitsplatz als auch von weiteren vorgesehenen Gerätetypen durchgeführt werden.

Variante B – Manuelle Installation

Die MCDMS WebAkte kann alternativ vollständig manuell eingerichtet werden.

Die folgenden Schritte beziehen sich auf eine lokale Installation mit LocalSystem.

1. Web-Verzeichnis kopieren

Den vollständigen Ordner:

Web

nach:

{APPPATH}\Web

kopieren.

Beispiel:

D:\Kliniken\KLINIK\MCDMS\Web

2. DNS prüfen

Der vorgesehene DNS-Name muss auf den WebAkte-Server zeigen.

Resolve-DnsName mcdms-webakte.klinik.intern

3. Serverzertifikat installieren

Das von der Klinik-CA ausgestellte Serverzertifikat im Zertifikatsspeicher:

Lokaler Computer
→ Persönlich
→ Zertifikate

installieren.

Danach prüfen:

Get-ChildItem Cert:\LocalMachine\My |
Select-Object Subject, Thumbprint, NotAfter, HasPrivateKey

4. WEB.INI konfigurieren

Unter:

{APPPATH}\Web\WEB.INI

den Abschnitt [SERVER] konfigurieren:

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

AllowedHosts enthält ausschließlich den Hostnamen ohne Protokoll und Port.

5. HTTPS-Zertifikat an HTTP.sys binden

Der Thumbprint des Serverzertifikats wird an den gewünschten HTTPS-Port gebunden.

Beispiel:

netsh http add sslcert ipport=0.0.0.0:8443 certhash=SERVERZERTIFIKAT-THUMBPRINT appid={EINDEUTIGE-GUID} certstorename=MY

Kontrolle:

netsh http show sslcert ipport=0.0.0.0:8443

Der angezeigte Zertifikathash muss dem Serverzertifikat entsprechen.

Die Root-CA wird nicht an HTTP.sys gebunden.

HTTP.sys verwendet ausschließlich das für den WebAkte-Server ausgestellte Serverzertifikat.

Bei Verwendung von LocalSystem ist keine zusätzliche URLACL erforderlich.

Bei einem anderen Dienstkonto muss eine passende HTTP.sys URL-Reservierung eingerichtet werden.

6. Firewall freigeben

TCP-Port 8443 muss für die vorgesehenen Kliniknetze eingehend erreichbar sein.

Beispiel:

New-NetFirewallRule `
  -DisplayName "MCDMS-WebAkte HTTPS 8443" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 8443 `
  -Action Allow `
  -Profile Any

In produktiven Kliniknetzen sollte die Regel auf die tatsächlich erforderlichen internen Netze eingeschränkt werden.

Ein Zugriff aus dem öffentlichen Internet ist für die interne MCDMS WebAkte nicht erforderlich.

7. Windows-Dienst installieren

Administratives Terminal öffnen.

Beispiel:

sc.exe create MCDMS.WebAkte binPath= "\"D:\Kliniken\KLINIK\MCDMS\Web\PROGRAM\MCDMS.WebServer.exe\" --apppath=\"D:\Kliniken\KLINIK\MCDMS\"" start= auto DisplayName= "MCDMS-WebAkte"

Dienstbeschreibung:

sc.exe description MCDMS.WebAkte "MCDMS-WebAkte WebServer"

Recovery:

sc.exe failure MCDMS.WebAkte reset= 86400 actions= restart/60000

Dienst starten:

sc.exe start MCDMS.WebAkte

8. Dienst prüfen

Get-Service MCDMS.WebAkte

Erwartet:

Running

9. HTTPS prüfen

Invoke-WebRequest `
  https://mcdms-webakte.klinik.intern:8443/api/status `
  -UseBasicParsing

Erwartet:

StatusCode : 200

10. Client-Vertrauen prüfen

Von einem Arbeitsplatz oder mobilen Endgerät:

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

Die Seite muss ohne Zertifikatswarnung geöffnet werden.

Falls eine Zertifikatswarnung erscheint, prüfen:

  • stimmt der Browsername mit dem SAN des Serverzertifikats überein?
  • ist die vollständige Zertifikatskette gültig?
  • vertraut der Client der ausstellenden Root-CA?
  • ist das Serverzertifikat noch gültig?

Bei verwalteten Windows-PCs und mobilen Geräten sollte das Vertrauen in die Klinik-CA zentral verteilt werden.

Logdateien

Die Betriebslogs befinden sich unter:

{APPPATH}\Web\LOGS

Beispiel:

D:\Kliniken\KLINIK\MCDMS\Web\LOGS

Eine Logdatei wird erst erzeugt, wenn tatsächlich eine relevante Warnung oder ein Fehler auftritt.

Deinstallation

Die Deinstallation erfolgt über:

{APPPATH}\Web\SETUP\Uninstall.ps1

PowerShell als Administrator:

cd "D:\Kliniken\KLINIK\MCDMS\Web\SETUP"

.\Uninstall.ps1

Das Script fragt nach dem verwendeten HTTPS-Prefix.

Beispiel:

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

Entfernt werden die eindeutig zur MCDMS WebAkte gehörenden Windows-Systemeinträge, insbesondere:

  • Windows-Dienst
  • HTTP.sys-Konfiguration
  • SSL-Binding
  • gegebenenfalls WebAkte-Firewallregel

Das vorhandene Serverzertifikat bzw. die Klinik-CA werden durch die Deinstallation nicht gelöscht.

Bestehende MCDMS-Fachdaten und MCDMS-Konfigurationen außerhalb von:

{APPPATH}\Web

werden durch Installation und Deinstallation nicht eigenmächtig verändert oder gelöscht.