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

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

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

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

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

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

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

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

Más detalles

<Generador de exámenes> Visión preliminar

<Generador de exámenes> Visión preliminar 1. Introducción Proyecto Final del curso Técnicas de Producción de Sistemas Visión preliminar Para la evaluación de algunos temas de las materias que se imparten en diferentes niveles,

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

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

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

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

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

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

[Guía N 1 Introducción al Portal WEB de la Universidad Simón Bolívar]

[Guía N 1 Introducción al Portal WEB de la Universidad Simón Bolívar] AULA EXTENDIDA El aula extendida es el espacio que ofrece el portal de la universidad para que, a través de la plataforma MOODLE, los docentes mantengan una comunicación online en el proceso enseñanza

Más detalles

CAPÍTULO 1 Instrumentación Virtual

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

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

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

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

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Nicole García Gómez 2830047-6 Diego Riquelme Adriasola 2621044-5 RESUMEN.- La minería de datos corresponde a la extracción

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

CURSO COORDINADOR INNOVADOR

CURSO COORDINADOR INNOVADOR CURSO COORDINADOR INNOVADOR PRESENTACIÓN La tarea que el Ministerio de Educación se propone a través de Enlaces, en relación al aseguramiento del adecuado uso de los recursos, con el fin de lograr un impacto

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

Resumen General del Manual de Organización y Funciones

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

Más detalles

5.2. PROYECTO RODA. http://roda.ibit.org/index.cfm (6/07/04).

5.2. PROYECTO RODA. http://roda.ibit.org/index.cfm (6/07/04). 5.2. PROYECTO RODA Se trata de un proyecto 1 piloto de demostración tecnológica, cofinanciado por el PROFIT 2003, cuya duración se fijó de Enero 2003 a Marzo de 2004. Los participantes son ROBOTIKER, la

Más detalles

Parte I: Introducción

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

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos INGENIERÍA DE SOFTWARE Sesión 3: Tipos Contextualización Actualmente existe una gran variedad en los software que se pueden clasificar en varias categorías, como pueden ser, por tipo de licencia, tipo

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

CAPÍTULO 3 VISUAL BASIC

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

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Microsoft SQL Server Conceptos.

Microsoft SQL Server Conceptos. Microsoft Conceptos. Microsoft 2005 es una plataforma de base de datos a gran escala de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP). La siguiente tabla muestra

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

Información de Producto:

Información de Producto: Windows Server 2008 Foundation La nueva tecnología rentable de Windows Server 2008 Foundation La tecnología confiable y comprobada de Windows Server Foundation proporciona una base para ejecutar las aplicaciones

Más detalles

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

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

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red. Comercio electrónico. (e-commerce) Las empresas que ya están utilizando la red para hacer comercio ven como están cambiando las relaciones de la empresa con sus clientes, sus empleados, sus colaboradores

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

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

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE 3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE Software Configuration Management (SCM) es una disciplina de la Ingeniería de Software que se preocupa de [Ber92] [Ber84] [Bou98] [Mik97]: Identificar y documentar

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura 1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos

Más detalles

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO 1 Objetivo del Manual Elaborado por: Revisado por: Aprobado por: Fecha: 13/08/2015 Difusión: Información del Manual

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

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Capítulo 1 Introducción

Capítulo 1 Introducción Capítulo 1 Introducción Dentro de los muchos campos que abarca la universidad para la investigación científica, se encuentra el de los Sistemas de Información Geográfica (SIG). Para ello, cuenta con el

Más detalles

I INTRODUCCIÓN. 1.1 Objetivos

I INTRODUCCIÓN. 1.1 Objetivos I INTRODUCCIÓN 1.1 Objetivos En el mundo de la informática, la auditoría no siempre es aplicada en todos las empresas, en algunos de los casos son aplicadas por ser impuestas por alguna entidad reguladora,

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

Aplicación para la gestión de prácticas en empresas. Memoria

Aplicación para la gestión de prácticas en empresas. Memoria Aplicación para la gestión de prácticas en empresas. Memoria El proyecto se basa en la creación de una aplicación para la gestión de prácticas curriculares en empresas de los alumnos de la Facultad de

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

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

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

Más detalles

CMMI (Capability Maturity Model Integrated)

CMMI (Capability Maturity Model Integrated) CMMI (Capability Maturity Model Integrated) El SEI (software engineering institute) a mediados de los 80 desarrolló el CMM (modelo de madurez de la capacidad de software). CMMI: CMM integrado, una mezcla

Más detalles

Software de Simulación aplicado a entornos de e-learning

Software de Simulación aplicado a entornos de e-learning Software de Simulación aplicado a entornos de e-learning 2009 Laboratorio de Investigación de Software Universidad Tecnológica Nacional Facultad Regional Córdoba Titulo del Proyecto Software de Simulación

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

Más detalles

E-learning: E-learning:

E-learning: E-learning: E-learning: E-learning: capacitar capacitar a a su su equipo equipo con con menos menos tiempo tiempo y y 1 E-learning: capacitar a su equipo con menos tiempo y Si bien, no todas las empresas cuentan con

Más detalles

SIEWEB. La intranet corporativa de SIE

SIEWEB. La intranet corporativa de SIE La intranet corporativa de SIE por ALBA Software Acceso a los servicios SIE desde páginas Web para los usuarios de sistema *. Administración del Sistema (cuentas de usuarios, permisos, servicios, etc...)

Más detalles

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

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

Más detalles

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

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final INTRODUCCION En principio surgió la idea de un buscador que brinde los resultados en agrupaciones de

