diseño y desarrollo de un pacs usando una libreria de lectura y

Anuncio
DISEÑO Y DESARROLLO DE UN PACS USANDO UNA LÍBRERIA DE
LECTURA Y ESCRITURA DEL FORMATO DICOM
FABIO MARTÍNEZ CARRILLO
Trabajo de Grado realizado en el Centro de Telemedicina de la Universidad
Nacional de Colombia, Facultad de Medicina
UNIVERSIDAD DE PAMPLONA
FACULTAD DE INGENIERÍAS Y ARQUITECTURA
PROGRAMA DE INGENIERÍA MECATRÓNICA
PAMPLONA
2006
DISEÑO Y DESARROLLO DE UN PACS USANDO UNA LÍBRERIA DE
LECTURA Y ESCRITURA DEL FORMATO DICOM
FABIO MARTÍNEZ CARRILLO
Trabajo de Grado realizado en el Centro de Telemedicina de la Universidad
Nacional de Colombia, Facultad de Medicina
DIRECTOR: EDUARDO ROMERO CASTRO Ph.D.
TUTOR ACADÉMICO: DIEGO JUGO GONZÁLEZ Ph.D.
UNIVERSIDAD DE PAMPLONA
FACULTAD DE INGENIERÍAS Y ARQUITECTURA
PROGRAMA DE INGENIERÍA MECATRÓNICA
PAMPLONA
2006
Nota de aceptación:
Firma del presidente del jurado
Firma del jurado
Firma del jurado
Pamplona, 22 de Mayo 2006
Dedico este trabajo a mi PAPÁ (Q.E.P.D) OVIDIO MARTÍNEZ, por ser el motivo de
inspiración para desarrollar este proyecto. A mi mamá ISBELIA CARRILLO y mi hermana
YUDY MARTÍNEZ, por ser el apoyo y la base fundamental en mi vida; y a mi tı́o CÁNDIDO
ARENALES, quien con su bondad hizo posible que se culminara este sueño.
i
AGRADECIMIENTOS
A DIOS quien me dió la fé, fortaleza, salud y esperanza para terminar este trabajo (decidı́ dejarlo a pesar de que el profesor Romero piensa que la ciencia y la religión no se mezclan).
De manera muy especial al profesor Eduardo Romero por la confianza, apoyo, dedicación
y enseñanza que me brindó durante la permanecia de mi pasantı́a en el Centro de Telemedicina.
A mis asesores y amigos en este proyecto Andrea del Pilar Rueda y Juan Carlos Caicedo,
por brindarme un apoyo incondicional para la culminación de este trabajo.
A mis compañeros y amigos del Centro de Telemedicina, en especial a Javier Rojas, Carlos López , Carlos Vargas, Adriana Maldonado, Gustavo Páramo, Byron Pérez, Gloria Dı́az
y Francisco Jaramillo, por brindame enseñanza, y ser guı́as en los trabajos realizados en el
Centro de Telemedicina.
A mis compañeros y amigos de pregado, en especial a Ingrid Yaneth Angarita, Ireli Patricia Vargas, Leonardo Mejı́a, Laureano Martı́nez y Eliécer Ayala por compartir momentos
inolvidables en nuestras vidas, y a quienes le guardo gran aprecio.
A Yina Paola Uribe por ser mi apoyo y refugio en los momentos difı́ciles de mi vida, por
apoyarme y hacer de mı́ una mejor persona.
A mis familiares y amigos quienes siempre me acompañaron a lo largo de mi carrera universitaria y me brindaron su apoyo y voto de confianza.
A la Universidad de Pamplona y sus directivos por brindar una fuente de conocimiento
para forjarnos cada dı́a como profesionales de bien.
A todas aquellas personas que estuvieron presentes en cada momento y no dudaron en
brindarme su apoyo y comprensión.
ii
Resumen
El objetivo de este trabajo de fin de carrera es el de diseñar, implementar y evaluar un
sistema mini-PACS (Picture Archiving and Communication System). Estos sistemas se usan
corrientemente en los hospitales modernos y su función es optimizar el trabajo de una unidad
de imágenes diagnósticas. Estos sistemas, que forman parte integral del sistema de información
hospitalaria, intervienen desde la captura de las imágenes, organizan la información y la
almacenan de forma eficiente. El médico puede entonces realizar las consultas desde cualquier
terminal y el sistema asegura la confiabilidad en la transmisión y en el despliegue de los datos.
La implementación realizada en este trabajo se hizo con base en la libreria de código abierto
PixelMed que se complementó con una interfase general de usuario (GUI) desarrollada en
Java. La evaluación de nuestra aplicación mostró eficiencia, robustez y confiabilidad en el
sistema. Nuestro sistema es capaz de recibir hasta 500 consultas simultáneas con un retardo
de 1 segundo.
iii
Abstract
The main goal of this work was aimed at devising, designing, implementing and to evaluating a mini-PACS system (Picture Archiving and Communication System). These systems are
currently used in modern hospitals and their function is to optimize daily routines in a clinic
imaging unit. These systems, which are an integral part of an information hospital system,
pick the medical information after it is captured. The system is then charge of organizing it
and archiving it in an efficient manner. Doctors can thus consult medical imaging information from any terminal at the hospital and the system ensures reliability in data transmission
and display. Implementation herein built was based on the open source library PixelMed,
which was complemented by a General User Interfase (GUI) developed in Java. Evaluation
showed our system was efficient, robust and reliable. Our system is able to receive up to 500
simultaneous queries with a one second delay.
iv
Índice general
Resumen
iii
Abstract
iv
Introducción
1. Estándar DICOM
1.1. Historia . . . . . . . . . . . . . .
1.2. Formato de los Archivos DICOM
1.3. Estructura DICOMDIR . . . . .
1.4. Estructura del estándar DICOM
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
4
4
7
2. PACS (Picture Archiving and Communication Systems)
2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Modelo de comunicaciones . . . . . . . . . . . . . . . . . . .
2.2.1. Servidores . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Estaciones de Trabajo . . . . . . . . . . . . . . . . .
2.2.3. Estaciones para la adquisición de imágenes . . . . .
2.2.4. Sistema de interconexión . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
22
23
24
24
3. Diseño de un PACS
3.1. Diseño del software para el SERVIDOR . . . . . . . . . . . . . . .
3.1.1. Diseño de la aplicación . . . . . . . . . . . . . . . . . . . . .
3.1.2. Diagrama de flujo de la aplicación del servidor . . . . . . .
3.2. Estación de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Caracterı́sticas fı́sicas . . . . . . . . . . . . . . . . . . . . .
3.2.2. Diseño de las estaciones de trabajo . . . . . . . . . . . . . .
3.2.3. Diagrama de flujo de la aplicación de la estación de trabajo
3.3. Sistema de conexión . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
29
30
31
34
35
35
37
42
.
.
.
.
.
.
.
.
.
.
.
.
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.3.1. Caracterı́sticas fı́sicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4. Implementación del PACS
4.1. Evaluación de las diferentes herramientas para la manipulación del PACS
4.1.1. Biblioteca ITK . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2. Biblioteca VTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3. Biblioteca JDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.4. Biblioteca DCMTK . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.5. Toolkit PIXELMED . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Implementación de la Estación de Trabajo . . . . . . . . . . . . . . . . . .
4.3. Funcionamiento general de la estación de trabajo . . . . . . . . . . . . . .
4.4. Implementación del servidor . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Funcionamiento general del SERVIDOR . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
44
44
45
46
47
47
52
53
56
5. Pruebas de Ejecución
58
5.1. Soporte de Formatos DICOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2. Desempeño del Módulo de Comunicaciones . . . . . . . . . . . . . . . . . . . . 58
6. Conclusiones y Perspectivas
62
vi
Índice de figuras
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
Ejemplo de imágenes en formato DICOM . . . . . . . . . . . . . . . . . . . . . 3
Estructura de un archivo DICOM . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Estructura de los ARCHIVOS DICOM . . . . . . . . . . . . . . . . . . . . . . . 6
Proceso de construcción de una red de trabajo de acuerdo a la conformación . . 8
Proceso de construcción para la comunicación de acuerdo a la conformación . . 9
Definición de los objetos de información de acuerdo a las entidades de información 10
Ejemplo del el objeto de informacion compuesto en una imagén . . . . . . . . . 10
Registro de los elementos de datos de DICOM. Tomada de la parte 6 del
estándar DICOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.
2.2.
2.3.
2.4.
2.5.
Esquema de un PACS . . . . . . . . . . . . . . . . . .
Modelo de un proceso distribuı́do . . . . . . . . . . . .
Ejemplo de una estación de diagnóstico . . . . . . . .
Ejemplo de una estación de consulta . . . . . . . . . .
Ejemplo de una estación para adquisición de imágenes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
21
24
25
25
3.1. Esquema del PACS implementado en el proyecto . . . . . . . .
3.2. Esquema que representa el diseño de la aplicación del servidor .
3.3. Diagrama de flujo del algoritmo del servidor . . . . . . . . . . .
3.4. Diagrama de flujo del servidor opción A . . . . . . . . . . . . .
3.5. Diagrama de flujo del servidor opción B . . . . . . . . . . . . .
3.6. Esquema UML de la estación de trabajo . . . . . . . . . . . . .
3.7. Diagrama de flujo de una estación de trabajo . . . . . . . . . .
3.8. Diagrama de flujo de una estación de trabajo opción A . . . . .
3.9. Diagrama de flujo de una estación de trabajo opción B . . . . .
3.10. Diagrama de flujo de una estación de trabajo opción C . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
30
32
33
34
36
38
39
40
41
4.1. Logo ITK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2. Logo VTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3. Logo JDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
vii
4.4. Logo DCMTK . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Esquema UML de paquetes que conforman el visualizador
4.6. Esquema UML de clases que conforman el visualizador . .
4.7. Esquema UML de clases que conforman el visualizador . .
4.8. Estación de trabajo . . . . . . . . . . . . . . . . . . . . . .
4.9. Estación de trabajo . . . . . . . . . . . . . . . . . . . . . .
4.10. Esquema UML de paquetes que conforman el servidor . .
4.11. Esquema UML de paquetes que conforman el servidor . .
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
48
50
51
53
54
55
56
Introducción
En la actualidad existen centros de salud que manejan el sistema tradicional de almacenamiento y visualización de imágenes, que consiste en imprimir placas capturadas utlizando
máquinas médicas y archivarlas en un cuarto para consultarlas posteriormente ó entregarlas
a los pacientes para que se hagan cargo de éstas. Manejar grandes volúmenes de información
utlizando este método tradicional presenta numerosos inconvenientes como la lentitud en la
consulta de los expedientes, pérdida de archivos, imágenes deficientes que limitan un buen
diagnóstico y altos costos de impresión, entre otras.
Con la aparición de las imágenes médicas digitales, surge una gran cantidad de formatos
los cuales no eran compatibles entre sı́. Con el fin de generalizar esta situación se formaliza
el estándar DICOM, cuyo objetivo es el de reglamentar y dar un formato único para las
imágenes. Los archivos DICOM presentan la caracterı́stica de contener diferentes datos dentro
del archivo de la imagen como el nombre del paciente, máquina de donde fue tomada la
imagen, caracterı́sticas y modo de envı́o de los archivos a través de la red. Este estándar
también proporciona un protocolo de comunicaciones para la transmisión de archivos médicos
que está apoyado por los protocolos TCP/IP, y ISO/OSI.
Teniendo como base el estándar DICOM, se han diseñado nuevos sistemas de almacenamiento y comunicación de archivos médicos llamados PACS, estos permiten manejar grandes
volúmenes de información médica en un hospital, además que proporcionan ventajas como la
comunicación de archivos a través de la red a diferentes hospitales y centros de investigación
para desarrollar un mejor diagnóstico, también proporcionan un modo de administración más
confiable y seguro.
Los PACS son una parte fundamental en los sistemas de información hospitalaria (HIS),
los cuales se integran junto con los sistemas RIS, sistemas de información de radiologı́a por
medio de estándares médicos que son reglamentados por el HL7 (Health Level 7), para dar
un soporte de información robusto en un hospital.
1
Capı́tulo 1
Estándar DICOM
DICOM (Digital Imaging and Communications in Medicine) es el estándar industrial para
la adquisición de imágenes médicas y comunicación desde diferentes equipos (diagnóstico, terapéuticos y entre sistemas de diferentes fabricantes) y la transferencia de imágenes digitales
e información médica entre computadoras. Este estándar permite interconectar sistemas informáticos de diferentes fabricantes.
En el estándar DICOM existe una transmisión segura, que permite que la información
pueda transportarse por los diferentes departamentos de un hospital e incluso pueda ser
enviada a diferentes hospitales y centros de investigación.
El estándar DICOM también permite obtener las imágenes digitales de una máquina
para su procesamiento y manipulación. Con las diferentes técnicas de procesamiento se busca
conseguir un mejoramiento en las imágenes tomadas y corregir por medio del software algunos
errores que introducen los sensores de las máquinas al capturar la imagen. Para ello se hace uso
de diferentes librerı́as que permiten manejar y tratar la imagen. En la figura 1.1 se muestran
algunas imágenes en formato DICOM
1.1.
Historia
Con la introducción de la Tomografı́a Computarizada(TC), aparece una poderosa herramienta para hacer diagnóstico. Además, con el crecimiento del uso de computadoras y
sistemas de información en aplicaciones clı́nicas, la Escuela de Radiologı́a Americana (ACR)1
y la Asociación Nacional de Fabricantes de Dispositivos Eléctricos(NEMA)2 establecieron un
estándar para la transferencia de imágenes e información asociada entre los diferentes dispositivos. En ese entonces los dispositivos producı́an una variedad de formatos de imágenes
digitales que por lo general eran incompatibles entre sı́.
1
2
American College of Radiology
National Electrical Manufacturers Association
2
Figura 1.1: Ejemplo de imágenes en formato DICOM
ACR-NEMA formaron un comité en 1983 para el desarrollo de un estándar que contara
con las siguientes caracterı́sticas:
Promover la comunicación de imágenes digitales entre los diferentes fabricantes de dispositivos.
Facilitar el desarrollo y expansión de archivos de imágenes y sistemas de comunicación
(PACS), y de interfaces con otros sistemas de información en los hospitales.
Permitir la creación de bases de datos con información de diagnóstico que se pueda
llamar desde una variedad de dispositivos distribuı́dos geográficamente
ACR-NEMA publicó el estándar No. 300-1985 (versión 1.0.), el cual fue desarrollado con
base en los formatos de imágenes médicas que existı́an hasta el momento. Después publicó el
estándar No. 300-1988 (versión 2.0.) que extiende la versión 1.0. Esta contiene el material
para proporcionar el soporte de comandos para la visualización de los diferentes dispositivos.
Además introduce el esquema de identificación de imágenes y adiciona datos para incrementar la especificación descrita de la imagen. Este estándar incluye las especificaciones para las
interfaces de hardware, un mı́nimo conjunto de comandos de software, y un consistente conjunto de formatos de datos. El estándar DICOM nace en el año 1993, a partir de un rediseño
completo de la publicación normalizada No 33-1988 de ACR-NEMA.
3
1.2.
Formato de los Archivos DICOM
El formato de archivos DICOM esta conformado por una cabecera que contiene los metadatos
y la imagen, como se muestra en la figura 1.2. Los metadatos proporcionan la información
de la imagen como por ejemplo su tamaño, dimensiones, modalidad, equipo de captura y la
identificación correspondiente al paciente. Ésta es la mayor diferencia con los demás formatos
populares, en los cuales hay una gran dificultad para asignar y administrar la información.
En los archivos DICOM se comprimen los metadatos y la imagen, con lo cual se permite un
menor tamaño y menor riesgo de pérdida de la información.
A diferencia de la manera convencional (imágenes impresas en placas), los archivos DICOM son de gran ventaja pues permiten tener un criterio más amplio en el estudio de casos,
basándose en imágenes tomadas anteriormente al mismo paciente. También permite desplegar
en la pantalla varias imágenes de diferentes estudios para ser observadas al mismo tiempo, esto
permite un control más detallado y preciso. Además, las imágenes pueden ser manipuladas
para facilitar su observación.
1.3.
Estructura DICOMDIR
DICOMDIR3 define un grupo de archivos que están relacionados por medio de los atributos
de los archivos. Esto facilita el acceso a la información de las imágenes contenidas dentro de
éste. En este directorio se especifica un archivo DICOMDIR, que contiene la información del
conjunto de imágenes y por medio del cual se puede acceder más fácilmente a los demás
archivos DICOM, existentes en el DICOMDIR.
En la figura 1.3 se ilustra la organización del formato DICOMDIR, y de los archivos contenidos. En esta figura se muestran archivos DICOM junto con su estructura básica: metadatos
e imagen. Su versatilidad y adaptabilidad se comprenden más facilmente a través de un ejemplo: supongamos que los archivos mostrados tienen un tamaño cada uno de 20632 bytes, los
cuales están distribuidos en dos partes: la cabecera (contiene los metadatos), y la imagen.
En estos archivos la cabecera ocupa 794 bytes del tamaño total del archivo y la información
está organizada en una estructura particular. La imágen ocupa los restantes 19838 bytes.
El archivo DICOMDIR que se encuentra dentro del directorio DICOM contiene información común de localización relativa dentro del directorio de los archivos DICOM. Este permite
organizar los archivos como un árbol permitiendo un rápido acceso a la información.
3
Directorios DICOM
4
Archivo DICOM
Nombre Paciente: Rabbit Osman
Tipo de Imagen: Original
Cabecera del Archivo DICOM
donde se encuentran los metadatos
del Archivo
Parte Examinada: Heart
Nombre de la institución: UCLA
Marca del equipo: Siemens
Imagen DICOM
Figura 1.2: Estructura de un archivo DICOM
5
DICOMDIR
ARCHIVO
DICOMDIR
ARCHIVO
DICOM_1
ARCHIVO
DICOM_2
ARCHIVO
DICOM_3
ARCHIVO
DICOM_1
ARCHIVO
DICOM_2
CABECERA ARCHIVO
CABECERA ARCHIVO
METADATOS
METADATOS
IMAGEN
IMAGEN
Figura 1.3: Estructura de los ARCHIVOS DICOM
6
ARCHIVO
DICOM_3
CABECERA ARCHIVO
METADATOS
IMAGEN
1.4.
Estructura del estándar DICOM
El estándar DICOM se organiza por temas que están organizados para definir una estructura de información y comunicaciones que trata de manera eficiente la información. Dentro del
estándar, estos temas se denominan partes. Este modelo permite visualizar mejor el contenido
y hace más fácil su interpretación. A continuación se presenta un breve resumen del contenido
de cada parte.
Parte 1: Introducción y Vista General
En esta parte se da una definición del estándar DICOM. También se muestra en manera
breve la manera en que están constituı́das cada una de sus partes, la historia, y la manera en
que ha evolucionado este estándar.
Parte 2: Conformación
En esta parte se define la forma en la que están conectadas y relacionadas las diferentes
partes del estándar. En las figuras 1.4 y 1.5 se representa este proceso por medio del cual
obtenemos una conformación robusta del estándar. La manera que tuvieron en cuenta para
organizar y concatenar las partes del sistema fueron las siguientes:
Sistema de objetos de información que son reconocidos en la puesta en práctica.
Sistema de clases de servicios con soporte de implementación.
Protocolos de comunicaciones o de medios fı́sicos con soporte a la implementación.
Parte 3: Definición del Objeto de Información
En esta parte del estándar DICOM se definen los objetos de información y se establecen
las funciones que ellos realizan. Éstos objetos son un grupo de información relacionada, la cual
está organizada en entidades de información o atributos que proporcionan una definición abstracta de las entidades del mundo real aplicables a la comunicación de las imágenes médicas
digitales. Estas entidades pueden ser el nombre del paciente, la imagen, el equipo de adquisición, etc. Cada definición de la clase del objeto de la información consiste en una descripción
de su propósito y de las cualidades que la definen. Una clase de objetos de información no
incluye los valores para las cualidades que abarcan su definición. La definición de los objetos
de información se puede hacer en términos de una entidad única o de un grupo de entidades
y se denominan objetos de información normalizados ó compuestos, respectivamente, como se
muestra en la figura1.6.
En la figura1.7 se muestra un ejemplo de la estructura de un objeto de información compuesto, con el cual están asociados múltiples entidades de información
7
Parte 16
Parte 14
Funcion que
muestra la
escala de grises
Parte 6
Diccionario
de datos
Parte 5
Estructura de
Datos y Semantica
Parte 10
Intercambio de
Mensajes
Parte 12
Perfiles
de seguridad
Recursos para
la busqueda del
contenido
CONFORMACION DEL
ESTANDAR DICOM
MODELO DE
IMPLEMENTACION
Parte 3
Definición de los
objetos de la
información
Parte 4
Especificaciones
con las clases
de servicio
CLASES SOP
TAREAS
SINTAXIS DE
TRANSFERENCIA
PILA DE
COMUNICACION
Parte 11
Soporte de
comunicaciones
de red
MEDIDAS
DE SEGURIDAD
Figura 1.4: Proceso de construcción de una red de trabajo de acuerdo a la conformación
8
Parte 16
Parte 14
Funcion que
muestra la escala
de grises
Parte 6
Parte 5
Estructura de
Datos y Semantica
Diccionario
de datos
Parte 10
Perfiles en los
medios de
comunicación
Parte 12
Parte 15
Recursos para
la busqueda del
contenido
CONFORMACION DEL
ESTANDAR DICOM
MODELO DE
IMPLEMENTACION
Parte 3
Definición de los
objetos de la
información
PERFILES DE APLICACAION
Parte 4
Especificaciones
con las clases
de servicio
Parte 11
CLASES SOP
TAREAS
SINTAXIS DE
TRANSFERENCIA
Formato de archivos
e intercambio
de datos
Formato de los
medios, intecambio
fisico ,inercambio
de datos
PILA DE COMUNICACION
Perfiles de
seguridad
MEDIDAS DE SEGURIDAD
Figura 1.5: Proceso de construcción para la comunicación de acuerdo a la conformación
9
Objeto de información simple
Definición de información simple
Módulos de Objetos de información
Módulos de Objetos de información
Definición de los
Objetos de información
Módulos de Objetos de información
Objeto de información compuesto
Selección
Entidad de información
Entidad de información
Entidad de información
Figura 1.6: Definición de los objetos de información de acuerdo a las entidades de información
Paciente
Equipo
Nombre
Manufactura
Sexo
Referencia
Estudio
Imagen
Identificación
Numero
Identificación
Numero
de seleccion
Ancho
de la ventana
Fecha
de Nacimiento
Fecha
de Realización
Datos de pixel
Figura 1.7: Ejemplo del el objeto de informacion compuesto en una imagén
10
Parte 4: Especificaciones de las clases de servicio
La parte cuarta del estándar DICOM define las clases de servicio. Una clase de servicio
asocia unos o más objetos de la información y una o más acciones que deben ser realizadas
sobre éstos objetos. Las especificaciones de la clase de servicio indican los requisitos para los
elementos que realizan las acciones sobre los objetos y cómo éstas acciones se aplican. En esta
parte del estándar DICOM se definen las caracterı́sticas compartidas por todas las clases de
servicio, y cómo se estructura una declaración de la conformidad a una clase individual de
servicio. Esta sección contiene un número de anexos normativos que describen las clases de
servicio detalladamente.
Los ejemplos de clases de servicio incluyen lo siguiente:
Clase de Servicio de Almacenamiento
Clase de Servicio de pregunta - respuesta
Clases de Servicio básico para la dirección de listas de trabajo
Clases de Servicio para la dirección de impresión
Parte 5: Estructura de datos y codificación
Esta parte define las reglas de codificación necesarias para construir una secuencia de datos
que se transportará por la red por medio de un mensaje, según lo especificado por la parte
7 del estándar DICOM. También se define la semántica de un número de funciones genéricas
que son comunes a muchos objetos de información. Esta parte define las reglas de codificación
para los juegos de caracteres internacionales usados dentro de DICOM.
En esta parte del estándar se especifica:
a. Valores de codificación.
b. Estructura uso del conjunto de datos que se transportan en la red.
c. Uso y relaciones de otros elementos de datos.
d. Construcción y uso de los datos de la imagen
d. Cómo identificar la información
Parte 6: Diccionario de datos
En esta parte del estándar DICOM se define un registro central que tiene una colección
de todos los elementos de datos DICOM disponibles para representar la información, junto
11
con los elementos utilizados para los medios que codifican y crean una lista de los artı́culos
identificados de manera únca que son asignados por DICOM.
Para cada elemento, la parte 6 especifica:
Etiqueta única, que consiste en un grupo y un número del elemento.
Nombre.
Valor de representación (cadena de caracteres, número entero, etc.).
Valor de multiplicidad (cuántos valores por cualidad).
La manera como el estándar agrupa y tabula esos valores se muestra en la figura 1.8 que es
una parte del registro de los elementos de datos de DICOM, tomada de la parte 6 del estándar
Figura 1.8: Registro de los elementos de datos de DICOM. Tomada de la parte 6 del estándar
DICOM
12
Para cada artı́culo identificado, la parte 6 especifica:
Su valor único, que es numérico con los componentes múltiples separados por comas y
limitados a 64 caracteres.
Su nombre.
Su tipo, clase del objeto de la información, definición de la codificación para la transferencia de datos, o cierto objeto bien conocido de la información.
En qué parte del estándar DICOM se define.
Parte 7: Intercambio de mensajes
La parte 7 del estándar DICOM especifica los servicios y protocolos usados en ambientes
médicos, para la proyección de imágenes y el intercambio de mensajes sobre los servicios
de ayuda de comunicaciones definidos en la parte 8. Un mensaje se compone de un flujo
de acciones definidas en la parte 7 seguido por una secuencia de datos opcionales, según lo
definido en la parte 5.
En esta parte se especifica:
Las operaciones y las notificaciones (servicios DIMSE) que hacen posible mantener las
clases definidas en la parte 4.
Las reglas para establecer y para terminar asociaciones que proporcionan ayuda a las
comunicaciones especificadas en la parte 8.
Reglas que gobiernan el intercambio de peticiones y las respuestas a las diferentes acciones.
Reglas de codificación necesarias para construir corrientes y mensajes.
Parte 8: Soporte de la comunicación por Red para el intercambio de mensajes
En esta parte se especifican los servicios de comunicación y los protocolos de capa superior,
necesarios para apoyar un ambiente de red y la comunicación entre los usos de DICOM, según
lo especificado en la parte 4, 5, 6, y 7. Estos servicios y protocolos aseguran que la comunicación
entre los diferentes usos de DICOM se realice de una manera eficiente y coordinada a través
de la red.
Esta definición de servicio en la capa superior especifica el uso del protocolo de capa superior de DICOM utilizando los protocolos de transporte TCP/IP. El protocolo de comunicación
TCP/IP mencionado en la parte 8 es el protocolo de fines generales que no se detalla en el
estándar DICOM.
13
Parte 9: Soporte de la comunicación punto a punto para el intercambio de mensajes (retirado)
Esta parte ha sido retirada del estándar DICOM. Éste especificaba la comunicación punto
a punto que utilizaba el conector de 50 contactos tal y como lo definı́a ACR-NEMA. Ya no
hay ninguna necesidad de consultar esta parte excepto por razones históricas, o si se da la
circunstancia de encontrar un dispositivo antiguo de los años 80 que aún tenga este tipo de
conexión.
Parte 10: Medio de almacenamiento y formato de archivos para intercambio de
datos
En esta parte del estándar se especifica un modelo general para el almacenamiento de
la información médica y la proyección de imagen en medios desprendibles. El propósito de
esta parte es proporcionar una estructura general, permitiendo el intercambio de los varios
tipos de imágenes médicas y de información relacionada en una amplia gama de medios de
almacenamiento fı́sico.
Esta parte define algunos conceptos de almacenamiento de medios:
1. Método para identificar un sistema de archivos en un solo medio
2. Método para nombrar un archivo de DICOM dentro de un sistema de ficheros especı́fico
Parte 11: Perfiles de aplicación para medios de almacenamiento
Esta parte del estándar determina los subconjuntos especı́ficos de uso del estándar DICOM
al cual la puesta en práctica puede exigir conformidad. Estos subconjuntos especı́ficos de uso
serán referidos como perfiles de uso en esta sección. Tal declaración de la conformidad se
aplica al intercambio operable de imágenes médicas y de la información relacionada sobre
los medios de almacenamiento para las aplicaciones clı́nicas especı́ficas. Éste se guı́a por la
estructura general que ha sido definida en la parte 10 para el intercambio de varios tipos de
información sobre medios de almacenamiento.
La estructura DICOM y el diseño del mecanismo del perfil hace que se realice un intercambio directo entre la extensión del objeto de la información, las clases adicionales y los
nuevos medios.
Parte 12: Formatos y medios fı́sicos para el intercambio de datos
En esta parte se facilita el intercambio de la información en los ambientes médicos especificando:
14
1. Una estructura para describir la relación entre el modelo del almacenamiento de los
medios, los medios fı́sicos especı́ficos y los medios del formato
2. Caracterı́sticas fı́sicas especı́ficas de los medios y formatos asociados.
Parte 13: Soporte de comunicación punto a punto para gestión de la impresión
(retirado)
Esta parte se ha retirado del estándar. Especificaba los servicios y los protocolos usados
para señalar la comunicación punto a punto de los servicios de la administración de impresión
de las imágenes médicas.
Parte 14: Éstandar para la función en escala de grises
En esta parte se especifica una función estandarizada de la exhibición constante de las
imágenes en escala de grises. Esta función proporciona los métodos para calibrar un sistema
de visualización particular con el fin de presentar imágenes constantemente en diversos medios
de exhibición (por ejemplo, monitores e impresoras).
La función de exhibición elegida se basa en la opinión visual humana. La sensibilidad
humana del contraste del ojo no es lineal dentro de la gama de luminancia de los dispositivos
de exhibición. Este estándar utiliza el modelo de Barten [4] del sistema visual humano.
Parte 15: Perfiles de seguridad
En esta parte se especifica los perfiles para la administración de seguridad y los sistemas
que lo puedan conformar. Los perfiles de administración para la seguridad del sistema son
definidos refiriéndose a los protocolos estándares desarrollados, tales como DHCP, LDAP,
SSL, TLS e ISCL. Los protocolos de seguridad pueden utilizar técnicas de seguridad como
llaves públicas y “tarjetas elegantes”. El cifrado de datos puede utilizar varios esquemas
estandarizados de cifrado de datos.
Esta parte no trata de aplicaciones en cuanto a las polı́ticas de seguridad. El estándar
proporciona solamente los mecanismos que se pueden utilizar para poner polı́ticas de seguridad en ejecución con respecto al intercambio de los objetos DICOM. Es responsabilidad del
administrador local establecer polı́ticas apropiadas de seguridad.
Parte 16: Recurso para la búsqueda del contenido
Esta parte del estándar DICOM especifica:
Las plantillas para la estructura de documentos de los objetos de información DICOM.
Los sistemas de términos cifrados para el uso de objetos de información.
15
Un léxico de términos que está mantenido y definido por DICOM.
Traducciones especı́ficas de términos cifrados para cada paı́s
Parte 17: Expansión de la información
En esta parte del estándar DICOM se especifican algunos anexos que contienen diferente
información y normativos para dar una mayor expansión a la documentación del estándar.
Parte 18: Acceso a la Web por objetos persistentes de DICOM
Esta parte del estándar DICOM especifica los medios por el que se hace una solicitud a
los objetos persistentes de DICOM, se puede expresar como una petición HTTP que incluya
un identificador de un objeto persistente especı́fico de DICOM.
La petición también especifica el formato del resultado que se devolverá en respuesta a la
petición.
Los parámetros de consultas URL según lo define el estándar es suficiente para un servidor
HTTP, para actuar a la medida de la clase SCU (Clase de Servicio del Usuario) solicita un
objeto apropiado SCP (Clase de Servicio del Proveedor).
16
Capı́tulo 2
PACS (Picture Archiving and
Communication Systems)
Un Sistema de Comunicación y Archivo de Imágenes o PACS (por sus siglas en inglés)
es un sistema que almacena, imprime y transfiere imágenes de diferentes equipos médicos
(Tomógrafos, resonancias, rayos X, ultrasonidos, etc.) e informes de procedimientos de diagnóstico. También permite la manipulación digital de imágenes, garantizando la calidad de
acceso para una mayor efectividad a la hora de hacer diagnóstico. Por medio de esta red de
comunicación estos archivos se transmiten hacia los servidores que son los que distribuyen los
archivos a estaciones de trabajo donde le permite a los médicos efectuar una revisión.
Los PACS se han convertido en una parte esencial en los departamentos de imaginologı́a
de un Hospital. entre las ventajas con respecto a la manera tradicional de adquisición y
administración de archivos médicos se cuentan:
Control de acceso a los archivos médicos, con lo cual un buen número de especialistas
pueda evaluar las imágenes con determinadas restricciones sobre éstas.
Almacenamiento en una extensa base de datos que permite una mejor administración
de los archivos. Ası́mismo, el procedimiento resulta más económico por el ahorro en las
placas de impresión que eran necesarias para visualizar las imágenes.
2.1.
Arquitectura
La arquitectura de un PACS consiste en un servidor central que contiene una base de
datos de imágenes. Este servidor está conectado a uno o más clientes vı́a LAN o WAN para
proporcionar y/o utilizar imágenes. Los clientes de las estaciones de trabajo pueden usar
periféricos locales para explorar las imágenes dentro del sistema. En la figura 2.1 se presenta
17
el esquema general de un PACS, el cual está estructurado de acuerdo a su función en los
siguientes componentes:
Visualización Este componente del PACS tiene un grupo de equipos, que presentan la información al usuario. De acuerdo a la información que manejan los equipos, éstos se
pueden dividir en:
a. Visualización de imágenes. Esta parte cuenta con equipos especializados de visualización de
imágenes, que cumplen caracterı́sticas especı́ficas para mejorar su evaluación, y facilitar
un mejor diagnóstico. Los equipos de visualización son de alta resolución, deben contar
con software especializado para el tratamiento y manipulación de las imágenes, y dar un
espacio para poder guardar las evaluaciones y análisis dados por los médicos. El PACS,
a su vez, debe ser capaz de transmitir con facilidad las imágenes a múltiples monitores
para su manejo y control
b. Administración. Este módulo comprende los computadores con software especializado para
el control y administración de los diferentes departamentos que hacen uso del PACS.
Adquisición El módulo de adquisición esta compuesto de un dispositivo fisico que realiza
la adquisición y un computador que maneja todo el proceso. Este componente tiene
interconectados los diferentes equipos de adquisición de imágenes con el servidor.
Almacenamiento Este módulo integra los componentes tanto de software como de hardware, que permiten archivar los archivos DICOM. Para ello tienen una buena capacidad
de almacenamiento y buen desempeño para administración de archivos DICOM.
Infraestructura de interconexión Este componente conecta las partes mencionadas anteriormente proporcionando una eficaz comunicación entre ellas.
2.2.
Modelo de comunicaciones
Para la comunicación en red, el estándar DICOM, por medio de su arquitectura de capas
permite la interconexión de computadores con diferentes sistemas operativos, utilizando protocolos de comunicación. Cada capa cumple con una función especı́fica que permite manejar
tareas como la comunicación entre máquinas-máquinas y máquinas-computadores. Para iniciar una comunicación, los diferentes dispositivos deben utilizar el mismo protocolo en cada
18
Almacenamiento
Adquisición
Sistema de
interconexión
kldjfkfkfkoghk
kfkfkfgkg363
flglgpgp...
Visualización
Figura 2.1: Esquema de un PACS
19
capa, y garantizar que su relación con los demás equipos sea válida. DICOM utiliza para la comunicación en red los protocolos TCP/IP (Transmisión Control Protocol/Internet Protocol)
y los propuestos por ISO/OSI (Internacional Standard Organización/Open Systems Interconnection), permitiendo al PACS utilizarlos en las capas inferiores de manera transparente, y
en las capas superiores definir sus propios protocolos para realizar el transporte de archivos
DICOM de forma eficiente. La estructura de DICOM para las comunicaciones funciona como un proceso distribuı́do. Un sistema distribuı́do está formado por dos o más procesos que
comparten información. Un conjunto de procesos distribuı́dos actuando juntos proporcionan
servicios para diferentes entornos. Antes de que las partes inicien la comunicación y transmisión de archivos, se deben definir y establecer unas reglas para cada componente de la
comunicación. Éstos tienen que estar de acuerdo en el papel (rol) que cada uno desempeñará,
tener una visión de la información que se manejará y seleccionar las operaciones que cada
parte realizará.
En la arquitectura cliente-servidor de DICOM, el papel de cada parte debe ser definido
como cliente o como servidor, las cuales se describirán más adelante en más detalle. La relación
define qué parte y bajo qué condición toma la iniciativa el proceso. En muchos casos los clientes
inician el proceso, pero a veces lo hace el servidor.
Tanto el cliente como el servidor tienen que ser capaces de emitir peticiones a los servicios de menor nivel. Los servicios de menor nivel tienen como función llevar el intercambio
entre las partes y están ocultos para el dominio de la aplicación del cliente o del servidor.
La parte que solicita los servicios es el usuario del servicio (service user). La contraparte
corresponde al proveedor del servicio (service provider). Ambas partes pueden tener distintas implementaciones, pero comparten el mismo conocimiento sobre cómo se intercambian
los datos (protocolo) y tienen la misma interfaz lógica (formato de petición) entre sı́. Ambas
partes deben determinar cómo viene representada la información en el formato de bit/byte.
El servidor es el que determina en qué formato se transfiere la información y la convierte a
la representación esperada por el dominio de la aplicación. Después del intercambio, la información presentada a los procesos que la utilizan es igual en ambas partes, independientemente
de cómo fuera intercambiada.
El intercambio fı́sico entre los proveedores del servicio se realiza vı́a red. Cada mecanismo
tiene su propia forma de manejar el conocimiento de la representación. La figura 2.2 presenta
el esquema general de un proceso distribuı́do con los conceptos evaluados anteriormente.
Teniendo en cuenta que el estándar DICOM tiene la limitación de que en el proceso de
compartir archivos, el servidor sólo puede recibir la petición de un cliente a la vez, se hace uso
de diferentes protocolos de comunicación, que unidos con el estándar DICOM logran aliviar
esta limitación.
En el caso de ISO/OSI, DICOM utiliza los servicios de las primeras 6 capas, además de los
elementos de servicio OSI para la manipulación de asociaciones (ACSE).Para el caso TCP/IP,
especifica un protocolo de capa superior DUL (DUL: DICOM Upper Layer). DICOM especifica
20
PROCESO DISTRIBUIDO
CLIENTE
Servicio de usuario
Proveedor de
servicio
RELACION
SERVIDOR
REPRESENTACION
FROMATO DE TRANSFERENCIA
Servicio de usuario
Proveedor de
servicio
INTERCAMBIO FISICO
Figura 2.2: Modelo de un proceso distribuı́do
21
la forma de comunicación a través de asociaciones, estableciendo un ambiente cooperativo
entre varias entidades en donde algunas juegan un papel de cliente, otras de servidor y otras
de ambos, definiendo ası́ un esquema Cliente/Servidor. Las normas que se deben seguir para
cliente y servidor, se desarrollan con las especificaciones del servicio deseado, para el nivel
de compatibilidad de uso. DICOM establece dos tipos de servicios básicos: Clase de Servicio
de Usuario (Servicie Class User: SCU) que cumple con las funciones de cliente, y la Clase
de Servicio de Proveedor (Servicie Class Provider: SCP) el cual cumple con las funciones
de servidor. En ambos casos se definen las reglas que cada uno tendrá cuando se hace la
asociación.
2.2.1.
Servidores
Una parte fundamental en un PACS son los servidores como sistemas de software y hardware, que presentan la caracterı́stica de trabajar permanentemente esperando solicitudes de
los clientes que están conectados a él. Estos sistemas por lo general son implementados en
poderosos computadores con gran capacidad de almacenamiento, y con una alta capacidad
de procesamiento, para poder atender las solicitudes y organizar la información que le llega. El servidor cumple con las funciones especı́ficas dentro del PACS que se presentadan a
continuación:
Almacenar, clasificar y exportar los diferentes archivos DICOM.
Establecer conexiones con las estaciones de trabajo.
Permitir que los médicos accedan a una gran cantidad de datos médicos desde cualquier
estación de trabajo para la consulta y evaluación de éstos.
Para el diseño de los servidores hay que tener en cuenta ciertas caracterı́sticas comunes
que podrán ser implementadas de acuerdo a las necesidades del usuario. Entre las principales
caracterı́sticas que debe tener un servidor son:
Software del Servidor establece el algoritmo de control y administración de los archivos
DICOM. Aquı́ se define la manera de clasificar los archivos para que los clientes pueden
localizarlos fácilmente, esto se puede hacer por medio de las caracterı́sticas comunes de
los archivos DICOM, como por ejemplo el ID del paciente.
Hardware del Servidor En esta caracterı́stica se evalúa la capacidad de los componentes
fı́sicos serán administrados por el software del servidor. Este análisis se efectúa de acuerdo a las propiedades del PACS, como por ejemplo la cantidad de imágenes que contendrá,
los diferentes clientes que se conectarán a éste, la velocidad de transferencia que se requiere, y los servicios adicionales que se desean en el PACS.
22
Requerimientos de red Esta caracterı́stica se establece de acuerdo a la aplicación final del
PACS, en el cual se tendrá en cuenta si será de uso local o tendrá enlaces a servidores
WEB, o estaciones de trabajo que estén ubicadas fuera del espacio fı́sico donde se
implementará el PACS. También en esta caracterı́stica se tiene en cuenta la velocidad
de transferencia de los diferentes archivos, y el diseño de la arquitectura de la red.
Seguridad Se establece definiendo diferentes tipos de usuarios, los cuales tendrán jerarquı́a
sobre la forma de consultar los archivos DICOM y su manipulación, esto con el fin de
mantener ciertos datos anónimos del paciente y la administración de los archivos.
2.2.2.
Estaciones de Trabajo
Otra parte fundamental en los PACS son las estaciones de trabajo, por medio de las cuales
los médicos interactúan directamente con los PACS, y pueden utilizar las múltiples ventajas
de las estaciones para hacer un trabajo más productivo. Las estaciones de trabajo de acuerdo
a la función que realizan dentro del PACS se pueden dividir en tres tipos, que son descritos a
continuación.
Estaciones de diagnóstico
Las estaciones de diagnóstico están conformadas por equipos especializados en los cuales
está instalado un software que permite ver de una manera clara las imágenes DICOM junto
con los datos asociados a ésta. Estas estaciones de diagnóstico fueron desarrolladas con el fin
de reemplazar las consolas de los equipos de adquisición de imágenes, que no permitı́an hacer
una evaluación de la imagen. Por medio de las estaciones de trabajo se cuentan con diferentes
herramientas que permiten la manipulación y tratamiento de la imagen.
De acuerdo con las necesidades y el campo de operación de las estaciones de diagnóstico,
se pueden desarrollar estaciones con un grado de complejidad mayor, que permitan reconstruir
imágenes en 3D a partir de un grupo de imágenes de cortes axiales. También en estas estaciones
de trabajo los médicos pueden elaborar su diagnóstico y adjuntarlo a la imagen como uno de
los datos asociados del archivo DICOM. Algunas estaciones de diagnóstico vienen integradas
con sistemas de impresión de las imágenes en placas.
Las estaciones de diagnóstico también presentan una gran ventaja a la hora de evaluar la
imagen, pues los médicos pueden relacionar ésta con diferentes imágenes que le hayan sido
tomadas al paciente y reconstruir su historial.
Estaciones de consulta
Las estaciones de consulta incluyen software que ha sido instalado para la administración
de horarios, equipos, etc. Estas estaciones ayudan de una manera apropiada a distribuir las
citas en un hospital, y asignar los diferentes equipos y médicos. Estas estaciones por lo general
23
Figura 2.3: Ejemplo de una estación de diagnóstico
están conectadas con los sistemas HIS (Sistema de Información de un Hospital), permitiendo
también administrar los permisos en el PACS y dando la posibilidad de mantenerlo integrado
con los otros sistemas del hospital.
2.2.3.
Estaciones para la adquisición de imágenes
Son estaciones que integran las diferentes máquinas de captura con el PACS por medio
de computadores especializados en la adquisición de los archivos DICOM, mediante una interfaz para la transmisión. En algunos equipos médicos es necesario que los computadores
contengan tarjetas de adquisición especiales, que permiten acomodarse a los requerimientos
de transmisión de las máquinas.
Las estaciones de adquisición de imágenes también son las encargadas de recopilar las
imágenes que toman los diferentes equipos y transportarlos al servidor del PACS, recibiendo
una respuesta del servidor después de la transmisión donde establezca que fue realizada con
éxito o no, para tomar decisiones sobre la misma.
2.2.4.
Sistema de interconexión
Finalmente, este módulo Conecta las diferentes partes del PACS para su correcto funcionamiento; de acuerdo a las necesidades fı́sicas de conexión entre las partes, se diseña la red
apropiada para que soporte el transporte de los diferentes archivos DICOM. Aquı́ se define la
necesidad de que el PACS tenga comunicación fuera del centro hospitalario, con otros centros
24
PACS
paciente 1....
paciente 2....
id....123456..
numero de cita
Figura 2.4: Ejemplo de una estación de consulta
Figura 2.5: Ejemplo de una estación para adquisición de imágenes
25
o con otras entidades como institutos de investigación. Algunas caracterı́sticas en las redes de
conexión de un PACS son:
1. LAN (RED DE AREA LOCAL)
Ethernet 10Mbps
Fast Ethernet 100Mbps
Gigabit Ethernet 1Gbps
2. itemizeWANRED DE AREA AMPLIA
DS-0 (56 Kbps) DS-1 (T1, 1.544 Mbps)
DS-3 (45 Mbps) ATM (155-622 Mbps)
Estas redes fı́sicamente pueden ser implementadas por medio de cable blindado, fibra
óptica, ADSL, red inalámbrica de alta velocidad u otras.
26
Capı́tulo 3
Diseño de un PACS
En el diseño de un PACS se debe tener en cuenta ciertos requisitos que son necesarios para
cumplir con las caracterı́sticas generales de éste, como definir los componentes principales
(servidor, cliente) y hacer que éstos cumplan con las funciones mı́nimas para poder obtener
un sistema de visualización y transporte de archivos médicos. El diseño del PACS que se
llevará a cabo en este proyecto pretende dar solución a la problemática de la visualización
y transporte de archivos médicos en el Centro de Telemedicina de la Universidad Nacional
que cuenta con una cantidad considerable de estos archivos. También se cuenta con diferentes
equipos e infraestructura de red, los cuales serán utilizados para el soporte del PACS, tal
como se muestra en la figura .
Aunque en este proyecto se diseñará un modelo bajo la estructura fı́sica que existe actualmente en el Centro de Telemedicina, cabe aclarar que éste es un diseño facilmente adaptable,
especı́ficamente en los departamentos de imagenologı́a hospitalarios, sin tener necesidad de
realizar cambios mayores.
En la figura 3.1, se muestran los diferentes dispositivos y la arquitectura de red sobre la
que se diseñará el PACS. En esta figura se presenta una arquitectura dividida en partes de
acuerdo a su funcionamiento.
Firewall Un firewall es un dispositivo en el cual está implementado un software especializado de seguridad que permite proteger la red interna de la Universidad de accesos no
autorizados que provengan de redes externas. En el caso especifico del PACS, el firewall
permite mantener protegida la información alojada en el servidor para que no sea vista
desde las redes externas a la Universidad.
27
RED UNIVERSIDAD
NACIONAL
INTERNET
SERVIDOR (1)
FIREWALL
SWITCH
ACCESS POINT
ESTACIONES DE TRABAJO (2)
ESTACIONES DE TRABAJO (4)
Figura 3.1: Esquema del PACS implementado en el proyecto
28
Switch Son dispositivos que permiten la interconexión de diferentes redes, para el caso del
PACS, existe un switch que permite la comunicación de los equipos del Centro de
Telemedicina con la red general de la Universidad Nacional. También existe un switch
que es el encargado de interconectar las estaciones del trabajo de escritorio con los demás
dispositivos de la red general del PACS, garantizando principalmente la comunicación
con el servidor.
Access Point Este dispositivo cumple con funciones similares a las del switch, pero provee
acceso a los equipos por medio de tecnologı́a inalámbrica; en el PACS es el encargado de
comunicar aquellas estaciones de trabajo que cuentan con tarjetas inalámbricas para la
comunicación remota con el servidor, en el caso del Centro de Telemedicina las estaciones
que cuentan con estas tarjetas son los equipos portátiles.
Servidor Es un computador en el cual está instalada una aplicación que permite almacenar y
administrar los diferentes archivos médicos al conjunto de equipos que los soliciten. En el
Centro de Telemedicina existen computadores con gran capacidad de almacenamiento
en las cuales se instalará el software del servidor para que administre los diferentes
archivos médicos. Las caracterı́sticas del servidor utilizado en el PACS son:
1. Servidor Sun Microsystems SunFire V20z, con
2. dos procesadores AMD Opteron de 64 bits, a 2.4 Ghz
3. 4GB de memoria RAM
4. Disco duro de 80 GB
5. Storage Sun Microsystems StorEdge 3511, que cuenta con 12 discos duros de 250
GB con velocidad de procesamiento de 7500 rpm para un total de 3.0 TB y transmite por un puerto dual a una velocidad serial ATA de 1.5 GB/s.
Estaciones de trabajo Las estaciones de trabajo son computadores en los cuales se encuentra instalada una aplicación que permite visualizar la información contenida en los
archivos médicos que pueden estar localizados en el disco local de la estación o en el
servidor, por medio de las estaciones de trabajo se pueden evaluar los archivos para
luego transferirlos al servidor para que sean almacenados. Dependiendo de las tarjetas de comunicación con las que cuenta cada estación de trabajo, éstas pueden estar
conectadas al servidor por medio de un switch, o del access point.
3.1.
Diseño del software para el SERVIDOR
En el diseño del servidor para la construcción del PACS, se tendrán en cuenta los equipos
con los que cuenta el Centro de Telemedicina, con la caracterı́stica de poder almacenar una
29
gran cantidad de archivos, y cuya comunicación es eficiente con las demás entidades. Para la
implementación de la aplicación se desarrollarán diferentes esquemas y diagramas que ayudan
a entender el funcionamiento del servidor.
3.1.1.
Diseño de la aplicación
Para el diseño de la aplicación se ha desarrollado un diagrama de paquetes UML que
se muestra en la figura , el cual permite por medio de la definición de módulos visualizar la
estructura del servidor y cómo se desarrolla la aplicación de una manera lógica. A continuación
se describen los diferentes módulos que conforman el diagrama de paquetes del servidor y la
función que cada uno de estos desempeñan.
MODULO DE
RECUPERACION
ALMACENAMIENTO
FISICO
MODULO DE
COMUNICACION
MODULO DE
ALMACENAMIENTO
RED
Figura 3.2: Esquema que representa el diseño de la aplicación del servidor
Módulo de comunicación Este módulo es el encargado de establecer la comunicación del
servidor con la Red general del PACS. Por medio de este módulo se transmiten los
archivos DICOM hacia las estaciones de trabajo para ser visualizadas, o en el caso
contrario se pueden transmitir archivos desde las estaciones hacia el servidor donde se
podrán almacenar y administrar. En el caso de este proyecto la dirección de prestación
estará dada por el puerto 4006, pues es el más utilizado en la transmisión de archivos
DICOM. También cabe aclarar que para la implementación en una infraestructura donde
este puerto esté ocupado, se podrá utilizar un puerto diferente sin que esto cambie el
diseño original del PACS.
30
En este módulo se da la caracterı́stica de los paquetes IOD que son transportados a
través de la red y como serán codificados para ser enviados a las estaciones de trabajo
que han generado la comunicación.
Módulo de recuperación Este módulo está encargado de interconectar los módulos de comunicaciones y almacenamiento. En este módulo verifica que la petición que viene a
través de la red sea de una estación de trabajo, y la definición de contexto especificada
en la comunicación para que ésta pueda ser procesada. Por medio del módulo de recuperación los archivos son transmitidos desde el servidor a la estación para su posterior
visualización, ası́ como también se da acceso para que los archivos DICOM provenientes
de la estación puedan ser almacenados y administrados por el servidor. Por medio de
este módulo se garantiza que las comunicaciones sean transparentes y que para cada
petición que llegue al servidor se genere una respuesta determinada.
Módulo de almacenamiento Este módulo es el encargado de administrar los diferentes
archivos DICOM contenidos en el servidor. Por medio del módulo de recuperación son
transportados los archivos DICOM provenientes de las estaciones de trabajo para el
módulo de almacenamiento, y éste a su vez tiene la capacidad de administrar y almacenar
estos archivos.
Este módulo también es el encargado de buscar los diferentes archivos DICOM que
sean solicitados por los usuarios y entregarlos al modulo de comunicación, o generar un
mensaje en el caso de que el archivo no exista dentro del servidor.
3.1.2.
Diagrama de flujo de la aplicación del servidor
En la figura se muestra el diagrama de flujo utilizado para la elaboración del algoritmo
que funcionará en el servidor del PACS. En primera instancia se tiene definido la dirección
de prestación como el puerto 4006, el cual se verificará por medio de un ciclo indefinido hasta
que se genere una solicitud de objetos SOP1 por cualquier usuario. En el momento en que
ocurre una petición desde las estaciones de trabajo, se entra a un nuevo ciclo en el cual se
presenta un argumento que evalúa el formato de petición en el que viene dada la solicitud de
clase SOP, en este caso si el formato de petición coincide con el contexto de servicio que se ha
especificado por la comunicación se procede al siguiente paso, de manera contraria se genera
un mensaje en el cual informa que el mensaje de petición no es válido.
En el siguiente paso se evalúa si la petición que ha llegado hasta este punto desea obtener
un IOD2 del servidor o desea almacenarlo en el servidor. Para ello puede tomar la opción A
ó la B como se muestra en la figura .
1
2
Service Object Provider
Information Object Definition
31
INICIO
1
Dirección de prestación ==4006
No
Direccion de prestacion
existe
solicitud de objetos SOP ?
SI
Mensaje: "El formato de peticion
no es valido"
No
formato de petción
==
contexto de servicio ?
SI
SI
No
Adquirir IOD del servidor
B
A
Figura 3.3: Diagrama de flujo del algoritmo del servidor
32
Cuando el contexto de servicio viene definido para seguir la opción A se sigue el diagrama
de flujo presentado en la figura en el cual la petición viene definida para almacenar un IOD
en el servidor para que éste lo contenga y lo pueda administrar. Procede a almacenar estos
IOD en el servidor y espera un mensaje que se indique que el IOD pudo ser almacenado o
generó problemas en su almacenamiento y no se pudo hacer efectiva esta tarea. Después de
que genera los mensajes retorna al inicio del algoritmo donde entra de nuevo al ciclo en espera
de solicitud desde las estaciones.
A
almacenar IOD
del l servidor
No
almacenamiento IOD
fue correcto ?
Mensaje: "el IOD no se ha podido almacenar
en ell servidor"
Si
Mensaje: "El IOD ha sido almacenado
correctamente"
1
1
FIN
Figura 3.4: Diagrama de flujo del servidor opción A
33
Si el contexto de servicio tiene definido una estructura en la cual se quiera adquirir un
IOD que contenga el servidor para ser enviado a través de la red, se sigue el diagrama de
flujo representado por la opción B y mostrado en la figura en el cual se encuentra un ciclo de
búsqueda del archivo IOD solicitado dentro del servidor, para lo cual si lo encuentra lo envı́a
a la estación de servicio que lo solicita, en caso contrario genera un mensaje en el que indica
que el IOD solicitado no se encuentra en la base de datos del servidor.
B
No
IOD solicitado
existe en el servidor
Mensaje: "el servidor no contiene el
IOD solicitado"
Si
Transfiera IOD al cliente que la solicita
1
1
FIN
Figura 3.5: Diagrama de flujo del servidor opción B
3.2.
Estación de trabajo
Las estaciones de trabajo contienen una aplicación que permite visualizar los diferentes
archivos DICOM, ası́ como también tienen la capacidad de enviar archivos al servidor. Para
el diseño de esta aplicación se plantea un esquema de paquetes UML, y un diagrama de flujo
muestra los pasos que sigue la aplicación, de acuerdo al evento que sea generado.
34
3.2.1.
Caracterı́sticas fı́sicas
En este PACS se consideran dos tipos de estaciones que se diferencian en su modo de
comunicación con el servidor, a pesar de ello estas cumplen con las mismas funciones. La
comunicación de cada estación de trabajo esta regida de acuerdo a la tarjeta de red que
contenga cada equipo. Las estaciones presentan las siguientes caracterı́sticas:
Estaciones de trabajo con conexión al PACS por medio del switch
1. Procesador Pentium IV a 2.4 GHz
2. 512 MB de memoria RAM
3. Disco Duro de 40 GB
Estaciones de trabajo con conexión al PACS por medio del Access Point
1. Procesador Pentium III mobile a 467 MHz
2. 256 MB de memoria RAM
3. Disco Duro de 20 GB
3.2.2.
Diseño de las estaciones de trabajo
El diseño de la aplicación que se encuentra en las estaciones de trabajo puede ser representada por el esquema de paquetes UML mostrado en la figura , el cual contiene diferentes
módulos de acuerdo a su función y están interconectados de una manera lógica, para cumplir
con la funciones de visualizar archivos según lo especifique el usuario a través de la interfaz
gráfica (GUI), ó para transmitir archivos al servidor para que éste los almacene.
Módulo de visualización Este módulo es el encargado de transmitir las respuestas por
medio de la interfaz gráfica de usuario (GUI) de las solicitudes o eventos generados por
el usuario. Este módulo evalúa los eventos que se generan y los ubica en el paso que
deben seguir.
Módulo de consulta En este módulo se reciben las solicitudes que han sido procesadas por
el modo de visualización y se evalúan que contengan el formato de contexto establecido
en la comunicación. Si el formato de contexto no cumple las especificaciones con el
contexto de servicio se generan mensajes de error, de caso contrario se evalúa para
saber si éste desea adquirir una imagen desde el servidor, desde el disco local, ó desea
enviar una imagen a través de la red al servidor.
35
COMUNICACION
ALMACENAMIENTO
{}
{}
CONSULTA
VISUALIZACION
interfaz gráfica
de ususario
Figura 3.6: Esquema UML de la estación de trabajo
36
Módulo de comunicación Se sigue al módulo de comunicación cuando la solicitud requiere
mantener una comunicación con el servidor. Según lo definido en el contexto de servicio
se decide en este módulo si la comunicación que se desea iniciar es para adquirir un
archivo del servidor, o se hace para enviar un archivo.
Este módulo también devuelve al módulo de consulta un resultado de acuerdo a la tarea
que haya realizado, pueden ser mensajes que permiten verificar el estado del archivo que
se transmitió, ası́ como también puede contener el archivo que va a ser visualizado en la
interfaz gráfica, o un mensaje en el que se especifica que el archivo no fue encontrado.
Módulo de almacenamiento El módulo de almacenamiento se ejecuta cuando la solicitud
que hace el usuario es adquirir una archivo del disco local para ser visualizado en la
interfaz gráfica. En este módulo también se envı́a un mensaje que especifica que el
archivo no existe en el disco local, ó se transfiere la imagen solicitada al módulo de
visualización.
3.2.3.
Diagrama de flujo de la aplicación de la estación de trabajo
En la figura se muestra el diagrama de flujo del algoritmo que pertenece a la estación de
trabajo, por medio de éste definimos los pasos lógicos que seguirá esta aplicación. Primero se
tiene un ciclo indefinido hasta que ocurra un evento de comunicación por parte del usuario,
cuando se genera este evento se pasa a comprobar si el formato de contexto de la solicitud que
se produjo en el evento coincide con el formato de contexto establecido para la comunicación,
de caso contrario se genera un mensaje en el cual se especifica que esta solicitud no coincide
con el formato de contexto.
Cuando se cumple con la condición del formato de contexto, se sigue con un ciclo de
condición en el cual se evalúa el contexto de servicio para saber a dónde está dirigida la
solicitud, si al servidor o al disco local, si la solicitud está dirigida al servidor se evalúa si ésta
tiene como fin enviar un archivo o adquirirlo del servidor.
Cuando el formato de contexto3 está dirigido hacia el disco local (figura ) va directamente
al disco para la adquisición del archivo y se entra en un ciclo de espera de un resultado para ser
comunicado al usuario a través de la interfaz gráfica (GUI). Cuando se encuentra el archivo en
el disco local se transfiere a la GUI para ser mostrado, en caso contrario se envı́a un mensaje
en el que se especifica que el archivo no ha sido encontrado.
Cuando el formato de contexto contiene la información para el envı́o de un archivo al
servidor (figura ), se entra en un ciclo de espera para verificar que la acción haya sido realizada.
Si el archivo fue almacenado en el servidor éste envı́a un mensaje de acción realizada, en modo
contrario se muestra un mensaje en el que se especifica que el archivo no pudo ser almacenado
en el servidor. Estos mensajes también son mostrados al usuario por medio de la GUI.
3
la petición que el cliente hace al servidor de acuerdo a DICOM
37
INICIO
1
esperando solicitud del usuario
No
se genera evento de
comunicacion en la GUI ?
Si
Mensaje: "Formateo de contexto
incorrecto"
No
formato de peticion
==
formato de contexto ?
Si
No
Si
solicitud IOD
del servidor
Si
No
solicitud de IOD
C
A
B
Figura 3.7: Diagrama de flujo de una estación de trabajo
38
A
solicitar servicio al
disco local
No
Si
IOD solicitado existe ?
mostrar en la GUI:"archivo no encontrado"
visulizar IOD
en la GUI
1
1
FIN
Figura 3.8: Diagrama de flujo de una estación de trabajo opción A
39
B
enviar IOD
2
No
Respuesta del servidor ?
Si
procesar mensaje del servidor
Si
No
mensaje= "el IOD se a lamacenado
correctamente " ?
mostrar en la GUI:"El archivo ha sido
almacenado correctamente"
mostrar en la GUI:"El archivo no ha sido
almacenado"
1
1
FIN
Figura 3.9: Diagrama de flujo de una estación de trabajo opción B
40
En el caso en que se quiera adquirir una imagen que se encuentra en el servidor (figura ),
se procede a enviar la solicitud al servidor para que recupere y transfiera el archivo solicitado
y se entra en un modo de espera de una respuesta. Si el archivo fue encontrado se transfiere
a la estación de trabajo para que sea visualizado en la GUI, en caso contrario se envı́a un
mensaje en el que se especifica que el archivo no existe en el servidor.
3.3.
Sistema de conexión
El sistema de conexión usado para el diseño e implementación del PACS, es el que se
encuentra actualmente en funcionamiento en el Centro de Telemedicina, del cual podemos
mencionar las siguiente caracterı́sticas fı́sicas.
3.3.1.
Caracterı́sticas fı́sicas
Cableado estructurado 100 Mbps
Switch Cisco Catalyst 10/100 Mbps
Access Point Cisco Aironet 1130AG Series IEEE 802.11A/B/G, soporta los protocolos
802.11g y 802.11h, cuenta con una velocidad de transmisión máxima de 54 Mbps, en un
radio de cobertura que va de los 30 a los 122 metros dependiendo de la velocidad de
transmisión
41
C
solicitar servicio al servidor
2
No
Respuesta del servidor ?
Si
procesar mensaje del servidor
No
mensaje= "el servidor no
contiene IOD especificado" ?
Si
visulizar IOD
en la GUI
mostrar en la GUI:"archivo no encontrado"
1
1
FIN
Figura 3.10: Diagrama de flujo de una estación de trabajo opción C
42
Capı́tulo 4
Implementación del PACS
El producto de software desarrollado hará parte de un grupo de aplicaciones que el Centro
de Telemedicina viene elaborando para la tratamiento y procesamiento de imágenes medicas.
este sistema recibira el nombre de CENTELPACS 1 con el cual esta registrado a nombre del
Centro de Telemedicina quien se reserva todos los derechos de uso, utlización, distribución y
copia.
Para la implementación de CENTELPACS se tuvo en cuenta el diseño anteriormente expuesto, y mediante el estudio de diferentes librerı́as se pudo llegar al desarrollo del sistema. En
este capı́tulo se muestra la manera como se desarrolló la aplicación iniciando con la evaluación
de las librerı́as que dan soporte al estandar DICOM y después se muestra cómo se constituye
el servidor y el visor del PACS.
4.1.
Evaluación de las diferentes herramientas para la manipulación del PACS
En la actualidad existen diversas herramientas con funciones especı́ficas para la manipulación de archivos DICOM, entre ellas podemos destacar según su función las bibliotecas de
visualización, de comunicación y aquellas que integran estas dos funciones. Las herramientas
de visualización son bibliotecas que permiten mostrar al usuario el contenido de los archivos
DICOM, tanto los metadatos como la imagen que viene contenida en éste, estas bibliotecas
se implementan en las estaciones de trabajo en la cual la interacción con el usuario se hace de
una manera directa. También existen bibliotecas que están diseñadas con base en el protocolo
de comunicaciones DICOM, y se especializan en el transporte de acuerdo a los atributos que
especifique el cliente, estas bibliotecas cumplen con la función en el PACS de interconectar las
diferentes partes que lo componen (servidor, estaciones de trabajo). En la actualidad existen
1
PACS Centro de Telemedicina
43
herramientas que permiten manejar el módulo de comunicación y de visualización de una
manera integrada.
Podemos encontrar un gran número de herramientas para el manejo de archivos DICOM,
debido a esto se hizo una selección de las bibliotecas más apropiadas para el desarrollo del
sistema, para esto se definieron unos criterios de selección que permiten dar una mejor visión
a la hora de escoger la más apropiada.
Portabilidad portabilidad en los sistemas operativos Microsoft Windows XP, Linux, Mac
OS X.
Documentación
Tipo de licencia la herramienta a evaluar debe ser de código abierto.
Formatos DICOM que soporta
A continuación se describen las herramientas que fueron evaluadas y analizadas en el desarrollo del PACS; estas herramientas presentan diversas funciones que sirven para visualizar,
transportar, recopilar y tratar los diferentes archivos DICOM.
4.1.1.
Biblioteca ITK
ITK (Segmentation & registration ToolKit) es una biblioteca de código libre, utilizada principalmente para la ejecución
del registro y segmentación en las imágenes. ITK está implementado en C++, y usa la herramienta CMAKE para manejar el proceso de compilación. Además presenta un proceso
envolvente que permite interpretar los lenguajes de programación como Tcl, Java, Python.
Figura 4.1: Logo ITK
ITK implementa una biblioteca llamada GDCM. Esta biblioteca de código abierto fue
desarrollada por CREATIS Tim, y se distribuye con licencia LPGL. La librerı́a GDCM sólo
implementa la parte 5 del estándar DICOM, lo cual hace que ITK sea limitado y no acepte
ningún formato comprimido de DICOM; entre sus principales aplicaciones están las de leer
y escribir imágenes DICOM sin compresión, de manera individual y por series. Esta librerı́a
cuenta con una amplia documentación que permite un buen análisis de ésta.
4.1.2.
Biblioteca VTK
Esta herramienta es de uso libre y puede ser utilizada en diferentes sistemas operativos,
también cuenta con la documentación necesaria para el desarrollo de aplicaciones. Aunque
44
VTK (Visualization ToolKit) es un conjunto de librerı́as
que se utilizan para la visualización y el procesamiento de
imágenes, también se usan para la generación de objetos
gráficos 2D y 3D. La biblioteca VTK consta de código abierto y software orientado a objetos. A pesar de ser muy extensas y complejas, las librerı́as se han diseñado de forma que
puedan ser usadas por cualquier lenguaje de programación
orientado a objetos. VTK proporciona un sistema de visualización por software que nos permite, además de poder
visualizar geometrı́a, soportar una amplia variedad de algoritmos de visualización y modelado.
Figura 4.2: Logo VTK
en las últimas versiones se han incluido clases que permitan la visualización de archivos
DICOM, sólo permite la visualización de las imágenes, y no soporta los formatos comprimidos
DICOM,; aún ası́ esta biblioteca se puede usar junto con otras herramientas para suplir todas
las necesidades de los archivos DICOM.
4.1.3.
Biblioteca JDT
JDT (Java Dicom Toolkit) es una biblioteca de desarrollo para archivos DICOM que está implementada totalmente
en JAVA. Con esto, los desarrolladores DICOM pueden beneficiarse de las numerosas ventajas del lenguaje de programación JAVA y desplegarla en applets DICOM, aplicaciones
independientes JAVA y en software del servidor. JDT viene
con una API bien documentada que ha sido diseñada para
hacer que la estructura compleja del estándar DICOM sea
más accesible para los desarrolladores. JDT funciona sobre
JDK 1.1.X y JAVA 2. JDT no es un producto gratuito, pero
cuenta con la ventaja de abrir cualquier tipo de formato
DICOM.
Figura 4.3: Logo JDT
Esta biblioteca presenta las siguientes caracterı́sticas:
Soporte de la parte 10 del estándar DICOM.
Soporte de red DICOM.
Soporte para todas las sintaxis de transferencia no comprimidas y conversiones.
Soporte para formatos RLE y JPEG.
45
Leer y escribir datos DICOM desde InputStreams/OutputStreams.
Esquema de tipos JAVA a tipos DICOM.
Tolerancias en implementaciones DICOM.
4.1.4.
Biblioteca DCMTK
DCMTK es una biblioteca que implementa todas las partes
del estándar DICOM para la comunicación y visualización
de archivos. Esto incluye clases para el examen, la construcción y la conversión de archivos de imágenes DICOM, el
manejo de medios de comunicación autónomos y el envı́o
de imágenes de encubrimiento sobre una conexión de red.
DCMTK incluye el código fuente completo y está escrito en
una mezcla de C ANSI y C++.
Figura
4.4:
DCMTK
Logo
DCMTK ha sido usado en numerosas demostraciones DICOM como: almacenamiento de
imágenes y servidores worklist. Es usado por hospitales y empresas en todo el mundo para una
amplia variedad de propósitos, desde ser una herramienta para pruebas de productos, a ser
un componente básico para proyectos de investigación, prototipos y productos comerciales.
El software DCMTK puede ser usado bajo Windows o una amplia gama de sistemas
operativos Unix que incluyen Linux, Solaris, OSF/1, IRIX, FreeBSD y Mac OS X. Todo lo
necesario para la configuración del workspace y los makefiles son suministrados. Esta biblioteca
tiene diferentes funciones basadas en el estándar DICOM. Las funciones son agrupadas en
carpetas dependiendo de la función que desempeñen. A continuación se describe brevemente
el contenido de los diferentes directorios.
Config: Incluye los archivos.h necesarios para la configuración de DCMTK.
Dcmdata: Contiene funciones para el tratamiento de los datos de los archivos DICOM y
Data Sets.
Dcmimage: Funciones para el tratamiento de los datos de los pixeles de una imagen. Sólo
para imágenes DICOM sin comprimir.
Dcmimgle: Sirven para el tratamiento de la luminosidad de las imágenes.
Dcmjpeg: Son funciones para la compresión/descompresión de imágenes DICOM a JPEG.
Dcmnet: Funciones para el transporte de los archivos DICOM a través de la Red.
46
Dcmpstat: Funciones para el tratamiento de escalas de grises y estados de presentación.
Dcmsing: Para la creación o supresión de una firma digital para un archivo DICOM y su
verificación.
Dcmsr: Para la conversión de documentos DICOM SR (Structured Reporting) a HTML,
XML.
Dcmtls: Para la transmisión segura de archivos DICOM por la Red.
Imagectn: Para el registro de archivos en una base de datos.
Wlistctn: Para implementar un SCP como una Base de Datos.
4.1.5.
Toolkit PIXELMED
PIXELMED es un herramienta para el manejo de archivos
DICOM que está implementada en Java, ésta es de distribución libre; cuenta con diferentes funciones para la manipulación de archivos DICOM como: la lectura y creación de
datos, redes, creación y soporte de base de datos, exhibición de directorios, imágenes, informes, y validación de los
objetos. Una cualidad importante de esta herramienta es
que no depende de ninguna otra herramienta para su funcionamiento normal, y se pueden adherir algunas bibliotecas adicionales para elevar sus funciones, como herramientas libres disponibles de Java para la compresión, XML y la
gestión de base de datos.
Esta herramienta cuenta con una documentación necesaria, para el desarrollo de aplicaciones que contengan las diferentes funciones de esta librerı́a. Además presenta la ventaja
de trabajar con la mayorı́a de formatos DICOM, incluyendo aquellos que se encuentran de
manera comprimida.
4.2.
Implementación de la Estación de Trabajo
En la implementación del visualizador se tuvo en cuenta el análisis de las diferentes herramientas para obtener las librerı́as mas apropiadas que se ajustarán a las necesidades especı́ficas de este proyecto. De esta forma las dos librerı́as que mejor se acomodaban a los
requerimientos del PACS fueron DCMTK y PIXELMED.
47
Con la biblioteca DCMTK se desarrollaron diferentes pruebas y se obtuvieron algoritmos
para la captura de diferentes atributos de los archivos DICOM, pero a la hora de la integración
con otras librerı́as para la visualización surgieron algunos problemas. Estos problemas no
descartan esta librerı́a y serán tratados en trabajos futuros por el Centro de Telemedicina
para componer un visualizador que pueda contar con la velocidad de procesamiento de C++.
La estación de trabajo final fue implementada con la biblioteca PIXELMED, la cual
proporciona diferentes clases para la visualización de los metadatos y la imagen contenidas en
los archivos DICOM. Este sistema se representa en el esquema de paquetes que se muestra en
la figura 4.8, en esta se muestra como se ha desarrollado un paquete llamado co.edu.unal.
telemedicina del cual se desprenden otros paquetes que se describen a continuación, junto
con las clases que contienen.
co.edu.unal.telemedicina
co.edu.unal.telemedicina.comunicacion
ServerConnectionForm
co.edu.unal.telemedicina.visualizacion
MyWindow
+ArbolDeContenido
+contenidoDeAtributos
+Boton anterior
+Boton siguiente
+conectarAlServidor()
+inicializarComponentes()
+ejecutarConsulta()
+cargarImagenDicom()
+AbrirDirectorio()
co.edu.unal.telemedicina.consulta
DicomLoader
+cargarArchivoDicom()
ContenidoDeDirectorio
+vectorDeArchivos
+archivoActual
+directorioValido
+contarArchivos()
+archivoSiguiente()
+validarDirectorio()
Figura 4.5: Esquema UML de paquetes que conforman el visualizador
48
El paquete co.edu.unal.telemedicina.consulta encapsula la clase DicomLoader la cual
cumple con la función de cargar los archivos DICOM, desde el disco local o el servidor, y estructurar los diferentes atributos, para ello utiliza el método cargarArchivoDicom(). Este paquete
también contiene la clase ContenidoDeDirectorio por medio del cual evalúa el contenido de
un directorio DICOM y muestra toda la información contenida en éste.
El paquete co.edu.unal.telemedicina.visualizacion encapsula la clase Mywindow,
por medio de la cual permite visualizar los diferentes atributos del archivo DICOM seleccionado. Para la ejecución de su función la clase MyWindow presenta atributos como botón
anterior, botón siguiente, los cuales son utilizados en el momento de visualizar el estudio de un
paciente. También presenta métodos para ejecutar diferentes funciones como son: cargarImagenDicom(), abrirDirectorio().
El paquete co.edu.unal.telemedicina.comunicacion encapsula la clase ServerConnectionForm, por medio de ésta la estación de trabajo puede conectarse con el servidor del PACS,
para poder descargar y visualizar imágenes contenidas en éste. Para que esta clase cumpla
con esta función posee los atributos como: arbolDeContenido, y contenidoDeAtributos. En
esta clase también se manejan los siguientes métodos: conectarAlServidor(), inicializarComponentes(), ejecutarConsulta().
A continuación se describe de una manera más detallada el funcionamiento de las clases
que contiene el visualizador y la conexión que hay entre cada una de ellas como se muestra
en las figuras 4.9, y 4.7
En el diagrama de la figura 4.8 se muestra como la clase telemedicina.Mywindow extiende
de la clase JFrame, lo cual hace que herede todos sus métodos y por medio de ésta podemos
visualizar y manejar los archivos DICOM, este paquete lo componen las siguientes clases:
telemedicina.ServerConnectionForm
Esta clase le permite al visualizador conectarse con el servidor, como se muestra en
la figura 4.7, esta clase hereda de swing.JFrame y está compuesta por telemedicina.PrincipalQueryTreeBrowser que hereda de pixelmed.QueryTreeBrowser, cumple con
la función de visualizar la respuesta del servidor en una jerarquı́a mostrando los directorios de los pacientes y los diferentes estudios que están contenidos en éste. También esta
compuesta por pixelmed.AttributeList por medio de la cual puedo acceder a los atributos
de los archivos DICOM, para hacer la consulta al servidor. Por último está compuesta
por pixelmed.QueryInformationModel, que permite estructurar el mensaje de comunicación en los IODs apropiados para hacer la transmisión del archivo DICOM debido a
que maneja todos los protocolos de comunicación establecidos.
Esta clase además utiliza la clase telemedicina.PrincipalReceivedObjectHandler, la cual
hereda a su vez de pixelmed.ReceivedObjectHandler, está compuesta por pixelmed.
DicomInputStream y utiliza la clase pixelmed.StorageSOPClassSCPDispatcher. Esta
clase permite recibir los estudios que han sido consultados en el servidor, para después
ser visualizados en la estación de trabajo.
49
swing.JFrame
telemedicina.MyWindow
telemedicina.ServerConnectionForm
telemedicina.ContenidoDirectorio
swing.BufferedImage
utliza
pixelmed.DicomInputStream
telemedicina.DicomLoader
Figura 4.6: Esquema UML de clases que conforman el visualizador
50
pixelmed.AttributeList
swing.JFrame
telemedicina.MyWindow
telemedicina.ServerConnectionForm
pixelmed.ReceivedObjectHandler
pixelmed.DicomInputStream
telemedicina.PrincipalReceivedObjectHandler
pixelmed.QueryTreeBrowser
telemedicina.PrincipalQueryTreeBrowser
pixelmed.AttributeList
pixelmed.QueryTreeModel
pixelmed.QueryInformationModel
pixelmed.StorageSOPClassSCPDispatcher
Figura 4.7: Esquema UML de clases que conforman el visualizador
51
telemedicina.ContenidoDirectorio
Esta clase puede leer el directorio que ha solicitado el usuario, para después convertirlo
en paquetes IODs, para realizar su búsqueda dentro del disco local de la estación de
trabajo. Esta clase después de que hace la búsqueda y ha identificado los paquetes correspondientes que debe devolver, pasa estos IODs a la clase telemedicina.DicomLoader.
telemedicina.DicomLoader
Esta clase recibe los IODs encontrados por la clase telemedicina.ContenidoDirectorio,
y los estructura de acuerdo a los atributos que ha solicitado el usuario, hace una
conversión de estos datos que están en formato DICOM, a un formato que pueda
ser manipulado por la clase swing.BufferedImage, para esto se apoya en la clase pixelmed.DicomInputStream.
swing.BufferedImage
Esta clase es la encargada de visualizar los datos que han sido recuperados por la clase
DicomLoader, ası́ como también distingue entre la imagen y los demás atributos para
ser mostrados en el panel de la estación de trabajo.
4.3.
Funcionamiento general de la estación de trabajo
La aplicación que se obtuvo para la estación de trabajo se muestra en la figura 4.8, la
cual se encuentra estructurada en diferentes elementos que cumplen funciones similares; a
continuación se describen cada uno de estos grupos
Un grupo de botones para la configuración de la imagen y para la visualización de
un estudio en la cual podemos abrir un directorio desde el disco local, y ver todas las
imágenes del estudio de un paciente.
Presenta una área de texto donde permita visualizar los diferentes datos que vienen
asociados con la imagen.
Presenta un grupo de botones que me permiten conectar con el servidor, para visualizar
un archivo dado.
Tiene un panel que me permite visualizar las diferentes imágenes de un estudio.
52
En la figura 4.9 se muestra como la estación de trabajo muestra una imagen DICOM,
ası́ como los datos que esta tiene asociados. La estación de trabajo fue desarrollada en la
plataforma Java, con la máquina virtual 1.5, y usando el entorno de desarrollo NETBEANS
IDE 5.0.
Opciones Para la
Imegeny el Estudio
Panel para
Visualización de
la imagen
Muestra los metadatos
de cada imagen
Opciones para conexión
con el servidor
Abrir Estudio
Figura 4.8: Estación de trabajo
4.4.
Implementación del servidor
El servidor fue desarrollado con base en la librerı́a de PIXELMED, la cual cuenta con
clases que estructuran de manera adecuada según lo especificado en el protocolo DICOM
de comunicaciones. En la figura 4.7 se muestra un diagrama de paquetes que muestra como
están organizadas las clases que componen esta aplicación. En esta figura se muestra que la
aplicación del servidor está contenida en el paquete co.edu.unal.telemedicina.servidor,
el cual a su vez encapsula dos clases:
StorageServer Esta clase tiene la función de inspeccionar de manera recurrente la dirección
de prestación, que para este caso será la 4006, y procesar la información de solicitud de
una estación de trabajo. También hace la búsqueda dentro de la base de datos y envı́a
los datos a la clase RebuildDatabase.
53
Figura 4.9: Estación de trabajo
54
RebuildDatabase Esta clase reconstruye los IODS, para enviarlos a través de la red a la
estación de servicio que los ha solicitado, para ello cuenta con el método procesarArchivooDirectorio().
co.edu.unal.telemedicina
co.edu.unal.telemedicina.servidor
StorageServer
+tituloEntidadAplicacion
+puerto
+directorioPrincipal
RebuildDatabase
+procesarArchivooDirectorio()
+manejarConsulta()
+enviaryRecibirArchivoDiocm()
+escucharpuerto()
+registrarServicio()
Figura 4.10: Esquema UML de paquetes que conforman el servidor
En la figura 4.11 se muestra de una manera más detallada como las clases que componen
el servidor están relacionadas entre sı́. Podemos ver que telemedicina.StorageServer está compuesta por las clases que se muestran a continuación, las cuales proporcionan funciones para
que la aplicación funcione de manera eficiente.
pixelmed.DatabaseInformationModel Esta clase permite manejar un modelo de base de
datos para almacenar los archivos DICOM.
pixelmed.AttributeList Esta clase permite manipular los archivos de acuerdo a los atributos que hayan sido solicitados para su búsqueda, pixelmed.DicomOutputStream por
medio de la cual entrega los archivos DICOM a través de la red empaquetados en forma
de IODs
pixelmed.NetworkConfiguration Esta clase configura la red general teniendo como base
el modelo de comunicaciones DICOM.
55
pixelmed.StorageSOPClassSCPDispatcher Esta clase permite asociar la clase SOP con
la clase SCP para que el servidor pueda transferir los archivos DICOM.
telemedicina.StorageServer
pixelmed.DatabaseInformationModel
pixelmed.NetworkConfiguration
pixelmed.AttributeList
pixelmed.DicomOutputStream
pixelmed.StorageSOPClassSCPDispatcher
Figura 4.11: Esquema UML de paquetes que conforman el servidor
4.5.
Funcionamiento general del SERVIDOR
la aplicación del servidor de CENTELPACS debe trabajar para atender las solicitudes de
las estaciones de trabajo.las estaciones de trabajo funcionan en promedio entre 1 y 2 horas a
cargo de los especialistas en imagenes medicas, el software del servidor debe trabajar todo el
dia.
No se implementó una interfaz de usuario para la administración de los procesos del
servidor, pero de todos modos cuenta con parametros configurables en un archivo de texto
que edita el administrador del sistema colocando los valores apropiados segun el entorno de
red donde debe funcionar el PACS. En el archivo se configura los siguienets parametros
Un directorio para conservar los atributos de las imagenes almacenadas.
56
Un directorio en donde se encuentran las imagenes fisicamente.
La dirección de prestacion por donde se atenderan las solicitudes
Tı́tulo de entidad de aplicación
Listado de otras entidades de aplicación remotas que pueden intercambiar información
con este servidor.
El primer paso para iniciar el servidor es preparar la ruta en el disco donde estarán
almacenados todos los estudios que se pondran en servicio para la red. Luego se ejecuta un
programa para analizar los directorios de archivos DICOM y extraer los datos que estaran
disponibles para el modelo de consulta basados en los atributos del paciente que son incluidos
a nivel del estudio. Debido a que el servidor no cuenta con una interfaz de usuario, se inicia
como una aplicacion para lı́nea de comando que permanecera en ejecucion como un oproceso
del sistema que tiene interacción con otros procesos mas no con el usuario directamente.
57
Capı́tulo 5
Pruebas de Ejecución
5.1.
Soporte de Formatos DICOM
Esta prueba permite comprobar qué tipos de formatos DICOM soporta el NUKAKPACS,
evaluando un grupo de 7200 imágenes del Centro de Telemedicina y otros archivos publicados
en internet, que presentan una diversidad de formatos, estructuras, tamaños y dispositivos de
captura. Estas pruebas se realizaron en el software de la estación de trabajo, para evaluar el
soporte de visualización de la imagen y la extracción de los metadatos.
Tanto en el software de la estación, como en el servidor se utilizó el mismo módulo para
la lectura de los archivos DICOM, por esta razón las pruebas que se realizaron en la estación
de trabajo tienen los mismos resultados que las pruebas realizadas en el servidor.
La prueba en la estación de trabajo consistió en cargar diferentes directorios DICOM para
evaluar el despliegue de los atributos y la visulización de la imagen en la interfaz de usuario,
con previo conocimiento del formato de la imagen, el cual puede ser reconocido por el UID.
La verificación del soporte de archivos DICOM en el servidor se realizó en forma paralela
con el proceso de análisis de los directorios desplegando una alerta para aquellos archivos
que no podı́an ser reconocidos durante el procesamiento en lote de los archivos. Este proceso
es requerido para extraer los atributos mediante los cuales el servidor prestará el servicio de
consulta.
En el cuadro 5.1, se muestran los diferentes formatos DICOM que fueron evaluados y los
resultados obtenidos en el proceso de lectura.
5.2.
Desempeño del Módulo de Comunicaciones
En esta prueba se tuvieron en cuenta parámetros para la evaluación de la comunicación
entre el servidor y la estación de trabajo, midiendo el tiempo de respuesta del servidor después
58
UID
1.2.840.10008.1.2.5
1.2.840.10008.1.2.5
1.2.840.10008.1.2.5
1.2.840.10008.1.2.5
1.2.840.10008.1.2.5
1.2.840.10008.5.1.4.1.1.1
1.2.840.10008.5.1.4.1.1.2
1.2.840.10008.5.1.4.1.1.7
NOMBRE DEL FORMATO
Implicit VR Little Endian: Default Transfer
Syntax for DICOM
Explicit VR Little Endian
JPEG Baseline (Process 1): Default Transfer
Syntax for Lossy JPEG 8 Bit Image Compression
RLE Lossless
Explicit VR Big Endian
Computed Radiography Image Storage
CT Image Storage
Secondary Capture Image Storage
SOPORTADO
SI
SI
SI
SI
SI
NO
NO
NO
Cuadro 5.1: Cuadro de evaluación de los formatos DICOM en el NUKAKPACS
Estaciones Concurrentes
UNA
DOS
TRES
CUATRO
CINCO
Tiempo Promedio de Respuesta (ms)
8529
8928
8892
9153
9242
Cuadro 5.2: Tiempos de respuesta con varias estaciones concurrentes
de que una estación hace una consulta. Esta consulta fue diseñada para cargar los atributos
de 90 pacientes para poder consultar sus estudios.
Se utilizaron 7 estaciones de trabajo para hacer pruebas de consultas concurrentes hacia el
servidor, 3 de ellas con sistema operativo WINDOWS XP , y las demás con sistema operativo
LINUX. En las siguientes tablas se reflejan los resultados de las pruebas operacionales con
respecto al tiempo. las estaciones de trabajo tiene las caracteristicas fisicas mostradas en el
capitulos de Diseño de un PACS ??
Durante la ejecución de las pruebas se observó que las estaciones de trabajo con sistema
operativo WINDOWS XP presentaban tiempos de respuesta superiores a los obtenidos en
el sistema operativo LINUX, de esta forma se procesió a comparar los tiempos de respuesta
según el sistema operativo que hace la petición obteniendo los resultados plasmados en el
cuadro 5.3
En el cuadro 5.2 se muestran los resultados obtenidos en las pruebas de concurrencia,
las cuales indican que a medida que se incrementa el número de estaciones en una, también
aumenta el retraso en la respuesta. Sin embargo puede notarse que el incremento en el tiempo
59
Sistema operativo
WINDOWS XP
LINUX
Tiempo Promedio de Respuesta (ms)
21366
5272
Cuadro 5.3: Tiempos de respuesta de los sistemas operativos
60
de respuesta es por cada estación de trabajo es de 277.25 ms en promedio, 1.97 % cada vez
que aumenta el número de peticiones realizadas de forma simultánea. Esto significa que la
cantidad de consultas concurrentes no afecta notablemente el desempeño en los tiempos de
respuesta.
Por otro lado, los tiempos de respuesta obtenidos para los diferentes sistemas operativos,
presentados en el cuadro 5.3, revelan algún tipo de anomalı́a al utlizar estaciones de trabajo
con el sistema operativo WINDOWS XP. Estos problemas podrı́an localizarse probablemente
en alguno de los componentes externos que interactúan directamente con el sistema operativo, como la máquina virtual de Java , o la biblioteca utilizada para el manejo de archivos
DICOM. Un análisis más profundo de este problema podrı́a sugerir estrategias para mejorar
el rendimiento bajo el sistema operativo WINDOWS, sin embargo esta evaluación está fuera
del alcance de los propósitos de este proyecto.
61
Capı́tulo 6
Conclusiones y Perspectivas
Los sistemas tradicionales de almacenamiento y visualización de imágenes son costosos,
debido a la impresión de imágenes en placas, y la adquisición y mantenimiento del
sistema de almacenamiento. Los PACS mediante su sistema de almacenamiento logran
disminir estos costos en mas de un 99 % y optimizar el sistema de comunicación y
administración de archivos dentro de los hospitales.
En Colombia la mayorı́a de los hospitales manejan el sistema tradicional; debido a la
creciente expansión de los servicios médicos, es necesario implementar PACS para poder
brindar un mejor servicio a médicos, pacientes y familiares, con información que pueda
ser administrada de manera segura, la visulización de imágenes sea eficiente y módulos
que puedan ser fácilmente adaptables a los sistemas HIS.
En el proceso de implementación de la aplicación CENTELPACS, se evaluó un conjunto
de bibliotecas para el manejo de archivos DICOM. De acuerdo a los criterios de evaluación propuestos, las bibliotecas más adecuadas para el proyecto fueron PIXELMED y
DCMTK. Aunque DCMTK presenta inconvenientes de portabilidad y su documentación
no está completa, esta biblioteca tiene un buen soporte para manejar la totalidad del
estándar DICOM; adicionalmente la licencia es de código abierto, lo cual permite su
modificación y configuración. Por otra parte, la biblioteca PIXELMED presenta documentación apropiada, cuenta con las ventajas de portabilidad del lenguaje JAVA, y su
licencia de código abierto permitirá al Centro de Telemedicina modificarla y extenderla
si es necesario, de la misma forma que la biblioteca DCMTK.
El sistema CENTELPACS fue probado con 8 formatos diferentes de DICOM, de los
cuales 5 pudieron ser leı́dos y visualizados correctamente. los tres que no se pudieron
leer correspondı́an a formatos ACR-NEMA que son en este momento obsoletos, del año
97 y han desaparecido del mercado. Se propone para trabajos futuros en el Centro de
62
Telemedicina integrar el soporte lógico multiplataforma Nukak3D, como una estación
de trabajo para la visulización de la mayoria de formatos DICOM, puesto que esta
aplicación permite una visualización óptima de las imágenes, además incorpora funciones
para construir ı́mágenes 3D a partir de las bidimensionales; estas caracterı́sticas facilitan
el diagnóstico.
El estandar DICOM está limitado para que el servidor atienda sólo una petición a la
vez de un archivo DICOM especı́fico. En trabajos futuros el Centro de Telemedicina
tiene como objetivo proponer estrategias para mejorar el modelo de comunicaciones que
define el estándar DICOM.
Conociendo las necesidades hospitalarias para el manejo de la información, y teniendo en
cuenta la disponibilidad de recursos y tecnologı́as en Colombia, el Centro de Telemedicina inicia con este proyecto la exploración de un extenso campo de desarrollo tecnológico
para desarrollar sistemas de informática médica que aprovechen las herramientas computacionales para las prácticas clı́nicas. Uno de los próximos retos en este proyecto
será el diseño de un sistema que pueda soportar conexiones simultáneas a gran escala,
basado en una arquitectura de software extensible y robusta que sirva de plataforma
tecnológica para administrar el conocimiento y los servicios de salud.
63
Bibliografı́a
[1] Dicom. WEB, MARZO 2006. http://www.sph.sc.edu/comd/rorden/dicom.html.
[2] Documnetación kitware, Abril 2006. http://public.kitware.com/.
[3] Vtk, Abril 2006. http://vtk.org//.
[4] P.G.J. Barten. Physical model for the contrast sensitivity of the human eye. -, 0:–, 1992.
[5] David A. Clunie. Dicom standard status. web, Abril 2006. http://www.dclunie.com/
dicom-status/status.html.
[6] David A. Clunie. Pixelmed, Abril 2006. hhttp://www.pixelmed.com/.
[7] Davis A. Clunie. DICOM structured Reporting123. PixelMed Publishing Bangor, Pennsylvania, 2000.
[8] Lydia Ng Josh Cates Luis Ibáñez, Will Schroeder. The ITK Software Guide Updated for
ITK version 2.4. coprygith, November 21, 2005.
[9] Marco Eichelberg; Michael Onken; Jörg Riesmeier; Andreas Thiel. Libraries dcmtk, Abril
2006. http://dicom.offis.de/dcmtk.php.en.
[10] Lisa; MARTIN Kenneth; LAW C. Charles; KING Brad; HOFFMAN William; HENDERSON Amy; GEVECI Berk; WILLIAM, J. Schroeder;AVILA. The Visulization Toolkit
User´s Guide. KITWARE, INC., 2003.
[11] Kenneth M. Martin Willian A.Hoffman C. Charles law William J. Schroeder, Lisa S. Avila. The Visulization Toolkit User’s Guide. kitware, 2001.
64
Descargar