Skip to content

Latest commit

 

History

History
685 lines (656 loc) · 29.7 KB

erp_communication.adoc

File metadata and controls

685 lines (656 loc) · 29.7 KB

gematik logo

E-Rezept API-Dokumentation für Nachrichtenaustausch

Hier dokumentiert die gematik die Nutzung der Schnittstellen rund um den Nachrichtenaustausch zwischen Versicherten und Apotheken zum E-Rezept.

1. Anwendungsfall Nachricht als Versicherter an eine Apotheke schicken

Als Versicherter möchte ich der Apotheke eine Nachricht schicken, um zu fragen, ob sie mein E-Rezept beliefern kann. Über eine Verzeichnissuche habe ich die gewünschte Apotheke gefunden, meine App kennt deren Telematik-ID, an die die folgende Nachricht adressiert wird.

fdv E-Rezept-App

HTTP-Request

curl -XPOST -H "Content-Type: application/fhir+json; charset=UTF-8"
-H "Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J" (1)
--data
"{
  \"resourceType\": \"Communication\",
  \"meta\": {
    \"profile\": [
      \"https://gematik.de/fhir/StructureDefinition/erxCommunication\"
    ]
  },
  \"status\": \"unknown\",
  \"category\": [ {
    \"coding\": [ {
      \"system\": \"http://terminology.hl7.org/CodeSystem/communication-category\",
      \"code\": \"notification\"
    } ]
  } ],
  \"recipient\": [ { (2)
    \"identifier\": {
      \"type\":{
          \"coding\": [ {
            \"system\":\"http://terminology.hl7.org/CodeSystem/v2-0203\",
            \"code\":\"BSNR\"
          } ]
        },
        \"system\":\"https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR\",
        \"value\":\"606358757\"
     }
  } ],
  \"payload\": [ {
    \"contentString\": \"Hallo, ich wollte gern fragen, ob das Medikament bei Ihnen vorrätig ist.\" (3)
  }, {
    \"resourceType\":\"Medication\", (4)
    \"id\":\"5fe6e06c-8725-46d5-aecd-e65e041ca3de\",
    \"meta\":{
      \"profile\": [
        \"https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medikament_PZN|1.0.0\"
      ]
    },
    \"code\":{
      \"coding\": [ {
        \"system\":\"http://fhir.de/CodeSystem/ifa/pzn\",
        \"code\":\"06313728\" (5)
      } ],
      \"text\":\"Sumatriptan-1a Pharma 100 mg Tabletten\" (6)
    },
    \"form\":{
      \"coding\": [ {
        \"system\":\"KBV_CS_SFHIR_KBV_DARREICHUNGSFORM\",
        \"code\":\"TAB\"
      } ]
    },
    \"amount\":{
      \"numerator\":{
        \"value\":\"12\",
        \"system\":\"http://unitsofmeasure.org\",
        \"code\":\"{tbl}\"
      },
      \"denominator\":{
        \"value\":\"1\"
      }
    },
    \"extension\": [ {
      \"url\":\"https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_KATEGORIE\",
      \"valueCoding\":{
        \"system\":\"https://fhir.kbv.de/CodeSystem/KBV_CS_MEDIKAMENT_KATEGORIE\",
        \"code\":\"00\"
      }
    }, {
      \"url\":\"https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_IMPFSTOFF\",
      \"valueBoolean\":false
    }, {
      \"url\":\"http://fhir.de/StructureDefinition/normgroesse\",
      \"valueCode\":\"N1\" (7)
    } ]
  } ]
}"
https://prescriptionserver.telematik/Communication
  1. Mit dem ID Token im Authorization-Header weist sich der Zugreifende als Versicherter aus, im Token ist seine Rolle enthalten. Die Base64-Darstellung des Tokens ist stark gekürzt.

  2. Als Empfänger-Adresse wird die Telematik-ID der Apotheke angegeben, wie sie über die Suche im Verzeichnisdienst gefunden wurde.

  3. In einer Communication-Nachricht können mehrere Payload-Elemente angegeben werden, hier ein Beispiel für einen Freitext.

  4. Als weiteres Nachrichtenelement ist der Medication-Eintrag aus dem verordneten E-Rezept-Datensatz übernommen, dieser enthält die wesentlichen Anfrageinformationen für die Apotheke:

  5. Die Pharmazentralnummer (PZN) des Medikaments

  6. Die Beschreibung bzw. Bezeichnung des Medikaments

  7. Die Normgröße gemäß der Packungsgrößenkennzeichnung

