C_11530_Anlage_V1.0.0


ML-141612 - E-Rezept-Fachdienst: Paging

[<=]

C_11530 Änderung zur Umsetzung von Pagination, Filtern und Sortieren von Listen

1 Motivation

Mit Zunahme an Clients am E-Rezept-Fachdienst, insbesondere der wachsenden Zahl an E-Rezept-FdVs, werden Mechanismen notwendiger, die die Datensparsamkeit ermöglichen und fördern.

Die bisherige Spezifikation hat keine konsistenten Mechanismen vorgesehen, wie eine Rückgabe von einem großen Volumen von Objekten eines FHIR-Bundles so aufbereitet werden kann, dass ein Client diese effizient sortieren und filtern kann.

Dieser Änderungseintrag soll ein zukunftssicheres Konzept einführen, was den E-Rezept-Fachdienst auch für zukünftige Anwendungsfälle ermöglicht eine Rückgabe von Listen standardisiert für Clients aufzubereiten. Das Konzept soll sich an den bestehenden best-practices von FHIR orientieren.

1.1 Betroffene Endpunkte

Derzeit werden an folgenden Endpunkten Listen von Objekten zurückgegeben, deren Aufbereitung für Clients nicht standardisiert ist:

Tabelle 1 Endpunkte, die ein FHIR-Bundle zurückgeben

Endpunkt Client Inhalt der Response
GET /Task Versicherte, Abgebende LEI Liste von verfügbaren Tasks im E-Rezept-Fachdienst
GET /Communication Versicherte, Abgebende LEI Liste von verfügbaren Communications
GET /MedicationDispense Versicherte Liste von eingestellten MedicationDispenses von Verordnungen
GET /ChargeItem Versicherte Liste von Abrechnungsinformationen von Verordnungen
GET /AuditEvent Versicherte Liste von Protokolleinträgen des Versicherten

2 Konzept

Das Konzept beschäftigt sich damit, wie FHIR-Listen, übertragen als FHIR-Bundle, für Clients des E-Rezept-Fachdienst sortiert, gefiltert und nach Seiten aufbereitet werden können. Zu unterscheiden sind drei verschiedene Mechanismen: Sortierung, Filterung und Paginierung. Die angefragten Funktionen sind jeweils auf einen Konkreten Endpunkt anzuwenden. Es ist möglich diese Funktionen zu kombinieren, sodass z.B. die Anfrage sortiert und gefiltert wird.

2.1 Such- und Sortierkriterien

Für die einzelnen Ressourcen und Endpunkte, die eine Abfrage von mehreren Elementen zulassen, sollen folgende Kriterien als Such- und Sortierkriterien gelten:

Tabelle 2 Darstellung der Endpunkte mit Such- und Sortierkriterien

Endpunkt Suchkriterien Sortierbar Auszuwertendes Feld Datentyp*
GET /Task authored-on Ja (default) Task.authoredOn date
status Nein Task.status token
expiry-date Ja Task.extension:expiryDate.valueDate date
accept-date Ja Task.extension:acceptDate.valueDate date
modified Ja Task.lastModified date
GET /AuditEvent date Ja (default) AuditEvent.recorded date
entity Nein AuditEvent.entity.what.identifier.value string
GET /Communication sent Ja (default) Communication.sent date
received Ja Communication.received date
recipient Nein Communication.recipient.identifier.value string
identifier Nein Communication.identifier.value string
sender Nein Communication.sender.identifier.value string
GET /MedicationDispense whenhandedover Ja (default) MedicationDispense.whenHandedOver date
whenprepared Ja MedicationDispense.whenPrepared date
performer Nein MedicationDispense.performer.actor.identifier.value string
identifier Nein MedicationDispense.identifier.value string
GET /ChargeItem entered-date  Ja (default) ChargeItem.enteredDate date
_lastUpdated** Ja ChargeItem.meta.lastUpdated date

* für die Handhabung mit den FHIR-Datentypen zu Suche und Sortierung siehe https://hl7.org/fhir/R4/search.html#Summary 

** Standard Such- und Sortierparametern in FHIR ist ein "_" vorangestellt werden. Der Aufruf sieht dann bspw. so aus: GET [base]/ChargeItem?_lastUpdated=le2023-10-01&_sort=-_lastUpdated

2.2 Sortierung

