sdd 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~cis1510ap04/docs/sdd.2.1.0.pdf · -...

25
SISTEMA DE APOYO PARA IDENTIFICACIÓN Y ESTIMACIÓN DE VOLUMETRÍA DE NÓDULOS PULMONARES. SDD 2.1.0 Software Design Document Pontificia Universidad Javeriana José Alejandro León Andrade Ingeniería de Sistemas 2015

Upload: truongminh

Post on 31-Oct-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

SISTEMA DE APOYO PARA IDENTIFICACIÓN Y ESTIMACIÓN DE

VOLUMETRÍA DE NÓDULOS PULMONARES.

SDD

2.1.0

Software Design Document

Pontificia Universidad Javeriana

José Alejandro León Andrade

Ingeniería de Sistemas

2015

Page 2: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

CONTENIDO

ILUSTRACIONES ............................................................................................................................. 2

TABLAS .......................................................................................................................................... 3

1. VISIÓN GENERAL ................................................................................................................... 4

1.1. PROPÓSITO .................................................................................................................... 4

1.2. ALCANCE ........................................................................................................................ 4

2. DEFINICIONES ........................................................................................................................ 4

3. REFERENCIAS ......................................................................................................................... 6

4. DISEÑO CONCEPTUAL ........................................................................................................... 7

4.1. DISEÑO DE SOFTWARE EN CONTEXTO .......................................................................... 7

5. INFORMACIÓN DE DESCRIPCIÓN DE DISEÑO ........................................................................ 7

5.1. STAKEHOLDERS ............................................................................................................. 7

5.2. ARQUITECTURA DE DISEÑO .......................................................................................... 7

5.3. GRAFO DE NAVEGABILIDAD .......................................................................................... 9

6. PUNTOS DE VISTA DEL DISEÑO ........................................................................................... 11

6.1. VISTA DE CONTEXTO ................................................................................................... 11

6.1.1. DIAGRAMA DE CASOS DE USO ............................................................................ 11

6.2. VISTA DE COMPOSICIÓN ............................................................................................. 17

6.2.1. DIAGRAMA DE COMPONENTES .......................................................................... 17

6.3. VISTA LÓGICA .............................................................................................................. 18

6.3.1. DIAGRAMA DE CLASES ........................................................................................ 18

6.3.2. PATRONES ........................................................................................................... 19

6.3.3. INTEGRACIÓN ENTRE HERRAMIENTAS ................................................................ 19

6.4. VISTA DE INTERACCIÓN ............................................................................................... 20

6.4.1. DIAGRAMAS DE SECUENCIAS .............................................................................. 20

7. PUNTOS DE VISTA DEL DISEÑO ........................................................................................... 25

7.1 DESCRIPCIÓN DEL PRODUCTO .................................................................................... 25

ILUSTRACIONES Ilustración 1. Arquitectura del sistema (MVC) .............................................................................. 8

Ilustración 2. Arquitectura del procesamiento de datos (Pipeline o de tubería) ......................... 9

Ilustración 3. Grafo de navegabilidad de la aplicación.................................................................. 9

Ilustración 4. Diagrama de casos de uso ..................................................................................... 12

Ilustración 5. Diagrama de componentes ................................................................................... 17

Ilustración 6: Diagrama de clases. ............................................................................................... 19

Ilustración 7: Diagrama de secuencia para ver el histograma .................................................... 21

Page 3: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

Ilustración 8: Diagrama de secuencia para hacer algoritmo ....................................................... 22

Ilustración 9: Diagrama de secuencia para usar herramienta de volumetría ............................. 24

TABLAS Tabla 1. Interfaces entre componentes ...................................................................................... 18

Page 4: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

1. VISIÓN GENERAL

1.1. PROPÓSITO Este documento contiene información del diseño de la aplicación para la

identificación y estimación de volumetría de nódulos pulmonares. Se realiza con el

fin de clarificar la implementación de las funcionalidades del software y de esa forma

facilitar el desarrollo y mantenimiento del mismo.

Este documento ofrece diferentes vistas de diseño, con las cuales se provee

información específica como lo son las interacciones en el sistema, interacciones del

usuario con el sistema, la comunicación entre diferentes elementos del sistema y la

