ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INFORMATICO SISTEMA DE ACCESO, REPRESENTACIÓN GRÁFICA Y GENERADO DE INFORMES UMLS Autor: Daniel Anta Díaz Director: Israel Alonso Martínez Madrid Septiembre 2014 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático AUTORIZACIÓN DIVULGACIÓN PARA EN LA DIGITALIZACIÓN, ACCESO ABIERTO ( DEPÓSITO RESTRINGIDO) Y DE DOCUMENTACIÓN 1º. Declaración de la autoría y acreditación de la misma. El autor D. _____________________________________ , como _______________ de la UNIVERSIDAD PONTIFICIA COMILLAS (COMILLAS), DECLARA que es el titular de los derechos de propiedad intelectual, objeto de la presente cesión, en relación con la obra__________________________________________________________________ ____________________________________________________________________1, que ésta es una obra original, y que ostenta la condición de autor en el sentido que otorga la Ley de Propiedad Intelectual como titular único o cotitular de la obra. En caso de ser cotitular, el autor (firmante) declara asimismo que cuenta con el consentimiento de los restantes titulares para hacer la presente cesión. En caso de previa cesión a terceros de derechos de explotación de la obra, el autor declara que tiene la oportuna autorización de dichos titulares de derechos a los fines de esta cesión o bien que retiene la facultad de ceder estos derechos en la forma prevista en la presente cesión y así lo acredita. 2º. Objeto y fines de la cesión. Con el fin de dar la máxima difusión a la obra citada a través del Repositorio institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( con las limitaciones que más adelante se detallan) 1 por todos los usuarios del repositorio y del Especificar si es una tesis doctoral, proyecto fin de carrera, proyecto fin de Máster o cualquier otro trabajo que deba ser objeto de evaluación académica UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático portal e-ciencia, el autor CEDE a la Universidad Pontificia Comillas de forma gratuita y no exclusiva, por el máximo plazo legal y con ámbito universal, los derechos de digitalización, de archivo, de reproducción, de distribución, de comunicación pública, incluido el derecho de puesta a disposición electrónica, tal y como se describen en la Ley de Propiedad Intelectual. El derecho de transformación se cede a los únicos efectos de lo dispuesto en la letra (a) del apartado siguiente. 3º. Condiciones de la cesión. Sin perjuicio de la titularidad de la obra, que sigue correspondiendo a su autor, la cesión de derechos contemplada en esta licencia, el repositorio institucional podrá: (a) Transformarla para adaptarla a cualquier tecnología susceptible de incorporarla a internet; realizar adaptaciones para hacer posible la utilización de la obra en formatos electrónicos, así como incorporar metadatos para realizar el registro de la obra e incorporar “marcas de agua” o cualquier otro sistema de seguridad o de protección. (b) Reproducirla en un soporte digital para su incorporación a una base de datos electrónica, incluyendo el derecho de reproducir y almacenar la obra en servidores, a los efectos de garantizar su seguridad, conservación y preservar el formato. . (c) Comunicarla y ponerla a disposición del público a través de un archivo abierto institucional, accesible de modo libre y gratuito a través de internet.2 2 En el supuesto de que el autor opte por el acceso restringido, este apartado quedaría redactado en los siguientes términos: (c) Comunicarla y ponerla a disposición del público a través de un archivo institucional, accesible de modo restringido, en los términos previstos en el Reglamento del Repositorio Institucional UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático (d) Distribuir copias electrónicas de la obra a los usuarios en un soporte digital. 3 4º. Derechos del autor. El autor, en tanto que titular de una obra que cede con carácter no exclusivo a la Universidad por medio de su registro en el Repositorio Institucional tiene derecho a: a) A que la Universidad identifique claramente su nombre como el autor o propietario de los derechos del documento. b) Comunicar y dar publicidad a la obra en la versión que ceda y en otras posteriores a través de cualquier medio. c) Solicitar la retirada de la obra del repositorio por causa justificada. A tal fin deberá ponerse en contacto con el vicerrector/a de investigación ([email protected]). d) Autorizar expresamente a COMILLAS para, en su caso, realizar los trámites necesarios para la obtención del ISBN. d) Recibir notificación fehaciente de cualquier reclamación que puedan formular terceras personas en relación con la obra y, en particular, de reclamaciones relativas a los derechos de propiedad intelectual sobre ella. 5º. Deberes del autor. El autor se compromete a: a) Garantizar que el compromiso que adquiere mediante el presente escrito no infringe ningún derecho de terceros, ya sean de propiedad industrial, intelectual o cualquier otro. b) Garantizar que el contenido de las obras no atenta contra los derechos al honor, a la intimidad y a la imagen de terceros. c) Asumir toda reclamación o responsabilidad, incluyendo las indemnizaciones por daños, que pudieran ejercitarse contra la 3 En el supuesto de que el autor opte por el acceso restringido, este apartado quedaría eliminado. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Universidad por terceros que vieran infringidos sus derechos e intereses a causa de la cesión. d) Asumir la responsabilidad en el caso de que las instituciones fueran condenadas por infracción de derechos derivada de las obras objeto de la cesión. 6º. Fines y funcionamiento del Repositorio Institucional. La obra se pondrá a disposición de los usuarios para que hagan de ella un uso justo y respetuoso con los derechos del autor, según lo permitido por la legislación aplicable, y con fines de estudio, investigación, o cualquier otro fin lícito. Con dicha finalidad, la Universidad asume los siguientes deberes y se reserva las siguientes facultades: a) Deberes del repositorio Institucional: - La Universidad informará a los usuarios del archivo sobre los usos permitidos, y no garantiza ni asume responsabilidad alguna por otras formas en que los usuarios hagan un uso posterior de las obras no conforme con la legislación vigente. El uso posterior, más allá de la copia privada, requerirá que se cite la fuente y se reconozca la autoría, que no se obtenga beneficio comercial, y que no se realicen obras derivadas. - La Universidad no revisará el contenido de las obras, que en todo caso permanecerá bajo la responsabilidad exclusiva del autor y no estará obligada a ejercitar acciones legales en nombre del autor en el supuesto de infracciones a derechos de propiedad intelectual derivados del depósito y archivo de las obras. El autor renuncia a cualquier reclamación frente a la Universidad por las formas no ajustadas a la legislación vigente en que los usuarios hagan uso de las obras. - La Universidad adoptará las preservación de la obra en un futuro. medidas necesarias para la UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático b) Derechos que se reserva el Repositorio institucional respecto de las obras en él registradas: - retirar la obra, previa notificación al autor, en supuestos suficientemente justificados, o en caso de reclamaciones de terceros. Madrid, a ……….. de …………………………... de ………. ACEPTA Fdo…………………………………………………………… UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Proyecto realizado por el alumno/a: Daniel Anta Díaz Fdo.: ........................ Fecha: ....../ ....../ ...... Autorizada la entrega del proyecto cuya información no es de carácter confidencial EL DIRECTOR DEL PROYECTO Israel Alonso Martínez Fdo.: ........................ Fecha: ....../ ....../ ...... Vº Bº del Coordinador de Proyectos Israel Alonso Martínez Fdo.: ........................ Fecha: ....../ ....../ ...... UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Agradecimientos Quiero expresar mi más sincero agradecimiento a todo el mundo que he tenido cerca y me han apoyado durante estos años de carrera. En primer lugar a toda mi familia, en particular a mi padre y mi madre que me han ayudado todo lo que han podido y más, y sin los que nada de esto hubiera sido posible. En segundo lugar quiero agradecer a mis amigos de toda la vida por los buenos momentos que hemos pasado juntos y que han servido para que no me rindiera en ningún momento, a Javi y Dani por los días de trabajo y apoyo juntos, y a María por estar junto a mi en los momentos más difíciles. Por último, quiero a gradecer a todos los profesores de la universidad con los que he crecido como persona y como estudiante, y que han contribuido, cada uno con su granito de arena, en mi formación. Muchas gracias a todos. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático SISTEMA DE ACCESO, REPRESENTACIÓN GRÁFICA Y GENERADO DE INFORMES UMLS Autor: Anta Díaz, Daniel. Director: Alonso Martínez, Israel. Entidad Colaboradora: ICAI – Universidad Pontificia Comillas RESUMEN DEL PROYECTO Introducción El Unified Medical Language System, o UMLS, agrupa un conjunto de archivos y software relacionados con el mundo de la biomedicina que permiten la interacción entre numerosos sistemas de terminología. Los métodos de acceso al UMLS son limitados y para usuarios que no están acostumbrados a trabajar con cantidades de información grandes puede suponer un reto importante. Este proyecto pretende realizar un acercamiento a la estructura del UMLS como fuente de conocimiento médico y se plantea un sistema que permite la extracción de información del Metatesuro de manera mas cercana al usuario, ademas de la estructuración de dicha información para su representación en forma de grafos, lo que permite una mejor visualización de la información. El sistema se ha desarrollado para el tratamiento de las relaciones entre conceptos dentro del UMLS exclusivamente, por lo que los grafos representan las relaciones entre diferentes conceptos del Metatesauro. Para apoyar la información de los grafos el sistema también permite la emisión de informes para cada uno de los grafos donde se presenta la misma información con un nivel mucho mayor de detalle. Etapas de la resolución La consecución de los objetivos del proyecto se ha dividido en las siguientes etapas: UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático 1. Estado del UMLS: Para poder trabajar con la herramienta planteada es necesario entender la estructura del Metatesauro UMLS, por lo que en esta primera etapa se realiza un análisis en profundidad de su estructura y características. 2. Instalación UMLS y uso local: En esta etapa del proyecto se describe el proceso de instalación del Metatesauro a nivel local para poder trabajar con su información a nivel local estructurada en una base de datos. Esta base de datos sirve de apoyo al sistema de acceso para la comparación de resultados obtenidos y como referencia para la navegación por la estructura del Metatesauro. 3. Sistema de acceso a UMLS: Esta etapa supone la última fase en el desarrollo del proyecto y constituye el núcleo del mismo. En ella se analiza la API proporcionada por el UTS1 como herramienta de acceso al conocimiento recogido en el conjunto de recursos relacionados con el Metatesauro y se desarrolla el sistema planteado para la estructuración, representación y visualización de dicha información. Tecnologías y herramientas empleadas En la realización del proyecto se han utilizado las siguientes herramientas informáticas. • Eclipse para la programación de la aplicación en Java, destacando el uso de las siguientes librerías ◦ Java Universal Network/Graph Framework (JUNG) 2.0 para la representación, visualización y manejo de grafos. ◦ UTS API 2.0 para las llamadas de la aplicación a la API de UMLS. 1 • MySQL 5.6 como BBDD para el Metatesauro de UMLS. • HeidiSQL como gestor de la BBDD. UMLS Terminology Services UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático • LibreOffice 4.2 • Linux 3.10.40-1-MANJARO 64 bits Resultados Los casos de estudio planteados se han construido sobre dos conceptos de entre toda la información contenida dentro del UMLS. Se ha intentado que los conceptos seleccionados difieran en complejidad en cuanto a las relaciones con otros conceptos del Metatesauro. Los resultados se exponen tanto en forma de grafos como en forma de informes donde la información mostrada es mucho mas detallada. En la imagen superior se puede ver un grafo generado por el sistema que representa las relaciones entre varios conceptos dentro del Metatesauro. La representación de la información es original y clara, y adicionalmente es posible navegar por el grafo y realizar el zoom deseado dentro de la aplicación. Para complementar la información del grafo también se han generado informes de los resultados obtenidos con el objeto de analizar en mas detalle la información representada. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático A continuación se puede ver un ejemplo de informe: RELACIONES PARA EL CONCEPTO C0020179-Huntington Disease, Niveles: 1, Tipos: PAR-CHD, Fuente: ALL NR | CO | ND | CD | TR | F ---------------------------------------------------------------------------------------------------------------- 1-0-C0020179-Motion and Coordination Diseases and Syndromes-1- C0553607-CHD-SNM Conclusiones Se ha conseguido desarrollar un sistema que permite generar grafos e informes mediante un buen sistema de filtrado que permite la visualización de información muy compleja, de una manera original y práctica dentro del mundo de la biomedicina. El sistema supone una alternativa y sus características permiten una mejora grande de eficacia respecto a otros métodos de acceso y visualización de la información de UMLS. Referencias [BODE04] Bodenreider, O. (2004). The unified medical language system (UMLS): integrating biomedical terminology. Nucleic acids research, 32(suppl 1), D267D270. [LIND93] Lindberg, D. A., Humphreys, B. L., & McCray, A. T. (1993). The Unified Medical Language System. Methods of information in medicine, 32(4), 281-291. [HUMP93] Humphreys, B. L., & Lindberg, D. A. (1993). The UMLS project: making the conceptual connection between users and the information they need. Bulletin of the Medical Library Association, 81(2), 170. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático SYSTEM FOR ACCESS, GRAPH REPRESENTATION AND GENERATION OF UMLS REPORTS Author: Anta Díaz, Daniel. Director: Alonso Martínez, Israel. Affiliation: ICAI – Universidad Pontificia Comillas ABSTRACT Introduction The Unified Medical Language System, or UMLS, gathers a set of files and software related with the biomedicine world that enables the interaction between multiple terminology services. UMLS access methods are limited and can be tough to use for users that are not used to work with big amounts of information. This project aims to make an aproach to the UMLS structure as a source of medical knowledge, and it proposes a system able to extract informacion from the Metathesaurus in a more user friendly way, adicionally, it structures said informaction for its representation in the form of graphs, so that it improves its visualization. The system has been developed for the threatment of UMLS concept relations exclusively, and the graphs are their visual representation. To help understand the graphs information, the system also permits the generation of reports consisting of the same information represented in the graph but on a more detailed level. Stages of resolution To archieve the proposed objectives the project has been divided in the following steps: 4. State of the UMLS: A requirement to able to work with the proposed tool is the understanding of the UMLS Metathesaurus structure. Thus in this step an in depth analysis of the UMLS structure and characteristics is performed. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático 5. UMLS Instalation and local use: This step of the project describes the installation process of the Metathesaurus to be able to work with its information on a local database. This database serves to support the access system for the comparison of results obtained and as a reference for the navigation of the metathesaurus structure. 6. UMLS access system: This stage represents the final and core stage in the development of the project. In it, the UTS1 API is analyzed, as it represents and access tool to the knowledge gathered in the Metathesaurus sources, and the proposed system for the structuring, representation and visualization of said information is developed. Technologies and tools The following tools have been used: • Eclipse for the coding of the application, highlighting the following libreries: ◦ Java Universal Network/Graph Framework (JUNG) 2.0 for the representation, visualization, and management of graphs. ◦ UTS API 2.0 • MySQL 5.6 • HeidiSQL • LibreOffice 4.2 • Linux 3.10.40-1-MANJARO 64 bits Results The proposed case studies have been built up around two conceps from all the information that forms the UMLS. This concepts have been carefully selected so that they differ in complexity in terms of relations with other concepts in the Metathesaurus. 1 UMLS Terminology Services UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático The results are displayed in the form of graphs and reports where the information is showed in more detail. In the image above a graph generated by the application showing the different relation between conecepts from the UMLS can be seen. The representation of the information is shown in an original and clear way, and its possible to navigate through the graph, aswell as to zoom in and out in the application. To complement the information on the graph, reports of the results obtained are also generated in order to analyze in more detail the information represented. Below you can see a sample report: RELATIONS FOR THE CONCEPT C0020179-Huntington Disease, Levels: 1, Types: PAR-CHD, Source: ALL NR | CO | ND | CD | TR | F ---------------------------------------------------------------------------------------------------------------- 1-0-C0020179-Motion C0553607-CHD-SNM Conclusions and Coordination Diseases and Syndromes-1- UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático The application proposed has succeded in the generation of graphs and reports using a good filtration system that allows the visualiation of complex information in an original and practical way in the world of biomedicine. The system provides an alternative and its features allow a large improvement in effectiveness compared to other methods of access and visualization of the UMLS information. References [BODE04] Bodenreider, O. (2004). The unified medical language system (UMLS): integrating biomedical terminology. Nucleic acids research, 32(suppl 1), D267D270. [LIND93] Lindberg, D. A., Humphreys, B. L., & McCray, A. T. (1993). The Unified Medical Language System. Methods of information in medicine, 32(4), 281-291. [HUMP93] Humphreys, B. L., & Lindberg, D. A. (1993). The UMLS project: making the conceptual connection between users and the information they need. Bulletin of the Medical Library Association, 81(2), 170. UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice Índice de la Memoria 1 Introducción .......................................................................... 1 1.1 Motivación del proyecto ............................................................. 1 1.2 Objetivos ................................................................................... 1 1.3 Metodología/Solución desarrollada ............................................. 2 1.4 Herramientas empleadas ............................................................ 3 2 Etapas de la resolución .......................................................... 5 2.1 Estado del UMLS ........................................................................ 5 2.1.1 Introducción ........................................................................................................ 5 2.1.2 Definición y características de UMLS ................................................................... 6 2.1.3 Estructura y Accesibilidad ................................................................................... 8 2.2 Proceso de Instalación UMLS y uso local .................................... 37 2.2.1 Instalación de MySQL ........................................................................................ 37 2.2.2 Instalación de UMLS .......................................................................................... 38 2.2.3 Carga de la Base de Datos ................................................................................ 43 2.3 Sistema de acceso a UMLS Terminology Services ....................... 45 2.3.1 Introducción ...................................................................................................... 45 2.3.2 Acerca de UTS API 2.0 ....................................................................................... 45 2.3.3 Conexión y llamadas a la API ............................................................................. 54 2.3.4 Descripción del sistema y funcionalidad ............................................................ 56 2.3.5 Modelado del sistema (Diagrama UML) ............................................................. 69 2.3.6 Java Universal Network/Graph Framework (JUNG) ............................................. 76 2.3.7 Descripción de la representación gráfica ........................................................... 77 2.3.8 Descripción de la generación de informes ......................................................... 83 3 Casos de estudio/Resultados ................................................. 87 3.1 Primer caso de estudio ............................................................. 88 3.1.1 C0020179, CHD-PAR, Todos los recursos, 1 salto. .............................................. 88 3.1.2 C0020179, CHD-PAR, Todos los recursos, 2 saltos ............................................. 90 3.1.3 C0020179,RB-RN, Todos los recursos, 1 salto .................................................... 92 I UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice 3.1.4 Consulta SQL para concepto C0020179, RB-RN ................................................ 94 3.2 Segundo caso de estudio .......................................................... 95 3.2.1 C0018787, CHD-PAR, Todos los recursos, 1 salto. .............................................. 95 3.2.2 C0018787, CHD-PAR, SNMI, 2 saltos, 5 relaciones máx. .................................... 99 3.2.3 C0018787, CHD-PAR, SNMI, 3 saltos, 5 relaciones máx. .................................. 102 3.2.4 C0018787, CHD-PAR, SNMI, 4 saltos, 5 relaciones máx. .................................. 106 3.2.5 Consulta SQL para concepto C0018787, CHD-PAR .......................................... 111 4 Conclusiones ...................................................................... 113 5 Futuros Desarrollos ............................................................ 115 6 Bibliografía ........................................................................ 117 II UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice Índice de Tablas Tabla 1: Tipos de relaciones...............................................................................12 Tabla 2: Estructura tabla MRCON.......................................................................16 Tabla 3: Estructura tabla MRSO.........................................................................17 Tabla 4: Estructura tabla MRCUI........................................................................18 Tabla 5: Estructura tabla MRRANK.....................................................................18 Tabla 6: Estructura tabla MRREL........................................................................20 Tabla 7: Estructura tabla MRMAP.......................................................................22 Tabla 8: Estructura tabla MRDOC.......................................................................23 Tabla 9: Consulta sobre la tabla MRCONSO.......................................................25 Tabla 10: Consulta sobre la tabla MRCUI...........................................................27 Tabla 11: Consulta sobre la tabla MRCONSO.....................................................31 Tabla 12: Consulta sobre la tabla MRRANK........................................................32 Tabla 13: Consulta sobre tabla MRREL...............................................................34 Tabla 14: Consulta sobre la tabla MRRMAP........................................................36 Tabla 15: Consulta sobre la tabla MRDOC..........................................................36 Tabla 16: Consulta SQL concepto C0020179.....................................................95 Tabla 17: Consulta SQL concepto C0018787...................................................112 III UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice IV UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice Índice de Figuras Figura 1: Recursos del UMLS................................................................................7 Figura 2: Componentes del UMLS........................................................................9 Figura 3: Ejemplo relaciones entre conceptos del Metatesauro.........................30 Figura 4: Interfaz bienvenida MetamorphoSys..................................................39 Figura 5: Especificaciones directorios y componentes UMLS.............................40 Figura 6: Niveles de subconjuntos del Metatesauro..........................................41 Figura 7: Opciones de salida de la instalación...................................................42 Figura 8: Instalación en proceso........................................................................43 Figura 9: Interfaz principal del sistema..............................................................57 Figura 10: Selección fuentes destino en la interfaz...........................................58 Figura 11: Búsqueda por CUI.............................................................................59 Figura 12: Resultado búsqueda por CUI.............................................................62 Figura 13: Ejemplo recorrido profundidad..........................................................68 Figura 14: Clase Main........................................................................................69 Figura 15: Clase Interfaz....................................................................................70 Figura 16: Clase ClienteRecursivo.....................................................................71 Figura 17: Clase Acceso.....................................................................................72 Figura 18: Clase GestorGrafos...........................................................................73 Figura 19: Clase Resultado................................................................................73 Figura 20: Clase Nodo........................................................................................74 Figura 21: Clase Concepto.................................................................................75 Figura 22: Relaciones clases del sistema...........................................................76 Figura 23: Estructura tipo FRLayout..................................................................81 V UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Índice Figura 24: Estructura tipo CircularLayout..........................................................82 Figura 25: Relaciones 1 nivel CHD-PAR concepto C0020179.............................89 Figura 26: Relaciones 1 nivel CHD-PAR concepto C0020179.............................90 Figura 27: Relaciones 1 salto RB-RN concepto C0020179.................................93 Figura 28: Relaciones 1 salto CHD-PAR concepto C0018787.............................96 Figura 29: Relaciones 2 saltos CHD-PAR concepto C0018787.........................100 Figura 30: Ejemplo generación de grafo poco filtrado.....................................102 Figura 31: Relaciones 3 saltos CHD-PAR concepto C0018787.........................103 Figura 32: Relaciones 4 saltos CHD-PAR concepto C0018787.........................107 VI UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Introducción 1 INTRODUCCIÓN 1.1 Motivación del proyecto Debido a las grandes cantidades de información que se manejan en la actualidad, el análisis de la misma en el ámbito de trabajo correspondiente, así como su estructuración y representación de una manera clara forman parte de cualquier proyecto a día de hoy. En dicha linea de trabajo, la motivación del proyecto ha sido el estudio del UMLS como fuente de conocimiento médico, de su estructura y diseño interno, ademas de la manipulación de dicha información mediante el Sistema de acceso, representación gráfica, y generado de informes de UMLS propuesto. 1.2 Objetivos El proyecto tiene, como primer objetivo el análisis del Metatesauro UMLS como fuente de conocimiento medico, sus orígenes y como surgió como proyecto, junto con su estructura y partes de la que esta compuesto. Seguidamente se ha realizado la programación de una aplicación en Java usando la API proporcionada por UMLS para la extracción y filtrado de la información del Metatesauro. Dicha información se presenta en forma de grafos para facilitar la visualización de la misma, entender las relaciones entre conceptos de dicha información y proporcionar un punto de vista alternativo y original. Adicionalmente las consultas realizadas por la aplicación son comparadas con los resultados de peticiones realizadas a nivel local sobre la base de datos de UMLS en SQL. 1 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Introducción Dicha aplicación además de la presentación gráfica, busca el acceso a múltiples niveles de información, acceso a diversos recursos, y un filtrado sencillo para el usuario pero a la vez complejo con respecto a la generación de grafos. Las conclusiones y resultados obtenidos en cuanto a la información extraída mediante la aplicación, y el comportamiento de la misma serán los evaluadores de la ventaja real de usar la API proporcionada. 1.3 Metodología/Solución desarrollada Para la consecución de los objetivos planteados anteriormente se ha estructurado el proyecto de la siguiente manera. En el capítulo 2, se desarrollan los dos objetivos principales que forman la columna principal del proyecto y que juntos conforman y dan vida a la aplicación desarrollada y ademas permiten un análisis y evaluación de los resultados obtenidos por la misma. En primer lugar, en el apartado 2.1 se describe y analiza el Metatesauro Unified Medical Language System (UMLS) que constituye los cimientos del proyecto y sirve como base para los desarrollos posteriores. Se profundiza en sus orígenes y como surgió como proyecto, además de la estructura del mismo y sus características. A continuación, en el apartado 2.2 se analiza el Sistema de acceso a los servicios de UMLS planteado en este proyecto, estudiando la API como herramienta de acceso al conocimiento recogido en el conjunto de recursos relacionados en el Metatesauro, para su estructuración, tratamiento y representación visual, y así permitir una mejor interpretación y visualización de las relaciones entre conceptos de dicho Metatesauro. Para esta interpretación y visualizado de la información extraída previamente de una manera alternativa e interactiva se ha plantea un sistema de visualización gráfico mediante grafos, así como la posibilidad de extracción de 2 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Introducción informes en ficheros de texto que permiten un mayor nivel de detalle en la información. 1.4 Herramientas empleadas En la realización del proyecto se han utilizado las siguientes herramientas informáticas. • Eclipse para la programación de la aplicación en Java, destacando el uso de las siguientes librerías ◦ Java Universal Network/Graph Framework (JUNG) 2.0 para representación y visualización y manejo de grafos. ◦ UTS API 2.0 para las llamadas de la aplicación a la API de UMLS. • MySQL 5.6 como BBDD para el metatesauro de UMLS. • HeidiSQL como gestor de la BBDD. • LibreOffice 4.2 • Linux 3.10.40-1-MANJARO 64 bits 3 la UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Introducción 4 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS 2 ETAPAS DE LA RESOLUCIÓN 2.1 Estado del UMLS 2.1.1 Introducción Desde su creación, el proyecto UMLS ha sido dirigido por un equipo formado por personal de la Biblioteca Nacional de Medicina estadounidense (NLM), financiado mediante proyectos de investigación y desarrollado por grupos de trabajo relacionados con el mundo de la biomedicina, universidades e incluso alguna empresa privada y aconsejado tanto al principio como en la actualidad por un amplio número de usuarios de los productos que ofrece el UMLS. En las primeras fases del proyecto, en torno al 1986 y 1988, el énfasis estaba en asegurar las necesidades básicas, definiendo los componentes que se iban a necesitar para tener una versión inicial y totalmente funcional de UMLS. Desde el 1989 al 1991 la prioridad cambio a un desarrollo y distribución mucho mas rápidos de las tres primeras versiones de los recursos del UMLS, aunque no se abandonó el desarrollo de prototipos para probar la funcionalidad del mismo. El objetivo era la integración de una una serie de recursos independientes como fuente de conocimiento, junto con los pasos necesarios para alcanzar unas prestaciones finales deseadas y poder así ponerlas en manos de una seria de desarrolladores de sistemas lo antes posible. Finalmente, el NLM publico la primera versión experimental de los recursos del UMLS a finales de 1990 y mas tarde publicó unas ediciones actualizadas en 1991 y 1992. En 1992 el proyecto entró en su tercera y ultima fase. El objetivo principal para el periodo de 1992-1994 era el desarrollo de una variedad de aplicaciones que 5 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS se fundamentarán en la información disponible en los recursos del UMLS. Otro objetivo principal es el desarrollo de sistemas de producción robustos para la creación y actualización de los recursos del UMLS, la publicación de versiones anuales de sus recursos con actualizaciones y mejoras que reflejan el feedback recibido de aquellos que se encuentran desarrollando las aplicaciones. Se buscaba adicionalmente el desarrollo de políticas y procedimientos para la distribución rutinaria de los recursos según salen de la fase experimental y entran en producción y por último definir y desarrollar aplicaciones del UMLS útiles, de nuevo basadas en el feedback de aquellos que usan los recursos del UMLS. En la actualidad aunque el enfoque de los esfuerzos en el desarrollo de aplicaciones útiles para el UMLS se encuentra distribuido, los recursos del UMLS se desarrollan de manera centralizada. El NLM dirige la creación, mantenimiento y distribución de los recursos, con la ayuda de las entidades involucradas en los múltiples contratos de los que dispone [BLHU93]. 2.1.2 Definición y características de UMLS UMLS, o Unified Medical Language System, es un conjunto de recursos software y de información del dominio diseñado y mantenido por el NLM que reúne estándares y vocabulario relacionado con el mundo de la biomedicina para así habilitar la interacción entre los diversos sistemas de terminología. Debido a que el número de recursos biomédicos existentes en la actualidad y disponibles para los desarrolladores es enorme, el volumen de documentos consultados dentro de la literatura medica es consecuentemente muy grande. 6 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Figura 1: Recursos del UMLS El objetivo del UMLS es reflejar la totalidad del conocimiento biomédico sobre una ontología formada por la relación e integración de la mayoría de los recursos existentes (ver Figura 1: Recursos del UMLS), facilitando el desarrollo de SI (Sistemas de Información) y TIC (Tecnologías de Información y comunicaciones), que permitan ser usadas como herramientas de apoyo en el procesamiento del lenguaje natural, recuperación de información, clustering de documentos, etc... Todo ello dentro del ámbito biomédico. Esto se consigue solventando dos problemas principales; • La variedad de maneras en las que los mismos conceptos son expresados por diferentes fuentes de información. • Integración de las diferentes fuentes de información o recursos • La distribución de la información útil a lo largo de los diferentes sistemas y bases de datos 7 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS De manera concisa y resumida los dos grandes problemas anteriores se podrían plantear de la siguiente manera; • Disparidades en el lenguaje • Disparidades en la granularidad y la perspectiva • Problemas en las asignaciones y la agregación de la información en los SI UMLS tiene muchos usos, pero principalmente es usado para desarrollar o mejorar aplicaciones, como por ejemplo; • Acceso y extracción de información • Procesamiento del lenguaje natural • Indexado automático y herramientas de clasificación • Archivos médicos electrónicos Sin embargo es importante resaltar que UMLS no es una aplicación de cara al usuario final, sino que, como ya se ha comentado anteriormente es un conjunto de recursos software y de información del dominio descritos mas adelante y que se ponen a disposición del usuario para la consecución de los objetivos descritos previamente. 2.1.3 Estructura y Accesibilidad La estructura básica del UMLS consiste de 3 fuentes de conocimiento como se puede ver en la Figura 2: Componentes del UMLS; • Metatesauro • Red Semántica • Herramientas del procesado del lenguaje 8 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Figura 2: Componentes del UMLS Estos componentes, (fuentes de conocimiento), pueden ser usados de manera conjunta o por separado, según las necesidades del usuario y están disponibles de la siguiente manera; • Archivos de datos accesibles a través de los sistemas de información (tablas relacionales) ◦ Registros (Filas) ◦ Campos (Columnas) • Aplicaciones ◦ MetamorphoSys (instalación y personalización) ◦ RRF Browser (Vista) ◦ lvg (Programas léxicos) Metatesauro El Metatesauro es una superontología medica muy extenso, multilingue y multifuncional que contiene información acerca de conceptos biomédicos relacionados con el mundo de la salud, junto con sus respectivos nombres y relaciones entre ellos. 9 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Diseñado para ser usado por desarrolladores de sistemas, el Metatesauro esta construido a partir de versiones electrónicas de varios tesauros, clasificaciones, sets de códigos, y listas de términos usados en la atención a pacientes, facturación de servicios médicos , estadísticas medicas públicas, indexado y catalogado de literatura medica e investigación medica básica. El uso de los recursos de información varía en función de su uso, estructura y propiedades. Algunas de las fuentes disponibles por ejemplo son: • MeSH: Vocabulario terminológico controlado para publicaciones de artículos y libros de ciencia. • ICD9: Códigos para la clasificación de enfermedades. • CPT: Códigos de servicios medios, quirúrgicos y de diagnóstico • SNOMED-CT: Sistemas de codificación dentro de la terminología clínica. La lista completa es muy extensa [SOUR14] y contiene información adicional además de los recursos, como el número de conceptos que están presentes en el Metatesauro, el tipo de jerarquías o de contextos (si tienen), y también si forma parte de alguno de las fuentes de vocabulario de menor tamaño que no se suelen actualizar de manera habitual dentro del Metatesauro. Recursos La lista de los recursos que el Metatesauro pone a disposición del usuario es muy extensa, como se ha visto anteriormente, e incluye terminologías diseñadas para su uso en sistemas que almacenan historias clínicas, gran cantidad de clasificaciones de enfermedades y procedimientos utilizados para la presentación de informes estadísticos y facturación, vocabularios muy concretos utilizados para el registro de datos relacionados con la psiquiatría, enfermería, dispositivos médicos, etc. Dentro del Metatesauro los conceptos pertenecientes a todas las fuentes de conocimiento vistas anteriormente se relacionan entre ellos. Dichas relaciones 10 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS se clasifican de una manera mas consistente dentro del la Red Semántica del UMLS. Dentro de la estructura de la Red Semántica, a muchos conceptos se le asigna un tipo de relación semántica, lo que hace que cada uno tenga una posición dentro de una jerarquía y puedan establecerse relaciones semánticas entre estos tipos. Cada uno de los nodos pertenecientes a dicha jerarquía, que disponen de un tipo de relación (REL) están conectados con un vinculo (RELA). Para su uso dentro del proyecto se han seleccionado dos relaciones jerárquicas directas (PAR/CHD), y dos relaciones jerárquicas indirectas (RB/RN), no obstante existen más relaciones dentro del Metatesauro representadas en la siguiente tabla. 11 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS REL (Relación) AQ Calificador permitido CHD Tiene una relación de tipo hijo dentro de la fuente de vocabulario del Metatesauro DEL Concepto eliminado PAR Tiene una relación de tipo padre dentro de la fuente de vocabulario del Metatesauro QB Puede ser calificado por RB Tiene una relación extensa RL Las relaciones y los conceptos son similares o parecidas. EN la edición actual del Metatesauro, la mayoría de las relaciones con este atributo son asignaciones proporcionadas por un recurso denominado SAB y SL. Es por ello que conceptos unidos por este tipo de relación puedan ser sinónimos (CUI1 = CUI2). En versiones anteriores algunos conceptos suplementarios del MeSH se representaban de esta manera RN Tiene una relación estrecha RO Tiene otra relación distinta de estrecha, extensa o de sinonimia RQ Relacionada posiblemente sinónima RU Relacionada, sin especificar SIB Tiene una relación descendiente en una fuente de vocabulario del Metatesauro. SY Fuente confirmada de sinonimia. XR No relacionada, sin asignación Relación vacía Tabla 1: Tipos de relaciones Adicionalmente el conjunto de relaciones no jerárquicas se agrupan en cinco grandes categorías: • físicamente relacionadas 12 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS • espacialmente relacionadas • temporalmente relacionadas • funcionalmente relacionadas • conceptualmente relacionadas Estructura del Metatesauro La estructura interna del metatesauro en cuanto a tablas sobre las que se organiza se presenta en dos formatos distintos sobre los que se puede elegir. Como primer formato se encuentra el Rich Release Format (RRF), introducido en el año 2004, mientras que por otro lado se encuentra el Original Release format (ORF). Ambos se encuentran disponibles como una opción de salida dentro de la configuración de la instalación del MetamorphoSys que se verá mas a delante dentro del punto 2.2 Proceso de Instalación UMLS y uso local. Las estructura de las tablas que se analizan a continuación son las usadas mas adelante para la extracción de ejemplos, y el formato seleccionado para dicho análisis ha sido el RRF. Este formato es el recomendado para desarrolladores debido a que ofrece ventajas considerables en cuanto a la transparencia de las fuentes de conocimiento, habilidad para generar conjuntos de cambios precisos entre versiones diferentes del Metatesauro, y en representaciones mejor adaptadas a los nombres de concepto, fuentes de vocabulario, e información contextual de las jerarquías involucradas. Toda la información del Metatesauro puede ser representada en 20 tablas de diversas características que es posible agrupar en 5 grupos según el contenido. • Conceptos, Nombres de concepto, fuentes – MRCONSO.RRF • Atributos - MRSAT.RRF, MRDEF.RRF, MRSTY.RRF, MRHIST.RRF • Relaciones - MRREL.RRF, MRCOC.RRF, MRMAP.RRF, MRSMAP.RRF 13 MRCXT.RRF, MRHIER.RRF, UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS • Información acerca del Metatesauro - MRFILES.RRF, MRCOLS.RRF, MRDOC.RRF, MRRANK.RRF, MRSAB.RRF, AMBIGLUI.RRF, AMBIGSUI.RRF, CHANGE/MERGEDCUI.RRF, CHANGE/MERGEDLUI.RRF, CHANGE/DELETEDCUI.RRF, CHANGE/DELETEDLUI.RRF, CHANGE/DELETEDSUI.RRF, MRCUI.RRF • Índices - MRXW_BAQ.RRF, MRXW_DAN.RRF, MRXW_DUT.RRF, MRXW_ENG.RRF, MRXW_FIN.RRF, MRXW_FRE.RRF, MRXW_GER.RRF, MRXW_HEB.RRF, MRXW_HUN.RRF, MRXW_ITA.RRF, MRXW_NOR.RRF, MRXW_POR.RRF, MRXW_RUS.RRF, MRXW_SPA.RRF, MRXW_SWE.RRF, MRXNW_ENG.RRF, MRXNS_ENG.RRF Cada tabla tiene por definición un número fijo de columnas y el número de filas depende de la versión del Metatesauro en la que se encuentre. Una columna, por lo tanto, contiene una secuencia de todos los valores para un valor concreto. En general, las columnas de elementos de mayor tamaño aparecerán a la derecha de columnas de elementos de una longitud fija inferior. En el caso de las filas, cada una de ellas contiene los valores para una o varias entradas en el Metatesauro. Dependiendo de la naturaleza de los datos con los que se trabaje, cada entrada en el Metatesauro puede tener una o mas de una fila en la tabla correspondiente. Como se ha comentado anteriormente se van a analizar a continuación las estructuras de las tablas usadas para la extracción de ejemplos en los siguientes apartados. Nombres de concepto y fuentes - MRCONSO MRCONSO contiene exactamente una fila por cada átomo (cada ocurrencia de una cadena de caracteres única o nombre de concepto dentro de cada fuente de vocabulario) dentro del Metatesauro. Cada cadena de caracteres o nombre 14 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS de concepto dentro del Metatesauro aparece en este fichero, conectado con su idioma correspondiente, fuente de vocabulario e identificador de concepto. Aunque en el formato RRF la información se estructura en un único fichero, dicha información resulta de la unión de dos tablas que vienen del formato ORF, MRSO y MRCON. 15 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Columna Descripción CUI Identificador único de concepto LAT Idioma del término TS Estado del término LUI Identificador único del término STT Tipo de cadena de caracteres SUI Identificador único para la cadena ISPREF Estado del átomo, preferido (Y) o no (N) para la cadena dentro del concepto AUI Identificador único para el átomo, longitud del capo para la variable de 8 a 9 caracteres SAUI Fuente confirmada del identificador del átomo SCUI Fuente confirmada del identificador del concepto SDUI Fuente confirmada del identificador del descriptor SAB Nombre abreviado de la fuente de conocimiento TTY Abreviación para el tipo de termino dentro de la fuente de conocimiento CODE Identificador único o código para la cadena de caracteres en dicha fuente STR Cadena SRL Nivel de restricción de la fuente. SUPPRESS Tipo de fuente y termino (SAB/TTY) recomendado por la NLM. Toma valores positivos o negativos. CVF Bandera de visualización del contenido Tabla 2: Estructura tabla MRCON 16 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Columna Descripción CUI Identificador único de concepto LUI Identificador único de término SUI Identificador único para la cadena SAB Nombre abreviado de la fuente de conocimiento TTY Abreviación para el tipo de termino dentro de la fuente de conocimiento CODE Identificador único o código para la cadena de caracteres en dicha fuente SRL Nivel de restricción de la fuente Tabla 3: Estructura tabla MRSO Se ve claramente como en ambas tablas hay campos repetidos que se juntan una vez que forman una tabla única en el formato RRF Identificadores de concepto únicos retirados – MRCUI Contiene una o varias filas para cada identificador único de concepto (CUI) que existía en alguna versión anterior pero no se encuentra presente en la versión actual. Adicionalmente esta tabla contiene entradas para CUIs con una relación de sinonimia y que han sido eliminados de Metatesauro porque contienen información repetida el significar lo mismo. 17 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Columna Descripción CUI1 Identificador único para el concepto retirado VER Ultima versión en la que el CUI1 era un CUI valido REL Relación RELA Atributo de la relación MAPREASON Motivo de la asignación CUI2 Identificador único para el segundo concepto, sirve de concepto actual y es el mas similar al CUI1 MAPIN Toma los valores positivo, negativo o nulo en función de si la asignación se encuentra en el conjunto actual Tabla 4: Estructura tabla MRCUI Ranking de nombres de concepto – MRRANK Contiene una fila por cada tipo de nombre de concepto en cada una de las fuentes de vocabulario, es decir las combinaciones de SAB-TTY. Columna Descripción RANK Orden de precedencia numérico, mayor según el valor numérico SAB Nombre abreviado de la fuente de conocimiento TTY Abreviación para el tipo de termino dentro de la fuente de conocimiento SUPPRESS Tipo de fuente y termino (SAB/TTY) recomendado por la NLM. Toma valores positivos o negativos Tabla 5: Estructura tabla MRRANK 18 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Conceptos relacionados – MRREL Contiene una fila por cada relación entre conceptos o átomos existentes dentro del Metatesauro. Nótese que para las relaciones asimétricas hay una fila por cada dirección de la relación. Dicha relación se representa sabiendo que el segundo concepto relacionado viene dado por su identificador único de concepto CUI2, e identificador único del átomo AUI2, mientras que el primer concepto de la relación viene dado por CUI1 y AUI1. 19 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Columna Descripción CUI1 Identificador único para el primer concepto AUI1 Identificador único para el primer átomo STYPE1 Nombre de la columna en MRCONSO que contiene el identificador usado para el primer átomo o concepto en la fuente de conocimiento REL Relación entre ambos conceptos o átomos CUI2 Identificador único para el segundo concepto AUI2 Identificador único para el segundo átomo STYPE2 Nombre de la columna en MRCONSO que contiene el identificador usado para el segundo átomo o concepto en la fuente de conocimiento RELA Etiqueta mas especifica de la relación (Opcional) RUI Identificador único de la relación SRUI Identificación de la fuente confirmada para la relación, si existe SAB Nombre abreviado de la fuente de conocimiento SL Fuente de las etiquetas de la relación RG Grupo de la relación. Usado para indicar que un conjunto de relaciones debe ser analizado en su conjunto DIR Bandera de la dirección de la fuente confirmada SUPPRESS Tipo de fuente y termino (SAB/TTY) recomendado por la NLM CVF Bandera de visualización del contenido Tabla 6: Estructura tabla MRREL Asignaciones – MRMAP Contiene los conjuntos de asignaciones entre los diferentes vocabularios. 20 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Columna Descripción MAPSETCUI Identificador único para el concepto UMLS que representa el conjunto MAPSETSAB Abreviación de la fuente (SAB) del conjunto MAPSUBSETID Identificador único del conjunto MAPRANK Orden en el que se aplican las asignaciones del conjunto MAPID Identificación única del conjunto de las asignaciones MAPSID Identificación de la fuente del conjunto de asignaciones FROMID Identificación de la entidad que esta siendo asignada FROMSID Fuente de la entidad objeto de la asignación FROMEXPR Entidad objeto de la asignación FROMTYPE Tipo de la entidad objeto de la asignación FROMRULE Regla aplicable a entidad objeto de la asignación FROMRES Restricción aplicable a la entidad objeto de la asignación REL Relación de la entidad objeto de la asignación a la entidad destino RELA Etiqueta adicional de la relación TOID Identificación de la entidad destino de la asignación TOSID Fuente de la entidad destino de la asignación TOEXPR Entidad destino de la asignación TOTYPE Tipo de la entidad destino de la asignación TORULE Regla aplicable a entidad destino de la asignación TORES Restricción aplicable a la entidad destino de la asignación MAPRULE Regla aplicable a la asignación MAPRES Restricción aplicable a la asignación MAPTYPE Tipo de asignación 21 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS MAPATN Nombre del atributo asociado a esta asignación MAPATV Valor del atributo asociado a esta asignación CVF Bandera de visualización del contenido Tabla 7: Estructura tabla MRMAP 22 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Documentación para valores de las abreviaciones - MRDOC Esta tabla contiene exactamente una fila para atributos o valores seleccionados que tienen un número finito de abreviaciones. Columna Descripción DOCKEY Elemento de información o atributo VALUE Abreviación que es uno de sus valores TYPE Tipo de información EXPL Explicación del valor Tabla 8: Estructura tabla MRDOC A continuación se repasa la estructura sobre la que se soporta la información que contiene el Metatesauro para poder entender mas adelante como se ha trabajado con ella. Nótese que la mayoría de los extractos de información seleccionados como ejemplos provienen de sentencias SQL ejecutadas sobre la BBDD que se describe en detalle en el punto 2.1.3 Estructura y Accesibilidad. Adicionalmente los resultados de las consultas seleccionadas como ejemplos no tienen porque contener todas las columnas de las tablas correspondientes. Se han seleccionado aquellas columnas que aportan la información considerada oportuna. Conceptos, Nombres, e Identificadores El Metatesauro se organiza por conceptos. Uno de los objetivos principales es relacionar diferentes nombres o cadenas de texto para el mismo concepto desde diferentes vocabularios. Para lograr esto, se asignan diferentes tipos de identificadores únicos y permanentes a los diversos conceptos y nombres 23 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS asociados, ademas de conservar todos los identificadores presentes en el vocabulario fuente. La estructura del concepto dentro del Metatesauro incluye los nombres de conceptos, identificadores, y características claves de dichos nombres de concepto ( como por ejemplo; idioma, fuente de vocabulario, y tipo de nombre). A continuación se ve un extracto de la tabla MRCONSO donde se ha escogido el concepto “headache” o “dolor de cabeza” para ver sus LUIs, AUIs, SAUIs, fuentes, y nombres por defecto para dichos conceptos. select CUI,LUI,SUI,AUI,STR from MRCONSO where CUI like 'C0018681' and SAB like'SNOMEDCT_US'; 24 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS CUI LUI SUI STR AUI C0018681 L2940214 S3622815 A10877604 [D]Headache (context-dependent category) C0018681 L2940213 S3623091 A10877836 [D]Pain in head NOS (context-dependent category) C0018681 L6092782 S6996369 A22802294 [D]Headache (situation) C0018681 L0805032 S1065595 A22818109 [D]Headache C0018681 L0018681 S0046854 A22825519 Headache C0018681 L0805031 S1065821 A22857719 [D]Pain in head NOS C0018681 L0290365 S0362835 A22857768 Cephalgia C0018681 L6092781 S6996597 A22890882 [D]Pain in head NOS (situation) C0018681 L6092782 S6996369 A22918814 [D]Headache (situation) C0018681 L0805031 S1065821 A22919747 [D]Pain in head NOS C0018681 L6092781 S6996597 A22925789 [D]Pain in head NOS (situation) C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 L0805031 L0018681 L0805032 L3063036 L0018681 L0290365 L0290361 L0380797 L0306029 L0306029 L1104607 L3063036 L0018681 L0018681 L0805032 L0805031 S1065821 S0046854 S1065595 S3345735 S0046854 S0362835 S0475640 S0475647 S0488524 S0982846 S1325906 S3345735 S0046854 S0377397 S1065595 S1065821 A22951072 A23008486 A23037904 A23040983 A2882197 A2926207 A2957274 A2957278 A2966762 A3180274 A3285152 A3487586 A4712366 A4741591 A4845517 A4845689 [D]Pain in head NOS Headache [D]Headache Headache (finding) Headache Cephalgia Cephalalgia Cephalodynia Head pain Pain in head HA - Headache Headache (finding) Headache Headache, NOS [D]Headache [D]Pain in head NOS Tabla 9: Consulta sobre la tabla MRCONSO Como se puede ver en la Tabla 9: Consulta sobre la tabla MRCONSO, una consulta para el concepto C0018681 nos devuelve los átomos con identificador (AUI) único asociados a dicho concepto, así somo su nombre por defecto (STR) etc.. para el concepto seleccionado. Un concepto es conocimiento, y puede tener muchos nombres diferentes. Un objetivo clave en la construcción del Metatesauro, como ya se vio anteriormente, es entender el significado adecuado para cada nombre dentro de cada fuente de vocabulario, y relacionarlo con todos los nombres de todas las fuentes de vocabulario que signifiquen lo mismo (sinónimos). Como se puede anticipar, no es una ciencia exacta y dicha construcción del Metatesauro 25 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS esta basada en la suposición de que, expertos en la materia pueden determinar la sinonimia de dichos conceptos con un nivel de precisión muy alto. Cada concepto o significado dentro del Metatesauro tiene asociado un identificador único y permanente (en adelante CUI). Dicho CUI no tiene significado intrínseco, en otras palabras, no se puede inferir nada de información de un concepto determinado a partir de su CUI y adicionalmente un CUI para un determinado concepto nunca cambia, independientemente de los cambios que se puedan producir sobre él dentro del Metatesauro o de otras fuentes de vocabulario. Cuando se descubre que dos CUIs hacen referencia al mismo concepto, es decir, hay una relación de sinonimia entre ellos, unos de los dos se conserva junto con toda su información relevante y el otro se retira del Metatesauro. Los CUIs retirados no se vuelven a utilizar nunca, y cada edición del Metatesauro contiene ficheros que informan en detalle de los cambios desde la ultima edición. Las tabla MRCUI contiene la información de dichos cambios desde 1991 hasta el presente, y permite consultar CUIs que no están presentes en la edición actual del Metatesauro. En esta tabla puede contener una, o mas de una fila para cada CUI que existía en una versión anterior pero que ya no existe en la actual. Como se puede ver en la siguiente figura cada fila contiene una relación entre dos conceptos, indicando los CUIs de ambos conceptos, la versión en la que se encontraba así como el tipo de relación. 26 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS select * from mrcui LIMIT 17,10; CUI1 C0000431 C0000445 C0000448 C0000508 C0000535 C0000553 C0000572 C0000600 C0000603 C0000634 VER 2013AB 1996AA 2003AB 1997AA 1997AA 2003AB 1996AA 1997AA 1995AA 1996AA REL RB SY RO SY SY SY SY RB RO SY CUI2 C1140104 C0004235 C0000551 C0020388 C0000534 C0524764 C0003806 C0000551 C0035701 C0282252 MAPIN Y Y Y Y Y Y Y Y Y Y Tabla 10: Consulta sobre la tabla MRCUI Los motivos de la retirada de conceptos del Metatesauro se indican a continuación: 1. Se averigua que dos conceptos son sinónimos por lo que el conocimiento se junta en uno y el otro es retirado. 2. El concepto no aparece en ninguna fuente de vocabulario y los miembros del NLM deciden no recuperarlo. 3. El concepto se reconoce como un error dentro de una fuente de vocabulario o simplemente se determina que es un error de producción en el Metatesauro. Nombres de Concepto e identificadores de Cadena Cada nombre de concepto o cadena de caracteres en cada lenguaje dentro del Metatesauro tiene un identificador de cadena único y permanente (en adelante SUI). Cualquier variación del conjunto de caracteres, como mayúsculasminúsculas, o puntuación, supondría una cadena de caracteres aparte, con su correspondiente SUI. Por lo tanto la misma cadena de caracteres en diferentes lenguajes (Inglés y Español por ej) tendrá un identificador diferente. Si algún 27 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS SUI (por ejemplo, gripe) tiene mas de un significado, el SUI estará asociado a más de un CUI. Átomos e identificadores de Átomos Los bloques básicos o “átomos” con los que el Metatesauro esta construido son los nombres de conceptos o cadenas de cada unas las fuentes de vocabulario. A cada una de las ocurrencias de una cadena dentro de una fuente de vocabulario se le asigna un identificador de átomo (en adelante AUI). Si la misma cadena de caracteres aparece dos veces dentro del mismo vocabulario, como por ejemplo el nombre corto y el largo para un mismo concepto, se le asigna un AUI para cada ocurrencia. Cuando la misma cadena aparece en múltiples fuentes de vocabulario, tendrá asignada un AUI para cada vez que aparece como nombre de concepto dentro de cada una de dichas fuentes. Todos estos AUIs están conectados con un único SUI, dado que representan ocurrencias de la misma cadena. A diferencia de los identificadores de cadenas, un único AUI siempre esta relacionado con un único identificador de concepto, ya que cada ocurrencia de una cadena dentro de una fuente solo puede tener un significado. Términos e identificadores Léxicos Para entradas que se encuentren en ingles exclusivamente dentro del Metatesauro, cada cadena esta relacionada con todas las variaciones léxicas mediante un identificador léxico (en adelante LUI). En el Metatesauro por lo tanto un “término” en ingles es el grupo de todas las cadenas que son variaciones unas de otras. Del la misma manera que los identificadores de cadena, el LUI para una cadena en inglés puede estar relacionado con mas de un concepto. Esto ocurre cuando cadenas que son variantes las unas de las otras tiene diferentes significados. 28 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Por contra, cada identificador de cadena y de átomo solo pueden estar relacionados con un único LUI. Usos de los Conceptos, Cadenas, Átomos e Identificadores de Términos En el Metatesauro, cada CUI (concepto) esta relacionado con al menos un AUI (átomo), SUI (cadena) y LUI (término) , pero también pueden estar conectados con varios de cada tipo. Todo AUI esta relacionado con un único SUI, y un único CUI. Cada SUI puede estar relacionado con múltiples AUIs, un único LUI, y más de un CUI (aunque normalmente suele ser sólo uno). Cada LUI puede estar relacionado con varios AUIs, varios SUIs, y mas de un CUI (aunque normalmente suele ser sólo uno). En la imagen a continuación se presenta un ejemplo donde el concepto Atrial Fibrillation aparece como átomo en mas de una fuente de vocabulario y tiene un AUI distinto para cada una de las ocurrencias. Dado que cada uno de estos átomos tiene una cadena o nombre de concepto idéntico, están relacionados con un único SUI. Atrial Fibrillations, el plural de Atrial Fribrillation, tiene un identificador de cadena distinto. Dado que el plural y singular son variantes léxicas la una de la otra, ambas están conectadas con el mismo LUI. Hay un LUI diferente, así como diferentes SUIs y Auis para Auricular Fibrillarion y su plural Auricular Fibrillations. Ya que se ha considerado que Atrial Fibrillation y Auricular Fibrillation tienen el mismo significado, están conectados con el mismo CUI. 29 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Figura 3: Ejemplo relaciones entre conceptos del Metatesauro Nombres por defecto para conceptos del Metatesauro A cada concepto dentro del Metatesauro se le asigna una frase descriptiva como nombre descriptor por defecto. Para evitar una búsqueda complicada de dicha descripción la selección del nombre por defecto de cualquier concepto dentro del Metatesauro esta basada en un orden de precedencia dentro de todos los tipos de cadenas de caracteres en Inglés dentro de las fuentes de conocimiento del Metatesauro. Dentro de dicho orden de preferencia y en diferentes posiciones se pueden encontrar diferentes tipos de cadenas de caracteres, términos preferidos, referencias cruzadas y abreviaciones de cada vocabulario. A continuación se ven algunos ejemplos de nombres por defecto para unos conceptos del Metatesauro; 30 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS select cui, str from MRCONSO limit 30,10; CUI C0018801 C0878544 C0085580 C0085580 C0027126 C0040517 C0011268 C0236642 C0029221 C0038454 STR Heart failure Cardiomyopathy Essential hypertension Essential hypertension Myotonic Dystrophy Gilles de la Tourette's syndrome Senile dementia Pick's disease Organic brain syndrome Cerebrovascular accident Tabla 11: Consulta sobre la tabla MRCONSO Es importante destacar que los factores considerados en establecer el orden de precedencia incluyen la amplitud de la cobertura temática, frecuencia de actualización, y el grado de uso de los conceptos en los ámbitos clínico y biomedico. Dicho orden de precedencia se encuentra en la tabla MRRANK, de la que se adjuntan los primeros 15 elementos de la lista; select * from mrrank ORDER BY RANK ASC limit 0,15 ; 31 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS RANK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SAB SRC SRC SRC SRC SRC SRC SRC SRC CHV CHV TKMT SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US TTY SSN VSY VAB VPT RSY RAB RHT RPT SY PT PT MTH_IS MTH_OAS MTH_OF MTH_OAF SUPPRESS N N N N N N N N N N N Y Y Y Y Tabla 12: Consulta sobre la tabla MRRANK Relaciones e Identificadores de Relaciones El Metatesauro incluye muchas relaciones entre diferentes conceptos. La mayoría de estas relaciones vienen de fuentes de vocabulario individuales, algunas son añadidas por la Biblioteca Nacional de Medicina (NLM), y otras han sido contribuidas al Metatesauro por usuarios para ayudar a desarrollar y mantener determinadas aplicaciones. Las relaciones están expresadas en términos de CUIs y AUIs, pero en los archivos del Metatesauro no es especifican los nombres de concepto. Categorías básicas de relaciones no sinónimas Las relaciones no sinónimas que contiene el Metatesauro que se dividen en dos tipos; • Aquellas entre conceptos de la misma fuente de vocabulario (Intra- Source Vocabulary Relationships) 32 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS • Aquellas entre conceptos de diferentes vocabularios (Inter-Source Vocabulary Relationships) Es importante destacar que el Metatesauro no contiene todas las posibles relaciones de no sinonimia entre los conceptos incluidos dentro del mismo, sino que que contiene todas las relaciones presentes dentro de sus fuentes de vocabulario. En general, las relaciones declaradas en las fuentes de vocabulario conectan conceptos similares, como aquellos que tienen en común una determinada propiedad o definición. Intra-Source Vocabulary Relationships La mayoría de las relaciones de tipo Intra-Source están indicadas por las fuentes de vocabulario individuales. Dichas relaciones ocurren debido a disposiciones jerárquicas explicitas o implícitas, contextos o conexiones entre diferentes tipos de nombres para el mismo concepto dentro de una fuente de vocabulario. En el siguiente ejemplo se han propuesto las relaciones que tiene el concepto “dolor de cabeza” usado previamente con otros conceptos de la fuente SNOMED_CT, cuya relación es del tipo CHD. select CUI1,AUI1,REL,CUI2,AUI2,RELA from MRREL where CUI1 like 'C0018681' and SAB like'SNOMEDCT_US' and rel="CHD"; 33 like 'C0018681' and S UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS CUI1 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 C0018681 AUI1 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A2882197 A23037904 A23037904 A2882197 A2882197 A2882197 A2882197 A2882197 A23037904 A2882197 REL CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CHD CUI2 C0239886 C0231613 C0423621 C0037195 C0751186 C2349423 C0028838 C0004317 C0027427 C0037195 C0011364 C0032816 C0032810 C0231613 C0239886 C0877781 C0522254 C0522253 C0423623 C0458101 C0751185 C0474366 C0393754 C0420855 C0393751 C0393750 C0423620 C0423620 C0423622 C0522250 C0423621 C0581881 C0581880 C0581875 C0393755 C1286433 C1268585 C0015468 C0018681 C0439024 C0232739 C0242429 C0578051 C0456566 C0236000 C0221150 AUI2 A3024113 A2939783 A3209079 A2874809 A18077303 A23451465 A2874800 A2874801 A2874802 A2874809 A2874810 A2874813 A2874814 A2939783 A3024113 A3080901 A3095522 A3100921 A3101302 A3108433 A3115731 A3136057 A3140415 A3140416 A3140426 A3140427 A3140432 A23004575 A3180925 A3186863 A3209079 A3285716 A3285798 A3285803 A3309031 A3487597 A3487603 A22951071 A22919747 A3105195 A2944658 A3299341 A3263412 A3209135 A23042498 A3074978 Tabla 13: Consulta sobre tabla MRREL 34 RELA isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa isa UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS Algunas de las relaciones de este tipo suelen pertenecer al ámbito estadístico y se calculan determinando la frecuencia con la que un concepto de un vocabulario especifico aparece dentro de los registros en una base de datos. Un ejemplo de este fenómeno puede ser el número de ocurrencias de un concepto como tema principal dentro de artículos médicos similares asignados a la base de datos MEDLINE. Inter-Source Vocabulary Relationships Las principales relaciones de tipo Inter-Source dentro del Metatesauro son las relaciones de sinonimia representadas en la estructura estructura conceptual del Metatesauro (ver Conceptos, Nombres, e Identificadores), pero también contiene como se menciona anteriormente, relaciones entre conceptos no sinónimos de diferentes fuentes de vocabulario. Algunas de las relaciones de este tipo son generadas durante la construcción del Metatesauro para conectar conceptos “huerfanos” (es decir, sin padres o hijos dentro de su misma fuentes de vocabulario) con información mas rica dentro de otras fuentes de vocabulario. Algunos son aportaciones de usuarios del Metatesauro que encuentran relaciones parecidas una contribución útil al punto de vista estricto de la sinonimia que tiene el Metatesauro. Muchas relaciones Inter-Source entre conceptos no sinónimos son fruto del esfuerzo para crear una asignación entre dos fuentes de vocabulario diferentes. Estas asignaciones pueden ser creadas por un creador individual de una fuente de vocabulario, una 3ª parte necesitada de una asignación concreta o por la NLM, bajo su propia supervisión. A continuación se presenta un extracto de algunas de las asignaciones incluidas dentro de MRMAP. select * from mrmap limit 0,3; 35 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Estado del UMLS MAPSETCUI C1306694 C1306694 C1306694 MAPSETSAB MAPID MTH AT102971857 MTH AT102971858 MTH AT102971859 FROMID C0264643 C0276253 C0409780 FROMEXPR C0264643 C0276253 C0409780 FROMTYPE REL CUI SY CUI SY CUI SY Tabla 14: Consulta sobre la tabla MRRMAP Etiquetas de Relaciones Todas las relaciones del Metatesauro tienen una etiqueta general (REL) que describe la naturaleza general de dicha relación, como extensa, hija de, etc. y son identificadas por su fuente. Aproximadamente, un cuarto de las relaciones del Metatesauro también disponen de una etiqueta adicional (RELA), obtenida de de una fuente de vocabulario, que explica con mas detalle la naturaleza de la relación. A continuación se ve un ejemplo de algunas de las posibles etiquetas que se encuentran en MRDOC. select DOCKEY,VALUE,EXPL from MRDOC limit 0,13; DOCKEY ATN ATN ATN ATN ATN ATN ATN ATN ATN ATN ATN ATN ATN VALUE AAL_TERM ACCEPTABILITYID ACCEPTED_THERAPEUTIC_USE_FOR ACCESSION_NO ACTIVE ADDED_MEANING ADJACENT AMBIGUITY_FLAG AMT ANADA ANATOMICAL_COORDINATE ANATOMICAL_OR_ARBITRARY ANDA EXPL AAL term Acceptability Id Accepted therapeutic use for Accession number Active Additional descriptive information Adjacent Source atom ambiguity flag AOT uses MeSH term Abbreviated New Animal Drug application number for the generic drug for MTHSPL Anatomical coordinate Anatomical or Arbitrary Abbreviated New (Generic) Drug application number for the MTHSPL drug Tabla 15: Consulta sobre la tabla MRDOC Identificadores de relaciones Cada relación del Metatesauro tiene también un identificador único (RUI), con el objetivo de facilitar la detección de cambios en las relaciones a lo largo de toda la extensión del Metatesauro. 36 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local 2.2 Proceso de Instalación UMLS y uso local UMLS además de ser accesible a través de la API que esta disponible en la web, es instalable y personalizable de manera local. En cada publicación de la ultima versión de UMLS se incluye la herramienta de personalización y el asistente de instalación, llamado MetamorphoSys. En este proyecto se ha utilizado la información de UMLS instalada de manera local para comparar y ayudar en el desarrollo de la solución propuesta mas adelante. Dicha información se extrae de las tablas de MySQL que se cargan al finalizar la instalación de los archivos correspondientes. El Metatesauro esta formado por un número de archivos muy grande, siendo algunos de ellos extremadamente pesados. Considerando el número y variedad de vocabularios reflejados dentro del mismo, es poco probable que un usuario en un determinado momento haga uso de los mas de 100 vocabularios disponibles, por lo que, en este proyecto, se ha decidido instalar la publicación parcial activa actual [SOUR14] que contiene las entradas más usadas y actualizadas. 2.2.1 Instalación de MySQL El acceso a los datos del Metatesauro se va a realizar mediante consultas en SQL, por lo que la instalación de dicha BBDD es requisito imprescindible. Estas consultas van a permitir comprobar el correcto funcionamiento de la solución propuesta y servirán de apoyo en el desarrollo de la misma. Dado que el proyecto se ha realizado en un entorno Linux, el proveedor de base de datos usado ha sido MariaDB, y se ha procedido a configurar para un entorno de desarrollo (configuración de la contraseña, eliminación de usuarios anónimos, eliminación del acceso remoto... etc). 37 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local 2.2.2 Instalación de UMLS La versión seleccionada y sobre la que se va a trabajar tanto a nivel local como a nivel remoto a través de la API proporcionada para ello es la 2013AB, tanto la publicación completa como la parcial que incluye los archivos mas activos están disponible en la web de UMLS de manera gratuita pero con registro previo. Los archivos descargados y que componen la totalidad de las tres fuentes de conocimiento principales que forman la estructura del UMLS se encuentran en formato .nlm: • 2013AB.CHK • 2013AB-1-meta.nlm • 2013AB-2-meta.nlm (Fichero del Metatesauro) • 2013AB-otherks.nls (Red semántica y herramientas de procesado del lenguaje) • mmsys.zip (MetamorphoSys, programa de instalación y configuración del Metatesauro, tanto para el entorno de Windows como UNIX. A continuación se ejecuta el archivo de extensión .sh correspondiente al sistema operativo en el que se este trabajando, en este caso run_linux.sh. Dicho archivo es un script que arranca el programa de instalación del Metatesauro. 38 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local Figura 4: Interfaz bienvenida MetamorphoSys Al seleccionar “Instalar UMLS” aparece una ventana nueva donde especificamos el origen de los archivos para la instalación y el destino de la misma, así como las fuentes de conocimiento deseadas y si desea generar scrips para la carga de la base de datos. 39 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local Figura 5: Especificaciones directorios y componentes UMLS Una vez seleccionados el origen y destino de la instalación se configura el Metatesauro como se ve en la Figura 6: Niveles de subconjuntos del Metatesauro 40 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local Figura 6: Niveles de subconjuntos del Metatesauro Como se puede ver el primer paso es especificar las fuentes de conocimiento que se desean en el Metatesauro. El nivel 0 son las fuentes que no necesitan ningún tipo de licencia adicional. En este caso se ha seleccionado el nivel 0, más la fuente SNOMEDCT_US. En cualquier caso es posible personalizar mas adelante el subconjunto seleccionado para incluir o excluir las fuentes de conocimiento deseadas. 41 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local Figura 7: Opciones de salida de la instalación Es imprescindible seleccionar dentro de la pestaña de opciones de salida, la opción de escritura del archivo de procesamiento por lotes (Script), que permiten que una vez terminada la instalación podamos cargar la BBDD con la información del 42 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local Metatesauro. Una vez hecho esto se selecciona la opción de terminar y se comienza la instalación. Figura 8: Instalación en proceso 2.2.3 Carga de la Base de Datos Para cargar la información de UMLS en la base de datos es necesario crear dicha base de datos dentro del gestor. En el caso de este proyecto, como se ha trabajado con MySQL la base de datos se ha creado del la siguiente manera; CREATE DATABASE IF NOT EXISTS umls CHARACTER SET utf8 COLLATE utf8_unicode_ci; Una vez creada la base de datos, lo siguiente es modificar el archivo “my.cnf”, que normalmente se encuentra dentro del directorio definido por la ruta “/etc” 43 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Instalación UMLS y uso local o “”/etc/mysql”. Dependiendo del sistema usado es posible que en lugar del archivo “my.cnf” se encuentre el “my.ini”. En cualquier caso es conveniente modificar las siguientes opciones para mejorar el rendimiento a la hora de la lectura de los datos, ya que en el caso del servidor de MySQL 5 es necesario cambiar los tamaños de los búferes para hacer uso de toda la memoria disponible; key_buffer = 600M table_cache = 300 sort_buffer_size = 20M read_buffer_size = 200M query_cache_limit = 3M query_cache_size = 100M myisam_sort_buffer = 200M bulk_insert_buffer_size = 100M join_buffer_size = 100M Es importante que el archivo disponga de permisos de lectura para poder ejecutarlo sin permisos de administrador. 44 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS 2.3 Sistema de acceso a UMLS Terminology Services 2.3.1 Introducción El sistema que se desarrolla a continuación propone un método de acceso alternativo a la información que UMLS pone al servicio del usuario, de una manera interactiva y usando las rutinas, protocolos y herramientas existentes dentro de su API. En la actualidad es posible acceder a la información del Metatesauro de varias maneras, a través de la instalación local de MetamorphoSys, mediante el UMLSKS y las herramientas web que pone a disposición, utilizando sentencias SQL sobre la base de datos del mismo, y por ultimo haciendo uso de la API. El sistema propuesto constituye una herramienta que pretende hacer uso de la API proporcionada y dar a su vez una representación gráfica de la información extraída que no se encuentra disponible en ninguno de los sistemas de acceso previamente mencionados. 2.3.2 Acerca de UTS API 2.0 El acceso a la información del Metatesauro se va a realizar de manera remota mediante llamadas a la API que accede a la web y recupera la información solicitada. Es por ello que se va a hacer uso de JAX-WS como lenguaje de programación para la creación de servicios web. Los archivos de JAX-WS se han importado e instalado en un entorno UNIX usando la herramienta wsimport de la siguiente manera; • wsimport -p gov.nih.nlm.uts.webservice.content -keep https://utsws.nlm.nih.gov/services/nwsContent?wsdl 45 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • wsimport -p gov.nih.nlm.uts.webservice.security -keep https://utsws.nlm.nih.gov/services/nwsSecurity?wsdl • wsimport -p gov.nih.nlm.uts.webservice.metadata -keep https://utsws.nlm.nih.gov/services/nwsMetadata?wsdl • wsimport -p gov.nih.nlm.uts.webservice.finder -keep https://utsws.nlm.nih.gov/services/nwsFinder?wsdl • wsimport -p gov.nih.nlm.uts.webservice.history -keep https://utsws.nlm.nih.gov/services/nwsHistory?wsdl • wsimport -p gov.nih.nlm.uts.webservice.semnet -keep https://utsws.nlm.nih.gov/services/nwsSemanticNetwork?wsdl -p: indica el destino de la instalación de los archivos a descargar dentro de la carpeta en la que se encuentre el usuario en el momento de la ejecución del comando. -keep: se indica para especificar que se mantengan en disco los archivos generados como consecuencia de la descarga y compilado. Por último se indica la dirección de descarga de los archivos que deseamos. Una vez ejecutados dichos comandos tendremos seis carpetas nuevas, cada una correspondiente a los paquetes objetivo que se han indicado en los comandos wsimport. Estas carpetas contienen las clases necesarias para trabajar con la API y que se engloban en las siguientes categorías que se desarrollan mas en detalle a continuación: • Paginado, ordenación y filtrado • Contenido del Metatesauro • Metadatos del Metatesauro • Tipos semánticos 46 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • Historia conceptual • Servicio de búsqueda Paginado, ordenación y filtrado ( Paging, Sorting, Filtering PSF) El objeto de paginado, ordenación y filtrado (en adelante PSF) permite personalizar los resultados de las llamadas al servicio web de manera flexible. Como características principales permite; • Incluir o excluir criterios tales como fuentes de vocabulario, idiomas, tipos de términos, etc. • Ordenar resultados en función de diversos campos, dependiendo del tipo de resultado. • Elegir el número de paginas de resultados devueltos. • Elegir el número de resultados mostrados por pagina. Contenido del Metatesauro El objeto controlador del contenido permite acceder al núcleo duro y contenido fundamental y amplio del Metatesauro: • Conceptos (CUIs), Términos (LUIs), Cadenas (SUIs), Átomos (AUIs) Para acceder al contenido del Metatesauro, ya sea el visto anterior o el que viene a continuación es necesario declarar una serie de variables de referencia básicas para los objetos de los controladores que se verán mas adelante. Metadatos el Metatesauro El controlador de metadatos permite dar respuesta a preguntas como las siguientes: • Que tipos de términos, atributos, o relaciones están asociados a una determinada fuente?. 47 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • Que lenguas extranjeras existen en esta versión (o versiones anteriores) del Metatesauro UMLS?. • Cuales son las fuentes asociadas a una determinada versión del Metatesauro UMLS?. • Cuales son las formas expandidas (legibles para el usuario) de las abreviaciones de tipos de términos y atributos?. Tipos Semánticos Este controlador permite realizar consultas a la red semántica de UMLS, para acceder a información sobre los siguientes apartados: • Cual es el nombre de un tipo semántico dado un identificador de un término semántico? • Cuales son las relaciones entre dos tipos semánticos?. • Cuales son todos los tipos semánticos dado un determinado grupo semántico?. Historia Conceptual A través de la API también es posible realizar consultas que permitan llevar un seguimiento de los siguientes apartados (entre otros): • Se ha movido un átomo de un concepto a otro del Metatesauro en algún momento?. • Se ha migrado un concepto del UMLS a otro concepto?, y si es así, cual es el nuevo concepto?. • Cuando ha dejado de usarse un determinado concepto del UMLS?. Servicio de Búsqueda 48 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Por último, el servicio de búsqueda permite obtener identificadores, para palabras o códigos, y pasar dichos identificadores como parámetros a otros métodos para obtener información mas concreta (especialmente los métodos asociados con el controlador de contenido principal del Metatesauro descrito previamente). Se pueden realizar consultas del tipo: • A partir de un termino, recuperar CUIs, SDUIs, SCUIs, y átomos. • A partir de un código, recuperar CUIs, SDUIs, SCUIs, y átomos. Métodos principales de la API Dentro de las categorías vistas que forman el esqueleto de la API hay una gran variedad de funciones, sin embargo, no se ha hecho uso de todas ellas en la consecución de los objetivos del proyecto. Las funciones que se han considerado mas importantes se describen a continuación para entender mejor el funcionamiento de la aplicación. Petición de un Concepto Obtiene las propiedades de un concepto del UMLS, como el nombre por defecto, tipos semánticos, y el número de átomos que posee dicho concepto. La totalidad de las propiedades se encuentran incluidas en el objeto ConceptDTO [CONC14]. getConcept(String ticket,String version,String conceptId) ConceptDTO myConcept = utsContentService.getConcept(ticket, "2013AB", "C0004057"); String preferredName = myConcept.getDefaultPreferredName(); List<String> semanticTypes = myConcept.getSemanticTypes(); int numberofAtoms = myConcept.getAtomCount(); 49 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Para las peticiones en general como se explicará mas adelante en profundidad se necesita indicar un ticket y la versión del Metatesauro con la que desea trabajar, ademas de los parámetros intrínsecos de la propia petición. Petición de un átomo Petición útil cuando se dispone de un átomo y se quiere consultar información de como se relaciona dicho átomo con otros objetos dentro del Metatesauro. AtomDTO myAtom = utsContentService.getAtom(ticket, 2011AB, "A6955581"); String atomName = myAtom.getTermString().getName(); String source = myAtom.getRootSource(); String sourceConceptUi = myAtom.getSourceConcept().getUi(); String sourceConceptName = myAtom.getSourceConcept().getDefaultPreferredName(); String sourceDescriptorUi = myAtom.getSourceDescriptor().getUi(); String sourceDescriptorName = myAtom.getSourceDescriptor().getDefaultPreferredName(); String conceptUi = myAtom.getConcept().getUi(); String conceptName = myAtom.getConcept().getDefaultPreferredName(); getAtom(String ticket,String version,String atomId) Petición recursos Dado una versión del Metatesauro, esta función devuelve todos los detalles de las fuentes disponibles para dicha versión. getAllSources(String ticket,String version) myArrSrc = utsMetadataService.getAllSources(ticket, umlsRelease); for (int i = 0; i < myArrSrc.size(); i++) { SourceDTO myArrSrcDTO = myArrSrc.get(i); String abbreviation = myArrSrcDTO.getAbbreviation(); 50 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS String rtSrcAbbreviation = myArrSrcDTO.getRootSource().getAbbreviation(); String version = myArrSrcDTO.getVersion(); } Petición átomos de un concepto Función usada cuando se dispone de un CUI y se quiere consultar información de sus átomos de manera individual junto con sus propiedades. Usando el PSF como se explicara mas adelante se pueden excluir de la búsqueda a recursos concretos, tipos de términos, relaciones, etc., que pueden no ser de interés. Las propiedades del átomo se encuentran en el [ATOM14]. getConceptAtoms(String ticket,String version,String conceptId,PSF psf) List<AtomDTO> myAtoms = new ArrayList<AtomDTO>(); myAtoms = utsContentService.getConceptAtoms(ticket, "2011AB","C0004775",myPsf); UtsMetathesaurusContent.Psf myPsf = new UtsMetathesaurusContent.Psf(); myPsf.getIncludedSources().add("SNOMEDCT"); myPsf.getIncludedTermTypes().add("FSN"); myPsf.getIncludedTermTypes().add("SY"); myPsf.getIncludedTermTypes().add("PT"); for (int i = 0; i < myAtoms.size(); i++) { AtomDTO myAtomDTO = myAtoms.get(i); String aui = myAtomDTO.getUi(); String source = myAtomDTO.getRootSource(); String name = myAtomDTO.getTermString().getName(); String TermType = myAtomDTO.getTermType(); } 51 objeto AtomDTO UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Se puede ver como primero se crean las variables como el vector donde se van a almacenar los átomos, así como la variable del PSF. Una vez realizada la petición se itera sobre la colección para ver la información individual de cada átomo. Petición relaciones de un concepto con otros conceptos Dado un CUI, esta llamada devuelve las relaciones confirmadas por miembros del NLM ente dicho CUI proporcionado y otros conceptos del Metatesauro. List<ConceptRelationDTO> myConceptRelationsDTO = new ArrayList<ConceptRelationDTO>(); myConceptRelationsDTO = utsContentService.getConceptConceptRelations(ticket, 2011AB, "C0014591", myPsf); for (int i = 0; i < myConceptRelationsDTO.size(); i++) { ConceptRelationDTO myConceptRelationDTO = myConceptRelationsDTO.get(i); String otherConceptUi = myConceptRelationDTO.getRelatedConcept().getUi(); String otherConceptName = myConceptRelationDTO.getRelatedConcept().getDefaultPreferredName(); String otherConceptRel = myConceptRelationDTO.getRelationLabel(); String otherConceptRela = myConceptRelationDTO.getAdditionalRelationLabel(); } Petición relaciones de un átomo con otros átomos Dada una versión del Metatesauro y un identificador único del átomo (AUI), esta llamada devuelve las relaciones del átomo indicado con otros átomos. 52 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS getAtomAtomRelations(String ticket,String version,String atomId,PSF psf) gov.nih.nlm.uts.webservice.content.Psf myPsf = new gov.nih.nlm.uts.webservice.content.Psf(); List<AtomRelationDTO> myAtomsRel = new ArrayList<AtomRelationDTO>(); myAtomsRel = utsContentService.getAtomAtomRelations(ticket, "2012AA","A1317707",myPsf); for (int i = 0; i < myAtomsRel.size(); i++) { AtomRelationDTO myAtomDTO = myAtomsRel.get(i); String ui = myAtomDTO.getRelatedAtom().getUi(); String name = myAtomDTO.getRelatedAtom().getTermString().getName(); String rellabel = myAtomDTO.getRelationLabel(); String arellabel = myAtomDTO.getAdditionalRelationLabel(); } Variables de referencia para los controladores Para usar los objetos de los controladores descritos anteriormente es necesario instanciar sus variables. Para no caer en la redundancia y dado que mas adelante se exponen ejemplos del código a continuación se incluyen las variables instanciadas: Creación de variables: private UtsWsContentController utsContentService; private UtsWsFinderController utsFinderService; private UtsWsMetadataController utsMetadataService; 53 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS gov.nih.nlm.uts.webservice.content.Psf psfMetaContent = new gov.nih.nlm.uts.webservice.content.Psf(); gov.nih.nlm.uts.webservice.finder.Psf psfFinderContent = new gov.nih.nlm.uts.webservice.finder.Psf(); Instanciación de dichas variables para poder trabajar con ellas: Es importante destacar que aunque no se haga constancia de ello aquí se deben controlar posibles errores (en Java denominadas excepciones) en las instanciaciones, mediante los métodos considerados oportunos. UtsWsContentController utsContentService = (new UtsWsContentControllerImplService()).getUtsWsContentControllerImplPort(); UtsWsFinderController utsFinderService = (new UtsWsFinderControllerImplService()).getUtsWsFinderControllerImplPort(); UtsWsMetadataController utsMetadataService = (new UtsWsMetadataControllerImplService()).getUtsWsMetadataControllerImplPort(); 2.3.3 Conexión y llamadas a la API El paradigma básico para obtener información UMLS de los servicios de terminología UMLS (en adelante UTS), incluye los siguientes pasos: 1. Establecer una conexión con el servidor de autenticación web. 2. Obtener un servicio proxy de generación de tickets (Proxy Granting Ticket PGT) del servicio de autenticación web. 3. Usando el PGT, obtener tickets de un solo uso del servidor web de autenticación para incluirlos en cada llamada al servicio web de UTS. 54 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS 4. Reunir los parámetros necesarios para la llamada al servicio web UTS. 5. Realizar la llamada de petición de información al servicio web UTS. El servicio web de autenticación es un servicio web Apache Axis que se ejecuta en una de las maquinas de producción del UTS que se encuentra en el NLM, siendo la URL destino del destino: https://uts-ws.nlm.nih.gov/authorization/services/AuthorizationPort Es importante destacar también que todas las clases generadas después de la ejecución de los comandos wsimport se deben importar en la aplicación para su posterior uso. A continuación se explican extractos de la aplicación planteada para este proyecto, en concreto de la parte relacionada con la conexión al servicio de autenticación web. Obtención del PGT (Proxy Granting Ticket) El PGT es generado por el servicio de autenticación web usando la combinación de usuario y contraseña de un usuario valido del UTS. La llamada devuelve null si la combinación de usuario y contraseña son incorrectos. El campo de usuario deberá contener un usuario del UTS valido y el campo de contraseña deberá contener la contraseña correspondiente al usuario especificado. String pgtGrantingTicket=utsSecurityService.getProxyGrantTicket(username, password); Obtención de tickets de un solo uso Una vez se ha generado el PGT, la aplicación puede pedir la generación de tickets de un solo uso que se incluyen como parámetros en llamadas mediante métodos 55 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS al servicio web UTS. Cada petición debe llevar incluido el ticket de un solo uso, de lo contrario genera una excepción. La manera de generar los tickets de un solo uso es la siguiente: singleUseTicket = utsSecurityService.getProxyTicket(pgtGrantingTicket, serviceName); Siendo el serviceName "http://umlsks.nlm.nih.gov" 2.3.4 Descripción del sistema y funcionalidad Como se ha comentado anteriormente, el sistema propuesto constituye una manera alternativa de acceso a la información del UMLS de manera mas interactiva para el usuario. Entre los objetivos principales y fundamentales del proyecto se encuentran la generación de un grafo y un informe para representar la información extraída, sin embargo debido a la amplitud y profundidad del UMLS, es necesario realizar un filtro previo para especificar las información que se desea visualizar. 56 Figura 9: Interfaz principal del sistema UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Este filtrado previo se realiza a través de un interfaz que nos permite personalizar las opciones de las búsquedas para matizar los datos obtenidos, como se puede ver en la siguiente figura. A continuación se escribe la funcionalidad del sistema detallando la funcionalidad intrínseca del mismo y especificando la metodología y el planteamiento elegido para dicha solución, proponiendo extractos cortos del código para ayudar a la explicación. Carga de las fuentes disponibles Para concretar las búsquedas es posible seleccionar el recurso de los conceptos relacionados con el concepto indicado. Es por lo tanto necesario cargar las fuentes disponibles en los desplegables para que estén disponibles de cara al usuario. Se genera un ticket para la llamada correspondiente 57 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Acceso gestorTickets = new Acceso(); String singleUseTicket = gestorTickets.dameTicket(); Se realiza la petición sobre el controlador de metadatos descrito anteriormente ArrayList<SourceDTO> sources = new ArrayList<SourceDTO>(); sources = (ArrayList<SourceDTO>) utsMetadataService.getAllSources(singleUseTicket, umlsRelease); Es posible así iterar la lista recibida y cargarla en el desplegable. Figura 10: Selección fuentes destino en la interfaz 58 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Búsqueda por CUI y Nombre La búsqueda por CUI permite buscar si existe un CUI y ver su nombre partiendo de un identificador de concepto para posteriormente realizar una búsqueda de sus relaciones. Acceso gestorTickets = new Acceso(); String singleUseTicket = gestorTickets.dameTicket(); ConceptDTO result = utsContentService.getConcept(singleUseTicket, umlsRelease, cui); Figura 11: Búsqueda por CUI 59 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Por otra parte, la búsqueda por nombre permite listar los conceptos que tengan átomos cuyo nombre contenga palabras como la introducida en la búsqueda. El motivo de hacerlo así es que la API de UMLS no permite, a priori, buscar el concepto directamente a partir del nombre. El procedimiento por lo tanto es buscar los átomos que tengan una palabra coincidente con la búsqueda e iterarlos realizando a su vez otra consulta para recuperar el concepto padre al que pertenecen. Se realiza la petición del ticket correspondiente para realizar la consulta de los atomos; Acceso gestorTickets = new Acceso(); String singleUseTicket = gestorTickets.dameTicket(); List<UiLabel> myUiLabels = new ArrayList<UiLabel>(); Map<Integer, Concepto> res = new LinkedHashMap<>(); psfFinderContent.getIncludedSources().add(fuente); myUiLabels = utsFinderService.findAtoms(singleUseTicket, umlsRelease, "atom", busqueda, "words", psfFinderContent); Una vez se tiene la información en forma de etiqueta de los átomos que contienen la palabra o palabras buscadas en forma de etiquetas, se itera la lista realizando una consulta para el átomo completo, que a la vez contiene la información sobre su concepto padre para ver de donde procede. El átomo contiene el concepto al que pertenece entre otros muchos parámetros como los siguientes; • termString – información de la cadena de caracteres • code – código • sourceConcept – concepto origen 60 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • sourceDescriptor –descriptor origen • concept – concepto • termType – tipo de termino • attributeCount – contador del atributo • cocCount – contador de ocurrencias • relationCount – contador de la relación • codeRelationCount – contador del código de la relación • sourceConceptRelationCount – contador del concepto origen de la relación • sourceDescriptorRelationCount – contador del descriptor fuente de la relacion • conceptRelationCount -contador del concepto de la relación • treePositionCount – contador de la posición en el árbol • cvMemberCount – contador número de individuos • subsetMemberCount – contador número individuos del conjunto Una vez se tiene el concepto correspondiente se carga en la lista para ser seleccionado posteriormente. for (int i = 0; i < myUiLabels.size(); i++) { UiLabel myUiLabel = myUiLabels.get(i); String ui = myUiLabel.getUi(); String singleUseTicket2 = gestorTickets.dameTicket(); AtomDTO myAtom = utsContentService.getAtom(singleUseTicket2, umlsRelease, ui); 61 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS String source = myAtom.getRootSource(); String conceptUi = myAtom.getConcept().getUi(); String prefName = myAtom.getConcept().getDefaultPreferredName(); Concepto a = new Concepto(conceptUi,prefName,source); if(!res.containsValue(a)) res.put(i, a); } La información parcial del concepto se puede ver en la siguiente figura. Figura 12: Resultado búsqueda por CUI 62 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Generación de Grafos A continuación se va a analizar como maneja el programa la generación de los grafos de relaciones entre conceptos en cuanto a la metodología de la programación y las decisiones tomadas para la consecución de los objetivos propuestos. En el apartado siguiente se verá el apartado gráfico de la representación de dichos grafos. En primer lugar, como se ha mencionado anteriormente, la información del Metatesauro puede llegar a ser, en ocasiones, un tanto abrumadora, y como consecuencia el tratamiento puede llegar a ser muy pesado sobre todo en grafos con un número elevado de nodos. Si tenemos en cuenta que para cada nodo de un hipotético grafo, hay que realizar múltiples peticiones al servidor web, y el número se multiplica exponencialmente según el número de nodos, el tiempo de búsqueda puede llegar a ser un problema. Para solucionar en parte estos problemas se han implementado dos medidas de prevención: 1. Recursividad: El recorrido del grafo se simplifica haciendo uso de esta técnica de divide y vencerás, haciendo que el recorrido del mismo sea mas dinámico. 2. Lista visitados: Se lleva la cuenta de los conceptos que se han consultado para no realizar consultas repetidas con el consumo innecesario de tiempo que ello conlleva. El interfaz permite generar un grafo que representa las relaciones de un concepto con otros conceptos de la misma o distinta fuente de vocabulario del Metatesauro. 63 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS La solución propuesta se basa en que un concepto se relaciona con otro mediante sus átomos. Es decir, un concepto, tiene átomos que están relacionados con átomos de otros conceptos, lo que hace que ambos conceptos tengan una relación. Los pasos por lo tanto, seguidos para la resolución son los siguientes: 1. Búsqueda átomos para un determinado concepto especificado previamente en la interfaz 2. Iteración de dichos átomos realizando consultas para recuperar las relaciones de cada uno de ellos con átomos pertenecientes a otros conceptos. 3. Creación de una estructura de información que contenga datos pertenecientes a dicha relación, como el concepto origen, concepto destino, tipo de relación, etc.. 4. Llamada recursiva a la función usada incluyendo el concepto destino de la primera relación encontrada. Para entender como estructura el algoritmo la información hay que fijarse en los parámetros que permiten afinar la búsqueda y limitar el tamaño del grafo para que la cantidad de la información con la que se va a trabajar no alcance niveles excesivamente elevados. • Número de Saltos (4 Máximo): El número de saltos delimita la profundidad en niveles del grafo a explorar. Debido a que el algoritmo es recursivo el número de niveles de profundidad puede llega a ser infinito pero por motivos de tiempo y a efectos del estudio planteado en este proyecto se ha limitado a 4. 64 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • Número de Átomos (Todos,5,10,20): Este parámetro delimita el número de átomos que se van a analizar como máximo pertenecientes a cada concepto. Si un concepto tiene 100 átomos y se especifican 20 al algoritmo solo analiza los 20 primeros en el orden que el Metatesauro de UMLS los tenga distribuidos. • Número de Relaciones (Todos,2,3,5,10): Cada átomo, como se ha visto anteriormente se relaciona con átomos de otros conceptos. Es posible por lo tanto limitar el número de relaciones que la consulta recupera a un número reducido debido a que a veces el número de relaciones que tiene un átomo puede llegar a ser muy elevado. Es posible de todas formas seleccionar todas las relaciones al igual que en el caso de los átomos ya que hay casos en los que es posible generar grafos asequibles. A continuación se expone una sección de código donde se ve el núcleo de la función recursiva que genera la estructura de información interna para representar el grafo parametrizado previamente en la interfaz: La condición para la salida del método recursivo es que el número de satos sea igual a 0 o que el concepto que se va a explorar ya este visitado, por lo que no es necesario if(saltos > 0 && !visitados.containsKey(cui)) { List<AtomRelationDTO> listaRelaciones = new ArrayList<AtomRelationDTO>(); List<AtomDTO> listaAtomos = new ArrayList<AtomDTO>(); 65 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Filtrado por número de átomos if(nAtomos!=0){ psfMetaContent.setPageLn(nAtomos); } Petición ticket para consulta de átomos Acceso gestorTickets = new Acceso(); String singleUseTicket4 = gestorTickets.dameTicket(); listaAtomos = utsContentService.getConceptAtoms(singleUseTicket4, umlsRelease,cui,psfMetaContent); Iteración de la lista de átomos para el concepto dado for (int j = 0; j < listaAtomos.size(); j++) { AtomDTO atomo = listaAtomos.get(j); Filtrado por número de relaciones if(nRelaciones!=0) psfMetaContent1.setPageLn(nRelaciones); if(listaAtomos.get(j).getAtomRelationCount()!=0){ Petición ticket para la consulta de relaciones String singleUseTicket3 = gestorTickets.dameTicket(); if(!this.source.equals("ALL")) psfMetaContent1.getIncludedSources().add(source); listaRelaciones = utsContentService.getAtomAtomRelations(singleUseTicket3, umlsRelease,atomo.getUi(),psfMetaContent1); 66 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Iteración de la lista de las relaciones extrayendo la información buscada, creando el nodo correspondiente y realizando la llamada recursiva del siguiente nivel para ese concepto. for (int i = 0; i < listaRelaciones.size(); i++) { AtomRelationDTO myAtomDTO = listaRelaciones.get(i); String source1 = myAtomDTO.getRootSource(); String ui = myAtomDTO.getRelatedAtom().getConcept().getUi(); String name = myAtomDTO.getRelatedAtom(). getConcept().getDefaultPreferredName(); String tipo = myAtomDTO.getRelationLabel(); Llamada recursiva dameRelaciones(ui,source,saltos-1,res,visitados); res.addNodo(new Nodo(nSaltos-saltos+"-"+cui,name,nSaltos+1saltos+"-"+ui,tipo,source1,nSaltos+1-saltos)); res.setGraph(g.inicializaGrafo(r.getGraph(), r.getListaNodos())); } } } } 67 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Como se puede ver en el algoritmo, la manera de recorrer la información extraída del Metatesauro se realiza de la siguiente manera. • Para cada concepto se extraen los átomos especificados y dicha lista se itera. • Al iterarla se buscan las relaciones del primer átomo de la lista. • Esta lista de relaciones se itera a su vez llamando de manera recursiva a la función con el segundo concepto de la relación. Esto hace que el recorrido y estructuración de la información se haga en profundidad, siguiendo las aristas tan “profundamente” como sea posible para visitar los nodos alcanzables desde él y que no hayan sido ya visitados. La condición de volver “atrás” se cumple cuando se ha alcanzado el nivel de profundidad delimitado o, como se ha comentado, el nodo al que intentamos acceder ya ha sido explorado. Figura 13: Ejemplo 68 recorrido profundidad UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS 2.3.5 Modelado del sistema (Diagrama UML) Para ver la estructura interna del sistema se ha optado por realizar una serie de diagramas UMLS con los que se pueden ver aspectos conceptuales como las relaciones entre las clases usadas así como los atributos y métodos de cada una de ellas. Los diagramas que se describen a continuación representan cada una de las clases usadas por el sistema y se describen de manera individual para ver los atributos y métodos que componen cada una de ellas. Una vez analizadas por separado se representan las relaciones entre las mismas de manera conjunta. Las clases que forman el sistema de acceso son las siguientes: Main Figura 14: Clase Main Clase principal que crea el interfaz a través del cual se gestiona el sistema de acceso. Interfaz 69 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Figura 15: Clase Interfaz 70 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS La clase Interfaz construye la parte gráfica del sistema de acceso y gestiona las diferentes acciones que se producen sobre él mediante actionPerformed, que filtra el elemento que ha producido la acción. ClienteRecursivo Figura 16: Clase ClienteRecursivo 71 el método UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS La clase ClienteRecursivo representa el núcleo del sistema de acceso, y en el se realizan las peticiones de datos al servicio web y se estructura la información que mas adelante será representada mediante grafos. La estructura de las peticiones es recursiva para poder procesar un número ilimitado de niveles de profundidad dentro del grafo. Acceso Figura 17: Clase Acceso La clase acceso gestiona los tickets que se necesitan adjuntar en cada petición al servidor web. Realiza la autenticación con el usuario y contraseña del servicio de la UTS correspondiente y pide un ticket que se devuelve si se realiza una llamada al método dameTicket. GestorGrafos 72 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Figura 18: Clase GestorGrafos Una vez se tiene la estructura de información correspondiente al grafo que se quiere representar, dicha estructura que para a la clase Gestor de grafos que inicializa dicho grafo, lo construye con la estructura especificada, y se saca por pantalla para su visualización. Resultado Figura 19: Clase Resultado Clase que representa la estructura de información devuelta por el ClienteRecursivo y que se pasa al GestorGrafos para su procesamiento. Dicha 73 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS estructura incluye como se puede ver la lista de nodos del grafo y el grafo donde se va a representar. Nodo Figura 20: Clase Nodo Clase que contiene los parámetros de cada uno de los nodos del grafo y que permiten construir las relaciones entre cada uno de los mismos dentro del propio grafo. 74 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Concepto Figura 21: Clase Concepto Clase que representa la estructura de información de cada uno de los conceptos procesados por el sistema de acceso. Relaciones entre las clases del sistema En la Figura 22: Relaciones clases del sistema se ven las relaciones entre las clases del sistema descritas previamente. 75 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Figura 22: Relaciones clases del sistema 2.3.6 Java Universal Network/Graph Framework (JUNG) Para cumplir uno de los objetivos principales del proyecto, la solución propuesta implementa una representación gráfica de la estructura de información generada en el apartado previo. A continuación se ve una introducción de la tecnología usada para ello y su implementación en el proyecto. JUNG es una librería de software que proporciona un lenguaje común y extensible para el modelado, análisis y visualización de información capaz de ser representada mediante una red o grafo. En el marco de este proyecto es por lo tanto una herramienta ideal que ayuda a la visualización de información que e otra manera podría ser complicada de representar. 76 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS La arquitectura de JUNG esta diseñada para soportar una variedad de representaciones de entidades y relaciones, como grafos dirigidos, grafos de múltiples tipos, con aristas paralelas, e incluso hipergrafos. Proporciona un mecanismo para la anotación de grafos, entidades y relaciones con información adicional. Esto facilita la creación de herramientas analíticas para conjuntos de datos complejos, que pueden analizar las relaciones entre entidades así como la información adicional adjunta a dichas relaciones y entidades. 2.3.7 Descripción de la representación gráfica Como se ve en la Generación de Grafos, ( visto en el apartado 2.2.4 ), por cada relación que se itera dentro del bucle que procesa las relaciones de cada átomo, se crea un nodo de la siguiente manera. listaNodos.add(new Nodo(nSaltos-saltos+"-"+cui,name, nSaltos+1-saltos+"-"+ui,tipo,source1,nSaltos+1-saltos)); Los atributos de cada nodo, como se pueden ver también en el apartado 2.2.5 son los que se describen brevemente a continuación. • Cui: Identificador del concepto origen de la relación junto con el nivel en el que se encuentra dentro de la estructura del grafo. • Nombre: Nombre por defecto del segundo concepto de la relación. • Relación: Identificador del concepto destino de la relación junto con el nivel en el que se encuentra dentro de la estructura del grafo • Tipo: Tipo de la relación entre ambos conceptos. • Fuente: Fuente del concepto destino de la relación. 77 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS • Nivel: Nivel del concepto destino de la relación. Disponiendo de toda esta información por cada relación es posible generar un grafo del conjunto total de las relaciones especificadas en la interfaz. Inicialización del grafo Una vez se tiene disponible la estructura interna de nodos, es posible inicializar el grafo para pintarlo posteriormente. Dicha inicialización se realiza iterando la lista de nodos y generando vértices entre los conceptos indicados dentro de la estructura de cada nodo, como se puede ver a continuación: for (int i = 0; i < listaNodos.size(); i++) { nodo = listaNodos.get(i); if(nodo.getType().equals("PAR")){ g.addEdge(i + "-" + nodo.getType(), nodo.getRelacion() , nodo.getCui() ,EdgeType.DIRECTED); }else g.addEdge(i + "-" + nodo.getType(), nodo.getCui(), nodo.getRelacion(),EdgeType.DIRECTED) } } Como se puede ver cada arista contiene un identificador único denotado por la variable i con la que ademas se itera la lista de nodos, y ademas el tipo de relación entre los dos conceptos que une. 78 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Se hace una distinción en el caso de que la relación sea de tipo PAR para invertir la dirección de dicha relación, ya que en el caso de este tipo el origen de la arista es el concepto destino. Generación del grafo Una vez inicializado el grafo se pinta de la siguiente manera: Layout<String, String> layout = new FRLayout<String, String>(grafo); layout.setSize(new Dimension(700,500)); VisualizationViewer<String,String> vv = new VisualizationViewer<String,String>(layout); vv.setPreferredSize(new Dimension(800,600)); Transformer<String, Paint> vertexColor = new Transformer<String,Paint>() { public Paint transform(String arg0) { if(String.valueOf(arg0.charAt(0)).equals("1")) return Color.BLUE; else if(String.valueOf(arg0.charAt(0)).equals("2")) return Color.GREEN; else if(String.valueOf(arg0.charAt(0)).equals("3")) return Color.ORANGE; else if(String.valueOf(arg0.charAt(0)).equals("4")) return Color.RED; else return Color.BLACK; } 79 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS }; vv.getRenderContext().setVertexFillPaintTransformer(vertexColor); vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<String>()); vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<String>()); vv.getRenderer().getVertexLabelRenderer().setPosition(Position.AUTO); DefaultModalGraphMouse<String,String> gm = new DefaultModalGraphMouse<String,String>(); gm.setMode(ModalGraphMouse.Mode.TRANSFORMING); vv.setGraphMouse(gm); JFrame frame = new JFrame("Grafo UMLS"); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation(dim.width/2-frame.getSize().width/2, dim.height/2frame.getSize().height/2); frame.getContentPane().add(vv); frame.pack(); frame.setVisible(true); En dicha generación se especifican parámetros como el tamaño de la ventana, su posición en la pantalla al ser visualizada,etc.. Cabe destacar entre dichos parámetros la variación de colores en los nodos según su nivel de profundidad, limitado hasta el nivel 4 y la posibilidad de mover el grafo usando el ratón y de hacer zoom, tanto hacia afuera como hacia dentro para 80 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS ver con detalle partes en particular que pueden ser inaccesibles en funciona del tamaño del mismo. La disposición usada (Layout), que se ha considerado optima para la visualización del mismo por las estructuras que se generan, de los nodos en el grafo ha sido de tipo FRLayout. A continuación se puede ver un ejemplo de la estructura generada por este tipo de disposición. Figura 23: Estructura tipo FRLayout 81 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS Cabe destacar también la disposición circular de la que se ha hecho uso en algunas partes del proyecto para la generación de ejemplos y casos de uso. La mayoría de los ejemplos usan la disposición FRLayout debido a que con la circular es muy difícil distinguir los distintos niveles de profundidad dentro del grafo al colocarse los nodos en forma de anillo. Figura 24: Estructura tipo CircularLayout Información en el grafo 82 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS En el propio grafo, por motivos de utilidad, y también estéticos no es posible mostrar toda la información que se quisiera. A continuación se resume y explica la información que se muestra en el grafo para poder entenderlo de la mejor manera posible. • Debido a que cada nodo representa un concepto, en cada uno de ellos se muestra el nivel en el que se encuentra el nodo (siendo 0 el nivel raíz) y el CUI del concepto. • En cada vértice, que representa la relación entre dos nodos, se muestra el tipo de relación (de los especificados anteriormente y seleccionables en el interfaz) junto con un identificador único. 2.3.8 Descripción de la generación de informes La funcionalidad complementa a de generación de informes constituye una ayuda, y la representación mediante grafos de la información extraída del Metatesauro. En la mayoría de grafos generados el número de nodos es muy elevado, y por lo tanto, no es posible mostrar mucha información en los mismos sin perjudicar la visualización. Ademas de la información representada en el grafo que se ha explicado previamente los informes lo complementan con mas detalle, incluyendo la propia estructura del grafo para entender las relaciones que se dan dentro del mismo. A continuación se explican las partes de las que se compone una linea de detalle de los informes generados. • Nivel de la relación (NR): Número que indica el nivel del salto en el que se encuentra la relación representada por dicha linea. El nivel mínimo de 83 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS cualquier relación pues, va a ser 1, ya que sería una relación entre el nodo raíz y un nodo a distancia 1. • Concepto origen de la relación (CO): Concepto origen de la relación indicado por ◦ Nivel dentro del grafo: Número que indica el nivel en el que se encuentra dicho concepto. ◦ Identificador del concepto: CUI del concepto en cuestión. • Nombre por defecto del concepto destino de la relación (ND) • Concepto destino de la relación (CD): Concepto destino de la relación indicado por ◦ Nivel dentro del grafo (NG): Número que indica el nivel en el que se encuentra dicho concepto. ◦ Identificador del concepto: CUI del concepto en cuestión. • Tipo de relación (TR): Tipo de relación entre ambos conceptos, como se han visto anteriormente los tipos propuestos son CHD, PAR, RB, RN. • Fuente (F): Fuente de conocimiento del concepto destino de la relación por la que se ha filtrado al generar dicho grafo. A continuación se propone un ejemplo para el concepto corazón de sus relaciones de nivel 1, de tipo CHD-PAR, para la fuente de conocimiento SNM. RELACIONES PARA EL CONCEPTO C0018787-Heart, Niveles: 1, Tipos: PAR-CHD, Fuente: SNM NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------1-0-C0018787-Cardiac foramen ovale-1-C0016521-PAR-SNM 1-0-C0018787-Structure of aortopulmonary septum-1-C0231077-PAR-SNM 84 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS 1-0-C0018787-Cardiopulmonary-1-C0553534-PAR-SNM 1-0-C0018787-Heart-1-C0018787-PAR-SNM 1-0-C0018787-Heart Ventricle-1-C0018827-PAR-SNM 1-0-C0018787-Cardiovascular system-1-C0007226-CHD-SNM 1-0-C0018787-Parietal band-1-C0545720-PAR-SNM 1-0-C0018787-Septal band-1-C0545721-PAR-SNM 1-0-C0018787-Heart Atrium-1-C0018792-PAR-SNM 1-0-C0018787-Heart Septum-1-C0018819-PAR-SNM 1-0-C0018787-Structure of trabecula carnea of right ventricle-1-C0225890-PAR-SNM 1-0-C0018787-Left ventricle, inflow tract-1-C0225911-PAR-SNM 1-0-C0018787-Outflow tract of left ventricle-1-C0225912-PAR-SNM 1-0-C0018787-Right ventricular structure-1-C0225883-PAR-SNM 1-0-C0018787-Right ventricle, inflow tract-1-C0225891-PAR-SNM 1-0-C0018787-Structure of outflow tract of right ventricle-1-C0225892-PAR-SNM 1-0-C0018787-Structure of trabecula carnea of left ventricle-1-C0225898-PAR-SNM 1-0-C0018787-Right side of heart-1-C0225808-PAR-SNM 1-0-C0018787-Left side of heart-1-C0225809-PAR-SNM 1-0-C0018787-Structure of tendon of conus arteriosus-1-C0225893-PAR-SNM 1-0-C0018787-Structure of base of heart-1-C0225810-PAR-SNM 1-0-C0018787-Structure of crista supraventricularis-1-C0225884-PAR-SNM 1-0-C0018787-Structure of apex of heart-1-C0225811-PAR-SNM 1-0-C0018787-Left ventricular structure-1-C0225897-PAR-SNM 1-0-C0018787-Structure of supratricuspid valve area-1-C0225859-PAR-SNM Como se puede ver, todas las relaciones son de nivel 1, entre el concepto de nivel 0 (raíz) y sus conceptos relacionados de dicho nivel 1. 85 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Sistema de acceso a UMLS 86 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3 CASOS DE ESTUDIO/RESULTADOS A continuación se exponen los dos casos de estudio contemplados en este proyecto, junto con sus resultados y análisis. En ambos casos de estudio se realiza un análisis de los datos obtenidos a través del sistema de acceso programado, así como de los obtenidos mediante sentencias SQL sobre la base de datos de las mismas peticiones que con el programa. Las consultas SQL sin embargo, solo se han realizado del primer nivel de cada uno de los casos de estudio debido a que niveles mas profundos implican un número de nodos muy elevado y por lo tanto las consultas se multiplicarían y el nivel de complejidad en las comparaciones también. La comparativa de los resultados obtenidos de las dos maneras se realiza partiendo de dos conceptos distintos en cada caso de estudio y filtrando de manera distinta y en diferentes niveles de profundidad. Para entender la estructura utilizada para plantear los parámetros de los casos de estudio, todos ellos se plantean en el encabezado con la misma estructura, que se indica a continuación: • Concepto origen: Concepto del que parten las relaciones. • Tipo de relación: RB-RN, CHD-PAR, o ambas. • Recurso/s: Recurso por el que se filtra la búsqueda. Por defecto no se especifica ninguno en concreto. • Número de saltos: Número que delimita el nivel de profundidad de las relaciones. • Número máximo de relaciones: Limite de relaciones por cada uno de los nodos del grafo. 87 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3.1 Primer caso de estudio El el primer caso de estudio se analizan los resultados obtenidos para el concepto C0020179 – Huntington Disease, en dos niveles distintos de profundidad (nivel 1 y 2), para los tipos de relaciones CHD-PAR, y RB-RN, sin filtrar por tipo de recurso. Seguidamente se analizan los datos obtenidos mediante sentencias SQL sobre el mismo concepto y los mismos tipos de relaciones y se comparan los resultados. 3.1.1 C0020179, CHD-PAR, Todos los recursos, 1 salto. • Concepto origen: C0020179 • Tipo de relación: CHD-PAR. • Recurso/s: Todos. • Número de saltos: 1. 88 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio Figura 25: Relaciones 1 nivel CHD-PAR concepto C0020179 Como se puede ver en la figura el concepto C0020179 correspondiente a Huntington disease de nivel 0 (Debido a que es la raíz) tiene una relación de tipo CHD con el concepto C0553607 de salto 1. El 0 a la izquierda del tipo de relación en la arista corresponde al identificador único de la relación. Debido a que solo hay una relación presente el identificador es 0. El informe correspondiente a las relaciones de distancia uno es el siguiente. RELACIONES PARA EL CONCEPTO C0020179-Huntington Disease, Niveles: 1, Tipos: PAR-CHD, Fuente: ALL NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0020179-Motion and Coordination Diseases and Syndromes-1-C0553607-CHDSNM 89 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3.1.2 C0020179, CHD-PAR, Todos los recursos, 2 saltos • Concepto origen: C0020170 • Tipo de relación: CHD-PAR. • Recurso/s: Todos. • Número de saltos: 2. Figura 26: Relaciones 1 nivel CHD-PAR concepto C0020179 90 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio En el caso de las relaciones de nivel dos, se puede ver como el concepto C0553607 correspondiente a Motion and Coordination Diseases and Syndromes tiene una serie de relaciones representadas por los nodos en color verde, la mayoría de tipo PAR indicado por la dirección de la arista (dirección hacia dentro). En el informe se pueden ver los nombres asociados a las relaciones existentes. RELACIONES PARA EL CONCEPTO C0020179-Huntington Disease, Niveles: 2, Tipos: PAR-CHD, Fuente: ALL NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0020179-Motion and Coordination Diseases and Syndromes-1-C0553607-CHDSNM 2-1-C0553607-Tabes Dorsalis-2-C0039223-PAR-SNM 2-1-C0553607-Parkinsonism, Juvenile-2-C0752105-PAR-SNM 2-1-C0553607-Chronic progressive chorea-2-C0699728-PAR-SNM 2-1-C0553607-Electric chorea-2-C0270744-PAR-SNM 2-1-C0553607-Sylvian aqueduct syndrome-2-C0270748-PAR-SNM 2-1-C0553607-Marie Cerebellar Ataxia-2-C0270749-PAR-SNM 2-1-C0553607-Bailey-Cushing syndrome-2-C0270762-PAR-SNM 2-1-C0553607-Birnbaum's syndrome-2-C0270738-PAR-SNM 2-1-C0553607-Hemichorea-2-C0270739-PAR-SNM 2-1-C0553607-Double athetosis-2-C0270743-PAR-SNM 2-1-C0553607-Roussy-Levy Syndrome (disorder)-2-C0205713-PAR-SNM 2-1-C0553607-Parkinson Disease, Postencephalitic-2-C0030568-PAR-SNM 2-1-C0553607-Secondary Parkinson Disease-2-C0030569-PAR-SNM 2-1-C0553607-Taboparesis-2-C0275849-PAR-SNM 2-1-C0553607-Ataxias, Hereditary-2-C0004138-PAR-SNM 91 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C0553607-Ataxia Telangiectasia-2-C0004135-PAR-SNM 2-1-C0553607-Huntington Disease-2-C0020179-PAR-SNM 2-1-C0553607-Parkinson Disease-2-C0030567-PAR-SNM 2-1-C0553607-Neuromuscular Diseases-2-C0027868-CHD-SNM 2-1-C0553607-Organic writer's cramp-2-C0154676-PAR-SNM 2-1-C0553607-Gilles de la Tourette syndrome-2-C0040517-PAR-SNM 2-1-C0553607-Olivopontocerebellar Atrophies-2-C0028968-PAR-SNM 2-1-C0553607-Astasia-Abasia-2-C0004090-PAR-SNM 3.1.3 C0020179,RB-RN, Todos los recursos, 1 salto • Concepto origen: C0020179 • Tipo de relación: RB-RN. • Recurso/s: Todos. • Número de saltos: 1. 92 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio Figura 27: Relaciones 1 salto RB-RN concepto C0020179 En la figura superior se pueden ver las relaciones de tipo RB-RN para el concepto C0020179. Este caso es particular debido a que ninguno de los conceptos de nivel 2 dispone de alguna relación de tipo RB-RN de salto 2, por lo que dicha consulta no se a realizado y el grafo queda de dicha manera. El informe correspondiente se ve a continuación. 93 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio RELACIONES PARA EL CONCEPTO C0020179-Huntington Disease, Niveles: 1, Tipos: RB-RN, Fuente: ALL NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0020179-Extrapyramidal and movement disorders-1-C0477355-RN-MTH 1-0-C0020179-Hereditary Diseases-1-C0019247-RN-MTH 1-0-C0020179-Organic brain syndrome-1-C0029221-RN-MTH 1-0-C0020179-Chorea-1-C0008489-RN-MTH 1-0-C0020179-Hereditary Chorea-1-C0699731-RN-MTH 1-0-C0020179-chronic; chorea-1-C0699732-RN-MTH 1-0-C0020179-progressive; chorea-1-C0699734-RN-MTH 1-0-C0020179-Neurodegenerative Disorders-1-C0524851-RN-MTH 3.1.4 Consulta SQL para concepto C0020179, RB-RN La consulta sobre el concepto C0020179 de primer nivel se ha realizado de la siguiente manera sobre la base de datos instalada a nivel local. SELECT CUI1, C1.STR, REL, CUI2, C2.STR, c2.SAB FROM MRREL R, MRCONSO C1, MRCONSO C2 WHERE R.AUI1= C1.AUI AND R.AUI2=C2.AUI AND (REL='RB' OR REL='RN') AND CUI1='C0020179'; 94 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio CUI1 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 C0020179 STR Huntington's disease Huntington's disease Huntington's disease Huntington's disease Huntington Disease Huntington Disease Huntington Disease Huntington Disease Huntington Disease Huntington Disease Huntington's chorea Huntington's chorea Huntington's chorea Huntington's chorea REL RB RB RB RB RN RN RN RN RN RN RN RN RN RN CUI2 C0008489 C0025362 C0029221 C0019247 C1279186 C1864112 C1858114 C0751208 C0751207 C0393574 C0393574 C0393575 C0751208 C0393584 STR chorea mental retardation organic brain syndrome genetic disorder Westphal disease Huntington Disease-Like 1 Huntington Disease-Like 3 Juvenile Huntington Disease Akinetic-Rigid Variant of Huntington Disease Huntington Disease, Late Onset Late onset Huntington's disease Akinetic-rigid form of Huntington's disease Juvenile onset Huntington's disease Benign hereditary chorea SAB CSP CSP CSP CSP MSH MSH MSH MSH MSH MSH SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US Tabla 16: Consulta SQL concepto C0020179 3.2 Segundo caso de estudio En este segundo caso de estudio se realiza un análisis de los resultados obtenidos para el concepto C0018787 correspondiente a Heart. Este es un concepto mucho mas amplio donde el número de relaciones es mas extenso y da lugar a grafos mas complejos donde es necesario un filtrado mas específico por lo que se han acotado las búsquedas a los tipos de relaciones CHD-PAR y a un recurso mas especifico a partir del segundo nivel de profundidad. Se van a analizar los cuatro niveles de profundidad que ha decidido proponer como máximo junto con los resultados SQL del primer nivel ya que el número de relaciones es exponencial y detenerse a estudiar los resultados SQL de cada uno de los nodos de todos los niveles no es viable. 3.2.1 C0018787, CHD-PAR, Todos los recursos, 1 salto. • Concepto origen: C0018787 • Tipo de relación: CHD-PAR. • Recurso/s: Todos. 95 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio • Número de saltos: 1. Figura 28: Relaciones 1 salto CHD-PAR concepto C0018787 Como se puede ver el número de conceptos relacionados con el C0018787 ya incluso en el primer de profundidad es muy elevado y el grafo se complica bastante, considerando que se ha filtrado por tipo de relación. RELACIONES PARA EL CONCEPTO C0018787-Heart, Niveles: 1, Tipos: PARCHD, Fuente: ALL NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 96 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 1-0-C0018787-Pericardial sac structure-1-C0031050-PAR-RCD 1-0-C0018787-Heart-1-C0018787-PAR-RCD 1-0-C0018787-Cardiac wall structure-1-C0446987-PAR-RCD 1-0-C0018787-Structure of cardiac vein-1-C0226654-PAR-RCD 1-0-C0018787-Intrathoracic cardiovascular structure-1-C0559362-CHD-RCD 1-0-C0018787-Mediastinum-1-C0025066-CHD-RCD 1-0-C0018787-Cardiac internal structure-1-C0456931-PAR-RCD 1-0-C0018787-Cardiac surface feature-1-C0456925-PAR-RCD 1-0-C0018787-Cardiovascular system-1-C0007226-CHD-RCD 1-0-C0018787-Coronary artery-1-C0205042-PAR-RCD 1-0-C0018787-Cardiac conduction system-1-C0018796-PAR-SNMI 1-0-C0018787-HEART AND PERICARDIUM-1-C1541678-CHD-SNMI 1-0-C0018787-Left atrial structure-1-C0225860-PAR-SNMI 1-0-C0018787-Left ventricular structure-1-C0225897-PAR-SNMI 1-0-C0018787-Right ventricular structure-1-C0225883-PAR-SNMI 1-0-C0018787-Heart Ventricle-1-C0018827-PAR-SNMI 1-0-C0018787-ATRIA: GENERAL TERMS-1-C0225831-PAR-SNMI 1-0-C0018787-HEART: GENERAL TERMS-1-C0225807-PAR-SNMI 1-0-C0018787-Right atrial structure-1-C0225844-PAR-SNMI 1-0-C0018787-Rheumatic illness with extraarticular and/or constitutional features (fever, rash, pleurisy,etc) OR Systemic illness with rheumatic manifestation-1C0221589-CHD-AIR 1-0-C0018787-Cardiac murmur of MI-1-C0151233-PAR-AIR 1-0-C0018787-Aortic insufficiency: cardiac murmur of AI-1-C0151234-PAR-AIR 1-0-C0018787-Cardiac murmur, changing-1-C0151235-PAR-AIR 1-0-C0018787-Conduction system abnormalities-1-C0151236-PAR-AIR 1-0-C0018787-Prolonged PR interval, >=0.20-1-C0151237-PAR-AIR 97 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 1-0-C0018787-Myocarditis or cardiomyopathy on exam, EKG and echocardiography-1C0151238-PAR-AIR 1-0-C0018787-Pericarditis, on EKG or echocardiography-1-C0151239-PAR-AIR 1-0-C0018787-Pericarditis, on physical examination-1-C0151240-PAR-AIR 1-0-C0018787-Atrial myxoma-1-C0151241-PAR-AIR 1-0-C0018787-Myocardial Infarction-1-C0027051-PAR-AIR 1-0-C0018787-Menu of Other Findings: Systems Review-1-C0150838-CHD-AIR 1-0-C0018787-Coronary Aneurysm-1-C0010051-PAR-AIR 1-0-C0018787-Congestive heart failure-1-C0018802-PAR-AIR 1-0-C0018787-Heart murmur-1-C0018808-PAR-AIR 1-0-C0018787-Heart Atrium-1-C0018792-PAR-SNM 1-0-C0018787-Cardiopulmonary-1-C0553534-PAR-SNM 1-0-C0018787-Structure of valve of coronary sinus-1-C0226658-PAR-SNM 1-0-C0018787-Cardiac foramen ovale-1-C0016521-PAR-SNM 1-0-C0018787-Outflow tract of left ventricle-1-C0225912-PAR-SNM 1-0-C0018787-Left ventricle, inflow tract-1-C0225911-PAR-SNM 1-0-C0018787-Structure of trabecula carnea of right ventricle-1-C0225890-PAR-SNM 1-0-C0018787-Structure of supratricuspid valve area-1-C0225859-PAR-SNM 1-0-C0018787-Left auricular appendage-1-C0225861-PAR-SNM 1-0-C0018787-Structure of coronary sinus of left atrial septum-1-C0225863-PAR-SNM 1-0-C0018787-Structure of left coronary sulcus-1-C0225864-PAR-SNM 1-0-C0018787-Structure of supramitral valve area-1-C0225867-PAR-SNM 1-0-C0018787-Ventricular septum-1-C0225870-PAR-SNM 1-0-C0018787-Structure of atrioventricular septum-1-C0225871-PAR-SNM 1-0-C0018787-Structure of membranous portion of interventricular septum-1- C0225872-PAR-SNM 1-0-C0018787-Anterior portion of interventricular septum-1-C0225873-PAR-SNM 1-0-C0018787-Structure of anterior interventricular sulcus-1-C0225874-PAR-SNM 98 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 1-0-C0018787-Structure of posterior portion of interventricular septum-1-C0225875PAR-SNM 1-0-C0018787-Structure of posterior interventricular sulcus-1-C0225876-PAR-SNM 1-0-C0018787-Structure of subaortic portion of interventricular septum-1-C0225877PAR-SNM 1-0-C0018787-Structure of subtricuspid portion of interventricular septum-1- C0225878-PAR-SNM 1-0-C0018787-Apical portion of interventricular septum-1-C0225879-PAR-SNM 3.2.2 C0018787, CHD-PAR, SNMI, 2 saltos, 5 relaciones máx. • Concepto origen: C0018787 • Tipo de relación: CHD-PAR. • Recurso/s: SNMI. • Número de saltos: 2. • Número de relaciones: 5. Como se vio en apartados anteriores el sistema de acceso propuesto forma el grafo buscando las relaciones que tienen los átomos de un concepto, con átomos de otros conceptos del Metatesauro. El sistema permite limitar el número de átomos explorados por cada concepto y también el número de relaciones por cada átomo. En este caso se ha considerado oportuno limitar el número de relaciones por cada átomo a 5 para evitar que el grafo generado quede demasiado grande. El número de átomos por cada concepto no se ha limitado por lo que se exploran todos. 99 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio Figura 29: Relaciones 2 saltos CHD-PAR concepto C0018787 RELACIONES PARA EL CONCEPTO C0018787-Heart, Niveles: 2, Tipos: PARCHD, Fuente: SNMI NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0018787-Cardiac conduction system-1-C0018796-PAR-SNMI 2-1-C0018796-Sinoatrial Node-2-C0037189-PAR-SNMI 2-1-C0018796-Heart-2-C0018787-CHD-SNMI 2-1-C0018796-Cardiac conduction system-2-C0018796-PAR-SNMI 2-1-C0018796-Structure of atrioventricular node-2-C0004247-PAR-SNMI 2-1-C0018796-Left bundle branch structure-2-C0459156-PAR-SNMI 1-0-C0018787-HEART AND PERICARDIUM-1-C1541678-CHD-SNMI 2-1-C1541678-Pericardial sac structure-2-C0031050-PAR-SNMI 100 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C1541678-Heart-2-C0018787-PAR-SNMI 2-1-C1541678-Cardiovascular system-2-C0007226-CHD-SNMI 2-1-C1541678-Heart Valves-2-C0018826-PAR-SNMI 2-1-C1541678-CARDIOVASCULAR SYSTEM: GENERAL TERMS-2-C0225803-PAR-SNMI 1-0-C0018787-Left atrial structure-1-C0225860-PAR-SNMI 2-1-C0225860-Heart-2-C0018787-CHD-SNMI 2-1-C0225860-Left atrial structure-2-C0225860-PAR-SNMI 2-1-C0225860-Left auricular appendage-2-C0225861-PAR-SNMI 2-1-C0225860-Structure of myocardium of left atrium-2-C0225862-PAR-SNMI 2-1-C0225860-Structure of coronary sinus of left atrial septum-2-C0225863-PAR-SNMI 1-0-C0018787-Left ventricular structure-1-C0225897-PAR-SNMI 2-1-C0225897-Heart-2-C0018787-CHD-SNMI 2-1-C0225897-Outflow tract of left ventricle-2-C0225912-PAR-SNMI 2-1-C0225897-Structure of endocardium of left ventricle-2-C0225913-PAR-SNMI 2-1-C0225897-Subvalvular aortic region-2-C0225914-PAR-SNMI 2-1-C0225897-Myocardium of left ventricle-2-C0225899-PAR-SNMI 2-1-C0225897-Left ventricular structure-2-C0225897-CHD-SNMI 1-0-C0018787-Right ventricular structure-1-C0225883-PAR-SNMI 2-1-C0225883-Heart-2-C0018787-CHD-SNMI 2-1-C0225883-Myocardium of right ventricle-2-C0225885-PAR-SNMI 2-1-C0225883-Papillary muscle of right ventricle-2-C0225886-PAR-SNMI 2-1-C0225883-Anterior papillary muscle of right ventricle-2-C0225887-PAR-SNMI 2-1-C0225883-Posterior papillary muscle of right ventricle-2-C0225888-PAR-SNMI 2-1-C0225883-Right ventricular structure-2-C0225883-CHD-SNMI Para ver un ejemplo de lo que puede hacer un mal filtrado, o un filtrado nulo a la hora de generar grafos mediante el sistema de acceso propuesto, a 101 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio continuación se ve una imagen donde no se ha hecho uso de ningún tipo de filtrado en la generación de el grafo para las relaciones del concepto C0018787 de nivel 2 . Como se puede ver el grafo resultante es de unas dimensiones muy elevadas, dificultando así su exploración. Figura 30: Ejemplo generación de grafo poco filtrado 3.2.3 C0018787, CHD-PAR, SNMI, 3 saltos, 5 relaciones máx. • Concepto origen: C0018787 • Tipo de relación: CHD-PAR. • Recurso/s: SNMI. • Número de saltos: 3. 102 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio • Número de relaciones: 5. En las relaciones de nivel 3 el número de relaciones es muy elevado por lo que es necesario también limitar el número de relaciones por cada átomo correspondiente a cada concepto explorado a 5. En la figura superior se puede ver como quedan las relaciones de 3 niveles de profundidad con dicho filtrado, y el informe correspondiente a continuación. Figura 31: Relaciones 3 saltos CHD-PAR concepto C0018787 RELACIONES PARA EL CONCEPTO C0018787-Heart, Niveles: 3, Tipos: PARCHD, Fuente: SNMI NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0018787-Cardiac conduction system-1-C0018796-PAR-SNMI 2-1-C0018796-Sinoatrial Node-2-C0037189-PAR-SNMI 103 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C0018796-Heart-2-C0018787-CHD-SNMI 2-1-C0018796-Cardiac conduction system-2-C0018796-PAR-SNMI 2-1-C0018796-Structure of atrioventricular node-2-C0004247-PAR-SNMI 2-1-C0018796-Left bundle branch structure-2-C0459156-PAR-SNMI 3-2-C0459156-Cardiac conduction system-3-C0018796-CHD-SNMI 1-0-C0018787-HEART AND PERICARDIUM-1-C1541678-CHD-SNMI 2-1-C1541678-Pericardial sac structure-2-C0031050-PAR-SNMI 3-2-C0031050-Pericardial sac structure-3-C0031050-PAR-SNMI 3-2-C0031050-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0031050-Epicardium-3-C0225968-PAR-SNMI 3-2-C0031050-Structure of parietal pericardium-3-C0225969-PAR-SNMI 3-2-C0031050-Pericardial mesothelium-3-C0225970-PAR-SNMI 2-1-C1541678-Heart-2-C0018787-PAR-SNMI 2-1-C1541678-Cardiovascular system-2-C0007226-CHD-SNMI 3-2-C0007226-Topography Axis-3-C0392918-CHD-SNMI 3-2-C0007226-HEART AND PERICARDIUM-3-C1541678-PAR-SNMI 3-2-C0007226-Blood Vessel-3-C0005847-PAR-SNMI 2-1-C1541678-Heart Valves-2-C0018826-PAR-SNMI 3-2-C0018826-Pulmonary valve structure-3-C0034086-PAR-SNMI 3-2-C0018826-Tricuspid valve structure-3-C0040960-PAR-SNMI 3-2-C0018826-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0018826-Mitral Valve-3-C0026264-PAR-SNMI 3-2-C0018826-Aortic valve structure-3-C0003501-PAR-SNMI 3-2-C0018826-Cardiac valve nodules-3-C0521356-PAR-SNMI 3-2-C0018826-Structure of chordae tendineae cordis-3-C0008484-PAR-SNMI 3-2-C0018826-Structure of cardiac valve cusp-3-C0225923-PAR-SNMI 3-2-C0018826-Atrioventricular valve-3-C0225924-PAR-SNMI 3-2-C0018826-All cardiac valves-3-C0225925-PAR-SNMI 104 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3-2-C0018826-Heart Valves-3-C0018826-CHD-SNMI 2-1-C1541678-CARDIOVASCULAR SYSTEM: GENERAL TERMS-2-C0225803-PAR-SNMI 3-2-C0225803-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0225803-Cardiovascular system-3-C0007226-PAR-SNMI 3-2-C0225803-Systemic circulatory system-3-C0225804-PAR-SNMI 3-2-C0225803-Cardiopulmonary circulatory system-3-C0225805-PAR-SNMI 3-2-C0225803-Peripheral vascular system-3-C0225806-PAR-SNMI 1-0-C0018787-Left atrial structure-1-C0225860-PAR-SNMI 2-1-C0225860-Heart-2-C0018787-CHD-SNMI 2-1-C0225860-Left atrial structure-2-C0225860-PAR-SNMI 2-1-C0225860-Left auricular appendage-2-C0225861-PAR-SNMI 3-2-C0225861-Left atrial structure-3-C0225860-CHD-SNMI 2-1-C0225860-Structure of myocardium of left atrium-2-C0225862-PAR-SNMI 3-2-C0225862-Left atrial structure-3-C0225860-CHD-SNMI 2-1-C0225860-Structure of coronary sinus of left atrial septum-2-C0225863-PAR-SNMI 3-2-C0225863-Left atrial structure-3-C0225860-CHD-SNMI 1-0-C0018787-Left ventricular structure-1-C0225897-PAR-SNMI 2-1-C0225897-Heart-2-C0018787-CHD-SNMI 2-1-C0225897-Outflow tract of left ventricle-2-C0225912-PAR-SNMI 3-2-C0225912-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Structure of endocardium of left ventricle-2-C0225913-PAR-SNMI 3-2-C0225913-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Subvalvular aortic region-2-C0225914-PAR-SNMI 3-2-C0225914-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Myocardium of left ventricle-2-C0225899-PAR-SNMI 3-2-C0225899-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Left ventricular structure-2-C0225897-CHD-SNMI 1-0-C0018787-Right ventricular structure-1-C0225883-PAR-SNMI 105 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C0225883-Heart-2-C0018787-CHD-SNMI 2-1-C0225883-Myocardium of right ventricle-2-C0225885-PAR-SNMI 3-2-C0225885-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Papillary muscle of right ventricle-2-C0225886-PAR-SNMI 3-2-C0225886-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Anterior papillary muscle of right ventricle-2-C0225887-PAR-SNMI 3-2-C0225887-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Posterior papillary muscle of right ventricle-2-C0225888-PAR-SNMI 3-2-C0225888-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Right ventricular structure-2-C0225883-CHD-SNMI 3.2.4 C0018787, CHD-PAR, SNMI, 4 saltos, 5 relaciones máx. • Concepto origen: C0018787 • Tipo de relación: CHD-PAR. • Recurso/s: SNMI. • Número de saltos: 4. • Número de relaciones: 5. 106 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio Figura 32: Relaciones 4 saltos CHD-PAR concepto C0018787 Por último en la siguiente imagen se pueden ver las relaciones de nivel 4 para el concepto C0018787 junto con su respectivo informe del detalle del grafo. RELACIONES PARA EL CONCEPTO C0018787-Heart, Niveles: 4, Tipos: PARCHD, Fuente: SNMI NR | CO | ND | CD | TR | F ------------------------------------------------------------------------------------------------------------------------------- 1-0-C0018787-Cardiac conduction system-1-C0018796-PAR-SNMI 2-1-C0018796-Sinoatrial Node-2-C0037189-PAR-SNMI 2-1-C0018796-Heart-2-C0018787-CHD-SNMI 2-1-C0018796-Cardiac conduction system-2-C0018796-PAR-SNMI 2-1-C0018796-Structure of atrioventricular node-2-C0004247-PAR-SNMI 2-1-C0018796-Left bundle branch structure-2-C0459156-PAR-SNMI 107 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3-2-C0459156-Cardiac conduction system-3-C0018796-CHD-SNMI 1-0-C0018787-HEART AND PERICARDIUM-1-C1541678-CHD-SNMI 2-1-C1541678-Pericardial sac structure-2-C0031050-PAR-SNMI 3-2-C0031050-Pericardial sac structure-3-C0031050-PAR-SNMI 3-2-C0031050-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0031050-Epicardium-3-C0225968-PAR-SNMI 3-2-C0031050-Structure of parietal pericardium-3-C0225969-PAR-SNMI 4-3-C0225969-Pericardial sac structure-4-C0031050-CHD-SNMI 3-2-C0031050-Pericardial mesothelium-3-C0225970-PAR-SNMI 4-3-C0225970-Pericardial sac structure-4-C0031050-CHD-SNMI 2-1-C1541678-Heart-2-C0018787-PAR-SNMI 2-1-C1541678-Cardiovascular system-2-C0007226-CHD-SNMI 3-2-C0007226-Topography Axis-3-C0392918-CHD-SNMI 4-3-C0392918-Integumentary system-4-C0037267-PAR-SNMI 4-3-C0392918-Nervous System and Special Sense Organs-4-C0228057-PAR-SNMI 4-3-C0392918-Musculoskeletal System-4-C0026860-PAR-SNMI 4-3-C0392918-Body Regions-4-C0005898-PAR-SNMI 4-3-C0392918-Genitourinary system-4-C0042066-PAR-SNMI 3-2-C0007226-HEART AND PERICARDIUM-3-C1541678-PAR-SNMI 3-2-C0007226-Blood Vessel-3-C0005847-PAR-SNMI 4-3-C0005847-Veins-4-C0042449-PAR-SNMI 4-3-C0005847-Blood Vessel-4-C0005847-PAR-SNMI 4-3-C0005847-Aorta-4-C0003483-PAR-SNMI 4-3-C0005847-Pulmonary artery structure-4-C0034052-PAR-SNMI 4-3-C0005847-ARTERIES: TYPE AND STRUCTURE-4-C0225993-PAR-SNMI 4-3-C0005847-Structure of vasa vasorum-4-C0042367-PAR-SNMI 4-3-C0005847-Tunica Media-4-C0162867-PAR-SNMI 4-3-C0005847-Lumen of blood vessel-4-C0524424-PAR-SNMI 108 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C1541678-Heart Valves-2-C0018826-PAR-SNMI 3-2-C0018826-Pulmonary valve structure-3-C0034086-PAR-SNMI 4-3-C0034086-Pulmonary valve structure-4-C0034086-PAR-SNMI 4-3-C0034086-Structure of anulus fibrosus of pulmonary artery-4-C0225935-PAR-SNMI 4-3-C0034086-Structure of cusp of pulmonic valve-4-C0225936-PAR-SNMI 4-3-C0034086-Structure of right cusp of pulmonic valve-4-C0225937-PAR-SNMI 4-3-C0034086-Structure of left cusp of pulmonic valve-4-C0225938-PAR-SNMI 3-2-C0018826-Tricuspid valve structure-3-C0040960-PAR-SNMI 4-3-C0040960-Tricuspid valve structure-4-C0040960-PAR-SNMI 4-3-C0040960-Structure of anulus fibrosus of tricuspid orifice-4-C0225926-PAR-SNMI 4-3-C0040960-Tricuspid valve ostium-4-C0225927-PAR-SNMI 4-3-C0040960-Structure of septal leaflet of tricuspid valve-4-C0225931-PAR-SNMI 4-3-C0040960-Structure of chordae tendineae of tricuspid valve-4-C0225932-PAR-SNMI 3-2-C0018826-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0018826-Mitral Valve-3-C0026264-PAR-SNMI 4-3-C0026264-Mitral Valve-4-C0026264-PAR-SNMI 4-3-C0026264-Structure of anulus fibrosus of mitral orifice-4-C0225947-PAR-SNMI 4-3-C0026264-Mitral valve ostium structure-4-C0225948-PAR-SNMI 4-3-C0026264-Leaflet of mitral valve-4-C0225949-PAR-SNMI 4-3-C0026264-Structure of anterior leaflet of mitral valve-4-C0225950-PAR-SNMI 3-2-C0018826-Aortic valve structure-3-C0003501-PAR-SNMI 4-3-C0003501-Structure of right cusp of aortic valve-4-C1261078-PAR-SNMI 4-3-C0003501-Structure of left cusp of aortic valve-4-C1261079-PAR-SNMI 4-3-C0003501-Structure of posterior cusp of aortic valve-4-C1261080-PAR-SNMI 4-3-C0003501-Structure of anulus fibrosus of aorta-4-C0225957-PAR-SNMI 4-3-C0003501-Structure of cusp of aortic valve-4-C0225958-PAR-SNMI 3-2-C0018826-Cardiac valve nodules-3-C0521356-PAR-SNMI 4-3-C0521356-Heart Valves-4-C0018826-CHD-SNMI 109 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 3-2-C0018826-Structure of chordae tendineae cordis-3-C0008484-PAR-SNMI 4-3-C0008484-Heart Valves-4-C0018826-CHD-SNMI 3-2-C0018826-Structure of cardiac valve cusp-3-C0225923-PAR-SNMI 4-3-C0225923-Heart Valves-4-C0018826-CHD-SNMI 3-2-C0018826-Atrioventricular valve-3-C0225924-PAR-SNMI 4-3-C0225924-Heart Valves-4-C0018826-CHD-SNMI 3-2-C0018826-All cardiac valves-3-C0225925-PAR-SNMI 4-3-C0225925-Heart Valves-4-C0018826-CHD-SNMI 3-2-C0018826-Heart Valves-3-C0018826-CHD-SNMI 2-1-C1541678-CARDIOVASCULAR SYSTEM: GENERAL TERMS-2-C0225803-PAR-SNMI 3-2-C0225803-HEART AND PERICARDIUM-3-C1541678-CHD-SNMI 3-2-C0225803-Cardiovascular system-3-C0007226-PAR-SNMI 3-2-C0225803-Systemic circulatory system-3-C0225804-PAR-SNMI 4-3-C0225804-CARDIOVASCULAR SYSTEM: GENERAL TERMS-4-C0225803-CHD-SNMI 3-2-C0225803-Cardiopulmonary circulatory system-3-C0225805-PAR-SNMI 4-3-C0225805-CARDIOVASCULAR SYSTEM: GENERAL TERMS-4-C0225803-CHD-SNMI 3-2-C0225803-Peripheral vascular system-3-C0225806-PAR-SNMI 4-3-C0225806-CARDIOVASCULAR SYSTEM: GENERAL TERMS-4-C0225803-CHD-SNMI 1-0-C0018787-Left atrial structure-1-C0225860-PAR-SNMI 2-1-C0225860-Heart-2-C0018787-CHD-SNMI 2-1-C0225860-Left atrial structure-2-C0225860-PAR-SNMI 2-1-C0225860-Left auricular appendage-2-C0225861-PAR-SNMI 3-2-C0225861-Left atrial structure-3-C0225860-CHD-SNMI 2-1-C0225860-Structure of myocardium of left atrium-2-C0225862-PAR-SNMI 3-2-C0225862-Left atrial structure-3-C0225860-CHD-SNMI 2-1-C0225860-Structure of coronary sinus of left atrial septum-2-C0225863-PAR-SNMI 3-2-C0225863-Left atrial structure-3-C0225860-CHD-SNMI 1-0-C0018787-Left ventricular structure-1-C0225897-PAR-SNMI 110 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio 2-1-C0225897-Heart-2-C0018787-CHD-SNMI 2-1-C0225897-Outflow tract of left ventricle-2-C0225912-PAR-SNMI 3-2-C0225912-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Structure of endocardium of left ventricle-2-C0225913-PAR-SNMI 3-2-C0225913-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Subvalvular aortic region-2-C0225914-PAR-SNMI 3-2-C0225914-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Myocardium of left ventricle-2-C0225899-PAR-SNMI 3-2-C0225899-Left ventricular structure-3-C0225897-CHD-SNMI 2-1-C0225897-Left ventricular structure-2-C0225897-CHD-SNMI 1-0-C0018787-Right ventricular structure-1-C0225883-PAR-SNMI 2-1-C0225883-Heart-2-C0018787-CHD-SNMI 2-1-C0225883-Myocardium of right ventricle-2-C0225885-PAR-SNMI 3-2-C0225885-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Papillary muscle of right ventricle-2-C0225886-PAR-SNMI 3-2-C0225886-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Anterior papillary muscle of right ventricle-2-C0225887-PAR-SNMI 3-2-C0225887-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Posterior papillary muscle of right ventricle-2-C0225888-PAR-SNMI 3-2-C0225888-Right ventricular structure-3-C0225883-CHD-SNMI 2-1-C0225883-Right ventricular structure-2-C0225883-CHD-SNMI 3.2.5 Consulta SQL para concepto C0018787, CHD-PAR La consulta sobre el concepto C0018787 de primer nivel se ha realizado de la siguiente manera sobre la base de datos instalada a nivel local. SELECT CUI1, C1.STR, REL, CUI2, C2.STR,c2.SAB FROM MRREL R, MRCONSO C1, MRCONSO C2 WHERE R.AUI1= C1.AUI AND R.AUI2=C2.AUI AND (REL='RB' OR REL='RN') AND CUI1='C0018787'; 111 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Casos de estudio CUI1 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 C0018787 STR heart heart heart heart heart heart heart heart heart heart heart heart heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Heart Cardiac structure Cardiac structure Heart structure Heart structure Heart structure Heart structure REL RB RN RN RN RN RN RN RN RN RN RN RN RN RB RB RB RN RN RN RN RN RN RN RN RN RN RN RN RN RN RB RB RB RN RN RN CUI2 C0007226 C0018792 C0010075 C0014124 C0018796 C0018819 C0018826 C0018827 C0027061 C0030352 C0031050 C0920751 C0744689 C0007226 C0025066 C0927231 C0030352 C0018826 C0003501 C0225860 C0225809 C0225897 C0026264 C0225844 C0225808 C0225883 C0040960 C0504004 C0034086 C0446987 C1269562 C1284915 C1284307 C0225813 C1279268 C0229920 STR cardiovascular system atrium coronary vessel endocardium heart conduction system heart septum heart valve heart ventricle myocardium papillary muscle pericardium heart cell heart dimension/size Cardiovascular system Mediastinal part of chest Organ with cavitated organ parts Papillary muscle Cardiac valve Aortic valve Left atrium Left side of heart Left ventricle Mitral valve Right atrium Right side of heart Right ventricle Tricuspid valve Fibrous skeleton of heart Pulmonary valve Wall of heart Entire cardiovascular system Entire middle mediastinum Entire heart AND pericardium Ossa cordis Entire lymphatic vessel of heart and pericardial sac Structure of lymphatic vessel of heart and pericardial sac Tabla 17: Consulta SQL concepto C0018787 112 SAB CSP CSP CSP CSP CSP CSP CSP CSP CSP CSP CSP CSP CSP UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA UWDA SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US SNOMEDCT_US UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Conclusiones 4 CONCLUSIONES Este proyecto ha permitido concluir de una manera clara que el Sistema de acceso, representación gráfica, y generado de informes de UMLS propuesto supone una alternativa claramente viable de recuperación, estructuración y representado de la información contenida en el Metatesauro UMLS. En ambos casos de estudio, ya sea el primero que implica a un concepto más sencillo, como el segundo que involucra a uno más complejo, se aprecia una representación de la información clara y fácilmente navegable mediante grafos. El sistema propuesto permite también poder navegar por el grafo según se guste, con distintos niveles de zoom para ver las relaciones con más claridad, aunque en las imágenes propuestas no se pueda apreciar debido a que que se ha buscado la totalidad de los grafos en las imágenes. Por otro lado la funcionalidad de generación de informes permite ver los detalles de cada relación y cada nodo si se desea, junto con las información de los niveles en los que se encuentra cada una de las relaciones. Adicionalmente se ha comprobado que el sistema supone un incremento substancial de eficiencia respecto a el acceso mediante consultas SQL ya que es capaz de representar relaciones entre conceptos de hasta 4 niveles de profundidad planteados en este proyecto. Esto implica que habría que realizar una consulta SQL por cada uno de los nodos de los niveles de 1 a 3 de profundidad en un grafo de nivel 4 si se quieren obtener las relaciones de todo el grafo, lo que supone una cantidad de tiempo muy elevada, mientras que el sistema lo genera automáticamente después de seleccionar los parámetros de filtrado correspondientes. 113 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Conclusiones El salto en eficacia por lo tanto es muy elevado, sobre todo si consideramos que el sistema esta preparado para poder manejar cualquier nivel de profundidad, aunque a niveles muy altos el tiempo de ejecución aumenta de manera exponencial. Se puede concluir por lo tanto que el sistema supone una mejora en el acceso, estructuración y representación de la información del Metatesauro UMLS respecto a los sistemas de acceso existentes. 114 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Futuros desarrollos 5 FUTUROS DESARROLLOS El sistema planteado tiene margen de optimización, tanto de rendimiento como de alternativas a la hora del manejo de las estructuras de datos y la representación de los mismos, y el potencial para la construcción de grafos con una mayor complejidad es elevado. Actualmente el sistema trabaja representando las relaciones en diferentes niveles de un concepto especificado. Seria posible y lógico en el crecimiento del sistema por lo tanto, plantear un futuro desarrollo que permitiera generar grafos partiendo de dos conceptos independientes. De manera que el sistema permita construir los dos grafos de las relaciones entre dichos dos conceptos independientes y ver si alguno de los nodos de cada uno de los grafos tienen alguna relación, relacionando los dos grafos en algún punto de los mismos. Las combinaciones aumentan una vez se relacionan uno, dos o más grafos para ver si alguno de los nodos dentro de X nivel de profundidad se relaciona con el de otro grafo. También sería interesante plantear la posibilidad de la generación de grafos buscando una estructura de información común entre los mismos, permitiendo realizar consultas buscando nodos comunes a otros nodos. Por último sería interesante la introducción de algoritmos algo mas complejos, como por ejemplo Dijkstra, para la búsqueda del camino mas corto entre dos conceptos dentro de los grafos generados. 115 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Futuros desarrollos 116 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Bibliografía 6 BIBLIOGRAFÍA Referencias Artículos [BLHU93] B L Humphreys, D A Lindberg Bull Med Libr Assoc. 1993 April; 81(2): 170–177. The UMLS project: making the conceptual connection between users and the information they need. B L Humphreys and D A Lindberg [BODE04] Bodenreider, O. (2004). The unified medical language system (UMLS): integrating biomedical terminology. Nucleic acids research, 32(suppl 1), D267-D270. [HUMP93] Humphreys, B. L., & Lindberg, D. A. (1993). The UMLS project: making the conceptual connection between users and the information they need. Bulletin of the Medical Library Association, 81(2), 170. [LIND93] Lindberg, D. A., Humphreys, B. L., & McCray, A. T. (1993). The Unified Medical Language System. Methods of information in medicine, 32(4), 281-291. Referencias Web [ATOM14] https://uts.nlm.nih.gov/doc/ws/javadocs/gov/nih /nlm/umls/dto/content/AtomDTO.html [CONC14] https://uts.nlm.nih.gov/doc/ws/javadocs/gov/nih/nlm/ umls/dto/content/ConceptDTO.html [KNOW14] http://www.nlm.nih.gov/research/umls/licensedcontent/ 117 UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) Ingeniero Informático Bibliografía umlsknowledgesources.html [SOUR14] http://www.nlm.nih.gov/research/umls/knowledge_sources/ metathesaurus/release/source_vocabularies.html 118