Skip to content

Latest commit

 

History

History
524 lines (454 loc) · 28.8 KB

erp_abrufen_egk.adoc

File metadata and controls

524 lines (454 loc) · 28.8 KB

E-Rezept API-Dokumentation für Apotheken (Einlösung mit Gesundheitskarte) gematik logo

Anwendungsfall Liste einlösbarer E-Rezepte abrufen mit Stecken der Gesundheitskarte

Mit diesem Anwendungsfall wird die Apotheke durch Übergabe und Stecken der eGK berechtigt, die Liste einlösbarer E-Rezepte vom E-Rezept-Fachdienst abzurufen. Zunächst muss ein VSD-Abruf über den Konnektor erfolgen. In der Response gibt der Konnektor die von der eGK gelesenen Versichertenstammdaten VSD und den Prüfungsnachweis zurück.

NEU: Zur Sicherstellung, dass die physische eGK im Zugriff der Apotheke ist, muss das AVS die KVNR ermitteln, sowie den hcv (Hash Check Value) (siehe A_27352) erzeugen. Beide Werte werden als URL Parameter an den E-Rezept-Fachdienst für den Abruf übergeben.

Die Apotheke übermittelt den Prüfungsnachweis, hcv und die KVNR des Versicherten (aus UC_PersoenlicheVersichertendatenXML.Versicherter.Versicherten_ID) URL-codiert im Aufruf GET /Task. Der E-Rezept-Fachdienst verfifiziert und prüft den PNW, Übereinstimmung der KVNR und die Validität des hcv. Nach erfolgreicher Prüfung extrahiert der E-Rezept-Fachdienst die KVNR aus der PZ und filtert in einer Suche entsprechend.

Im Ergebnis stellt der E-Rezept-Fachdienst dem AVS eine Liste der KVNR zugeordneten, einlösbaren E-Rezepte als Bundle von Task-Objekten bereit, die die notwendigen Einlöseinformationen TaskID und AccessCode enthalten. Der Task.status ändert sich mit dem Abruf der Liste nicht. Dieser erfolgt mit dem anschließenden Abruf des Verordnungsdatensatzes mittels der Task/<TaskID>/$accept-Operation gemäß E-Rezept abrufen

Mit dem Einzelabruf je Rezept erhält die Apotheke Einsicht in die eigentlichen Verordnungen, um zu klären, welche(s) davon in der Apotheke eingelöst werden soll(en). Dieses Vorgehen ist analog zum Einscannen des Sammel-Barcodes auf dem E-Rezept-Patientenausdruck.

puml egk abrufen

Versichertenstammdaten von eGK lesen

Vor dem Zugriff auf den E-Rezept-Fachdienst muss ein Prüfungsnachweis mittels VSD-Online-Prüfung durch den Konnektor erstellt werden.

Vorbedingungen

Um den VSD-Abruf am Konnektor tätigen zu können, muss die eGK bestimmt werden, von welcher die Daten gelesen werden sollen. Das ist im Kontext paralleler Vorgänge an mehreren Handverkaufstischen relevant.

URI

Method

POST

Requester

AVS E30615

Responder

Konnektor

HTTP Header

Content-Type: text/xml; charset=UTF-8
SOAPAction: "http://ws.gematik.de/conn/EventService/v7.2#GetCards"

Payload

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
   <soap-env:Body>
      <EVT:GetCards xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:EVT="http://ws.gematik.de/conn/EventService/v7.2" xmlns:CONN="http://ws.gematik.de/conn/ConnectorCommon/v5.0" xmlns:CCTX="http://ws.gematik.de/conn/ConnectorContext/v2.0" xmlns:CARDCMN="http://ws.gematik.de/conn/CardServiceCommon/v2.0" mandant-wide="false" xsi:schemaLocation="http://ws.gematik.de/conn/EventService/v7.2 EventService.xsd">
	      <CCTX:Context>
	         <CONN:MandantId>Mandant1</CONN:MandantId>
		      <CONN:ClientSystemId>CS1</CONN:ClientSystemId>
		      <CONN:WorkplaceId>AP1</CONN:WorkplaceId>
	      </CCTX:Context>
	      <CARDCMN:CtId>Terminal1</CARDCMN:CtId>
	      <CARDCMN:CardType>EGK</CARDCMN:CardType>
      </EVT:GetCards>
   </soap-env:Body>
