Skip to content

Latest commit

 

History

History
211 lines (163 loc) · 10.4 KB

erp_fhir_infos.adoc

File metadata and controls

211 lines (163 loc) · 10.4 KB

E-Rezept FHIR im E-Rezept gematik logo

FHIR-Profile im E-Rezept Kontext

Folgende FHIR-Profile sind im E-Rezept-Kontext relevant und werden von den verschiedenen Beteiligten definiert:

Beteiligter

FHIR-Projekt

KBV

KBV

DAV

DAV

GKV

gematik

FHIR-Releases

Die Veröffentlichung an dieser Stelle erfolgt übergangsweise, bis ein gemeinsames Repository 'oberhalb' der API-Beschreibung gefunden ist.

Titus-Testportal

Das Titus-Testportal wird in den Anwendungsfällen zum E-Rezept um einen Validator erweitert. Zukünftig werden alle Requests vor der Weiterverarbeitung online validiert. Details dazu finden sich auf der folgenden Seite.

Allgemeine Implementierungshinweise

Für die QES-Erstellung durch den Konnektor liegen im Unterordner samples/qes SOAP-Request/Responses zu den Verordnungsbeispielen der KBV bereit. Spezialfälle (z.B. abgelaufene Zertifikate wegen Kartenwechsel o.ä.) stellen wir im Unterordner samples/qes-cases bereit. Da die signierten Dokumente nicht verändert werden dürfen sind die Beispiele noch in Profilversionen, die nicht mehr im Produktivbetrieb des Fachdienstes unterstützt werden.

Durchgängige Beispieldatensätze von der Verordnung und qualifizierter Signatur über Quittung bis zu den Abrechnungsdaten stehen im Examples-Repo zur Verfügung.

Referenzierung von FHIR-Objekten in Bundles

Der FHIR-Standard definiert wie Ressourcen in einem Bundle referenziert werden sollen. Siehe hierzu Referezen und Bundles.

Übereinstimmung von id und fullUrl

Bei Verwendung von relativer Referenzierung in Bundles muss darauf geachtet werden, dass die id der fullUrl der Ressource mit der id der Ressource übereinstimmt.

Beispielsweise ist folgende Konstellation ungültig, da der hintere Teil der fullUrl nicht mit der Ressourcen-ID übereinstimmt (b54dd6cad655 ≠ 000000000000):

<fullUrl value="http://pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" />
        <resource>
            <Practitioner xmlns="http://hl7.org/fhir">
                <id value="bc329f24-3d65-4286-bf06-000000000000" />

Hier das korrigierte Beispiel:

<fullUrl value="http://pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" />
        <resource>
            <Practitioner xmlns="http://hl7.org/fhir">
                <id value="bc329f24-3d65-4286-bf06-b54dd6cad655" />

Einheitliche Referenzierung in Bundles

Zur Vermeidung von Fehlern bei der Referenzierung von Ressourcen in Bundles sollte eine einheitliche Referenzierung genutzt werden. Das bedeutet, dass absolute und relative Referenzierung nicht gemischt werden sollte. Zur Eindeutigkeit und besseren Lesbarkeit wird empfohlen, durchgehend absolute Referenzen zu verwenden.

Folgendes Beispiel zeigt eine fehlerhafte Referenzierung:

<fullUrl value="urn:uuid:bc329f24-3d65-4286-bf06-b54dd6cad655" />
   <resource>
      <Composition>
       ...
       <section>
         <reference value="Patient/123" /> <!-- relative Referenzierung, welche sich nicht auflösen lässt -->
      </section>

Folgend ein korrigiertes Beispiel:

<fullUrl value="urn:uuid:bc329f24-3d65-4286-bf06-b54dd6cad655" />
   <resource>
      <Composition>
       ...
       <section>
         <reference value="urn:uuid:63ad09fb-ef03-418d-855b-d561d0e2a8fc" /> <!-- ebenfalls eindeutige urn:uuid Referenzierung -->
      </section>

Alternativ ein korrektes Beispiel für relative Referenzierung:

<fullUrl value="http://pvs.praxis.local/fhir/Practitioner/129ce0ed-b427-49c3-907c-14bc1438cbcf" />
   <resource>
      <Composition>
       ...
       <section>
         <reference value="Patient/ec897375-8fce-4ebc-8059-80c851e4c8b2" /> <!-- fullURL ist als URL-Schema aufgebaut, relative Referenz kann aufgelöst werden -->
      </section>

Die Referenz "Patient/123" kann nicht aufgelöst werden, da die Umgebende Composition-Ressource keine fullUrl besitzt, die eine base-URL enthält, wonach aufgelöst werden kann.

Format von fullURLs

