Armazenar dados de saúde com a Google Cloud CLI

Esta página mostra como usar a API Cloud Healthcare e a CLI do Google Cloud para concluir as seguintes tarefas:

  1. Criar um conjunto de dados da API Cloud Healthcare;
  2. Criar um dos seguintes armazenamentos de dados no conjunto de dados:
    • Armazenamento de imagens e comunicações digitais em medicina (DICOM, na sigla em inglês)
    • Armazenamento de recursos de interoperabilidade rápida de saúde (FHIR, na sigla em inglês)
    • Armazenamento do Health Level Seven International Version 2 (HL7v2)
  3. Armazene dados DICOM, FHIR e HL7v2 e acesse os metadados DICOM.

Se você tem interesse apenas em trabalhar com um tipo de armazenamento de dados, pule diretamente para a respectiva seção do guia de início rápido após concluir as etapas em Antes de começar e Criar um conjunto de dados.

Antes de começar

  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. To initialize the gcloud CLI, run the following command:

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

    • 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  7. 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 PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

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

    • 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.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  13. 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 PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.

crie um conjunto de dados

Conjuntos de dados contêm armazenamentos de dados com dados de saúde. Para usar a API Cloud Healthcare, você precisa criar pelo menos um conjunto de dados.

O exemplo a seguir mostra como criar um conjunto de dados chamado my-dataset na região us-central1. Você vai usar o conjunto de dados ao longo deste guia de início rápido para criar armazenamentos DICOM, FHIR e HL7v2.

gcloud

Crie um conjunto de dados usando o gcloud healthcare datasets create kubectl.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Você receberá uma resposta semelhante a esta:

Resposta

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

Para concluir este guia de início rápido, escolha uma das seguintes seções:

Armazenar e visualizar uma instância DICOM

Neste documento, mostramos como concluir as seguintes tarefas:

  1. Crie um armazenamento DICOM.
  2. Importar uma instância DICOM de um bucket público do Cloud Storage para o armazenamento DICOM.
  3. Visualizar os metadados da instância DICOM.

A API Cloud Healthcare implementa o DICOMweb para armazenar e acessar dados de imagens médicas.

Criar um armazenamento DICOM

Os armazenamentos DICOM existem dentro dos conjuntos de dados e contêm instâncias DICOM. O exemplo a seguir mostra como criar um armazenamento DICOM chamado my-dicom-store.

gcloud

Crie um armazenamento DICOM usando o comando gcloud healthcare dicom-stores create.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Você receberá uma resposta semelhante a esta:

Resposta

Created dicomStore [my-dicom-store].

Importar uma instância de DICOM

Os dados de DICOM de amostra estão disponíveis no bucket gs://gcs-public-data--healthcare-nih-chest-xray do Cloud Storage:

gcloud

Importe a instância gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm usando o comando gcloud healthcare dicom-stores import.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Nesta saída:

  • PROJECT_ID, us-central1, my-dataset, my-dicom-store: os valores que você forneceu ao executar o comando.
  • OPERATION_ID: um identificador para a operação de longa duração fornecida pela API Cloud Healthcare quando você importa uma instância DICOM. As operações de longa duração são retornadas quando as chamadas de método podem demorar muito para serem concluídas. A importação de uma instância DICOM geralmente é uma operação rápida, portanto, a saída é retornada quase imediatamente.

Resposta

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 metadados da instância DICOM

A CLI gcloud não oferece suporte a transações DICOMweb, como visualização ou recuperação de instâncias. Em vez disso, você pode usar a ferramenta de linha de comando DICOMweb do Google, que é executado em Python. Para informações sobre como configurar o Python no Google Cloud, consulte Como configurar um ambiente de desenvolvimento em Python.

Conclua as etapas a seguir para visualizar os metadados da instância DICOM usando o Ferramenta de linha de comando DICOMweb:

  1. Instale a ferramenta de linha de comando DICOMweb usando Pip:

    pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
    
  2. Atualize a variável PATH para incluir o local de instalação dcmweb:

    export PATH="$HOME/bin:$PATH"
    
  3. Veja os metadados da instância DICOM:

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

    Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar.

    A saída é esta: Consulte Atributos do módulo comum SOP nos campos da saída.

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

Depois de importar a instância DICOM para a API Cloud Healthcare e conferir os metadados dela, continue em Limpar para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página.

Para mais informações sobre as próximas etapas, por exemplo, como pesquisar ou recuperar imagens DICOM usando o padrão DICOMweb na API Cloud Healthcare, consulte A seguir.

Armazenar recursos FHIR

Neste documento, mostramos como concluir as seguintes tarefas:

  1. Crie um armazenamento de FHIR.
  2. Importe recursos FHIR de um bucket público do Cloud Storage para o armazenamento de FHIR.