Clients erhalten die Möglichkeit die Rückgabe der Elemente im FHIR-Bundle zu sortieren. Mit einem URL-Parameter "_sort" kann eine Sortierung der Ressourcen angefragt werden.

Es können mehrere Sortierkriterien angegeben werden. Der E-Rezept-Fachdienst sortiert dann zuerst nach dem ersten, dann zweiten, usw. Kriterium.

2.2.1 Festlegung der Reihenfolge

Wenn ein Kriterium verwendet wird, dann werden die Einträge immer aufsteigend sortiert. Falls die Ergebnisliste absteigend sortiert werden soll muss vor das Kriterium ein "-" gesetzt werden.

2.2.2 Fehlerbehandlung

Falls ein Objekt keinen Wert für das angeforderte Sortierkriterium aufweist, wird dieses Objekt als 'NULL' behandelt und entsprechend positioniert. 'NULL'-Werte werden standardmäßig am Ende der Liste bei aufsteigender Sortierung und am Anfang der Liste bei absteigender Sortierung platziert.

2.2.3 Beispiel Aufrufe für Sortierung

Aufruf mit einem Sortierkriterium:
GET [FACHDIENST_SERVER_URL]/Task?_sort=authored-on

Aufruf mit mehreren Sortierkriterien:
GET [FACHDIENST_SERVER_URL]/Task?_sort=authored-on,expiry-date

Aufruf mit umgekehrter Sortierreihenfolge:
GET [FACHDIENST_SERVER_URL]/Task?_sort=-authored-on

2.3 Filterung

Clients können am E-Rezept-Fachdienst Anfragen stellen, dessen Ergebnismenge nach bestimmten Kriterien reduziert werden soll.

2.3.1 Filteroperatoren für date

Für den Datentyp "date" sollen folgende Filterkriterien als URL-Parameter unterstützt werden:

Tabelle 3 Übersicht der Filteroperatoren des datatypes "date"

Operator Übersetzung Bedeutung
eq equals ist gleich (=)
ne not equals ist nicht gleich (!=)
gt greater than größer als (>)
lt less than kleiner als (<)
ge greater equals größer gleich (>=)
le less equals kleiner gleich (<=)

2.3.2 Fehlerbehandlung

Falls ein Objekt keinen Eintrag zum Filterkriterium enthält, wird dieses nicht in die Ergebnismenge aufgenommen.

2.3.3 Beispielaufrufe für Filterung

Aufruf mit einem Filterkriterium:
GET [FACHDIENST_SERVER_URL]/Task?authored-on=lte2023-10-01

Aufruf mit mehreren Filterkriterien:
GET [FACHDIENST_SERVER_URL]/Task?authored-on=lte2023-10-01&accept-date=gt2023-12-01

Aufruf mit Sortier- und Filterkriterium:
GET [FACHDIENST_SERVER_URL]/Task?authored-on=lte2023-10-01&_sort=-authored-on

2.4 Paginierung

Der E-Rezept-Fachdienst versorgt den Client in seiner Response mit Informationen zur Navigation durch die Seiten. 

2.4.1 URL-Parameter

Zur Umsetzung der Pagination-Funktion sind die URL-Parameter "_count" und "_offset" entscheidend. Diese geben die Anzahl der Einträge pro Seite und das Startelement der Seite an.

2.4.1.1 _count

Mit "_count" kann der Client angeben, wie viele Elemente maximal auf einer "Seite" der Antwort enthalten sein sollen. D.h. der E-Rezept-Fachdienst beschränkt die Ergebnismenge auf diese maximal angegebene Anzahl. 

Wenn kein Wert für "_count" angegeben wurde, wird per Default der Wert "10" gesetzt. Ein maximaler Wert von "50" ist zulässig.

2.4.1.2 _offset

Dieser URL-Parameter gibt den (nullbasierten) Versatz des ersten zurückgegebenen Elements in der Sammlung an.

Wenn kein Wert für "_offset" angegeben wurde, wird per Default der Wert "0" gesetzt.

2.4.1.3 Beispiel Aufrufe für Pagination

Aufruf von 10 Elementen, beginnend mit Element 20 der Liste:
GET [FACHDIENST_SERVER_URL]/Task?_count=10&_offset=20

Aufruf der ersten zehn Elemente:
GET [FACHDIENST_SERVER_URL]/Task?_count=10

GET [FACHDIENST_SERVER_URL]/Task

