Como exportar recursos FHIR para o BigQuery

Nesta página, explicamos como exportar recursos FHIR para o BigQuery para exploração e análise. A operação de exportação gera uma tabela do BigQuery para cada tipo de recurso FHIR no armazenamento FHIR.

Para melhorar o desempenho das consultas e reduzir custos, é possível configurar o streaming do BigQuery para tabelas particionadas. Para instruções, consulte Exportar recursos do FHIR para tabelas particionadas.

Como configurar permissões do BigQuery

Antes de exportar recursos FHIR para o BigQuery, é preciso conceder outras permissões à conta de serviço do Agente de serviço do Cloud Healthcare. Para mais informações, consulte Permissões do BigQuery para armazenar FHIR.

Como exportar recursos do FHIR

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

Ao definir o destino do BigQuery, use o URI totalmente qualificado, da seguinte forma:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

O comportamento da operação de exportação pode variar dependendo do seguinte:

  • Se a tabela de destino já existe.
  • Se você definir o campo force.
  • Se você especificar um tipo enumerado em WriteDisposition. Se você especificar um tipo enumerado, não defina o campo force.

O comportamento em cada um desses casos é o seguinte:

  • Se a tabela de destino já existir e force estiver definido como true, a operação de exportação substituirá a tabela atual.
  • Se a tabela de destino já existir e force estiver definido como false, ocorrerá um erro.
  • Se a tabela de destino ainda não existir, a operação de exportação criará uma nova tabela, independentemente de você especificar o campo force.
  • Ao usar WriteDisposition, se a tabela de destino já existir e estiver vazia, a operação de exportação será concluída com êxito em vez de retornar um erro.

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

Console

Para exportar recursos FHIR para o BigQuery usando o console do Google Cloud, conclua as etapas a seguir:

  1. No console do Google Cloud, acesse a página Conjuntos de dados.

    Acessar conjuntos de dados

  2. Clique no conjunto de dados que tem o repositório de FHIR com os dados que você está exportando.

  3. Na mesma linha do repositório de FHIR, abra a lista Ações e selecione Exportar.

  4. Na página Exportar recursos FHIR, localize a seção Selecionar um destino. Selecione Tabela do BigQuery.

  5. Na seção Disposição de gravação na tabela de destino, selecione uma das seguintes opções para determinar o comportamento da operação de exportação:

    • Exportar dados somente se as tabelas de destino estiverem vazias: isso equivale a selecionar o tipo enumerado WRITE_EMPTY em WriteDisposition.
    • Anexar dados às tabelas de destino: equivale a selecionar o tipo enumerado WRITE_APPEND em WriteDisposition.
    • Apague todos os dados atuais nas tabelas de destino antes de gravar os recursos FHIR: isso equivale a selecionar o tipo enumerado WRITE_TRUNCATE em WriteDisposition.
  6. Na seção Configuração de exportação de FHIR, clique em Procurar para selecionar o projeto e o conjunto de dados do BigQuery.

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

    • Google Analytics. Um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 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.
    • Google Analytics V2. Um esquema semelhante ao do Google Analytics, com suporte adicional para o seguinte: O esquema do Google Analytics V2 usa mais espaço na tabela de destino do que o esquema do Analytics.

  8. Selecione um nível de profundidade no controle deslizante Profundidade da estrutura recursiva para definir a profundidade de todas as estruturas recursivas no esquema de saída. Por padrã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 status da operação, clique na guia Operações. Após a conclusão da operação, as seguintes indicações serão exibidas:
    • A seção Status da operação de longa duração tem uma marca de seleção verde no cabeçalho OK.
    • A seção Visão geral tem uma marca de seleção verde e um indicador OK na mesma linha do ID da operação.
    Se você encontrar erros, clique em Ações e depois em Ver detalhes no Cloud Logging.

