En esta página se describe cómo configurar un almacén DICOM para exportar metadatos de instancias DICOM a una tabla de BigQuery cuando se produzca alguna de las siguientes situaciones:
- Puedes almacenar una instancia DICOM mediante la transacción Store o importando objetos DICOM desde un segmento de Cloud Storage.
- Para eliminar una instancia DICOM, debes enviar una solicitud Deletion.
- Cambias la clase de almacenamiento de una instancia DICOM.
Al transmitir metadatos DICOM a una tabla de BigQuery, la tabla se sincroniza con tus datos DICOM para que puedas ejecutar consultas complejas en la versión más reciente de tu almacén DICOM.
Antes de empezar
Antes de configurar tu almacén DICOM, haz lo siguiente:
Definir permisos de BigQuery
Antes de transmitir metadatos DICOM a BigQuery, debes conceder los permisos necesarios a la cuenta de servicio del agente de servicio de Cloud Healthcare. Para obtener más información, consulta Permisos de BigQuery para almacenes DICOM.
Exportar metadatos DICOM a BigQuery
Antes de configurar la transmisión, consulta cómo exportar metadatos DICOM a BigQuery.
Configurar el almacén DICOM
Para habilitar la transmisión a BigQuery, configura el objeto
StreamConfig
en tu almacén DICOM. En el objeto StreamConfig
, asigna a
BigQueryDestination
el objeto un URI de tabla de BigQuery totalmente cualificado como destino de los metadatos de la instancia DICOM.
Puede especificar hasta cinco destinos de BigQuery como objetos JSON separados por comas.
Al eliminar instancias DICOM de un almacén DICOM, no se eliminan las filas de BigQuery que contienen los metadatos de esas instancias.
Consola
Para actualizar un almacén DICOM y habilitar la transmisión a BigQuery, sigue estos pasos:
- En la Google Cloud consola, ve a la página Conjuntos de datos.
Ir a conjuntos de datos - Selecciona el conjunto de datos que contenga el almacén DICOM que quieras editar.
- Selecciona el almacén DICOM al que vas a añadir una configuración de streaming.
- En la pestaña Resumen de la página Detalles de Datastore, haga clic en Añadir nueva configuración de streaming.
- En el campo Nueva configuración de streaming, haz clic en Buscar.
- En el panel Seleccionar tabla, elige 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 DICOM para habilitar la transmisión en BigQuery. En estos ejemplos, el almacén DICOM y la tabla de BigQuery están en el mismo proyecto. Para exportar metadatos DICOM a otro proyecto, consulta Exportar metadatos DICOM a otro proyecto.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén DICOM
- DICOM_STORE_ID: el ID del almacén DICOM
- BIGQUERY_DATASET_ID: el nombre de un conjunto de datos de BigQuery
- BIGQUERY_TABLE_ID: nombre único de una tabla del conjunto de datos de BigQuery. Consulta los requisitos de nomenclatura de tablas. El conjunto de datos de BigQuery debe existir, pero la API Cloud Healthcare puede actualizar una tabla o crear una.
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 siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { 'streamConfigs': [{ 'bigqueryDestination': { 'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID' } }] } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud 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 siguiente comando en el terminal para crear o sobrescribir 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
A continuación, ejecuta el siguiente comando para enviar tu solicitud 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 APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs 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, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Metadatos de eliminación
En versiones anteriores de la API Cloud Healthcare, los metadatos de las instancias DICOM solo se exportaban a BigQuery cuando se insertaba una instancia DICOM en un almacén DICOM. Cuando se añadió la escritura de metadatos para las eliminaciones, se añadieron dos columnas nuevas, llamadas Type
y LastUpdated
, a la tabla generada que contenía los metadatos DICOM.
Los metadatos de la tabla que existían antes de que se introdujeran los metadatos de eliminación tienen el valor NULL
en estas columnas. Un NULL
es el valor más bajo y aparece en último lugar al ordenar de forma descendente.
Vista de BigQuery generada
Cuando insertas o eliminas una instancia DICOM en un almacén DICOM, se actualiza la tabla de BigQuery configurada.
Si no existe una vista de la tabla, se crea. De lo contrario, la vista se actualiza.
Limitaciones y comportamiento adicional
Es posible que falten algunas etiquetas DICOM en los metadatos exportados. Si es así, las etiquetas que faltan se añaden 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 DICOM es un VR no admitido que figura en VRs excluidos.
- La etiqueta DICOM supera aproximadamente 1 MB.
- El número de columnas de la tabla de BigQuery de destino supera el número máximo de columnas.
Cuando la exportación de metadatos DICOM a una tabla de BigQuery supera el límite de columnas, las etiquetas DICOM que no coinciden con ninguna columna se añaden a la columna
DroppedTags.Name
. Si no se puede añadir la columnaDroppedTags
, las etiquetas DICOM se omiten sin notificación y se genera un registro de advertencia. Para obtener más información, consulta Solucionar problemas con las solicitudes de streaming de DICOM para ver los registros.
Incorporar metadatos de eliminación en una tabla
El comportamiento de la vista generada depende de si su tabla base contiene metadatos añadidos antes de que se introdujera la función de metadatos de eliminación.
Supongamos que una tabla de BigQuery contiene metadatos DICOM de antes de que se admitieran los metadatos de eliminación y, a continuación, ocurre lo siguiente:
- Inserta una instancia DICOM en un almacén DICOM.
- Elimina la instancia DICOM del almacén DICOM.
- Editas las etiquetas de la instancia DICOM original e insertas la instancia DICOM modificada en el almacén DICOM.
Como la tabla de BigQuery contenía los metadatos originales antes de que se admitieran los metadatos de eliminación, la instancia DICOM original y su versión editada tienen los mismos identificadores únicos (UID) de estudios, series e instancias. La vista generada puede contener la instancia DICOM original o la más reciente. Sin la columna LastUpdated
, la vista no puede identificar qué instancia DICOM es más reciente.
Para asegurarse de que está consultando los metadatos de la instancia DICOM más reciente, haga una de las siguientes acciones:
- Consulta la tabla base en lugar de la vista. Asegúrate de que la consulta busca las etiquetas actualizadas en la instancia DICOM editada.
Elimina la tabla que contiene los metadatos DICOM y, a continuación, vuelve a crearla exportando los metadatos DICOM a BigQuery manualmente. La tabla recreada contiene la columna
LastUpdated
.Esta opción elimina los metadatos de streaming históricos, pero se asegura de que la tabla contenga la columna
LastUpdated
con valores válidos.
Solucionar problemas con las solicitudes de streaming de DICOM
Si se producen errores durante una solicitud de exportación de metadatos DICOM a BigQuery, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.
Para filtrar los registros de errores de metadatos DICOM de streaming en la consola Google Cloud , sigue estos pasos:
Ve a la página Explorador de registros.
En el campo Consulta, introduce la siguiente consulta:
logName="healthcare.googleapis.com%2Fdicom_stream"
Haz clic en Realizar una consulta.
Los registros de errores se muestran en la sección Resultados de la consulta.