Sistema de Recuperación de Información de Espectroscopía de Protones por. Resonancia Magnética de Tumores Cerebrales

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Sistema de Recuperación de Información de Espectroscopía de Protones por. Resonancia Magnética de Tumores Cerebrales"

Transcripción

1 UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de Computación Sistema de Recuperación de Información de Espectroscopía de Protones por Resonancia Magnética de Tumores Cerebrales Por Moisés Castellanos Proyecto de Grado Presentado ante la Ilustre Universidad Simón Bóĺıvar como Requisito Parcial para optar al Título de Ingeniero de Computación Sartenejas, Marzo de 2009

2 UNIVERSIDAD SIMÓN BOLÍVAR DECANATO DE ESTUDIOS PROFESIONALES COORDINACIÓN DE INGENIERÍA DE COMPUTACIÓN ACTA FINAL DEL PROYECTO DE GRADO Sistema de Recuperación de Información de Espectroscopía de Protones por Resonancia Magnética de Tumores Cerebrales Presentado por Moisés Castellanos Este Proyecto de Grado ha sido aprobado por el siguiente jurado examinador: Prof. Alexandra La Cruz (Tutor Académico) Prof. Ascánder Suárez (Co-Tutor Académico) Prof. Víctor Theoktisto Jurado Prof. Angela Di Serio Jurado Sartenejas, 23 de Marzo de de 2009 ii

3 Sistema de Recuperación de Información de Espectroscopía de Protones por Resonancia Magnética de Tumores Cerebrales por Moisés Castellanos RESUMEN Se ha comprobado que a través de la espectroscopía de resonancia magnética se pueden detectar tumores cerebrales, pero esto requiere que personal calificado interprete los espectros para poder detectarlos. Mediante técnicas de aprendizaje de máquinas y reconocimiento de patrones se ha podido automatizar el proceso de detección de tumores obteniéndose resultados favorables. La mayoría de las técnicas utilizadas para este fin se basan en algoritmos con conjuntos de entrenamiento, trayendo como consecuencia que sea difícil detectar nuevos casos distintos a los vistos en el conjunto de entrenamiento. Esta investigación estudia el diseño e implementación de un sistema con interfaz web que utilice una técnica de aprendizaje de máquinas que no dependa de un conjunto de entrenamiento para adaptarse mejor a los casos distintos. El sistema realiza búsqueda de patrones en múltiples fuentes de datos que pueden estar geográficamente distantes y el resultado de esta se muestra al usuario con las imágenes de los gráficos de los espectros encontrados. El resultado de esta investigación es un prototipo de sistema de información llamado MRSXplore, donde el algoritmo implementado para la técnica de aprendizaje de máquinas es el de los vecinos más cercanos. Se evaluó el desempeño del sistema comparando las funciones de vecinos más cercanos implementadas en la base de datos contra las implementadas en la aplicación. Obteniendo como resultado que en los casos con los que se cuenta con valores precalculados es más eficiente utilizar las funciones en la base de datos y en los casos que se tenga que operar con el espectro es mejor utilizar las implementadas en la aplicación. iii

4 Índice general Introducción 1 1. Marco Teórico Imágenes de Resonancia Magnética Espectroscopia de Resonancia Magnética Aplicaciones Clínicas Detección de Tumores Cerebrales Imágenes Digitales y Comunicación en Medicina Aprendizaje de Máquinas Aprendizaje Basado en Instancias o Instance-Based Learning Algoritmo K-nearest Neighbor Algoritmo de Distance-weighted Nearest Neighbor Diseño de la Aplicación Funcionalidad Lenguaje de Consulta para Búsqueda Adquisición y Distribución de los Datos Modelo de Persistencia de Datos Estructura del Sistema de Información Reconocimiento de Patrones Consideraciones para la Elección de Tecnología y Plataforma de Desarrollo iv

5 3. Implementación de la Aplicación Plataforma de Desarrollo Componentes del Sistema Servicio Web Patrón Modelo-Vista-Controlador Generación de Imágenes Internacionalización Base de Datos Distribución y Carga de los Datos Reconocimiento de Patrones Integración de los Componentes Resumen Resultados Descripción del Equipo Usado Descripción de los Datos Metodología de las Pruebas Pruebas Base de Datos Reconocimiento de Patrones Cache de imágenes Análisis de los Resultados Conclusiones Trabajo Futuro Bibliografía 54 A. Manual de Referencia 59 A.1. Instalación de la Aplicación v

6 A.1.1. Proxy A Instalación de PostgreSQL A Instalación de Pl/Proxy A Configuración de Pl/Proxy A.1.2. Base de Datos Clientes A Instalación de PostgreSQL A Configuración y Carga de Datos en el Servidor A.1.3. Servidor Web A Instalación y Configuración de Apache Tomcat A Instalación y Configuración de la Aplicación vi

7 Índice de tablas 4.1. Distribución de los datos proporcionados por NEMA Distribución de los datos proporcionados por los productos Philips Prueba de la utilización del índice sobre el campo UUID Prueba de la utilización de la vista materializada Prueba de la utilización de los vecinos más cercanos implementadas en la base de datos y en la aplicación Prueba de la utilización de vecinos más cercanos con un valor determinado Prueba los vecinos más cercanos directamente en las base de datos con los espectros Prueba del uso del cache de imágenes en el servidor web Prueba de la utilización del índice sobre el campo UUID en cada base de datos Prueba de la utilización de la vista materializada en cada base de datos vii

8 Índice de figuras 1.1. Imagen de resonancia magnética [pix] Espectro de resonancia magnética de la corteza cerebral con los diferentes picos metabólicos [SB06] Estructura de un directorio DICOM o DICOMDIR Diagrama de caso de uso Esquema ER de la aplicación Estructura del Sistema de información Diagrama de clases de los componentes que conforman el patrón MVC Prototipo inicial de la página web del sistema, donde se muestra la página inicial de la aplicación Estructura del Sistema de Información implementado Diagrama de arquitectura del sistema Página principal de la aplicación, en la cual se muestra el espacio para colocar los parámetros para realizar la búsqueda Resultado de una búsqueda, donde se muestran las imágenes resultado de una búsqueda Ampliación de una de las imágenes del resultado de una búsqueda Gráfico de comparación entre vecinos más cercanos en la base de datos y en la aplicación. 45 viii

9 Glosario de Términos A API: Application Programming Interface. Describe como usar un conjunto de librerías o funciones para obtener provecho de ellas. B C Byte: Unidad de capacidad de almacenamiento, equivalente a 8 bits. CPU: Unidad de procesamiento central. Chemical shift: Describe la dependencia de los niveles de energía magnética nuclear en el entorno electrónico en una molécula. E Modelo ER: Es una representación abstracta y conceptual para representar datos. Utilizado para modelar bases de datos. ERM: Véase Modelo ER. F Filesystem: Es un método para almacenar y organizar archivos en un medio físico como disco duros, memorias flash o CD-ROM. ix

10 Framework: En computación, es una abstracción con la cual se provee un conjunto de código fuente y/o librerías que tienen como objetivo realizar una funcionalidad genérica. Estas funcionalidades pueden ser sobreescritas (override) o especializada por código del usuario del framework para proveer una funcionalidad especifica. I IDE: Integrated Development Environment (IDE) Consiste en una aplicación que proporciona facilidades para los programadores de computadoras para el desarrollo de software. J JDBC: Java Database Connectivity (JDBC) es un API del lenguaje de programación Java que define como un cliente puede acceder a una base de datos. JSP: JavaServer Pages (JSP) es una tecnología de Java para crear páginas web dinámicamente en HTML, XML u otro lenguaje de marcado. Permite colocar código escrito en Java en páginas web. JSTL: JavaServer Pages Standard Tag Library (JSTL) es un componente de Java, que extiende las especificaciones de JSP añadiendo una librería de etiquetas(tags) para tareas comunes como el procesamiento de datos en XML, de ejecución condicional y bucles. K KDD: Knowledge Discovery in Databases (KDD) es el nombre que se le da al proceso de utilización de algoritmos de datamining M MRI: Imagen de Resonancia Magnética por sus siglas en inglés Magnetic Resonance Image, es una técnica de extracción de imágenes de organismos vivos y su fundamento funcional reside en la x

11 excitación de los núcleos de hidrógeno en las moléculas de agua, cambiando la orientación de su campo magnético. Al hacerlo, las moléculas son detectadas obteniéndose el valor del campo para su posterior procesamiento y generación de las imágenes correspondientes. O ORM: Object-relational mapping (ORM) es una técnica de programación para la conversión de datos entre tipos entre de una base de datos relacional y objetos de un lenguaje. P PACS: Picture Archiving and Communication Systems (PACS) son sistemas dedicados al almacenamiento, recuperación, distribución y presentación de imágenes médicas Proxy: Proxy o servidor proxy es una computadora o aplicación que reenvía las peticiones de un cliente a otro servidor. Q Quimiometría: disciplina química que utiliza métodos matemáticos y estadísticos para diseñar o seleccionar procedimientos de medida y experimentos óptimos, y para proporcionar la máxima información química mediante el análisis de datos químicos S Servlet o Java Servlet: Son clases de lenguaje de programación Java que procesan solicitudes dinámicamente y la generan respuestas. Son usados generalmente para crear contenido dinámico en lenguajes de marcado como HTML. SQL: Structured Query Language (SQL) es un lenguaje de programación para modificar datos, realizar consultas y administrar base de datos relacionales. SQLInjection: Es una técnica que intenta explotar vulnerabilidades de seguridad que ocurren xi

12 en la capa de base de datos de una aplicación. La técnica consiste en colocar una entrada incorrecta al programa intentando escapar instrucciones de SQL, para ejecutar algún código escrito en SQL en la base de datos, como obtener información o borrarla. SVN: Subversion (SVN) es un sistema de control de versiones, que se utiliza para mantener versiones históricas, y actuales, de archivos como código fuente de una aplicación. T Transformación Wavelet: Representa una señal en términos de versiones trasladadas y dilatadas de una onda finita. W Wavelet: Es una función matemática utilizada para dividir a una función o señal continua en diferentes componentes de una escala. xii