</soap-env:Envelope>
ℹ️
<CARDCMN:CtId>Terminal1</CARDCMN:CtId> hier wird das Kartenterminal am jeweiligen Handverkaufstisch benannt, wie es in der Mandanten- und Arbeitsplatzkonfiguration im Konnektor und AVS konfiguriert ist.

Response

<EVT:GetCardsResponse xmlns:GERROR="http://ws.gematik.de/tel/error/v2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:CARD="http://ws.gematik.de/conn/CardService/v8.1" xmlns:EVT="http://ws.gematik.de/conn/EventService/v7.2" xmlns:CONN="http://ws.gematik.de/conn/ConnectorCommon/v5.0" xmlns:CARDCMN="http://ws.gematik.de/conn/CardServiceCommon/v2.0" xsi:schemaLocation="http://ws.gematik.de/conn/EventService/v7.2 EventService.xsd">
	<CONN:Status>
		<CONN:Result>OK</CONN:Result>
	</CONN:Status>
	<CARD:Cards>
		<CARD:Card>
			<CONN:CardHandle>a5567061-f3b0-436b-b702-fbb5026aa168</CONN:CardHandle>
			<CARDCMN:CardType>EGK</CARDCMN:CardType>
			<CARD:CardVersion>
				<CARD:COSVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:COSVersion>
				<CARD:ObjectSystemVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:ObjectSystemVersion>
				<CARD:CardPTPersVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:CardPTPersVersion>
				<CARD:DataStructureVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:DataStructureVersion>
				<CARD:LoggingVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:LoggingVersion>
				<CARD:ATRVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:ATRVersion>
				<CARD:GDOVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:GDOVersion>
				<CARD:KeyInfoVersion>
					<CARD:Major>65535</CARD:Major>
					<CARD:Minor>65535</CARD:Minor>
					<CARD:Revision>65535</CARD:Revision>
				</CARD:KeyInfoVersion>
			</CARD:CardVersion>
			<CARDCMN:Iccsn>00000000000000000000</CARDCMN:Iccsn>
			<CARDCMN:CtId>Terminal1</CARDCMN:CtId>
			<CARDCMN:SlotId>2</CARDCMN:SlotId>
			<CARD:InsertTime>2022-08-17T09:30:47Z</CARD:InsertTime>
			<CARD:CardHolderName>Patientin Muster</CARD:CardHolderName>
			<CARD:Kvnr>K010124021</CARD:Kvnr>
			<CARD:CertificateExpirationDate>2024-08-13</CARD:CertificateExpirationDate>
		</CARD:Card>
	</CARD:Cards>
</EVT:GetCardsResponse>
ℹ️
Mit dem gemeldeten <CONN:CardHandle>a5567061-f3b0-436b-b702-fbb5026aa168</CONN:CardHandle> wird die eGK zum Auslesen der Versichertenstammdaten adressiert.
ℹ️
Die Werte 65535 und 00000000000000000000 für die ICCSN sind Dummy-Werte und im Anwendungsfall nicht relevant.

VSD-Abruf

Für den VSD-Abruf wird die ReadVSD-Operation des Konnektors mittels folgendem Aufruf gestartet.

URI

Method

POST

Requester

AVS E30615

Responder

Konnektor

HTTP Header

Content-Type: text/xml; charset=UTF-8
SOAPAction: "http://ws.gematik.de/conn/vsds/VSDService/v6.0#ReadVSD"

