Stocker des données de santé avec Google Cloud CLI

Cette page explique comment utiliser l'API Cloud Healthcare et Google Cloud CLI pour effectuer les tâches suivantes :

  1. créer un ensemble de données pour l'API Cloud Healthcare ;
  2. Créer l'un des datastores suivants dans l'ensemble de données :
    • Magasin DICOM (Digital Imaging and Communications in Medicine)
    • Datastore FHIR (Fast Healthcare Interoperability Resources)
    • Datastore HL7v2 (Health Level Seven International Version 2)
  3. Stockez les données DICOM, FHIR et HL7v2, et affichez les métadonnées DICOM.

Si vous souhaitez n'utiliser qu'un seul type de data store, vous pouvez passer directement à cette section du guide de démarrage rapide après avoir suivi les étapes décrites dans les sections Avant de commencer et Créer un ensemble de données.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Healthcare API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable healthcare.googleapis.com
  8. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  11. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  12. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Cloud Healthcare API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable healthcare.googleapis.com
  15. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  16. Créer un ensemble de données

    Les ensembles de données contiennent des datastores. Les datastores contiennent des données de santé. Pour utiliser l'API Cloud Healthcare, vous devez créer au moins un ensemble de données.

    L'exemple suivant montre comment créer un ensemble de données nommé my-dataset dans la région us-central1. Vous utiliserez l'ensemble de données tout au long de ce guide de démarrage rapide pour créer des magasins DICOM, FHIR et HL7v2.

    gcloud

    Créez un ensemble de données à l'aide de la commande gcloud healthcare datasets create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare datasets create my-dataset \
      --project=PROJECT_ID \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare datasets create my-dataset `
      --project=PROJECT_ID `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare datasets create my-dataset ^
      --project=PROJECT_ID ^
      --location=us-central1

    Vous devriez obtenir un résultat semblable à celui-ci :

    Réponse

    Create request issued for: [my-dataset]
    Created dataset [my-dataset].
    

    Pour suivre ce guide de démarrage rapide, choisissez l'une des sections suivantes :

    Stocker et afficher une instance DICOM

    Ce document explique comment effectuer les tâches suivantes :

    1. Créer un magasin DICOM.
    2. Importez une instance DICOM depuis un bucket Cloud Storage public dans le magasin DICOM.
    3. Afficher les métadonnées de l'instance DICOM.

    L'API Cloud Healthcare met en œuvre la norme DICOMweb pour stocker et accéder aux données d'imagerie médicale.

    Créer un datastore DICOM

    Les magasins DICOM existent à l'intérieur des ensembles de données et contiennent des instances DICOM. L'exemple suivant montre comment créer un datastore DICOM nommé my-dicom-store.

    gcloud

    Créez un magasin DICOM à l'aide de la commande gcloud healthcare dicom-stores create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare dicom-stores create my-dicom-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare dicom-stores create my-dicom-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare dicom-stores create my-dicom-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1

    Vous devriez obtenir un résultat semblable à celui-ci :

    Réponse

    Created dicomStore [my-dicom-store].

    Importer une instance DICOM

    Des exemples de données DICOM sont disponibles dans le bucket Cloud Storage gs://gcs-public-data--healthcare-nih-chest-xray.

    gcloud

    Importez l'instance gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm à l'aide de la commande gcloud healthcare dicom-stores import.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare dicom-stores import gcs my-dicom-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    Windows (PowerShell)

    gcloud healthcare dicom-stores import gcs my-dicom-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    Windows (cmd.exe)

    gcloud healthcare dicom-stores import gcs my-dicom-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    Dans ce résultat :

    • PROJECT_ID, us-central1, my-dataset, my-dicom-store : valeurs que vous avez fournies lors de l'exécution de la commande
    • OPERATION_ID : identifiant de l'opération de longue durée fourni par l'API Cloud Healthcare lorsque vous importez une instance DICOM. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un certain temps. L'importation d'une instance DICOM est généralement une opération rapide. La sortie est donc renvoyée presque immédiatement.

    Réponse

    Request issued for: [my-dicom-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store
    

    Afficher les métadonnées d'instance DICOM

    gcloud CLI n'accepte pas les transactions DICOMweb, telles que l'affichage ou la récupération d'instances. Au lieu de cela, vous pouvez utiliser l'outil de ligne de commande DICOMweb de Google, qui s'exécute à l'aide de Python. Pour savoir comment configurer Python sur Google Cloud, consultez Configurer un environnement de développement Python.

    Pour afficher les métadonnées de l'instance DICOM à l'aide de l'outil de ligne de commande DICOMweb, procédez comme suit :

    1. Installez l'outil de ligne de commande DICOMweb à l'aide de Pip :

      pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
      
    2. Mettez à jour la variable PATH afin d'inclure l'emplacement d'installation de dcmweb :

      export PATH="$HOME/bin:$PATH"
      
    3. Affichez les métadonnées de l'instance DICOM :

      dcmweb \
        https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb \
        search instances

      Remplacez PROJECT_ID par l'ID du Google Cloud projet que vous avez créé ou sélectionné dans la section Avant de commencer.

      Le résultat est le suivant. Consultez Attributs du module commun SOP pour connaître les champs de la sortie.

      [
        {
          "00080016": {
            "Value": [
              "1.2.840.10008.5.1.4.1.1.7"
            ],
            "vr": "UI"
          },
          "00080018": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480"
            ],
            "vr": "UI"
          },
          "00080060": {
            "Value": [
              "DX"
            ],
            "vr": "CS"
          },
          "00100020": {
            "Value": [
              "1"
            ],
            "vr": "LO"
          },
          "00100040": {
            "Value": [
              "M"
            ],
            "vr": "CS"
          },
          "0020000D": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604"
            ],
            "vr": "UI"
          },
          "0020000E": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724"
            ],
            "vr": "UI"
          },
          "00280010": {
            "Value": [
              1024
            ],
            "vr": "US"
          },
          "00280011": {
            "Value": [
              1024
            ],
            "vr": "US"
          },
          "00280100": {
            "Value": [
              8
            ],
            "vr": "US"
          }
        }
      ]
      

    Après avoir importé l'instance DICOM dans l'API Cloud Healthcare et affiché ses métadonnées, passez à l'étape Effectuer un nettoyage pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud .

    Pour en savoir plus sur les étapes suivantes, telles que la recherche ou la récupération d'images DICOM à l'aide de la norme DICOMweb dans l'API Cloud Healthcare, consultez la section Étapes suivantes.

    Stocker des ressources FHIR

    Ce document explique comment effectuer les tâches suivantes :

    1. Créez un magasin FHIR.
    2. Importez des ressources FHIR depuis un bucket Cloud Storage public dans le magasin FHIR.

    Créer un datastore FHIR

    Les magasins FHIR existent à l'intérieur des ensembles de données et contiennent des ressources FHIR. L'exemple suivant montre comment créer un magasin FHIR nommé my-fhir-store qui utilise la version R4 de FHIR.

    gcloud

    Créez un magasin FHIR à l'aide de la commande gcloud healthcare fhir-stores create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare fhir-stores create my-fhir-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --version=R4

    Windows (PowerShell)

    gcloud healthcare fhir-stores create my-fhir-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --version=R4

    Windows (cmd.exe)

    gcloud healthcare fhir-stores create my-fhir-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --version=R4

    Vous devriez obtenir un résultat semblable à celui-ci :

    Réponse

    Created fhirStore [my-fhir-store].

    Importer des ressources FHIR

    Des exemples de données FHIR sont disponibles dans le bucket Cloud Storage gs://gcp-public-data--synthea-fhir-data-10-patients.

    gcloud

    Importez les ressources FHIR dans gs://gcp-public-data--synthea-fhir-data-10-patients à l'aide de la commande gcloud healthcare fhir-stores import.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare fhir-stores import gcs my-fhir-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson \
      --content-structure=RESOURCE

    Windows (PowerShell)

    gcloud healthcare fhir-stores import gcs my-fhir-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson `
      --content-structure=RESOURCE

    Windows (cmd.exe)

    gcloud healthcare fhir-stores import gcs my-fhir-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson ^
      --content-structure=RESOURCE

    Dans ce résultat :

    • PROJECT_ID, us-central1, my-dataset, my-fhir-store : valeurs que vous avez fournies lors de l'exécution de la commande
    • OPERATION_ID : identifiant de l'opération de longue durée fourni par l'API Cloud Healthcare lorsque vous importez une ressource FHIR. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un certain temps. L'importation des ressources FHIR prend environ une à deux minutes.
    • R4 : version du magasin FHIR

    Réponse

    Request issued for: [my-fhir-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store
    version: R4
    

    Après avoir importé les ressources FHIR dans l'API Cloud Healthcare, passez à la section Effectuer un nettoyage pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud .

    Pour en savoir plus sur les étapes suivantes, telles que l'affichage et la recherche de ressources FHIR, consultez la section Étapes suivantes.

    Stocker un message HL7v2

    Ce document explique comment effectuer les tâches suivantes :

    1. Créer un magasin HL7v2.
    2. Importez un message HL7v2 depuis un bucket Cloud Storage public vers le magasin HL7v2.

    L'implémentation HL7v2 de l'API Cloud Healthcare est conforme à la norme HL7v2.

    Créer un datastore HL7v2

    Les datastores HL7v2 existent au sein des ensembles de données et contiennent des messages HL7v2. L'exemple suivant montre comment créer un magasin HL7v2 nommé my-hl7v2-store.

    gcloud

    Créez un magasin HL7v2 à l'aide de la commande gcloud healthcare hl7v2-stores create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare hl7v2-stores create my-hl7v2-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare hl7v2-stores create my-hl7v2-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare hl7v2-stores create my-hl7v2-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1

    Vous devriez obtenir un résultat semblable à celui-ci :

    Réponse

    Created hl7v2Store [my-hl7v2-store].

    Importer des messages HL7v2

    gcloud

    Importez le message HL7v2 gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson à l'aide de la commande gcloud healthcare hl7v2-stores import.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    Windows (PowerShell)

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    Windows (cmd.exe)

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    Dans ce résultat :

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store : valeurs que vous avez fournies lors de l'exécution de la commande
    • OPERATION_ID : identifiant de l'opération de longue durée fourni par l'API Cloud Healthcare lorsque vous importez un message HL7v2. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un certain temps. L'importation d'un message HL7v2 est généralement une opération rapide. La sortie est donc renvoyée presque immédiatement.

    Réponse

    Request issued for: [my-hl7v2-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store
    

    Après avoir importé le message HL7v2 dans l'API Cloud Healthcare, passez à la section Effectuer un nettoyage pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud .

    Pour en savoir plus sur les étapes suivantes, telles que l'affichage du contenu d'un message HL7v2, consultez la section Étapes suivantes.

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

    Si vous avez créé un projet pour ce démarrage rapide, suivez les étapes décrites dans la section Supprimer le projet. Sinon, suivez la procédure décrite dans la section Supprimer l'ensemble de données.

    Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

    Supprimer le projet

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Supprimer l'ensemble de données

    Si vous n'avez plus besoin de l'ensemble de données créé dans ce guide de démarrage rapide, vous pouvez le supprimer. La suppression d'un ensemble de données entraîne la suppression définitive de l'ensemble de données et des datastores FHIR, HL7v2 ou DICOM qu'il contient.

    gcloud

    Supprimez un ensemble de données à l'aide de la commande gcloud healthcare datasets delete.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud healthcare datasets delete my-dataset \
      --project=PROJECT_ID \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare datasets delete my-dataset `
      --project=PROJECT_ID `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare datasets delete my-dataset ^
      --project=PROJECT_ID ^
      --location=us-central1
    Pour confirmer, saisissez Y. Vous devriez obtenir un résultat semblable au suivant.

    Réponse

    You are about to delete dataset [my-dataset]
    
    Do you want to continue (Y/n)?  Y
    
    Deleted dataset [my-dataset].
    

    Comment ça s'est passé ?

    Étapes suivantes

    Consultez les sections suivantes pour obtenir des informations générales sur l'API Cloud Healthcare et découvrir comment effectuer les tâches de ce guide de démarrage rapide à l'aide d'une autre interface :

    DICOM

    Consultez la déclaration de conformité DICOM pour en savoir plus sur la manière dont l'API Cloud Healthcare implémente la norme DICOMweb.

    FHIR

    Consultez la déclaration de conformité FHIR pour en savoir plus sur la manière dont l'API Cloud Healthcare implémente la norme FHIR.

    HL7v2