13 Introducción Motivación y Justificación Bioinformática es la aplicación de herramientas de cálculo y análisis para la captura e interpretación de datos biológicos y es parte fundamental para la gestión de datos biologicos y médicos [Bay02]. Como casi todas las diciplinas científicas, la medicina ha utilizado el uso de computadoras para el estudio de fenómenos físicos y químicos, así como información médica. La proliferación de los microcomputadores, y su evolución desde la década de 80 y la interconexión entre esos equipos ha generado la posibilidad de que se desarrollen aplicaciones para el ambiente médico. Esto trajo la ventaja de poder desarrollar sistemas de soporte de decisiones para diagnóstico médico rentables [Mil94]. Espectroscopia por resonancia magnética (MRS, por sus siglas en inglés Magnetic Resonance Spectrum) es una técnica que utiliza las propiedades magnéticas de los núcleos atómicos para medir el nivel de los metabolitos en los tejidos del cuerpo. El resultado de la técnica es un espectro, que caracteriza a los diferentes arreglos moleculares de los tejidos bajo estudio. Es principalmente una técnica de imagen médica, familia de las imágenes por resonancia magnetica (MRI por sus siglas en inglés Magnetic Resonance Image) y tienen la capacidad de proporcionar información sobre el metabolismo del tumor cerebral y ha sido utilizado con éxito para diagnosticar tumores cerebrales. Para poder diagnosticar con ayuda de MRS se necesita de un personal especializado en interpretar los espectros para detectar los tumores. Varias investigaciones entre ellas [Tat96] se han realizado 1

14 para utilizar el reconocimiento de patrones, intentando automatizar el proceso de detección. Se ha demostrado que el uso del reconocimiento de patrones es efectivo para la detección de tumores cerebrales [Tat96]. Se utiliza principalmente aprendizaje de máquinas como redes neuronales y datamining para generar los clasificadores de espectros, pero estos métodos aún no pueden detectar efectivamente cierto tipos de tumores por la naturaleza de los algoritmos que se basan en el uso de conjuntos de entrenamiento. Objetivos El objetivo de esta investigación es diseñar e implementar un prototipo de aplicación que permita realizar búsquedas de espectros de resonancia magnética teniendo múltiples fuentes de datos a través de una interfaz web. Las búsquedas se realizar de igual manera que se realiza en los buscadores web convencionales tales como Google o Yahoo. Se considera el sistema como una prueba de concepto que persigue utilizar un enfoque de aprendizaje de máquinas, de aprendizaje atrasado o perezoso con el fin de intentar encontrar más soluciones al problema de detección de tumores cerebrales y distinto al empleado en otros sistemas que se basan en el uso de conjuntos de entrenamientos como las redes neuronales. El sistema será desarrollado utilizando herramientas de código abierto y el resultado de la investigación deberá ser a su vez pensado como un proyecto de código abierto. Presentación del Documento Los capítulos que componen este trabajo de grado están organizados de la siguiente manera: En el capítulo 1 se presenta un breve resumen de la ideas principales del uso de la medicina nuclear como es el caso de la resonancia magnética para la detección de tumores, de los trabajos realizados anteriormente relacionados al tópico y de las técnicas de aprendizaje de máquinas. El capítulo 2 se muestran los aspectos del diseño de los componentes de la aplicación. Para el capítulo 3 2

15 se detalla la implementación de la aplicación prototipo. Se concluye la investigación con el capítulo 4 donde se indican las pruebas realizadas y los resultados obtenidos del análisis, los pros y contras de la aplicación y algunas ideas adicionales. Finalmente, en el capítulo 5, se presentan las conclusiones del trabajo y las recomendaciones para trabajos futuros. 3

16 Capítulo 1 Marco Teórico En este capítulo se presentan los conceptos fundamentales para el entendimiento del trabajo de investigación. Se introduce con una vista general del proceso de adquisición de las imágenes de resonancia. Luego se describe el problema de las técnicas de reconocimiento de patrones para el reconocimiento de la existencia de tumores cerebrales analizando el espectro de protones en MRI. Finalmente se describe el aprendizaje de máquinas y una de las técnicas para el reconocimiento de patrones que se utilizó en este trabajo Imágenes de Resonancia Magnética El fenómeno electromagnético fue inicialmente utilizado para el estudio de la estructura química de las sustancias. La primera resonancia magnética en dos dimensiones fue realizada por Peter Lauterbur en 1973 [FOMM06]. Con el avance en la teoria y técnicas en la resonancia magnética se hizo posible su utilización para la adquisición de imágenes medicas [FOMM06]. Estos descubrimientos les hicieron ganadores de premio novel en medicina en el año 2003 a Paul Lauterbur y Peter Mansfield. Las imágenes de resonancia magnética se producen basándose en la distribución y el estado físico-químico del agua en los tejidos del cuerpo [SB06]. Los escáneres de MRI están disponibles 4

17 desde la década de los 80 y su uso ha aumentado considerablemente con el paso de los años, para el año 2002 habían aproximadamente en uso alrededor del mundo [FOMM06]. En la Figura se encuentra un ejemplo de una imagen de resonancia magnética. Figura 1.1: Imagen de resonancia magnética [pix] En comparación con otros métodos de obtención de imágenes médicas, las imágenes de resonancia magnética tienen la ventaja que son una técnica no invasiva y hasta el presente no se conocen efectos secundarios. Estas imágenes proveen un contraste alto entre los tejidos del cuerpo y puede ser utilizado en la adquisición de imágenes de otros fenómenos físicos, como la medición de la actividad cerebral en MRI funcional (fmri, por sus siglas en inglés funtional Magnetic Resonance Image) [FOMM06]. La teoría fundamental para la técnica de MRI sigue siendo la misma que para la espectroscopia 1 Fuente: Imagen de prueba de los archivos de nema distribuida con pixelmed [pix] 5

18 de Resonancia Magnética. A continuación se explicará de manera general la teoría básica de la espectroscopia de resonancia magnética, sus aplicaciones clínicas y posteriormente se presentan los conceptos y trabajos previos que son de importancia para esta investigación Espectroscopia de Resonancia Magnética El concepto básico de la espectroscopia de resonancia magnética es el magnetismo nuclear. Los átomos cuyos núcleos poseen un número impar de protones y neutrones son magnéticos y por lo tanto activos para la resonancia magnética nuclear [SB06]. Las diferencias entre la frecuencia de resonancia de diferentes núcleos, permiten la selección de núcleos específicos para su excitación y observación en estudios con MRS. La habilidad para detectar el compuesto químico es dependiente del cambio químico (chemical shift), que resulta del efecto de pantalla en los electrones. El resultado de esta técnica es un espectro que tiene las características de los diferentes arreglos moleculares de los tejidos bajo estudio. En la Figura se muestra un ejemplo de un espectro de resonancia magnética. MRS es un método no invasivo que provee información metabólica y bioquímica sobre el cerebro. También hace posible la caracterización del tejido a nivel bioquímico sobrepasando las capacidades de MRI [FOMM06]. Además tiene la capacidad de detectar anomalías que son invisibles al MRI convencional, porque a menudo las anomalías metabólicas son precedidas por cambios estructurales Aplicaciones Clínicas MRS provee información que no puede ser obtenida de ninguna otra modalidad de imágenes de resonancia magnética. En [SB06] y [FOMM06] se muestran aplicaciones médicas que usan el MRS para la evaluación y diagnóstico de enfermedades como: Tumores Cerebrales. 2 Fuente: Physical Basis of Magnetic Resonance Spectroscopy and its Application to Central Nervous System Diseases [SB06] 6

19 Figura 1.2: Espectro de resonancia magnética de la corteza cerebral con los diferentes picos metabólicos [SB06] Epilepsia. Esclerosis Múltiple. Lesiones cerebro-vasculares. Enfermedades Neurodegenerativas: Esclerosis Amytropic lateral. Enfermedad de Alzheimer. Trastornos metabólicos. MRS no remplaza el uso de MRI, pero complementa la información como un indicador mientras se sigue la evolución de una enfermedad y la evaluación de las respuestas a un tratamiento [FOMM06]. 7

20 Detección de Tumores Cerebrales El propósito de esta investigación es concentrarse en los espectros que tienen que ver con la detección de los tumores cerebrales. La detección de tumores es una de las aplicaciones del MRS, como es denotado en la sección y especificado en [SB06] y [FOMM06]. El problema que ha tenido esta técnica es el requerimiento de un radiólogo entrenado en resonancia magnética para interpretar la información que se muestra en el espectro. Una de las soluciones empleadas para solucionar este problema es el uso de técnicas de reconocimiento de patrones para que ayuden a los radiólogos a entender los espectros. La tasa de éxito de este tipo de aplicaciones es variada, dependiendo del preprocesamiento, la técnica de reconocimiento de patrones utilizada y las características del espectro seleccionada. Hargberg [Hag98] muestra una explicación de las técnicas mencionadas anteriormente, en ese trabajo presenta las técnicas de: Preprocesamiento: Algunos algoritmos de clasificación pueden tener mejores resultados si se escoje el preprocesamiento adecuado. Algunos algoritmos no necesitan de que los datos tengan una distribución determinada, otros a diferencia necesitan que tengan una distribución normal o que la varianza sea similar para todas las variables o el uso de métodos como el de las transformaciones wavelet. Extracción de las características más importantes del total de los espectros: consiste en la selección de la caracterización bioquímica y la aplicación de chemometric (quimiometría), para el uso de métodos estadísticos para seleccionar las características más importantes de los espectros. Análisis de clusters: este mecanismo se basa en la clasificación de los espectros en grupos (o clusters), donde se busca minizar la diferencia entre los espectros del mismo grupo y maximizar la diferencia de los espectros de grupos distintos. 8