arquitectura de software entre otros.

1.2. ALCANCE El diseño del sistema y por tanto la información contenida en este documento se

limita a cumplir con los requerimientos del sistema y por tanto con los objetivos del

proyecto. Se limita a presentar los parámetros especificados por el estándar IEEE

1016-2009 [1].

2. DEFINICIONES

- Arquitectura MVC: Patrón que permite separar la interfaz gráfica de usuario, de

los datos y de la lógica apoyándose en tres componentes: modelo, vista y

controlador[2].

- Arquitectura Pipeline: una tubería (pipeline) conecta componentes (filtros) por

medio de conectores (pipes), de modo que los datos se procesan y ejecutan a

manera de flujo. Los datos se transportan a través de las tuberías entre los filtros,

transformando gradualmente las entradas en salidas[3].

- Controlador: Responde a eventos provocados por el usuario que implican

cambios en el modelo y la vista, dando una correcta gestión a las entradas de

usuario[2].

Page 5: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

- Imagen médica: colección de medidas o valores en el espacio bidimensional (2D)

o tridimensional (3D). Dichas medidas o intensidades de imagen son la absorción

de radiación de rayos X, son adquiridas en el dominio continuo (para este

proyecto en particular). La posición de cada medida se conoce como píxel en

imágenes 2D y en imágenes 3D se le llama vóxel[4]

- ITK: Insight Segmentation and Registration Toolkit, es una biblioteca de código

abierto multiplataforma que provee herramientas para el análisis de

imágenes[5].

- Modelo: Representación de los datos y reglas de negocio[2].

- Nódulo Pulmonar Solitario (NPS): masa pulmonar menor de 3 cm de diámetro,

puede constituir un hallazgo incidental y comúnmente representa un tumor

benigno[6].

- QT: Biblioteca multiplataforma para desarrollar aplicaciones con interfaz gráfica

de usuario[7].

- SDD: Software Design Descriptions (Descripción del Diseño de Software) [1].

- TAC: Tomografía que utiliza el tomógrafo axial computarizado; también se

denomina tomografía asistida por computadora[8].

- Tomógrafo: Aparato de rayos X ideado para obtener radiografías seccionales

(tomogramas) del cuerpo[8].

- VTK: Visualization Toolkit, es una biblioteca de código abierto multiplataforma,

que provee herramientas y algoritmos para hacer visualización de datos[9].

Page 6: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

- Vista: Permite mostrar la información del modelo en un formato adecuado que

permita la interacción del usuario[2].

- VTK: Visualization Toolkit, es una biblioteca de código abierto multiplataforma,

que provee herramientas y algoritmos para hacer visualización de datos [10].

3. REFERENCIAS [1] Institute of Electrical and Electronics Engineers, IEEE standard for information

technology--systems design--software design descriptions. New York: Institute of

Electrical and Electronics Engineers, 2009.

[2] J. V. Sonia, D. Villa Zapata, y S. Cardona Torres, Programación Avanzada en Java,

Primera. Armenia, Quindio: Elizcom S.a.s.

[3] C. B. Reynoso, «Introducción a la Arquitectura de Software», Univ. B. Aires, vol. 33,

2004.

[4] E. Coto, «Métodos de segmentación de imágenes médicas», Univ. Cent. Venezuela

Lect. En Cienc. Comput., vol. 1, pp. 9–15, 2003.

[5] «ITK - Segmentation & Registration Toolkit». [En línea]. Disponible en:

http://www.itk.org/. [Accedido: 05-abr-2015].

[6] H. Singh, Atlas Practico de Tomografia Computada. Jaypee Brothers, Medical

Publishers, 2012.

[7] «Qt Project». [En línea]. Disponible en: http://qt-project.org/. [Accedido: 25-feb-

2014].

[8] B. J. Melloni, I. Dox, y G. M. Eisner, Diccionario médico ilustrado de Melloni. Reverté,

1982.

[9] «VTK – The Visualization Toolkit». [En línea]. Disponible en: http://www.vtk.org/.

[Accedido: 03-abr-2015].

[10] «VTK - The Visualization Toolkit». [En línea]. Disponible en: http://www.vtk.org/.