Payload

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns6:ReadVSD xmlns:ns2="http://ws.gematik.de/tel/error/v2.0"
            xmlns:ns3="http://ws.gematik.de/conn/ConnectorCommon/v5.0"
            xmlns:ns4="urn:oasis:names:tc:dss:1.0:core:schema"
            xmlns:ns5="http://www.w3.org/2000/09/xmldsig#"
            xmlns:ns6="http://ws.gematik.de/conn/vsds/VSDService/v5.2"
            xmlns:ns7="http://ws.gematik.de/conn/ConnectorContext/v2.0"
            xmlns:ns8="urn:oasis:names:tc:SAML:1.0:assertion">
            <ns6:EhcHandle>a5567061-f3b0-436b-b702-fbb5026aa168</ns6:EhcHandle>
            <ns6:HpcHandle>3ddfbd41-4737-4bfc-9e26-eb5580ec2f4d</ns6:HpcHandle>
            <ns6:PerformOnlineCheck>true</ns6:PerformOnlineCheck>
            <ns6:ReadOnlineReceipt>true</ns6:ReadOnlineReceipt>
            <ns7:Context>
                <ns3:MandantId>Mandant1</ns3:MandantId>
                <ns3:ClientSystemId>CS1</ns3:ClientSystemId>
                <ns3:WorkplaceId>AP1</ns3:WorkplaceId>
                <ns3:UserId>user1</ns3:UserId>
            </ns7:Context>
        </ns6:ReadVSD>
    </S:Body>
</S:Envelope>
ℹ️
Das <ns6:EhcHandle> benennt die Gesundheitskarte, von welcher die VSD gelesen werden sollen.
ℹ️
In <ns6:PerformOnlineCheck>true</ns6:PerformOnlineCheck> und <ns6:ReadOnlineReceipt>true</ns6:ReadOnlineReceipt> wird festgelegt, dass zwingend eine Online-Prüfung durchgeführt und im Anschluss ein Prüfungsnachweis zurückgegeben werden muss.

