La estructura física de un fichero DICOM (especificada en la Parte 10 del estándar) es fundamental para diagnosticar corrupciones de datos o problemas de transferencia en la cabina de discos.
Un fichero DICOM no es simplemente una ristra de píxeles; es un objeto binario con una estructura rígidamente definida que permite su lectura de forma independiente al sistema operativo.
1. El Preámbulo y el Prefijo (The Header)
Todo fichero DICOM comienza con una cabecera de 132 bytes que sirve para que el software identifique que se trata de un objeto médico:
- Preamble (128 bytes): Normalmente llenos de ceros. Se reservan para compatibilidad con visores de imágenes no-DICOM (como editores de fotos).
- Prefix (4 bytes): Contiene la cadena de caracteres en mayúsculas «DICM». Si un visor no encuentra estos cuatro caracteres tras los primeros 128 bytes, descartará el fichero.
2. File Meta Information (Grupo 0002)
Inmediatamente después del prefijo, comienza la meta-información del fichero. Esta sección es crítica porque le dice al PACS cómo debe interpretar el resto del archivo. Utiliza siempre una codificación Explicit VR Little Endian.
- Transfer Syntax UID (0002,0010): Es el dato más importante. Indica si la imagen está comprimida (JPEG, JPEG2000) o si es «raw», y el orden de los bytes.
- Media Storage SOP Class UID (0002,0002): Define qué tipo de objeto es (TC, RM, Ecografía).
- Implementation Class UID: Identifica el software que creó el fichero.
3. El Data Set (El cuerpo del fichero)
Tras la meta-información, viene el conjunto de datos organizado en Data Elements (Elementos de Datos). Cada elemento representa un atributo (Nombre, ID, parámetros de exposición, píxeles) y se compone de cuatro campos:
- Tag: Identificador del grupo y elemento (ej.
0010,0010). - VR (Value Representation): Dos letras que indican el tipo de dato (DA para fecha, PN para nombre de persona, OB para bits de imagen).
- Value Length: Un número entero que indica cuántos bytes ocupa el valor.
- Value Field: El dato real.
4. El Pixel Data (Grupo 7FE0)
Es el elemento de datos que suele estar al final del fichero debido a su gran tamaño.
- Si la Transfer Syntax es «encapsulada» (comprimida), el campo de píxeles contiene un flujo de datos JPEG.
- Si es «nativa» (sin comprimir), contiene los valores de gris de cada píxel de forma secuencial.
5. Representación en Disco (NetApp / Sistema de Archivos)
Desde la perspectiva de la cabina de discos (como la NetApp que mencionamos), el fichero DICOM se guarda como un archivo binario único.
- Endianness: DICOM suele usar Little Endian (el byte menos significativo primero), que es el estándar nativo de la mayoría de procesadores modernos (Intel/AMD) que corren los servidores PACS en Aragón.
- Alineación de bloques: Como los ficheros DICOM pueden tener tamaños muy variables (desde unos pocos KB para una placa de tórax hasta cientos de MB para una serie de TC), el sistema de archivos de la cabina gestiona la fragmentación para que la lectura de los Tags iniciales sea instantánea.
