Implementation Guide
Telematikinfrastruktur (TI) Common
Version 1.1.1 - release

## FHIR-Formatserialisierung

Die Serialisierung von FHIR-Format-Repräsentationen in einem FHIR Data Service legt fest, in welchen Formaten der Dienst Anfragen verarbeitet und Antworten zurückgibt. Der FHIR Data Service kann sowohl JSON als auch XML unterstützen und ermöglicht es Client-Systeme, das gewünschte Format über den Accept Header oder den _format-Parameter festzulegen. Falls keine Formatangabe angezeigt wird, bestimmt der FHIR Data Service das Antwortformat. Die Anforderungen regeln zudem, wie der Content Type Header in POST-Nachrichten behandelt wird sowie welche Fehlerreaktion erfolgt, wenn ein nicht unterstütztes Format angefordert wird. Abhängig vom Einsatzzweck des FHIR Data Service kann es sein, dass nicht alle Anforderungen in jeder Implementierung relevant oder erforderlich sind.

Der FHIR Data Service MUSS das FHIR-Format in [FHIR JSON] verarbeiten können. Der FHIR Data Service MUSS für Anfragenachrichten und Antwortnachrichten an den Schnittstellen den Content Type `application/fhir+json` unterstützen. Der FHIR Data Service MUSS das FHIR-Format in [FHIR XML] verarbeiten können. Der FHIR Data Service MUSS für Anfragenachrichten und Antwortnachrichten an den Schnittstellen den Content Type `application/fhir+xml` unterstützen. Der FHIR Data Service MUSS den Accept-Header in eingehenden HTTP-Anfragen auswerten, um das gewünschte Antwortformat zu bestimmen. Der FHIR Data Service MUSS die Formate application/fhir+json und application/fhir+xml im AcceptHeader unterstützen und die jeweilige HTTP-Antwortnachricht in dem angegebenen Format verarbeiten.

- Wenn der Accept Header auf application/fhir+json gesetzt ist, MUSS die Antwort in diesem Format erfolgen.
- Wenn der Accept Header auf application/fhir+xml gesetzt ist, MUSS die Antwort in diesem Format erfolgen.

Beispiel für JSON (application/fhir+json)

    GET /AuditEvent/93f68f8b-0985-41c7-930a-44dfa6bba510 HTTP/1.1
    Host: fhir.example.com
    Accept: application/fhir+json

Der FHIR Data Service MUSS als Antwort FHIR JSON zurückgeben:

    HTTP/1.1 200 OK
    Content-Type: application/fhir+json

    {
      "resourceType": "AuditEvent",
      "id": "93f68f8b-0985-41c7-930a-44dfa6bba510",
      ...
    }

Beispiel für XML (application/fhir+xml):

    GET /AuditEvent/93f68f8b-0985-41c7-930a-44dfa6bba510 HTTP/1.1
    Host: fhir.example.com
    Accept: application/fhir+xml

Der FHIR Data Service MUSS als Antwort FHIR XML zurückgeben:

    HTTP/1.1 200 OK
    Content-Type: application/fhir+xml

    <auditevent xmlns="http://hl7.org/fhir">
    <id value="93f68f8b-0985-41c7-930a-44dfa6bba510"></id>
      ...
    </auditevent>

Der FHIR Data Service MUSS gemäß der [FHIR General parameters] den _format-Parameter in Anfragenachricht auswerten, um das gewünschte Antwortformat zu bestimmen.
Der FHIR Data Service MUSS folgende Werte für den _format-Parameter unterstützen:

- XML-Formate: xml, application/xml, application/fhir+xml
- JSON-Formate: json, application/json, application/fhir+json

Beispiel für JSON (application/fhir+json)

    GET [base]/epa/audit/api/v1/fhir/AuditEvent?_count=10&_offset=20&_format=json

Der FHIR Data Service MUSS das Format application/fhir+json verwenden, wenn in der Anfragenachricht kein Accept Header oder _format-Parameter angegeben ist. Der FHIR Data Service MUSS sicherstellen, dass der _format-Parameter den Content Type Header für den Formattyp des Bodys einer POST-Nachricht nicht überschreibt. Falls sowohl der Accept-Header als auch der _format-Parameter in einer Anfragenachricht angegeben sind, MUSS der FHIR Data Service den _format-Parameter priorisieren und das Antwortformat entsprechend diesem verarbeiten. Der Accept Header MUSS in diesem Fall ignoriert werden. Der FHIR Data Service MUSS das Standardformat verwenden, wenn ein nicht unterstütztes Format über den Accept Header oder den _format-Parameter angefordert wird.