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 modèle d'ingestion de données permettant d'ingérer des données de santé au format FHIR R4 (ressources régulières) dans BigQuery à l'aide des API Cloud Healthcare FHIR. Des données de test réalistes pour le secteur de la santé 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 magasin FHIR Cloud Healthcare.
  • Découvrez comment exporter des données FHIR depuis un magasin FHIR vers un ensemble de données dans BigQuery.

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

  • Vous devez avoir accès à un projet GCP.
  • Vous devez détenir le 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 sont au format de fichier JSON délimité par un retour à la ligne (NDJSON), mais leur structure de contenu est différente :

  • Ressources standards au format ndjson : chaque ligne du fichier contient une ressource FHIR de base 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 contiendra 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-le dans GCS au lieu d'utiliser le bucket fourni dans l'atelier de programmation.

2. Configuration du projet

Pour activer l'API Healthcare et accorder les autorisations requises, procédez comme suit :

Initialiser les variables 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 vous permettront d'activer les API Healthcare dans votre projet GCP. Il ajoutera le compte de service de l'API Healthcare 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étiques

  1. Depuis l'adresse e-mail que vous utilisez pour vous connecter à la console Cloud, envoyez un e-mail à hcls-solutions-external+subscribe@google.com pour demander à rejoindre le groupe.
  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 aurez reçu l'e-mail de confirmation, vous pourrez 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 autorisations Cloud Storage pour les datastores FHIR et BigQuery pour les datastores FHIR.

Accorder l'autorisation 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

Procédez comme suit pour ingérer des données à partir de fichiers NDJSON dans un ensemble de données de santé dans BigQuery à l'aide des API Cloud Healthcare FHIR :

Créer un ensemble de données et un magasin FHIR pour le secteur de la santé

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

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

Créer un magasin 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 magasin FHIR

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

Nous utiliserons des fichiers préchargés à partir du bucket GCS. Ces fichiers contiennent des ressources FHIR R4 standards au format NDJSON. En réponse, vous recevrez OPERATION_NUMBER, qui pourra être utilisé 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 s'est terminée avec succès. L'opération peut prendre quelques minutes. Vous devrez peut-être répéter cette commande plusieurs fois avec un certain délai.

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

5. Exporter des données d'un magasin FHIR vers BigQuery

Créer un ensemble de données BigQuery

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

Exporter des données de santé d'un store FHIR vers un 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 recevrez OPERATION_NUMBER, qui pourra être utilisé lors de l'étape de validation.

Valider

L'opération de validation s'est terminée avec succès.

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

Valider 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 plus 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 en suivant les instructions ci-dessous.

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

Suivez les étapes pour supprimer un 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 les étapes pour supprimer l'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 sur l'ingestion de données de santé dans BigQuery à l'aide des API Cloud Healthcare.

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

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

Vous connaissez maintenant les étapes clés nécessaires pour commencer votre parcours d'analyse des données de santé avec BigQuery sur Google Cloud Platform.