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 $export
programu 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}}
). Uwaga: przed przekazaniem należy utworzyć kontener na koncie usługi Data Lake Storage Gen2, jeśli chcesz określić {{containerName}}
element w żądaniu.
GET {{fhirurl}}/$export?_container={{containerName}}
Jeśli nie określisz nazwy kontenera w żądaniu (na przykład przez wywołanie GET {{fhirurl}}/$export
metody ), 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 to. 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 są 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. 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/ndjson lub tylko ndjson . Wszystkie zadania eksportu zwracają .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 mają być uwzględniane. 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. |
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, wysyłając żądanie DELETE do adresu URL podanego w nagłówku Content-Location, aby anulować żądanie
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 innych opcji do eksportowania, zobacz:
Uwaga
FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.