Udostępnij za pośrednictwem


Korzystanie z funkcji Patient-everything w usłudze FHIR

Operacja Patient-everything służy do zapewnienia widoku wszystkich zasobów związanych z pacjentem. Ta operacja może być przydatna w celu udzielenia pacjentom dostępu 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 funkcja "Patient-everything" umożliwia uzyskanie danych związanych z określonym pacjentem.

Użyj systemu Patient-everything

Aby wywołać metodę Patient-everything, użyj następującego polecenia:

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

Uwaga

Należy określić identyfikator 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ź jest pakietem typu searchset z następującymi informacjami:

  • Zasób pacjenta.
  • Zasoby, do których bezpośrednio odnosi się zasób pacjenta
  • Jeśli istnieją seealso odwołania do linków do innych pacjentów, wyniki obejmują operację Patient-everything względem seealso pacjentów wymienionych.
  • Zasoby w przedziale pacjentów.
  • Zasoby urządzeń, które odnoszą się do zasobu pacjenta.

Uwaga

Zostanie zwróconych maksymalnie 100 pierwszych urządzeń połączonych z pacjentem.

Parametry pacjenta - wszystkie aspekty

Usługa FHIR obsługuje następujące parametry zapytania. Wszystkie te parametry są opcjonalne.

Parametr zapytania Opis
_typ 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 Będzie zwracać tylko zasoby, które zostały zmodyfikowane od podanego czasu.
początek 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 zostaną uwzględnione.
koniec Określenie daty zakończenia powoduje pobieranie zasobów, których data kliniczna jest przed określoną datą zakończenia. Jeśli nie podano daty zakończenia, wszystkie rekordy po dacie rozpoczęcia są brane pod uwagę.

Uwaga

Ta implementacja funkcji Patient-everything nie obsługuje parametru _count.

W zasobie pacjenta istnieje element o nazwie link, który łączy pacjenta z innymi pacjentami lub powiązanymi osobami. Ci związani pacjenci pomagają w całościowym spojrzeniu na pierwotnego pacjenta. Odwołanie do odnośnika może być używane, gdy pacjent zastępuje innego pacjenta lub gdy dwa zasoby dotyczące pacjentów mają uzupełniające informacje. Przykładem użycia linków jest sytuacja, kiedy przychodzi 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 powiązań pacjentów, ale tutaj przedstawiamy ogólne podsumowanie.

  • zastępuje — zasób Pacjenta zastępuje innego Pacjenta.
  • refer - Pacjent jest ważny, ale nie jest uważany za główne źródło informacji. Wskazuje innego pacjenta na pobranie dodatkowych informacji.
  • seealso — pacjent ma odsyłacz do innego pacjenta, który jest równie prawidłowy.
  • zastąpiony-przez — zasób pacjenta zastępuje innego pacjenta.

Operacja Patient-everything w usłudze FHIR przetwarza połączenia 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 zasoby RelatedPerson nie są przetwarzane w Patient-everything i nie są zwracane w pakiecie.

W tej chwili operacja Patient-everything zawiera zastępuje i odsyłacze jako część powiązanego pacjenta w obrębie przedziału pacjenta.

Zgodnie z opisem, linki seealso odnoszą się do innego pacjenta, który jest uznawany za równie ważny jak oryginał. Po uruchomieniu operacji Patient-everything, jeśli pacjent ma seealso linki do innych pacjentów, operacja uruchamia Patient-everything dla każdego seealso linku. Oznacza to, że jeśli pacjent jest połączony z pięcioma innymi pacjentami za pomocą łącza typu seealso, uruchamiamy program Patient-everything dla każdego z tych pięciu pacjentów.

Uwaga

Jest to skonfigurowane tak, aby śledzić seealso linki na jednym poziomie głębokości. Nie przetwarza linków seealso w linkach seealso.

Zobacz również diagram przepływu.

Ostatni typ łącza to zastępowany-przez. W takim przypadku oryginalny zasób pacjenta nie jest już używany, a link replaced-by wskazuje na pacjenta, który powinien być używany. Ta implementacja domyślnie Patient-everything obejmuje wynik operacji na początku pakietu z ostrzeżeniem, że pacjent nie jest już prawidłowy. Będzie to również zachowanie, gdy nagłówek Prefer ustawiono na handling=lenient.

Ponadto możesz ustawić nagłówek Prefer na handling=strict, aby zamiast tego wyrzucać błąd. W takim przypadku zwracany jest kod błędu 301 MovedPermanently, który wskazuje, że bieżący pacjent jest nieaktualny, i jednocześnie zwracany jest identyfikator prawidłowego pacjenta, zawartego w linku. Nagłówek ContentLocation zwróconego błędu wskazuje poprawne i up-to-date żądania.

Uwaga

replaced-by Jeśli link jest obecny, Prefer: handling=lenient a wyniki są zwracane asynchronicznie w wielu pakietach, w jednym pakiecie zwracany jest tylko wynik operacji.

Kompleksowa kolejność odpowiedzi dotycząca pacjenta

Operacja Patient-everything zwraca wyniki w fazach:

  1. Faza 1 zwraca zasób Patient oraz wszelkie zasoby generalPractitioner i managingOrganization, do których się odwołuje.
  2. Faza 2 i 3 zwracają zasoby w komorze pacjenta. start Jeśli określono parametry zapytania lubend, faza 2 zwraca zasoby z przedziału, które można filtrować według 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 związane z pacjentami.
  3. Faza 4 zwraca wszystkie urządzenia, które są powiązane z pacjentem.

Każda faza zwraca 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 otrzymaniu wszystkich wyników z fazy następny link w pakiecie wskaże wywołanie w celu zainicjowania następnej fazy.

Jeśli oryginalny pacjent ma jakiekolwiek seealso powiązania, fazy 1-4 będą powtarzane dla każdego z tych pacjentów.

Przykłady wszechstronności związanej z pacjentami

Poniżej przedstawiono 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 wszystkich danych pacjenta od 2010 do 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ć funkcji Patient-everything do wykonywania zapytań o "wszystko" dotyczące pacjenta od dnia 27 maja 2021 roku o godzinie 05:00:00 (UTC), skorzystaj z następującego polecenia.

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

Jeśli dla każdego z tych wywołań zostanie znaleziony pacjent, otrzymasz odpowiedź 200 wraz z Bundle wskazującymi na odpowiednie zasoby.

Następne kroki

Teraz, gdy wiesz, jak używać funkcji Patient-everything, możesz nauczyć się opcji wyszukiwania. Aby uzyskać więcej informacji, zobacz

Uwaga

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.