[Accedido: 19-nov-2013].

[11] T. Reenskaug y J. O. Coplien, «The DCI architecture: A new vision of object-

oriented programming», Artic. Start. New Blog14pp Httpwww Artima

Comarticlesdcivision Html, 2009.

[12] Y. D. González y Y. F. Romero, «Patrón Modelo-Vista-Controlador.», Rev. Telem

Tica, vol. 11, n.o 1, pp. 47–57, 2012.

[13] L. Ibanez, W. Schroeder, L. Ng, y J. Cates, «The ITK software guide», 2003.

[14] W. J. Schroeder, K. Martin, L. Avila, y C. Law, The VTK User’s Guide. Kitware. Inc,

1998.

[15] M. Fowler y K. Scott, UML gota a gota. Pearson Educación, 1999.

[16] B. C. Falgueras y U. O. de Catalunya, Ingeniería del software. Universitat Oberta

de Catalunya, 2002.

Page 7: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

[17] «ITK: Insight Toolkit Documentation». [En línea]. Disponible en:

http://www.itk.org/Doxygen47/html/index.html. [Accedido: 06-abr-2015].

[18] «Documentation | VTK». [En línea]. Disponible en:

http://www.vtk.org/documentation/. [Accedido: 06-abr-2015].

[19] «Qt Documentation». [En línea]. Disponible en: http://doc.qt.io/. [Accedido: 06-

abr-2015].

[20] R. S. Pressman, R. O. Martín, y L. J. Aguilar, Ingeniería del software: un enfoque

práctico. Mac Graw-Hill, 1997.

4. DISEÑO CONCEPTUAL

4.1. DISEÑO DE SOFTWARE EN CONTEXTO A lo largo de este documento se mostrará todos los temas relacionados con el diseño

de la aplicación, ya que ello es muy importante al momento de dar continuidad con

el proyecto en un futuro trabajo.

5. INFORMACIÓN DE DESCRIPCIÓN DE DISEÑO

5.1. STAKEHOLDERS Los stakeholders para este proyecto son principalmente radiólogos y más

específicamente aquellos que trabajan en el hospital San Ignacio de Bogotá.

5.2. ARQUITECTURA DE DISEÑO La arquitectura del sistema tiene dos perspectivas: una desde la aplicación para el

usuario, y otra desde el procesamiento de los datos ya sea de imágenes o de

visualización.

En cuanto se refiere a la aplicación, se implementa una arquitectura que usa el

patrón de modelo-vista controlador (MVC), la cual busca separar los datos y la lógica

de negocio de la interfaz de usuario y del módulo que controla la comunicación entre

ellos, dando la sensación al usuario de la aplicación, que está manipulando los datos

directamente (modelo) [11].

Teniendo en cuenta que se trabaja con tres bibliotecas diferentes ITK[5] (Modelo),

VTK [10]-QT [7] (Vista), el uso de este patrón es necesario y útil en esta aplicación,

Page 8: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

ya que existe una separación clara entre los componentes del programa, lo cual

permite que su implementación pueda hacerse por separado y luego unirlos en

tiempo de ejecución, con lo que se facilita también el reemplazo y modificación de

cada uno de los componentes del sistema [12].

En este caso, el modelo es la representación de los datos, es decir todo lo

relacionado con el procesamiento de imágenes médicas, donde se implementan

filtros de ITK. La vista permite mostrar la información que provee el modelo en un

formato adecuado para ser visualizado por el usuario, el cual podrá interactuar con

dichos datos, donde se implementan filtros de VTK en conjunto con métodos de QT.

Finalmente, el controlador responde a los eventos provocados por el usuario en la

interfaz (como un clic o digitar un texto), lo cual implica cambios tanto en el modelo

como en la vista, dando una correcta gestión a las entradas que se presentan [2].

Ilustración 1. Arquitectura del sistema (MVC)

En cuanto al procesamiento de datos, se usa la arquitectura de pipeline (o de tubería),

propios de ITK y VTK, con la cual se pueden convertir o procesar datos de entrada

como imágenes o mallas en datos de salida, mediante diferentes tipos de filtros. Esta

arquitectura soporta la actualización automática de los filtros cuando hay un cambio