fachdienst E-Rezept-Fachdienst

HTTP-Response

HTTP/1.1 201 Created
Content-Type: application/fhir+json;charset=utf-8
Location:
  https://prescriptionserver.telematik/Communication/12345
{
  "resourceType": "Communication",
  "id": "12345",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2020-03-12T18:01:10+00:00",
    "profile": [
      "https://gematik.de/fhir/StructureDefinition/erxCommunication"
    ]
  },
  "status": "unknown",
  "category": [ {
    "coding": [ {
      "system": "http://terminology.hl7.org/CodeSystem/communication-category",
      "code": "notification"
    } ]
  } ],
  "sent": "2020-03-12T18:01:10+00:00", (1)
  "recipient": [ {
    "identifier": {
      "type":{
          "coding": [ {
            "system":"http://terminology.hl7.org/CodeSystem/v2-0203",
            "code":"BSNR"
          } ]
        },
        "system":"https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR",
        "value":"606358757"
     }
  } ],
  "sender": { (2)
    "identifier": {
      "type":{
        "coding": [ {
          "system":"http://fhir.de/CodeSystem/identifier-type-de-basis",
          "code":"GKV"
        } ]
      },
      "system":"http://fhir.de/NamingSystem/gkv/kvid-10",
      "value":"X234567890"
    }
  },
  "payload": [ {
    "contentString": "Hallo, ich wollte gern fragen, ob das Medikament bei Ihnen vorrätig ist."
  }, {
    "resourceType":"Medication",
    "id":"5fe6e06c-8725-46d5-aecd-e65e041ca3de",
    "meta":{
      "profile": [
        "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medikament_PZN|1.0.0"
      ]
    },
    "code":{
      "coding": [ {
        "system":"http://fhir.de/CodeSystem/ifa/pzn",
        "code":"06313728"
      } ],
      "text":"Sumatriptan-1a Pharma 100 mg Tabletten"
    },
    "form":{
      "coding": [ {
        "system":"KBV_CS_SFHIR_KBV_DARREICHUNGSFORM",
        "code":"TAB"
      } ]
    },
    "amount":{
      "numerator":{
        "value":"12",
        "system":"http://unitsofmeasure.org",
        "code":"{tbl}"
      },
      "denominator":{
        "value":"1"
      }
    },
    "extension": [ {
      "url":"https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_KATEGORIE",
      "valueCoding":{
        "system":"https://fhir.kbv.de/CodeSystem/KBV_CS_MEDIKAMENT_KATEGORIE",
        "code":"00"
      }
    }, {
      "url":"https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_IMPFSTOFF",
      "valueBoolean":false
    }, {
      "url":"http://fhir.de/StructureDefinition/normgroesse",
      "valueCode":"N1"
    } ]
  } ]
}
  1. Der Server übernimmt beim Absenden der Nachricht den Sendezeitpunkt in die Communication-Ressource

  2. Die Informationen zum Absender werden aus dem im Request übergebenen ID-Token übernommen, in diesem Fall die KVNR des Versicherten als Absender der Anfrage.

Der Aufruf erfolgt als http-POST-Operation. Im Aufruf muss das während der Authentisierung erhaltene ID_TOKEN im http-Request-Header Authorization übergeben werden. Im http-RequestBody wird die zu verschickende Nachricht als Communication-Ressource übergeben. Der Server prüft den Inhalt auf Zulässigkeit (z.B. um die Verbreitung von Viren und Schadcode zu unterbinden) und ergänzt Metainformationen wie den Sendezeitpunkt und die Angaben des Absenders aus dessen ID-Token. Die Nachricht steht nun zum Abruf durch den Empfänger bereit, der seine Nachrichten über eine GET-Abfrage herunterladen kann.

Code

Type Success

201

Created
Die Anfrage wurde erfolgreich bearbeitet. Die angeforderte Ressource wurde vor dem Senden der Antwort erstellt. Das Location-Header-Feld enthält die Adresse der erstellten Ressource.

