Almacenar datos sanitarios con Google Cloud CLI

En esta página se muestra cómo usar la API Cloud Healthcare y la CLI de Google Cloud para completar las siguientes tareas:

  1. Crea un conjunto de datos de la API Cloud Healthcare.
  2. Crea uno de los siguientes almacenes de datos en el conjunto de datos:
    • Almacén Digital Imaging and Communications in Medicine (DICOM)
    • Almacén Fast Healthcare Interoperability Resources (FHIR)
    • Almacén Health Level Seven International Version 2 (HL7v2)
  3. Almacena datos DICOM, FHIR y HL7v2, y consulta metadatos DICOM.

Si solo te interesa trabajar con un tipo de almacén de datos, puedes ir directamente a esa sección de la guía de inicio rápido después de completar los pasos de las secciones Antes de empezar y Crear un conjunto de datos.

Antes de empezar

  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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    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. Crear conjunto de datos

    Los conjuntos de datos contienen almacenes de datos, y estos, a su vez, contienen datos sanitarios. Para utilizar la API Cloud Healthcare, antes debes crear al menos un conjunto de datos.

    En el siguiente ejemplo se muestra cómo crear un conjunto de datos llamado my-dataset en la región us-central1. En esta guía de inicio rápido, usarás el conjunto de datos para crear almacenes DICOM, almacenes FHIR y almacenes HL7v2.

    gcloud

    Crea un conjunto de datos con el comando gcloud healthcare datasets create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    Deberías recibir una respuesta similar a la siguiente:

    Respuesta

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

    Para completar esta guía de inicio rápido, elige una de las siguientes secciones:

    Almacenar y ver una instancia DICOM

    En esta sección se explica cómo completar las siguientes tareas:

    1. Crea un almacén DICOM.
    2. Importa una instancia DICOM de un segmento público de Cloud Storage al almacén DICOM.
    3. Consulta los metadatos de la instancia DICOM.

    La API de Cloud Healthcare implementa el estándar DICOMweb para almacenar y acceder a datos de imágenes médicas.

    Crear un almacén DICOM

    Los almacenes DICOM están dentro de conjuntos de datos y contienen instancias DICOM. En el siguiente ejemplo se muestra cómo crear un almacén DICOM llamado my-dicom-store.

    gcloud

    Crea un almacén DICOM con el comando gcloud healthcare dicom-stores create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    Deberías recibir una respuesta similar a la siguiente:

    Respuesta

    Created dicomStore [my-dicom-store].

    Importar una instancia DICOM

    Hay datos DICOM de muestra disponibles en el segmento de gs://gcs-public-data--healthcare-nih-chest-xray Cloud Storage.

    gcloud

    Importa la instancia gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm con el comando gcloud healthcare dicom-stores import.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    En este resultado:

    • PROJECT_ID, us-central1, my-dataset y my-dicom-store: los valores que has proporcionado al ejecutar el comando
    • OPERATION_ID: identificador de la operación de larga duración proporcionada por la API Cloud Healthcare al importar una instancia DICOM. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar mucho tiempo en completarse. Importar una instancia DICOM suele ser una operación rápida, por lo que el resultado se devuelve casi inmediatamente.

    Respuesta

    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
    

    Ver metadatos de instancias DICOM

    La CLI de gcloud no admite transacciones de DICOMweb, como ver o recuperar instancias. En su lugar, puedes usar la herramienta de línea de comandos DICOMweb de Google, que se ejecuta con Python. Para obtener información sobre cómo configurar Python en Google Cloud, consulta el artículo Configurar un entorno de desarrollo de Python.

    Sigue estos pasos para ver los metadatos de la instancia DICOM con la herramienta de línea de comandos DICOMweb:

    1. Instala la herramienta de línea de comandos DICOMweb con Pip:

      pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
      
    2. Actualiza la variable PATH para incluir la ubicación de instalación de dcmweb:

      export PATH="$HOME/bin:$PATH"
      
    3. Para ver los metadatos de la instancia DICOM, sigue estos pasos:

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

      Sustituye PROJECT_ID por el ID del Google Cloud proyecto que has creado o seleccionado en la sección Antes de empezar.

      El resultado es el siguiente. Consulta los atributos del módulo común de SOP para ver los campos de la salida.

      [
        {
          "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"
          }
        }
      ]
      

    Después de importar la instancia DICOM en la API Cloud Healthcare y ver sus metadatos, ve a la sección Limpieza para evitar que se te cobren los recursos utilizados en esta página en tu cuenta de Google Cloud .

    Para obtener información sobre los pasos siguientes, como buscar o recuperar imágenes DICOM con el estándar DICOMweb en la API Cloud Healthcare, consulta la sección Pasos siguientes.

    Almacenar recursos FHIR

    En esta sección se explica cómo completar las siguientes tareas:

    1. Crea un almacén FHIR.
    2. Importa recursos FHIR de un segmento público de Cloud Storage al almacén FHIR.

    Crear un almacén FHIR

    Los almacenes FHIR están dentro de conjuntos de datos y contienen recursos FHIR. En el siguiente ejemplo se muestra cómo crear un almacén FHIR llamado my-fhir-store que usa la versión R4 de FHIR.

    gcloud

    Crea un almacén FHIR con el comando gcloud healthcare fhir-stores create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    Deberías recibir una respuesta similar a la siguiente:

    Respuesta

    Created fhirStore [my-fhir-store].

    Importar recursos FHIR

    Hay datos FHIR de muestra disponibles en el gs://gcp-public-data--synthea-fhir-data-10-patients segmento de Cloud Storage.

    gcloud

    Importa los recursos FHIR de gs://gcp-public-data--synthea-fhir-data-10-patients con el comando gcloud healthcare fhir-stores import.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    En este resultado:

    • PROJECT_ID, us-central1, my-dataset y my-fhir-store: los valores que has proporcionado al ejecutar el comando
    • OPERATION_ID: identificador de la operación de larga duración proporcionado por la API de Cloud Healthcare al importar un recurso FHIR. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar mucho tiempo en completarse. La importación de los recursos FHIR tarda entre uno y dos minutos.
    • R4: la versión del almacén FHIR

    Respuesta

    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
    

    Después de importar los recursos FHIR a la API Cloud Healthcare, ve a la sección Limpieza para evitar que se te cobren los recursos que has usado en esta página en tu cuenta de Google Cloud .

    Para obtener información sobre los pasos siguientes, como cómo ver y buscar recursos FHIR, consulta la sección Pasos siguientes.

    Almacenar un mensaje HL7v2

    En esta sección se explica cómo completar las siguientes tareas:

    1. Crea un almacén HL7v2.
    2. Importa un mensaje HL7v2 desde un segmento público de Cloud Storage al almacén HL7v2.

    La implementación de HL7 v. 2 en la API Cloud Healthcare se ajusta al estándar HL7 v. 2.

    Crear un almacén HL7v2

    Los almacenes HL7v2 están dentro de conjuntos de datos y contienen mensajes HL7v2. En el siguiente ejemplo se muestra cómo crear un almacén HL7v2 llamado my-hl7v2-store.

    gcloud

    Crea un almacén HL7v2 con el comando gcloud healthcare hl7v2-stores create.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    Deberías recibir una respuesta similar a la siguiente:

    Respuesta

    Created hl7v2Store [my-hl7v2-store].

    Importar mensajes HL7v2

    gcloud

    Importa el mensaje HL7v2 gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson con el comando gcloud healthcare hl7v2-stores import.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    En este resultado:

    • PROJECT_ID, us-central1, my-dataset y my-hl7v2-store: los valores que has proporcionado al ejecutar el comando
    • OPERATION_ID: identificador de la operación de larga duración proporcionada por la API Cloud Healthcare al importar un mensaje HL7v2. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar mucho tiempo en completarse. Importar un mensaje HL7v2 suele ser una operación rápida, por lo que el resultado se devuelve casi inmediatamente.

    Respuesta

    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
    

    Después de importar el mensaje HL7v2 en la API Cloud Healthcare, ve a la sección Limpiar para evitar que se te cobren los recursos que has usado en esta página en tu cuenta de Google Cloud .

    Para obtener información sobre los pasos siguientes, como ver el contenido de un mensaje HL7v2, consulta la sección Pasos siguientes.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.

    Si has creado un proyecto para esta guía de inicio rápido, sigue los pasos que se indican en la sección Eliminar el proyecto. De lo contrario, sigue los pasos que se indican en Eliminar el conjunto de datos.

    Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

    Eliminar el proyecto

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Eliminar el conjunto de datos

    Si ya no necesitas el conjunto de datos creado en esta guía de inicio rápido, puedes eliminarlo. Si eliminas un conjunto de datos, este y todos los almacenes FHIR, HL7v2 o DICOM que contenga se eliminarán de forma permanente.

    gcloud

    Elimina un conjunto de datos con el comando gcloud healthcare datasets delete.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID del proyecto que has creado o seleccionado en Antes de empezar Google Cloud

    Ejecuta el siguiente comando:

    Linux, macOS o 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
    Para confirmar la acción, escribe Y. Deberías recibir una respuesta similar a la siguiente.

    Respuesta

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

    ¿Cómo ha ido?

    Siguientes pasos

    Consulta las siguientes secciones para obtener información general sobre la API Cloud Healthcare y cómo realizar las tareas de esta guía de inicio rápido con otra interfaz:

    DICOM

    Consulta la declaración de conformidad de DICOM para obtener información sobre cómo implementa la API Cloud Healthcare el estándar DICOMweb.

    FHIR

    Consulta la declaración de conformidad de FHIR para obtener información sobre cómo implementa la API Cloud Healthcare el estándar FHIR.

    HL7v2