---
title: 06 Integrationsbeispiele
description: "## 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…"
url: "https://aspi-gmbh.de/docs/06-integrationsbeispiele/"
updated: "2026-07-29"
category: Anleitungen / MCDMS WebService
---

# 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:

| 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.