Code

Type Error

400

Bad Request
Die Anfrage-Nachricht war fehlerhaft aufgebaut.

401

Unauthorized
Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

403

Forbidden
Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist.

405

Method Not Allowed
Die Anfrage darf nur mit anderen HTTP-Methoden (zum Beispiel GET statt POST) gestellt werden. Gültige Methoden für die betreffende Ressource werden im „Allow“-Header-Feld der Antwort übermittelt.

408

Request Timeout
Innerhalb der vom Server erlaubten Zeitspanne wurde keine vollständige Anfrage des Clients empfangen.

429

Too Many Requests
Der Client hat zu viele Anfragen in einem bestimmten Zeitraum gesendet.

500

Server Errors
Unerwarteter Serverfehler

2. Anwendungsfall Nachricht als Apotheke an einen Versicherten schicken

Uns als Apotheke wurde von einem Versicherten eine Nachricht zu einem E-Rezept geschickt. Der Versicherte fragt, ob ein Medikament vorrätig ist, dieses wurde in der Anfrage über dessen Pharmazentralnummer http://fhir.de/CodeSystem/ifa/pzn|06313728 benannt. Eine interne Warenbestandsprüfung hat ergeben, dass das Medikament vorrätig ist, nun schicken wir dem Versicherten eine Nachricht als Antwort nach der Frage zur Verfügbarkeit des Medikaments.

clientsystem Primärsystem

HTTP-Request

curl -XPOST -H "Content-Type: application/fhir+xml; charset=UTF-8"
-H "Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J"
--data
"Communication xmlns="http://hl7.org/fhir">
   <meta>
      <profile value=\"https://gematik.de/fhir/StructureDefinition/erxCommunication\"/>
   </meta>
   <status value="unknown"/>
   <category>
      <coding>
         <system value=\"http://terminology.hl7.org/CodeSystem/communication-category\"/>
         <code value=\"notification\"/>
      </coding>
   </category>
   <recipient>
      <identifier>
         <system value=\"http://fhir.de/NamingSystem/gkv/kvid-10\"/>
         <value value=\"X234567890\"/>
      </identifier>
   </recipient>
   <payload>
      <contentString value=\"Guten Tag, das Medikament haben wir auf Lager. Kommen Sie zur Abholung gern vorbei.\"/>
   </payload>
</Communication>"
https://prescriptionserver.telematik/Communication
  1. Das Apothekenverwaltungssystem kann mit dieser optionalen Angabe eine Verbindung zur eingegangenen Anfrage herstellen, in dem der Link zur beantworteten Communication-Ressource ergänzt wird.

fachdienst E-Rezept-Fachdienst

HTTP-Response

HTTP/1.1 201 Created
Content-Type: application/fhir+xml;charset=utf-8
Location:
  https://prescriptionserver.telematik/Communication/12346

<Communication xmlns="http://hl7.org/fhir">
   <id value="1092143"/>
   <meta>
      <versionId value="1"/>
      <lastUpdated value="2020-03-12T18:15:10+00:00"/>
      <source value="#BsTSF2KMvxsPJdMU"/>
      <profile value="https://gematik.de/fhir/StructureDefinition/erxCommunication"/>
   </meta>
   <status value="unknown"/>
   <category>
      <coding>
         <system value="http://terminology.hl7.org/CodeSystem/communication-category"/>
         <code value="notification"/>
      </coding>
   </category>
   <sent value="2020-03-12T18:15:10+00:00"/> (1)
   <recipient>
      <identifier>
         <system value="http://fhir.de/NamingSystem/gkv/kvid-10"/>
         <value value="X234567890"/>
      </identifier>
   </recipient>
   <sender> (2)
      <identifier>
         <system value="https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR"/>
         <value value="606358750"/>
      </identifier>
   </sender>
   <payload>
      <contentString value="Guten Tag, das Medikament haben wir auf Lager. Kommen Sie zur Abholung gern vorbei."/>
   </payload>
</Communication>
  1. Der Server übernimmt beim Absenden der Nachricht den Sendezeitpunkt in die Communication-Ressource

  2. Die Informationen zum Absender werden aus dem im Request übergebenen ID-Token übernommen, in diesem Fall die Telematik-ID der Apotheke als Absender der Nachricht.

