Implementation Guide
TIFlow - Verordnungen für Arzneimittel
Version 2.0.0-ballot.2 - ballot

## Datenmodell payload

Diese Seite beschreibt Anforderungen an das Datenmodell für den payload der `Communication`-Ressource.

#### E-Rezept einer Apotheke zuweisen

funkt. Eignung: Herstellererklärung funkt. Eignung: Herstellererklärung funkt. Eignung: Herstellererklärung Der TI-Flow-Fachdienst, das E-Rezept-FdV und das PS der abgebenden LEI MÜSSEN für den Anwendungsfall "E-Rezept einer Apotheke zuweisen" Nachrichten mit der Datenstruktur gemäß der Tabelle in der contentString-Eigenschaft des GEM_ERP_PR_Communication_DispReq-Profils unterstützen.

Attribut | verpflichtend | Beschreibung | zulässige Werte | Beispiel
--- | --- | --- | --- | ---
version | ja | Gibt die Version des JSON an. Aktuell immer 3. Kann im weiteren Lebenszyklus verändert werden. | nummerisch, bis zu 6 Stellen | 3
communicationType | ja | Beschreibt die Art der Nachricht. | order, text | order
supplyOptionsType | Falls communicationType = order: ja Falls communicationType = text: verboten | Wird gemäß des Servicerequests gesetzt, den der Nutzer wählt. Die für den Nutzer verfügbaren Services sind für die jeweilige Apotheke im FHIR-VZD hinterlegt. | onPremise, shipment, delivery | onPremise
firstname | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | Vorname des Versicherten bzw. Lieferungsempfänger | 45 Stellen | Maximilian
lastname | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | Name des Versicherten bzw. Lieferungsempfänger. | 45 Stellen | Dr. von Muster
address | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | Strasse und Hausnummer des Versicherten bzw. Lieferungsempfänger | 3-100 Stellen | Bundesallee 312
postcode | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | PLZ des Versicherten bzw. Lieferungsempfänger | 3-10 Stellen | 12345
city | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | Ort des Versicherten bzw. Lieferungsempfänger | 2-100 Stellen | Berlin
country | Falls communicationType = order und supplyOptionsType = delivery oder shipment: ja Ansonsten: nein | Land des Versicherten bzw. Lieferungsempfänger | ISO 3166-1 Alpha-2 Code | DE
hint | Falls communicationType = text: verboten Ansonsten: nein | Lieferanweisung, die der Nutzer mit angeben kann. | 0-100 Stellen | Bitte im Morsecode klingeln: -.-.
text | Falls communicationType = text: ja Ansonsten: nein | Zusätzliche Anmerkungen des Nutzers zur Bestellung. | 0-800 Stellen, keine URL |
phone | Falls communicationType = order: ja Ansonsten: nein | Telefonnummer. E-164 Format, jedoch anstelle des "+" mit "00" / rein nummerisch. | 32 Stellen | 004916094858168
email | nein | E-Mail-Adresse des Nutzers. Format mit @ und Punkt. | 0-70 Stellen, RFC-5322-konforme E-Mail-Adresse | max@musterfrau.de
transactionID | ja | Dient dazu, Nachrichten einer Transaktion zuordnen zu können. | 36 Stellen, UUID | 8196b610-9b77-47ab-936e-362cd92ef2aa

Tabelle: TAB_eRpDM_002 E-Rezept einer Apotheke zuweisen

Ein JSON-Schema zur Validierung ist unter [Comm_DispReq_JSON_Schema] zu finden.

Nachrichtentyp (communicationType) | Beschreibung
--- | ---
order | Zuweisen eines E-Rezepts
text | Antwort auf eine Nachricht der Apotheke

#### Nachricht durch Abgebenden übermitteln

funkt. Eignung: Herstellererklärung funkt. Eignung: Herstellererklärung funkt. Eignung: Herstellererklärung Der TI-Flow-Fachdienst, das E-Rezept-FdV und das PS der abgebenden LEI MÜSSEN für den Anwendungsfall "Nachricht durch Abgebenden übermitteln" Nachrichten mit der folgenden Datenstruktur in der contentString-Eigenschaft des GEM_ERP_PR_Communication_Reply unterstützen.