en la entrada o en su estado interno, además posee la ventaja que puede romper

datos en piezas más pequeñas para procesarlas una por una, y finalmente juntar los

resultados para dar la salida deseada [13][14].

Page 9: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

Ilustración 2. Arquitectura del procesamiento de datos (Pipeline o de tubería)

5.3. GRAFO DE NAVEGABILIDAD Las interacciones que tendrá el usuario con el sistema, pueden verse gráficamente

mediante las pantallas que se muestran, controles en cada una de ellas, o cambios

en los diferentes componentes. A continuación se muestra un gráfico donde puede

apreciarse las diferentes pantallas, controles o cambios que puede haber en cada

una de ellas.

Ilustración 3. Grafo de navegabilidad de la aplicación

Las diferentes relaciones o interacciones entre las pantallas, se pueden visualizar bajo

una flecha direccionada que tiene un identificador para efectos de la descripción,

Page 10: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

además las flechas son bidireccionales, lo que indica que se puede navegar de una

pantalla a su antecesora:

1. De pantalla principal a vista sagital:

a. La ventana que tiene los 4 paneles o vistas, es cambiada para mostrar

únicamente la vista sagital en toda la ventana.

2. De pantalla principal a vista coronal:

a. La ventana que tiene los 4 paneles o vistas, es cambiada para mostrar

únicamente la vista coronal en toda la ventana.

3. De pantalla principal a vista transversal:

a. La ventana que tiene los 4 paneles o vistas, es cambiada para mostrar

únicamente la vista transversal en toda la ventana.

4. De pantalla principal a vista de volumen:

a. La ventana que tiene los 4 paneles o vistas, es cambiada para mostrar

únicamente la vista de volumen o combinación de los tres planos en toda

la ventana.

5. De vista sagital a cualquier otra vista:

a. Estando en la vista sagital, es posible ir a cualquiera de las otras vistas.

6. De vista coronal a cualquier otra vista:

a. Estando en la vista coronal, es posible ir a cualquiera de las otras vistas.

7. De vista transversal a cualquier otra vista:

a. Estando en la vista transversal, es posible ir a cualquiera de las otras

vistas.

8. De vista de volumen a cualquier otra vista:

a. Estando en la vista de volumen o combinación de tres planos, es posible

ir a cualquiera de las otras vistas.

9. De pantalla principal a pantalla de histograma:

a. Al seleccionar la opción de “histograma” se abre una nueva ventana con

el histograma de la imagen de entrada, allí se puede hacer zoom y pan al

histograma, además de cambiar el tipo de gráfico y de utilizar máscaras

para realizar el algoritmo.

10. De pantalla principal a panel de datos:

Page 11: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

a. Al seleccionar la opción de “datos”, se abre un panel en la ventana

principal, que indica los datos principales del paciente y de la imagen,

obtenidos del encabezado de la imagen DICOM.

11. De pantalla principal a panel de algoritmo:

a. Al seleccionar la opción de “algoritmo”, se abre un panel en la ventana

principal, que contiene el paso a paso del algoritmo.

12. De pantalla principal a panel de volumetría:

a. Al seleccionar la opción de “volumetría”, se abre un panel en la ventana

principal que contiene una herramienta para ver la ubicación de las

regiones candidatas y sus respectivos volúmenes.

13. De panel de volumetría a vista de modelo tridimensional:

a. Al seleccionar la opción de “Ver ubicación en 3D”, se abre una nueva

ventana con el modelo en tres dimensiones del pulmón, los vasos y la

ubicación de la región candidata seleccionada.

14. De pantalla principal a pantalla de modelo tridimensional:

a. Al seleccionar la opción de “modelo tridimensional”, se abre una nueva

ventana que da la posibilidad de visualizar un modelo en tres

dimensiones del pulmón o los vasos, o las regiones candidatas o los tres,

además de la opción de ver los objetos con la opacidad deseada.

6. PUNTOS DE VISTA DEL DISEÑO

6.1. VISTA DE CONTEXTO

6.1.1. DIAGRAMA DE CASOS DE USO El diagrama de casos de uso proporciona una forma de demostrar los límites y

funcionalidades del sistema, debe ser una guía tanto para el usuario del sistema

