Este tutorial explica cenários nos quais pode usar o streaming do BigQuery para manter um arquivo FHIR sincronizado com um conjunto de dados do BigQuery quase em tempo real.
Passo 1: configure as autorizações do BigQuery
Para transmitir alterações de recursos FHIR para o BigQuery, tem de conceder autorizações adicionais à conta de serviço do agente do Cloud Healthcare . Para mais informações, consulte as autorizações do BigQuery da loja FHIR.
Passo 2: configure e valide o streaming do BigQuery
Para ativar o streaming para o BigQuery, siga estas instruções:
Crie um arquivo FHIR e adicione recursos de pacientes
Para criar um FHIR store e adicionar dois recursos de paciente, siga estes passos:
Crie a loja FHIR:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID:
um identificador para a loja FHIR. O ID da loja FHIR tem de ter o seguinte:
- Um ID exclusivo no respetivo conjunto de dados
- Uma string Unicode de 1 a 256 carateres que consiste no seguinte:
- Numbers
- Cartas
- Sublinhados
- Traços
- Períodos
- FHIR_STORE_VERSION: a versão FHIR da loja FHIR. As opções disponíveis são DSTU2, STU3 ou R4.
Corpo JSON do pedido:
{ "version": "FHIR_STORE_VERSION" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "version": "FHIR_STORE_VERSION" } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentExplorador de APIs
Copie o corpo do pedido e abra a página de referência do método. O painel do APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Cole o corpo do pedido nesta ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Deve receber uma resposta JSON semelhante à seguinte:
Crie o primeiro recurso Patient na loja FHIR:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da loja FHIR
Corpo JSON do pedido:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Crie o segundo recurso Patient na loja FHIR:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da loja FHIR
Corpo JSON do pedido:
{ "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Pesquise recursos de pacientes na loja FHIR e verifique se a loja contém os dois recursos de pacientes:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da loja FHIR
Para enviar o seu pedido, 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Configure o streaming do BigQuery na loja FHIR
Atualize a loja FHIR para configurar o streaming do BigQuery. Depois de configurar o streaming, a Cloud Healthcare API faz stream de quaisquer alterações de recursos para o conjunto de dados do BigQuery.
Atualize a sua loja FHIR existente para adicionar a localização do conjunto de dados do BigQuery:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da sua loja FHIR
- BIGQUERY_PROJECT_ID: o Google Cloud projeto que contém o conjunto de dados do BigQuery para alterações de recursos FHIR com streaming
- BIGQUERY_DATASET_ID: o conjunto de dados do BigQuery para o qual está a fazer streaming de alterações de recursos FHIR
Corpo JSON do pedido:
{ "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentExplorador de APIs
Copie o corpo do pedido e abra a página de referência do método. O painel do APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Cole o corpo do pedido nesta ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Deve receber uma resposta JSON semelhante à seguinte:
Valide a configuração de streaming para o BigQuery
Para verificar se o streaming está configurado corretamente, conclua os seguintes passos:
Crie um terceiro recurso Patient na loja FHIR:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da loja FHIR
Corpo JSON do pedido:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Consulte a tabela
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
executandobq query
. O BigQuery organiza as tabelas por tipo de recurso FHIR. O terceiro recurso Patient que 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 devolve o seguinte resultado. O resultado mostra que existe um registo de recursos de pacientes na tabela do BigQuery, porque adicionou o recurso de pacientes depois de configurar o streaming na loja FHIR.
+-----+ | f0_ | +-----+ | 1 | +-----+
Passo 3: exporte recursos FHIR existentes para o BigQuery
Se tiver um FHIR store existente com dados que quer sincronizar com um conjunto de dados do BigQuery, tem de concluir os seguintes passos para garantir que os dados existentes estão no BigQuery:
- Configure o streaming para o BigQuery.
- Exporte os dados existentes para o conjunto de dados do BigQuery.
Para exportar os dois recursos de pacientes que existiam no armazenamento FHIR antes de configurar o streaming para o conjunto de dados do BigQuery, conclua os seguintes passos:
Para exportar os recursos no FHIR store para o BigQuery, execute o comando
gcloud healthcare fhir-stores export bq
. O comando usa a flag--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 de pacientes 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 devolve o seguinte resultado, mostrando que existem 4 registos de recursos de pacientes na tabela do BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
O número real de recursos de pacientes na tabela do BigQuery é 3, mas a consulta devolve 4. Podem ocorrer inconsistências quando um recurso contém duplicados de diferentes operações. Neste caso, o primeiro recurso Patient foi adicionado à tabela do BigQuery duas vezes:
- Quando a criação do recurso Patient foi transmitida
- Quando os recursos no FHIR store foram exportados para o BigQuery
A tabela do BigQuery também contém um histórico de mutações do primeiro recurso Patient. Por exemplo, se eliminar o recurso Patient através de
fhir.delete
, a tabela do BigQuery tem uma colunameta.tag.code
com o valorDELETE
.Para obter o resumo mais recente dos dados no FHIR store, consulte a vista. A Cloud Healthcare API cria a vista apenas analisando a versão mais recente de cada recurso. A consulta de vistas é a forma mais precisa de manter um FHIR store e a respetiva tabela do BigQuery sincronizados.
Para consultar a vista, 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`'
A consulta devolve o seguinte resultado, que mostra corretamente que existem 3 recursos de pacientes na tabela do BigQuery:
+-----+ | f0_ | +-----+ | 3 | +-----+
Passo 4: transmita recursos de várias lojas FHIR para o mesmo conjunto de dados do BigQuery
Em alguns casos, pode querer fazer stream de recursos FHIR de várias lojas FHIR para o mesmo conjunto de dados do BigQuery para realizar estatísticas nos recursos FHIR agregados das lojas FHIR.
Nos passos seguintes, cria uma segunda loja FHIR no mesmo conjunto de dados da Cloud Healthcare API que a primeira loja FHIR, mas pode usar lojas FHIR de diferentes conjuntos de dados ao agregar recursos FHIR.
Crie uma segunda FHIR store com o streaming do BigQuery ativado e use o mesmo conjunto de dados do BigQuery que usou em Configure o streaming do BigQuery na FHIR store.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- SECOND_FHIR_STORE_ID: um identificador para a segunda loja FHIR. O ID da loja FHIR tem de ser exclusivo no conjunto de dados. O ID da loja FHIR pode ser qualquer string Unicode de 1 a 256 carateres composta por números, letras, sublinhados, traços e pontos finais.
- FHIR_STORE_VERSION: a versão da loja FHIR: DSTU2, STU3 ou R4
- BIGQUERY_PROJECT_ID: o Google Cloud projeto que contém o conjunto de dados do BigQuery para alterações de recursos FHIR com streaming
- BIGQUERY_DATASET_ID: o conjunto de dados do BigQuery para o qual está a fazer streaming de alterações de recursos FHIR
Corpo JSON do pedido:
{ "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentExplorador de APIs
Copie o corpo do pedido e abra a página de referência do método. O painel do APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Cole o corpo do pedido nesta ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Deve receber uma resposta JSON semelhante à seguinte:
Crie um recurso Patient na segunda loja FHIR:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados principal
- DATASET_ID: o conjunto de dados principal do FHIR store
- SECOND_FHIR_STORE_ID: o segundo ID da loja FHIR
Corpo JSON do pedido:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro 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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Consulte a tabela
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
para verificar o número de recursos de pacientes 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`'
Quando transmitiu os dados sobre o novo recurso Patient, o BigQuery usou a tabela
Patient
existente no conjunto de dados do BigQuery. A consulta devolve o seguinte resultado, mostrando que existem 5 registos de recursos de pacientes na tabela do BigQuery. Consulte o artigo Exporte recursos FHIR existentes para o BigQuery para ver uma explicação do motivo pelo qual a tabela contém 5 recursos em vez de 4.+-----+ | f0_ | +-----+ | 5 | +-----+
Execute o seguinte comando para consultar a vista:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
A consulta devolve o seguinte resultado, mostrando que existem 4 recursos de pacientes no primeiro e segundo repositórios FHIR combinados e na tabela do BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+