GET [FACHDIENST_SERVER_URL]/Task?_offset=0

Abrufen nur der Gesamtanzahl an Einträgen:

GET [FACHDIENST_SERVER_URL]/Task?_count=0

2.4.2 Angabe der Gesamtanzahl an Suchtreffern

Der E-Rezept-Fachdienst gibt immer die Gesamtanzahl der Suchtreffer zurück. Diese Information wird im Feld "Bundle.total" des FHIR-Bundles angegeben.

2.4.3 Links zur Seitennavigation

Der Kopf des FHIR-Bundles, was zurückgegeben wird enthält Links, die vom Client aufgerufen werden können, um die Navigation durch die Elemente zu vereinfachen. Folgende Relationen sind nach http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 vorgesehen:

Tabelle 4 Link Relationen und Bedeutungen

Titel der Relation Bedeutung
self Die vom Client aufgerufene URL 
next Basierend auf "_count" und "_offset", die für den Client aufzurufende URL, um die nächste Seite abzufragen
previous Basierend auf "_count" und "_offset", die für den Client aufzurufende URL, um die vorherige Seite abzufragen
first Basierend auf "_count", die für den Client aufzurufende URL, um die erste Seite abzufragen
last Basierend auf "_count", die für den Client aufzurufende URL, um die letzte Seite abzufragen

2.4.3.1 Beispiel der Link Relationen

Beispielhafte Darstellung als Ausschnitt aus einem FHIR-Bundle mit 50 Suchtreffern.

"link": [
    {
      "relation": "self",
      "url": "[FACHDIENST_SERVER_URL]/Task?_count=10&_offset=20"
    },
    {
     "relation": "next",
      "url": "[FACHDIENST_SERVER_URL]/Task?_count=10&_offset=30"
    },
    {
     "relation": "previous",
      "url": "[FACHDIENST_SERVER_URL]/Task?_count=10&_offset=10"
    },
    {
     "relation": "first",
      "url": "[FACHDIENST_SERVER_URL]/Task?_count=10&_offset=0"
    },
    {
     "relation": "last",
      "url": "[FACHDIENST_SERVER_URL]/Task?_count=10&_offset=40"
    }
  ],

2.4.4 Annahmen zur Paginierung

Der E-Rezept-Fachdienst hält keine Session Informationen der Aufrufe vor. Das bedeutet z.B., dass wenn sich die Ergebnismenge zwischen zwei Aufrufen ändert, der E-Rezept-Fachdienst immer die zum Aufruf vorhandenen Ergebnisse ausliefert.

Eventuelle Seiteneffekte müssen dadurch durch die Clients aufgefangen werden.

2.4.5 Endpunkte die Paginierung unterstützen

Die folgende Tabelle zeigt welche Endpunkte Paging und dessen Bestandteile unterstützten:

Endpunkt Paginierung Ausgabe Total-Count Angabe Relation Links
GET /Task Ja Ja self, next, previous, first, last
GET /Communication Ja Ja self, next, previous, first, last
GET /MedicationDispense Nein immer "0" Nein
GET /ChargeItem Ja Ja self, next, previous, first, last
GET /AuditEvent Ja immer "0" self, next, previous, first

2.5 Datenmodell

Die Rückgabe der Elemente erfolgt in einem FHIR-Bundle mit Bundle.type = "searchset" und könnte bspw. wie folgt aussehen:

{
  "resourceType": "Bundle",
  "id": "example-bundle",
  "meta": {
    "lastUpdated": "2023-05-31T10:15:30Z"
  },
  "type": "searchset",
  "total": 50,
  "link": [
    {
      "relation": "self",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-modified&_count=10&_offset=20&authored-on=gt2023-10-01"
    },
    {
     "relation": "next",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-modified&_count=10&_offset=30&authored-on=gt2023-10-01"
    },
    {
     "relation": "previous",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-modified&_count=10&_offset=10&authored-on=gt2023-10-01"
    },
    {
     "relation": "first",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-modified&_count=10&_offset=0&authored-on=gt2023-10-01"
    },
    {
     "relation": "last",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-modified&_count=10&_offset=40&authored-on=gt2023-10-01"
    }
  ],
  "entry": [
    {
      "search": {
        "mode": "match"
      },
      "resource": {
        "resourceType": "Task",
        [...]
      }
    },
    {
      "search": {
        "mode": "include"
      },
      "resource": {
        "resourceType": "AuditEvent",
        [...]
      }
    },
    [...]
  ]
}

