6.1 Allgemeines
Der MCDMS WebService kann von jeder Anwendung verwendet werden, die HTTPS-Anfragen unterstützt.
Typische Einsatzgebiete sind:
- Krankenhausinformationssysteme (KIS)
- Laborinformationssysteme (LIS)
- Radiologie- und PACS-Systeme
- Patientenportale
- Individuelle Kliniksoftware
- Batch- und Skriptlösungen
- Middleware und Integrationsplattformen
Die nachfolgenden Beispiele zeigen typische Integrationen.
6.2 VB.NET (.NET Framework)
VB.NET eignet sich insbesondere für bestehende Windows-Anwendungen.
Datei hochladen
Dim client As New WebClient
client.Headers.Add("X-API-KEY", apiKey)
client.Headers.Add("X-IK", "260820558")
client.Headers.Add("X-Dateiname", "Befund.xml")
client.UploadFile(
"https://server:5001/api/v1/nachrichten",
"POST",
"Befund.xml")
Datei herunterladen
Dim client As New WebClient
client.Headers.Add("X-API-KEY", apiKey)
client.Headers.Add("X-IK", "260820558")
client.Headers.Add("X-Dateiname", "Antwort.xml")
client.DownloadFile(
"https://server:5001/api/v1/nachrichten",
"Antwort.xml")
Einsatzgebiet
- Bestehende MCDMS-Anwendungen
- Windows-Programme
- Hintergrunddienste
6.3 C# (.NET)
Für moderne .NET-Anwendungen empfiehlt sich die Verwendung von HttpClient.
Datei hochladen
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", apiKey);
client.DefaultRequestHeaders.Add("X-IK", "260820558");
client.DefaultRequestHeaders.Add("X-Dateiname", "Befund.xml");
var content = new ByteArrayContent(
await File.ReadAllBytesAsync("Befund.xml"));
await client.PostAsync(
"https://server:5001/api/v1/nachrichten",
content);
6.4 PowerShell
PowerShell eignet sich hervorragend für Automatisierungen und Administrationsaufgaben.
Datei hochladen
Invoke-WebRequest `
-Uri "https://server:5001/api/v1/nachrichten" `
-Method POST `
-Headers @{
"X-API-KEY" = "123456"
"X-IK" = "260820558"
"X-Dateiname" = "Befund.xml"
} `
-InFile "Befund.xml"
6.5 Batch-Datei
Auch klassische Windows-Batch-Dateien können den WebService verwenden.
Datei hochladen
curl ^
-X POST ^
"https://server:5001/api/v1/nachrichten" ^
-H "X-API-KEY: 123456" ^
-H "X-IK: 260820558" ^
-H "X-Dateiname: Befund.xml" ^
--data-binary "@Befund.xml"
Ideal für:
- Windows Aufgabenplanung
- Automatische Exporte
- Bestehende Batch-Prozesse
6.6 Python
Python eignet sich besonders für Schnittstellen und Automatisierungen.
import requests
headers = {
"X-API-KEY": "123456",
"X-IK": "260820558",
"X-Dateiname": "Befund.xml"
}
with open("Befund.xml", "rb") as file:
requests.post(
"https://server:5001/api/v1/nachrichten",
headers=headers,
data=file)
6.7 Java
Auch Java-Anwendungen können den WebService problemlos verwenden.
Der Aufruf erfolgt beispielsweise über:
- HttpClient
- Spring Boot
- Apache HttpComponents
Das Prinzip entspricht den gezeigten Beispielen.
6.8 Typischer Datenaustausch
Der folgende Ablauf zeigt den üblichen Datenaustausch zwischen zwei Systemen.
┌──────────────┐
│ System A │
│ (Sender) │
└──────┬───────┘
│
│ Datei hochladen
▼
┌──────────────┐
│ MCDMS │
│ WebService │
└──────┬───────┘
│
│ Speicherung
▼
Eingang\<IK>
│
│ Verarbeitung durch Zielsystem
▼
Ausgang\<IK>
│
│ Datei herunterladen
▼
┌──────────────┐
│ System B │
│ (Empfänger) │
└──────────────┘
6.9 Automatisierter Dateiaustausch
Ein typischer Ablauf besteht aus folgenden Schritten:
| Schritt | Beschreibung |
|---|---|
| 1 | Datei erzeugen |
| 2 | Datei über den WebService hochladen |
| 3 | HTTP-Status auswerten |
| 4 | Lokale Datei archivieren oder löschen |
| 5 | Antwortdateien regelmäßig abrufen |
| 6 | Heruntergeladene Dateien verarbeiten |
| 7 | Erfolgreich verarbeitete Dateien auf dem Server löschen |
Dieser Ablauf eignet sich insbesondere für zeitgesteuerte Prozesse, beispielsweise über die Windows-Aufgabenplanung oder einen Windows-Dienst.
6.10 Best Practices
Für einen stabilen und sicheren Betrieb empfehlen wir folgende Vorgehensweisen.
Fehler behandeln
Jeder HTTP-Statuscode sollte ausgewertet werden.
Fehler dürfen nicht ignoriert werden.
Timeouts verwenden
Jede HTTPS-Anfrage sollte mit einem sinnvollen Timeout versehen werden.
Empfohlen werden 30 bis 60 Sekunden.
Wiederholungsversuche
Bei temporären Netzwerkproblemen sollten fehlgeschlagene Übertragungen automatisch erneut versucht werden.
Empfohlen werden maximal drei Wiederholungsversuche mit zunehmender Wartezeit.
Dateien erst nach erfolgreicher Übertragung löschen
Lokale Dateien sollten erst entfernt werden, nachdem der WebService den erfolgreichen Empfang mit HTTP 200 OK bestätigt hat.
HTTPS-Zertifikate prüfen
Im Produktivbetrieb sollte die Zertifikatsprüfung niemals deaktiviert werden.
Protokollierung
Alle Dateiübertragungen sollten protokolliert werden, um Fehler und Kommunikationsprobleme später nachvollziehen zu können.
6.11 Integrationstest
Nach der Anbindung eines Fremdsystems empfiehlt sich folgender Funktionstest.
| Test | Erwartetes Ergebnis |
|---|---|
| Status-Endpunkt erreichbar | HTTP 200 |
| Datei hochladen | Erfolgreich |
| Datei im Eingangsordner vorhanden | Ja |
| Dateiliste abrufen | Datei wird angezeigt |
| Datei herunterladen | Inhalt korrekt |
| Datei löschen | Erfolgreich |
| Fehlerfall mit falschem API-Key | HTTP 401 |
| Fehlerfall mit ungültiger IK | HTTP 403 |
Erst wenn alle Tests erfolgreich abgeschlossen sind, sollte die Anbindung in den Produktivbetrieb übernommen werden.
