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

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

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

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

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

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

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

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

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

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

Sistemas de Informacion Radiologica

Sistemas de Informacion Radiologica 1 Sistemas de Informacion Radiologica Facultad: Ingeniería. Escuela: Biomédica Asignatura: Digitalización de Información en Servicios Médicos Objetivos Conocer los componentes que conforman un Sistema

Más detalles

Introducción a la herramienta para administración de información de especies y especímenes: Ara. María Mora, INBio. Costa Rica mmora@inbio.ac.

Introducción a la herramienta para administración de información de especies y especímenes: Ara. María Mora, INBio. Costa Rica mmora@inbio.ac. Introducción a la herramienta para administración de información de especies y especímenes: Ara María Mora, INBio. Costa Rica mmora@inbio.ac.cr Temario Objetivo del sistema Mecanismos de implementación

Más detalles

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas CAPITULO 1 Introducción a los Conceptos Generales de 1.1 Preliminares Las empresas necesitan almacenar información. La información puede ser de todo tipo. Cada elemento informativo es lo que se conoce

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

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

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

Capítulo 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacció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

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

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

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

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

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL MF0491_3: PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE. (IFCD0210: DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB) 180 HORAS PRESENCIALES Nº DE EXPEDIENTE: FC/2013/0064 ACCION 141 GRUPO 1 ACCIÓN FORMATIVA FINANCIADA

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

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

Proyecto de curso. Durante el curso de análisis y diseño 1, los estudiantes desarrollaron sus habilidades de abstracción y visión sistemática.

Proyecto de curso. Durante el curso de análisis y diseño 1, los estudiantes desarrollaron sus habilidades de abstracción y visión sistemática. Universidad de San Carlos Facultad de Ingeniería Ingeniería en Ciencias y Sistemas Análisis y Diseño de Sistemas 2 Proyecto de curso Durante el curso de análisis y diseño 1, los estudiantes desarrollaron

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

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

Etapas del desarrollo

Etapas del desarrollo Capítulo 4 Etapas del desarrollo Este capítulo documenta la aplicación del modelo presentado anteriormente, para el caso de la detección y clasificación de eventos sísmicos sobre señales digitales. El

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con Centro de Capacitación en Tecnologías de la Información Objetivo El objetivo del curso es brindar a los asistentes los conceptos y el uso de la tecnología de componentes J2EE. Se presentan las técnicas

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

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

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

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