Der Aufruf erfolgt als http-POST-Operation. Im Aufruf muss das während der Authentisierung erhaltene ID_TOKEN im http-Request-Header Authorization übergeben werden. Im http-RequestBody wird die zu verschickende Nachricht als Communication-Ressource übergeben. Der Server prüft den Inhalt auf Zulässigkeit (z.B. um die Verbreitung von Viren und Schadcode zu unterbinden) und ergänzt Metainformationen wie den Sendezeitpunkt und die Angaben des Absenders aus dessen ID-Token. Die Nachricht steht nun zum Abruf durch den Empfänger bereit, der seine Nachrichten über eine GET-Abfrage herunterladen kann.

Code

Type Success

201

Created
Die Anfrage wurde erfolgreich bearbeitet. Die angeforderte Ressource wurde vor dem Senden der Antwort erstellt. Das Location-Header-Feld enthält die Adresse der erstellten Ressource.

Code

Type Error

400

Bad Request
Die Anfrage-Nachricht war fehlerhaft aufgebaut.

401

Unauthorized
Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

403

Forbidden
Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist.

405

Method Not Allowed
Die Anfrage darf nur mit anderen HTTP-Methoden (zum Beispiel GET statt POST) gestellt werden. Gültige Methoden für die betreffende Ressource werden im „Allow“-Header-Feld der Antwort übermittelt.

408

Request Timeout
Innerhalb der vom Server erlaubten Zeitspanne wurde keine vollständige Anfrage des Clients empfangen.

429

Too Many Requests
Der Client hat zu viele Anfragen in einem bestimmten Zeitraum gesendet.

500

Server Errors
Unerwarteter Serverfehler

3. Anwendungsfall Ein E-Rezept verbindlich einer Apotheke zuweisen

Als Versicherter möchte ich einer Apotheke alle Informationen zukommen lassen, damit diese mein E-Rezept beliefern kann.

fdv E-Rezept-App

HTTP-Request

curl -XPOST -H "Content-Type: application/fhir+json; charset=UTF-8"
-H "Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J"
--data
"{
  \"resourceType\": \"Communication\",
  \"meta\": {
    \"profile\": [
      \"https://gematik.de/fhir/StructureDefinition/erxCommunication\"
    ]
  },
  \"status\": \"unknown\",
  \"category\": [ {
    \"coding\": [ {
      \"system\": \"http://terminology.hl7.org/CodeSystem/communication-category\",
      \"code\": \"notification\"
    } ]
  } ],
  \"recipient\": [ {
    \"identifier\": {
      \"type\":{
          \"coding\": [ {
            \"system\":\"http://terminology.hl7.org/CodeSystem/v2-0203\",
            \"code\":\"BSNR\"
          } ]
        },
        \"system\":\"https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR\",
        \"value\":\"606358757\"
     }
  } ],
  \"payload\": [ {
    \"contentString\": \"Hallo, ich möchte gern das E-Rezept bei Ihnen einlösen. Bitte schicken Sie mir eine Bestell-Bestätigung.\"
  }, {
    \"reference\": \""Task/4711/$accept?ac=777bea0e13cc9c42ceec14aec3ddee2263325dc2c6c699db115f58fe423607ea\" (1)
  } ]
}"
https://prescriptionserver.telematik/Communication
  1. kann die Apotheke nach herunterladen alles einsehen → Kasse, aut_idem, usw.

fachdienst E-Rezept-Fachdienst

HTTP-Response