Response (Secunet)

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header />
  <SOAP-ENV:Body>
    <ns2:ReadVSDResponse xmlns:ns2="http://ws.gematik.de/conn/vsds/VSDService/v5.2">
      <ns2:PersoenlicheVersichertendaten>
        H4sIAAAAAAAA/41S0U7rMAz9lSrvq9vCRIfcIMQGTGIMMe7gbQqtWSva5CpJx2Vfj7vBLgMeeEniY+f4OCd48q+pgxVZVxmdiTiMREA6N0Wll5kYz6a9NO0PenFfBM4rXajaaMrEKzlxIvHP2eKGrxrSdZWXNO9oeLeeuJKXh8lVcDacLOaj29l4ep2Jfph0Hbindpkovf97DPDiwiU1ylfPYUHwpGDliqZbYMX1QuInXrsX6cV4KM/TKI6iw+ToCOFrDjfytMQLemytd6yqbWQ8SOMoPYgQ9mCcG6tVQ/KOezPXe4TXKi83p4utSoQdwrwuL2vKSy8nHd0u6sic8usXY71cGb3h2wF4V3mq5dCGCNsjzrxVzpE+LSzxztKN8zVVfq3KWibJYX+AsIfhlJkuVcMjLBG6AK/YIon3ptSOi2rFPpBlN0kOEX6CEbZX3rvLc1tRYfkJe6NHfsUe4yzxI4uXqnW6bRr2IWY5n0I81Ty7rZ745ddtN6iMkzAYebUkhO/JHen/geHDLNg3HH7xzeQbugD9a8kCAAA=</ns2:PersoenlicheVersichertendaten>
      <ns2:AllgemeineVersicherungsdaten>
        H4sIAAAAAAAA/7VT30/CMBD+V5a+SzfMApquBsEYgoARReMLqezYFsbNtAWVv94rotnI/PHiS5u7r993392l4ux1lXsb0CYrMGJBw2ce4LyIM0wi1p+Mj9rt8OQoCJlnrMJY5QVCxN7AsDMp7rqzTp4nsIIMYepE5inoNSYmVhbwYXjldXvD2fTiZtIfjyIWNpquAJVEE7HU2udTzl9MgxSUzZaNGPhC8Y2JV+7gG3rPpPgStqBLkStj5unabqU4hyRDlE0/OPYDPxB8nxCDwpARqxUkjlwJl4BIIpIIYSsMgxPBa/EqK1eAMWgaEcjeAaOMiZFagbyFeYrZErQ30ApJcamMAcF3oOg8aYfvSH922gp9/z+cDj5d8R9s8cO4dh2Pa6PsNsNFYSrB5WBaWScqbWVQEtmnypzZ3g3pz3b8DwfEsMraXdcd0FubOwEnVOjEZWlGtXnxqFJU3zC+xcSEqtEXIRD0OR2EO0Jd2nWoMKdFW7iCzDiTgO51PfA51HJL9+Nr6TcFdzfZ+mEc/HC+vDJ9Xv09/PcvK98BTCKoUhQEAAA=</ns2:AllgemeineVersicherungsdaten>
      <ns2:GeschuetzteVersichertendaten>
        H4sIAAAAAAAA/4VPXWvCQBD8K+HezWohoGXvpGgpQq3QUBFf5EjWXPByKblN2ubX90ILtSj4Mvs1zMzi/LOyUUeNL2snxSQei4hcVuelK6RYpZvRdJrMRpNERJ61y7WtHUnxRV7MFb4tDk/kM9MS90zbQSUz1DAFYoDd+jlaLNeH7eNrutq8SJHEd4NBsHReCsP8fg/w4eOCKs3lKc4Jjho6n1cDQBf4QuG+7bWxrSt8iMCtV5j+1DHCb4dwhUSWTlx24TluNBWk8IGanm3IqGYIfwPutXH6/PZ/EWwuteD28+obUb40hF4BAAA=</ns2:GeschuetzteVersichertendaten>
      <ns2:VSD_Status>
        <ns2:Status>0</ns2:Status>
        <ns2:Timestamp>2025-01-12T06:36:33.000Z</ns2:Timestamp>
        <ns2:Version>5.2.0</ns2:Version>
      </ns2:VSD_Status>
      <ns2:Pruefungsnachweis>
        H4sIAAAAAAAA/w2M3QqCMBhAX0V8AL+5qUHMgeQIqc1fjLoJSzOtiaBp+fR5cy4Oh0Mjqe18cc15kgahdHXTQAbSta96d4OrP8ex3wLMg1FXqhibl1FW8ChgGkoFfTfDtPY6o1nKMMI2Mk2MHOIQi8KqKGcmBc5odGFJW88i82bpB0QunIjljGUrSJglp9w/NJ+Nt4/DoRPRvbgFNVG2Wn6hdYyjQPqYuxTWyQrJ/gsexlKzAAAA</ns2:Pruefungsnachweis>
    </ns2:ReadVSDResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Weitere Beispiele von ReadVSD Responses:

🔥
Liefert die <ns6:ReadVSDResponse> <ns6:VSD_Status> einen <ns6:Status>1</ns6:Status> (ungleich 0), konnte der Stammdatenabgleich nicht erfolgreich beendet werden. Bei dieser Rückmeldung kann durch einen erneuten Aufruf von ReadVSD versucht werden, das Problem zu beheben. Falls es dann nicht klappt, muss der Anwendungsfall abgebrochen werden
ℹ️
<ns6:PersoenlicheVersichertendaten> enthalten die KVNR des Versicherten im Attribut Versicherten_ID und den Straßennamen im Attribut Strasse siehe decodiertes Beispiel
<ns6:AllgemeineVersicherungsdaten> enhält den Versicherungsbeginn im Attribut Beginn siehe decodiertes Beispiel
<ns6:Pruefungsnachweis> enthält den Status der Onlineprüfung im Attribut <E> siehe decodiertes Beispiel
ℹ️
Der <ns6:Pruefungsnachweis> ist wie folgt aufgebaut: Base64(gzip(xml_PN)) und muss als Ganzes - wie ihn die ReadVSD-Operation zurückliefert - in URL-Safe-Codierung an den Fachdienst übergeben werden.

Code

Type Success

200