Más detalles

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) OFERTAS TECNOLÓGICAS 1) GESTIÓN ORGANIZACIONAL Y LOGÍSTICA INTEGRADA: TÉCNICAS Y SISTEMAS DE INFORMACIÓN 2) GESTIÓN

Más detalles

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

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

Más detalles

understanding documents Digitalización y Captura Inteligente de Documentos

understanding documents Digitalización y Captura Inteligente de Documentos Digitalización y Captura Inteligente de Documentos Mayo 2013 Poder mantener accesibles los documentos desde cualquier punto del planeta y utilizar la información contenida en ellos se ha vuelto crítico

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

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

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

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

Más detalles

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar

Más detalles

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido Tabla de contenido 1 INFORMACIÓN PERSONAL... 2 1.1 Cómo ingresar al Aula Digital?... 2 1.2 Qué hacer si olvida su contraseña?... 2 1.3 Qué veo cuando

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

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: INSTALACIÓN Y PARTICIONAMIENTO

Más detalles

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS

Más detalles

Guía Metodológica para el diseño de procesos de negocio

Guía Metodológica para el diseño de procesos de negocio Guía Metodológica para el diseño de procesos de negocio La guía desarrollada para apoyar TBA, se diseñó con base en las metodologías existentes para el desarrollo BPM, principalmente en aquellas que soportan

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler Bizagi Process Modeler Copyright 2011 - Bizagi Tabla de Contenido CRM- Gestión de Oportunidades de Venta... 4 Descripción... 4 Principales Factores en la Construcción del Proceso... 5 Modelo de Datos...

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa Código del programa: PEMDE Programa Experto en MANEJO DE DATOS CON EXCEL Modalidad: Virtual Descripción del programa 1 Presentación del programa Justificación Microsoft Excel es la herramienta de manejo

Más detalles

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA En el capítulo anterior se describió la situación inicial en la que se encontraba la Coordinación de Cómputo Académico (CCA) del Departamento de Ingenierías (DI) de la

Más detalles

ADAPTAEMPLEO INFORME ACCESIBILIDAD. octubre 2013. Versión 1.0

ADAPTAEMPLEO INFORME ACCESIBILIDAD. octubre 2013. Versión 1.0 ADAPTAEMPLEO INFORME ACCESIBILIDAD octubre 2013 Versión 1.0 1.0 Primera versión del documento. CONTROL DE CAMBIOS Índice de Contenido 1. ACCESIBILIDAD WEB...4 2. PUNTOS DE VERIFICACIÓN...5 2.1. IMÁGENES

Más detalles

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14 EVALUACIÓN A TRAVÉS DE LA WEB: EL SISTEMA TUTORMAP 1 R.Criado, D.Martín y S. Sánchez (GIEMATI, Dpto. de CC. Experimentales e Ingeniería de la URJC) Resumen En este trabajo se describen las características

Más detalles

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS SISTEMA DE ESPECIICACION DE REQUERIMIENTOS Presentado por: Jefferson Peña Cristian Álvarez Cristian Alzate 10 CONTENIDO 1. INTRODUCCIÓN 1.1. PROPÓSITO 1.2. AMBITO DEL SISTEMA 1.3. DEFINICIONES, ACRÓNIMOS

Más detalles

2 EL DOCUMENTO DE ESPECIFICACIONES

2 EL DOCUMENTO DE ESPECIFICACIONES Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir

Más detalles

Sistema de marketing de proximidad

Sistema de marketing de proximidad Dizan Vasquez Propuesta de proyecto Sistema de marketing de proximidad ACME México Dizan Vasquez Índice general 1. Descripción 3 2. Resúmen ejecutivo 4 2.1. Objetivo.................................................

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

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores Infraestructura Tecnológica Sesión 1: Infraestructura de servidores Contextualización La infraestructura de cualquier servicio o mecanismo es importante, define el funcionamiento de los elementos en que

Más detalles

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc. Página 1 BUSCADORES EN INTERNET Internet es una red de redes informáticas distribuidas por todo el mundo que intercambian información entre sí mediante protocolos 1 TCP/IP. Puede imaginarse Internet como

Más detalles

Utilizacion de Sistemas PACS

Utilizacion de Sistemas PACS 1 Facultad: Ingeniería. Escuela: Biomédica Asignatura: Digitalización de Información en Servicios Médicos Utilizacion de Sistemas PACS Objetivos Utilizar las herramientas básicas de un Sistema PACS, en

Más detalles

ANALIZANDO GRAFICADORES

ANALIZANDO GRAFICADORES ANALIZANDO GRAFICADORES María del Carmen Pérez E.N.S.P.A, Avellaneda. Prov. de Buenos Aires Instituto Superior del Profesorado "Dr. Joaquín V. González" Buenos Aires (Argentina) INTRODUCCIÓN En muchos

Más detalles

Qué es Google Calendar? Qué se puede hacer en Google Calendar?

Qué es Google Calendar? Qué se puede hacer en Google Calendar? Qué es Google Calendar? Google Calendar es una herramienta web 2.0 que permite tener una agenda virtual a la que se puede acceder desde cualquier lugar, en forma gratuita. La característica más interesante

Más detalles

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Cenditel, Mayo 2011 Licencia de Uso Copyright (c) 2010, Alvarez J., Solé S., Briceño R., Fundación CENDITEL. La Fundación CENDITEL

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

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: TRABAJO BIBLIOGRAFICO DE, CONCEPTOS, IMÁGENES, EJEMPLOS,

Más detalles