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 Storage Gen2. Per configurare le impostazioni di esportazione e creare un account Data Lake Storage 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 Storage Gen2, è possibile chiamare l'endpoint $export
e il servizio FHIR esporta 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}}
). Nota: è necessario creare il contenitore nell'account Data Lake Storage Gen2 prima di procedere se si vuole specificare {{containerName}}
nella 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 è. 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 seguono 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 Storage Gen2
Attualmente, il servizio FHIR supporta $export
gli account Data Lake Storage Gen2, con le limitazioni seguenti:
- Data Lake Storage 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. Le esportazioni successive nello stesso contenitore si troveranno all'interno di una cartella appena 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 |
Sì | Attualmente supporta tre valori per l'allineamento alla specifica FHIR: application/fhir+ndjson , application/ndjson o solo ndjson . Tutti i processi di esportazione restituiscono .ndjson file e il valore passato non ha alcun effetto sul comportamento del codice. |
_since |
Sì | Consente di esportare solo le risorse modificate dopo l'ora specificata. |
_type |
Sì | Consente di specificare i tipi di risorse da includere. Ad esempio, _type=Patient restituirebbe solo le risorse dei pazienti. |
_typeFilter |
Sì | 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 vengono esportati in una cartella in tale contenitore. Se il contenitore non viene specificato, i dati vengono 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 una visualizzazione snapshot vera. |
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 con versione non più recenti. 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 Storage 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 inviando una richiesta DELETE all'URL fornito nell'intestazione Content-Location per annullare la richiesta
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 altre opzioni per l'esportazione, vedere:
Nota
FHIR® è un marchio registrato di HL7 ed è usato con l'autorizzazione di HL7.