como para los desarrolladores del mismo, por tal razón se usa un lenguaje no

formal[15].

El diagrama de casos de uso se muestra a continuación, y después su respectiva

documentación:

Page 12: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

Ilustración 4. Diagrama de casos de uso

Page 13: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

1. Iniciar aplicación: Al hacer clic sobre el ejecutable, la aplicación inicia con la

pantalla principal y los cuatro paneles en blanco. Todos los iconos están

desactivados menos el de “Abrir”.

2. Abrir imagen DICOM: El usuario puede abrir una imagen DICOM, buscando

un directorio en cualquier carpeta del computador.

3. Ver Histograma: El usuario puede ver el histograma de la imagen de entrada

al presionar el botón de “histograma”, puede cambiar el tipo de gráfico y

además puede usar una imagen binaria para ver el histograma en una región

específica.

3.1. Cambiar tipo de gráfico: El usuario es capaz de cambiar el tipo de gráfico

o la forma en cómo se muestran los datos del histograma.

3.1.1. Ver gráfico acumulado: El usuario puede elegir que se muestren

los datos del histograma de forma acumulada bajo una curva.

3.1.2. Ver gráfico de líneas: El usuario puede elegir que se muestren los

datos del histograma en forma de líneas, es decir que cada uno de

los puntos del histograma se junta mediante una línea recta a los

siguientes puntos.

3.1.3. Ver gráfico de barras: El usuario puede elegir que se muestren los

datos del histograma en forma de barras, es decir la forma común

de ver los histogramas.

3.1.4. Ver gráfico de puntos: El usuario puede elegir que se muestren

los datos del histograma en forma de puntos.

3.2. Usar máscara: El usuario puede seleccionar una máscara para reducir el

volumen en donde se hace el histograma.

3.2.1. Seleccionar máscara: El usuario puede elegir una máscara entre

una lista que contiene las imágenes que ya han sido obtenidas en el

algoritmo.

3.3. Cambiar límites de gráfico: El usuario puede seleccionar un límite

mínimo y un límite máximo para visualizar el histograma, ya que el rango

de grises de una imagen DICOM es muy amplio.

4. Ver todas las vistas: El usuario puede seleccionar la vista que más le

convenga para ver e interactuar con las imágenes DICOM.

Page 14: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

4.1. Ver vista transversal: El usuario puede seleccionar la vista transversal

para interactuar únicamente con ese plano.

4.2. Ver vista coronal: El usuario puede seleccionar la vista coronal para

interactuar únicamente con ese plano.

4.3. Ver vista sagital: El usuario puede seleccionar la vista sagital para

interactuar únicamente con ese plano.

4.4. Ver vista de volumen: El usuario puede seleccionar la vista de volumen

para interactuar de forma concurrente con los tres planos anteriores y

ver cambios en los cortes y en la visualización de las imágenes.

4.5. Cambiar de corte (slice): El usuario puede en las tres vistas principales

(coronal, sagital y transversal) cambiar el corte que se visualiza.

4.6. Cambiar visualización: El usuario puede en las tres vistas principales

(coronal, sagital y transversal) cambiar la forma de visualización,

haciendo cambio en la forma en cómo se ven las intensidades de grises.

5. Ver panel de algoritmo: El usuario puede ver un panel en la pantalla principal

donde puede desarrollar paso a paso el algoritmo para encontrar candidatos,

además puede ver las imágenes que ya se han realizado.

5.1. Ver imagen: El usuario puede ver en cualquier momento las imágenes

que ya haya realizado durante el algoritmo.

5.1.1. Ver entrada: El usuario puede ver la imagen de entrada, que

corresponde a la imagen en escala de grises de formato DICOM.

5.1.2. Ver mediana: El usuario puede ver la imagen luego de realizado el

filtro de mediana.

5.1.3. Ver región de pulmones: El usuario puede ver la imagen de

segmentación de pulmones.

5.1.4. Ver región de mediastino: El usuario puede ver la imagen de

segmentación del mediastino.

5.1.5. Ver región de interés: El usuario puede ver la imagen de región de

interés, que es aquella que se utiliza para hacer la segmentación de

vasos.

