DICOM - núcleo de ingeniería biomédica · Objetivo del curso • saber usar la norma DICOM •...

45
DICOM Digital Imaging and COmmunication in Medicine [email protected] Montevideo, 2010-03-18 (FING - NIB)

Transcript of DICOM - núcleo de ingeniería biomédica · Objetivo del curso • saber usar la norma DICOM •...

DICOMDigital Imaging and COmmunication in Medicine

[email protected]

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

Introducció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

• pdf

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, OID y UID

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

IODOID: ID claseUID: ID instancia

atributos : - obligatorios, - opcionales- privados

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)

Estructura atributo

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

“Transfer syntax”Little o Big Endian,Explicit o Implicit,

con alguna compresión o no

¿ 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 ...)

• ...

¿ Porque comprimir ?

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)

DICOM + XMLConvertir DICOM a XML facilita su manipulación

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

• ...

flujo de transformación de archivo DICOM

• dcm2xml

• transformación xsl

• xml2dcm