21 Análisis por redes neuronales: constituye el uso de redes neuronales que utilizan el algoritmo de feedforward, utilizando tres capas, entrada, oculta y salida. Hargberg hace la comparación entre todos estos métodos y concluye que la mayoría de los métodos son buenos clasificadores de MRS y no le es posible dar a un método en especifico como mejor entre los demás [Hag98]. Anne Rosemary [Tat96] muestra en su trabajo de tesis que el reconocimiento de patrones para el análisis de MRS con computadoras tiene la ventaja de que estas pueden procesar grandes cantidades de información y ofrecer un método objetivo e imparcial de análisis resultante. Szabo [SDERE + 00] presenta un nuevo enfoque para combinar imágenes y técnicas espectroscópicas para construir imágenes pseudo-coloreadas (Nosologic) que transmite un mayor nivel de información para el radiólogo. La Comunidad Europea fundó un proyecto denominado INTERPRET que ha demostrado el valor añadido de un sistema de toma de decisiones que emplea métodos de reconocimiento de patrones supervisado para diagnosticar tumores cerebrales [TUA + 06]. Otras dos iniciativas fundadas por la Unión Europea etumour [ec08] y HealthAgents [Con08] han estudiado los diferentes aspectos del uso de MRS para diagnosticar tumores cerebrales. Estos han investigado diferentes características de los espectros que podrían mejorar el rendimiento del clasificador [GGTV + 08] o validando el desempeño del clasificador [GGLJS + 08]. La mayoría de los sistemas (como los mencionados anteriormente) se basan en un conjunto de entrenamiento para el cumplimiento de su objetivo y el objetivo de estos estudios ha sido determinar qué tan bien el rendimiento del sistema será en términos de sensibilidad y especificidad, como para proporcionar una medida estadística significativa de lo bien que el sistema de generalizar cuando se presentan nuevos casos. El problema de la utilización de conjuntos de entrenamiento para la clasificación de espectros en el caso del uso de redes neuronales tiene problemas para la detección de algunos casos, porque esta técnica aprende a partir de los casos presentados en el conjunto de entrenamiento. La red neuronal no puede tomar una decisión muy acertada cuando encuentra un caso que no ha visto y el uso de extrapolación puede conllevar a malas decisiones. Además 9

22 el conjunto de entrenamiento debe contener casos que se desean detectar y los que se pretenden descartar, porque si una red se entrena solo con los casos que se desean detectar o se sobre-entrena se utiliza el conjunto de prueba muchas iteraciones, la red memoriza los resultados y cuando se presente un caso que no está en este conjunto no podrá tomar una decisión[mit97]. INTERPRET tiene una contribución interesante para intentar solucionar este problema, cuando se le proporciona un tumor atípico (son espectros de tumores cerebrales que no se encontraban en el conjunto de entrenamiento) y que el sistema no ha diseñado una función para el clasificador y descubre en que espacio de los ejemplos cae. En [TUA + 06] descubre que este enfoque es útil para encontrar tumores atípicos. Pero al final todos estos enfoques se basan y confían en la utilización de conjuntos de entrenamientos lo suficientemente grandes, intentando cubrir la mayor cantidad de casos posibles, para diseñar los clasificadores. Este proceso es intrínsecamente costoso, complejo y además para tumores atípicos es imposible garantizar que un número suficiente de muestras será nunca recogidos por un centro médico para poder clasificarlo Imágenes Digitales y Comunicación en Medicina El Colegio de Radiología Americano (ACR, por sus siglas en inglés) y la Asociación Nacional de Fabricantes Eléctricos (NEMA, por sus siglas en inglés) reconocieron la necesidad de la creación de un estándar para la transferencia de imágenes e información asociada a estas entre varios dispositivos construidos por varios vendedores. Esta necesidad surgió a raíz de la introducción de la Tomografía Computarizada seguida por otras modalidades de diagnóstico con medios digitales en los años 70 y en el incremento del uso de computadores y aplicaciones con computadoras para la medicina [ora07a]. Además de que distintos fabricantes generaban formatos de archivos propietarios. Entonces la NEMA y la ACR formaron un comité en año 1993 para desarrollar un estándar con la finalidad de: Promover la comunicación de imágenes digitales, independientemente del fabricante del dis- 10

23 positivo. Facilitar el desarrollo y expansión de picture archiving and communication systems (PACS) que también puedan interactuar con otros sistemas de información hospitalaria. Permitir la creación de bases de datos de información de diagnóstico que puede ser interrogado por una amplia variedad de dispositivos distribuidos geográficamente. Este estándar fue desarrollado haciendo énfasis en el uso de imágenes de diagnostico médico usadas en la radiología, cardiología y otras disciplinas. Pero este puede ser usado para otro tipo de imágenes relacionados con el intercambio de información clínica en otros entornos médicos [ora07a]. Este estándar se conoce como Imágenes Digitales y Comunicación en Medicina (DICOM, por sus siglas en inglés Digital Imaging and Communications in Medicine DICOM ) En este estándar se específica desde la comunicación entre componentes de los sistemas, la explicación de la orientación de los pacientes y partes del cuerpo en los estudios y la definición de un servicio para el almacenamiento de los datos de los estudios. Uno de estos métodos de almacenamiento es el directorio DICOM o DICOMDIR, definido en la parte 10 y 11 de [ora07a], que provee de un índice y resumen de los archivos DICOM presentes en un medio off-line. Según el estándar un DICOMDIR debe incluir los registros de los pacientes, estudios, series e imágenes. Cada paciente puede tener uno o más estudios, cada estudio puede tener una o más series y cada serie puede tener una o más imágenes. En la Figura 1.3 se puede observar un diagrama con la estructura de un directorio DICOM. Este estándar es ampliamente utilizado en la actualidad y muestra de ello es que en la última versión del servidor de base de datos de Oracle R 11g se tiene soporte para guardar y consultar todo tipo de imágenes en formato DICOM [Ora07b]. 11

24 Figura 1.3: Estructura de un directorio DICOM o DICOMDIR Aprendizaje de Máquinas Russel y Norvic [RN95] dicen que el aprendizaje tiene lugar como resultado de la interacción entre el agente y el mundo, a partir de la observación por el agente de sus propios procesos de toma de decisiones y que el aprendizaje puede ir desde memorización de experiencias hasta la creación de teorías científicas. Según [Die03] el aprendizaje de máquinas es el estudio de métodos para programar computadoras para que estas aprendan. Mitchel [Mit06] menciona que el aprendizaje de máquinas busca responder la pregunta: Cómo se pueden construir sistemas que automáticamente mejoren con la experiencia, y qué son las leyes fundamentales que rigen todos los procesos de aprendizaje?. También en [Mit97] amplía un poco más el concepto diciendo que el aprendizaje de máquinas es un campo multidiciplinario, este toma resultados de inteligencia artificial, probabilidad y estadística, teoría de la complejidad computacional, teoría de control, la teoría de la información, la filosofía, la psicología, la neurobiología, y otros campos. También muestra una lista de aplicaciones que utilizan aprendizaje de máquinas que han y han sido probadas como son: 12

25 Reconocimiento de palabras. Manejo autónomo de vehículos. Clasificación de nuevas estructuras astronómicas. Jugar backgammon a nivel de un jugador de clase mundial Aprendizaje Basado en Instancias o Instance-Based Learning El aprendizaje basado en instancias o mejor conocido como Instance-Based Learning (IBL) es un método donde los ejemplos de entrenamiento se almacenan y el proceso de clasificación se realiza al momento de la evaluación. Por esta razón este tipo de métodos suele llamarse lazy (flojos en inglés). A diferencia de los métodos conocidos como ansiosos o eager donde se específica la función objetivo en el momento en que el conjunto de entrenamiento es proporcionado, cuando se utiliza el aprendizaje flojo cada vez que se realiza una consulta se encuentra una relación con los ejemplos y se examina con el fin de utilizar una función objetivo para esta instancia. Entre los algoritmos incluidos en este tipo de aprendizaje se encuentra el de vecinos más cercanos (nearest neighbor), regresión ponderada localmente (locally weighted regression) y razonamiento basado en casos (case-based reasoning). En el caso de vecinos más cercanos y regresión ponderada localmente, el aprendizaje consiste en preservar los ejemplos del conjunto de entrenamiento y utilizarlos para clasificar nuevas instancias. Este tipo de métodos puede construir una aproximación a la función objetivo para cada instancia de consulta a clasificarse. Esto constituye una ventaja según [Mit97] debido a que genera una solución local a cada instancia buscada, además que no importa si la función es compleja debido a que puede describirse como una colección de aproximaciones locales de menor complejidad. Una de las desventajas de estos métodos es que el costo de clasificar una nueva instancia puede ser muy alto. Debido a que la mayor parte del cómputo se realiza al momento de la clasificación, a diferencia de los métodos eager donde la mayor parte del cómputo ocurre al momento de 13

