Exporte recursos FHIR em lote para o BigQuery

Esta página descreve como exportar em lote recursos FHIR para o BigQuery para exploração e análise. A operação de exportação cria uma tabela do BigQuery para cada tipo de recurso FHIR na sua loja FHIR.

Para melhorar o desempenho das consultas e reduzir os custos, considere exportar recursos FHIR para tabelas com partições. Para ver instruções, consulte o artigo Exporte recursos FHIR para tabelas particionadas.

Se exportar recursos FHIR de forma programada, considere exportar os dados de forma incremental. Para ver instruções, consulte o artigo Exportações incrementais.

Definir autorizações do BigQuery

Antes de exportar recursos FHIR para o BigQuery, tem de conceder autorizações adicionais à conta de serviço do agente do Cloud Healthcare Service . Para mais informações, consulte as autorizações do BigQuery da loja FHIR.

Compreenda o comportamento de exportação

O comportamento da operação de exportação depende do seguinte:

  • Indica se a tabela de destino existe.
  • Se define o campo force.
  • Se especifica uma enumeração em WriteDisposition. Se especificar uma enumeração, não defina o campo force.

O comportamento em cada caso é o seguinte:

  • A tabela de destino existe e force está definido como true: a operação de exportação substitui a tabela existente
  • A tabela de destino existe e force está definida como false: ocorre um erro
  • A tabela de destino não existe: a operação de exportação cria uma nova tabela, independentemente de especificar o campo force
  • A tabela de destino existe e definiu WriteDisposition como WRITE_TRUNCATE ou WRITE_APPEND: a operação de exportação é bem-sucedida em vez de devolver um erro

A operação gera uma tabela do BigQuery para cada tipo de recurso no FHIR store.

Exporte recursos FHIR em lote

Os exemplos seguintes mostram como exportar recursos FHIR para uma tabela do BigQuery.

Quando especificar o destino do BigQuery, use o URI totalmente qualificado:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Consola

Para exportar recursos FHIR para o BigQuery através da Google Cloud consola, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página Conjuntos de dados.

    Aceda aos conjuntos de dados

  2. Clique no conjunto de dados que tem o FHIR store com os dados que está a exportar.

  3. Na mesma linha que a loja FHIR, abra a lista Ações e selecione Exportar.

  4. Na página Exporte recursos FHIR apresentada, encontre a secção Selecione um destino. Selecione Tabela do BigQuery.

  5. Na secção Destination table write disposition, selecione uma das seguintes opções para determinar o comportamento da operação de exportação:

    • Exporte dados apenas se as tabelas de destino estiverem vazias: isto é equivalente a selecionar a enumeração WRITE_EMPTY em WriteDisposition.
    • Anexar dados às tabelas de destino: isto é equivalente a selecionar a enumeração WRITE_APPEND em WriteDisposition.
    • Apagar todos os dados existentes nas tabelas de destino antes de escrever os recursos FHIR: isto é equivalente a selecionar a enumeração WRITE_TRUNCATE em WriteDisposition.
  6. Na secção Configuração da exportação FHIR, clique em Procurar para selecionar o projeto e o conjunto de dados do BigQuery.

  7. No menu pendente Tipo de esquema, selecione o esquema de saída para a tabela do BigQuery. Estão disponíveis os seguintes esquemas:

    • Analytics. Um esquema baseado no documento SQL on FHIR. Uma vez que o BigQuery só permite 10 000 colunas por tabela, os esquemas não são gerados para os campos Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
    • Analytics V2. Um esquema semelhante ao esquema do Analytics, com apoio técnico adicional para o seguinte: O esquema do Analytics V2 usa mais espaço na tabela de destino do que o esquema do Analytics.

  8. Selecione um nível de profundidade no controlo de deslize Profundidade da estrutura recursiva para definir a profundidade de todas as estruturas recursivas no esquema de saída. Por predefinição, o valor recursivo é 2.

    Para mais informações, consulte recursiveStructureDepth.

  9. Clique em Exportar para exportar recursos FHIR para o BigQuery.

  10. Para acompanhar o estado da operação, clique no separador Operações. Após a conclusão da operação, são apresentadas as seguintes indicações:
    • A secção Estado da operação de longa duração tem uma marca de verificação verde no cabeçalho OK.
    • A secção Vista geral tem uma marca de verificação verde e um indicador OK na mesma linha que o ID da operação.
    Se encontrar erros, clique em Ações e, de seguida, em Ver detalhes no Cloud Logging.

