Ingérer des ressources FHIR (Fast Healthcare Interoperability Resources) dans BigQuery

1. Introduction

1f4764c4ca4c50d9.png

Dernière mise à jour:16/05/2020

Cet atelier de programmation présente un schéma d'ingestion de données permettant d'ingérer des données de santé au format FHIR R4 (ressources standards) dans BigQuery à l'aide des API FHIR Cloud Healthcare. Des données réalistes de tests médicaux ont été générées et mises à votre disposition dans le bucket Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

Dans cet atelier de programmation, vous allez apprendre à:

  • Comment importer des ressources FHIR R4 depuis GCS dans le store FHIR de Cloud Healthcare.
  • Comment exporter des données FHIR du store FHIR vers un ensemble de données dans BigQuery.

De quoi avez-vous besoin pour exécuter cette démonstration ?

  • Vous devez avoir accès à un projet GCP.
  • Vous devez disposer d'un rôle de propriétaire pour le projet GCP.
  • Ressources FHIR R4 au format NDJSON (content-structure=RESOURCE)

Si vous n'avez pas de projet GCP, suivez ces étapes pour en créer un.

Les ressources FHIR R4 au format NDJSON ont été préchargées dans le bucket GCS aux emplacements suivants:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ (ressources standards)

Toutes les ressources ci-dessus ont un format de fichier JSON (New Line Delimiter) JSON (NDJSON), mais une structure de contenu différente:

  • Regular Resources (Ressources standards) au format ndjson : chaque ligne du fichier contient une ressource FHIR principale au format JSON (comme Patient, Observation, etc.). Chaque fichier ndjson contient des ressources FHIR du même type. Par exemple, Patient.ndjson contiendra une ou plusieurs ressources FHIR de type resourceType = ' Patient ' et Observation.ndjson contiendront une ou plusieurs ressources FHIR de type resourceType = ‘ Observation'.

Si vous avez besoin d'un nouvel ensemble de données, vous pouvez toujours le générer à l'aide de SyntheaTM. Ensuite, importez-la dans GCS au lieu d'utiliser le bucket fourni dans l'atelier de programmation.

2. Configuration du projet

Procédez comme suit pour activer l'API Healthcare et accorder les autorisations requises:

Initialiser les variables de shell pour votre environnement

Pour trouver les valeurs PROJECT_NUMBER et PROJECT_ID, consultez Identifier des projets.

<!-- 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>

Activer l'API Healthcare

Les étapes suivantes activeront les API Healthcare dans votre projet GCP. Le compte de service de l'API Healthcare sera ajouté au projet.

  1. Accédez à la bibliothèque d'API de la console GCP.
  2. Dans la liste des projets, sélectionnez un projet.
  3. Dans la bibliothèque d'API, sélectionnez l'API que vous souhaitez activer. Si vous avez besoin d'aide pour trouver l'API, utilisez le champ de recherche et les filtres.
  4. Sur la page de l'API, cliquez sur ACTIVER.

Accéder à l'ensemble de données synthétique

  1. Depuis l'adresse e-mail que vous utilisez pour vous connecter à la console Cloud, envoyez un e-mail à l'adresse hcls-solutions-external+subscribe@google.com pour demander à rejoindre la communauté.
  2. Vous recevrez un e-mail contenant des instructions pour confirmer l'action.
  3. Utilisez l'option permettant de répondre à l'e-mail pour rejoindre le groupe.
  4. NE cliquez PAS sur le bouton 525a0fa752e0acae.png. Cela ne fonctionne pas.
  5. Une fois que vous avez reçu l'e-mail de confirmation, vous pouvez passer à l'étape suivante de l'atelier de programmation.

Créer un bucket Google Cloud Storage dans votre projet GCP

gsutil mb gs://$BUCKET_NAME

Copier des données synthétiques dans votre projet GCP

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

Accorder des autorisations

Avant d'importer des ressources FHIR depuis Cloud Storage et de les exporter vers BigQuery, vous devez accorder des autorisations supplémentaires au compte de service Agent de service Cloud Healthcare . Pour en savoir plus, consultez les sections sur les autorisations BigQuery du magasin FHIR et BigQuery du magasin FHIR.

Accorder des autorisations d'administrateur de l'espace de stockage

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

Accorder des autorisations d'administrateur BigQuery

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

3. Configuration de l'environnement

Suivez ces étapes pour ingérer les données de fichiers NDJSON vers un ensemble de données médical dans BigQuery à l'aide des API FHIR Cloud Healthcare:

Créer un ensemble de données Healthcare et un magasin FHIR

Créer un ensemble de données Healthcare à l'aide des API Cloud Healthcare

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

Créer un store FHIR dans un ensemble de données à l'aide des API Cloud Healthcare

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

4. Importer des données dans un store FHIR

Importez des données de test de Google Cloud Storage vers un magasin FHIR.

Nous allons utiliser les fichiers préchargés du bucket GCS. Ces fichiers contiennent des ressources FHIR R4 standards au format NDJSON. En réponse, vous obtenez le numéro OPERATION_NUMBER, que vous pouvez utiliser lors de l'étape de validation.

Importer des ressources standards depuis le bucket GCS de votre projet 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

Valider

L'opération de validation a bien été exécutée. L'opération peut prendre quelques minutes. Vous devrez donc peut-être répéter cette commande plusieurs fois sans attendre.

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

5. Exporter des données du store FHIR vers BigQuery

Créer un ensemble de données BigQuery

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

Exportez les données de santé du magasin FHIR vers l'ensemble de données 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

En réponse, vous obtenez le numéro OPERATION_NUMBER, que vous pouvez utiliser lors de l'étape de validation.

Valider

L'opération de validation a bien été exécutée

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

Vérifier si l'ensemble de données BigQuery contient les 16 tables

bq ls $PROJECT_ID:$BQ_DATASET

6. Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud Platform, vous pouvez nettoyer les ressources que vous avez créées sur GCP afin qu'elles ne soient pas comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans la console GCP, accédez à la page Projets. ACCÉDER À LA PAGE "PROJETS"
  2. Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Si vous devez conserver le projet, vous pouvez supprimer l'ensemble de données Cloud Healthcare et l'ensemble de données BigQuery à l'aide des instructions suivantes.

Supprimer l'ensemble de données de l'API Cloud Healthcare

Suivez la procédure pour supprimer l'ensemble de données de l'API Healthcare à l'aide de la console GCP et de gcloud CLI.

Commande CLI rapide:

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

Supprimer l'ensemble de données BigQuery

Suivez la procédure pour supprimer un ensemble de données BigQuery à l'aide de différentes interfaces.

Commande CLI rapide:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Félicitations

Félicitations ! Vous avez terminé l'atelier de programmation permettant d'ingérer des données de santé dans BigQuery à l'aide des API Cloud Healthcare.

Vous avez importé des données synthétiques conformes à la norme FHIR R4 depuis Google Cloud Storage dans les API FHIR de Cloud Healthcare.

Vous avez exporté des données depuis les API FHIR Cloud Healthcare vers BigQuery.

Vous connaissez maintenant les principales étapes à suivre pour commencer votre parcours d'analyse de données de santé avec BigQuery sur Google Cloud Platform.