OK
Die Anfrage wurde erfolgreich bearbeitet.

Code

Type Error

400

Bad Request
Die Anfrage-Nachricht war fehlerhaft aufgebaut.

Fehlerbehandlung

Ist die Gesundheitskarte gesperrt, bspw. wegen Kartenwechsel oder -verlust, liefert die Operation ReadVSD keine ReadVSDResponse sondern einen SOAP:Fault. In diesem Fall muss der Anwendungsfall abgebrochen werden.

Bei folgenden Fehlercodes liegt eine gesperrte eGK vor, möglicherweise ist der Patient bereits im Besitz einer neuen eGK.

  • Fehlercode 106

  • Fehlercode 107

  • Fehlercode 114

Liste einlösbarer E-Rezepte vom Fachdienst abrufen

Mit der folgenden Fachdienst-Operation ruft das AVS alle Tasks zu einlösbaren E-Rezepten vom E-Rezept-Fachdienst ab. Die Parameter kvnr, pnw und hcv sind verpflichtend und URL-codiert zu übergeben.

Beispiel zum Erzeugen des hcv (Klicken zum Ausklappen)

Folgende Bildungsvorschrift gilt für den hcv:

  1. Ermitteln des Versicherungsbeginns (VB) aus den Versicherungsdaten der eGK (UC_AllgemeineVersicherungsdatenXML.Versicherter.Versicherungsschutz.Beginn)1. Alle Leerzeichen MÜSSEN entfernt werden.

  2. Ermitteln der StrassenAdresse aus den Versicherungsdaten der eGK (UC_PersoenlicheVersichertendatenXML.Versicherter.Person.StrassenAdresse.Strasse)1. Falls das Element nicht vorhanden ist würd ein Leerstring verwendet (""). Führende und endende Leerzeichen MÜSSEN entfernt werden.

  3. Bildung des SHA256 aus der Konkatenation (ohne Leerzeichen) von VB und StrassenAdresse (SHA256(VB + StrassenAdresse))

  4. Extrahieren der ersten 5 Bytes (40 Bit)

  5. Setzen des MSB (Most Significant Bit) im ersten Byte auf 0.

Das Ergebnis ist der hcv.

Python Code zum Erzeugen eines hcv:

VB='2018-01-11T07:00:00'
SAS='Beispielstrasse'

def gen_H_40_0(VB: str, SAS: str)->bytes:
    # Hinweis für Nicht-Python-Entwickler:
    # encode() transformiert einen string in eine Bytefolge
    H = hashlib.sha256(VB.encode() + SAS.encode()).digest(); assert len(H) == 32
    H_40 = H[0:5]; assert len(H_40) == 5 # 5 Bytes = 40 Bit
    H_40_0 = (H_40[0] & 127).to_bytes(1,'big', signed=False) + H_40[1:]

    return H_40_0

hcv = gen_H_40_0(VB, SAS)

hcv aus diesem Beispiel ist 10be65f365

Hinweis zum Fehlerfall Prüfungsnachweis 3 (PN3)

Bei Störingen in der TI kann es dazu kommen, dass der Prüfungsnachweis den Fehlercode "3" enthält. In Ausnahmefällen kann der E-Rezept-Fachdienst so konfiguriert werden, dass er Anfragen mit diesem Fehlercode akzeptiert.

Ablaufdiagramm für das PN3 Feature im E-Rezept-Fachdienst (Klicken zum Ausklappen)

Im Folgenden ist das Ablaufdiagramm für das PN3 Feature im E-Rezept-Fachdienst dargestellt.

puml pn3 decision tree

Request

URI

Method

GET

Requester

AVS E30615

Responder

eRp—​FD blue

HTTP Header

Authorization: Bearer eyJraWQ.ewogImL2pA10Qql22ddtutrvx4FsDlz.rHQjEmB1lLmpqn9J
ℹ️
Im http-Header des äußeren http-Requests an die VAU (POST /VAU) sind die Header X-erp-user: l und X-erp-resource: Task zu setzen.

Response