HTTP/1.1 201 Created
Content-Type: application/fhir+json;charset=utf-8
Location:
  https://prescriptionserver.telematik/Communication/12350
{
  "resourceType": "Communication",
  "id": "12350",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2020-03-13T18:01:10+00:00",
    "profile": [
      "https://gematik.de/fhir/StructureDefinition/erxCommunication"
    ]
  },
  "status": "unknown",
  "category": [ {
    "coding": [ {
      "system": "http://terminology.hl7.org/CodeSystem/communication-category",
      "code": "notification"
    } ]
  } ],
  "sent": "2020-03-13T18:01:10+00:00",
  "recipient": [ {
    "identifier": {
      "type":{
          "coding": [ {
            "system":"http://terminology.hl7.org/CodeSystem/v2-0203",
            "code":"BSNR"
          } ]
        },
        "system":"https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR",
        "value":"606358757"
     }
  } ],
  "sender": {
    "identifier": {
      "type":{
        "coding": [ {
          "system":"http://fhir.de/CodeSystem/identifier-type-de-basis",
          "code":"GKV"
        } ]
      },
      "system":"http://fhir.de/NamingSystem/gkv/kvid-10",
      "value":"X234567890"
    }
  },
  "payload": [ {
    "contentString": "Hallo, ich möchte gern das E-Rezept bei Ihnen einlösen. Bitte schicken Sie mir eine Bestell-Bestätigung."
  }, {
    "reference": ""Task/4711/$accept?ac=777bea0e13cc9c42ceec14aec3ddee2263325dc2c6c699db115f58fe423607ea"
  } ]
}

Der Aufruf erfolgt als http-POST-Operation. Der Server prüft die Nahricht auf Zulässigkeit und ergänzt Metainformationen wie den Sendezeitpunkt und die Angaben des Absenders aus dessen ID-Token.
Es obliegt der Apotheke, eine hilfreiche Bestätigung an den Versicherten zurückzusenden. Es kann ggfs. zusätzlich erforderlich sein, eventuelle Zuzahlungsmodalitäten, Lieferadresse usw. über einen separaten Kanal (Bestell-Bestätigungs-App) der Apotheke abzuwickeln.

Code

Type Success

201

Created
Die Anfrage wurde erfolgreich bearbeitet. Die angeforderte Ressource wurde vor dem Senden der Antwort erstellt. Das Location-Header-Feld enthält die Adresse der erstellten Ressource.

Code

Type Error

400

Bad Request
Die Anfrage-Nachricht war fehlerhaft aufgebaut.

401

Unauthorized
Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

403

Forbidden
Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist.

405

Method Not Allowed
Die Anfrage darf nur mit anderen HTTP-Methoden (zum Beispiel GET statt POST) gestellt werden. Gültige Methoden für die betreffende Ressource werden im „Allow“-Header-Feld der Antwort übermittelt.

408

Request Timeout
Innerhalb der vom Server erlaubten Zeitspanne wurde keine vollständige Anfrage des Clients empfangen.

429

Too Many Requests
Der Client hat zu viele Anfragen in einem bestimmten Zeitraum gesendet.

500

Server Errors
Unerwarteter Serverfehler

4. Anwendungsfall Auf neue Nachrichten im E-Rezept Fachdienst prüfen

Als Versicherter und als Apotheke möchte ich wissen, ob im Fachdienst "ungelesene" Nachrichten für mich vorhanden sind.

fdv E-Rezept-App

HTTP-Request
curl -XGET
  -H "Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J" (1)
  https://prescriptionserver.telematik/Communication?received=null (2)
  1. Mit dem ID Token im Authorization-Header weist sich der Zugreifende als Versicherter bzw. Apotheke aus, im Token ist seine Versichertennummer bzw. die Telematik-ID der Apotheke enthalten, nach welcher die Einträge gefiltert werden. Die Base64-Darstellung des Tokens ist stark gekürzt.

  2. In der Aufruf-Adresse können Suchparameter gemäß https://www.hl7.org/fhir/communication.html#search angegeben werden. Im konkreten Beispiel soll nach Nachrichten gesucht werden, in denen kein received-Datum (?received=null) zur Kennzeichnung des erstmaligen Nachrichtenabrufs enthalten ist. Weitere Suchparameter können das Abrufdatum (z.B received=gt2020-03-01, Abgerufen nach dem 01.03.2020) oder eine Sortierung nach dem Sendedatum (_sort=-sent, Absteigende Sortierung) sein. Mehrere Suchparameter werden über das &-Zeichen miteinander kombiniert.

fachdienst E-Rezept-Fachdienst

HTTP-Response
HTTP/1.1 200 OK
Content-Type: application/fhir+json;charset=utf-8

