Comparador de Archivos DICOM
¡NUEVO!

Comparador de Archivos DICOM

Compara dos archivos DICOM etiqueta por etiqueta. Ve qué cambió, qué es exclusivo de cada archivo y qué es idéntico, incluso dentro de secuencias.

Herramientas DICOM

Ambos archivos se analizan íntegramente en tu navegador. No se sube, almacena ni transmite nada: la herramienta funciona sin conexión una vez cargada la página.

Archivo A (referencia)
Arrastra un archivo .dcm o haz clic para elegir
Archivo B (a comparar)
Arrastra un archivo .dcm o haz clic para elegir

Carga dos archivos DICOM para compararlos.

Cómo usarlo: Compara un estudio antes y después de una migración de PACS, o la salida de una modalidad contra tu conjunto de referencia. Empieza cargando dos archivos .dcm arriba.

Palabras clave

comparar archivos dicomdicom diffcomparador dicomdiferencias etiquetas dicomvalidacion migracion pacsalternativa dcmtkcomparar cabecera dicomcontrol calidad dicom

¿Necesitas algo más?

Cómo usar

1

Arrastra tu archivo de referencia a la casilla A y el archivo que quieres comprobar a la casilla B. Ambos se analizan localmente: no se sube nada.

2

Lee el resumen: cuántas etiquetas son idénticas, cuántas han cambiado y cuántas son exclusivas de A o de B. La cifra destacada es el total de diferencias encontradas.

3

Filtra el informe. Solo diferencias viene activado por defecto; añade los filtros PHI o UID para centrarte en las etiquetas que importan en anonimización o migración, o acota por VR.

4

Busca entre números de etiqueta, nombres y ambos valores para ir directo a un atributo concreto como PatientName o StudyInstanceUID.

5

Exporta el informe filtrado como CSV para un ticket de migración o un registro de calidad, o usa Intercambiar A ↔ B para ver la comparación desde la otra dirección.

Características

Comparación que recorre secuencias

El diff entra en los atributos SQ y compara los elementos de secuencia por índice, de modo que los atributos anidados de informes estructurados, planes de radioterapia y pasos de procedimiento programado se comparan de verdad en lugar de resumirse en una única fila opaca.

Filtros de PHI y UID

Filtra solo por las etiquetas de la lista de anonimización para verificar una ejecución de desidentificación, o solo por atributos con VR UI para confirmar que los UID se regeneraron como exige una migración. Ambos filtros usan las mismas definiciones que nuestro Anonimizador DICOM.

Exportación CSV con orden de columnas estable

Exporta las filas filtradas con etiqueta, ruta, nombre, VR, ambos valores y el veredicto, listo para adjuntar a un ticket de migración. Los valores se escapan frente a la inyección de fórmulas, así que un valor que empiece por = no puede ejecutarse al abrir el archivo en Excel.

¿Por qué elegir esta herramienta?

Los archivos no salen de tu equipo

Ambos archivos DICOM se analizan íntegramente en tu navegador con JavaScript. No se sube nada, no se almacena ninguna copia en un servidor y no se transmite información a ningún sitio; además la herramienta sigue funcionando sin red una vez cargada la página. Esto importa porque los archivos DICOM contienen habitualmente información sanitaria protegida, y subirlos a un servicio web de terceros puede ser una comunicación de datos que tu organización no ha autorizado.

Sin línea de comandos, sin licencia, sin instalación

Las alternativas habituales son el dcmdump de DCMTK canalizado a un diff de texto, o un conjunto de herramientas PACS comercial. La primera exige una instalación local, soltura con la línea de comandos y trabajo manual para alinear los dos volcados; la segunda exige una compra. Esta funciona en cualquier navegador moderno, incluso en una estación clínica bloqueada donde no puedes instalar software.

Pensada para migración y control de calidad

El veredicto de tres vías —idéntico, cambiado, exclusivo de un lado— encaja con la forma en que realmente se razona la validación de una migración. El intercambio simétrico permite comprobar la comparación en ambos sentidos, y el resumen te da la cifra que va al informe: cuántos atributos difieren.

Honesta sobre lo que compara

Esta herramienta compara el conjunto de datos DICOM: etiquetas, VR y valores, también dentro de secuencias. No compara los datos de píxel byte a byte, y no recodifica ni valida la sintaxis de transferencia. Saber con precisión qué comprueba una herramienta de calidad es lo que hace utilizable su salida como evidencia, así que el alcance se declara en lugar de insinuarse.

Comparar archivos DICOM: qué cambia en una migración y por qué importa

Cualquiera que haya movido un archivo de estudios entre fabricantes de PACS, cambiado una modalidad o validado una cadena de anonimización se ha enfrentado a la misma pregunta: ¿son iguales estos dos archivos DICOM y, si no, en qué difieren exactamente? Es una pregunta fácil de formular y sorprendentemente incómoda de responder, porque un archivo DICOM no es una lista plana de valores, sino un conjunto de datos anidado donde el mismo contenido clínico puede codificarse de formas materialmente distintas.