<Bundle xmlns="http://hl7.org/fhir">
    <id value="erp-abrufen-egk-05-Response-Task"/>
    <type value="searchset"/>
    <timestamp value="2025-01-15T15:29:00.434+00:00"/>
    <total value="2"/>
    <entry>
        <fullUrl value="https://erp-dev.zentral.erp.splitdns.ti-dienste.de/Task/160.000.000.000.000.01"/>
        <resource>
            <Task>
                <id value="160.000.000.000.000.01"/>
                <meta>
                    <profile value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_Task|1.4"/>
                </meta>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_PrescriptionType">
                    <valueCoding>
                        <system value="https://gematik.de/fhir/erp/CodeSystem/GEM_ERP_CS_FlowType"/>
                        <code value="160"/>
                        <display value="Muster 16 (Apothekenpflichtige Arzneimittel)"/>
                    </valueCoding>
                </extension>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_AcceptDate">
                    <valueDate value="2025-02-12"/>
                </extension>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_ExpiryDate">
                    <valueDate value="2025-04-15"/>
                </extension>
                <identifier>
                    <use value="official"/>
                    <system value="https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId"/>
                    <value value="160.000.000.000.000.01"/>
                </identifier>
                <identifier>
                    <use value="official"/>
                    <system value="https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_AccessCode"/>
                    <value value="777bea0e13cc9c42ceec14aec3ddee2263325dc2c6c699db115f58fe423607ea"/>
                </identifier>
                <status value="ready"/>
                <intent value="order"/>
                <for>
                    <identifier>
                        <system value="http://fhir.de/sid/gkv/kvid-10"/>
                        <value value="X123456789"/>
                    </identifier>
                </for>
                <authoredOn value="2025-01-15T15:29:00+00:00"/>
                <lastModified value="2025-01-15T15:29:00.434+00:00"/>
                <performerType>
                    <coding>
                        <system value="https://gematik.de/fhir/erp/CodeSystem/GEM_ERP_CS_OrganizationType"/>
                        <code value="urn:oid:1.2.276.0.76.4.54"/>
                        <display value="Öffentliche Apotheke"/>
                    </coding>
                    <text value="Öffentliche Apotheke"/>
                </performerType>
            </Task>
        </resource>
        <search>
            <mode value="match"/>
        </search>
    </entry>
    <entry>
        <fullUrl value="https://erp-dev.zentral.erp.splitdns.ti-dienste.de/Task/160.000.000.000.000.02"/>
        <resource>
            <Task>
                <id value="160.000.000.000.000.02"/>
                <meta>
                    <profile value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_Task|1.4"/>
                </meta>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_PrescriptionType">
                    <valueCoding>
                        <system value="https://gematik.de/fhir/erp/CodeSystem/GEM_ERP_CS_FlowType"/>
                        <code value="160"/>
                        <display value="Muster 16 (Apothekenpflichtige Arzneimittel)"/>
                    </valueCoding>
                </extension>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_AcceptDate">
                    <valueDate value="2025-02-12"/>
                </extension>
                <extension url="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_EX_ExpiryDate">
                    <valueDate value="2025-04-15"/>
                </extension>
                <identifier>
                    <use value="official"/>
                    <system value="https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId"/>
                    <value value="160.000.000.000.000.02"/>
                </identifier>
                <identifier>
                    <use value="official"/>
                    <system value="https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_AccessCode"/>
                    <value value="777bea0e13cc9c42ceec14aec3ddee2263325dc2c6c699db115f58fe423607ea"/>
                </identifier>
                <status value="ready"/>
                <intent value="order"/>
                <for>
                    <identifier>
                        <system value="http://fhir.de/sid/gkv/kvid-10"/>
                        <value value="X123456789"/>
                    </identifier>
                </for>
                <authoredOn value="2025-01-15T15:29:00+00:00"/>
                <lastModified value="2025-01-15T15:29:00.434+00:00"/>
                <performerType>
                    <coding>
                        <system value="https://gematik.de/fhir/erp/CodeSystem/GEM_ERP_CS_OrganizationType"/>
                        <code value="urn:oid:1.2.276.0.76.4.54"/>
                        <display value="Öffentliche Apotheke"/>
                    </coding>
                    <text value="Öffentliche Apotheke"/>
                </performerType>
            </Task>
        </resource>
        <search>
            <mode value="match"/>
        </search>
    </entry>