3 Änderungen

3.1 Änderungen an gemSpec_FD_eRp

3.1.1 Neues Kapitel "Handhabung der Rückgabe von mehreren FHIR-Objekten"

Für Endpunkte, die eine Menge an FHIR-Objekten abfragen gelten einheitliche Vorgaben dazu, wie die Elemente in einem FHIR-Bundle aufbereitet werden können.

Zu unterscheiden sind drei verschiedene Mechanismen: Sortierung, Filterung und Pagination. Die angefragten Funktionen sind jeweils auf einen Konkreten Endpunkt anzuwenden. Es ist möglich diese Funktionen miteinander zu kombinieren, sodass z.B. eine Anfrage sortiert und gefiltert wird.

A_24434 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Betroffene Endpunkte

Der E-Rezept-Fachdienst MUSS das Konzept zur Handhabung der Rückgabe von mehreren FHIR-Objekten auf folgende Endpunkte anwenden:

Tabelle 5 Endpunkte des E-Rezept-Fachdienst, die das Konzept zur Handhabung der Rückgabe von mehreren FHIR-Objekten bereitstellen müssen

Endpunkt Client Inhalt der Response
GET /Task Versicherte, Abgebende LEI Liste von verfügbaren Tasks im E-Rezept-Fachdienst
GET /Communication Versicherte, Abgebende LEI Liste von verfügbaren Communications
GET /MedicationDispense Versicherte Liste von eingestellten MedicationDispenses von Verordnungen
GET /ChargeItem Versicherte Liste von Abrechnungsinformationen von Verordnungen
GET /AuditEvent Versicherte Liste von Protokolleinträgen des Versicherten
[<=]

3.1.1.1 Sortieren und filtern von FHIR-Objekten

Clients erhalten die Möglichkeit die Rückgabe der Elemente im FHIR-Bundle zu sortieren und zu filtern. Mit einem URL-Parameter "_sort" kann eine Sortierung der Ressourcen angefragt werden. Die Angabe eines Filterkriteriums als URL-Parameter schränkt die Ergebnismenge auf die angegebenen Kriterien ein.

Für jeden dieser Ressourcen gelten dann Kriterien, nach denen sortiert und gefiltert werden kann.

A_24436 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Filter- und Sortierkriterien

Der E-Rezept-Fachdienst MUSS für die Sortierung bei der Handhabung der Rückgabe von mehreren FHIR-Objekten den FHIR-Suchparameter "_sort" unterstützen und für die folgenden Ressourcen entsprechende Such- und Sortierkriterien bereitstellen:

Tabelle 6 Filter- und Sortierkriterien der Endpunkte für die Handhabung der Rückgabe von mehreren FHIR-Objekten 

Endpunkt Suchkriterien Sortierbar Auszuwertendes Feld Datentyp
GET /Task authored-on Ja (default) Task.authoredOn date
status Nein Task.status token
expiry-date Ja Task.extension:expiryDate.valueDate date
accept-date Ja Task.extension:acceptDate.valueDate date
modified Ja Task.lastModified date
GET /AuditEvent date Ja (default) AuditEvent.recorded date
entity Nein AuditEvent.entity.what.identifier.value string
GET /Communication sent  Ja (default) Communication.sent date
received Ja Communication.received date
recipient Nein Communication.recipient.identifier.value string
identifier Nein Communication.identifier.value string
sender Nein Communication.sender.identifier.value string
GET /MedicationDispense whenhandedover Ja (default) MedicationDispense.whenHandedOver date
whenprepared Ja MedicationDispense.whenPrepared date
performer Nein MedicationDispense.performer.actor.identifier.value string
GET /ChargeItem entered-date  Ja (default) ChargeItem.enteredDate date
_lastUpdated ChargeItem.meta.lastUpdated date
[<=]

Hinweis:  für die Handhabung mit den FHIR-Datentypen zu Suche und Sortierung siehe https://hl7.org/fhir/R4/search.html#Summary 

Hinweis: Standard Such- und Sortierparametern in FHIR ist ein "_" vorangestellt werden. Der Aufruf sieht dann bspw. so aus: GET [base]/ChargeItem?_lastUpdated=le2023-10-01&_sort=-_lastUpdated

