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 em FHIR R4 (recursos regulares) no BigQuery usando as APIs FHIR da API Cloud Healthcare. Dados de teste de saúde realistas foram gerados e disponibilizados para você no bucket do Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

Neste codelab, você vai aprender a:

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

O que você precisa para executar esta demonstração?

  • Você precisa ter acesso a um projeto do GCP.
  • Você precisa ter a função de proprietário atribuída ao 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 JSON delimitado por nova linha (NDJSON), mas estruturas de conteúdo diferentes:

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

Se você precisar de um novo conjunto de dados, gere um usando o SyntheaTM. Em seguida, faça upload 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 vão ativar as APIs Healthcare no seu projeto do GCP. Isso vai adicionar a 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éticos

  1. Envie um e-mail para hcls-solutions-external+subscribe@google.com com o endereço de e-mail que você usa para fazer login no console do Cloud e peça para participar.
  2. Você vai receber um e-mail com instruções sobre como confirmar a ação.
  3. Use a opção para responder ao e-mail e 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, siga para a próxima etapa do codelab.

Crie um bucket do Cloud Storage no projeto do GCP

gsutil mb gs://$BUCKET_NAME

Copiar dados sintéticos para seu 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, é preciso conceder outras permissões à conta de serviço do Agente de serviço do Cloud Healthcare . Para mais informações, consulte as permissões do Cloud Storage para armazenamento FHIR e do BigQuery para armazenamento FHIR.

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 do BigQuery usando as APIs FHIR do Cloud Healthcare:

Criar um conjunto de dados de saúde e um 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

Criar um armazenamento 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.

Vamos usar arquivos pré-carregados do bucket do GCS. Esses arquivos contêm recursos regulares do FHIR R4 no formato NDJSON. Como resposta, você vai 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. A operação pode levar alguns minutos para ser concluída. Portanto, talvez seja necessário repetir esse comando algumas vezes com um pequeno atraso.

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

5. Exportar dados do armazenamento FHIR para o BigQuery

Criar um conjunto de dados do BigQuery

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

Exportar dados de saúde do FHIR Store 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ê vai 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 o conjunto de dados do Cloud Healthcare e do BigQuery seguindo estas instruções.

Excluir 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 CLI gcloud.

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 diferentes interfaces.

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 da Cloud Healthcare.

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

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