„patient-everything“ in FHIR

Der Patient-Everything-Vorgang wird verwendet, um einen Überblick über alle Ressourcen im Zusammenhang mit einem Patienten zu bieten. Dieser Vorgang kann nützlich sein, um Patienten Zugriff auf ihren gesamten Datensatz zu gewähren oder für einen Anbieter oder einen anderen Benutzer einen Massendownload von Daten im Zusammenhang mit einem Patienten durchzuführen. Gemäß der FHIR-Spezifikation gibt Patient-everything alle Informationen zurück, die sich auf einen oder mehrere Patienten beziehen, die in der Ressource oder dem Kontext, für die dieser Vorgang aufgerufen wird, beschrieben sind. In der Azure-API für FHIR ist Patient-everything verfügbar, um Daten zu einem bestimmten Patienten zu pullen.

Verwenden von "Patient-everything"

Verwenden Sie den folgenden Befehl, um Patient-everything aufzurufen:

GET {FHIRURL}/Patient/{ID}/$everything

Hinweis

Sie müssen eine ID für einen bestimmten Patienten angeben. Wenn Sie alle Daten für alle Patienten benötigen, lesen Sie $export.

Die Azure API for FHIR überprüft, ob der Patient gefunden werden kann, der der angegebenen Patienten-ID entspricht. Wenn ein Ergebnis gefunden wird, ist die Antwort ein Paket vom Typ searchset mit den folgenden Informationen:

  • Patientenressource
  • Ressourcen, auf die direkt von der Patientenressource verwiesen wird, mit Ausnahme von Linkverweise , die nicht angezeigt werden, oder wenn der seealso Link auf verweist RelatedPerson.
  • Wenn Linkreferenzen zu anderen Patienten vorhanden sind seealso , enthalten die Ergebnisse eine Operation vom Typ "Patient-everything" für die seealso aufgeführten Patienten.
  • Ressourcen im Patientenfach
  • Geräteressourcen , die auf die Patientenressource verweisen.

Hinweis

Wenn der Patient mehr als 100 Geräte verknüpft hat, werden nur 100 zurückgegeben.

Parameter für alle Patienten

Die Azure API for FHIR unterstützt die folgenden Abfrageparameter, die alle optional sind:

Query parameter (Abfrageparameter) BESCHREIBUNG
_type Hiermit können Sie angeben, welche Ressourcentypen in die Antwort einbezogen werden sollen. Beispielsweise würde _type=Encounter nur Encounter Ressourcen zurückgeben, die dem Patienten zugeordnet sind.
_Seit Gibt nur Ressourcen zurück, die seit der angegebenen Zeit geändert wurden.
start Wenn Sie das Startdatum angeben, werden Ressourcen abgerufen, deren klinisches Datum nach dem angegebenen Startdatum liegt. Wenn kein Startdatum angegeben wird, befinden sich alle Datensätze vor dem Enddatum im Gültigkeitsbereich.
end Wenn Sie das Enddatum angeben, werden Ressourcen abgerufen, deren klinisches Datum vor dem angegebenen Enddatum liegt. Wenn kein Enddatum angegeben wird, befinden sich alle Datensätze nach dem Startdatum im Gültigkeitsbereich.

Hinweis

Diese Implementierung von Patient-everything unterstützt den Parameter _count nicht.

In einer Patientenressource gibt es ein Element namens Link, das einen Patienten mit anderen Patienten oder verwandten Personen verknüpft. Diese verknüpften Patienten helfen dabei, einen ganzheitlichen Überblick über den ursprünglichen Patienten zu geben. Der Linkverweis kann verwendet werden, wenn ein Patient einen anderen Patienten ersetzt oder wenn zwei Patientenressourcen über ergänzende Informationen verfügen. Ein Anwendungsfall für Links ist, wenn eine ADT 38- oder 39 HL7v2-Nachricht eingeht. Der ADT38/39 beschreibt ein Update für einen Patienten. Dieses Update kann als Referenz zwischen zwei Patienten im Linkelement gespeichert werden.

Die FHIR-Spezifikation enthält eine detaillierte Übersicht über die verschiedenen Arten von Patientenlinks, aber hier ist eine allgemeine Zusammenfassung:

  • replaces : Die Ressource Patient ersetzt einen anderen Patienten.
  • refer : Patient ist gültig, gilt aber nicht als Hauptinformationsquelle. Verweist auf einen anderen Patienten, um zusätzliche Informationen abzurufen.
  • seealso - Patient enthält einen Link zu einem anderen Patienten, der gleichermaßen gültig ist.
  • replace-by : Die Ressource Patient ersetzt einen anderen Patienten.

Der Patient-Everything-Vorgang in Azure API for FHIR verarbeitet Patientenlinks auf unterschiedliche Weise, um Ihnen eine holistischste Sicht auf den Patienten zu bieten.

Hinweis

