Nesta página, descrevemos como configurar um armazenamento DICOM para exportar metadados de instâncias DICOM para uma tabela do BigQuery sempre que uma das seguintes situações ocorrer:
- Você armazena uma instância DICOM usando a transação de armazenamento ou importando objetos DICOM de um bucket do Cloud Storage.
- Você exclui uma instância DICOM usando uma solicitação de exclusão.
- Você muda a classe de armazenamento de uma instância DICOM.
O 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 armazenamento DICOM.
Antes de começar
Antes de configurar o armazenamento DICOM, faça o seguinte:
Definir permissões do BigQuery
Antes de transmitir metadados DICOM para o BigQuery, é necessário conceder as permissões necessárias à conta de serviço do Agente de serviço do Cloud Healthcare. 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, entenda como exportar metadados 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 objeto
BigQueryDestination
como um URI de tabela do BigQuery totalmente qualificado como destino de metadados de instância
DICOM.
É possível especificar até cinco destinos do BigQuery como objetos JSON separados por vírgulas.
A exclusão de instâncias DICOM em um armazenamento DICOM não exclui as linhas do BigQuery que contêm os metadados dessas instâncias.
Console
Para atualizar um armazenamento DICOM e ativar o streaming do BigQuery, siga estas etapas:
- No Google Cloud console, acesse a página Conjuntos de dados.
Acessar "Conjuntos de dados" - Selecione o conjunto de dados que contém o armazenamento DICOM que você quer editar.
- Selecione o armazenamento DICOM para o qual você está adicionando uma configuração de streaming.
- Na guia Visão geral da página Detalhes do datastore, clique em Adicionar nova configuração de streaming.
- No campo Nova configuração de streaming, clique em Procurar.
- No painel Selecionar tabela, escolha uma tabela do BigQuery.
- Clique em Selecionar.
- 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 Google Cloud projeto
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento DICOM
- DICOM_STORE_ID: o ID do armazenamento DICOM
- BIGQUERY_DATASET_ID: o nome de um conjunto de dados do BigQuery
- BIGQUERY_TABLE_ID: um nome exclusivo para uma tabela no conjunto de dados do BigQuery. Consulte Nomenclatura de tabelas para saber mais sobre os requisitos de nomenclatura. O conjunto de dados do BigQuery precisa existir, mas a API Cloud Healthcare pode atualizar uma tabela existente 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 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:
Metadados de exclusão
Em versões anteriores da API Cloud Healthcare, os metadados de instâncias DICOM eram exportados para o BigQuery apenas quando uma instância DICOM era inserida em um armazenamento DICOM. Quando a gravação de metadados para exclusões foi adicionada, duas novas colunas, chamadas Type
e LastUpdated
, foram incluídas na tabela gerada com os metadados DICOM.
Todos os metadados na tabela que existiam antes da introdução dos metadados de exclusão têm um valor NULL
para essas colunas. Um NULL
é o valor mais baixo e aparece por último ao classificar em ordem decrescente.
Visualização gerada do BigQuery
Quando você insere ou exclui uma instância DICOM em um armazenamento DICOM, a tabela do BigQuery configurada é atualizada.
Se uma visualização da tabela não existir, ela será criada. Caso contrário, a visualização será atualizada.
Limitações e comportamento adicional
Algumas tags DICOM podem estar ausentes dos metadados exportados. Se for o caso, as tags ausentes serão adicionadas a uma coluna separada chamada DroppedTags.TagName
na 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 correspondem a uma coluna existente são adicionadas à coluna
DroppedTags.Name
. Se a colunaDroppedTags
não puder ser adicionada, as tags DICOM serão descartadas sem uma notificação, e um registro de aviso será gerado. Para mais informações, consulte Solução de problemas com solicitações de streaming DICOM para visualização de registros.
Incorporar metadados de exclusão a uma tabela atual
O comportamento da visualização gerada depende de a tabela base conter metadados adicionados antes da introdução do recurso metadados de exclusão.
Suponha que uma tabela do BigQuery contenha metadados DICOM de antes da compatibilidade com metadados de exclusão e que ocorra o seguinte:
- Você insere uma instância DICOM em um armazenamento DICOM.
- Exclua a instância DICOM do armazenamento DICOM.
- Você edita as tags da instância DICOM original e insere a instância DICOM modificada no armazenamento DICOM.
Como a tabela do BigQuery continha os metadados originais antes da compatibilidade com metadados de exclusão, a instância DICOM original e a versão editada têm os mesmos identificadores únicos (UIDs) de estudos, séries e instâncias. A visualização gerada pode conter a instância DICOM original ou a mais recente. Sem a coluna LastUpdated
, a visualização não consegue identificar qual instância DICOM é mais recente.
Para garantir que você está consultando os metadados da instância DICOM mais recente, faça uma das seguintes ações:
- Consulte a tabela base em vez da visualização. Verifique se a consulta pesquisa as tags atualizadas na instância DICOM editada.
Exclua a tabela atual que contém metadados DICOM e recrie-a exportando os metadados DICOM para o BigQuery manualmente. A tabela recriada contém a coluna
LastUpdated
.Essa opção remove os metadados históricos de streaming, mas garante que a tabela contenha a coluna
LastUpdated
com valores válidos.
Solução de problemas em solicitações de streaming para 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 os registros de erros de metadados DICOM de streaming no console Google Cloud , siga estas etapas:
Acesse a página Análise de registros.
No campo Consulta, digite a seguinte consulta:
logName="healthcare.googleapis.com%2Fdicom_stream"
Clique em Executar consulta.
Os registros de erros são exibidos na seção Resultados da consulta.