Transmite metadatos de DICOM a BigQuery

En esta página, se explica cómo configurar un almacén DICOM para exportar metadatos de instancia de DICOM a una tabla de BigQuery cada vez que se inserta una instancia de DICOM en el almacén de DICOM. Las instancias de DICOM se pueden insertar mediante la transacción de almacenamiento o mediante la importación desde Cloud Storage.

Puedes usar la transmisión de BigQuery para sincronizar los datos en un almacén de DICOM con un conjunto de datos de BigQuery casi en tiempo real. Puedes realizar consultas complejas en datos de DICOM sin necesidad de exportar la última versión de tu almacén de DICOM a BigQuery cada vez que desees analizar tus datos.

Antes de configurar la transmisión, consulta Exporta metadatos de DICOM a BigQuery para obtener una descripción general de cómo funciona la exportación de metadatos de DICOM a BigQuery.

Configura permisos de BigQuery

Antes de exportar metadatos de DICOM a BigQuery, debes otorgar permisos adicionales a la cuenta de servicio del Agente de servicios de Cloud Healthcare. Para obtener más información, consulta Permisos de BigQuery para el almacén de DICOM.

Configura el almacén de DICOM

Para habilitar la transmisión a BigQuery, configura el objeto StreamConfig en el almacén DICOM. Dentro de StreamConfig, configura BigQueryDestination para incluir un URI de tabla de BigQuery completamente calificado en el que se transmitirán los metadatos de la instancia de DICOM. StreamConfig es un array, por lo que puedes especificar varios destinos de BigQuery. Puedes transmitir metadatos desde un único almacén de DICOM a hasta cinco tablas de BigQuery en un conjunto de datos de BigQuery.

Cuando borras instancias de DICOM en la API de Cloud Healthcare, no se borran las filas de BigQuery que contienen los metadatos de esas instancias.

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.

curl

Para habilitar la transmisión de BigQuery en un almacén de DICOM existente, realiza una solicitud PATCH y especifica la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de DICOM
  • El nombre de un conjunto de datos de BigQuery existente
  • Un nombre para 1 a 5 de los destinos de BigQuery El nombre solo puede contener letras (mayúsculas o minúsculas), números y guiones bajos. El conjunto de datos de BigQuery debe existir, pero la API de Cloud Healthcare puede actualizar una tabla existente o crear una nueva.
  • Una máscara de actualización
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud PATCH mediante curl.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'streamConfigs': [{
         'bigqueryDestination': {
          'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
         }
      }]
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID",
  "streamConfigs": [
    {
      "bigqueryDestination": {
        "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID"
      }
    }
  ]
}

PowerShell

Para habilitar la transmisión de BigQuery en un almacén de DICOM existente, realiza una solicitud PATCH y especifica la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de DICOM
  • El nombre de un conjunto de datos de BigQuery existente
  • Un nombre para la tabla de exportación de BigQuery. El nombre solo puede contener letras (mayúsculas o minúsculas), números y guiones bajos. El conjunto de datos de BigQuery debe existir, pero la API de Cloud Healthcare puede actualizar una tabla existente o crear una nueva.
  • Una máscara de actualización
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud PATCH mediante Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'streamConfigs': [
        {
          'bigqueryDestination': {
            'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
        }
      }
    ]
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID",
  "streamConfigs": [
    {
      "bigqueryDestination": {
        "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID"
      }
    }
  ]
}

Limitaciones y comportamientos adicionales

  • Las etiquetas de DICOM se enumerarán en una columna separada (llamada DroppedTags.TagName) en la tabla de BigQuery de destino si ocurre alguna de las siguientes situaciones:

    • El tamaño de la etiqueta DICOM es igual o mayor que 1 MB
    • La etiqueta de DICOM no tiene un tipo compatible en BigQuery (enumerado en RV excluidas).
  • Si borras una instancia en un almacén de DICOM, la instancia no se borrará en BigQuery.

Solución de 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 registros relacionados con la transmisión de metadatos de DICOM, selecciona healthcare.googleapis.com/dicom_stream en la segunda lista en Filtrar por búsqueda de texto o etiqueta.