Eksportowanie danych FHIR

Korzystając z operacji zbiorczej $export w usłudze FHIR, można wyeksportować dane zgodnie ze specyfikacją dostępu zbiorczego HL7 FHIR.

Przed podjęciem próby użycia $exportprogramu upewnij się, że usługa FHIR jest skonfigurowana do nawiązywania połączenia z kontem usługi Azure Data Lake Storage Gen2. Aby skonfigurować ustawienia eksportu i utworzyć konto usługi Data Lake Storage Gen2, zobacz Konfigurowanie ustawień eksportu.

Wywoływanie punktu końcowego $export

Po skonfigurowaniu usługi FHIR w celu nawiązania połączenia z kontem usługi Data Lake Storage Gen2 możesz wywołać $export punkt końcowy, a usługa FHIR wyeksportuje dane do kontenera usługi Azure Blob Storage na koncie magazynu. Poniższe przykładowe żądanie eksportuje wszystkie zasoby do kontenera, który jest określony przez nazwę ({{containerName}}). Pamiętaj, że musisz wcześniej utworzyć kontener na koncie usługi Data Lake Storage Gen2, jeśli chcesz określić element {{containerName}} w żądaniu.

GET {{fhirurl}}/$export?_container={{containerName}}

Jeśli nie określisz nazwy kontenera w żądaniu (na przykład przez wywołanie GET {{fhirurl}}/$exportmetody ), zostanie utworzony nowy kontener z automatycznie wygenerowaną nazwą dla wyeksportowanych danych.

Aby uzyskać ogólne informacje na temat specyfikacji interfejsu API FHIR $export , zobacz dokumentację HL7 FHIR Export Request Flow .

Usługa FHIR obsługuje $export następujące poziomy:

  • System: GET {{fhirurl}}/$export
  • Pacjent: GET {{fhirurl}}/Patient/$export
  • Grupa pacjentów*: GET {{fhirurl}}/Group/[ID]/$export
    *Usługa FHIR eksportuje wszystkie przywoływalne zasoby, ale nie eksportuje właściwości samego zasobu grupy.

Dane są eksportowane w wielu plikach. Każdy plik zawiera zasoby tylko jednego typu. Liczba zasobów w pojedynczym pliku będzie ograniczona. Maksymalna liczba zasobów zależy od wydajności systemu. Jest ona obecnie ustawiona na 5000, ale może ulec zmianie. Wynikiem jest to, że możesz uzyskać wiele plików dla typu zasobu. Nazwy plików będą zgodne z formatem <resourceName>-<number>-<number>.ndjson. Kolejność plików nie ma gwarancji, że odpowiada żadnej kolejności zasobów w bazie danych.

Uwaga

Patient/$export i Group/[ID]/$export może eksportować zduplikowane zasoby, jeśli zasób znajduje się w wielu grupach lub w przedziale więcej niż jednego zasobu.

Oprócz sprawdzania obecności wyeksportowanych plików na koncie magazynu możesz sprawdzić $export stan operacji za pomocą adresu URL w Content-Location nagłówku zwróconym w odpowiedzi usługi FHIR. Aby uzyskać więcej informacji, zobacz dokumentację żądania stanu danych zbiorczych z HL7.

Eksportowanie danych FHIR do usługi Data Lake Storage Gen2

Obecnie usługa FHIR obsługuje $export konta usługi Data Lake Storage Gen2 z następującymi ograniczeniami:

  • Usługa Data Lake Storage Gen2 udostępnia hierarchiczne przestrzenie nazw, ale nie ma możliwości kierowania $export operacji do określonego podkatalogu w kontenerze. Usługa FHIR może określać tylko kontener docelowy eksportu, w którym tworzony jest nowy folder dla każdej $export operacji.
  • Po zakończeniu $export operacji i zapisaniu wszystkich danych w folderze usługa FHIR nie eksportuje niczego do tego folderu ponownie, ponieważ kolejne eksporty do tego samego kontenera będą znajdować się w nowo utworzonym folderze.

Aby wyeksportować dane do konta magazynu za zaporą, zobacz Konfigurowanie ustawień eksportu.

Ustawienia i parametry

Nagłówki