Desarrollo de Aplicaciones con Tecnologías Web (Online) (Dirigida a la Acreditación de las Competencias Profesionales R.D.

Desarrollo de Aplicaciones con Tecnologías Web (Online) (Dirigida a la Acreditación de las Competencias Profesionales R.D. Desarrollo de Aplicaciones con Tecnologías Web (Online) (Dirigida a la Acreditación de las Competencias Profesionales R.D. 1224/2009) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Desarrollo de

Más detalles

Historia de revisiones

Historia de revisiones Binary Rain Glosario Versión 1.1 Historia de revisiones Fecha Versión Descripción Autor 17/08/2012 1.0 Creación del documento Carolina Trias 18/08/2012 1.1 Revisado y corregido por SQA Mercedes Marzoa

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

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA CARRERA: Ingeniería en Sistemas Perfil de Tesis para Proyecto Empresarial Aplicación para mejorar la evaluación del desempeño

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

Módulo Profesional 01: Bases de datos (código: 0484).

Módulo Profesional 01: Bases de datos (código: 0484). Módulo Profesional 01: Bases de datos (código: 0484). Actividades de enseñanza-aprendizaje que permiten alcanzar los objetivos del módulo. Interpretar diseños lógicos de bases de datos. Realizar el diseño

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

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

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

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

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

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web (Dirigida a la Acreditación de las Comptencias Profesionales R.D.

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web (Dirigida a la Acreditación de las Comptencias Profesionales R.D. IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web (Dirigida a la Acreditación de las Comptencias Profesionales R.D. 1224/2009) IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web (Dirigida a

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

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

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

DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA

DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA DPTO. DE CIENCIAS DE LA COMPUTACIÓN CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA ANÁLISIS, DESARROLLO E IMPLANTACIÓN DE UN SISTEMA ORIENTADO A LA WEB PARA GESTIÓN ACADÉMICA. CASO PRÁCTICO: JOHN OSTEEN

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

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

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

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

Web Forms. Para crear una aplicación Web de ASP.NET se utilizan los controles de las secciones HTML o Web Forms de la caja de herramientas.

Web Forms. Para crear una aplicación Web de ASP.NET se utilizan los controles de las secciones HTML o Web Forms de la caja de herramientas. Web Forms Web Forms es un nuevo modelo de programación para interfaces de usuario de Internet basado en ASP.NET que sustituye a WebClasses y el Diseñador de Web Forms sustituye al Diseñador de páginas

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

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

SOLUCIÓN DE UNA INTRANET BAJO SOFTWARE OPEN SOURCE PARA EL GOBIERNO MUNICIPAL DEL CANTÓN BOLÍVAR [IOS-GMCB]

SOLUCIÓN DE UNA INTRANET BAJO SOFTWARE OPEN SOURCE PARA EL GOBIERNO MUNICIPAL DEL CANTÓN BOLÍVAR [IOS-GMCB] Gobierno Municipal del Cantón Bolívar. SOLUCIÓN DE UNA INTRANET BAJO SOFTWARE OPEN SOURCE PARA EL GOBIERNO MUNICIPAL DEL CANTÓN BOLÍVAR [IOS-GMCB] Visión Universidad Técnica del Norte Histórico de Revisiones

Más detalles

1. Capítulo 1: Herramientas de Software para el sistema

1. Capítulo 1: Herramientas de Software para el sistema 1. Capítulo 1: Herramientas de Software para el sistema 1.1 Conceptos Generales 1.1.1 Joomla.- Es un sistema dinámico que gestiona y administra contenidos de código abierto, y permite desarrollar sitios

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar Gobierno Municipal del Cantón Bolívar Versión: Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Plan de Desarrollo de Software Universidad

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada.

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Esquema Introducción... 2 Historia... 2 Suites... 2 Herramientas ofimáticas... 3 Tipos de programas ofimáticos:...

Más detalles

Informe de avance Implementación herramientas de back-end (3-III).

Informe de avance Implementación herramientas de back-end (3-III). Proyecto RG-T1684 Desarrollo e implementación de las soluciones Prueba piloto del Componente III Informe Número 1. Informe de avance Implementación herramientas de back-end (3-III). Lautaro Matas 11/04/2013

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

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

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

SÍLABO DE SOLUCIONES WEB Y APLICACIONES DISTRIBUIDAS

SÍLABO DE SOLUCIONES WEB Y APLICACIONES DISTRIBUIDAS SÍLABO DE SOLUCIONES WEB Y APLICACIONES DISTRIBUIDAS I. INFORMACIÓN GENERAL 1.1 Facultad: Ingeniería 1.2. Carrera Profesional: Ingeniería en Sistemas Computacionales 1.3. Departamento: -----------------------

Más detalles

Diseño e implementación de la herramienta Cristali Programming

Diseño e implementación de la herramienta Cristali Programming Tecnológico de Costa Rica Escuela de Ingeniería en Computación Diseño e implementación de la herramienta Cristali Programming Informe Final de Práctica de Especialidad para optar por el título de Ingeniero

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

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

7. ACCESO A BASES DE DATOS LOCALES: BDE/IDAPI Y ODBC

7. ACCESO A BASES DE DATOS LOCALES: BDE/IDAPI Y ODBC 7. ACCESO A BASES DE DATOS LOCALES: BDE/IDAPI Y ODBC 7.1 IDAPI/BDE 7.1.1 Introducción La mayoría de los sistemas que hacen uso de las Tecnologías del Habla para proporcionar servicios de valor añadido

Más detalles

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar

Más detalles

Temario Detallado Curso Java Verano Online

Temario Detallado Curso Java Verano Online 1 Módulo I - Java desde cero: Conoce Java desde los fundamentos. Aprenderás la sintaxis básica, tipos de Datos y Sentencias de Control. Lección 1 - Características Básicas del Lenguaje Java Introducción

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

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

Confección y publicación de páginas Web

Confección y publicación de páginas Web 2014 Confección y publicación de páginas Web Docente: Manuel Fernández Catalán 0 ÍNDICE 1 Presentación... 2 2 Objetivos... 2 3 Tecnología... 2 4 Metodología y evaluación... 3 5 Material didáctico... 3

Más detalles

SIGADE 6: requisitos de hardware y software y prerrequisitos de formación

SIGADE 6: requisitos de hardware y software y prerrequisitos de formación SIGADE 6: requisitos de hardware y software y prerrequisitos de formación DMFAS6/HardwareSoftware/V5 Mayo de 2015 2 SIGADE 6: requisitos de hardware y software y prerrequisitos de formación Índice ACERCA

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

Programación Orientada a Objetos (Online)

Programación Orientada a Objetos (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Programación Orientada a Objetos (Online) Programación Orientada a Objetos (Online) Duración: 250 horas Precio: 250 * Modalidad: Online * Materiales

Más detalles

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS

PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS CARRERAS DE DOS AÑOS TECNICATURA EN PROGRAMACIÓN DE COMPUTADORAS PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS Resolución UB 004/14 ANEXO Tabla general de asignaturas del Plan de Estudios y Obligaciones Académicas

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

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

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB Objetivos Generales: Al término de esta acción formativa los participantes alcanzarán los siguientes objetivos: Preparar profesionales para el desarrollo

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

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Curso Android Curso Online Desarrollo en Celulares con Android

Curso Android Curso Online Desarrollo en Celulares con Android Curso Android Curso Online Desarrollo en Celulares con Android Academia Mañana Paseo de la Castellana, 51 - Madrid 28046 Programa General del Curso Desarrollo en Celulares con Android Módulo Uno - Programación

Más detalles

Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB

Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB Universidad idad de las Islas Baleares Centro de Tecnologías de la Información n (CTI@UIB( CTI@UIB) Daniel López Janáriz Objetivos

Más detalles

Implementación de un sistema Pacs basado en el estándar DICOM para almacenamiento de imágenes médicas digitales

Implementación de un sistema Pacs basado en el estándar DICOM para almacenamiento de imágenes médicas digitales Implementación de un sistema Pacs basado en el estándar DICOM para almacenamiento de imágenes médicas digitales IPSOFT Imágenes y Terapias Mínimamente Invasivas Versión 1.1 Cali Colombia MARZO 03-2011

Más detalles

Inteligencia Artificial y Seguridad Informática. en plataformas Open Source

Inteligencia Artificial y Seguridad Informática. en plataformas Open Source Inteligencia Artificial y Seguridad Informática en plataformas Open Source Jornadas de Software Libre y Seguridad Informática Santa Rosa La Pampa 4 y 5 de Diciembre de 2009 AGENDA Primera Parte Definiciones

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

Integración HMI-PLC. una ventaja competitiva real.

Integración HMI-PLC. una ventaja competitiva real. La manufactura esbelta es una poderosa herramienta probada que aumenta la eficiencia en los procesos de producción. Conceptos y prácticas similares que eliminan "desperdicios" (equipo innecesario y los

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

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

UNIVERSIDAD TÉCNICA DEL NORTE

UNIVERSIDAD TÉCNICA DEL NORTE UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS ESCUELA DE INGENIERIA EN SISTEMAS COMPUTACIONALES TEMA: Metodología para la Implementación de Intranets AUTORES: Irving M. Reascos

Más detalles

Internet - Web. Internet - Web. Internet. Internet. Diseño de Sitios Web Desarrollo de Paginas Web. Qué es la Internet? - Qué es la Web?

Internet - Web. Internet - Web. Internet. Internet. Diseño de Sitios Web Desarrollo de Paginas Web. Qué es la Internet? - Qué es la Web? Desarrollo de Paginas Web Internet - Web Internet - Web Qué es la Internet? - Qué es la Web? Internet: Una red de computadoras a nivel mundial Web: Una forma de organizar la información existente en Internet

Más detalles

con certif icado de profesionalidad

con certif icado de profesionalidad CARACTERÍSTICAS El diseño web está cambiando en poco tiempo. Las nuevas tecnologías y estándares de programación están revolucionando tanto la forma de crear web como de interactuar con ellas. En nuestro

Más detalles