Lectura recomendada: Notas sobre DICOM

Anuncio
NOCIONES BÁSICAS SOBRE COMUNICACIÓN Y
ALMACENAMIENTO DE IMÁGENES EN DICOM
RODOLFO GROSSO
[email protected]
1.
Historia de DICOM
Antes de 1970 los equipos que proporcionban imágenes médicas eran
analógicos. Al aparecer la tomografı́a computada y otras técnicas de dianóstico digital comienza el mundo digital. Surgen dos temas importantes en el
mundo digital:
1. El formato de los archivos: Al principio se trabajó separadamente con
archivos de imagen y archivos de datos del paciente. Esta separación
conducı́a a errores, por lo que surge la idea de formar archivos que
contengan imágenes y datos.
2. La interconexión de equipos. Se produjo un aumento del número de
equipos de imagen digitales, que entre si debı́an interconectarse. Por
ejemplo, un equipo CT genera imágenes que deben ser guardadas en
un servidor, o el equipo de CT genera imágenes que deben ser impresas en una placa. Diferentes fabricantes de equipos trabajaban con
diferentes formatos de archivos que hacı́an muy difı́cil o imposible a
un equipo decodificar la imagen generada por otro o la comunicación entre equipos de diferentes fabricantes. Ası́ aparece el concepto
de PACS (Picture Archiving and Communication System) que son
sistemas computarizados para el almacenamiento y comunicación de
imágenes digitales médicas. Todo esto implica que debe haber un protocolo de entendimiento entre los equipos en cuestión.
El American College of Radiology (ACR) y el National Electrical Manufacturers Association (NEMA) reconocieron la necesidad de la existencia
de un standard para transferir imágenes e información entre equipos hechos
por fabricantes diferentes. Ası́ formaron en 1983 un comité conjunto para
desarrollar un standard para:
1. Tener un formato común de imágenes digitales independientemente
del fabricante de los dispositivos.
1
2
RODOLFO GROSSO
2. Tener un protocolo común de trabajo y diálogo para todos los equipos facilitando el desarrollo y expansión de PACS que a su vez pueden
también tener interfaces con otros sistemas de información hospitalaria.
3. Permitir la creación de bases de datos de información de diagnósticos
que puedan ser consultadas por una gran cantidad de dispositivos
distribuidos geográficamente.
El resultado ha sido la creación de una norma, la cual tiene diferentes
versiones:
− Versión 1.0 en 1985 ACR/NEMA
− Versión 2.0 en 1988
− Versión 3.0 en 1993 llamada DICOM.
Se encuentra en
http://medical.nema.org/
2.
Introducción a la norma DICOM
Definición. Dicom (Digital Imaging and Communication in Medicine) es
el estándar reconocido mundialmente para la creación, transmisión, almacenamiento, intercambio y visualización de imágenes médicas, formas de onda,
reportes, etc..
Dimensiones de DICOM. Mientras en principio uno puede pensar a DICOM como un simple formato de archivos de imágenes médicas, es un standard mucho más amplio que trata sobre todos los temas concernientes al
flujo de trabajo clı́nico. Las dimensiones de DICOM son:
DICOM para transferencia de imágenes - Los archivos DICOM pueden intercambiarse entre dos entidades que tengan capacidad de recibir imágenes y datos de pacientes en formato DICOM. Considera la
definición de un formato de archivo y un protocolo de comunicación
de red. Para esto define Information Objets (Objetos de Información),
Estructura de archivo, Service-object pair (Pares objetos-servicio) y
Sintaxis de transferencia.
Consistencia en la presentación de imágenes
Conformance Statement Los diferentes dispositivos de trabajo tienen
una declaración de conformidad DICOM (conformance statements)
que establece claramente las clases DICOM que soportan. Ası́ DICOM
permite la integración de dispositivos de red de múltiples proveedores.
Integración con sistemas de información hospitalaria, PACS, RIS e
HIS
Intercambio de media
DICOM
3
Modelo utilizado por DICOM. DICOM considera los datos del mundo real, imágenes, usuarios, estudios, equipamientos médicos, mediante un
modelo abstracto de datos orientado a objetos1. En este modelo se definen
Objetos de información y clases de servicios.
En la parte 3 de la norma incisos 6 y 7 se define el modelo de información
DICOM, mostrando los esquemas entidad relación. Es conveniente dar una
mirada a estos esquemas, que por su extensión no son reproducidos en este
documento. Si bien estos esquemas son completos, usaremos una versión
muy simplificada para fijar ideas utilizando la figura 1. Ası́ entnces, y como
se describe en [7], se tiene un modelo en que un paciente puede tener 1..n
estudios, cada estudio 1..n series y una serie (que normalmente corresponde
a una modalidad especı́fica o posición) contiene 1..n instancias de objetos,
en general imágenes, reportes, formas de onda, etc. Este es el criterio sguido
del modelo general.
Figura 1.
Un esquema muy simplificado del modelo entidad-relación de
DICOM. Extraı́da de [7].
Sobre el estudio de DICOM. Se recomienda que frente a consultas sobre
elementos de DICOM se acuda a la norma. Además los siguientes sitios
proporcioan definiciones claras y cortas en general.
http://www.medicalconnections.co.uk/
http://www.otpedia.com/index.cfm
http://www.dicomlibrary.com/dicom/transfer-syntax/
http://www.leadtools.com/
1No es un modelo que se ajuste exactamente a la programación orientada a objetos,
ya que se empezó a gestionar con anterioridad a la consolidación de las definiciones de la
POO. Ası́ es que dentro de DICOM, “clase” se refiere en general al modelo OSI ACSE
(mecanismo para establecer un enlace lógico entre Application Entities) y “objeto” al
sistema de identificación de objetos ISO OID.
4
RODOLFO GROSSO
3.
Imágenes Digitales
Imagen digital (en escala de grises). Una imagen digital está compuesta de un número finito de elementos llamados pixels dispuestos en filas y
columnas. Un pixel es el componente elemental de la imagen y tiene un
lugar y valor de brillo determinados.
Figura 2.
Imagen digital como una matriz de pixels. Extraı́da de [13]
Una imagen digital se puede representar matemáticamente como una función de dos dimensiones f (x, y), donde x e y son las coordenadas en un plano
y la amplitud de f es el llamado nivel de gris de la imagen en el punto, siendo x, y y f (x, y) cantidades discretas. Los valores de f (x, y) en una imagen
monocromática usual van de 0 a 255, representando los diferentes niveles de
gris de la imagen.
Figura 3.
El valor de un pixel se puede ver com una función de sus coordenadas.
Representación de imágenes digitales. Tipos de representaciones de
imágenes
DICOM
Figura 4.
5
Imagen como una función de dos dimensiones.
− Formatos bitmaps La imagen se representa como una matriz de pixels.
− Formatos vectoriales. Utiliza elementos geométricos para definir los
valores de los pixels. Segmentos, polı́gonos, curvas de Bezier. Ejemplos
son las letras.
Las imágenes bitmaps al hacer zoom pixelan. Las vectoriales no, porque los
valores estan definidos a partir de ecuaciones. Las vectoriales ocupan menos
espacio de almacenamiento y requieren más procesamiento. Programas de
dibujos que (posiblemente después sea necesario ampliarlos), como el Corel
Draw usan vectoriales. Paint y similares usan bitmaps.
Parámetros de interés en una imagen bitmap.
Dimensiones. Corresponde al nro de columnas por el nro de filas.
Figura 5.
La misma imagen en diferentes resoluciones. Si se las lleva a
ocupar una misma área se produce pixelado y pérdida de definición. Extraı́da
de [13]
Observación. Cuando se observa una imagen se habla de: Resolución por
tamaño que constituye la dimensiones de la imagen, cantidad de pixels de
ancho x cantidad de pixels de alto. Ejemplo 640x480 es un tamaño usual.
También se habla de Resolución por densidad que indica cuantos pixels se
encuentran en un cuadrado de una pulgada de lado (dpi/ppp, puntos por
pulgada)
6
RODOLFO GROSSO
Observación. Un megapı́xel o megapixel (Mpx) equivale a 1 millón de
pı́xeles, a diferencia de otras medidas usadas en la computación en donde
se suele utilizar la base de 1024 para los prefijos, en lugar de 1000, debido a
su conveniencia respecto del uso del sistema binario. Usualmente se utiliza
esta unidad para expresar la resolución de imagen de cámaras digitales; por
ejemplo, una cámara que puede tomar fotografı́as con una resolución de
2048x1536 pı́xeles se dice que tiene 3,1 megapı́xeles
Relación de aspecto. Se llama relación de aspecto a la proporción entre el
ancho y el alto de la imagen. Se calcula dividiendo el ancho por el alto de
la imagen, y se expresa normalmente como X:Y. Relaciones usuales son:
4:3 televisión común, 16:9 tv de alta definición, 1.85:1 y 2.39:1 cine, 3:2
fotografı́a.
Modo de vistas de una imagen. Las imágenes se ven en los modos landscape
y portrait.
Profundidad. Se llama profunfdidad o resolución en escala de grises a la
cantidad de bits utilizados para codificar cada pixel, por ejemplo, puede
codificarse un pı́xel con un byte (8 bits), de manera que cada pı́xel admite
hasta 256 variaciones, de 0 a 255.
Figura 6. Imagen de RX en diferentes profundidades de escala de grises.
Extraı́da de [13]
Tabla con distintas imágenes médicas y sus parámetros. En la tabla de la figura 7 se muestran órdenes de valores de algunos parámetros para diferentes
modalidades.
Imagen color. Existen diferentes formas de introducir el color. La más
simple de entender es la que permite crear un color compuesto por los tres
colores primarios (rojo, verde y azul) según el sistema de mezcla aditiva. De
esta forma, en función de la cantidad de cada uno de ellos que se use en
DICOM
Figura 7.
7
Parámetros según diferentes modalidades.
cada pı́xel será el resultado del color final del mismo. En una imagen color
un pixel es la tripleta de valores.
En las imágenes llamadas de color verdadero, normalmente se usan tres
bytes (24 bits), uno para cada primario.
Modelo de color. Para poder visualizar, almacenar y procesar la información
numérica que se representa de cada pı́xel, se debe conocer además el modelo
de color que se está utilizando. Por ejemplo, el modelo de color RGB.
Compresión.
Definición. La compresión de datos es el proceso de reducción de la cantidad de bits necesarios para representar una cierta información. Siendo n1
la cantidad de bits de los datos originales y n2 la de los datos comprimidos,
llamamos relación de compresión a Rc = nn12 .
Compresor
Decompresor
Proceso. Datos originales −−−−−−−→ datos comprimidos −−−−−−−−→ Datos
Recuperados.
Clasificación.
− Compresión sin pérdidas: la información recuperada coincide con la
original. Aplicaciones informáticas, imágenes médicas, imágenes satelitales. Se logran relaciones de compresión de 3 o 4.
8
RODOLFO GROSSO
− Compresión con pérdidas: la información recuperada es una aproximación de la origianl. La calidad depende de la aplicación. Ej fotos y
videos. Se logran compresiones de 10 a 100.
Procedimientos aplicados.
− Sı́mbolos más probables se representan con menos bits (codificación
estadı́stica)
− Muchos sı́mbolos iguales por ej aaaaaaaabbbaaa se representa como
8a,3b,3a (Run Length Coding)
− Otros procedimientos más sofisticados
Formatos usados en imágenes médicas.
−
−
−
−
−
−
Sin comprimir
RLE DICOM
JPEG lossless
JPEG lossy (revisión)
JPEG LS
JPEG-2000
Metadata de una imagen médica. Se entiende por metadata como datos
relativos a un dato.
Metadata de cualquier imagen. Todos los formatos de imágenes contienen
metadatos.
−
−
−
−
−
−
formato de imagen
dimensiones
profundidad
técnica usada para la captura
identificación equipamiento
metadata geográfica y cronológica
Metadata de una imagen médica. Además tiene:
−
−
−
−
−
nombre paciente
profesionales
estudio
serie
enlaces a la historia clı́nica
DICOM
4.
9
Objetos de Información Definidos
DICOM define un conjunto de clases de objetos que proporcionan un
modelo del mundo de las imágenes médicas.
Definición. DICOM llama IOD (Information Object Definition, Objeto
de Información Definido), a una clase de objetos que comparten las mismas
propiedades o atributos.
Los IODs los podemos pensar como un template con un conjunto de
atributos, describiendo cada objeto de datos, que se usa una y otra vez.
IOD’s definidos en la norma son, entre otros:
− CR: Radiografı́a computada (radiografı́a en que se escanéa la placa
fotoestimulable y se pasa a digital)
− CT: Tomografı́a computada
− MR: Resonancia magnética
− NM: Medicina nuclear
− US: Ultrasonido, ecografı́as, eco Doppler
− US-MF
− SC: Segunda captura
− RX Angiografı́as
− PET
− Mamografı́a digital
− Formas de onda (Electrocardiogramas, etc)
− Reportes
− Campos visuales
− Etc
Ejemplo. Un IOD imagen de tomografı́a computada, puede describirse por
su cantidad de filas y columnas, cantidad de bits por pixel, si tiene compresión o no, nombre del paciente, la propia imagen, etc. En sentido amplio,
una imagen de CT, como cualquier otro objeto DICOM, es el conjunto de
atributos de los cuales consiste, como se puede ver en la figura 8.
Una instancia de un IOD es una representación de una ocurrencia de un
objeto del mundo real, la cual tiene valores para los atributos de la clase,
por ejemplo cierta imagen de CT en particular, como se muestra en la figura
9.
En un objeto existen atributos obligatorios, por ejemplo en una imagen
la cantidad de filas y columnas y otros opcionales (información embebida en
el archivo DICOM por el fabricante del equipo de captura).
Identificación de los atributos: Tag. Como vimos, diferentes atributos
para el IOD CT image son número de filas, número de columnas, cantidad de
bits por pixel, etc. Surge la necesidad de identificarlos, para lo cual DICOM
utiliza un tag. Cada tag está codificado como un par ordenado de enteros
10
RODOLFO GROSSO
Figura 8.
Ejemplo simplificado de una clase DICOM, donde se muestra
al IOD image CT como un conjunto de atributos.
Figura 9.
Una instancia de la clase IOD image CT.
sin signo de 16 bits, donde el primer número representa el Group Number
y el segundo el Element Number. El group number es un identificador que
nos dice a que entidad de información se aplica el tag, por ejemplo 0028
está dedicado a información acerca de una imagen, etc. El element number
identifica la interpretación del valor tal como es la cantidad de filas, etc).
En la literatura siempre aparece en la forma de dos grupos de cifras hexadecimales separadas por coma, entre paréntesis, como podemos apreciar en
la figura 10.
En la parte 6 de la norma se encuentran todos los tags utilizados por
DICOM. También en el sitio:
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/DICOM.html
DICOM
11
Figura 10.
En el tag (0028, 0010), 0028 especifica al grupo de atributos
de imagen y 0010 la cantidad de filas.
Tipos básicos definidos para encapsular los datos: VRs. Los datos clı́nicos se encuentran en una amplia variedad de formatos. Distancias
pueden ser medidas en milı́metros, tiempo en segundos, los nombres de los
pacientes son tı́picamente escritos en caracteres alfabéticos, etc. Para trabajar con esta multitud de formatos, DICOM define en la parte 5 del standard
27 tipos básicos de datos, conocidos como Value Representations (VRs), los
cuales se encuentran diseñados para encapsular todos los posibles tipos de
datos clı́nicos. Ası́ los VR describen el tipo de datos y el formato de los
valores de los atributos. Por ejemplo, para la edad DICOM define un string
de caracteres con el formato nnnD, nnnW, nnnM, nnnY, donde nnn es el
número de dı́as para D; etc. Por ejemplo 018M representa una edad de 18
meses.
Cada VR tiene su propia abreviatura de dos letras, una definición de
lo que representa, una descripción de que caracteres son permitidos en sus
datos y una longitud preestablecida de los datos. En la figura 11 se muestran
algunos valores definidos de VR.
Existen VRs adecuados para encapsular diferentes tipos de datos. Ası́ es
que hay VRs para diferentes formas de textos (como ser SH=string de shorts,
LO=string de longs, etc), para fechas y horas (DA fecha, TM hora etc),
para encapsular números en diferentes formatos binarios (SS=signed short,
US=unsigned short, etc), para guardar nombre de personas, para guardar
nombres de entidades de aplicaciones e identificadores de (AEs y UIDs que
veremos más adelante), etc. Existen valores de ciertos VRs que indican que
los datos tienen una longitud fijada o limitada y otros no.
DICOM Data Dictionay. El registro de todos los atributos standarizados, usados en medicina digital se encuentra en el Data Dictionary de
DICOM que constituye la parte 6 de la norma. Para ordenar estos más de
2000 ı́tems, se dividen en grupos, basados en las similaridades de los contenidos y cada grupo tiene elementos individuales. En la figura 12, se muestra
una parte del Data Dictionary, con algunos atributos y sus correspondientes
tags.
Construcción de los IODs. Si bien los objetos de DICOM se construyen a partir de atributos, es necesario una estructura dada la gran cantidad
de atributos del Data Dictionary y por el hecho que cualquier combinación
12
RODOLFO GROSSO
Figura 11.
Algunos valores definidos de VR (extraı́da de [1]).
Figura 12.
Fragmento del Data Dictionary (extraı́do de [?]). La columna
VM, Value Multiplicity, indica si el elemento relacionado puede contener un
solo valor de su tipo de VR o varios. Por ejemplo, (0010,1001), “Other Patient
Names” puede incluir más de un nombre, ası́ su multiplicidad se marca como
“1 − n”, donde n es cualquier número. Para poner diferentes valores en un solo
elemento DICOM concatena los valores, ver más detalles en 5.4.1 de [9]
posible no es válida. No podemos tomar algunos atributos de MR, otros de
CT, insertar una imagen de US y decir que es un objeto DICOM. Los atributos son los bloques constructivos elementales y pueden no necesariamente
encajar juntos. Por ello, en la parte 3 de la norma “Information Object Definitions”, se describen los atributos requeridos, condicionales y opcionales
DICOM
13
para cada tipo particular de objeto DICOM. Para ello se utiliza una estructura que agrupa los atributos en bloques jerárquicos usados para construir
objetos coherentes. Éstos bloques son: Macro-atributes, Information Modules, Information Entities (IEs) e IODs.
Macro-Atributes. A menudo es preferido agrupar atributos complementarios
para realizar una descripción. DICOM llama a estos grupos de caracterı́sticas complementarias “Macro atributes”. Por ejemplo, el macro Image pixel
contiene número de filas, número de columnas, cantidad de bits por pixel,
etc, como se muestra en la figura 13.
Figura 13.
Parte del macro atributo Image pixel (extraı́da de [2]).
El signo de > que aparece en algunos casos indica que es un atributo de
cada ı́tem de la definida en la lı́nea previa. Las macros no corresponden a
ningun objeto en particular y ayudan a evitar repeticiones.
Information Module. Los módulos proveen un primer y esencial nivel de
organización de atributos. Por ejemplo, el General Image Module que se
muestra en la figura 14 agrupa infomación general de imágenes.
Information Entities. Las IEs están contruidas de los Information modules
simplemente listando los módulos que debe incluir. Por ejemplo, IE image
que incluye el General Image Module, Image Plane Module, etc. Podemos
preguntarnos ¿porqué necesitamos IEs si ya tenemos Information modules?
Los IEs representan el nivel de complejidad siguiente en el modelo de información de DICOM. Si los módulos estaban destinados a combinar atributos
relacionados, IEs fueron diseñados para representar entidades de la vida real
implicadas en el flujo de trabajo médico.
IODs. Combinando de un modo significativo IEs contruimos los IODs que
constituyen la jerarquı́a más alta en el modelo de información de DICOM.
Estos son los objetos usados en DICOM, o sea el procesamiento de datos
completo de DICOM se realiza en térmionos de los IODs. Los IODs estan
14
RODOLFO GROSSO
Figura 14.
Parte del Information Module Image (extraı́da de [2]).
formados para representar los tipos de datos más comunes en imágenes digitales, tales como imágenes de diferentes modalidades. En la figura 15 se
muestra como podemos construir una IOD CT image a partir de u conjunto
apropiado de IEs e Information Modules.
Figura 15. Ejemplo de formación del IOD CT image a partir de IEs e
Information modules (extraı́da de [2]).
DICOM
15
Enhaced IODs. Existen IODs llamados enhanced. Enhanced significa mejorado, los IOD para tomografı́a, resonancia, etc, inicialmente tenı́an muchos
atributos opcionales. La nueva versión de estos IOD, llamada “enhanced”, se
encuentra prevista para soportar series más grandes, define muchos atributos obligatorios y pocos opcionales, reduciendo ası́ la cantidad de atributos
privados y mejorando la interoperabilidad.
Identificación de IODs. Al igual que en la industria se asignan números
de identificación únicos para partes, en DICOM los objetos de información
y demás elementos (SOP class, etc.) son identificados de manera única. Para
ello DICOM ha adoptado el concepto de OID (Object IDentifier) utilizado
por la ISO, que los llama con el nombre UID (Unique IDentifier). Estos
identificadores constutuyen un string de números separados por puntos con
una única raı́z para cada organización que es registrada por ISO y otros
organismos. Ası́ por ejemplo se tiene el identificador:
1.2.840.10008.1.2
que corresponde a la sintaxis de transferencia Implicit VR Little Endian, el
1 identifica la ISO, el 2 la rama del miembro de la ISO, el 840 el código del
miembro en el paı́s, en este caso ANSI y el 10008 está registrado por ANSI a
NEMA para DICOM. Por ejemplo en el caso de un vendedor, una instancia
de un IOD CT puede tener un UID:
1.2.840.113619.2.999999.940623.170717
donde el vendedor de USA registrado como 113619 es GE.
IOD Reporte estructurado. Dado que el formato y contenido de un
reporte depende del estudio en cuestión, no siendo lo mismo por ejemplo
un reporte de una radiologı́a que de un estudio por ultrasonido, DICOM
utiliza un IOD llamado DICOM Structured Reporting (DICOM SR) que
utiliza listas, relaciones de jerarquı́a, contenido de texto plano, numérico y
codificado, relación entre conceptos y referencias embebidas a imágenes y
objetos similares.
5.
Clases Objeto-Servicio
Dado que DICOM está pensado para permitir que dispositivos de imágenes sean conectados juntos en una red, el standard no sólo define objetos,
sinó además los mecanismos por los cuales los dispositivos pueden interoperar.
Servicios DICOM. Las entidades de aplicación de DICOM proveen servicios unas a otras. Estos servicios se cumplen en DICOM usando construcciones conocidas como operaciones o notificaciones. DICOM define un
conjunto de notificaciones y operaciones genéricas elementales que las llama
16
RODOLFO GROSSO
DICOM Message Service Elements (DIMSEs). Los servicios se encuentran
construı́dos sobre esos servicios elementales.
Definición. DIMSE, DICOM Message Service Element son comandos de
mensajes elementales de forma que mediante ellos o sus agrupaciones entidades de aplicación DICOM proveen servicios unas a otras.
Existen dos categorı́as de DIMSE’s: las operaciones tal como “store” y
las notificaciones tal como “event report”. Algunos servicios son:
− C-STORE: Es el servicio invocado por un DIMSE-service-user para
solicitar el almacenamiento de una instancia de un IOD.
− C-FIND: Es el servicio invocado por un DIMSE-service-user donde
envı́a dos conjuntos de atributos. Un conjunto corresponde a atributos de IOD’s con valores los cuales deben ser matcheados contra los
valores de esos atributos en un conjunto de instancias deIOD’s (lo
que serı́a un WHERE en SQL) y otro conjunto de atributos cuyos
valores los envı́a en blanco para que el proveedor del servicio envı́e
los correspondientes valores de esos atributos que matchearon (lo que
serı̀a un SELECT en SQL).
− C-MOVE: Es el servicio invocado por un DIMSE-service-user para
mover información de una entidad a otra basado en los atributos
suministrados..
− C-GET: Es el servicio invocado por un DIMSE-service-user para traer
la información de uno o más IOD’s basados en los atributos suministrados. Es como un C-MOVE a si mismo.
− C-ECHO: Es el servicio invocado por un DIMSE-service-user para
verificar una comunicación end-to-end. Es más que un ping común.
Más servicios se pueden encontrar en la norma, y una buena explicación en
[11]
Pares objeto-servicio. Dado que un servicio usualmente implica algún
intercambio de datos, es natural asociar tipos de servicios particulares con
los datos (IODs) que ellos procesan.
Definición. Se llama Service-Object Pair a la asociación de un servicio con
un IOD. Como DICOM es un standard orientado a objetos, los agrupa en
clases y habla de SOP class (ver figura 16).
Por ejemplo, como se muestra en la figura 17, un servicio puede ser almacenar y el objeto puede ser una imagen de CT con lo que se crea la clase
SOP almacenar imagen de CT.
Al igual que para los IOD’s, una SOP class es “guardar una imagen de
CT” y una SOP instancia de esa clase es “guardar determinada imgen de
CT”, como se muestra en la figura 17.
DICOM
Figura 16.
17
Definición de SOP. Extraı́do de [8]
Figura 17.
Clase de servicio de almacenamiento de imágenes CT (extraı́da de [8]). Observar como repaso, que la clase tiene un determindo UID
de la base organizacional DICOM mientras que la instancia otro con otra base
organizacional.
SCU y SCP. Las entidades de aplicación de Dicom proveen servicios unas
a otras. Ası́ una entidad Dicom puede pedir un servicio a otra y esta última
proveer un servicio a la primera. En Dicom se llama SCU a la entidad que
pide un servicio y SCP a la que lo proveé. Ası́ AE’s pueden funcionar como
SCU y SCP para comunicarse una con otra. En la figura 18 se muestra un
ejemplo.
Figura 18.
Ejemplo de SCU y SCP. Extraı́do de [9]
18
RODOLFO GROSSO
Dicom Command Dictionary. Los comandos como Guardar, Obtener,
etc no aparecen en el Data Dictionay de Dicom. Estos comandos se codifican
con el mismo formato que para Data Elements, usando el grupo de comandos
0000. Por ejemplo (0000,0100) es usado para representar el “command type”
y (0000,0110) para representar “command message ID”. La norma Dicom
no provee un diccionario unificado de comandos. En su lugar explica el uso
y contenidos de diferentes mensajes de comando en la parte 7.
Conformance Statements. Es una declaración que especifica clases de
servicio, objetos de información, protocolos de comunicación, etc., soportados por la implementación especı́fica del estandard DICOM. Cumple un
formato estandarizado en la parte 2 de la norma.
www.dcm4che.org/docs/conformance/dcm4chee-cs.pdf
6.
Sintaxis de transferencia
Cuando dos entidades negocian una conexión deben ponerse de acuerdo
sobre el presentation context que es una combinación de que información es
intercambiada (Abstract Syntax, SOP class) y como se encuentra codificada
(Transfer Syntax). Debe especificarse una lista de sintaxis de transferencia
para cada SOP class cuando una entidad DICOM comienza su negociación.
La sintaxis de transferencia define como es intercambida la información y
como son representados los datos. Especifica:
− El endianismo o byte ordering (Little Endian or Big Endian) 2, Cuando estos números viajan entre sistemas con diferentes tipos de Endian
sus tipos de Endian deben ser convertidos apropiadamente, sinó se
recibe cualquier cosa. Para evitar errores en la transferencia, las aplicaciones DICOM siempre mantienen un seguimiento de sus tipos de
Endian. Para ello DICOM reserva Little Endian como su tipo de ordenamiento de bytes por defecto.
− Si es especificado o no el VR (VR explı́cito o implñicito). Si se usa
VR implı́cito, los datos del tipo de VR correspondiente al atributo se
obtienen del Data Dictionary. Actualmente todas las máquinas son
Little Endian y se usa VR explı́cito, ya que la sobrecarga de incluir
los VR es menor, más teniendo en cuenta las capacidades actuales de
almacenamiento.
2Mientras algunos sistemas almacenan los números comenzando desde el byte menos
significativo, (orden Little Endian), otros almacenan los mismos números comenzando comenzando desde el byte más significativo (orden Big Endian). Por ejemplo lo que una
computadora Little Endian lo guarda como 0x007F, una Big Endian lo guardarı́a como
0x7F00. Debemos tener en cuenta que dos números hexadecimales forman un byte, y por
eso la inversión es de a pares. Little Endian o Big Endian es una caracterı́stica del procesador y no del sistema operativo. MAC utilizaba Big Endian cuando tenı́a los procesadores
PowerPC y ahora utiliza Little Endian con los procesadores Intel.
DICOM
19
− El tipo de compresión de la imagen, si es que está comprimida.
Sintaxis de transferencia DICOM por defecto. Se puede leer una
buena explicación en [12]. DICOM define una sintaxis de transferencia por
defecto en el ordenamiento de los bytes como Implicit VR Little Endian
Transfer Syntax (UID = ”1.2.840.10008.1.2”). Además define sintaxis de
transferencia por defecto para imágenes comprimidas es JPEG sin pérdidas.
Sintaxis de transferencia básicas. Tres sintaxis de transferencia básicas
son las indicadas en la tabla con sus UID’s.
Sintaxis de transferencia
OID
Explicit Big Endian
1.2.840.10008.1.2.2
Implicit Little Endian
1.2.840.10008.1.2
Explicit Little Endian
1.2.840.10008.1.2.1
Se pueden ver más detalles en:
\href{https://www.medicalconnections.co.uk/kb/Transfer_Syntax}
7.
Estructura de un archivo DICOM
Un archivo DICOM está compuesto de una cabecera y un conjunto de
datos (Header y Data Set para DICOM). El Header sirve para comunicar a
la aplicación que está leyendo el archivo, que se trata de un archivo DICOM
de un cierto tipo de SOP y con cierto formato de sintaxis de transferencia. El
Data Set representa una instancia de un IOD del mundo real y está constituido por Data Elements que contienen los valores codificados de los atributos.
Cada archivo contiene un único Data Set. En la figura 19 se esquematiza
dicha estructura.
Figura 19.
Estructura de un archivo DICOM (extraı́da de [9]).
Header. El Header está formado por el preámbulo, el prefijo DICOM y el
meta-information Header. El header puede o no estar incluı́do en el archivo.
20
RODOLFO GROSSO
Preámbulo. El standard DICOM no especifica ninguna estructura para el
preámbulo, a menos de su longitud, que está determinada en 128 bytes.
Está pensado para facilitar el acceso a las imágenes y otros datos del archivo DICOM. El uso de preámbulo es común en muchos formatos de datos
e imágenes, por ejemplo en imágenes TIFF, y DICOM adoptó el mismo
criterio, dando compatibilidad con formatos de imágenes comunmente usados. Si el preámbulo no es usado por una Application profile 3 o por una
implementación especı́fica, cada uno de los 128 bytes serán seteados a 00h.
El preámbulo puede por ejemplo contener información de aplicaciones multimedia para acceder aleatoriamente a imágenes guardadas en un DICOM
Data Set. El mismo archivo puede ser accedido de dos maneras: por una
aplicación multimedia usando el preámbulo y por una aplicación DICOM la
cual ignora el preámbulo.
Prefijo DICOM. El uso de un prefijo (también llamado “el número mágico”
es también muy usado en muchos formatos de archivos y DICOM sigue el
mismo criterio. El prefijo en DICOM tiene una longitud de cuatro bytes
que contienen los caracteres del string “DICM”. este prefijo tampoco tiene
estructura.
Meta-information Header. El Meta-information Header contiene principalmente información de sintaxis de transferencia. Se encuentra codificado como
un conjunto de atributos DICOM con VR explı́cito (como definiremos luego). Todos los atributos pertenecen al grupo 0002. Entre los elementos más
importante del grupo se destaca el ”Transfer Syntax UID”, que tiene el tag
(0002,0010) el cual define como es codificada la secuencia del DICOM Data
Object. También en esta parte se especifica si los Data Elements tienen VR
explı́cito o implı́cito. La información está siempre codificada en ELE. En la
figura 20 se muestran algunos valores.
Data Set. Un Data Set es una secuencia de Data Elements. En la figura
21 se muestra un ejemplo para fijar ideas.
Un Data Element está unı́vocamente identificado por su tag. Los Data
Element en un Data Set estarán ordenados en orden creciente de su tag. Un
Data Elemnt en particular ocurrirá a lo más una vez en un Data Set.
Estructura de un Data Element. Como se mencionó antes, cada Data
Element contienen el valor codificado de un atributo de una instancia de un
objeto. Para ello, los Data Element tienen una estructura formada por los
campos Data Element tag, Value Representation, Value length y Value field.
El campo Value Representation solo se encuentra presente en estructuras de
Data Elements con VR explı́cito. Esta estructura se muestra en la figura 22.
3Application profile es un conjunto de elementos de metadata, polı́ticas y lineamientos,
definidos para una aplicación particular.
DICOM
Figura 20.
21
Algunos valores del File Meta Information Header (extraı́da
de [9]).
Figura 21.
Figura 22.
Ejemplo de Data Set.
Estructura de un Data Element (extraı́da de [1]).
Data Element Tag. Corresponden a los tags como fueron definidos antes.
Dentro del archivo, los tags están dispuestos en orden creciente. Los tags
con número de grupo par 4 están definidos en de la norma DICOM. Se
autoriza a fabricantes definir tags fuera de la norma. En este caso, tienen
que ser impares 5 y debidamente documentados.
4Excepto algunos números prohibidos en la norma
5Ídem hay impares prohibidos
22
RODOLFO GROSSO
Value Representation. Es el valor definido antes. Puede estar explicito o
implicito. Explicito significa que el VR está especificado con cada objeto,
mientras que implı́cito significa que la aplicación debe obtener el VR de
una tabla que mapea pares (group, element) a valores de VR. La aplicación
describe si usa implı́cito o explı́cito VR en el Application Header 6.
Value Length, longitud de los datos. DICOM hace el seguimiento de las
longitudes de los datos para saber donde cada Data Element comienza y
termina. Dicho valor figura en el campo Value Field que es un número entero
sin signo de 2 o 4 bytes. Existe el valor de Value Length = FFFFFFFFh que
indica longitud indefinida. Observamos que para algunos VR’s, la longitud
de los datos se encuentra fija o limitada.
Sean de longitud fija o no, todos los Data Elements de DICOM deben
tener longitud par. O sea deben contener un número par de caracteres si
es texto o de bytes si es binario. Si originalmente no es ası́, DICOM agrega
un caracter de espacio en blanco o un byte NULL. Ası́ por ejemplo el nombre “SmithˆJoe” se almacenará internamente como “SmithˆJoe ” (con un
espacio en blanco al final).
Value Field, valor del atributo. Contiene el el propio valor del atributo mediante un número par de bytes. El tipo de valores almacenados en este campo
se encuentran especificados en el VR. Value Fields con longitud indefinida
se delimitan mediante el uso de Sequence Delimitation Items e Item Delimitation Data Elements, descriptos en la sección 7.5 del standard DICOM.
Volviendo al ejemplo anterior del tag (0028, 0010) que correspondı́a a la
cantidad de filas de una imagen, debemos tener en cuenta que este atributo
tiene como VR a US, o sea que la cantidad de filas se expresa como un
unsigned short. Otro ejemplo es el tag (7FE0,0010) que anuncia el principio
del atributo que contiene los pixeles de la imagen.
Resumen de campos de un Data Element con VR explı́cito e implı́cito. En
las figuras 23 y 24 se resumen los campos de un Data Element con VR
explı́cito y con VR implı́cito, respectivamente.
Figura 23.
Campos de un Data Element con VR explı́cito (extraı́da de [1]).
6Un caso especial es para los tags (FFFE,E000), (FFFE,E00D) y (FFFE,E0DD) los
cuales siempre son VR implı́cito
DICOM
Figura 24.
23
Campos de un Data Element con VR implı́cito (extraı́da de [1]).
Ejemplos.
Ejemplo. Como ejemplo “de escritorio” a partir de lo visto podemos hacer
nuestra primera escritura en Dicom. Si queremos escribir la parte del archivo
de una imagen de CT con 512 filas, 512 columnas y 12 bits por pixel yendo
al diccionario tenemos:
− Rows (0028,0010)
− Columns (0028,0011)
− Bits Allocated (0010,0100)
Sustituyendo y teniendo en cuenta el formato indicado por los VR’s se tiene:
(0028,0010)512(0028,0011)512(0028,0100)12
Ejemplo. Como ejemplo real veamos como se muestra un archivo DICOM
correspondiente a una imagen en xml.
<Dicom>
<attr tag="00020000" vr="UL" len="4">182</attr>
<attr tag="00020001" vr="OB" len="2">00\01</attr>
<attr tag="00020002" vr="UI" len="26">1.2.840.10008.5.1.4.1.1.7</attr>
<attr tag="00020003" vr="UI" len="52">
1.2.40.0.13.1.33638594054633409850481847740018507266</attr>
<attr tag="00020010" vr="UI" len="22">1.2.840.10008.1.2.4.50</attr>
<attr tag="00020012" vr="UI" len="16">1.2.40.0.13.1.1</attr>
<attr tag="00020013" vr="SH" len="12">dcm4che-2.0</attr>
<attr tag="00080005" vr="CS" len="10">ISO_IR 100</attr>
<attr tag="00080012" vr="DA" len="8">20120314</attr>
<attr tag="00080013" vr="TM" len="10">202644.234</attr>
<attr tag="00080016" vr="UI" len="26">1.2.840.10008.5.1.4.1.1.7</attr>
<attr tag="00080018" vr="UI" len="52">
24
RODOLFO GROSSO
1.2.40.0.13.1.33638594054633409850481847740018507266</attr>
<attr tag="00080020" vr="DA" len="0" />
<attr tag="00080030" vr="TM" len="0" />
<attr tag="00080050" vr="SH" len="0" />
<attr tag="00080060" vr="CS" len="2">OT</attr>
<attr tag="00080064" vr="CS" len="2">SI</attr>
<attr tag="00080070" vr="LO" len="0" />
<attr tag="00080090" vr="PN" len="0" />
<attr tag="00100010" vr="PN" len="0" />
<attr tag="00100020" vr="LO" len="0" />
<attr tag="00100030" vr="DA" len="0" />
<attr tag="00100040" vr="CS" len="0" />
<attr tag="0020000D" vr="UI" len="54">
1.2.40.0.13.1.110176780541369219423499710276709663223</attr>
<attr tag="0020000E" vr="UI" len="54">
1.2.40.0.13.1.236641157153453916146655261549295596491</attr>
<attr tag="00200010" vr="SH" len="0" />
<attr tag="00200011" vr="IS" len="2">1</attr>
<attr tag="00200013" vr="IS" len="2">1</attr>
<attr tag="00280002" vr="US" len="2">3</attr>
<attr tag="00280004" vr="CS" len="12">YBR_FULL_422</attr>
<attr tag="00280006" vr="US" len="2">0</attr>
<attr tag="00280010" vr="US" len="2">512</attr>
<attr tag="00280011" vr="US" len="2">512</attr>
<attr tag="00280100" vr="US" len="2">12</attr>
<attr tag="00280101" vr="US" len="2">8</attr>
<attr tag="00280102" vr="US" len="2">7</attr>
<attr tag="00280103" vr="US" len="2">0</attr>
<attr tag="7FE00010" vr="OB" len="-1">
<item off="828" len="0" />
<item off="836" len="45250">FF\D8\FF\E0\00\10\4A\46\49\46
\00\01\02\01\00\48\00\48\00\00\FF\E1\11\00\8\02\01\49\
.............
\20\10\08\04\02\01\00\80\40\20\10\08\04\02\01\00\8\02\01
</item>
</attr>
</Dicom>
Se observan los valores de número de filas y columnas en los tags (0028,0010)
y (0028,0011). A partir del tag (7FE0,0010) comienzan los valores de los pixels de la imagen, que son una gran cantidad, por ello se pusieron los puntos
suspensivos.
DICOM
25
Referencias
[1] National Electrical Manufacturers Association Digital Imaging and Communications
in Medicine (Dicom) Part 5: Data Structures and Encoding
[2] National Electrical Manufacturers Association Digital Imaging and Communications
in Medicine (Dicom) Part 3: Information Object Definitions
[3] National Electrical Manufacturers Association Digital Imaging and Communications
in Medicine (Dicom) Part 6: Data Dictionary
[4] Leadtools - Overview: Basic Dicom File Structure http://www.leadtools.com/SDK/medical/Dicom-spec1.htm
[5] Jacques Fauquex - Diapositivas de clase Dicom - Curso “Imágenes médicas, Adquisición, Instrumentación y Gestión”. Facultad de Ingenierı́a UdelaR
[6] Dicom - Apuntes para el curso “Imágenes médicas, Adquisición, Instrumentación y
Gestión”. Facultad de Ingenierı́a UdelaR, 2009
[7] dcm4che.org - A Very Basic DICOM Introduction http://www.dcm4che.org/confluence/display/d2/A+Very+Basic+DICOM+Introduction
[8] Jose Varela Pernas - Universidad de Santiago de Compostela Curso sobre Dicom Service Classes
http://www.usc.es/~catelmed/cursoDicom/classes.html
[9] Oleg S. Pianykh, Digital Imaging and Communications in Medicine (Dicom), Springer, 2008.
[10] Charles Parisot. The Basic Structure of Dicom, SSRPM Course - Neuchatel, 2003.
[11] Medical Connections - Basic DICOM Operations https://www.medicalconnections.co.uk/kb/Basic_DICOM_Operations
[12] DICOM is easy - Introduction to DICOM - Chapter 6 - Transfer Syntax http://dicomiseasy.blogspot.com/2012/01/introduction-to-dicom-chapter-6.html
[13] R. Gonzalez and R. Woods, Digital Image Processing, 2nd ed., Prentice Hall, 2002.
Descargar