Qué contiene realmente un conjunto de datos DICOM

Un archivo DICOM combina una cabecera de metainformación con un conjunto de datos de atributos. Cada atributo se identifica con una etiqueta escrita como número de grupo y elemento, por ejemplo (0010,0010) para el nombre del paciente. Junto a la etiqueta va una Value Representation, o VR: un código de dos letras que declara el tipo de dato —PN para un nombre de persona, DA para una fecha, UI para un identificador único, SQ para una secuencia, etc.—. El VR determina tanto cómo se interpretan los bytes como qué aspecto tiene un valor válido.

Comparar dos archivos significa por tanto emparejar atributos por etiqueta y luego comparar valores dentro del tipo que declara el VR. Una comparación de archivos a nivel de byte es aquí casi inútil: dos archivos con contenido clínico idéntico diferirán en bytes si usan sintaxis de transferencia distintas, si el orden de los atributos varía o si el relleno es diferente.

Secuencias: donde fallan las comparaciones planas

El atributo con VR SQ es el que rompe las herramientas simples. Una secuencia contiene una lista ordenada de elementos, y cada elemento es a su vez un conjunto de datos anidado completo que puede contener más secuencias. La Scheduled Procedure Step Sequence (0040,0100), la Referenced Image Sequence (0008,1140) y los árboles de contenido profundamente anidados del DICOM Structured Reporting viven todos dentro de secuencias.

Una comparación que solo informe "(0040,0100): secuencia con 2 elementos" en ambos lados no te dice nada sobre si la modalidad, la descripción programada o el médico responsable dentro de esos elementos han cambiado. Como el orden de los elementos es significativo dentro de una secuencia, una comparación correcta empareja el elemento 1 con el elemento 1, desciende en cada uno y compara los atributos que hay allí, que es lo que hace esta herramienta, informando de cada atributo anidado con su ruta completa para que veas en qué punto del árbol vive la diferencia.

Qué cambia legítimamente en una migración

No toda diferencia es un defecto. Entender qué cambios son esperables es la mayor parte del trabajo de validar una migración:

  • Sintaxis de transferencia y codificación. Un archivo de destino puede almacenar los objetos con otra sintaxis de transferencia, cambiando cómo se codifican los valores sin cambiar lo que significan. El caso habitual es VR explícito frente a implícito.
  • Identidad de la implementación. Implementation Class UID (0002,0012) e Implementation Version Name (0002,0013) identifican el software que escribió el archivo, así que cambian legítimamente siempre que otro sistema escribe el objeto.
  • Coerción de identificadores. Muchos archivos coercionan Patient ID, Accession Number o Study ID para ajustarlos al índice maestro de pacientes de la institución receptora. Es un comportamiento intencionado y configurado, y es justo lo que necesitas verificar que ocurrió correctamente.
  • Marcas de tiempo de transferencia. Los atributos que registran cuándo se recibió o archivó un objeto diferirán por diseño.

Lo que en general no debería cambiar en una migración directa es el contenido clínico: los atributos que definen el píxel, como Rows, Columns, Bits Allocated y Photometric Interpretation, los atributos de geometría que permiten reconstruir correctamente las imágenes, y la identidad de instancia que vincula las imágenes con su serie y su estudio.

Los UID: los atributos que merecen su propio filtro

Los identificadores únicos —atributos con VR UI— son la columna vertebral del modelo de información de DICOM. Study Instance UID, Series Instance UID y SOP Instance UID forman la jerarquía que permite a un archivo ensamblar instancias sueltas en un estudio coherente. Si rompes esa jerarquía, las imágenes se dispersan por estudios equivocados o desaparecen de la lista de trabajo.

Aquí tiran dos reglas en direcciones opuestas, y por eso el filtro de UID resulta útil. En una migración directa, los UID de instancia deben conservarse exactamente, porque son la identidad del objeto; un SOP Instance UID cambiado significa que el archivo ha creado un objeto nuevo en lugar de mover el existente. En la anonimización, por el contrario, los UID por lo general deben sustituirse, porque un UID conservado enlaza la copia anonimizada con el estudio original. Filtrar el diff por VR UI responde a "¿sobrevivieron los UID?" o "¿se regeneraron los UID?" en una sola vista, según cuál de las dos operaciones estés validando.

Validar la anonimización

Cuando el segundo archivo pretende ser una copia anonimizada del primero, el diff se convierte en un informe de verificación. Lo que quieres ver es que todos los atributos de la lista de PHI han cambiado —eliminados, vaciados o sustituidos— y que los atributos clínicos no.

Filtrar por etiquetas PHI te da exactamente esa vista. Cualquier atributo PHI que siga apareciendo como idéntico es una fuga que conviene investigar: un nombre de paciente, una fecha de nacimiento, un nombre de institución o un médico solicitante que sobrevivió a la anonimización. La comprobación inversa también importa: si un atributo clínicamente relevante aparece como cambiado cuando no debería haberlo hecho, el perfil de anonimización es más agresivo de lo previsto y puede haber dañado el valor diagnóstico del conjunto de datos.

