Neste tutorial, explicamos cenários em que é possível usar o streaming do BigQuery para manter um armazenamento de FHIR sincronizado com um conjunto de dados do BigQuery quase em tempo real.
Objetivos
No tutorial, você verá as etapas a seguir:
- Configurar as permissões do BigQuery.
- Criar um armazenamento de FHIR e adicionar recursos "Paciente".
- Configurar o streaming do BigQuery no armazenamento de FHIR.
- Verificar a configuração de streaming para o BigQuery.
- Exportar recursos existentes de FHIR para o BigQuery.
- Fazer streaming de recursos de vários armazenamentos de FHIR para o mesmo conjunto de dados do BigQuery.
Antes de começar
- 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.
- 
    
    
      
        In the Google Cloud console, on the project selector page, select or create 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
    
    
      
        In the Google Cloud console, on the project selector page, select or create 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      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 theserviceusage.services.enablepermission. Learn how to grant roles.
- 
      Install the Google Cloud CLI. 
- 
          Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada. 
- 
        Para inicializar a gcloud CLI, execute o seguinte comando: gcloud initEtapa 1: configurar as permissões do BigQueryPara transmitir alterações de recursos FHIR para o BigQuery, você precisa conceder mais permissões à conta de serviço ao Agente de serviço do Cloud Healthcare. Para mais informações, consulte Permissões do BigQuery para armazenar FHIR. Etapa 2: configurar e verificar o streaming do BigQueryPara ativar o streaming para o BigQuery, siga estas instruções: Criar um armazenamento de FHIR e adicionar recursos "Paciente"Para criar um armazenamento de FHIR e adicionar dois recursos "Pciente", siga estas etapas: - Crie o armazenamento de FHIR: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: 
um identificador para o armazenamento de FHIR. O ID do repositório de FHIR precisa ter o seguinte:
- Um ID exclusivo no conjunto de dados
- Uma string Unicode de 1 a 256 caracteres que consiste no seguinte:
- Números
- Letras
- Sublinhados
- Traços
- Pontos
 
- FHIR_STORE_VERSION: a versão do FHIR do armazenamento de FHIR. As opções disponíveis são DSTU2, STU3 ou R4.
 - Corpo JSON da solicitação: - { "version": "FHIR_STORE_VERSION" }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "version": "FHIR_STORE_VERSION" } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand Content- APIs Explorer- Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar. - Você receberá uma resposta JSON semelhante a esta: 