Es können mehrere Sortierkriterien angegeben werden. Bei der Sortierung sortiert der E-Rezept-Fachdienst dann zuerst nach dem ersten, dann zweiten, usw. Kriterium.

A_24437 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Sortieren von Einträgen

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten die Sortierung nach mehreren Kriterien ermöglichen, indem entsprechend der Reihenfolge der angegebenen Kriterien sortiert wird. [<=]

Wenn keine Sortierung über den URL-Parameter "_sort" angefragt wird, sortiert der E-Rezept-Fachdienst automatisch.

A_24438 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Sortieren von Einträgen

Der E-Rezept-Fachdienst MUSS für die Sortierung bei der Handhabung der Rückgabe von mehreren FHIR-Objekten folgende Ressourcen nach folgenden Kriterien aufsteigend sortieren, wenn der Client keine Sortierung im Request angefragt hat:

Tabelle 7 Default Sortierparameter für die Handhabung der Rückgabe von mehreren FHIR-Objekten

Endpunkt Default Sortierparameter
GET /Task authored-on
GET /Communication sent 
GET /MedicationDispense whenhandedover 
GET /ChargeItem entered-date 
GET /AuditEvent date
[<=]

Standardmäßig werden die Einträge aufsteigend sortiert. Wenn diese Reihenfolge umgekehrt werden soll, kann ein "-" vor das Sortierkriterium gestellt werden.

A_24440 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Sortierreihenfolge der Einträge

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten die Sortierreihenfolge umkehren, wenn der Client das Präfix "-" am Sortierkriterium angibt. [<=]

Clients können am E-Rezept-Fachdienst Anfragen stellen, dessen Ergebnismenge nach bestimmten Kriterien reduziert (gefiltert) werden soll.

Für den Datentyp "date" sollen folgende Filterkriterien als URL-Parameter unterstützt werden:

A_25515 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Filteroperatoren für Datumsabfragen

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten folgende Filteroperatoren für Suchkriterien anbieten, deren Datentyp "date" ist:

Operator Übersetzung Bedeutung
eq equals ist gleich (=)
ne not equals ist nicht gleich (!=)
gt greater than größer als (>)
lt less than kleiner als (<)
ge greater equals größer gleich (>=)
le less equals kleiner gleich (<=)
[<=]

3.1.1.2 Paginierung von FHIR-Objekten

Ziel der Paginierung ist es, eine Ausgabe von mehreren Instanzen in Seiten zu unterteilen, damit der Datenverkehr je Aufruf minimiert wird und der Client dem Nutzer schneller Informationen darstellen kann.

Der Client kann unter Angabe der Einträge je Seite und dem Index des Elements an dem die Anzeige zu beginnenden soll steuern, welche 'Seite' dem Client zu übermitteln ist.

Mit "_count" kann der Client angeben, wie viele Elemente maximal auf einer "Seite" der Antwort enthalten sein sollen. D.h. der E-Rezept-Fachdienst beschränkt die Ergebnismenge auf diese maximal angegebene Anzahl. 

Der URL-Parameter "_offset" gibt den nullbasierten Versatz des ersten zurückgegebenen Elements in der Sammlung an.

Der E-Rezept-Fachdienst gibt immer die Gesamtanzahl der Suchtreffer zurück. Diese Information wird im Feld "Bundle.total" des FHIR-Bundles angegeben.

A_24441 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - URL-Parameter für Paginierung

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten die Paginierung nach FHIR ermöglichen und folgende URL-Parameter unterstützen:

Tabelle 8 Paginierungsparameter für die Handhabung der Rückgabe von mehreren FHIR-Objekten

URL-Parameter Bedeutung und Funktion
_count Anzahl der Elemente (Bundle.entry) im Bundle. Maximum ist 50.
_offset Nullbasierter Index der Ergebnismenge ab welchem die Elemente angezeigt werden. Default ist 0.
[<=]

Zusätzlich zur Rückgabe der Elemente bietet der E-Rezept-Fachdienst dem Client Link-Relations nach http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 an, damit der Client einfacher durch die Ergebnismenge navigieren kann.

A_24442 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Link Relations für Paginierung

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten folgende Link Relations unter Bundle.link generieren, sofern diese erzeugt werden können:

Tabelle 9 Link Relations für die Handhabung der Rückgabe von mehreren FHIR-Objekten