fullURLs müssen entweder als URL-Schema oder als URN-Schema angegeben werden. Wenn das URL-Schema verwendet wird, muss dieses nach dem Regex für FHIR-URLs aufgebaut sein. Folgende Hinweise sind zu beachten:

  • URLs haben das Format "http(s)://<domain>/<resourceType>/<id>".

  • URNs haben das Format "urn:uuid:<uuid>".

Folgendes Beispiel zeigt eine ungültige URL-Referenz:

<fullUrl value="www.pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" /> <!-- ungültige URL, da das Schema fehlt -->
<fullUrl value="urn:uuid:1" /> <!-- ungültige urn, da keine gültige UUID -->

Gültige Referenzen:

<fullUrl value="https://pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" /> <!-- Korrekte URL nach https://hl7.org/fhir/R4/references.html#regex -->
<fullUrl value="urn:uuid:4b7e4c01-6ee6-43ee-b527-61a813efa6be" /> <!-- Korrekte UUID nach RFC4122 -->

Ressourcen ohne .id

Ressourcen, die in Bundles enthalten sind, müssen eine .id besitzen. Dies ist notwendig, um die Ressourcen eindeutig referenzieren und identifizieren zu können. Daher müssen diese angegeben werden auch wenn das Datenmodell keine Kardinalität von 1..1 für das Feld .id vorsieht.

Im folgenden Beispiel fehlt die .id in der Ressource:

<fullUrl value="http://pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" />
        <resource>
            <Practitioner xmlns="http://hl7.org/fhir">
                <name> <!-- fehlende .id -->
                ...
            </Practitioner>

Beispiel für korrekte Angabe der .id:

<fullUrl value="http://pvs.praxis.local/fhir/Practitioner/bc329f24-3d65-4286-bf06-b54dd6cad655" />
        <resource>
            <Practitioner xmlns="http://hl7.org/fhir">
                <id value="bc329f24-3d65-4286-bf06-b54dd6cad655" />
                <name>
                ...
            </Practitioner>

Tools und Hinweise zu FHIR

Verlgeich von FHIR-Profilen

Wie Vergleiche zwischen FHIR Profilen (z.B. nach Versionsübergängen) vorgenommen werden können und den Verweis auf die Artefakte zum aktuellen Versionsübergang finden sich auf dieser Seite.

E-Rezept FHIR-Beispiele

Für die Implementierung des E-Rezeptes stehen Beispiele im FHIR-Format zur Verfügung.

Im gemeinsamen Beispiel-Repository der Gesellschafter sind sowohl Einzelbeispiele von Profilen, wie auch Beispiele von Ende zu Ende Szenarien dokumentiert.

Wir wünschen uns an dieser Stelle auch ein reges Mitwirken der Industrie bei der Erstellung dieser Beispiele. Über Pull-Requests und andere Formen der Kollaboration freuen wir uns.

Konvertierung von FHIR XML und JSON

Der FHIR Standard unterstützt für den Datenaustausch mehrere Formate. Die beiden vom E-Rezept Fachdienst unterstützten Formate sind XML (Content-Type: application/fhir+xml) und JSON (Content-Type: application/fhir+json). Der Fachdienst unterstützt an jedem Endpunkt beide Formate. Mit den Gesellschaftern wurde abgestimmt, dass bei der Kommunikation und Beschreibung der Endpunkte, die Primärsysteme betreffen, das Format XML genutzt wird. Das heißt, dass die Beispiele in der API und im eRezept-Examples Repository, die die Primärsysteme betreffen in XML dargestellt werden. Der Datenaustausch zwischen dem Fachdienst und dem Frontend des Versicherten (FdV) dagegen geschieht im JSON-Format.

Folgende Tools können genutzt werden, um FHIR-Dokumente zwischen XML und JSON zu konvertieren: * Webseite zum Konvertieren * FHIR tools VS Code Extension * FHIR.js npm Package * Beschreibung zur Umwandlung mit HAPI (Java)

Referenzen in Bundles und Parameters Objekten

FHIR sieht vor, dass Objekte in Bundles und Paramters Objekten referenziert werden können. Dabei wird die Referenz als URL angegeben. Die URL kann entweder absolut oder relativ sein.

Folgende Best Practice sollte beachtet werden:

  • In Bundles sollte die Referenz als absolute url angegeben werden.

    • Bsp: <reference value="urn:uuid:e3fd4ae7-fa81-414f-b12d-864cdad41de8" />

    • Der E-Rezept-Fachdienst akzeptiert derzeit sowohl relative als auch absolute Referenzierung. Es wird jedoch empfohlen, absolute Referenzen zu verwenden.

  • In Parameters Objekten sollte relative Referenzierung genutzt werden.

    • Bsp: <reference value="Medication/e3fd4ae7-fa81-414f-b12d-864cdad41de8" />

    • Der E-Rezept-Fachdienst prüft nicht, welche Referenzierung genutzt wird, jedoch sind relative Referenzen durch den FHIR-Standard vorgegeben