1. Introdução

Ú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.
- Acesse a Biblioteca de APIs do Console do GCP.
- Selecione um projeto na lista.
- 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.
- Na página da API, clique em ATIVAR.
Acessar o conjunto de dados sintéticos
- 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.
- Você vai receber um e-mail com instruções sobre como confirmar a ação.
- Use a opção para responder ao e-mail e participar do grupo.
- NÃO clique no botão
. Não funciona. - 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:
- No Console do GCP, acesse a página Projetos. ACESSAR A PÁGINA "PROJETOS"
- Na lista de projetos, selecione um e clique em Excluir.
- 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.