26 entrenamiento [Mit97]. Según David Aha en [AKA91] expresa que los algoritmos IBL tienen la ventaja de tener un costo relativamente bajo de actualización, debido a que solo basta con guardar más datos o los que se considere en el conjunto de entrenamiento. A continuación se presenta una implementación del algoritmo de vecinos más cercanos conocida como k-nearest neighbor y un refinamiento de este conocido como distance-weighted nearest neighbor Algoritmo K-nearest Neighbor El algoritmo asume que todas las instancias corresponden a puntos en un espacio n en R n. Los vecinos más cercanos de una instancia son definidos en términos de la distancia euclidiana. Cada instancia de x se describe por el vector de características (ver eq. (1.1)). a 1 (x), a 2 (x),... a n (x) (1.1) donde a k (x) denota el atributo k-esimo de la instancia x. La distancia entre dos instancias x i y x j se define como d(x i, x j ) (ver Eq. (1.2)). d(x i, x j ) n (a k (x i ) a k (x j )) 2 (1.2) k=1 El algoritmo de k-nearest neighbor es mostrado en el Código 1 3 para el caso de una función discreta, en donde se observa que el valor de f (x q ) son los valores de f que se acerquen más entre los k ejemplos cercanos a x. Se denomina k-nearest neighbor porque dependiendo del k escogido determinará el tamaño del conjunto de solución, por ejemplo, si se escoge k = 1 entonces f (x q ) tendrá el valor de f(x i ) donde x i es la instancia de entrenamiento más cercana a x. Para hacer que el algoritmo se adapte a funciones aproximadamente continuas hay que cambiar el último paso del Código 1, para que se calcule la media de los k ejemplos más cercanos en vez de calcular el valor mas común como se describre en la Ecuación (1.3) ki=1 f f(x i ) (x q ) k 3 Este algoritmo es tomado de Machine Learning de Tom Mitchel [Mit97] (1.3) 14

27 Código 1 k-nearest neighbor 1: Entrenamiento: Para cada ejemplo de entrenamiento (x, f(x)), añadir el ejemplo a la lista de ejemplos entrenamiento 2: Clasificación: Dado una instancia x q para ser clasificada, Si x 1... x k y denotando k instancias de ejemplos entrenamiento que son mas cercanos a x q Devolver k f (x q ) argmax v V δ(v, f(x i )) i=1 Donde δ(a, b) = 1 si a = b y δ(a, b) = 0 en cualquier otro caso Algoritmo de Distance-weighted Nearest Neighbor Una de las mejoras al algoritmo de k-nearest nieghbor presentadas en [Mit97] es añadir el peso de cada uno de los k vecinos de acuerdo a la distancia al punto buscado x q, asignándole mayor peso a los que se encuentran más cerca. Una manera de hacer esto es que se podría pesar a cada vecino de acuerdo al inverso del cuadrado de la distancia desde x q. En el Código 2 4 se muestra el algoritmo del Código 1 modificado para utilizar distance-weighted nearest neighbor. Código 2 distance-weighted nearest neighbor 1: Entrenamiento: Para cada ejemplo de entrenamiento (x, f(x)), añadir el ejemplo a la lista de ejemplos entrenamiento 2: Clasificación: Dado una instancia x q para ser clasificada, Si x 1... x k y denotando k instancias de ejemplos entrenamiento que son mas cercanos a x q Devolver k f (x q ) argmax v V w i δ(v, f(x i )) i=1 Donde δ(a, b) = 1 si a = b y δ(a, b) = 0 en cualquier otro caso y 1 w i d(x q, x i ) 2 El Código 2 trae como consecuencia que cuando x q es exactamente igual a x i el denominador de w i se hace cero. En este caso se debe asignar f (x q ) para que sea f(x i ), si hay varios casos de 4 Este algoritmo es tomado de Machine Learning de Tom Mitchel [Mit97] 15

28 ejemplos de esta forma, se deben asignar la mayoría de clasificación entre ellos. Para utilizar el algoritmo con valores reales se debe cambiar la ultima linea del Código 2 (ver Ecuación (1.4)) f (x q ) ki=1 w i f(x i ) i=1 kw i (1.4) 16

29 Capítulo 2 Diseño de la Aplicación En este capítulo se presentan los aspectos del diseño de la aplicación. Se discuten las funcionalidades de la aplicación, la adquisición de los datos, la estructura del sistema y el reconocimiento de patrones Funcionalidad La funcionalidad que se desea del sistema es que un usuario realice una búsqueda de espectros de resonancia magnética a través de un página web. Rosemary [Tat96] menciona la importancia de considerar al momento de diseñar un sistema que se utilizará para facilitar la interpretación de MRS, la cual es cómo presentar los resultados del análisis en un formato que sea accesible para el clínico. El usuario de computadora promedio puede manejar un navegador web y cada día es común encontrar más servicios que se realizan a través de la web, esto da pie a considerar que un sistema web puede ser utilizado por los radiólogos o personal médico sin requerir un nivel de aprendizaje alto y en corto tiempo poder utilizar el sistema. Además se tiene la ventaja de que se puede consultar desde cualquier lugar con conexión a Internet. La creación de un sistema web para la visualización de imágenes médicas ya ha sido creado antes como es el caso de Functional Imaging Web(FIWeb) [KFC01], pero este sistema se diseñó para imitar 17

30 las funcionalidades de un sistema PACS, y la aplicación que se propone en este trabajo está orientada a la búsqueda de patrones de tumores sólo en espectros de resonancia magnética. El resultado de una búsqueda debe ser un conjunto de imágenes con los espectros de tal manera que los usuarios puedan ver el resultado que arroja la aplicación y estas imágenes deberán poder ser vista individualmente con una resolución suficiente para su interpretación. La metáfora de la aplicación es busca un espectro similar a este, esta oración presenta una idea muy global de lo que se requiere hacer. Por lo tanto se debe considerar como el usuario final de la aplicación realizará dicha búsqueda. Como solución surgen dos alternativas: Proporcionar el archivo con el espectro. Diseñar un lenguaje de consulta. La primera alternativa tiene la ventaja de que se puede procesar directamente el archivo con el espectro y de requerir poca información de entrada del usuario. Pero tiene desventajas importantes como lo son el tiempo requerido para que el archivo sea colocado en el servidor, implementar varias funciones para leer la información de diferentes tipos de archivos y el espacio en el servidor para guardar temporalmente este archivo mientras se realiza la búsqueda, estos archivos pueden ser de pocos KiloBytes, hasta de cientos de MegaBytes. Por otro lado, el diseño de un lenguaje de consulta puede ser tan flexible o tan poderoso dependiendo de su diseño. Posee la desventaja de que el usuario debe aprender a trabajar con él. Teniendo en cuenta esto se considera que un lenguaje de consulta puede ser más conveniente para esta aplicación debido a los diversos problemas que se tiene al utilizar el archivo. Por las consideraciones que se plantean en la funcionalidad de la aplicación se observa que se deben implementar dos casos de usos. El primero consiste en que un usuario debe poder realizar una búsqueda y el segundo poder ver los espectros resultantes de dicha búsqueda. En la Figura 2.1 se presenta el diagrama de caso de uso que se va a implementar en la aplicación. 18

31 Figura 2.1: Diagrama de caso de uso Lenguaje de Consulta para Búsqueda El lenguaje de consulta consiste en un conjunto de palabras claves y valores numéricos para realizar las consultas. Inicialmente se tienen 6 palabras claves: min valor: busca el espectro cuyo mínimo se acerque al valor dado. max valor: busca el espectro cuyo máximo se acerque al valor dado. rgmin valor: busca los espectros cuyo mínimo de la serie sea mayor o igual valor dado. rgmax valor: busca los espectros cuyo máximo de la serie sea menor o igual al valor dado. rmax valor: busca los espectros cuyo máximo sea menor o igual al valor dado. rmin valor: busca los espectros cuyo mínimo sea mayor o igual al valor dado. Estos proveen una funcionalidad básica para el prototipo de la aplicación. Luego se podrían añadir palabras claves tales como proporciones entre picos, datos demográficos como edad y sexo, y datos clínicos como síntomas. 19

32 2.2. Adquisición y Distribución de los Datos Los datos que serían utilizados por esta aplicación son espectros de resonancia magnética, estos son usados en los centros médicos que posean un escáner para este fin. Se desearía que estos datos estén en formato DICOM (sección 1.2) para poder lograr una manera estándar de importarlos a las respectivas bases de datos. Esta aspiración no puede ser siempre encontrada en los centros médicos y hay que tener en cuenta que la data de los distintos centros pueden tener problemas de adquisición y de caracterización. La información estaría distribuida en diversos centros que se pueden encontrar distantes geográficamente, por lo tanto se debe diseñar la aplicación tomando en cuenta este aspecto. Además se debe considerar la privacidad y confidencialidad de los datos médicos, esto constituye un problema que se enfrentan las aplicaciones que tratan con datos clínicos. Roddick et al. [RFG03] mencionan el problema de la extrapolación de información a partir de datos médicos y el abuso del uso de estos datos, también comentan la publicación de unas encuestas que muestran preocupación por el uso de información privada como esta. Aunque la investigación en la que se centra el artículo de Roddick et al. es sobre datamining y comenta que dentro y fuera de la comunidad que utiliza datamining (KDD) hay una importante preocupación por el uso y abuso de la información sensible. Tomando en cuenta lo expuesto en los párrafos anteriores se considera que cada centro médico debería tener su propio repositorio de datos en el formato que la aplicación utilizará. El sistema buscaría la información en cada uno de los centros que formen parte del proyecto. En cuanto al problema de adquisición y caracterización que pudiera tenerse en algún centro, se plantea que se debe diseñar una combinación de procesos automáticos de detección de problemas y un sistema de subscripción al servicio del sistema de información mediante el cual se certifica que se han seguido ciertos procedimientos para asegurar la calidad de los datos. 20

33 2.3. Modelo de Persistencia de Datos A partir de datos de prueba en formato DICOM se pudieron observar los valores de las propiedades de los espectros de resonancia magnética. Se intentó simplificar los datos que se iban a guardar para intentar preservar la privacidad y confiabilidad de los datos en la aplicación. Debido a la naturaleza distribuida de la aplicación surge la dificultad de como identificar a cada uno de los espectros dentro de una serie y hacer a su vez que estos no hagan colisión con otros espectro en distintas base de datos. La intención es que se pueda ubicar un espectro sin importar en que ubicación se encuentre. Como solución a este problema se plantea la utilización de identificadores únicos universales o Universally Unique IDentifier (UUID) también conocidos como Globally Unique Identifier (GUID) el cual es una cadena de caracteres de 16 octetos (128 bits) y es un identificador que es único en todo el espacio y el tiempo, con respecto al espacio de todos los UUID [LMS05]. Una de las ventajas es que no necesita una autoridad centralizada a la cual se le tenga que hacer petición y el proceso de generación puede automatizarse. Siguiendo la jerarquía que posee un directorio DICOM (mostrada en la Figura 1.3) una Serie posee varias imágenes, en el caso de esta investigación se tienen espectros. Teniendo esto en cuenta se crearon 2 entidades, llamadas SERIE y SPECTRA, y una relación entre ellas llamada TIENE y la cardinalidad es que una serie tiene uno o más espectros. En la entidad SERIE se colocaron los atributos comúnes como lo son: Título. SOPClass uid. Mínimo de la serie. Máximo de la serie. Número de columnas. Número de filas. 21

