Importa FHIR (Fast Healthcare Interoperability Resources) in BigQuery

1. Introduzione

1f4764c4ca4c50d9.png

Ultimo aggiornamento: 16/05/2020

Questo codelab mostra un pattern di importazione dei dati per importare dati sanitari formattati FHIR R4 (risorse regolari) in BigQuery utilizzando le API Cloud Healthcare FHIR. Sono stati generati e resi disponibili dati di test sanitari realistici nel bucket Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

In questo codelab imparerai:

  • Come importare le risorse FHIR R4 da GCS nel datastore FHIR di Cloud Healthcare.
  • Come esportare i dati FHIR da FHIR Store a un set di dati in BigQuery.

Cosa serve per eseguire questa demo?

  • Devi avere accesso a un progetto Google Cloud.
  • Devi avere il ruolo di Proprietario per il progetto Google Cloud.
  • Risorse FHIR R4 in formato NDJSON (content-structure=RESOURCE)

Se non hai un progetto Google Cloud, segui questi passaggi per crearne uno nuovo.

Le risorse FHIR R4 in formato NDJSON sono state precaricate nel bucket GCS nelle seguenti posizioni:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - Risorse regolari

Tutte le risorse riportate sopra hanno il formato file JSON delimitato da un carattere di nuova riga (NDJSON), ma una struttura dei contenuti diversa:

  • Risorse regolari in formato ndjson: ogni riga del file contiene una risorsa FHIR di base in formato JSON (ad esempio Patient, Observation e così via). Ogni file ndjson contiene risorse FHIR dello stesso tipo. Ad esempio, Patient.ndjson conterrà una o più risorse FHIR di resourceType = " Patient" e Observation.ndjson conterrà una o più risorse FHIR di resourceType = " Observation".

Se hai bisogno di un nuovo set di dati, puoi sempre generarlo utilizzando SyntheaTM. Quindi, caricalo su GCS anziché utilizzare il bucket fornito in codelab.

2. Configurazione del progetto

Segui questi passaggi per abilitare l'API Healthcare e concedere le autorizzazioni richieste:

Inizializzare le variabili della shell per l'ambiente

Per trovare PROJECT_NUMBER e PROJECT_ID, consulta Identificazione dei progetti.

<!-- CODELAB: Initialize shell variables -->
export PROJECT_ID=<PROJECT_ID>
export PROJECT_NUMBER=<PROJECT_NUMBER>
export SRC_BUCKET_NAME=hcls_testing_data_fhir_10_patients
export BUCKET_NAME=<BUCKET_NAME>
export DATASET_ID=<DATASET_ID>
export FHIR_STORE=<FHIR_STORE>
export BQ_DATASET=<BQ_DATASET>

Abilita l'API Healthcare

I passaggi seguenti consentono di attivare le API Healthcare nel tuo progetto GCP. Verrà aggiunto l'service account dell'API Healthcare al progetto.

  1. Vai alla libreria API della console GCP.
  2. Dall'elenco dei progetti, seleziona il tuo progetto.
  3. Nella libreria API, seleziona l'API che vuoi abilitare. Se hai bisogno di aiuto per trovare l'API, utilizza il campo di ricerca e i filtri.
  4. Nella pagina dell'API, fai clic su ABILITA.

Ottenere l'accesso al set di dati sintetici

  1. Dall'indirizzo email che utilizzi per accedere a Cloud Console, invia un'email a hcls-solutions-external+subscribe@google.com richiedendo di partecipare.
  2. Riceverai un'email con le istruzioni su come confermare l'azione.
  3. Utilizza l'opzione per rispondere all'email per iscriverti al gruppo.
  4. NON fare clic sul pulsante 525a0fa752e0acae.png. Non funziona.
  5. Una volta ricevuta l'email di conferma, puoi procedere al passaggio successivo del codelab.

Crea un bucket Google Cloud Storage nel tuo progetto GCP

gsutil mb gs://$BUCKET_NAME

Copia i dati sintetici nel tuo progetto Google Cloud

gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
gs://$BUCKET_NAME/fhir_r4_ndjson/

