Korzystanie z usługi Patient-everything in FHIR
Operacja Patient-everything służy do udostępniania widoku wszystkich zasobów związanych z pacjentem. Ta operacja może być przydatna, aby zapewnić pacjentom dostęp do całego rekordu lub dostawcy lub innego użytkownika w celu przeprowadzenia zbiorczego pobierania danych związanych z pacjentem. Zgodnie ze specyfikacją Fast Healthcare Interoperability Resources (FHIR®) funkcja Patient-everything zwraca wszystkie informacje związane z co najmniej jednym pacjentem opisanym w zasobie lub kontekście, na którym jest wywoływana ta operacja. W usłudze FHIR w usługach Azure Health Data Services (nazywanych obecnie usługą FHIR) wszystko jest dostępne do ściągania danych związanych z określonym pacjentem.
Aby wywołać metodę Patient-everything, użyj następującego polecenia:
GET {FHIRURL}/Patient/{ID}/$everything
Uwaga
Musisz określić identyfikator dla określonego pacjenta. Jeśli potrzebujesz wszystkich danych dla wszystkich pacjentów, zobacz $export.
Usługa FHIR sprawdza, czy może znaleźć pacjenta zgodnego z podanym identyfikatorem pacjenta. Jeśli zostanie znaleziony wynik, odpowiedź będzie pakietem typu searchset
z następującymi informacjami:
- Zasób pacjenta.
- Zasoby, do których odwołuje się bezpośrednio zasób pacjenta, z wyjątkiem odwołań do linków , które nie są widoczne, lub jeśli
seealso
link odwołuje się doRelatedPerson
elementu . - Jeśli istnieją
seealso
odwołania do linków do innych pacjentów, wyniki będą obejmować operację Patient-everything względemseealso
wymienionych pacjentów. - Zasoby w przedziale pacjentów.
- Zasoby urządzeń odwołujące się do zasobu pacjenta.
Uwaga
Jeśli pacjent ma więcej niż 100 połączonych urządzeń, zostanie zwróconych tylko 100.
Usługa FHIR obsługuje następujące parametry zapytania. Wszystkie te parametry są opcjonalne:
Parametr zapytania | Opis |
---|---|
_Typu | Umożliwia określenie typów zasobów, które zostaną uwzględnione w odpowiedzi. Na przykład _type=Encounter zwróci tylko Encounter zasoby skojarzone z pacjentem. |
_Od | Zwróci tylko zasoby, które zostały zmodyfikowane od podanego czasu. |
start | Określenie daty rozpoczęcia spowoduje ściągnięcie zasobów, w których ich data kliniczna przypada po określonej dacie rozpoczęcia. Jeśli nie podano daty rozpoczęcia, wszystkie rekordy przed datą zakończenia znajdują się w zakresie. |
end | Określenie daty zakończenia spowoduje ściągnięcie zasobów, w których ich data kliniczna przypada przed określoną datą zakończenia. Jeśli nie podano daty zakończenia, wszystkie rekordy po dacie rozpoczęcia znajdują się w zakresie. |
Uwaga
Ta implementacja parametru Patient-everything nie obsługuje parametru _count.
W zasobie pacjenta istnieje element o nazwie link, który łączy pacjenta z innymi pacjentami lub osobami powiązanymi. Ci powiązani pacjenci pomagają w całościowym spojrzeniu na pierwotnego pacjenta. Odwołanie do linku może być używane, gdy pacjent zastępuje innego pacjenta lub gdy dwa zasoby pacjentów mają informacje uzupełniające. Jednym z przypadków użycia linków jest komunikat ADT 38 lub 39 HL7v2. Opisuje aktualizację pacjenta. Ta aktualizacja może być przechowywana jako odwołanie między dwoma pacjentami w elemencie linku.
Specyfikacja FHIR zawiera szczegółowe omówienie różnych typów łączy pacjentów, ale zawiera ogólne podsumowanie:
- zastępuje — zasób pacjenta zastępuje innego pacjenta.
- refer - Pacjent jest prawidłowy, ale nie jest uważany za główne źródło informacji. Wskazuje innego pacjenta, aby pobrać dodatkowe informacje.
- seealso — pacjent zawiera link do innego pacjenta, który jest równie ważny.
- replace-by — zasób pacjenta zastępuje innego pacjenta.
Operacja Patient-everything w usłudze FHIR przetwarza linki pacjentów na różne sposoby, aby zapewnić najbardziej całościowy widok pacjenta.
Uwaga
Link może również odwoływać się do elementu RelatedPerson
. W tej chwili RelatedPerson
zasoby nie są przetwarzane w elemecie Patient-everything i nie są zwracane w pakiecie.
W tej chwili zastępowanie i odwoływanie się do łączy jest ignorowane przez operację Patient-everything, a połączony pacjent nie jest zwracany w pakiecie.
Zgodnie z opisem linki seealso odwołują się do innego pacjenta, który jest uważany za równie ważny dla oryginału. Po uruchomieniu operacji Patient-everything, jeśli pacjent ma seealso
linki do innych pacjentów, operacja uruchamia pacjent-wszystko na każdym seealso
linku. Oznacza to, że jeśli pacjent łączy się z pięcioma innymi pacjentami z linkiem typu seealso
, uruchomimy pacjenta na każdym z tych pięciu pacjentów.
Uwaga
Jest to skonfigurowane tak, aby podążać seealso
za linkami tylko w jednej warstwie głębokiej. Nie przetwarza seealso
linków seealso
.
Ostateczny typ łącza jest zastępowany. W takim przypadku oryginalny zasób pacjenta nie jest już używany, a replaced-by
link wskazuje pacjentowi, którego należy użyć. Ta implementacja Patient-everything
programu będzie domyślnie zawierać wynik operacji na początku pakietu z ostrzeżeniem, że pacjent nie jest już prawidłowy. Będzie to również zachowanie, gdy Prefer
nagłówek jest ustawiony na handling=lenient
wartość .
Ponadto można ustawić Prefer
nagłówek tak, aby handling=strict
zamiast tego zgłaszał błąd. W takim przypadku zwracany jest kod błędu 301 MovedPermanently
wskazujący, że bieżący pacjent jest nieaktualny i zwraca identyfikator prawidłowego pacjenta zawartego w linku. Nagłówek ContentLocation
zwróconego błędu wskaże poprawne i aktualne żądanie.
Uwaga
replaced-by
Jeśli link jest obecny, Prefer: handling=lenient
a wyniki są zwracane asynchronicznie w wielu pakietach, w jednym pakiecie jest zwracany tylko wynik operacji.
Operacja Patient-everything zwraca wyniki w fazach:
- Faza 1 zwraca
Patient
sam zasób oprócz wszystkichgeneralPractitioner
odwołań środowiska IR imanagingOrganization
zasobów. - Faza 2 i 3 zwracają zasoby w przedziale pacjentów.
start
Jeśli określono parametry zapytania lubend
, faza 2 zwraca zasoby z przedziału, które mogą być filtrowane według ich daty klinicznej, a faza 3 zwraca zasoby z przedziału, którego nie można filtrować według ich daty klinicznej. Jeśli żaden z tych parametrów nie zostanie określony, faza 2 zostanie pominięta, a faza 3 zwróci wszystkie zasoby przedziału pacjentów. - Faza 4 zwróci wszystkie urządzenia, które odwołują się do pacjenta.
Każda faza zwróci wyniki w pakiecie. Jeśli wyniki obejmują wiele stron, następny link w pakiecie wskaże następną stronę wyników dla tej fazy. Po zwróceniu wszystkich wyników z fazy następny link w pakiecie wskaże wywołanie, aby zainicjować następną fazę.
Jeśli oryginalny pacjent ma jakiekolwiek seealso
linki, fazy od 1 do 4 będą powtarzane dla każdego z tych pacjentów.
Oto kilka przykładów użycia operacji Patient-everything. Oprócz tych przykładów mamy przykładowy plik REST , który ilustruje sposób seealso
działania i replaced-by
zachowania.
Aby użyć funkcji Patient-everything do wykonywania zapytań dotyczących "wszystkiego" pacjenta w latach 2010-2020, użyj następującego wywołania:
GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020
Aby użyć metody Patient-everything do wykonywania zapytań dotyczących obserwacji i napotkania pacjenta, użyj następującego wywołania:
GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter
Aby użyć metody Patient-everything do wykonywania zapytań dotyczących "wszystkiego" pacjenta od 2021-05-27T05:00:00Z, użyj następującego wywołania:
GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z
Jeśli pacjent zostanie znaleziony dla każdego z tych wywołań, otrzymasz odpowiedź 200 z Bundle
odpowiednimi zasobami.
Teraz, gdy wiesz, jak używać operacji Patient-everything, możesz dowiedzieć się więcej o opcjach wyszukiwania. Aby uzyskać więcej informacji, zobacz
FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z pozwoleniem HL7.