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 |
Sì | Attualmente supporta tre valori per l'allineamento alla specifica FHIR: application/fhir+ndjson , application/ndjson o solo ndjson . Tutti i processi di esportazione restituiranno .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 quali tipi di risorse verranno inclusi. 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 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.