5.1.6. Ver vasos escala de gris: El usuario puede ver la imagen que tiene

las estructuras tubulares realzadas.

Page 15: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

5.1.7. Ver segmentación de vasos: El usuario puede ver la imagen que

contiene la segmentación de los vasos y las estructuras tubulares.

5.1.8. Ver intensidad: El usuario puede ver la imagen de características

intensidad que se utilizará como entrada al algoritmo de detección

de candidatos.

5.1.9. Ver segmentación de intensidad: El usuario puede ver la imagen

segmentada que contiene las regiones y objetos con la característica

de intensidad en escala de grises deseada.

5.1.10. Ver valores propios: El usuario puede ver la imagen de salida del

algoritmo realce usando valores propios.

5.1.11. Ver segmentación de valores propios: El usuario puede ver la

imagen de segmentación que surge a partir de la imagen de realce

con valore propios.

5.1.12. Ver contraste local: El usuario puede ver la imagen que surge a la

salida del algoritmo de contraste local.

5.1.13. Ver segmentación de contraste local: El usuario puede ver la

imagen de segmentación de contraste local.

5.1.14. Ver regiones candidatas: El usuario puede ver la imagen que

contiene las regiones y objetos candidatos.

5.2. Hacer mediana: El usuario puede realizar un suavizado de la imagen de

entrada mediante el filtro mediana, usando un radio entre los valores (1,

3, 5, 7).

5.3. Hacer pulmones: El usuario puede realizar la segmentación de los

pulmones, seleccionando dos semillas, una para cada pulmón.

5.4. Hacer mediastino: El usuario puede realizar la segmentación del

mediastino.

5.5. Hacer vasos: El usuario puede realizar la segmentación de los vasos y

estructuras tubulares, seleccionando un valor de sigma que está entre

los valores (1.5, 2.0, 2.5, 3.0, 3.5, 4.0).

5.6. Hacer imágenes de grises: El usuario puede generar las tres imágenes en

escala de grises que serán usadas para encontrar características de

regiones de interés.

Page 16: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

5.6.1. Hacer segmentación intensidad: El usuario puede hacer la

segmentación de la imagen de características de intensidad,

eligiendo un umbral de acuerdo a las necesidades.

5.6.2. Hacer segmentación de valores propios: El usuario puede hacer

la segmentación de la imagen de valores propios, eligiendo un

umbral de acuerdo a las necesidades.

5.6.3. Hacer segmentación de contraste local: El usuario puede hacer la

segmentación de la imagen de contraste local, eligiendo un umbral

de acuerdo a las necesidades.

5.7. Hacer imagen de candidatos: El usuario puede hacer la imagen de salida

que contiene las regiones candidatas.

6. Ver datos: El usuario puede ver en un panel dentro de la pantalla principal,

la información importante del paciente y de las imágenes DICOM leídas.

7. Ver volumetría: El usuario puede usar una herramienta que le permite ver el

volumen aproximado de cada región candidata y su ubicación espacial.

7.1. Ver ubicación en 2D: El usuario puede ver la ubicación de la región

candidata deseada, en la imagen DICOM.

7.2. Ver ubicación en 3D: El usuario puede ver la ubicación de la región

candidata deseada en un modelo en tres dimensiones.

8. Ver modelo tridimensional: El usuario puede ver un modelo en tres

dimensiones de los pulmones, los vasos y las regiones candidatas, además de

poder seleccionar la opacidad para cada una.

8.1. Seleccionar estructuras: El usuario puede seleccionar entre pulmones,

vasos, regiones candidatas o una combinación de las tres, para ser

visualizadas.

8.2. Seleccionar opacidades: El usuario puede seleccionar que tan

transparente se debe mostrar cada imagen.

9. Cerrar aplicación: El usuario puede cerrar la aplicación.

Page 17: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

6.2. VISTA DE COMPOSICIÓN Se modela la descomposición física del sistema y la relación que hay entre cada uno

de los elementos que componen el sistema, además también permite modelar la

arquitectura en tiempo de ejecución respecto al hardware y software [16].

6.2.1. DIAGRAMA DE COMPONENTES

Con este diagrama se describe la composición física del sistema de software, en

cuanto a su construcción y funcionamiento. La descomposición se hace en