{
  "resourceType": "Bundle",
  "id": "79cc4c08-0e7b-4e52-acee-6ec7519ce67f",
  "meta": {
    "lastUpdated": "2020-04-07T14:16:55.965+00:00"
  },
  "type": "searchset",
  "total": 1,
  "link": [ {
    "relation": "self",
    "url": "https://prescriptionserver.telematik/Communication?received=null"
  } ],
  "entry": [ {
    "fullUrl": "https://prescriptionserver.telematik/Communication/12346",
    "resource": {
      "resourceType": "Communication",
      "id": "12346",
      "meta": {
        "versionId": "1",
        "lastUpdated": "2020-03-12T18:15:10+00:00",
        "profile": [
          "https://gematik.de/fhir/StructureDefinition/erxCommunication"
        ]
      },
      "status": "unknown",
      "category": [ {
        "coding": [ {
          "system": "http://terminology.hl7.org/CodeSystem/communication-category",
          "code": "notification"
        } ]
      } ],
      "sent": "2020-03-12T18:15:10+00:00", (1)
      "recipient": [ {
        "identifier": {
          "type":{
            "coding": [ {
              "system":"http://fhir.de/CodeSystem/identifier-type-de-basis",
              "code":"GKV"
            } ]
          },
          "system":"http://fhir.de/NamingSystem/gkv/kvid-10",
          "value":"X234567890" (2)
        }
      } ],
      "sender": {
        "identifier": {
          "type":{
            "coding": [ {
              "system":"http://terminology.hl7.org/CodeSystem/v2-0203",
              "code":"BSNR"
            } ]
          },
          "system":"https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR",
          "value":"606358757"
        }
      },
      "payload": [ {
        "contentString": "Guten Tag, das Medikament haben wir auf Lager. Kommen Sie zur Abholung gern vorbei."
      } ]
    }
  } ]
}
  1. Die abgerufene Nachricht enthält kein Element received, da die Nahricht erstmalig vom E-Rezept-Fachdienst abgerufen wurde. Dieses Attribut received wurde beim Abruf durch den Fachdienst auf dessen aktuelle Systemzeit aktualisiert, sodass ein erneuter Aufruf mit dem Filter ?received=null kein ERgebnis liefert, da keine neuen bzw. ungelesenen Nachrichten vorhanden sind.

  2. Hier ist die Empfänger-ID (in diesem Fall Versicherten-ID) des Adressaten angegeben, über die die Nachrichten beim Abruf gemäß der Nutzerkennung im übergenenen ID_TOKEN gefiltert werden.

Der Aufruf erfolgt als http-GET-Operation auf die Ressource /Communication. Im Aufruf muss das während der Authentisierung erhaltene ID_TOKEN im http-Request-Header Authorization für Filterung der an den Nutzer adressierten Nachichten übergeben werden.

Code

Type Success

200

OK
Die Anfrage wurde erfolgreich bearbeitet. Die Response enthält die angefragten Daten.

Code

Type Error

400

Bad Request
Wird zurückgegeben wenn mehr als 100 Einträge gefunden wurden. Zur genaueren Suche müssen die Filter Parameter vom Client genauer belegt werden.

401

Unauthorized
Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

403

Forbidden
Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist.

404

Not found
Es wurde kein passender Verzeichniseintrag gefunden.

500

Server Errors
Unerwarteter Serverfehler

5. Anwendungsfall Alle Nachrichten vom E-Rezept Fachdienst abrufen

Als Apotheke möchten wir alle Nachrichten des Monats April 2020 abrufen, um uns einen Überblick der bisherigen E-Rezept-Anfragen zu beschaffen.

clientsystem E-Rezept-App

HTTP-Request
curl -XGET
  -H "Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J" (1)
  https://prescriptionserver.telematik/Communication?sent=gt2020-04-01&_sort=sent (2)
  1. Mit dem ID Token im Authorization-Header weist sich der Zugreifende als Versicherter bzw. Apotheke aus, im Token ist seine Versichertennummer bzw. die Telematik-ID der Apotheke enthalten, nach welcher die Einträge gefiltert werden. Die Base64-Darstellung des Tokens ist stark gekürzt.

  2. In der Aufruf-Adresse können Suchparameter gemäß https://www.hl7.org/fhir/communication.html#search angegeben werden. Im konkreten Beispiel soll nach Nachrichten gesucht werden, deren Sende-Datum zwischen dem 01. und 30. April 2020 liegt (?sent=gt2020-04-01&sent=lt2020-04-30).