</Bundle>
ℹ️
Alle gelieferten Tasks haben den Status <status value="ready" /> und können im Folgenden durch die Apotheke einzeln abgerufen und beliefert werden.
ℹ️
Eine Sortierung der Ergebnisse der Liste durch den Fachdienst erfolgt nicht. Ab eine Ergebnismenge von 50 Einträge erfolgt ein paging.
ℹ️
Je Rezept müssen die Task-ID <id value="160.000.036.967.704.52" /> und der AccessCode
<value value="eb6002c60dffdfb742002bf44f9f72326de3dddfe2271ab64a21a6cb0f168bbf" /> ausgelesen und für den Folgeaufruf der POST /Task/160.000.036.967.704.52/$accept?ac=eb6002c60dffdfb742002bf44f9f72326de3dddfe2271ab64a21a6cb0f168bbf-Operation zusammengesetzt werden, siehe E-Rezept abrufen.

Code

Type Success

200

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

202

Accepted
Die Anfrage wurde erfolgreich angenommen.

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.

404

Not found
Die adressierte Ressource wurde nicht gefunden, die übergebene ID ist ungültig.

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.

409

Conflict
Die Anfrage wurde unter falschen Annahmen gestellt. Das E-Rezept befindet sich bereits in Belieferung

410

Gone
Die angeforderte Ressource wird nicht länger bereitgestellt und wurde dauerhaft entfernt.

429

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

454

+ Die Anfrage wird abgebrochen, da die Voraussetzungen zur Erfüllung nicht gegeben sind. Der E-Rezept-Fachdienst akzeptiert zu diesem Zeitpunkt keine Anfragen mit einem Prüfungsnachweis, der das Ergebnis "3" enthält.

455

+ Die Anfrage wird abgebrochen, da die kvnr als URL-Parameter nicht angegeben ist.

456

+ KVNR im URL-Parameter stimmt nicht mit der KVNR in der Prüfziffer überein.

457

+ Der URL-Parameter "hcv" wurde nicht übertragen. Der E-Rezept-Fachdienst enforced die Angabe.

458

+ [small]#hcv im URL-Parameter stimmt nicht mit dem hcv in der Prüfziffer überein. #

500

Server Errors
Unerwarteter Serverfehler

Im OperationOutcome übermittelte Fehlermeldungen:

Anwesenheitsnachweis konnte nicht erfolgreich durchgeführt werden (Prüfziffer fehlt im VSDM Prüfungsnachweis).

  • Hierbei kann es sich um ein technisches Problem bei der Erreichbarkeit von Diensten im zentralen Netz der TI handeln.

  • Eine Fehlerbehebung kann durch erneutes Ausführen der Operation versucht werden.

Anwesenheitsnachweis konnte nicht erfolgreich durchgeführt werden (Fehler bei Prüfung der HMAC-Sicherung).

  • Der Versicherte muss eine alternative Möglichkeit zum Einlösen (E-Rezept-App oder Patientenausdruck) nutzen.

  • Bei der Fehlermeldung an den DVO ist die Krankenkasse des betroffenen Versicherten mit anzugeben, um die Analyse durch die Anbieter zu unterstützen.

Anwesenheitsnachweis konnte nicht erfolgreich durchgeführt werden (Zeitliche Gültigkeit des Anwesenheitsnachweis überschritten).

  • Der Aufruf der Operation ReadVSD am Konnektor ist zu lange her.

  • Der Aufruf ist erneut durchzuführen, um einen aktuellen VSDM Prüfungsnachweis zu erhalten.

ℹ️
Die allgemeinen http-Statuscodes finden sich in der Übersicht E-Rezept-Fachdienst-Statuscodes