términos de componentes y relaciones. Los componentes son objetos físicos que

existen en tiempo de ejecución o de compilación, tienen una identidad propia o

interfaz bien definida, pueden ser códigos fuente, ejecutables, bibliotecas,

imágenes, documentos, manuales, etc.[16]. En este sentido los principales

componentes del sistema son las bibliotecas VTK para la visualización, ITK para

el procesamiento de imágenes y datos, y QT para usar en conjunto con VTK en la

implementación de la interfaz gráfica. Se tiene además un componente de

“recursos”, que contiene los iconos e imágenes que serán usados en la

aplicación. A continuación, se muestra el diagrama de componentes.

Ilustración 5. Diagrama de componentes

6.2.1.1. INTERFACES DEL DIAGRAMA DE COMPONENTES

En la siguiente tabla se explica la comunicación entre los componentes del

sistema.

Interface Método Descripción

Page 18: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

Aplicación – ITK API de ITK[17]. Para realizar todos los algoritmos

que usen las imágenes, leer el

encabezado que contiene los datos

de la imagen (paciente, tamaños en

mm de los píxeles, separación en

mm de cada imagen o slice, entre

otros), e incluso para tener la

imagen en memoria y poderla

visualizar se utilizan métodos y

clases de la biblioteca de ITK.

Aplicación – VTK API de VTK[18]. Para realizar la visualización en 2D

de las imágenes, visualizar

volúmenes, interacciones del

usuario con las imágenes y

volúmenes, también para visualizar

diferentes tipos de gráficas, se

utilizan métodos y clases de la

biblioteca de VTK.

Aplicación – QT API de QT[19]. Para realizar toda la interfaz gráfica

de la aplicación, manejo de

controles y mensajes, y para

integrar la visualización mediante

VTK, se utilizan métodos y clases de

la biblioteca de QT.

Tabla 1. Interfaces entre componentes

6.3. VISTA LÓGICA

6.3.1. DIAGRAMA DE CLASES Es un grafo que describe un conjunto de clases junto con sus atributos, métodos

y nombre, además de la relación que tiene con otras clases. Es un diagrama

estático que encapsula el comportamiento de cada objeto dentro del

sistema[20]. Este diagrama brinda la posibilidad de tener una visión del sistema

Page 19: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

ya que muestra qué se debe hacer, mas no cómo. A continuación se muestra el

diagrama de clases del proyecto (Ver anexo Diagrama de clases), su respectiva

documentación se encuentra en el código fuente.

Ilustración 6: Diagrama de clases.

6.3.2. PATRONES

6.3.2.1. PATRÓN MEDIATOR En general, el único patrón usado en el proyecto fue el “Mediator”. En cuanto

a las vistas, todas se comunican con la clase de “MainWindow” la cual sirve

en muchos casos de mediador entre todas vistas y el controlador. Por otra

parte el mediador más visible es el “Coordinator”, el cual se encarga de tomar

las peticiones de la vista, pedir datos al modelo y retornar datos a la vista,

todas las vistas se comunican con el “Coordinator”. Puede verse en el

diagrama de clases, la forma en como el “Coordinator” hace las funciones de

mediador entre la vista y el modelo.

6.3.3. INTEGRACIÓN ENTRE HERRAMIENTAS

Con el fin de integrar las herramientas de ITK, VTK – QT, se hizo uso del patrón

“mediator”, que corresponde a la clase “Coordinator”. Este coordinador o

mediador separa dos grandes elementos, el modelo y la vista. En el componente

Page 20: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

“modelo”, únicamente se utilizan métodos de la biblioteca de ITK con el fin de

realizar todo el procesamiento de imágenes, mientras que en el componente

“vista”, se utilizan métodos de la biblioteca de VTK – QT.

6.4. VISTA DE INTERACCIÓN Este tipo de diagramas, se enfocan en mostrar las diferentes actividades y flujos de

comportamiento que el sistema debe cumplir a medida que opera en el tiempo[20].

6.4.1. DIAGRAMAS DE SECUENCIAS

Los siguientes diagramas describen el comportamiento del sistema a través del

tiempo y la interacción de los objetos por los casos de uso más relevantes o de