Attribut | verpflichtend | Beschreibung | zulässige Werte | Beispiel
--- | --- | --- | --- | ---
version | ja | Gibt die Version des JSON an. Aktuell immer 3. Kann im weiteren Lebenszyklus verändert werden. | nummerisch, bis zu 6 Stellen | 3
communicationType | ja | Beschreibt die Art der Nachricht. | text, link, reservationStatus, pickupCodeHR, pickupCodeDMC, deliveryStatus, paymentInfo | reservationStatus
text | Falls communicationType = text oder link: ja Falls communicationType = pickupCodeHR, pickupCodeDMC, deliveryStatus oder paymentInfo: nein Falls communicationType = reservationStatus: verboten | Zusätzlicher Freitext der Apotheke an den Versicherten. Falls communicationType gleich "link" ist, beschreibt dies das URL-Ziel, sodass der Versicherte vor dem Aufruf über das Ziel des Absprungs informiert wird. | 800 Stellen, keine URL | Wir möchten Sie informieren, dass Ihre bestellten Medikamente zur Abholung bereitstehen. Den Abholcode finden Sie anbei.
url | Falls communicationType = link: ja Ansonsten: verboten | Einbettung einer externen URL ausschließlich für das Einlösen von E-Rezepten in einer externen Bestellplattform. | 500 Stellen, HTTPS-URL gemäß RFC3986 | https://www.meine-apotheke.de/pickup/59b52340-7a6a-430d-99ea-45a8e5cd03f6
transactionID | ja | Wiederholung aus der empfangenen Nachricht. Dient dazu, Nachrichten einer Transaktion zuordnen zu können. | 36 Stellen, UUID | 8196b610-9b77-47ab-936e-362cd92ef2aa
readyForCollection | Falls communicationType = reservationStatus: ja Ansonsten: verboten | Zeitpunkt der Verfügbarkeit | immediately, sameDay, nextDay, nextDayAM, nextDayPM, unknown, notAvailable | immediately
deliveryStatus | Falls communicationType = deliveryStatus: ja Ansonsten: verboten | Information zum Status der Lieferung (Bote, Versand) | preparedWaiting, inTransport, delivered, incident | inTransport
inTransportPosition | Falls communicationType = deliveryStatus: nein Ansonsten: verboten | GMS Position des Transporters | Lat, Long |
    {
      "long": 13.387595793605172,
      "lat": 52.522529939635795
    }
inTransportETA | Falls communicationType = deliveryStatus: nein Ansonsten: verboten | Erwartete Ankunft Zeitfenster von - bis | TIMESTAMP-TIMESTAMP |
    {
      "from": 1735736400,
      "to": 1735741800
    }
totalAmount | Falls communicationType = paymentInfo: ja Ansonsten: verboten | Zu zahlender Betrag in Eurocent, rein nummerisch | Nummerisch | 12550
paymentMethods | Falls communicationType = paymentInfo: nein Ansonsten: verboten | Verfügbare Zahlungsarten | Array aus Objects: cash, bankaccount, creditcard, paypal (optional) |
    "paymentMethods": [
      { "method": "cash" },
      {
        "method": "bankaccount",
        "url": "https://my.payment.provider.de/pay/..."
      },
      {
        "method": "paypal",
        "url": "https://paypal.me/<some_account>"
      }
    ]
pickupCodeHR | Falls communicationType = pickupCodeHR und supplyOptionsType = onPremise: ja Ansonsten: verboten | Menschenlesbarer Abholcode | 1-8 Stellen | 12315615
pickupCodeDMC | Falls communicationType = pickupCodeDMC und supplyOptionsType = onPremise: ja Ansonsten: verboten | Maschinenlesbarer Abholcode (Data-Matrix-Code gemäß ISO/IEC 16022:2006) | 8-2000 Stellen | 5346a991-c5c6-49c8-b87b-4cdd255bbde4

Tabelle: TAB_eRpDM_003 Nachricht als Apotheke an einen Versicherten schicken

Nachrichtentyp (communicationType) | Beschreibung
--- | ---
text | Übermittlung einer Freitext-Nachricht
link | Übermittlung einer URL zum Vorgang
reservationStatus | Übermittlung des Reservierungsstatus
pickupCodeHR | Übermittlung eines menschenlesbares Abholcodes
pickupCodeDMC | Übermittlung eines maschinenlesbaren Abholcodes
deliveryStatus | Übermittlung des Lieferstatus
paymentInfo | Übermittlung eines Hinweises zum zu zahlenden Betrags

funkt. Eignung: Test Produkt/FA Der TI-Flow-Fachdienst MUSS beim Einstellen einer Nachricht über die http-Operation POST auf den Endpunkt /Communication, falls die Ressource dem GEM_ERP_PR_Communication_Reply-Profil entspricht, den Inhalt der contentString-Eigenschaft auf valides JSON sowie gegen die Struktur in "Tabelle: Nachricht als Apotheke an einen Versicherten schicken" überprüfen und bei negativem Prüfergebnis, die Operation mit dem folgenden Fehler:

HTTP-Code | 400 - Bad Request
Severity | error
Code | invalid
Details Code | SVC_VALIDATION_FAILED
Details Text | FHIR Profile Validation Failed

abbrechen sowie mit einer aussagekräftigen Fehlermeldung in Form einer eingebetteten OperationOutcome-Ressource antworten.