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.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Healthcare API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Etapa 1: configurar as permissões do BigQuery
Para 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 BigQuery
Para 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 seu projeto do 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:
- 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 ContentAPIs 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 seu projeto do 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 ContentVocê 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 do 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 ContentVocê 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 do 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 ContentVocê receberá uma resposta JSON semelhante a esta:
Configurar o streaming do BigQuery no armazenamento de FHIR
Atualize 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 do 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 ContentAPIs 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 BigQuery
Para 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 do 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 ContentVocê receberá uma resposta JSON semelhante a esta:
Consulte a tabela
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
executandobq query
. O BigQuery organiza as tabelas por tipo de recurso de FHIR. O terceiro recurso "Paciente" que você criou está na tabelaPatient
.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 BigQuery
Se 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.Patient
existente.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.Patient
para 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 colunameta.tag.code
com o valorDELETE
.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 BigQuery
Em 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 do 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 ContentAPIs 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 do 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 ContentVocê receberá uma resposta JSON semelhante a esta:
Consulte a tabela
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
para 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
Patient
existente 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 | +-----+
Limpar
Se 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.
Exclua 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 Healthcare
Se 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 do Google Cloud.
Para confirmar, digite Y.
A saída é esta:
Deleted dataset [DATASET_ID].
Excluir o conjunto de dados do BigQuery
Se 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
--recursive
exclui todas as tabelas do conjunto de dados, incluindo a tabelaPatient
.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.