34 Número de cuadros (frames). Número de datos por columna. Número de datos por filas. En la entidad SPECTRA se colocaron los atributos: Título. UUID. Espectro. Valor mínimo encontrado en el espectro. Valor máximo encontrado en el espectro. Comentario. El valor máximo y mínimo encontrado en un espectro en la entidad SPECTRA no viene especificado en el archivo DICOM, este sería calculado al momento de importar un espectro. La razón para incluir estos valores, es que se podría ahorrar tiempo en el momento de búsqueda debido a que este valor fue precalculado al momento de importar los datos. A partir de esta información se diseñó un diagrama de ER que se muestra en la Figura Estructura del Sistema de Información De las consideraciones expuestas hasta ahora el sistema de información esta conformado por un cliente que utilizará un navegador web para conectarse a un servidor donde correrá la aplicación. Este servidor se encargará de buscar los datos para realizar la búsqueda de espectros en diversas base de datos que se pueden encontrar distantes geográficamente y en diferentes servidores. Luego de ser procesada la información por el sistema esta genera una página con los resultados encontrados. En la Figura 2.3 se encuentra un diagrama de la estructura global del sistema de información planteado. 22

35 Figura 2.2: Esquema ER de la aplicación Figura 2.3: Estructura del Sistema de información 23

36 2.5. Reconocimiento de Patrones A partir de lo mostrado en el capitulo 1 y el problema que presenta el uso de algoritmos que requieran el uso de conjuntos de entrenamiento, se propone utilizar una técnica de aprendizaje lazy. Esto trae la ventaja que se pueden agregar más casos de tumores o fuentes de datos nuevas sin la necesidad de tener que re-entrenar. La desventaja es que el costo computacional es mucho más alto con este método, pero se intentará resolver ese problema intentando optimizar los componentes del sistema e intentando precalcular algunos valores, para aumentar la velocidad del reconocimiento de patrones. Para crear una búsqueda de patrones se necesita el patrón p del espectro s que se desea buscar. La base de datos d en donde se va a buscar el patrón y un operador de comparación c. El patrón es el resultado de aplicar una operación f sobre el espectro p = f(s), estas funciones pueden ser identidad (el espectro mismo), valor absoluto del espectro, selección de picos del espectro, proporciones entre picos del espectro, entre otras. El operador de comparación básico seria el de vecinos más cercanos n, este es el mas intuitivo. Luego el resultado sería r = n(f(d), f(s)) donde r sería la distancia euclídeana de cada espectro en la base de datos transformado de acuerdo a d con respecto a s, transformado respecto a f. Esta formulación matemática brinda una idea de la interfaz abstracta que haría falta diseñar y de las operaciones que hacen falta. Para el caso de este prototipo se busca la implementación del algoritmo de vecinos mas cercanos para probar el impacto que tiene la búsqueda en todos los datos de pruebas que se poseen Consideraciones para la Elección de Tecnología y Plataforma de Desarrollo El sistema de información será implementado utilizando herramientas y tecnologías de código abierto (open source) con la intención de que pueda ser distribuida, para su posible utilización 24

37 y extensión por parte de terceros. Por otra parte la Universidad Simón Bolívar fomenta en las asignaturas que se toman en pregrado en la carrera de Ingeniería de Computación a utilizar este tipo de tecnologías, de código abierto, y a formar a sus estudiantes en este ámbito. 25

38 Capítulo 3 Implementación de la Aplicación En este capítulo se presenta la descripción de la implementación realizada a partir de los aspectos planteados en el capítulo 2. Se presenta la plataforma de software en la cual se implementó el prototipo de la aplicación y se detallan los componentes del sistema Plataforma de Desarrollo Tomando en consideración lo planteado en la sección 2.6, se eligió utilizar tecnología Java para el desarrollo de la aplicación, la razón para escoger en específico esta herramienta es que es una plataforma estable y robusta. Además permite la fácil distribución de la aplicación a diversos sistemas de operación y se cuenta con la ventaja de que ya existe una librería para manipulación de archivos DICOM PixelMed [Clu] la cual se encuentra escrita en Java, lo que facilita la implementación. Para el desarrollo web se decidió optar por la utilización de un framework por simplicidad y utilizar las herramientas que se encuentran a disposición para agilizar la construcción de aplicaciones. En este sentido se escogió Spring Framework [Sou] (o como también se le conoce Spring) versión 2.5 el cual se le puede considerar como una colección de frameworks más pequeños. Spring cuenta con los siguientes módulos: Inversión de Control. 26

39 Programación orientada a aspectos. Acceso a datos. Manejador de Transacciones. Modelo-Vista-Controlador. Acceso Remoto. Autenticación y Autorización. Manejo Remoto. Mensajes. Pruebas unitarias. De estos módulos los que resultan de mayor interés son el de acceso a datos y el que implementa el patrón Modelo-Vista-Controlador. Una de las características que favorecieron la utilización de este framework es la flexibilidad que se tiene para escoger distintas tecnologías para implementar una aplicación. No impone un esquema ni las tecnologías que se deben utilizar sino que da la posibilidad de integrarse con diversas aplicaciones, como por el ejemplo se pueden utilizar varios ORMs como hibernate o ibatis. Para la persistencia de los datos se utilizó PostgreSQL [Gro] versión 8.3 un servidor de base de datos relacional de código abierto el cual es estable, posee conexión a través de JDBC y un tipo básico arreglo que permite guardar el espectro de una manera lógica y ordenada. A la vez que posee soporte para programar directamente en el manejador con el lenguaje Pl/pgSQL. Se utilizó Pl/Proxy [Sky] la cual es una extensión o módulo desarrollado por Skype R para distribuir datos en servidores PostgreSQL. Esta extensión se utiliza para particionar búsquedas, inserciones y actualizaciones, pero en el caso de este sistema sólo se utiliza la funcionalidad de realizar búsquedas. 27

40 Además se utilizó subversion como sistema de control de versiones para tener un historial de todos los cambio realizados al código fuente del sistema y NetBeans como IDE Componentes del Sistema El Sistema esta dividido en tres componentes el de servicio web, base de datos y reconocimiento de patrones, cada uno de estos componentes se detallan a continuación: Servicio Web Este componente posee todas las clases involucradas en la generación de páginas dinámicas y las imágenes de la aplicación Patrón Modelo-Vista-Controlador El patrón Modelo-Vista-Controlador fue implementado con Spring utilizando el componente que implementa dicho patrón. Este subcomponente esta constituido por varios paquetes de Java que se describen a continuación: Web: aquí se encuentran los controladores para las vistas de las páginas de información general, busqueda y resultado. Domain: en este paquete están los modelos del patrón. En este caso solo existen cuatro modelos Search: Este modelo se encarga de contener las búsquedas. Spectra: Este modelo tiene la representación de la información que se posee de los espectros. Es la representación de un espectro de la base de datos en un objeto en Java. SpectraResult: Es un modelo reducido del modelo Spectra, son objetos para colocar en la sesión del resultado. 28

41 Service: aquí se encuentran las clases que se encargan de manejar el modelo de espectros. Validator: contiene una única clase que se encarga de validar la consulta realizada en el FORM de la vista de la búsqueda. Se agregó la funcionalidad de filtrar la consulta que el usuario hace al sistema, de tal manera que solo las palabras claves de búsqueda y sus valores asociados son los que la aplicación procesa. Este proceso de filtrado se realiza mediante una expresión regular (ver Ecuación (3.1)). (. \\s + \\s )((rgmin rgmax rmin rmax min max jmax jmin) \\s + ([+ ]){0, 1}\\d + (\\.)? + \\d ) + (\\s +. \\s ) (3.1) Mediante el uso de grupos en la expresión regular se extraen los parámetros de las palabras claves. Esta funcionalidad se utilizó para agregar seguridad e intentar prevenir los SQLInjections. Dao: En este paquete contiene las configuraciones y clases para acceder a la información en las bases de datos. En la Figura 3.1 se muestra el diagrama de clases de estos componentes. Para la realización de las vistas se diseño un prototipo desarrollado en xhtml versión 1.1 y css versión 2.0, tratando de cumplir las normas especificadas en el estándar del World Wide Web Consortium (W3C ) [Conb] consiguiendo la validación del portotipo a través del sistema de validación en [Cona]. En la Figura 3.2 se puede observar la versión preliminar del prototipo. Luego se integró esta vista en xhtml con las generadas dinámicamente con JSP y JSLT, pero después de utilizar las etiquetas FORM generadas por la librerías de Spring, la página dejó de cumplir con las especificaciones del W3C y no es válida según [Cona], por lo tanto el prototipo del sistema no cumple con las especificaciones del estándar. Al obtener estos resultados se realizaron pruebas en diferentes exploradores tales como Safari, Internet Explorer, Konqueror, Opera y Firefox comprobando que el diseño no se deformara ni se presentara algún tipo de problema. 29

42 Figura 3.1: Diagrama de clases de los componentes que conforman el patrón MVC 30

