Ingerir FHIR (recursos rápidos de interoperabilidade de saúde) no BigQuery

1. Introdução

1f4764c4ca4c50d9.png

Última atualização:16/05/2020

Este codelab demonstra um padrão de ingestão de dados para ingerir dados de saúde formatados no FHIR R4 (recursos regulares) no BigQuery usando as APIs FHIR do Cloud Healthcare. Dados realistas de testes de assistência médica foram gerados e disponibilizados para você no bucket do Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

Neste codelab, você vai aprender:

  • Como importar recursos FHIR R4 do GCS para o armazenamento FHIR do Cloud Healthcare.
  • Como exportar dados FHIR do armazenamento FHIR para um conjunto de dados no BigQuery.

O que é necessário para executar esta demonstração?

  • Você precisa ter acesso a um projeto do GCP.
  • Você precisa ter o papel de proprietário no projeto do GCP.
  • Recursos FHIR R4 no formato NDJSON (content-structure=RESOURCE)

Se você não tiver um projeto do GCP, siga estas etapas para criar um.

Os recursos FHIR R4 no formato NDJSON foram pré-carregados no bucket do GCS nos seguintes locais:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/: recursos regulares

Todos os recursos acima têm o formato de arquivo New line delimiter JSON (NDJSON), mas com uma estrutura de conteúdo diferente:

  • Recursos regulares no formato ndjson: cada linha do arquivo contém um recurso FHIR principal no formato JSON (como Patient, Observation etc.). Cada arquivo ndjson contém recursos FHIR do mesmo tipo. Por exemplo, Patient.ndjson vai conter um ou mais recursos FHIR do resourceType = ‘ Patient' e Observation.ndjson conterá um ou mais recursos FHIR de resourceType = ‘ Observation'.

Se você precisar de um novo conjunto de dados, poderá gerá-lo usando o SyntheaTM. Em seguida, faça upload dele para o GCS em vez de usar o bucket fornecido no codelab.

2. Configuração do projeto

Siga estas etapas para ativar a API Healthcare e conceder as permissões necessárias:

Inicializar variáveis de shell para seu ambiente

Para encontrar o PROJECT_NUMBER e o PROJECT_ID, consulte Como identificar projetos.

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

Ativar a API Healthcare

As etapas a seguir ativarão as APIs Healthcare no projeto do GCP. Isso vai adicionar uma conta de serviço da API Healthcare ao projeto.

  1. Acesse a Biblioteca de APIs do Console do GCP.
  2. Selecione um projeto na lista.
  3. Na Biblioteca de APIs, selecione a API que você quer ativar. Se precisar de ajuda para encontrar a API, use o campo de pesquisa e os filtros.
  4. Na página da API, clique em ATIVAR.

Acessar o conjunto de dados sintético

  1. No endereço de e-mail que você está usando para fazer login no console do Cloud, envie um e-mail para hcls-solutions-external+subscribe@google.com pedindo para participar.
  2. Você vai receber um e-mail com instruções para confirmar a ação.
  3. Use a opção de responder ao e-mail para participar do grupo.
  4. NÃO clique no botão 525a0fa752e0acae.png. Não funciona.
  5. Depois de receber o e-mail de confirmação, prossiga para a próxima etapa do codelab.

Crie um bucket do Google Cloud Storage no seu projeto do GCP

gsutil mb gs://$BUCKET_NAME

Copiar dados sintéticos para o projeto do GCP

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

Conceder permissões

Antes de importar recursos FHIR do Cloud Storage e exportar para o BigQuery, você precisa conceder permissões adicionais à conta de serviço do agente de serviço do Cloud Healthcare . Para mais informações, consulte as permissões de armazenamento de FHIR do Cloud Storage e de armazenamento de FHIR do BigQuery.

Conceder permissão de administrador do Storage

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

Conceder permissões de administrador do 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. Configuração do ambiente

Siga estas etapas para ingerir dados de arquivos NDJSON no conjunto de dados de saúde no BigQuery usando as APIs FHIR do Cloud Healthcare:

Criar conjunto de dados de saúde e armazenamento FHIR

criar um conjunto de dados de saúde usando as APIs Cloud Healthcare;

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

Crie um armazenamento de FHIR no conjunto de dados usando as APIs Cloud Healthcare.

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

4. Importar dados para o armazenamento FHIR

Importe dados de teste do Google Cloud Storage para o armazenamento FHIR.

Usaremos arquivos pré-carregados do bucket do GCS. Esses arquivos contêm recursos regulares FHIR R4 no formato NDJSON. Como resposta, você receberá OPERATION_NUMBER, que pode ser usado na etapa de validação.

Importar recursos regulares do bucket do GCS no seu projeto do 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

Validar

A operação de validação foi concluída com sucesso. A operação pode levar alguns minutos para terminar, então talvez seja necessário repetir esse comando algumas vezes com algum atraso.

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

5. Exportar dados do armazenamento FHIR para o BigQuery

Crie um conjunto de dados do BigQuery

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

Exportar dados de saúde do armazenamento FHIR para o conjunto de dados do 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

Como resposta, você receberá OPERATION_NUMBER, que pode ser usado na etapa de validação.

Validar

A operação de validação foi concluída

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

Validar se o conjunto de dados do BigQuery tem todas as 16 tabelas

bq ls $PROJECT_ID:$BQ_DATASET

6. Limpar

Para evitar cobranças na sua conta do Google Cloud Platform pelos recursos usados neste tutorial, limpe os recursos criados no GCP para que eles não ocupem sua cota e você não seja cobrado por eles no futuro. As próximas seções descrevem como excluir ou desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para este tutorial.

Para excluir o projeto:

  1. No Console do GCP, acesse a página Projetos. ACESSAR A PÁGINA "PROJETOS"
  2. Na lista de projetos, selecione um e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Se você precisar manter o projeto, exclua os conjuntos de dados do Cloud Healthcare e BigQuery usando as instruções a seguir.

Exclua o conjunto de dados da API Cloud Healthcare

Siga as etapas para excluir o conjunto de dados da API Healthcare usando o Console do GCP e a gcloud CLI.

Comando rápido da CLI:

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

Excluir o conjunto de dados do BigQuery

Siga as etapas para excluir o conjunto de dados do BigQuery usando interfaces diferentes.

Comando rápido da CLI:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Parabéns

Parabéns, você concluiu o codelab para ingerir dados de saúde no BigQuery usando as APIs Cloud Healthcare.

Você importou dados sintéticos compatíveis com FHIR R4 do Google Cloud Storage para as APIs FHIR do Cloud Healthcare.

Você exportou dados das APIs FHIR do Cloud Healthcare para o BigQuery.

Agora você sabe as principais etapas necessárias para iniciar sua jornada de análise de dados de saúde com o BigQuery no Google Cloud Platform.