Concedi le autorizzazioni

Prima di importare le risorse FHIR da Cloud Storage ed esportarle in BigQuery, devi concedere autorizzazioni aggiuntive all'account di servizio dell'agente di servizio Cloud Healthcare . Per ulteriori informazioni, consulta le autorizzazioni Cloud Storage per gli archivi FHIR e BigQuery per gli archivi FHIR.

Concedere l'autorizzazione di amministratore Storage

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/storage.objectViewer

Concedere le autorizzazioni BigQuery Admin

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/bigquery.admin

3. Configurazione dell'ambiente

Segui questi passaggi per importare i dati dai file NDJSON nel set di dati sanitari in BigQuery utilizzando le API Cloud Healthcare FHIR:

Crea il set di dati sanitari e l'archivio FHIR

Crea un set di dati sanitari utilizzando le API Cloud Healthcare

gcloud beta healthcare datasets create $DATASET_ID --location=us-central1

Crea l'archivio FHIR nel set di dati utilizzando le API Cloud Healthcare

gcloud beta healthcare fhir-stores create $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --version=r4

4. Importa i dati nel datastore FHIR

Importa i dati di test da Google Cloud Storage a FHIR Store.

Utilizzeremo i file precaricati dal bucket GCS. Questi file contengono risorse regolari FHIR R4 in formato NDJSON. Come risposta, riceverai OPERATION_NUMBER, che può essere utilizzato nel passaggio di convalida.

Importa risorse regolari dal bucket GCS nel progetto GCP

gcloud beta healthcare fhir-stores import gcs $FHIR_STORE \
  --dataset=$DATASET_ID --async \
  --gcs-uri=gs://$BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
  --location=us-central1 --content-structure=RESOURCE

Convalida

L'operazione di convalida è stata completata correttamente. L'operazione potrebbe richiedere alcuni minuti, quindi potresti dover ripetere questo comando più volte con un po' di ritardo.

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

5. Esportare i dati da FHIR Store a BigQuery

Crea un set di dati BigQuery

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

Esportare i dati sanitari da FHIR Store al set di dati BigQuery

gcloud beta healthcare fhir-stores export bq $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --async \
  --bq-dataset=bq://$PROJECT_ID.$BQ_DATASET \
  --schema-type=analytics

Come risposta, riceverai OPERATION_NUMBER, che può essere utilizzato nel passaggio di convalida.

Convalida

Validate operation finished successfully

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

Verifica che il set di dati BigQuery contenga tutte le 16 tabelle

bq ls $PROJECT_ID:$BQ_DATASET

6. Esegui la pulizia

Per evitare che al tuo account Google Cloud Platform vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, puoi eliminare le risorse che hai creato su GCP in modo che non occupino la tua quota e non ti vengano addebitate in futuro. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.

Per eliminare il progetto:

  1. Nella console di GCP, vai alla pagina Progetti. VAI ALLA PAGINA PROGETTI
  2. Nell'elenco dei progetti, seleziona quello da eliminare e fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

Se devi conservare il progetto, puoi eliminare il set di dati Cloud Healthcare e il set di dati BigQuery seguendo le istruzioni riportate di seguito.

Eliminare il set di dati dell'API Cloud Healthcare

Segui i passaggi per eliminare il set di dati dell'API Healthcare utilizzando sia la console GCP che gcloud CLI.

Comando rapido dell'interfaccia a riga di comando:

gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1

Elimina il set di dati BigQuery

Segui i passaggi per eliminare il set di dati BigQuery utilizzando interfacce diverse.

Comando rapido dell'interfaccia a riga di comando:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Complimenti

Congratulazioni, hai completato il codelab per importare dati sanitari in BigQuery utilizzando le API Cloud Healthcare.

Hai importato dati sintetici conformi a FHIR R4 da Google Cloud Storage nelle API Cloud Healthcare FHIR.

Hai esportato i dati dalle API Cloud Healthcare FHIR a BigQuery.

Ora conosci i passaggi chiave necessari per iniziare il tuo percorso di analisi dei dati sanitari con BigQuery su Google Cloud.