gcloud

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

  1. Exporte os recursos FHIR.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • 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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery atual para onde você está exportando recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um destes valores:
      • analytics: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 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 a 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 destes valores:
      • write-empty. Exporte dados somente se as tabelas de destino do BigQuery estiverem vazias.
      • write-truncate. Apague todos os dados atuais nas tabelas do BigQuery antes de gravar os recursos FHIR.
      • write-append. Anexar dados às tabelas de destino do BigQuery.
    • 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 período específico. Especifique a hora como o 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 horários válidos.

    Execute o comando a seguir:

    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. Operações de longa duração são retornadas quando as chamadas de método podem demorar um tempo significativo para serem concluídas. O comando pesquisa a operação de longa duração e imprime o nome da operação no campo name depois que a exportação é concluída. Anote o valor de OPERATION_ID. Você vai precisar desse valor na próxima etapa.

    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 gcloud healthcare operations describe e forneça o OPERATION_ID da resposta.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • DATASET_ID: o ID do conjunto de dados;
    • LOCATION: o local do conjunto de dados;
    • OPERATION_ID: o ID retornado da operação de longa duração.

    Execute o comando a seguir:

    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
    

    Você receberá uma resposta semelhante a esta:

    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 os dados da solicitação, 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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery atual para onde você está exportando recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um destes valores:
      • ANALYTICS: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 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 a 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 destes valores:
      • WRITE_EMPTY. Exporte dados somente se as tabelas de destino do BigQuery estiverem vazias.
      • WRITE_TRUNCATE. Apague todos os dados atuais nas tabelas do BigQuery antes de gravar os recursos FHIR.
      • WRITE_APPEND. Anexar dados às tabelas de destino do BigQuery.
    • 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 período específico. Especifique a hora como o 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 horários válidos.

    Solicitar corpo JSON:

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

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

    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:

    @'
    {
      "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

    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/FHIR_STORE_ID:export" | 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.

    A saída é esta. A resposta contém um identificador para uma operação de longa duração (LRO, na sigla em inglês). Operações de longa duração são retornadas quando as chamadas de método podem levar mais tempo para serem concluídas. Anote o valor de OPERATION_ID. Você vai precisar desse valor na próxima etapa.

  2. Use o método projects.locations.datasets.operations.get para ver o status da operação de longa duração.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • DATASET_ID: o ID do conjunto de dados;
    • LOCATION: o local do conjunto de dados;
    • OPERATION_ID: o ID retornado da operação de longa duração.

    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/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

    APIs Explorer

    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. Preencha todos os campos obrigatórios e clique em Executar.

    A saída é esta. Quando a resposta contém "done": true, a operação de longa duração foi concluída.

Exportar recursos FHIR para tabelas particionadas

Para exportar recursos FHIR para tabelas particionadas do BigQuery, defina o enumerado TimePartitioning no campo lastUpdatedPartitionConfig no armazenamento FHIR.

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

Consulte Selecionar particionamento por dia, hora, mês ou ano para ver recomendações sobre como selecionar uma granularidade de partição.

Não é possível converter tabelas do BigQuery não particionadas em tabelas particionadas. Se você exportar alterações de recursos do paciente para uma tabela Patients não particionada e depois criar um novo armazenamento de FHIR com particionamento de tabela que exporta para o mesmo conjunto de dados do BigQuery, a API Cloud Healthcare ainda exportará dados para a tabela Patients não particionada. Para começar a usar uma tabela particionada, exclua a tabela Patients atual ou use um conjunto de dados diferente do BigQuery.

Se você adicionar particionamento a uma configuração de armazenamento FHIR atual, ainda será possível exportar para tabelas não particionadas atuais. No entanto, o particionamento só terá efeito em novas tabelas.

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

Console

O console do Google Cloud e a CLI gcloud não são compatíveis com essa ação. Em vez disso, use curl, PowerShell ou sua linguagem preferida.

gcloud

O console do Google Cloud e a CLI gcloud não são compatíveis com essa ação. Em vez disso, use curl, PowerShell ou sua linguagem preferida.

REST

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

  1. Exporte os recursos FHIR:

    Antes de usar os dados da solicitação, 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
    • BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery atual para onde você está exportando recursos FHIR
    • SCHEMA_TYPE: um valor para SchemaType. Use um destes valores:
      • ANALYTICS: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 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 a ANALYTICS, com suporte adicional para o seguinte:

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

        .
    • TIME_PARTITION_TYPE: a granularidade para particionar os recursos FHIR exportados. Use um destes valores:
      • HOUR: particiona dados por hora.
      • DAY: particionar dados por dia
      • MONTH: particionar dados por mês
      • YEAR: particionar dados por ano
    • WRITE_DISPOSITION: um valor para WriteDisposition. Use um destes valores:
      • WRITE_EMPTY: só exporta dados se a tabela do BigQuery estiver vazia.
      • WRITE_TRUNCATE: apaga todos os dados existentes na tabela do BigQuery antes de gravar as instâncias DICOM.
      • WRITE_APPEND: anexa dados à tabela do BigQuery.

    Solicitar corpo JSON:

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

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

    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:

    @'
    {
      "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

    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/FHIR_STORE_ID:export" | 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:

  2. Use o método projects.locations.datasets.operations.get para ver o status da operação de longa duração.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • DATASET_ID: o ID do conjunto de dados;
    • LOCATION: o local do conjunto de dados;
    • OPERATION_ID: o ID retornado da operação de longa duração.

    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/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

    APIs Explorer

    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. Preencha todos os campos obrigatórios e clique em Executar.

    A saída é esta. Quando a resposta contém "done": true, a operação de longa duração foi concluída.

Consultar 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 você defina o tipo enumerado PartitionType como DAY. Para consultar uma tabela Patients para recursos de paciente que foram atualizados em uma data específica, execute a seguinte consulta:

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

Como consultar e analisar dados FHIR no BigQuery

Depois de exportar os recursos FHIR para o BigQuery, consulte a solução Como 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 SyntheaTM Generated Data In FHIR, que hospeda mais de um milhão de registros sintéticos de pacientes gerados nos formatos SyntheaTM e FHIR.

Solução de problemas de solicitações de exportação FHIR

Se ocorrerem erros durante uma solicitação de exportação do FIHR, eles serão registrados no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.

Se toda a operação retornar um erro, consulte Solução de problemas de operações de longa duração.

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

Esse erro é causado por uma extensão repetida. Para resolver esse erro, use o tipo de esquema ANALYTICS_V2. Se você já estiver usando ANALYTICS_V2, poderá 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 caractere / nos URLs de extensão. Se um URL de extensão terminar com um valor como /resource_field name, poderá ocorrer um conflito.

Para evitar que esse erro ocorra novamente, não use extensões se os nomes dos campos forem os mesmos dos campos de recursos que você está preenchendo.

A seguir