Fazer streaming de metadados de DICOM para o BigQuery

Esta página descreve como configurar um armazenamento DICOM para exportação Metadados de instância DICOM para uma tabela do BigQuery sempre que um dos ocorre o seguinte:

Fazer streaming de metadados DICOM para uma tabela do BigQuery sincroniza a tabela com seus dados DICOM para que você possa executar consultas complexas na versão mais recente do ao seu repositório DICOM.

Antes de começar

Antes de configurar o armazenamento DICOM, faça o seguinte

Definir permissões do BigQuery

Antes de fazer streaming de metadados DICOM para o BigQuery, é preciso conceder as permissões necessárias para o Agente de serviço do Cloud Healthcare conta de serviço. Para mais informações, consulte Permissões do BigQuery para armazenar DICOM.

Saiba como exportar metadados DICOM para o BigQuery

Antes de configurar o streaming, saiba como exportar metadados do DICOM para o BigQuery.

Configurar o armazenamento DICOM

Para ativar o streaming no BigQuery, configure o objeto StreamConfig no seu armazenamento de DICOM. No objeto StreamConfig, defina o BigQueryDestination para um URI de tabela do BigQuery totalmente qualificado como um arquivo DICOM destino de metadados da instância.

É possível especificar até cinco destinos do BigQuery objetos JSON separados por vírgula.

Excluir instâncias DICOM em um armazenamento DICOM não exclui o BigQuery linhas contendo os metadados para essas instâncias.

Console

Para atualizar um armazenamento DICOM para ativar o streaming do BigQuery, conclua as seguintes etapas:

  1. No console do Google Cloud, acesse a página Conjuntos de dados.
    Acessar Conjuntos de dados
  2. Selecione o conjunto de dados que contém o armazenamento DICOM que você quer editar.
  3. Selecione o armazenamento DICOM para o qual você está adicionando uma configuração de streaming.
  4. Na guia Visão geral da página Detalhes do Datastore, Clique em Adicionar nova configuração de streaming.
  5. No campo Nova configuração de streaming, clique em Procurar.
    1. No painel Selecionar tabela, escolha uma tabela do BigQuery.
    2. Clique em Selecionar.
  6. Clique em Concluído.

REST

Os exemplos a seguir mostram como atualizar um armazenamento de DICOM para ativar o streaming do BigQuery. Nestas amostras, o armazenamento de DICOM e a Tabela do BigQuery estão no mesmo projeto. Para exportar metadados DICOM para outro projeto, consulte Como exportar metadados DICOM para um projeto diferente.

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 DICOM
  • DICOM_STORE_ID: o ID do repositório DICOM
  • BIGQUERY_DATASET_ID: o nome de um conjunto de dados atual do BigQuery
  • BIGQUERY_TABLE_ID: o nome exclusivo de uma tabela no conjunto de dados do BigQuery. Consulte Nomenclatura da tabela para ver os requisitos de nomenclatura. O conjunto de dados do BigQuery precisa existir, mas a API Cloud Healthcare pode atualizar uma tabela atual ou criar uma nova.

Corpo JSON da solicitação:

{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}

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': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
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/dicomStores/DICOM_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': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
'@  | 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/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content

APIs Explorer

Copie o corpo da solicitação e abra o 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:

Metadados de exclusão

Nas versões anteriores da API Cloud Healthcare, os metadados da instância DICOM eram apenas exportado para o BigQuery quando uma instância DICOM é inserida em um loja on-line. Quando a gravação de metadados para exclusões foi adicionada, duas novas colunas, chamadas Type e LastUpdated, foram adicionadas ao conjunto de dados que contém os metadados DICOM.

Todos os metadados na tabela que existiam antes da introdução da exclusão metadados têm um valor NULL para essas colunas. Um NULL é o valor mais baixo e aparece por último ao classificar por ordem decrescente.

Visualização gerada do BigQuery

Quando você insere ou exclui uma instância DICOM em um repositório DICOM, o valor A tabela do BigQuery foi atualizada.

Se uma visualização da tabela não existir, a visualização é criada. Caso contrário, a visualização será atualizada.

Limitações e comportamento adicional

Algumas tags DICOM podem estar faltando nos metadados exportados. Nesse caso, os valores são adicionadas a uma coluna separada chamada DroppedTags.TagName no tabela de destino do BigQuery.

As tags vão estar ausentes por um dos seguintes motivos:

  • A tag DICOM é uma RV não compatível listada em RVs excluídas.
  • A tag DICOM excede aproximadamente 1 MB.
  • O número de colunas na tabela de destino do BigQuery excede o número máximo de colunas. Quando a exportação de metadados DICOM para uma tabela do BigQuery excede o limite de colunas, as tags DICOM que não corresponderem a uma coluna atual serão adicionadas na coluna DroppedTags.Name. Se não for possível adicionar a coluna DroppedTags, as tags DICOM são descartadas sem uma notificação, e um registro de aviso é gerada. Para mais informações, consulte Solução de problemas de solicitações de streaming DICOM para visualizar registros.

Incorporar metadados de exclusão em uma tabela

O comportamento da visualização gerada depende se a base A tabela contém metadados adicionados antes dos metadados de exclusão quando esse recurso for lançado.

Suponha que uma tabela do BigQuery contenha metadados DICOM de antes os metadados de exclusão foram aceitos, o que acontece:

  1. Você insere uma instância DICOM em um armazenamento DICOM.
  2. Exclua a instância DICOM do repositório DICOM.
  3. Você edita as tags da instância DICOM original e insere a tag Instância DICOM no repositório DICOM.

Como a tabela do BigQuery continha os metadados originais antes metadados de exclusão foram suportados, a instância DICOM original e sua têm os mesmos estudos, séries e instâncias identificadores exclusivos (UID, na sigla em inglês). A visualização gerada pode conter a instância DICOM original ou a instância DICOM mais recente. Sem coluna LastUpdated, a visualização não conseguirá identificar qual instância DICOM é mais recente.

Para garantir que você esteja consultando os metadados mais recentes da instância DICOM, execute um dos seguintes:

  • Consulte a tabela base em vez da visualização. Verifique se a consulta pesquisa as tags atualizadas na instância DICOM editada.
  • Excluir a tabela atual que contém os metadados DICOM e recriá-la exportando manualmente os metadados DICOM para o BigQuery. A tabela recriada contém a coluna LastUpdated.

    Essa opção remove metadados históricos de streaming, mas garante que a tabela contém a coluna LastUpdated com valores válidos.

Resolver problemas de solicitações de streaming DICOM

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

Para filtrar registros de erro de metadados DICOM de streaming no console do Google Cloud, conclua as seguintes etapas:

  1. Acesse a página Análise de registros.

    Acessar o "Explorador de registros"

  2. No campo Consulta, digite a seguinte consulta:

    logName="healthcare.googleapis.com%2Fdicom_stream"
    
  3. Clique em Executar consulta.

    Todos os registros de erros são exibidos na seção Resultados da consulta.