DICOMDigital Imaging and COmmunication in Medicine
Montevideo, 2010-03-18(FING - NIB)
Yo• Jacques Fauquex
• miembro DICOM WG27 (wado)
• expositor científico a la RSNA
• director Opendicom : empresa uruguaya especializada en dicom y hl7 en base a productos open source (OsiriX, dcm4chee, ...) con presencia en Colombia, Chile, Ecuador
• co - desarrollador y traductor español de OsiriX
• co - fundador SUEIIDISS
Objetivo del curso
• saber usar la norma DICOM
• para poder decifrar un archivo
• experimentar con herramientas open source
• para familiarizarse con los objetos y su manipulación
Difusión del estándar DICOM• más de 20 años de existencia
• universal, sin otro estándar alternativo
• en libre acceso
• conferencia mundial, cada año en Chicago:RSNA (Radiological Society of North América)
• primera conferencia en sur américa:
RIO, 9-10 octubre 2010
Actualización• en versión 3.0 desde años (no versión 4.0 prevista)
• suplementos y correcciones cada 1-2 años
• integra nuevos estándares de imagen cuando llegan a madurez y universalidad suficiente
• la versión 3.0 edición 2009 salió recientemente
• http://www.dclunie.com/dicom-status/status.html
• en 2011 se publicará una versión xml DocBook del estándar completo
Contiene imágenes y más
• formatos estándares (TIF, JPG, RLE, JP2, MPG, MP2)
• varios codec para estos formatos
• desde 2009, soporta MPEG-4 AVC/H.264
• texto
• cda hl7
DICOM ≠ formato imagen• víncula
• formatos de imagen y
• circumstancias identificadas precisamente :
• el evento de captura
• las eventuales transformaciones de la misma
• información del paciente y de la cita
• adentro de objetos de información precisamente definidos
DICOM = ...
• Clase de Servicios abiertos por un Proveedor (SCP) disponibles para Usuarios (SCU)
• Lenguaje orientado objeto para Definir la Información de Objetos imagenológicos médicos (IOD)
• Unidad funcional fundamental de DICOM:
• SOP class = Service Object Pair
• SCP -- IOD --> SCU
IOD : Definición de Información de Objeto
• IOD = clase (concepto informático)
• cada imagen es una instancia de un IOD
• contiene todos los atributos obligatorios de este IOD y eventualmente los opcionales
• UIDs identifican instancias e IODs
• UID = identificador único
• UID de IOD llamado OID
• OID = UID IDentificador de Objeto IOD
Attributos obligatorios, opcionales y privados
• obligatorios: por ej. en una imagen, columnas y filas
• opcionales: por ej. otros identificadores del paciente
• privados: información embedida en el archivo DICOM por un fabricante de equipo de captura que no corresponde a atributos definidos en la norma
IOD enhanced
• enhanced = mejorado
• los IOD para tomografía, resonancia, angiografia, ... iniciales comportaban muchos atributos opcionales
• la nueva versión de estos IOD, llamada “enhanced”, 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
sintaxis UID
• Formato de identificador estandarizado ISO
• contiene cifras y puntos
• empieza y termina por una cifra
• permite raíz y subdivisión
• ej: 1.2.840.10008.1.2.1
• (1.2.840.10008 = DICOM)
usos genéricos de UID
• OIDs <http://www.oid-info.com>
• IANA <http://www.iana.org/assignments/enterprise-numbers>
• LDAP
• SNMP
• HL7 <http://www.hl7.org/oid/>
• DICOM <ftp://medical.nema.org/medical/dicom/2009/09_06pu3.pdf>
• léxicos <http://phinvads.cdc.gov/vads/SearchVocab.action>
otros sistemas de IDs únicos
• único dentro de objetos DICOM
• Tag (identificador de atributo)
• binomio de 2 unsigned short
• se representa de esta forma : (7FE0, 0010)
• único universalmente
• UUID
• Ej: 550e8400-e29b-41d4-a716-446655440000
• URL inversa
• ej: com.opendicom.oid.dicom.clientes.cliente1
• sería equivalente a OID 1.3.6.1.4.1.23650.3.1
<attr tag="00080016" name="SOP Class UID">1.2.840.10008.5.1.4.1.1.12.1
<attr tag="00080018" name="SOP Instance UID">1.3.46.670589.7.5.10.80008191025.20070731.155457.12.1.1
ejemplo: UIDs identificando clase SOP e instancia SOP
Estándar DICOM y estructura de archivos
Conocimientos mínimos de la norma para poder leer y decifrar archivos DICOM
Partes fundamentales• http://www.dclunie.com/dicom-status/status.html#BaseStandard2009
• Norma subdividida en 18 (próximamente 20) partes
• Para poder leer un archivo necesitamos:
• Parte 5: Data Structures and Encoding • capitulo 6.1 charset (hoy solo usaremos ISO-100, ASCII,
para simplificar) • capitulo 6.2 value representation (tipo de data) • capitulo 7 dataset (conjunto de tags con su(s) valores) • capitulo 7.5 nesting of dataset (encapsulación) • capitulo 8 pixel y compresión anexo A transfer syntax
• Parte 6: capitulo 6 Data Dictionary • Parte 3: Information Object Definitions
Búsqueda dentro de DICOM
• La sintaxis y representación particular de los identificadores
• 1.3.6.1.4.1.23650.3.1
• (7FE0, 0010)
• ... facilita la búsqueda de información especifica sin pasar por el índice de títulos
... desde estructura de IOD
• IODs definidos en la parte 3 de la norma
• Casi toda la información substancial se encuentra en los anexos
• Anexos A y B contienen la lista de los IODs
• Anexo A contiene 60 IOD
• Anexo B contiene 25 IOD
de lo general a los detalles (ver los diapos siguientes)• IOD
• modulo
• macro
• atributo
• sintaxis atributo
• tipo de dato
IE Module Reference UsagePatient Patient C.7.1.1 M
Clinical Trial Subject C.7.1.3 UStudy General Study C.7.2.1 M
Patient Study C.7.2.2 UClinical Trial Study C.7.2.3 U
Series General Series C.7.3.1 MClinical Trial Series C.7.3.2 U
Frame of Reference Frame of Reference C.7.4.1 MEquipment General Equipment C.7.5.1 MImage General Image C.7.6.1 M
Image Plane C.7.6.2 MImage Pixel C.7.6.3 MContrast/bolus C.7.6.4 C - Required if contrast media
was used in this imageDevice C.7.6.12 USpecimen C.7.6.22 UCT Image C.8.2.1 MOverlay Plane C.9.2 UVOI LUT C.11.2 USOP Common C.12.1 M
PARTE 3: A.3.3 CT IMAGE IOD MODULES
Attribute Name Tag Type Attribute DescriptionPatient's Name (0010,0010) 2 Patient's full name.Patient ID (0010,0020) 2 Primary hospital identification number or
code for the patient.
Include Issuer of Patient ID Macro Table 10-18Include Issuer of Patient ID Macro Table 10-18Include Issuer of Patient ID Macro Table 10-18Include Issuer of Patient ID Macro Table 10-18
Patient's Birth Date (0010,0030) 2 Birth date of the patient.Patient's Sex (0010,0040) 2 Sex of the named patient.
Enumerated Values:! M = male! F = female! O = other
Referenced Patient Sequence (0008,1120) 3 A sequence that provides reference to a Patient SOP Class/Instance pair. Only a single Item shall be permitted in this Sequence.
>Include SOP Instance Reference Macro Table 10-11>Include SOP Instance Reference Macro Table 10-11>Include SOP Instance Reference Macro Table 10-11>Include SOP Instance Reference Macro Table 10-11Patient's Birth Time (0010,0032) 3 Birth time of the Patient.
PARTE 3: Table C.7.1.1 PATIENT MODULE ATTRIBUTES
Attribute Name Tag Type Description
Referenced SOP Class UID (0008,1150) 1 Uniquely identifies the referenced SOP Class.
Referenced SOP Instance UID (0008,1155) 1 Uniquely identifies the referenced SOP Instance.
PARTE 3: 10.8 SOP INSTANCE REFERENCE MACRO
(0008,1150)Referenced SOP Class UID ReferencedSOPClassUID UI 1Tag Name Keyword VR VM
Parte 6: 6 Registry of DICOM data elements
UIUnique Identifier (UID)
UIUnique Identifier (UID)
A character string containing a UID that is used to uniquely identify a wide variety of items. The UID is a series of numeric components separated by the period "." character. If a Value Field containing one or more UIDs is an odd number of bytes in length, the Value Field shall be padded with a single trailing NULL (00H) character to ensure that the Value Field is an even number of bytes in length. See Section 9 and Annex B for a complete specification and examples.
"0”-”9”, “." of Default Character Repertoire
64 bytesmaximum
ULUnsigned LongULUnsigned Long
Unsigned binary integer 32 bits long. Represents an integer n in the range:
0 <= n < 232.
not applicable 4 bytesfixed
UNUnknownUNUnknown
A string of bytes where the encoding of the contents is unknown (see Section 6.2.2).
not applicable Any length valid for any of the other DICOM Value Representations
USUnsigned ShortUSUnsigned Short
Unsigned binary integer 16 bits long. Represents integer n in the range:
0 <= n < 216.
not applicable 2 bytesfixed
Parte 5: DICOM VALUE REPRESENTATIONS
... desde estructura de archivo• Los archivos DICOM son de formato binario
• soportan representación little y big endian
• Están constituidos por listas de atributos llamados datasets
• Atributos de tipo SQ (secuencia) contienen 0 o más datasets
• Las partes textuales están en ASCII
• Ciertas partes textuales usan un charset definido por el atributo (0008,0005)
Tag Name Keyword VR VM
(0002,0000) File Meta Information Group Length FileMetaInformationGroupLength UL 1
(0002,0001) File Meta Information Version FileMetaInformationVersion OB 1
(0002,0002) Media Storage SOP Class UID MediaStorageSOPClassUID UI 1
(0002,0003) Media Storage SOP Instance UID MediaStorageSOPInstanceUID UI 1
(0002,0010) Transfer Syntax UID TransferSyntaxUID UI 1
(0002,0012) Implementation Class UID ImplementationClassUID UI 1
(0002,0013) Implementation Version Name ImplementationVersionName SH 1
(0002,0016) Source Application Entity Title SourceApplicationEntityTitle AE 1
(0002,0100) Private Information Creator UID PrivateInformationCreatorUID UI 1
(0002,0102) Private Information PrivateInformation OB 1
¿ 0002 0000 = (0200,0000) ?• Tag = binomio de 2 short integer
• 00 representación hexadecimal de un byte (00-FF)
• short = valor de tamaño 2 bytes (0000-FFFFF)
• little endian (intel): menos significativo primero
• big endian (ibm): más significativo primero (como nuestra lectura occidental de izquierda a derecha)
• 0002 0000 (LE) = 0200 0000 (BE)
• 0200 0010 Transfer Syntax UID
• 1.2.840.10008.1.2 = Implicit VR Little Endian
3 “transfer syntax” básicas
• Explicit Big Endian (explicit significa que se indica el tipo de datos (las 2 letras)
• Implicit Little Endian: (sin las 2 letras de indicación de tipo de datos). codificación que cualquier estación DICOM tiene que saber manejar. Es un requisito de la norma misma.
• Explicit Little Endian: base para todos los tipos de archivos DICOM que tienen la data de los pixeles comprimida.
transfer syntax OIDs• 1.2.840.10008.1.2.2 (Explicit Big Endian)
• 1.2.840.10008.1.2 (Implicit Little Endian)
• 1.2.840.10008.1.2.1 (Explicit Little Endian)
• 1.2.840.10008.1.2.4.50 (Explicit Little ... jpg baseline)
• 1.2.840.10008.1.2.4.70 (Explicit Little ... jpg lossless)
• 1.2.840.10008.1.2.4.80 (Explicit Little ... jpg-ls lossless)
• 1.2.840.10008.1.2.4.90 (Explicit Little ... jp2k lossless)
• 1.2.840.10008.1.2.1.99 (Deflatad Explicit Little ...)
• ...
Teleradiología
• en jp2k se logra una compresión 1/3 sin perdida ninguna de información
• para varias modalidades de adquisición una compresión de 1/10 a 1/30 es aceptable
• el protocolo wado, de acceso a las imágenes mediante URL permite pedirlas comprimidas
Atributos estructurales• bytes 0-127 : Preámbulo vacío • bytes 128-131: "DICM" (firma DICOM) • metadata (codificado en ELE)• (0002,0002) Media Storage SOP Class UID• (0002,0010) Transfer Syntax UID
• Dataset• (0008,0005) Charset• atributos clasificados por orden creciente y
codificados EBE, ILE o ELE en función de (0002,0010)atributo
• (7FE0,0010) conteniendo los pixeles codificados, comprimidos en función de (0002,0010)
dcm2xml• dcm2xml = convertidor dicom a xml
• siendo ambos dicom y xml lenguajes orientados objeto, es posible convertir el más específico en el más general, convertir dicom en xml
• existen varios convertidores que dan resultados de presentaciones ligeramente diferentes
• la conversión ontológica dicom -> xml no fue definida todavía. Hubo un proyecto presentado el año pasado a la RSNA que llegará probablemente a madurez dentro de 2 años.
Convertidores de código abierto
• dcm4che 1
• dcm4che 2
• dcmtk
• ...
• podría ser un proyecto de grado escribir un convertidor optimizado en velocidad y concisión
Herramientas xml• Lenguajes• XPath• XML Schema Definition• XSL transformación (versión 1 y 2)• ...
• parsers-transformers xml opensource• Saxon (java, net)• Xalan (C++, java)• ...
• Editores• OxygenXML• ...
xml2dcm
• Disponible adentro de las mismas cajas de herramientas que contienen dcm2xml
• dcm4che 1
• dcm4che 2
• dcmtk
• ...
Top Related