Esportare i dati FHIR

Usando l'operazione in blocco $export nel servizio FHIR, è possibile esportare i dati come descritto nella specifica HL7 FHIR Per l'accesso bulk ai dati.

Prima di provare a usare $export, assicurarsi che il servizio FHIR sia configurato per la connessione con un account Azure Data Lake Archiviazione Gen2. Per configurare le impostazioni di esportazione e creare un account Data Lake Archiviazione Gen2, vedere Configurare le impostazioni per l'esportazione.

Chiamare l'endpoint $export

Dopo aver configurato il servizio FHIR per la connessione con un account Data Lake Archiviazione Gen2, è possibile chiamare l'endpoint $export e il servizio FHIR esportare i dati in un contenitore Archiviazione BLOB di Azure all'interno dell'account di archiviazione. La richiesta di esempio seguente esporta tutte le risorse in un contenitore, specificato dal nome ({{containerName}}). Si noti che è necessario creare il contenitore nell'account Data Lake Archiviazione Gen2 in anticipo se si vuole specificare nella {{containerName}} richiesta.

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

Se non si specifica un nome di contenitore nella richiesta , ad esempio chiamando GET {{fhirurl}}/$export, verrà creato un nuovo contenitore con un nome generato automaticamente per i dati esportati.

Per informazioni generali sulla specifica dell'API FHIR $export , vedere la documentazione del flusso di richiesta di esportazione di HL7 FHIR.

Il servizio FHIR supporta $export i livelli seguenti:

  • Sistema: GET {{fhirurl}}/$export
  • Paziente: GET {{fhirurl}}/Patient/$export
  • Gruppo di pazienti*: GET {{fhirurl}}/Group/[ID]/$export
    *Il servizio FHIR esporta tutte le risorse a cui si fa riferimento, ma non esporta le caratteristiche della risorsa di gruppo stessa.

I dati vengono esportati in più file. Ogni file contiene risorse di un solo tipo. Il numero di risorse in un singolo file sarà limitato. Il numero massimo di risorse è basato sulle prestazioni del sistema. Attualmente è impostato su 5.000, ma può cambiare. Il risultato è che è possibile ottenere più file per un tipo di risorsa. I nomi di file seguiranno il formato <resourceName>-<number>-<number>.ndjson. L'ordine dei file non è garantito che corrisponda ad alcun ordinamento delle risorse nel database.

Nota

Patient/$export e possono esportare Group/[ID]/$export risorse duplicate se una risorsa si trova in più gruppi o in un raggruppamento di più risorse.

Oltre a controllare la presenza di file esportati nell'account di archiviazione, è possibile controllare $export lo stato dell'operazione tramite l'URL nell'intestazione Content-Location restituita nella risposta del servizio FHIR. Per altre informazioni, vedere la documentazione relativa alla richiesta di stato dei dati in blocco di HL7.

Esportare i dati FHIR in Data Lake Archiviazione Gen2

Attualmente, il servizio FHIR supporta $export gli account Data Lake Archiviazione Gen2, con le limitazioni seguenti:

  • Data Lake Archiviazione Gen2 offre spazi dei nomi gerarchici, ma non esiste un modo per indirizzare $export le operazioni a una sottodirectory specifica all'interno di un contenitore. Il servizio FHIR può specificare solo il contenitore di destinazione per l'esportazione, in cui viene creata una nuova cartella per ogni $export operazione.
  • Al termine di un'operazione $export e tutti i dati sono stati scritti all'interno di una cartella, il servizio FHIR non esporta di nuovo nulla in tale cartella, perché le esportazioni successive nello stesso contenitore si troveranno all'interno di una nuova cartella creata.

Per esportare i dati in un account di archiviazione protetto da un firewall, vedere Configurare le impostazioni per l'esportazione.

Impostazioni e parametri

Intestazioni

Per i processi devono essere impostati $export due parametri di intestazione obbligatori. I valori vengono impostati in base alla specifica HL7 $export corrente.

  • Accetta: application/fhir+json
  • Preferisci: respond-async

Parametri di query

Il servizio FHIR supporta i parametri di query seguenti per filtrare i dati esportati. Tutti questi parametri sono facoltativi.

Query parameter (Parametro di query) Definito dalla specifica FHIR? Descrizione
_outputFormat Attualmente supporta tre valori per l'allineamento alla specifica FHIR: application/fhir+ndjson, application/ndjsono solo ndjson. Tutti i processi di esportazione restituiranno .ndjson file e il valore passato non ha alcun effetto sul comportamento del codice.
_since Consente di esportare solo le risorse modificate dopo l'ora specificata.
_type Consente di specificare quali tipi di risorse verranno inclusi. Ad esempio, _type=Patient restituirebbe solo le risorse dei pazienti.
_typeFilter Per richiedere filtri più granulari, è possibile usare _typeFilter insieme al _type parametro . Il valore del _typeFilter parametro è un elenco delimitato da virgole di query FHIR che limitano ulteriormente i risultati.
_container No Specifica il nome del contenitore nell'account di archiviazione configurato in cui devono essere esportati i dati. Se si specifica un contenitore, i dati verranno esportati in una cartella in tale contenitore. Se il contenitore non è specificato, i dati verranno esportati in un nuovo contenitore con un nome generato automaticamente.
_till No Consente di esportare le risorse modificate fino all'ora specificata. Questo parametro è applicabile solo con l'esportazione a livello di sistema. In questo caso, se le versioni cronologiche non sono state disabilitate o eliminate, l'esportazione garantisce la visualizzazione snapshot vera o, in altre parole, consente il viaggio nel tempo.
includeAssociatedData No Consente di esportare la cronologia e le risorse eliminate soft. Questo filtro non funziona con il parametro di query '_typeFilter'. Includere il valore come "_history" per esportare la cronologia o le risorse non più recenti con versione. Includere il valore come "_deleted" per esportare le risorse eliminate soft.

Nota

Solo gli account di archiviazione nella stessa sottoscrizione del servizio FHIR possono essere registrati come destinazione per $export le operazioni.

Risoluzione dei problemi

Le informazioni seguenti consentono di risolvere i problemi relativi all'esportazione dei dati FHIR.

Processi bloccati in uno stato non valido

In alcune situazioni, è possibile che un processo si blocchi in uno stato non valido mentre il servizio FHIR tenta di esportare i dati. Ciò può verificarsi soprattutto se le autorizzazioni dell'account Data Lake Archiviazione Gen2 non sono state configurate correttamente.

Un modo per controllare lo stato dell'operazione $export consiste nel passare al browser di archiviazione dell'account di archiviazione e verificare se i .ndjson file sono presenti nel contenitore di esportazione. Se i file non sono presenti e non sono in esecuzione altri $export processi, è possibile che il processo corrente sia bloccato in uno stato non valido. In questo caso, è possibile annullare il $export processo chiamando l'API del servizio FHIR con una DELETE richiesta. Successivamente, è possibile rieseguere il $export processo e riprovare.

Per altre informazioni sull'annullamento di un'operazione $export , vedere la documentazione relativa alla richiesta di eliminazione dei dati in blocco da HL7.

Nota

Nel servizio FHIR, il tempo predefinito per l'inattività di un'operazione $export in uno stato non valido è di 10 minuti prima che il servizio arresti l'operazione e passi a un nuovo processo.

Passaggi successivi

In questo articolo si è appreso come esportare le risorse FHIR usando l'operazione $export . Per informazioni su come configurare e usare opzioni aggiuntive per l'esportazione, vedere:

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.