Ein Link kann auch auf einen RelatedPersonverweisen. Im Moment RelatedPerson werden Ressourcen nicht in Patient-everything verarbeitet und nicht im Paket zurückgegeben.

Im Moment werden Ersetzungs- und Verweislinks von der Operation Patient-everything ignoriert, und der verknüpfte Patient wird nicht im Paket zurückgegeben.

Wie beschrieben, verweisen auch Links auf einen anderen Patienten, der als gleichwertig für das Original gilt. Wenn der Patient nach der Operation "Patient-everything" über Verbindungen zu anderen Patienten verfügt seealso , wird die Operation patient-everything auf jedem seealso Link ausgeführt. Das bedeutet, wenn ein Patient eine Verbindung mit fünf anderen Patienten mit einem Typlink seealso verbindet, führen wir Patient-everything für jeden dieser fünf Patienten aus.

Hinweis

Dies ist so eingerichtet, dass links nur eine Ebene tief folgen seealso . Die Links eines seealso Links seealso werden nicht verarbeitet.

Siehe auch Flussdiagramm.

Der endgültige Linktyp wird durch ersetzt. In diesem Fall wird die ursprüngliche Patientenressource nicht mehr verwendet, und der replaced-by Link verweist auf den Patienten, der verwendet werden sollte. Diese Implementierung von Patient-everything enthält standardmäßig ein Vorgangsergebnis am Anfang des Pakets mit einer Warnung, dass der Patient nicht mehr gültig ist. Dies ist auch das Verhalten, wenn der Prefer Header auf handling=lenientfestgelegt ist.

Darüber hinaus können Sie den Prefer Header auf handling=strict festlegen, um stattdessen einen Fehler auszulösen. In diesem Fall gibt eine Rückgabe des Fehlercodes 301 MovedPermanently an, dass der aktuelle Patient veraltet ist, und gibt die ID für den richtigen Patienten zurück, die im Link enthalten ist. Der ContentLocation Header des zurückgegebenen Fehlers verweist auf die richtige und aktuelle Anforderung.

Hinweis

Wenn ein replaced-by Link vorhanden Prefer: handling=lenient ist und Ergebnisse asynchron in mehreren Bündeln zurückgegeben werden, wird nur ein Vorgangsergebnis in einem Bündel zurückgegeben.

Reihenfolge der Patientenreaktion

Die Operation Patient-everything gibt Ergebnisse in Phasen zurück:

  1. Phase 1 gibt die Ressource selbst zusätzlich zu allen PatientgeneralPractitioner Ressourcen und managingOrganization ir-Verweisen zurück.
  2. Phase 2 und 3 geben beide Ressourcen im Patientenfach zurück. Wenn die Start- oder Endabfrageparameter angegeben sind, gibt Phase 2 Ressourcen aus dem Fach zurück, die nach ihrem klinischen Datum gefiltert werden können, und Phase 3 gibt Ressourcen aus dem Fach zurück, die nicht nach ihrem klinischen Datum gefiltert werden können. Wenn keiner dieser Parameter angegeben ist, wird Phase 2 übersprungen, und Phase 3 gibt alle Ressourcen des Patientenkompartiments zurück.
  3. Phase 4 gibt alle Geräte zurück, die auf den Patienten verweisen.

Jede Phase gibt Ergebnisse in einem Bündel zurück. Wenn sich die Ergebnisse über mehrere Seiten erstrecken, zeigt der nächste Link im Bundle auf die nächste Seite mit Ergebnissen für diese Phase. Nachdem alle Ergebnisse aus einer Phase zurückgegeben wurden, verweist der nächste Link im Bundle auf den Aufruf, um die nächste Phase zu initiieren.

Wenn der ursprüngliche Patient über Verbindungen seealso verfügt, werden die Phasen 1 bis 4 für jeden dieser Patienten wiederholt.

Beispiele für "Patient-Everything"

Hier finden Sie einige Beispiele für die Verwendung der Operation "Patient-everything". Zusätzlich zu den Beispielen verfügen wir über eine REST-Beispieldatei , die veranschaulicht, wie das seealso Verhalten und replaced-by funktioniert.

Verwenden Sie den folgenden Aufruf, um Zwischen 2010 und 2020 mit Patient-everything abfragen zu können:

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

Verwenden Sie den folgenden Aufruf, um $patient-everything zum Abfragen der Beobachtung und Begegnung eines Patienten zu verwenden:

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

Verwenden Sie den folgenden Aufruf, um $patient-everything zu verwenden, um das "Alles" eines Patienten ab dem 2021-05-27T05:00:00Z abzufragen:

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

Wenn für jeden dieser Anrufe ein Patient gefunden wird, erhalten Sie eine Antwort vom Typ 200 mit einer Bundle der entsprechenden Ressourcen.

Nächste Schritte

Nachdem Sie nun wissen, wie Sie den Patient-Everything-Vorgang verwenden, können Sie sich über die Suchoptionen informieren.

FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.