Verwenden von Patient-Everything im FHIR-Dienst
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® (Fast Healthcare Interoperability Resources) 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. Im FHIR-Dienst in Azure Health Data Services (hier als FHIR-Dienst bezeichnet) ist Patient-everything verfügbar, um Daten im Zusammenhang mit 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.
Der FHIR-Dienst ü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 von sind, siehe auch oder wenn der
seealso
Link auf verweistRelatedPerson
. - Wenn Linkreferenzen zu anderen Patienten vorhanden sind
seealso
, enthalten die Ergebnisse eine Operation vom Typ "Patient-everything" für dieseealso
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
Der FHIR-Dienst 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.
Verarbeiten von Patientenlinks
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. Es 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 wir haben eine allgemeine Zusammenfassung enthalten:
- 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.
Details zu Patientenverknüpfung
Der Patient-Everything-Betrieb im FHIR Service verarbeitet Patientenverknüpfung auf unterschiedliche Weise, um Ihnen einen ganzheitlichen Blick auf den Patienten zu geben.
Hinweis
Ein Link kann auch auf einen RelatedPerson
verweisen. 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.
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=lenient
festgelegt 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:
- Phase 1 gibt die Ressource selbst zusätzlich zu allen
Patient
generalPractitioner
Ressourcen undmanagingOrganization
ir-Verweisen zurück. - Phase 2 und 3 geben beide Ressourcen im Patientenfach zurück. Wenn die
start
Abfrageparameter oderend
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. - 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 diesen Beispielen verfügen wir über eine REST-Beispieldatei , die veranschaulicht, wie das seealso
Verhalten und replaced-by
funktioniert.
Verwenden Sie den folgenden Aufruf, um das "Alles" eines Patienten zwischen 2010 und 2020 mithilfe von Patient-everything abzufragen:
GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020
Verwenden Sie den folgenden Aufruf, um die Beobachtung und Begegnung eines Patienten mithilfe von Patient-everything abzufragen:
GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter
Verwenden Sie den folgenden Aufruf, um das "Alles" eines Patienten seit 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. Weitere Informationen finden Sie unter
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.