Bundle.link.relation URL, die für Bundle.link.url zu erzeugen ist
self Die vom Client aufgerufene URL 
next Basierend auf "_count" und "_offset", die für den Client aufzurufende URL, um die nächste Seite abzufragen
previous Basierend auf "_count" und "_offset", die für den Client aufzurufende URL, um die vorherige Seite abzufragen
first Basierend auf "_count", die für den Client aufzurufende URL, um die erste Seite abzufragen
last Basierend auf "_count", die für den Client aufzurufende URL, um die letzte Seite abzufragen
[<=]

Falls die Link Relations nicht zu plausiblen Ergebnissen führen, z.B. wenn es keine vorherige Seite gibt kann keine "previous" Seite angegeben werden, dann darf diese Link Relation nicht übermittelt werden.

A_24443 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Paginierung

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten die Paginierung nach FHIR für folgende Endpunkte mit den jeweiligen Parametern unterstützen:

Tabelle 10 Die Details dazu, welche Endpunkte Paginierung unterstützen.

Endpunkt Paginierung Total-Count Link-Relations
GET /Task Ja Ja self, next, previous, first, last
GET /Communication Ja Ja self, next, previous, first, last
GET /MedicationDispense Nein immer "0" -
GET /ChargeItem Ja Ja self, next, previous, first, last
GET /AuditEvent Ja immer "0" self, next, previous, first
[<=]

Neben Angaben zur Paginierung übermittelt der Client auch Angaben zur Filterung und Sortierung, diese müssen bei der Erzeugung der Link Relations erhalten bleiben.

A_24444 - E-Rezept-Fachdienst - Handhabung der Rückgabe von mehreren FHIR-Objekten - Erhalten von URL-Parametern

Der E-Rezept-Fachdienst MUSS bei der Handhabung der Rückgabe von mehreren FHIR-Objekten und Generierung von URLs der Link Relations die vom Client angegebenen Filter- und Sortierkriterien verwerten und erhalten. [<=]

3.1.1.3 Beispiel eines FHIR-Bundles mit Paginierung, Filterung und Sortierung

{
  "resourceType": "Bundle",
  "id": "example-bundle",
  "meta": {
    "lastUpdated": "2023-05-31T10:15:30Z"
  },
  "type": "searchset",
  "total": 50,
  "link": [
    {
      "relation": "self",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-date&_count=10&_offset=20&authored-on=gt2023-10-01"
    },
    {
     "relation": "next",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-date&_count=10&_offset=30&authored-on=gt2023-10-01"
    },
    {
     "relation": "previous",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-date&_count=10&_offset=10&authored-on=gt2023-10-01"
    },
    {
     "relation": "first",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-date&_count=10&_offset=0&authored-on=gt2023-10-01"
    },
    {
     "relation": "last",
      "url": "[FACHDIENST_SERVER_URL]/Task?_sort=-date&_count=10&_offset=40&authored-on=gt2023-10-01"
    }
  ],
  "entry": [
    {
      "search": {
        "mode": "match"
      },
      "resource": {
        "resourceType": "Task",
        [...]
      }
    },
    [...]
  ]
}

3.1.2 Änderung von AFOs

3.1.2.1 Löschen vorheriger Anforderung zu Suche

Folgende Anforderungen werden storniert, da diese Änderung die Inhalte dieser AFOs konkreter beschreibt:

  • A_19569-03 - E-Rezept-Fachdienst - Task abrufen - Versicherter - Suchparameter Task

A_19569-03 - E-Rezept-Fachdienst - Task abrufen - Versicherter - Suchparameter Task

Der E-Rezept-Fachdienst MUSS das Eingrenzen einer Suchanfrage auf /Task durch einen Versicherten gemäß https://www.hl7.org/fhir/medicationdispense.html#search mindestens für die Attribute

  • Task.status,
  • Task.authoredOn und
  • Task.lastModified
unterstützen, sowie ein _revinclude der Ressource AuditEvent:entity.what gemäß https://www.hl7.org/fhir/search.html#revinclude  zulassen, sodass der Versicherte zu einem gesuchten Task alle zugehörigen Protokolleinträge abrufen kann. [<=]

  • A_19518-01 - E-Rezept-Fachdienst - Suchparameter für MedicationDispense

A_19518-01 - E-Rezept-Fachdienst - Suchparameter für MedicationDispense