Criar um armazenamento de FHIR

Os armazenamentos FHIR existem dentro dos conjuntos de dados e contêm recursos FHIR. O seguinte mostra como criar um repositório FHIR chamado my-fhir-store que usa FHIR versão R4.

gcloud

Crie uma loja FHIR usando o comando gcloud healthcare fhir-stores create.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Você receberá uma resposta semelhante a esta:

Resposta

Created fhirStore [my-fhir-store].

Importar recursos de FHIR

Os dados FHIR de amostra estão disponíveis no bucket gs://gcp-public-data--synthea-fhir-data-10-patients do Cloud Storage:

gcloud

Importe os recursos FHIR em gs://gcp-public-data--synthea-fhir-data-10-patients usando a interface gcloud healthcare fhir-stores import kubectl.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Nesta saída:

  • PROJECT_ID, us-central1, my-dataset, my-fhir-store: os valores que você forneceu ao executar o comando.
  • OPERATION_ID: um identificador para a operação de longa duração fornecida pela API Cloud Healthcare ao importar um recurso FHIR. Operações de longa duração são retornadas quando as chamadas de método podem levar muito tempo para serem concluídas. A importação dos recursos FHIR leva cerca de um a dois minutos.
  • R4: a versão do armazenamento FHIR

Resposta

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

Depois de importar os recursos FHIR para a API Cloud Healthcare, continue em Limpar para evitar cobranças recorrentes na sua conta do Google Cloud pelos recursos usados nesta página.

Para saber mais sobre as próximas etapas, por exemplo, como visualizar e pesquisar recursos FHIR, consulte A seguir.

Armazenar uma mensagem HL7v2

Neste documento, mostramos como concluir as seguintes tarefas:

  1. Criar uma loja HL7v2.
  2. Importe uma mensagem HL7v2 de um bucket público do Cloud Storage para a loja HL7v2.

A implementação do HL7v2 na API Cloud Healthcare está alinhada com o padrão HL7v2.

Criar um armazenamento de HL7v2

Os armazenamentos HL7v2 existem nos conjuntos de dados e contêm mensagens HL7v2. O exemplo a seguir mostra como criar um armazenamento HL7v2 chamado my-hl7v2-store.

gcloud

Crie um armazenamento HL7v2 usando o comando gcloud healthcare hl7v2-stores create.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Você receberá uma resposta semelhante a esta:

Resposta

Created hl7v2Store [my-hl7v2-store].

Importar mensagens de HL7v2

gcloud

Importe a mensagem HL7v2 gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson usando o comando gcloud healthcare hl7v2-stores import.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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

Nesta saída:

  • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: os valores que você forneceu ao executar o comando
  • OPERATION_ID: um identificador para a operação de longa duração fornecida pela API Cloud Healthcare quando você importa uma mensagem HL7v2. Operações de longa duração são retornadas quando as chamadas de método podem levar muito tempo para serem concluídas. A importação de uma mensagem HL7v2 geralmente é uma operação rápida, portanto, a saída é retornada quase imediatamente.

Resposta

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

Depois de importar a mensagem HL7v2 para a API Cloud Healthcare, continue em Limpar para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página.

Para saber mais sobre as próximas etapas, como conferir o conteúdo de uma mensagem HL7v2, consulte A seguir.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

Se você criou um novo projeto para este guia de início rápido, siga as etapas em Excluir o projeto. Caso contrário, siga as etapas em Excluir o conjunto de dados.

Optional: Revoke credentials from the gcloud CLI.

gcloud auth revoke

Exclua o projeto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Excluir o conjunto de dados

Se você não precisar mais do conjunto de dados criado neste guia de início rápido, poderá excluí-lo. Excluir um conjunto de dados exclui permanentemente o conjunto de dados e todos os armazenamentos FHIR, HL7v2 ou DICOM que ele contém.

gcloud

Exclua um conjunto de dados usando o gcloud healthcare datasets delete kubectl.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud que você criou ou selecionou em Antes de começar;

Execute o seguinte comando:

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
Para confirmar, digite Y. Você vai receber uma resposta semelhante a esta.

Resposta

You are about to delete dataset [my-dataset]

Do you want to continue (Y/n)?  Y

Deleted dataset [my-dataset].

Como foi?

A seguir

Consulte as seções a seguir para informações gerais sobre a API Cloud Healthcare e como realizar as tarefas neste guia de início rápido usando outra interface:

DICOM

Consulte a instrução de conformidade DICOM para ver informações sobre como a API Cloud Healthcare implementa o padrão DICOMweb.

FHIR

Consulte a Declaração de conformidade FHIR para ver informações sobre como a API Cloud Healthcare implementa o padrão FHIR.

HL7v2