- Crie o primeiro recurso de paciente no armazenamento de FHIR: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
 - Corpo JSON da solicitação: - { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/fhir+json" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/fhir+json" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content- Você receberá uma resposta JSON semelhante a esta: 
- Crie o segundo recurso "Paciente" no armazenamento de FHIR: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
 - Corpo JSON da solicitação: - { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/fhir+json" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/fhir+json" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content- Você receberá uma resposta JSON semelhante a esta: 
- Procure recursos "Paciente" no armazenamento FHIR e verifique se o armazenamento contém os dois recursos "Paciente": - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
 - Para enviar a solicitação, escolha uma destas opções: - curl- Execute o seguinte comando: - curl -X GET \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"- PowerShell- execute o seguinte comando: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method GET `
 -Headers $headers `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content- Você receberá uma resposta JSON semelhante a esta: 
 Configurar o streaming do BigQuery no armazenamento de FHIRAtualize o armazenamento do FHIR para configurar o streaming do BigQuery. Depois de configurar o streaming, a API Cloud Healthcare transmite todas as alterações de recursos para o conjunto de dados do BigQuery. - Atualize o armazenamento de FHIR existente para adicionar o local do conjunto de dados do BigQuery: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- BIGQUERY_PROJECT_ID: o projeto do Google Cloud que contém o conjunto de dados do BigQuery para streaming de alterações de recursos de FHIR
- BIGQUERY_DATASET_ID: o conjunto de dados do BigQuery em que você está fazendo streaming de alterações de recursos de FHIR
 - Corpo JSON da solicitação: - { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X PATCH \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method PATCH `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content- APIs Explorer- Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar. - Você receberá uma resposta JSON semelhante a esta: 
 Verificar a configuração do streaming para o BigQueryPara verificar se o streaming está configurado corretamente, siga as etapas a seguir: - Crie um terceiro recurso "Paciente" no armazenamento de FHIR: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
 - Corpo JSON da solicitação: - { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/fhir+json" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/fhir+json" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content- Você receberá uma resposta JSON semelhante a esta: 
- Consulte a tabela - BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patientexecutando- bq query. O BigQuery organiza as tabelas por tipo de recurso de FHIR. O terceiro recurso "Paciente" que você criou está na tabela- Patient.- bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`' - A consulta retorna o seguinte resultado: O resultado mostra que há um registro de recurso "Paciente" na tabela do BigQuery porque você adicionou esse recurso após configurar o streaming no armazenamento FHIR. - +-----+ | f0_ | +-----+ | 1 | +-----+
 Etapa 3: exportar recursos existentes do FHIR para o BigQuerySe você tiver um armazenamento existente de FHIR contendo dados que quer sincronizar com um conjunto de dados do BigQuery, conclua as etapas a seguir para garantir que os dados existentes estejam no BigQuery: - Configure o streaming para o BigQuery.
- Exporte os dados existentes para o conjunto de dados do BigQuery.
 Para exportar os dois recursos "Paciente" que existiam no armazenamento de FHIR antes de ter configurado o streaming para o conjunto de dados do BigQuery, conclua as seguintes etapas: - Para exportar os recursos no armazenamento de FHIR para o BigQuery, execute o comando - gcloud healthcare fhir-stores export bq. O comando usa a sinalização- --write-disposition=write-append, que anexa dados à tabela BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.- Patientexistente.- gcloud healthcare fhir-stores export bq FHIR_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --bq-dataset=bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET \ --schema-type=analytics_v2 \ --write-disposition=write-append 
- Consulte a tabela - BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patientpara verificar o número de recursos "Paciente" no conjunto de dados do BigQuery:- bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`' - A consulta retorna o resultado a seguir, mostrando que há quatro registros de recurso "Paciente" na tabela do BigQuery: - +-----+ | f0_ | +-----+ | 4 | +-----+- O número real de recursos "Paciente" na tabela do BigQuery é três, mas a consulta retorna quatro. Pode haver inconsistências quando um recurso tiver cópias de diferentes operações. Nesse caso, o primeiro recurso "Paciente" foi adicionado à tabela do BigQuery duas vezes: - quando a criação do recurso de paciente foi transmitida;
- quando os recursos no armazenamento de FHIR foram exportados para o BigQuery.
 - A tabela do BigQuery também contém um histórico de mutação do primeiro recurso "Paciente". Por exemplo, se você excluir o recurso "Paciente" usando - fhir.delete, a tabela do BigQuery terá uma coluna- meta.tag.codecom o valor- DELETE.
- Para conseguir o snapshot mais recente dos dados no armazenamento de FHIR, consulte a visualização. A API Cloud Healthcare cria a visualização apenas analisando a versão mais recente de cada recurso. Consultar visualizações é a maneira mais precisa de manter um armazenamento de FHIR e a tabela do BigQuery correspondente sincronizados. - Para consultar a visualização, execute o seguinte comando: - bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`' - O seguinte resultado é retornado com a consulta, que mostra corretamente que há três recursos "Paciente" na tabela do BigQuery: - +-----+ | f0_ | +-----+ | 3 | +-----+
 Etapa 4: fazer streaming de recursos de vários armazenamentos de FHIR para o mesmo conjunto de dados do BigQueryEm alguns casos, pode ser útil fazer streaming de recursos de FHIR de vários armazenamentos de FHIR para o mesmo conjunto de dados do BigQuery para realizar análises nos recursos de FHIR agregados dos armazenamentos de FHIR. Nas etapas a seguir, você criará um segundo armazenamento de FHIR no mesmo conjunto de dados da API Cloud Healthcare que o primeiro armazenamento de FHIR, mas poderá usar armazenamentos de FHIR de conjuntos de dados diferentes ao agregar recursos de FHIR. - Crie um segundo armazenamento de FHIR com o streaming do BigQuery ativado e use o mesmo conjunto de dados do BigQuery usado em Configurar o streaming do BigQuery no armazenamento do FHIR. - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- SECOND_FHIR_STORE_ID: um identificador para o segundo armazenamento de FHIR. O ID de armazenamento FHIR precisa ser exclusivo no conjunto de dados. O ID de armazenamento de FHIR pode ser qualquer string Unicode com 1 a 256 caracteres que consiste em números, letras, sublinhados, traços e pontos.
- FHIR_STORE_VERSION: a versão do armazenamento de FHIR: DSTU2, STU3 ou R4
- BIGQUERY_PROJECT_ID: o projeto do Google Cloud que contém o conjunto de dados do BigQuery para streaming de alterações de recursos de FHIR
- BIGQUERY_DATASET_ID: o conjunto de dados do BigQuery em que você está fazendo streaming de alterações de recursos de FHIR
 - Corpo JSON da solicitação: - { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID" | Select-Object -Expand Content- APIs Explorer- Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar. - Você receberá uma resposta JSON semelhante a esta: 
- Crie um recurso "Paciente" no segundo armazenamento de FHIR: - REST- Antes de usar os dados da solicitação abaixo, faça as substituições a seguir: - PROJECT_ID: o ID do projeto Google Cloud
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- SECOND_FHIR_STORE_ID: o ID do segundo armazenamento de FHIR
 - Corpo JSON da solicitação: - { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }- Para enviar a solicitação, escolha uma destas opções: - curl- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF- Depois execute o comando a seguir para enviar a solicitação REST: - curl -X POST \ 
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/fhir+json" \
 -d @request.json \
 "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient"- PowerShell- Salve o corpo da solicitação em um arquivo chamado - request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:- @' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8- Depois execute o comando a seguir para enviar a solicitação REST: - $cred = gcloud auth print-access-token 
 $headers = @{ "Authorization" = "Bearer $cred" }
 Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/fhir+json" `
 -InFile request.json `
 -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content- Você receberá uma resposta JSON semelhante a esta: 
- Consulte a tabela - BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patientpara verificar o número de recursos "Paciente" na tabela do BigQuery:- bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`' - Ao fazer streaming dos dados referentes ao novo recurso de paciente, o BigQuery usou a tabela - Patientexistente no conjunto de dados do BigQuery. A consulta retorna o resultado a seguir, mostrando que há cinco registros de recurso "Paciente" na tabela do BigQuery. Consulte Exportar recursos existentes de FHIR para o BigQuery para ver uma explicação sobre por que a tabela contém cinco recursos, em vez de quatro.- +-----+ | f0_ | +-----+ | 5 | +-----+
- Execute este comando para consultar a visualização: - bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`' - O seguinte resultado é retornado com a consulta, mostrando que há quatro recursos "Paciente" no primeiro e segundo armazenamentos de FHIR combinados e na tabela do BigQuery: - +-----+ | f0_ | +-----+ | 4 | +-----+
 LimparSe você criou um novo projeto para este tutorial, siga as etapas em Excluir o projeto. Para excluir apenas a API Cloud Healthcare e os recursos do BigQuery, conclua as etapas em Excluir o conjunto de dados da API Cloud Healthcare e Excluir o conjunto de dados do BigQuery. Excluir o projeto- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
 Excluir o conjunto de dados da API Cloud HealthcareSe você não precisa mais do conjunto de dados da API Cloud Healthcare criado neste tutorial, é possível excluí-lo. A exclusão de um conjunto de dados exclui permanentemente o conjunto de dados e todos os armazenamentos de FHIR que ele contém. - Para excluir um conjunto de dados, use o comando - gcloud healthcare datasets delete.- gcloud healthcare datasets delete DATASET_ID \ --location=LOCATION \ --project=PROJECT_ID - Substitua: - DATASET_ID: o conjunto de dados da API Cloud Healthcare
- LOCATION: o local do conjunto de dados
- PROJECT_ID: o ID do projeto Google Cloud
 
- Para confirmar, digite Y. 
 A saída é esta: Deleted dataset [DATASET_ID]. Excluir o conjunto de dados do BigQuerySe você não precisar mais do conjunto de dados do BigQuery criado neste tutorial, basta excluí-lo. A exclusão de um conjunto de dados exclui permanentemente o conjunto de dados e as tabelas que ele contém. - Remova o conjunto de dados BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID executando o comando - bq rm:- bq rm --recursive=true BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID - A sinalização - --recursiveexclui todas as tabelas do conjunto de dados, incluindo a tabela- Patient.
- Para confirmar, digite Y. 
 A seguir- Se ocorrerem erros durante o streaming no BigQuery, os erros serão registrados no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.
- Confira uma visão geral de como exportar recursos de FHIR para o BigQuery.
- Para criar, visualizar, listar ou excluir armazenamentos de FHIR, consulte Como criar e gerenciar armazenamentos de FHIR.