gcloud

Para exportar recursos FHIR para o BigQuery, execute o comando gcloud healthcare fhir-stores export bq.

  1. Exporte os recursos FHIR.

    Antes de usar qualquer um dos dados de comandos abaixo, 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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery existente para o qual está a exportar recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um dos seguintes valores:
      • analytics. Um esquema baseado no documento SQL on FHIR. Uma vez que o BigQuery só permite 10 000 colunas por tabela, os esquemas não são gerados para os campos Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • analytics_v2. Um esquema semelhante ao analytics com suporte adicional para o seguinte:

        analytics-v2 usa mais espaço na tabela de destino do que analytics.

    • WRITE_DISPOSITION: um valor para WriteDisposition. Use um dos seguintes valores:
      • write-empty. Exporte dados apenas se as tabelas do BigQuery de destino estiverem vazias.
      • write-truncate. Apague todos os dados existentes nas tabelas do BigQuery antes de escrever os recursos FHIR.
      • write-append. Anexar dados às tabelas do BigQuery de destino.
    • FHIR_RESOURCE_TYPE: um campo opcional. Especifique um ou mais tipos de recursos FHIR delimitados por vírgulas para exportar apenas recursos FHIR desses tipos.
    • SINCE_TIMESTAMP: um campo opcional. Especifique um valor no formato YYYY-MM-DDThh:mm:ss.sss+zz:zz para exportar apenas recursos FHIR atualizados após um momento específico. Especifique a hora até ao segundo e inclua um fuso horário. Por exemplo, 2015-02-07T13:28:17.239+02:00 e 2017-01-01T00:00:00Z são horas válidas.

    Execute o seguinte comando:

    Linux, macOS ou Cloud Shell

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID \
      --location=LOCATION \
      --dataset=DATASET_ID \
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID \
      --schema-type=SCHEMA_TYPE \
      --write-disposition=WRITE_DISPOSITION \
      --resource-type=FHIR_RESOURCE_TYPE \
      --since=SINCE_TIMESTAMP

    Windows (PowerShell)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID `
      --location=LOCATION `
      --dataset=DATASET_ID `
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID `
      --schema-type=SCHEMA_TYPE `
      --write-disposition=WRITE_DISPOSITION `
      --resource-type=FHIR_RESOURCE_TYPE `
      --since=SINCE_TIMESTAMP

    Windows (cmd.exe)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID ^
      --location=LOCATION ^
      --dataset=DATASET_ID ^
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ^
      --schema-type=SCHEMA_TYPE ^
      --write-disposition=WRITE_DISPOSITION ^
      --resource-type=FHIR_RESOURCE_TYPE ^
      --since=SINCE_TIMESTAMP
    A resposta é a seguinte. A resposta contém um identificador para uma operação de longa duração. As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar um período considerável a serem concluídas. O comando consulta a operação de longa duração e, em seguida, imprime o nome da operação no campo name após a conclusão da exportação. Repare no valor de OPERATION_ID. Precisa deste valor no passo seguinte.

    Resposta

    Request issued for: [FHIR_STORE_ID]
    Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    

  2. Para ver mais detalhes sobre a operação, execute o comando gcloud healthcare operations describe e indique o OPERATION_ID da resposta.

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DATASET_ID: o ID do conjunto de dados
    • LOCATION: a localização do conjunto de dados
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Execute o seguinte comando:

    Linux, macOS ou Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --dataset=DATASET_ID \
        --location=LOCATION

    Windows (PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=PROJECT_ID `
        --dataset=DATASET_ID `
        --location=LOCATION

    Windows (cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=PROJECT_ID ^
        --dataset=DATASET_ID ^
        --location=LOCATION

    Deve receber uma resposta semelhante à seguinte:

    Resposta

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.fhir.FhirStoreService.ExportResources_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.fhir.ExportResourcesResponse'
    

REST

Para exportar recursos FHIR para o BigQuery, use o método projects.locations.datasets.fhirStores.export.

  1. Exporte os recursos FHIR:

    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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery existente para o qual está a exportar recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um dos seguintes valores:
      • ANALYTICS. Um esquema baseado no documento SQL on FHIR. Uma vez que o BigQuery só permite 10 000 colunas por tabela, os esquemas não são gerados para os campos Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • ANALYTICS_V2. Um esquema semelhante ao ANALYTICS com suporte adicional para o seguinte:

        ANALYTICS_V2 usa mais espaço na tabela de destino do que ANALYTICS

        .
    • WRITE_DISPOSITION: um valor para WriteDisposition. Use um dos seguintes valores:
      • WRITE_EMPTY. Exporte dados apenas se as tabelas do BigQuery de destino estiverem vazias.
      • WRITE_TRUNCATE. Apague todos os dados existentes nas tabelas do BigQuery antes de escrever os recursos FHIR.
      • WRITE_APPEND. Anexar dados às tabelas do BigQuery de destino.
    • FHIR_RESOURCE_TYPE: um campo opcional. Especifique um ou mais tipos de recursos FHIR delimitados por vírgulas para exportar apenas recursos FHIR desses tipos.
    • SINCE_TIMESTAMP: um campo opcional. Especifique um valor no formato YYYY-MM-DDThh:mm:ss.sss+zz:zz para exportar apenas recursos FHIR atualizados após um momento específico. Especifique a hora até ao segundo e inclua um fuso horário. Por exemplo, 2015-02-07T13:28:17.239+02:00 e 2017-01-01T00:00:00Z são horas válidas.

    Corpo JSON do pedido:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    

    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'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    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/FHIR_STORE_ID:export"

    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:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    '@  | 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/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorador de APIs

    Copie o corpo do pedido e abra a página de referência do método. O painel 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.

    O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DATASET_ID: o ID do conjunto de dados
    • LOCATION: a localização do conjunto de dados
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    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/operations/OPERATION_ID"

    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/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador de APIs

    Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

Exporte recursos FHIR para tabelas particionadas

Para exportar recursos FHIR para tabelas particionadas do BigQuery, defina a enumeração TimePartitioning no campo lastUpdatedPartitionConfig na sua loja FHIR.

As tabelas particionadas funcionam como tabelas particionadas por unidade de tempo do BigQuery. As tabelas particionadas têm uma coluna adicionada denominada lastUpdated, que é uma duplicada da coluna meta.lastUpdated gerada a partir do campo meta.lastUpdated num recurso FHIR. O BigQuery usa a coluna lastUpdated para particionar tabelas por hora, dia, mês ou ano.

Consulte Selecione a partição diária, por hora, mensal ou anual para ver recomendações sobre como selecionar um nível de detalhe da partição.

Não é possível converter tabelas do BigQuery existentes não particionadas em tabelas particionadas. Se exportar alterações do recurso Patient para uma tabela Patients não particionada e, posteriormente, criar um novo FHIR store com a partição de tabelas que exporta para o mesmo conjunto de dados do BigQuery, a Cloud Healthcare API continua a exportar dados para a tabela Patients não particionada. Para começar a usar uma tabela particionada, elimine a tabela Patients existente ou use um conjunto de dados do BigQuery diferente.

Se adicionar a partição a uma configuração da loja FHIR existente, ainda pode exportar para tabelas não particionadas existentes. No entanto, a partição só entra em vigor em novas tabelas.

Os exemplos seguintes mostram como exportar recursos FHIR para tabelas particionadas do BigQuery.

Consola

A consola Google Cloud e a CLI gcloud não suportam esta ação. Em alternativa, use curl, o PowerShell ou o seu idioma preferido.

gcloud

A consola Google Cloud e a CLI gcloud não suportam esta ação. Em alternativa, use curl, o PowerShell ou o seu idioma preferido.

REST

Para exportar recursos FHIR para tabelas particionadas do BigQuery, use o método projects.locations.datasets.fhirStores.export.

  1. Exporte os recursos FHIR:

    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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery existente para o qual está a exportar recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um dos seguintes valores:
      • ANALYTICS. Um esquema baseado no documento SQL on FHIR. Uma vez que o BigQuery só permite 10 000 colunas por tabela, os esquemas não são gerados para os campos Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • ANALYTICS_V2. Um esquema semelhante ao ANALYTICS com suporte adicional para o seguinte:

        ANALYTICS_V2 usa mais espaço na tabela de destino do que ANALYTICS

        .
    • TIME_PARTITION_TYPE: o nível de detalhe ao qual particionar os recursos FHIR exportados. Use um dos seguintes valores:
      • HOUR: particione os dados por hora
      • DAY: particione os dados por dia
      • MONTH: particione os dados por mês
      • YEAR: crie partições de dados por ano
    • WRITE_DISPOSITION: um valor para WriteDisposition. Use um dos seguintes valores:
      • WRITE_EMPTY: exportar dados apenas se a tabela do BigQuery estiver vazia.
      • WRITE_TRUNCATE: apaga todos os dados existentes na tabela do BigQuery antes de escrever as instâncias DICOM.
      • WRITE_APPEND: acrescentar dados à tabela do BigQuery.

    Corpo JSON do pedido:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

    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'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    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/FHIR_STORE_ID:export"

    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:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | 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/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorador de APIs

    Copie o corpo do pedido e abra a página de referência do método. O painel 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:

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DATASET_ID: o ID do conjunto de dados
    • LOCATION: a localização do conjunto de dados
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    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/operations/OPERATION_ID"

    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/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador de APIs

    Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

Consulte uma tabela particionada

Para reduzir os custos de consulta ao consultar tabelas particionadas, use a cláusula WHERE para filtrar por unidades de tempo.

Por exemplo, suponha que define a enumeração PartitionType como DAY. Para consultar uma tabela Patients para recursos de pacientes que foram atualizados numa data específica, execute a seguinte consulta:

SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients`
  WHERE DATE(lastUpdated) = 'YYYY-MM-DD'

