Transmite metadatos de DICOM a BigQuery

En esta página, se describe cómo configurar un almacén de DICOM para exportar metadatos de la instancia de DICOM a una tabla de BigQuery cada vez que se ocurre lo siguiente:

La transmisión de metadatos de DICOM a una tabla de BigQuery sincroniza la tabla con tus datos de DICOM para poder ejecutar consultas complejas en la versión más reciente tu almacén de DICOM.

Antes de comenzar

Antes de configurar tu almacén de DICOM, completa los siguientes pasos:

Configura los permisos de BigQuery

Antes de transmitir metadatos de DICOM a BigQuery, debes otorgar los permisos necesarios para el agente de servicio de Cloud Healthcare cuenta de servicio. Para obtener más información, consulta Permisos de BigQuery para el almacén de DICOM.

Aprende a exportar metadatos de DICOM a BigQuery

Antes de configurar la transmisión, comprende cómo Exportar metadatos de DICOM a BigQuery.

Configura el almacén de DICOM

Para habilitar la transmisión a BigQuery, configura el objeto StreamConfig en el almacén DICOM. En el objeto StreamConfig, configura la BigQueryDestination objeto a un URI de tabla de BigQuery completamente calificado como DICOM el destino de los metadatos de la instancia.

Puedes especificar hasta cinco destinos de BigQuery, como objetos JSON separados por comas.

Borrar instancias de DICOM en un almacén de DICOM no borra el archivo de BigQuery filas que contienen los metadatos de esas instancias.

Console

Para actualizar un almacén de DICOM a fin de habilitar la transmisión de BigQuery, realiza los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Conjuntos de datos.
    Ir a Conjuntos de datos
  2. Selecciona el conjunto de datos que contenga el almacén de DICOM que deseas editar.
  3. Selecciona el almacén de DICOM para el que agregarás una configuración de transmisión.
  4. En la pestaña Descripción general de la página Detalles de Datastore, haz lo siguiente: Haz clic en Agregar nueva configuración de transmisión.
  5. En el campo Nueva configuración de transmisión, haz clic en Explorar.
    1. En el panel Seleccionar tabla, selecciona una tabla de BigQuery.
    2. Haz clic en Seleccionar.
  6. Haz clic en Listo.

REST

En los siguientes ejemplos, se muestra cómo actualizar un almacén de DICOM para habilitar la transmisión de BigQuery. En estas muestras, el almacén de DICOM y la tabla de BigQuery están en el mismo proyecto. Para exportar metadatos de DICOM a otro proyecto, consulta Exporta metadatos de DICOM a un proyecto diferente.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • LOCATION: La ubicación del conjunto de datos
  • DATASET_ID: El conjunto de datos superior del almacén de DICOM
  • DICOM_STORE_ID: El ID del almacén de DICOM
  • BIGQUERY_DATASET_ID: El nombre de un conjunto de datos de BigQuery existente
  • BIGQUERY_TABLE_ID: Un nombre único para una tabla en el conjunto de datos de BigQuery. Consulta Nombres de las tablas para conocer los requisitos de nombres. El conjunto de datos de BigQuery debe existir, pero la API de Cloud Healthcare puede actualizar una tabla existente o crear una nueva.

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
EOF

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

@'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
'@  | Out-File -FilePath request.json -Encoding utf8

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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

Explorador de API

Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, completa cualquier otro campo obligatorio y haz clic en Ejecutar.

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Metadatos de eliminación

En versiones anteriores de la API de Cloud Healthcare, los metadatos de instancia de DICOM solo se exportaban a BigQuery cuando se insertaba una instancia de DICOM en un almacén de DICOM. Cuando se agregó la escritura de metadatos de para eliminaciones, se agregaron dos columnas nuevas, llamadas Type y LastUpdated, a la tabla generada que contienía los metadatos de DICOM.

Todos los metadatos de la tabla que existían antes de que se implementara la eliminación los metadatos tienen un valor NULL para estas columnas. Un NULL es el valor más bajo y aparece al final al ordenar por orden descendente.

Vista de BigQuery generada

Cuando insertas o borras una instancia de DICOM en un almacén, se configura y se actualizará la tabla de BigQuery.

Si una vista de la tabla no existe, se crea la vista. De lo contrario, se actualiza la vista.

Limitaciones y comportamientos adicionales

Es posible que falten algunas etiquetas de DICOM en los metadatos exportados. Si es así, los números faltantes las etiquetas se agregan a una columna separada llamada DroppedTags.TagName en el en la tabla de BigQuery de destino.

Faltarán etiquetas por alguno de los siguientes motivos:

  • La etiqueta de DICOM es una RV no compatible que aparece en la lista de VR excluidas.
  • La etiqueta de DICOM supera aproximadamente 1 MB.
  • Si la cantidad de columnas de la tabla de destino de BigQuery supera la cantidad máxima de columnas. Cuando la exportación de metadatos de DICOM a una tabla de BigQuery supera el límite de columnas, se agregan las etiquetas de DICOM que no coinciden con una columna existente la columna DroppedTags.Name Si no se puede agregar la columna DroppedTags, las etiquetas de DICOM se descartan sin una notificación y se muestra un registro de advertencia de red. Para obtener más información, consulta Soluciona problemas de solicitudes de transmisión de DICOM para ver registros.

Incorporar metadatos de eliminación en una tabla existente

El comportamiento de la vista generada depende de si su contiene los metadatos que se agregaron antes de los metadatos de eliminación y se introdujo la función.

Supongamos que una tabla de BigQuery contiene metadatos de DICOM de antes se admitieron los metadatos de eliminación, y ocurre lo siguiente:

  1. Insertas una instancia de DICOM en un almacén de DICOM.
  2. Borras la instancia de DICOM del almacén de DICOM.
  3. Edita las etiquetas de la instancia de DICOM original y, luego, inserta la la instancia de DICOM en el almacén de DICOM.

Debido a que la tabla de BigQuery contenía los metadatos originales antes se admitían los metadatos de eliminación, la instancia de DICOM original y sus tienen los mismos estudios, instancias y series identificadores únicos (UID). La vista generada puede contener ya sea la instancia de DICOM original o la más reciente. Sin LastUpdated, la vista no puede identificar qué instancia de DICOM es más reciente.

Para asegurarte de que estás consultando los metadatos de instancias de DICOM más recientes, realiza una de las siguientes acciones: lo siguiente:

  • Consulta la tabla base en lugar de la vista. Asegúrate de que la consulta busque las etiquetas actualizadas en la instancia de DICOM editada.
  • Borra la tabla existente que contiene los metadatos de DICOM y, luego, vuelve a crearla mediante la exportación manual de los metadatos de DICOM a BigQuery. La tabla recreada contiene la columna LastUpdated.

    Esta opción quita los metadatos de transmisión históricos, pero garantiza que la tabla contiene la columna LastUpdated con valores válidos.

Solucionar problemas de solicitudes de transmisión de DICOM

Si se producen errores durante una solicitud de exportación de DICOM a BigQuery, se registran en Cloud Logging. Para obtener más información, consulta Visualiza los registros de errores en Cloud Logging.

Para filtrar los registros de errores de metadatos de transmisión de DICOM en la consola de Google Cloud, completa los siguientes pasos:

  1. Ve a la página Explorador de registros.

    Ir al Explorador de registros

  2. En el campo Consulta, ingresa la siguiente consulta:

    logName="healthcare.googleapis.com%2Fdicom_stream"
    
  3. Haz clic en Ejecutar consulta.

    Cualquier registro de errores se muestra en la sección Resultados de la consulta.