En esta página, se describe cómo configurar un almacén de DICOM para exportar metadatos de instancia de DICOM a una tabla de BigQuery cada vez que ocurre una de las siguientes situaciones:
- Puedes almacenar una instancia de DICOM con la transacción de almacenamiento o importando objetos de DICOM desde un bucket de Cloud Storage.
- Para borrar una instancia de DICOM, usa una solicitud de eliminación.
- Cambias la clase de almacenamiento de una instancia de DICOM.
La transmisión de metadatos de DICOM a una tabla de BigQuery sincroniza la tabla con tus datos de DICOM para que puedas ejecutar consultas complejas en la versión más reciente de tu almacén de DICOM.
Antes de comenzar
Antes de configurar tu almacén de DICOM, completa lo siguiente
Configura permisos de BigQuery
Antes de transmitir metadatos de DICOM a BigQuery, debes otorgar los permisos necesarios 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.
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
, establece el objeto BigQueryDestination
en un URI de tabla de BigQuery completamente calificado como destino de metadatos de instancia de DICOM.
Puedes especificar hasta cinco destinos de BigQuery como objetos JSON separados por comas.
Si borras instancias de DICOM en un almacén de DICOM, no se borrarán las filas de BigQuery 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:
- En la consola de Google Cloud, ve a la página Conjuntos de datos.
Ir a Conjuntos de datos - Selecciona el conjunto de datos que contenga el almacén de DICOM que deseas editar.
- Selecciona el almacén de DICOM para el que agregarás una configuración de transmisión.
- En la pestaña Descripción general de la página Detalles del almacén de datos, haz clic en Agregar nueva configuración de transmisión.
- En el campo Nueva configuración de transmisión, haz clic en Explorar.
- En el panel Seleccionar tabla, selecciona una tabla de BigQuery.
- Haz clic en Seleccionar.
- 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 la introducción de los metadatos de eliminación tienen un valor NULL
para estas columnas. NULL
es el valor más bajo y aparece al final cuando se ordena por orden descendente.
Vista de BigQuery generada
Cuando insertas o borras una instancia de DICOM en un almacén de DICOM, se actualiza la tabla de BigQuery configurada.
Si no existe una vista de la tabla, se creará. De lo contrario, se actualizará la vista.
Limitaciones y comportamientos adicionales
Es posible que falten algunas etiquetas DICOM en los metadatos exportados. Si es así, las etiquetas faltantes se agregan a una columna independiente llamada DroppedTags.TagName
en la tabla de BigQuery de destino.
Faltarán etiquetas por uno de los siguientes motivos:
- La etiqueta de DICOM es una RV no compatible que se indica en RV excluidas.
- La etiqueta DICOM supera aproximadamente 1 MB.
- La cantidad de columnas en la tabla de BigQuery de destino 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, las etiquetas de DICOM que no coinciden con una columna existente se agregan a la columna
DroppedTags.Name
. Si no se puede agregar la columnaDroppedTags
, se descartan las etiquetas DICOM sin una notificación y se genera un registro de advertencia. Para obtener más información, consulta Cómo solucionar problemas de solicitudes de transmisión de DICOM para ver registros.
Incorpora metadatos de eliminación en una tabla existente
El comportamiento de la vista generada depende de si su tabla base contiene metadatos agregados antes de que se presentara la función de metadatos de eliminación.
Supongamos que una tabla de BigQuery contiene metadatos de DICOM anteriores a la compatibilidad con los metadatos de eliminación y, luego, ocurre lo siguiente:
- Insertas una instancia de DICOM en un almacén de DICOM.
- Borras la instancia de DICOM del almacén de DICOM.
- Editas las etiquetas de la instancia de DICOM original y, luego, insertas la instancia de DICOM modificada en el almacén de DICOM.
Debido a que la tabla de BigQuery contenía los metadatos originales antes de que se admitieran los metadatos de eliminación, la instancia de DICOM original y su versión editada tienen los mismos identificadores únicos de estudio, serie e instancia (UID). La vista generada puede contener la instancia de DICOM original o la instancia de DICOM más reciente. Sin la columna LastUpdated
, la vista no puede identificar qué instancia de DICOM es la más reciente.
Para asegurarte de consultar los metadatos de la instancia de DICOM más recientes, haz una de las siguientes acciones:
- 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 contenga la columna
LastUpdated
con valores válidos.
Soluciona 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 DICOM de transmisión en la consola de Google Cloud, sigue estos pasos:
Ve a la página Explorador de registros.
En el campo Consulta, ingresa la siguiente consulta:
logName="healthcare.googleapis.com%2Fdicom_stream"
Haz clic en Ejecutar consulta.
Los registros de errores se muestran en la sección Resultados de la consulta.