43 Figura 3.2: Prototipo inicial de la página web del sistema, donde se muestra la página inicial de la aplicación Generación de Imágenes La generación de imágenes se realiza mediante un servlet que utiliza una de las funciones de PixelMed a partir de los arreglos de espectros. Estas imágenes se generan cada vez que se realiza una petición al servlet. Se generan dos tipos de imágenes; una son las miniaturas que se muestran en la página de los resultados y una de mayor tamaño para cuando se selecciona específicamente una imagen. Se agregó la funcionalidad de que se puedan escribir estas imágenes al filesystem del servidor donde se ejecuta la aplicación, con la intención de utilizarlas como cache. Esto podría reducir el tiempo de carga de la página de los resultados luego que se han realizado varias búsquedas. Mediante una opción en la búsqueda se pueden desactivar la utilización de imágenes en cache y se puede elegir si se generan la imágenes en fondo negro con la línea que representa el espectro en blanco o el fondo blanco con la línea en negro. Por defecto la aplicación utiliza el cache del servidor y las imágenes son generadas en fondo negro con la línea blanca. 31

44 Internacionalización Spring posee la capacidad de brindar soporte para que las aplicaciones sean diseñadas tomando en cuenta la internacionalización(i18n) y localización(l10n). Entonces se exploró la posibilidad de que el sistema tuviera esta capacidad. Debido a que las páginas son implementadas con JSLT se puede mostrar en el idioma apropiado. Cuando se realiza una petición de una página de la aplicación Spring intercepta la petición y determina la localidad del explorador que la realiza, si se cuenta con el idioma definido se muestra los mensajes en el idioma del explorador web de otra manera se mostrará el idioma que se tiene por defecto en la aplicación, la cual es inglés. Los errores de validación támbien fueron generados en los diversos idiomas. En el caso de esta implementación el lenguaje por defecto es el inglés y además se tiene soporte para español, francés y alemán Base de Datos Tomando en consideración el planteamiento de la sección 2.2 sobre el problema de consultar varias bases de datos se implantó la solución de utilizar un servidor proxy que realiza las consultas a las otras base de datos. Cambiando la estructura mostrada en la Figura 2.3 por la mostrada en la Figura 3.3 El componente de base de datos está constituido por un servidor de base de datos que sirve de proxy y varios servidores ORDBMS en donde están los datos que utiliza la aplicación. Todos los ORDBMS son servidores PostgreSQL [Gro] y el servidor proxy tiene instalada la extensión Pl/Proxy [Sky] para poder cumplir sus funciones. El modelo de ER propuesto en el capítulo 2 fue traducido al modelo relacional, el esquema para crear las tablas en la base de datos se presenta en la sección A del apéndice A. Se utilizó java.util.uuid.randomuuid() para la generación de los identificadores de los espectros. Este UUID es versión 4 según [LMS05], en donde los valores se generan con números pseudo-aleatorios. En [Wik] se muestra que la probabilidad de colisión de dos UUID realizados con 32

45 Figura 3.3: Estructura del Sistema de Información implementado esta función de Java es relativamente muy baja. Para intentar aumentar el desempeño del sistema al nivel de la base de datos se creó una vista materializada, que consiste en evaluar la definición de una vista y almacenar el resultado [RG00]. Cuando una consulta se realiza ahora sobre la vista ejecuta directamente en el resultado precomputado. Esta vista materializada es la que utiliza la aplicación y el proxy para obtener los datos de los espectros. Debido a que la unicidad de los UUID se decidió crear un indice sobre este atributo en la base de datos, del tipo árbol b para acelerar las búsquedas sobre este campo, teoricamente se deberia utizar un indice del tipo hash, pero la documentación de PostgreSQL [posb] muestra que los indices del tipo hash tiene un menor rendimiento que los árbol b. La ventaja del uso del servidor proxy es que para añadir nuevas fuentes de datos no se necesitan hacer cambios en la aplicación. Simplemente se cambia una función en el proxy especificando la dirección de la nueva base de datos. El cambio para la apliación se hace de manera transparente, 33

46 utilizando la fuente de datos agregada. Una de las desventajas del uso de esta implementación del proxy es que él no conoce de contraseñas asi que no hay manera de especificar cual es la contraseña al momento de que este se conecte. La solución aplicada fue de autorizar en la base de datos cliente la entrada del usuario del proxy sin contraseña Distribución y Carga de los Datos Los datos fueron cargados mediante una programa escrito en Java utilizando la librería Pixel- Med [Clu] para leer archivos DICOM. El programa presenta 2 variantes, una genera un archivo de texto sin formato con la sintaxis en SQL para realizar las inserciones y el otro se conecta directamente con la base de datos a través de JDBC. Se realizaron dos versiones del programa para ofrecer facilidades a la hora de importar los datos, en el caso de la implementación se escogió la que genera el archivo plano para poder hacer la migración de los datos del computador donde se desarrolló el sistema al ambiente de pruebas. Los datos fueron divididos en dos grupos, el primero el de los espectros provistos por NEMA [pix] y el segundo por los provistos por los productos Philips R [Phi]. El primer grupo esta compuesto por 10 series y 36 espectros de resonancia magnética y el segundo grupo por 9 series y 1163 espectros Reconocimiento de Patrones Para el reconocimiento de patrones se utilizó el algoritmo k-nearest neighbor presentado en la sección 1.3.1, utilizandolo sobre todos los espectro de resonancia magnética para buscar los vecinos más cercanos de las palabras claves para realizar las busquedas presentadas en la sección El componente de reconocimiento de patrones está compuesto en dos partes, uno es simplemente un paquete de java donde se encuentra una implementación del algoritmo k-nearest neighbor. El algoritmo es empleado para hallar los espectros con valor máximo o mínimo más cercano al que se proporciona en la búsqueda. También se implementó el mismo algoritmo en Pl/pgSQL con la intención de realizar compara- 34

47 ciones entre hacer el trabajo en la aplicación o poder delegar el trabajo a los distintos servidores de base de datos. Para ajustar que el algoritmo devuelva solo k vecinos más cercanos el proxy manda a ejecutar algoritmo, pidiendo a cada cliente que devuelva K valores y luego cuando tiene todas las soluciones se escogen los K con menor distancia, asi se garantiza que se tiene los vecinos más cercanos. En los dos casos las búsquedas por rango se hacen a nivel de la base de datos a causa de las facilidades que se tiene de hacer esto con una clausula where en la consulta SQL y el algoritmo de k-nearest neighbor se aplica solo cuando se busca un valor máximo o mínimo Integración de los Componentes El componente de Servicio Web se integra con el de Base de Datos a través del ORM ibatis [Foub]. La aplicación se conecta solo al servidor ORDMBS proxy y este se encarga de consultar a los servidores que poseen los datos de los espectros. El componente de reconocimiento de patrones se integra de manera transparente con el Servicio Web debido a que es solo un paquete de Java y las funciones escritas en Pl/pgSQL se instalan en los servidores de base de datos. Todos los componentes se ejecutan en un servidor web, en el caso de esta implementación es Apache Tomcat [Foua] versión 6, aunque podría correr sin ningún problema en otro servidor que implemente Java Servlet y la tecnología de JavaServer Pages como Glassfish [Mic]. En la Figura 3.4 se muestra el diagrama de arquitectura del sistema Resumen El resultado de la implementación explicada en este capítulo es un prototipo denominado MRSXplore, el cual presenta las funcionalidades básicas para realizar búsquedas en distintas base de datos. En la Figura 3.5 se muestra la página principal de la aplicación, en la Figura 3.6 se aprecia el resultado de una búsqueda y en la Figura 3.7 se muestra la ampliación de un espectro cuando un usuario hace clíc en una de las imágenes resultado de la búsqueda (ver Figura 3.6). 35

48 Figura 3.4: Diagrama de arquitectura del sistema 36

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Programa de Capacitación y Certificación. INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Contenido PERFIL DE UN ESPECIALISTA EN BASES DE DATOS.... 3 6231. MANTENIENDO UNA BASE DE DATOS DE SQL SERVER 2008

Más detalles

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012 TFC J2EE Aplicación Web para la gestión de facturación de una empresa de cerrajería Sara Gutiérrez Melero ITIG Junio de 2012 Consultor: Jose Juan Rodriguez Índice 1. Introducción Objetivos Planificación

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

Arquitectura para análisis de información. Zombi es una arquitectura que proporciona de manera integrada los componentes

Arquitectura para análisis de información. Zombi es una arquitectura que proporciona de manera integrada los componentes Capítulo 4 Arquitectura para análisis de información propuesta 4.1 Arquitectura Zombi es una arquitectura que proporciona de manera integrada los componentes necesarios para el análisis de información

Más detalles

I. OBJETIVOS INTRODUCCIÓN. Oscar Daniel Camuendo Vásquez e-mail: oscardny86@hotmail.com

I. OBJETIVOS INTRODUCCIÓN. Oscar Daniel Camuendo Vásquez e-mail: oscardny86@hotmail.com DISEÑO, IMPLEMENTACIÓN E IMPLANTACIÓN DE UNA APLICACIÓN WEB DE ADMINISTRACIÓN Y CONTROL DE CALIFICACIONES PARA LA UNIDAD EDUCATIVA PARTICULAR OVIEDO (SECCIÓN SECUNDARIA), UTILIZANDO SOFTWARE LIBRE. Oscar

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

INGENIERÍA EN INFORMÁTICA. Ingeniero en Informática

INGENIERÍA EN INFORMÁTICA. Ingeniero en Informática Facultad de Ingeniería Av. Paseo Colón 850 (C1063ACV) Ciudad de Buenos Aires Tel.: (011) 4343-0893 Fax: (011) 4345-7262 Página web: www.ingenieria.uba.ar Correo electrónico: academica@fi.uba.ar INGENIERÍA

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA

UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERIA Estudio de las herramientas TOAD y DBArtisan para la administración e integración de bases de datos relacionales. PREVIA OPCION AL TÍTULO DE: INGENIERO

Más detalles

Simulador de Protocolos de Red a tráves de WEB