mayor complejidad. Debe tenerse en cuenta que un diagrama puede hacer

referencia a más de un caso de uso.

Page 21: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

6.4.1.1. VER HISTOGRAMA

Ilustración 7: Diagrama de secuencia para ver el histograma

El diagrama anterior describe la forma en como el usuario interactúa con el

sistema, con el fin de poder visualizar un histograma, además el proceso es

similar para todas las acciones que impliquen abrir una nueva ventana.

La acción se inicia cuando el usuario realiza clic sobre la opción de

histograma. Desde la ventana principal, se hace uso del coordinador para

obtener los datos relacionados con imágenes, en este caso el histograma de

la imagen de entrada. A continuación la ventana principal crea un nuevo

Page 22: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

objeto de la clase “HistogramForm”, asignándole el coordinador y los datos

del histograma, además de hacer la nueva instancia modal, es decir que no

se podrá seguir trabajando en la ventana principal hasta haber cerrado la

ventana de histograma. Se obtiene la lista de las máscaras que actualmente

tiene la aplicación, de nuevo, es el coordinador responsable de esa tarea. La

ventana principal usa esos datos para asignarlos a la ventana de histograma

y para que sean mostrados al usuario. A partir de este punto el usuario

interactúa directamente sobre la ventana de histograma, y esta a su vez pide

los datos necesarios al coordinador. Este procedimiento es muy similar a la

opción de “Ver modelo tridimensional”, ya que se instancia un nuevo objeto

desde la ventana principal, y dicho objeto se comunica con el coordinador

para pedir datos y mostrarlos al usuario.

6.4.1.2. VER ALGORITMO

Ilustración 8: Diagrama de secuencia para hacer algoritmo

Page 23: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

El diagrama anterior describe la forma de usar paneles en la aplicación, en

este caso el panel de algoritmo. Primeramente, el usuario realiza la petición

de ver el panel de algoritmo a la ventana principal, quien a su vez envía esta

solicitud a un objeto de “AlgorithmForm” (instanciado anteriormente por la

misma ventana principal). En la ventana principal se muestra el panel de

algoritmo y este a su vez al usuario, quien puede realizar el algoritmo, por

ejemplo puede hacer la mediana de la imagen de entrada y para ello hace la

solicitud directamente al objeto de la clase “AlgorithmForm”, el cual usa al

coordinador para todas las tareas relacionadas con obtención de datos o

imágenes, para después entregar los datos obtenidos a la ventana principal,

y esta última será la encargada de mostrar los datos al usuario, mediante el

objeto de la clase “FourPanelForm”. De manera similar ocurre al momento

de querer ver una imagen del algoritmo, y además, todas las funciones que

involucran paneles, como lo son: ver datos, ver panel de algoritmo, ver

herramienta de volumetría y ver la vista de los cuatro paneles.

6.4.1.3. VER HERRAMIENTA DE VOLUMETRÍA

Page 24: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

Ilustración 9: Diagrama de secuencia para usar herramienta de volumetría

La anterior imagen muestra un procedimiento que aunque involucra un

panel (Herramienta de volumetría), tiene una función específica, y es

mostrar el resultado de localización en 3 dimensiones mediante una nueva

ventana de VTK. El procedimiento es similar al anteriormente descrito,

excepto, al momento que el usuario pide una solicitud para mostrar la

imagen en tres dimensiones. En este punto el usuario interactúa

directamente sobre el objeto de “VolumetricToolForm”, quien se vale del

coordinador para pedir los datos de las tres imágenes a mostrar. Finalmente

el mismo objeto de la clase “VolumetricToolForm” es quien crea la nueva

ventana VTK y con la que el usuario interactúa directamente.

Page 25: SDD 2.1 - pegasus.javeriana.edu.copegasus.javeriana.edu.co/~CIS1510AP04/Docs/SDD.2.1.0.pdf · - Imagen médica: colección de medidas o valores en el espacio bidimensional (2D) o

7. PUNTOS DE VISTA DEL DISEÑO

7.1 DESCRIPCIÓN DEL PRODUCTO Para la entrega de la aplicación se realizó tanto un manual de usuario como uno de

instalación, el cual puede ser revisado en los anexos.