R0: Abfrage des Rechnungsempfängers und dessen Einwilligung zum Rechnungsversand

Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anforderung AF_10132 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 14: Use Case Abfrage des Rechnungsempfängers und dessen Einwilligung zum Rechnungsversand" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.

Abfrage des Rechnungsempfängers (Behandelter ist Rechnungsempfänger)

HTTP-Methode GET
Endpunkt /Patient
Suchparameter identifier Kardinalität: 1..1
Type: Token
Hinweis: Hierbei handelt es sich immer um eine KVNR, das System http://fhir.de/sid/gkv/kvid-10 MUSS durch den FD ergänzt werden, falls der Client dies nicht mitliefert.
Suchparameter birthdate Kardinalität: 1..1
Type: date
User-Kontext Telematik-ID Kardinalität: 1..1
Hinweis: Die Telematik-ID ist aus dem Claim idNummer des mitzusendenen Access-Token zu extrahieren.
API-Zustand HTTP-Status-Code
Erfolgsfall 200 - OK
Weitere Parameter in HTTP-Anfrage enthalten 400 - Bad Request
Syntax für FHIR-Suchanfrage ist nicht korrekt oder Kardinalitäten werden nicht eingehalten 400 - Bad Request
KVNR ist syntaktisch nicht korrekt 400 - Bad Request
Kein valides Access-Token wird mitgesendet 401 - Unauthorized
Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen 403 - Forbidden
Rechnungsempfänger hat dem Rechnungsversand durch diesen Rechnungsersteller widersprochen 404 - Not Found. In diesem Fall: OperationOutcome mit Hinweis, dass Einwilligung nicht vorliegt oder Benutzer nicht vorhanden ist.
Mehr als ein Postfach unter Angabe der Suchparameter gefunden. 404 - Not Found. Dies stellt einen internen Fehler bei der Verwaltung der Postfächer dar.
Rechnungsempfänger verfügt über kein Konto 404 - Not Found. In diesem Fall: OperationOutcome mit Hinweis, dass Einwilligung nicht vorliegt oder Benutzer nicht vorhanden ist
Plausibilisierung zwischen Geburtsdatum und KVNR schlägt fehl 404 - Not Found
Andere HTTP-Methode wird verwendet 405 - Method Not Allowed

Beispiele

HTTP GET [fachdienst-endpunkt]/Patient?identifier=A000000000&birthdate=1970-01-01

Antwort des Endpunktes im Erfolgsfall:

HTTP 200 OK

mit Body:

Bundle
<Bundle xmlns="http://hl7.org/fhir">
    <id value="PatientenBundle" />
    <type value="searchset" />
    <total value="1" />
    <entry>
        <resource>
            <Patient>
                <id value="PatientVater" />
                <identifier>
                    <type>
                        <coding>
                            <system value="http://fhir.de/CodeSystem/identifier-type-de-basis" />
                            <code value="KVZ10" />
                        </coding>
                    </type>
                    <system value="http://fhir.de/sid/gkv/kvid-10" />
                    <value value="A000000000" />
                </identifier>
                <active value="true" />
                <name>
                    <family value="Mustermann" />
                    <given value="Manfred" />
                </name>
                <gender value="male" />
                <birthDate value="1970-01-01" />
            </Patient>
        </resource>
        <search>
            <mode value="match" />
        </search>
    </entry>
</Bundle>
{
    "resourceType": "Bundle",
    "id": "PatientenBundle",
    "type": "searchset",
    "total": 1,
    "entry":  [
        {
            "resource": {
                "resourceType": "Patient",
                "id": "PatientVater",
                "active": true,
                "name":  [
                    {
                        "given":  [
                            "Manfred"
                        ],
                        "family": "Mustermann"
                    }
                ],
                "identifier":  [
                    {
                        "type": {
                            "coding":  [
                                {
                                    "code": "KVZ10",
                                    "system": "http://fhir.de/CodeSystem/identifier-type-de-basis"
                                }
                            ]
                        },
                        "system": "http://fhir.de/sid/gkv/kvid-10",
                        "value": "A000000000"
                    }
                ],
                "gender": "male",
                "birthDate": "1970-01-01"
            },
            "search": {
                "mode": "match"
            }
        }
    ]
}

Es MUSS durch den FD sichergestellt werden, dass die zurückgegebene Patient-Ressourcen eine stabile id besitzten.

Die zurückgegebene Patient-Ressource MUSS valide gegen das Profil ERGPKVersichertePerson sein.

CanonicalStatusVersionBasis
https://gematik.de/fhir/erg/StructureDefinition/erg-versichertepersonactive1.0.0-CChttp://hl7.org/fhir/StructureDefinition/Patient

idS Σ1..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeS Σ I1..1CodeableConceptBindingPattern
systemS Σ1..1uriFixed Value
valueS Σ I1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
activeS Σ ?!1..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textS Σ1..1string
familyS Σ1..1string
givenS Σ1..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateS Σ1..1date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
StadtteilS I0..1Extension(string)
useΣ ?!0..1codeBinding
typeS Σ0..1codeBinding
textΣ0..1string
id0..1string
StrasseS I0..1Extension(string)
HausnummerS I0..1Extension(string)
AdresszusatzS I0..1Extension(string)
PostfachI0..1Extension(string)
value0..1System.String
cityS Σ0..1string
districtΣ0..0string
stateΣ0..1stringBinding
postalCodeS Σ0..1string
countryS Σ0..1stringBinding
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding


Folgende Implementierungshinweise sind zu beachten:

Patient.identifier

vgl. Abschnitt 5.4.2.3 Bereitgestellte Claims und Scopes, Feature-Dokument E-Rechnung

Patient.active

Indikation für den Client, dass es sich um eine Person handelt die über ein aktives Postfach im Fachdienst verfügt.

Patient.name

vgl. Abschnitt 5.4.2.3 Bereitgestellte Claims und Scopes, Feature-Dokument E-Rechnung

Patient.birthDate

vgl. Abschnitt 5.4.2.3 Bereitgestellte Claims und Scopes, Feature-Dokument E-Rechnung