Der E-Rezept-Fachdienst MUSS das Eingrenzen einer Suchanfrage auf /MedicationDispense über die URL-Parameter gemäß https://www.hl7.org/fhir/medicationdispense.html#search mindestens für die Attribute

  • MedicationDispense.whenHandedOver,
  • MedicationDispense.whenPrepared und 
  • MedicationDispense.performer.actor
erlauben, damit Versicherte eine Suche und Sortierung nach Ausgabedatum sowie der aufgesuchten Apotheke durchführen können.  [<=]

  • A_22121-01 - E-Rezept-Fachdienst – Abrechnungsinformationen abrufen - Suchkriterien

A_22121-01 - E-Rezept-Fachdienst – Abrechnungsinformationen abrufen - Suchkriterien

Der E-Rezept-Fachdienst MUSS das Eingrenzen einer Suchanfrage auf /ChargeItem über die URL-Parameter gemäß https://www.hl7.org/fhir/chargeitem.html#search  mindestens für die Attribute

  • ChargeItem.enteredDate
  • ChargeItem.meta.__lastUpdated
erlauben, damit Versicherte eine Suche nach neuen Abrechnungsinformations-Einträgen durchführen können. [<=]

  • A_19522-01 - E-Rezept-Fachdienst - Nachrichtenabruf Suchparameter

A_19522-01 - E-Rezept-Fachdienst - Nachrichtenabruf Suchparameter

Der E-Rezept-Fachdienst MUSS das Eingrenzen einer Suchanfrage auf /Communication über die URL-Parameter gemäß https://www.hl7.org/fhir/communication.html#search mindestens für die Attribute

  • Communication.sent,
  • Communication.received, 
  • Communication.recipient und 
  • Communication.sender erlauben,
damit Versicherte eine Suche nach neuen Nachrichten, Sende- bzw. Empfangsrichtung und eine Sortierung nach Sende- und Empfangsdatum durchführen können. [<=]

  • A_19399 - E-Rezept-Fachdienst - Suchparameter AuditEvent

A_19399 - E-Rezept-Fachdienst - Suchparameter AuditEvent

Der E-Rezept-Fachdienst MUSS beim Aufruf der HTTP-GET-Operation auf den Endpunkt /AuditEvent eine Sortierung über die Attribute der Protokolleinträge "date", "agent" und "subType" gemäß der Festlegungen für die Ressource AuditEvent https://www.hl7.org/fhir/auditevent.html#search in den URL-Parametern zulassen, damit sich Versicherte in ihrem Zugriffsprotokoll besser zurecht finden. [<=]

  • A_22123 - E-Rezept-Fachdienst – Abrechnungsinformationen abrufen - Paging

A_22123 - E-Rezept-Fachdienst – Abrechnungsinformationen abrufen - Paging

Der E-Rezept-Fachdienst KANN beim Aufruf der HTTP-GET-Operation auf den Endpunkt /ChargeItem das Suchergebnis in einem Paging-Mechanismus auf mehrere Ergebnis-Bundle aufteilen, damit der Nutzer eine komfortable Navigationsmöglichkeit in seinen Abrechnungsinformationen erhält. [<=]

  • A_19534-01 - E-Rezept-Fachdienst - Rückgabe Communication im Bundle
    Paging

A_19534-01 - E-Rezept-Fachdienst - Rückgabe Communication im Bundle Paging

Der E-Rezept-Fachdienst KANN beim Aufruf der HTTP-GET-Operation auf den Endpunkt /Communication das Suchergebnis in einem Paging-Mechanismus auf mehrere Ergebnis-Bundle aufteilen, damit der Nutzer eine komfortable Navigationsmöglichkeit in seinen Nachrichten erhält. [<=]

  • A_19398 - E-Rezept-Fachdienst - Rückgabe AuditEvents im Bundle Paging

A_19398 - E-Rezept-Fachdienst - Rückgabe AuditEvents im Bundle Paging

Der E-Rezept-Fachdienst KANN beim Aufruf der HTTP-GET-Operation auf den Endpunkt /AuditEvent die Ergebnisliste der AuditEvent-Ressourcen bei mehr als 50 Einträgen das Suchergebnis in einem Paging-Mechanismus auf mehrere Ergebnis-Bundle aufteilen, damit der Versicherte eine komfortable Navigationsmöglichkeit in seinem Zugriffprotokoll erhält. [<=]