Simulador de Protocolos de Red a tráves de WEB Simulador de Protocolos de Red a tráves de WEB Propuesta de Estudio 20071608 Director Ing. Francisco Antonio Polanco Montelongo Resumen Introducción Actualmente, el desarrollo tecnológico a alcanzado niveles

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Capítulo II. Arquitectura del Software

Capítulo II. Arquitectura del Software Capítulo II. Arquitectura del Software Después de un cuidadoso análisis de los objetivos del proyecto, se determinó que la mejor manera de estructurar el sistema era haciendo uso del muy famoso patrón

Más detalles

En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto.

En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto. APÉNDICES En el siguiente apartado se detallan ciertos conceptos que ayudan a comprender en mayor medida el Proyecto. APÉNDICE 1. Herramientas Las herramientas que se usaron en el análisis, desarrollo

Más detalles

PLIEGO DE PRESCRIPCIONES TÉCNICAS ÍNDICE 1. OBJETO... 2 2. ANTECEDENTES Y SITUACIÓN ACTUAL... 2

PLIEGO DE PRESCRIPCIONES TÉCNICAS ÍNDICE 1. OBJETO... 2 2. ANTECEDENTES Y SITUACIÓN ACTUAL... 2 PROCEDIMIENTO NEGOCIADO SIN PUBLICIDAD PARA LA ADJUDICACIÓN DEL CONTRATO DE SERVICIOS PARA EL DESARROLLO DE COMPONENTES PARA LAS APLICACIONES DE ADMINISTRACIÓN ELECTRÓNICA DEL SENADO PLIEGO DE PRESCRIPCIONES

Más detalles

Capítulo 1. Sistema de Control de Inventario y Reportes de Falla

Capítulo 1. Sistema de Control de Inventario y Reportes de Falla Capítulo 1 Sistema de Control de Inventario y Reportes de Falla 1.1 Descripción del Problema La Universidad de las Américas, Puebla (UDLA) cuenta con la Dirección de Capacitación y Servicios en Sistemas

Más detalles

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

El monitoreo de una variable física requiere supervisión permanente de señales que

El monitoreo de una variable física requiere supervisión permanente de señales que Capítulo 1 Marco Contextual 1.1. Formulación del problema 1.1.1. Definición del problema El monitoreo de una variable física requiere supervisión permanente de señales que varían con el tiempo. Tal información,

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

UNIVERSIDAD ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CIENCIAS DE LA SALUD ECISALUD GUIA DE COMPONENTE PRÁCTICO

UNIVERSIDAD ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CIENCIAS DE LA SALUD ECISALUD GUIA DE COMPONENTE PRÁCTICO UNIVERSIDAD ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CIENCIAS DE LA SALUD ECISALUD GUIA DE COMPONENTE PRÁCTICO DIPLOMADO DE TELESALUD E INFORMATICA MEDICA STEVE RODRIGUEZ GUERRERO DIRECTOR NACIONAL DEL

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

VISIÓN GENERAL HERRAMIENTAS COMERCIALES VISIÓN GENERAL El servidor de MS SQL se ha convertido en un estándar en muchas partes de la América corporativa. Puede manejar volúmenes de datos grandes y se integra bien con otros productos de Microsoft.

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Introducción a las bases de datos

Introducción a las bases de datos Introducción a las bases de datos Juan Ignacio Rodríguez de León Abstract Aplicaciones de los sistemas de bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visión de los datos.

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Implantación de Aplicaciones Web Fecha: 20-09-13

Implantación de Aplicaciones Web Fecha: 20-09-13 Página 1 de 24 RESUMEN DE LA PROGRAMACIÓN ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED CURSO AC. 2012 / 2013 ÁREA / MATERIA / MÓDULO PROFESIONAL Implantación de Aplicaciones Web (84 horas 4 horas semanales)

Más detalles

Descripción General de Softengine Pinakes

Descripción General de Softengine Pinakes Descripción General de Softengine Pinakes Características de Softengine Pinakes. Pinakes es un sistema modular altamente configurable que tiene las siguientes características: Es amigable con el usuario.

Más detalles

Introducción CAPÍTULO 1

Introducción CAPÍTULO 1 Introducción CAPÍTULO 1 6 CAPÍTULO 1 - Introducción. En la actualidad hay una gran cantidad de repositorios en los que se puede alojar código fuente para poder compartirlo con los usuarios que visiten

Más detalles

Resumen General del Manual de Organización y Funciones