El anexo E de DICOM PS3.15 define perfiles de confidencialidad que especifican exactamente qué atributos deben tratarse y cómo. Un diff no sustituye a leer esa especificación, pero es la forma más rápida de contrastar una cadena de proceso con ella sobre archivos reales y no en teoría.

Leer un diff sin ahogarse

Una cabecera de TC típica lleva unos cientos de atributos, y un objeto multiframe mejorado o un informe estructurado pueden llevar miles una vez expandidas las secuencias. Mostrarlo todo rara vez es útil, y por eso la vista de solo diferencias viene activada por defecto.

Un orden de trabajo práctico: empieza por solo diferencias y mira el recuento del resumen. Si la cifra es pequeña, lee todas las filas. Si es grande, aplica primero el filtro de UID para confirmar que los atributos de identidad se comportaron como exige la operación, después el filtro de PHI para confirmar el comportamiento de confidencialidad, y luego acota por VR para barrer categorías: DA y TM para fechas y horas, PN para nombres, CS para valores codificados. Busca por número o nombre de etiqueta cuando tengas un atributo concreto en mente. Exporta las filas filtradas como CSV cuando la vista muestre exactamente lo que el ticket necesita registrar.

Los límites de un diff de cabecera

Una comparación a nivel de etiqueta es una comparación de cabecera y metadatos. Te dirá que Rows, Columns y Bits Allocated coinciden, lo cual es un indicio sólido de que los datos de píxel están estructuralmente intactos, pero no decodifica ni compara los píxeles en sí. Una migración que conservara todos los atributos de cabecera mientras corrompe o transcodifica los datos de imagen mostraría un diff limpio.

Por eso un diff de cabecera pertenece a una batería de validación junto a una comprobación a nivel de píxel y una revisión visual de una muestra representativa, no en su lugar. Es la forma más rápida de encontrar las diferencias que una cabecera puede expresar, y guarda silencio deliberadamente sobre las que no puede.

Preguntas Frecuentes

¿Se suben mis archivos DICOM a algún sitio?

No. Ambos archivos se analizan en tu navegador con JavaScript y no se envía ningún dato a ningún servidor. La herramienta funciona sin conexión de red una vez cargada la página. Esto importa porque los archivos DICOM contienen habitualmente información sanitaria protegida, y subirlos a un servicio de terceros puede constituir una comunicación de datos no autorizada.

¿La comparación entra dentro de las secuencias?

Sí. El diff recorre los atributos SQ y compara los elementos de secuencia por índice, informando de cada atributo anidado con su ruta completa, por ejemplo (0040,0275)/Item #1/(0040,0007). Es la diferencia principal frente a una comparación simple de lista de etiquetas, que suele omitir las secuencias o reducirlas a una única fila de resumen.

¿En qué se diferencia de dcmdump canalizado a un diff de texto?

Un diff de texto compara líneas, así que es sensible al orden de los atributos, al formato y al relleno, e informa de diferencias que son artefactos del volcado y no de los datos. Esta herramienta empareja atributos por etiqueta y ruta, da a cada uno un veredicto explícito y permite filtrar por PHI, UID y VR. Además no necesita instalación local, algo que importa en una estación clínica bloqueada.

¿Qué sintaxis de transferencia admite?

El analizador maneja las habituales, incluidas VR explícito e implícito little endian y sintaxis encapsuladas como JPEG baseline. La comparación opera sobre los valores de atributo ya decodificados, así que dos archivos con el mismo contenido bajo distintas sintaxis de transferencia se comparan como iguales a nivel de atributo.

¿El diff es simétrico si intercambio los archivos?

Sí. Intercambiar A y B convierte cada fila exclusiva de A en exclusiva de B y viceversa, mientras que las filas idénticas y cambiadas conservan su veredicto e intercambian sus valores. El botón Intercambiar hace esto sin volver a analizar los archivos.

¿Cómo lo uso para verificar una anonimización?

Carga el original como A y la copia anonimizada como B, y aplica el filtro de PHI. Todos los atributos PHI deberían aparecer como cambiados o exclusivos; cualquiera que aparezca como idéntico es una posible fuga. Añade el filtro de UID para confirmar que los identificadores se regeneraron, ya que unos UID conservados pueden enlazar la copia anonimizada con el estudio original.

¿Compara los datos de píxel?

No. Es una comparación de etiquetas y metadatos. Verifica que los atributos que describen el píxel, como Rows, Columns, Bits Allocated y Photometric Interpretation, coinciden, lo que indica que la imagen está estructuralmente intacta, pero no decodifica ni compara los píxeles en sí. Úsala junto a una comprobación a nivel de píxel, no en su lugar.

¿Puedo exportar el informe?

Sí. La exportación CSV contiene las filas que muestran tus filtros en ese momento, con un orden de columnas estable: etiqueta, ruta, nombre, VR, ambos valores, veredicto e indicadores de PHI y UID. Los valores se escapan para que un valor que empiece por un signo igual no pueda ejecutarse como fórmula al abrir el archivo en una hoja de cálculo.

Artículos Relacionados

Saber más