Dla zadań należy ustawić dwa wymagane parametry nagłówka $export . Wartości są ustawiane zgodnie z bieżącą specyfikacją $export HL7.

  • Zaakceptuj: application/fhir+json
  • Preferuj: respond-async

Parametry zapytań

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

Parametr zapytania Zdefiniowane przez specyfikację FHIR? opis
_outputFormat Tak Obecnie obsługuje trzy wartości w celu wyrównania do specyfikacji FHIR: application/fhir+ndjson, application/ndjsonlub tylko ndjson. Wszystkie zadania eksportu będą zwracać .ndjson pliki, a przekazana wartość nie ma wpływu na zachowanie kodu.
_since Tak Umożliwia eksportowanie tylko zasobów, które zostały zmodyfikowane od określonego czasu.
_type Tak Umożliwia określenie typów zasobów, które zostaną uwzględnione. Na przykład _type=Patient zwraca tylko zasoby pacjentów.
_typeFilter Tak Aby zażądać bardziej szczegółowego filtrowania, możesz użyć parametru _typeFilter wraz z parametrem _type . Wartość parametru _typeFilter jest rozdzielaną przecinkami listą zapytań FHIR, które dodatkowo ograniczają wyniki.
_container Nie. Określa nazwę kontenera na skonfigurowanym koncie magazynu, na którym mają być eksportowane dane. Jeśli zostanie określony kontener, dane zostaną wyeksportowane do folderu w tym kontenerze. Jeśli kontener nie zostanie określony, dane zostaną wyeksportowane do nowego kontenera z automatycznie wygenerowaną nazwą.
_till Nie. Umożliwia eksportowanie zasobów, które zostały zmodyfikowane do określonego czasu. Ten parametr ma zastosowanie tylko w przypadku eksportu na poziomie systemu. W takim przypadku, jeśli wersje historyczne nie zostały wyłączone lub przeczyszczone, eksport gwarantuje prawdziwy widok migawki lub, innymi słowy, umożliwia podróż w czasie.
includeAssociatedData Nie. Umożliwia eksportowanie historii i nietrwałych usuniętych zasobów. Ten filtr nie działa z parametrem zapytania "_typeFilter". Uwzględnij wartość jako "_history", aby wyeksportować historię/nie najnowsze wersje zasobów. Uwzględnij wartość jako "_deleted", aby wyeksportować nietrwałe usunięte zasoby.

Uwaga

Tylko konta magazynu w tej samej subskrypcji co usługa FHIR mogą być zarejestrowane jako miejsce docelowe dla $export operacji.

Rozwiązywanie problemów

Poniższe informacje mogą pomóc w rozwiązywaniu problemów z eksportowaniem danych FHIR.

Zadania zablokowane w złym stanie

W niektórych sytuacjach istnieje możliwość zaklejenia zadania w złym stanie, gdy usługa FHIR próbuje wyeksportować dane. Może się tak zdarzyć, zwłaszcza jeśli uprawnienia konta usługi Data Lake Storage Gen2 nie zostały prawidłowo skonfigurowane.

Jednym ze sposobów sprawdzenia stanu $export operacji jest przejście do przeglądarki magazynu konta magazynu i sprawdzenie, czy w kontenerze eksportu znajdują się jakiekolwiek .ndjson pliki. Jeśli pliki nie są obecne i żadne inne $export zadania nie są uruchomione, możliwe, że bieżące zadanie jest zablokowane w złym stanie. W takim przypadku możesz anulować $export zadanie, wywołując interfejs API usługi FHIR za pomocą DELETE żądania. Później możesz ponownie utworzyć kolejkę $export zadania i spróbować ponownie.

Aby uzyskać więcej informacji na temat anulowania operacji, zobacz dokumentację zbiorczego $exportżądania usuwania danych z HL7.

Uwaga

W usłudze FHIR domyślny czas bezczynności $export operacji wynosi 10 minut, zanim usługa zatrzyma operację i przeniesie się do nowego zadania.

Następne kroki

W tym artykule przedstawiono sposób eksportowania zasobów FHIR przy użyciu $export operacji . Aby uzyskać informacje o sposobie konfigurowania i używania dodatkowych opcji eksportu, zobacz:

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