Resumen General del Manual de Organización y Funciones Gerencia de Tecnologías de Información Resumen General del Manual de Organización y Funciones (El Manual de Organización y Funciones fue aprobado por Resolución Administrativa SBS N 354-2011, del 17 de

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

Capítulo 1. Introducción. 1.1. Antecedentes

Capítulo 1. Introducción. 1.1. Antecedentes Capítulo 1. Introducción En este capítulo se presenta una descripción general del problema a investigar y el enfoque con el que se aborda. Se establece la necesidad de incorporar técnicas de análisis novedosas

Más detalles

Capítulo 2. Marco Teórico

Capítulo 2. Marco Teórico Capítulo 2. Marco Teórico 2.1. Frameworks para Aplicaciones Web en Java Con el crecimiento exponencial de Internet en los últimos años, las aplicaciones Web se han convertido en una parte básica y común

Más detalles

PACS. Picture Archiving and Communication Systems

PACS. Picture Archiving and Communication Systems PACS Picture Archiving and Communication Systems Introducción Sistemas diseñados para la gestión de la imagen médica. No hay estándares. Utilizan como base DICOM. Qué es un PACS? Un sistema de adquisición

Más detalles

Anexo 4 Documento de Arquitectura

Anexo 4 Documento de Arquitectura Anexo 4 Documento de Arquitectura 1. Introducción El anexo se describe el propósito y alcance referentes al proyecto correspondiente al documento de arquitectura. 2. Propósito El propósito del anexo de

Más detalles

Análisis y diseño del sistema CAPÍTULO 3

Análisis y diseño del sistema CAPÍTULO 3 Análisis y diseño del sistema CAPÍTULO 3 36 CAPÍTULO 3 Análisis y diseño del sistema En este capítulo se pretende realizar un análisis detallado de los requerimientos del software a desarrollar para la

Más detalles

CAPÍTULO 5. Hemos utilizado la técnica de programación orientado a objetos por su

CAPÍTULO 5. Hemos utilizado la técnica de programación orientado a objetos por su 88 CAPÍTULO 5 5. IMPLEMENTACIÓN 5.1 Modelo Utilizado en Programación. Hemos utilizado la técnica de programación orientado a objetos por su eficiencia y eficacia en el modelo mvc, ya que permite la reutilización

Más detalles

Capítulo 1. Introducción

Capítulo 1. Introducción Capítulo 1. Introducción El WWW es la mayor fuente de imágenes que día a día se va incrementando. Según una encuesta realizada por el Centro de Bibliotecas de Cómputo en Línea (OCLC) en Enero de 2005,

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 4 Julio 2009 Índice 1. Generalidades... 3 1.1

Más detalles

Framework para el desarrollo ágil de aplicaciones

Framework para el desarrollo ágil de aplicaciones Framework para el desarrollo ágil de aplicaciones 1 Índice INTRODUCCIÓN... 3 QUÉ ES UN FRAMEWORK?... 3 VENTAJAS DE UTILIZAR UN FRAMEWORK... 4 DESVENTAJAS DE UTILIZAR UN FRAMEWORK... 5 CARACTERÍSTICAS DE

Más detalles

1 INTRODUCCIÓN. Yacelga De la Torre Carlos Paolo. e-mail: charles_ing@hotmail.com

1 INTRODUCCIÓN. Yacelga De la Torre Carlos Paolo. e-mail: charles_ing@hotmail.com PAPER 2012 DISEÑO, DESARROLLO E IMPLEMENTACIÓN DE UNA APLICACIÓN WEB PARA EL INGRESO Y CONSULTAS DE NOTAS ON-LINE PARA LA ACADEMIA MILITAR SAN DIEGO, UTILIZANDO SOFTWARE LIBRE (PHP Y MYSQL) Yacelga De

Más detalles

MS_20489 Developing Microsoft SharePoint Server 2013 Advanced Solutions

MS_20489 Developing Microsoft SharePoint Server 2013 Advanced Solutions S MS_20489 Developing Microsoft SharePoint Server 2013 Advanced Solutions www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P. 03800, México, D.F. Tel/Fax: 52785560 Introducción Este

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo Laboratorio de Redes de Neuronas Artificiales y Sistemas Adaptativos Universidade

Más detalles

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

Arquitectura y Diseño de la Solución

Arquitectura y Diseño de la Solución Arquitectura y Diseño de la Solución Recuento de Conceptos importantes Modelamiente / Versionamiento de trámites Vista Conceptual Subsistemas Funcionales Principales Detalle de los subsistemas Vista de

Más detalles

Herramienta de Gestión Integral de E-Business

Herramienta de Gestión Integral de E-Business Herramienta de Gestión Integral de E-Business Ingeniería técnica de informática de sistemas Autor: David López Martín Tutor: Antoni Oller Arcas Índice Introducción Metodología Análisis Diseño Planificación

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

Javier Velásquez Maldonado velasquezj7@hotmail.com. Jhoanna Isabel Lansinot Tocain jlansinot@yahoo.com

Javier Velásquez Maldonado velasquezj7@hotmail.com. Jhoanna Isabel Lansinot Tocain jlansinot@yahoo.com DISEÑO, DESARROLLO E IMPLANTACIÓN DE UNA APLICACIÓN WEB PARA LA AUTOMATIZACIÓN DE LA INFORMACIÓN DE LA IGLESIA EVANGÉLICA INDÍGENA ECUATORIANA DE LA ALIANZA CRISTIANA Y MISIONERA. Javier Velásquez Maldonado

Más detalles

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computación

Más detalles

Desarrollo de Aplicaciones con Tecnologías Web

Desarrollo de Aplicaciones con Tecnologías Web Desarrollo de Aplicaciones con Tecnologías Web Código: Modalidad: Distancia Duración: 100 Horas. Objetivos: La presente formación se ajusta al itinerario formativo del Certificado de Profesionalidad IFCD0210

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

DISEÑO, DESARROLLO E IMPLANTACIÓN DE UN SISTEMA WEB PARA LA GESTIÓN DE LA PROGRAMACIÓN MICRO CURRICULAR DE LAS UNIDADES ACADÉMICAS DE LA PUCE - SI

DISEÑO, DESARROLLO E IMPLANTACIÓN DE UN SISTEMA WEB PARA LA GESTIÓN DE LA PROGRAMACIÓN MICRO CURRICULAR DE LAS UNIDADES ACADÉMICAS DE LA PUCE - SI DISEÑO, DESARROLLO E IMPLANTACIÓN DE UN SISTEMA WEB PARA LA GESTIÓN DE LA PROGRAMACIÓN MICRO CURRICULAR DE LAS UNIDADES ACADÉMICAS DE LA PUCE - SI María Belén Buendía Arellano e-mail: mabe_7_18@hotmail.com

Más detalles

Software generador de documentos a través de la Web

Software generador de documentos a través de la Web Julia Patricia Melo Morín 1 Software generador de documentos a través de la Web 1 Contacto: patricia.melo@itspanuco.edu.mx Resumen Uno de los mayores problemas a los que se enfrentan las grandes corporaciones

Más detalles

Gestión de energía Solución integrada basada en la Web para el control de aplicaciones de energía convencional distribuida Modelo Em 2 -Server

Gestión de energía Solución integrada basada en la Web para el control de aplicaciones de energía convencional distribuida Modelo Em 2 -Server Gestión de energía Solución integrada basada en la Web para el control de aplicaciones de energía convencional distribuida Modelo Em 2 -Server Solución software con base de datos incorporada y servidor

Más detalles

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Primer avance de proyecto de software para la gestión de inscripciones en cursos Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados

Más detalles

Capítulo 11. Conclusiones y trabajo futuro

Capítulo 11. Conclusiones y trabajo futuro Capítulo 11. Conclusiones y trabajo futuro En esta tesis ha realizado un entorno de desarrollo Web que proporciona herramientas para la mejora de la calidad del código de los desarrolladores. Para conseguir

Más detalles

Escogiendo un sistema host

Escogiendo un sistema host 2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en www.plantwebuniversity.com. Fieldbus 402 Escogiendo un sistema host Generalidades Experiencia del proveedor

Más detalles

Parte 3 - Consultas SQL + Servicios Web + Índices

Parte 3 - Consultas SQL + Servicios Web + Índices Parte 3 - Consultas SQL + Servicios Web + Índices 12450 Estructuras de Datos y de la Información 2 Prácticas Laboratorio - Curso 2008-2009 3.1 Consultas SQL: Ernesto Arroyo Jesús Bisbal Philippe Roussel

Más detalles

Introducción a la Ingeniería de Software - Examen 20/07/2012

Introducción a la Ingeniería de Software - Examen 20/07/2012 Cada pregunta múltiple opción contestada correctamente tiene un valor de 2,5 puntos. Esta parte consta de 20 preguntas, haciendo un total de 50 puntos. Los ejercicios de desarrollo tienen un valor total

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Coordinación de SS y ER. Anteproyectos del CA TCyE

Coordinación de SS y ER. Anteproyectos del CA TCyE Coordinación de SS y ER Junio 2014 Anteproyectos del CA TCyE Cuerpo Académico Tecnología Computacional y Educativa Nombre del trabajo recepcional Estudio de las redes de conceptos bajo un enfoque de SNA

Más detalles

A partir de este capítulo se introducen términos, probablemente nuevos para el

A partir de este capítulo se introducen términos, probablemente nuevos para el CAPITULO 3. PSP 0 Y PSP 0.1 A partir de este capítulo se introducen términos, probablemente nuevos para el lector que tienen que ver en su totalidad con PSP. También se dan a conocer los formatos, "scripts

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen Indizen Labs imade Marco de Desarrollo Aplicaciones de Indizen Índice de contenidos Indizen Labs Introducción a imade Metodología imade Arquitectura imade Herramientas imade Indizen Labs Indizen Labs Son

Más detalles

Criterios de clasificación

Criterios de clasificación Criterios de clasificación Usualmente clasificamos para agrupar elementos con características comunes, simplificando la realidad y analizando un conjunto de elementos desde distintos puntos de vista. Sobre

Más detalles

Introducción a WebMathematica

Introducción a WebMathematica Introducción a WebMathematica WebMathematica es una nueva tecnología que permite la generación de contenido web dinámico con Mathematica. Se integra en Mathematica a través de un servidor web. WebMathematica

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

Sistema para creación de portafolios electrónicos EduFolia

Sistema para creación de portafolios electrónicos EduFolia Sistema para creación de portafolios electrónicos EduFolia Lidia Guerra Programa de Postgrado en Informática, PPI Maestría en Informática y Tecnología Educativa Universidad Nacional de Costa Rica (506)

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE VICERRECTORÍA ACADÉMICA

PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE VICERRECTORÍA ACADÉMICA RESOLUCIÓN Nº111/2012 APRUEBA CREACIÓN DEL MAJOR EN SISTEMAS AUTÓNOMOS Y ROBÓTICOS (INTERDISCIPLINARIO) PARA ALUMNOS DE LA LICENCIATURA EN CIENCIAS DE LA INGENIERÍA 1º Apruébese la creación del Major en

Más detalles

Para el seguimiento técnico del informe final se contrató al Sr. Marcelo Saenz, Ingeniero Civil Eléctrico, MBA de la Universidad de Chile.

Para el seguimiento técnico del informe final se contrató al Sr. Marcelo Saenz, Ingeniero Civil Eléctrico, MBA de la Universidad de Chile. INFORME DE SEGUIMIENTO PROYECTO INNOVA CHILE 1.- Antecedentes Generales Ejecutivo de Proyecto ERIKA GUERRA ESCOBAR Código del Proyecto 204-3981 Empresa Titulo del proyecto SOCIEDAD INGENIERIA E INSUMOS

Más detalles

En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro

En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro Capitulo 6 Conclusiones y Aplicaciones a Futuro. En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro para nuestro sistema. Se darán las conclusiones para cada aspecto del sistema,

Más detalles

Desarrollo de Soluciones Avanzadas con Microsoft SharePoint Server 2013

Desarrollo de Soluciones Avanzadas con Microsoft SharePoint Server 2013 Desarrollo de Soluciones Avanzadas con Microsoft SharePoint Server 2013 MOC: 20489, 35 hrs Acerca de este Curso Este curso ofrece a los desarrolladores de SharePoint de la información necesaria para implementar

Más detalles

SISTEMAS DE NOMBRES DE DOMINIO

SISTEMAS DE NOMBRES DE DOMINIO SISTEMAS DE NOMBRES DE DOMINIO La historia del sistema de nombres de dominio, DNS, se remonta a la década de los setenta, donde cada una de las computadoras conectadas a la red tenía asignada una dirección

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos.

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos. Tema 3. MODELOS 011 0 01 01 FUNDAMENTOS 1. Modelos computacionales. 2. Computación y Neurociencia. CONTENIDOS 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas

Más detalles

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones. Módulo Profesional: Servicios en Red. Código: 0227. Resultados de aprendizaje y criterios de evaluación. 1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

Más detalles

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción Dato: Hecho o valor a partir del cual se puede inferir una conclusión.

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard

Más detalles

SERVICIOS TELEMÁTICOS PARA GESTIÓN DEL TURISMO RURAL EN UNA COMARCA.

SERVICIOS TELEMÁTICOS PARA GESTIÓN DEL TURISMO RURAL EN UNA COMARCA. UNIVERSIDAD DE VALLADOLID ESCUELA UNIVERSITARIA POLITÉCNICA INGENIERO TÉCNICO INDUSTRIAL, ESPECIALIDAD EN ELECTRÓNICA INDUSTRIAL MEMORIA RESUMEN PROYECTO FIN DE CARRERA SERVICIOS TELEMÁTICOS PARA GESTIÓN

Más detalles

Dirección General de Educación Superior Tecnológica

Dirección General de Educación Superior Tecnológica Dirección General de Educación Superior Tecnológica 1. Datos Generales de la asignatura Nombre de la asignatura: Clave de la asignatura: Programación de dispositivos móviles RSM 1205 Créditos (Ht Hp_ créditos):

Más detalles

Parte I: Introducción

Parte I: Introducción Parte I: Introducción Introducción al Data Mining: su Aplicación a la Empresa Cursada 2007 POR QUÉ? Las empresas de todos los tamaños necesitan aprender de sus datos para crear una relación one-to-one

Más detalles

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos 1. Introducción Curso académico 2009-2010 La práctica de Integración de Sistemas consiste en el diseño

Más detalles

Servicios remotos de Xerox Un paso en la dirección correcta

Servicios remotos de Xerox Un paso en la dirección correcta Servicios remotos de Xerox Un paso en la dirección correcta Diagnostica problemas Evalúa datos de la máquina Solución de problemas Seguridad de cliente garantizada 701P42953 Acerca de los Servicios remotos

Más detalles

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en 15/05/2012 1 Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en aplicaciones informáticas en 1975. 2 Como

Más detalles

Custodia de Documentos Valorados

Custodia de Documentos Valorados Custodia de Documentos Valorados En el complejo ambiente en que se desarrollan los procesos de negocio actuales, se hace cada vez más necesario garantizar niveles adecuados de seguridad en la manipulación

Más detalles

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web Arquitectura 1.- Aplicaciones Web Definición Contenidos 1.- Aplicaciones Web 2.- Arquitectura de aplicaciones Web Lo que distingue una aplicación Web de una mero sitio Web reside en la posibilidad que

Más detalles