View Categories

06 Integrationsbeispiele

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:

SchrittBeschreibung
1Datei erzeugen
2Datei über den WebService hochladen
3HTTP-Status auswerten
4Lokale Datei archivieren oder löschen
5Antwortdateien regelmäßig abrufen
6Heruntergeladene Dateien verarbeiten
7Erfolgreich 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.

TestErwartetes Ergebnis
Status-Endpunkt erreichbarHTTP 200
Datei hochladenErfolgreich
Datei im Eingangsordner vorhandenJa
Dateiliste abrufenDatei wird angezeigt
Datei herunterladenInhalt korrekt
Datei löschenErfolgreich
Fehlerfall mit falschem API-KeyHTTP 401
Fehlerfall mit ungültiger IKHTTP 403

Erst wenn alle Tests erfolgreich abgeschlossen sind, sollte die Anbindung in den Produktivbetrieb übernommen werden.