fachdienst E-Rezept-Fachdienst

HTTP-Response
HTTP/1.1 200 OK
Content-Type: application/fhir+xml;charset=utf-8
<Bundle xmlns="http://hl7.org/fhir">
   <id value="48829c84-7ad7-4834-8362-2c2c109379b1"/>
   <meta>
      <lastUpdated value="2020-04-08T07:11:18.245+00:00"/>
   </meta>
   <type value="searchset"/>
   <total value="391"/> (1)
   <link>
      <relation value="self"/>
      <url value="https://prescriptionserver.telematik/Communication?_format=html%2Fxml&amp;_sort=sent&amp;sent=gt2014-03-01"/>
   </link>
   <link> (2)
      <relation value="next"/>
      <url value="https://prescriptionserver.telematik?_getpages=48829c84-7ad7-4834-8362-2c2c109379b1&amp;_getpagesoffset=50&amp;_count=50&amp;_bundletype=searchset"/>
   </link>
   <entry>
<fullUrl value="https://prescriptionserver.telematik/Communication/74671"/>
      <resource>
         <Communication xmlns="http://hl7.org/fhir">
            <id value="74671"/>
            <meta>
               <versionId value="1"/>
               <lastUpdated value="2019-11-21T12:58:59.782+00:00"/>
               <source value="#H8gavJ2v535x6V3f"/>
               <profile value="https://gematik.de/fhir/StructureDefinition/erxCommunication"/>
            </meta>
            <status value="unknown"/>
            <category>
               <coding>
                  <system value="http://terminology.hl7.org/CodeSystem/communication-category"/>
                  <code value="notification"/>
               </coding>
            </category>
            <recipient>
               <identifier>
                  <system value="https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR"/>
                  <value value="606358750"/>
               </identifier>
            </recipient>
            <sender>
               <identifier>
                  <system value="http://fhir.de/NamingSystem/gkv/kvid-10"/>
                  <value value="X234567890"/>
               </identifier>
            </sender>
            <payload>
               <contentString value="Hallo, ich wollte gern fragen, ob das Medikament bei Ihnen vorrätig ist."/>
            </payload>
            <payload id="5fe6e06c-8725-46d5-aecd-e65e041ca3de">
               <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_KATEGORIE">
                  <valueCoding>
                     <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_MEDIKAMENT_KATEGORIE"/>
                     <code value="00"/>
                  </valueCoding>
               </extension>
               <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_MEDIKAMENT_IMPFSTOFF">
                  <valueBoolean value="false"/>
               </extension>
               <extension url="http://fhir.de/StructureDefinition/normgroesse">
                  <valueCode value="N1"/>
               </extension>
            </payload>
         </Communication>
      </resource>
      <search>
         <mode value="match"/>
      </search>
   </entry>
   (3)
</Bundle>
  1. Die Suche liefert insgesamt 391 Ergebnis-Einträge

  2. Der E-Rezept-Fachdienst setzt hier ein Paging ein, mit dem die ersten 50 Einträge des gesamten Suchergebnisses zurückgegeben werden. Die nächsten 50 Ergebnis-Einträge werden über die nachfolgende URL next abgerufen.

  3. Das Beispiel endet der Übersichtlichkeit haber an dieser Stelle, weitere Nachrichten-Einträge folgen als entry-Elemente

Der Aufruf erfolgt als http-GET-Operation auf die Ressource /Communication. Im Aufruf muss das während der Authentisierung erhaltene ID_TOKEN im http-Request-Header Authorization für Filterung der an den Nutzer adressierten Nachichten übergeben werden.

Code

Type Success

200

OK
Die Anfrage wurde erfolgreich bearbeitet. Die Response enthält die angefragten Daten.

Code

Type Error

400

Bad Request
Wird zurückgegeben wenn mehr als 100 Einträge gefunden wurden. Zur genaueren Suche müssen die Filter Parameter vom Client genauer belegt werden.

401

Unauthorized
Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt.

403

Forbidden
Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt, bspw. weil der authentifizierte Benutzer nicht berechtigt ist.

404

Not found
Es wurde kein passender Verzeichniseintrag gefunden.

500

Server Errors
Unerwarteter Serverfehler