Exportações incrementais

Pode especificar uma data/hora para exportar apenas recursos FHIR adicionados à sua loja FHIR desde uma exportação bem-sucedida anterior. Isto melhora o desempenho e evita o custo de reexportar toda a loja FHIR, ao mesmo tempo que garante que os dados exportados estão sempre atualizados.

Quando chamar fhirStores.export, especifique a data/hora no campo _since.

Consultar e analisar dados FHIR no BigQuery

Depois de exportar os recursos FHIR para o BigQuery, consulte a solução Analisar dados FHIR no BigQuery para ver informações sobre como consultar e analisar os dados exportados. A solução usa o conjunto de dados público Synthea™ Generated Synthetic Data in FHIR, que aloja mais de 1 milhão de registos de pacientes sintéticos gerados nos formatos Synthea™ e FHIR.

Resolução de problemas de pedidos de exportação de FHIR

Se ocorrerem erros durante um pedido de exportação FHIR, os erros são registados no Cloud Logging. Para mais informações, consulte o artigo Ver registos de erros nos Registos na nuvem.

Se toda a operação devolver um erro, consulte o artigo Resolução de problemas de operações de longa duração.

Não é possível converter a coluna de NULLABLE para REPEATED

Este erro é causado por uma extensão repetida. Para resolver este erro, use o tipo de esquema ANALYTICS_V2. Se estiver a usar o ANALYTICS_V2, pode ter um conflito entre duas extensões ou um conflito entre uma extensão e outro campo.

Os nomes das colunas são gerados a partir do texto após o último caráter / nos URLs das extensões. Se um URL de extensão terminar com um valor como /resource_field name, pode ocorrer um conflito. \

Para evitar que este erro ocorra novamente, não use extensões se os respetivos nomes dos campos forem iguais aos campos de recursos que está a preencher.

O que se segue?