UNIVERSIDAD AUTONOMA METROPOLITANA SEMINARIO DE …148.206.53.84/tesiuami/UAMI14464.pdf · Sergio...

40
Sergio Ramírez López Proyecto Terminal II 1 UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA SEMINARIO DE PROYECTOS II PROYECTO: “SISTEMA DE DIAGNOSTICO MEDICO” SERGIO RAMÍREZ LÓPEZ 92322377 INGENIERIA BIOMEDICA INSTRUMENTACIÓN MEDICA ELECTRÓNICA PROF. FILIBERTO CORTEZ TRIMESTRE 2002 – P

Transcript of UNIVERSIDAD AUTONOMA METROPOLITANA SEMINARIO DE …148.206.53.84/tesiuami/UAMI14464.pdf · Sergio...

Sergio Ramírez López Proyecto Terminal II

1

UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA

SEMINARIO DE PROYECTOS II

PROYECTO:

“SISTEMA DE DIAGNOSTICO MEDICO”

SERGIO RAMÍREZ LÓPEZ 92322377

INGENIERIA BIOMEDICA INSTRUMENTACIÓN MEDICA ELECTRÓNICA

PROF. FILIBERTO CORTEZ

TRIMESTRE 2002 – P

Sergio Ramírez López Proyecto Terminal II

2

ANTECEDENTES ................................................................................................................... 3 PLANTEAMIENTO GENERAL.............................................................................................. 3

LA BASE DE DATOS:......................................................................................................... 4 EL PROGRAMA:................................................................................................................. 4

OBJETIVO GENERAL............................................................................................................ 4 OBJETIVOS ESPECIFICOS ................................................................................................ 4 REQUERIMIENTOS............................................................................................................ 5

CALENDARIO ........................................................................................................................ 5 FUERA DEL CALENDARIO DE LA MATERIA DE PROYECTO TERMINAL II ............ 5

JUSTIFICACIÓN ..................................................................................................................... 6 METAS ................................................................................................................................ 6

FUNDAMENTO TEORICO:.................................................................................................... 6 El Análisis Discriminante...................................................................................................... 6

EL ALGORITMO: ................................................................................................................. 10 EXPERIENCIA PREVIA ....................................................................................................... 13 RESULTADOS ...................................................................................................................... 13

Prevalencia...................................................................................................................... 14 ANEXO A .............................................................................................................................. 16

PLATAFORMA TECNOLÓGICA: .................................................................................... 16 ANEXO B .............................................................................................................................. 17

Indice................................................................................¡Error! Marcador no definido. Introduccion......................................................................¡Error! Marcador no definido. Login .............................................................................................................................. 17 Menu del sistema ............................................................................................................ 17 Menu del administración ................................................................................................. 18

Administración de usuarios ......................................................................................... 18 Administración de permisos ........................................................................................ 20

Catálogos ........................................................................................................................ 21 Catalogo de Enfermedades .......................................................................................... 21 Catalogo de síntomas................................................................................................... 22

Generación de Reglas...................................................................................................... 25 Cargar Casos ............................................................................................................... 25 Asociar Síntomas ........................................................................................................ 26 Asociar Enfermedad.................................................................................................... 28 Generación de Reglas.................................................................................................. 30

Pacientes ......................................................................................................................... 33 Búsqueda de Pacientes ................................................................................................ 34 Nuevo Paciente ........................................................................................................... 35

Diagnostico..................................................................................................................... 36 Regresar.......................................................................................................................... 37 Salir ................................................................................................................................ 37

ANEXO C .............................................................................................................................. 38 ANEXO D .............................................................................................................................. 40

Sergio Ramírez López Proyecto Terminal II

3

ANTECEDENTES Uno de los ejemplos más utilizados en la investigación de inteligencia artificial es el diagnostico médico y durante los últimos 30 años se han generado una considerable cantidad de ejemplos y programas que, como ejemplos del potencial de la inteligencia artificial han sido muy buenos, pocas veces han encontrado uso practico fuera del ámbito académico. Hay sin embargo investigaciones que se realizan en hospitales que, aunque utilizan los avances tecnológicos, por falta de formación y conocimientos de el potencial y las limitaciones que las computadoras ofrecen, no sacan el provecho que de las mismas se puede obtener.

PLANTEAMIENTO GENERAL El proyecto general consistió en realizar un sistema computarizado para generación de reglas que determine para una enfermedad dada, y con base en los síntomas del paciente, si existe evidencia suficiente para afirmar que el paciente padece la enfermedad y en una fase avanzada la probabilidad con la que se realiza la información. El proyecto se dividiría en varias etapas:

1. Captura de los casos clínicos necesarios para la generación de reglas. 2. Generación de las mismas con base en un algoritmo determinado. 3. Validación de resultados estadísticos contra casos clínicos analizados utilizando la

metodología normal 4. Retroalimentación con base en los resultados obtenidos y generación del modelo

estadístico final 5. Pruebas en ambiente real (hospital, clínica, consultorio) del sistema propuesto 6. Ampliación y en su caso adecuación del espectro de padecimientos considerados.

Para la generación de reglas se realizó un programa que con base en el análisis multivariante (particularmente en el análisis discriminante por pasos) para caracterizar cuales son los síntomas que mejor describen una enfermedad en particular. La utilización de la tecnología computacional facilitará la captura de información y el análisis de los resultados para la generación de las reglas que en etapas posteriores se pueden utilizar para la caracterización de algunos padecimientos. Hay que recordar que el programa debe ser utilizado como auxiliar en el diagnostico para el médico especialista y no substituto del mismo.

ALCANCE

Sergio Ramírez López Proyecto Terminal II

4

El alcance del proyecto propuesto para la asignatura de PROYECTO TERMINAL II se enmarca dentro de las dos primeras etapas propuestas para el proyecto, con la idea de facilitar, una vez concluida la materia, el termino del proyecto general. El proyecto pretende: Diseñar una base de datos para la captura de y aprovechamiento de enfermedades , síntomas, pacientes y la relación entre pacientes-síntomas-enfermedades. Un programa de captura de catálogos (enfermedades, síntomas), datos clínicos (información de pacientes), generación de reglas y aprovechamiento de las mismas Un algoritmo para generación de reglas el cual será independiente de la tecnología utilizada.

LA BASE DE DATOS: Esta base de datos permitirá la captura de información progresiva de los casos clínicos que se utilizarán para la generación de reglas así como facilitar la alimentación del programa de generación de reglas y en su momento la utilización del sistema.

EL PROGRAMA: Contará con pantallas de captura para catálogos, datos de paciente (Historia clínica breve), datos clínicos(síntomas asociados con una enfermedad dada), mecanismos de seguridad para acceso a la base de datos, y la parte central del proyecto, un modulo de análisis de información encargado de la generación de las reglas las cuales tienen que ser validadas poro personal médico competente.

OBJETIVO GENERAL Generar un sistema experto de diagnostico médico que, con la sospecha fundada de un padecimiento y en base a la sintomatología existentes ayude a descartar o confirmar las sospechas de la existencia del mismo.

OBJETIVOS ESPECIFICOS Generar un programa computacional que permita la captura de la existencia o no de síntomas para un padecimiento dado y con base en los mismos determinar si el paciente se encuentra enfermo. Generar una base de datos clínicos de una enfermedad dada para su análisis. Generar un sistema de captura de información de relaciones síntoma-enfermedad

Sergio Ramírez López Proyecto Terminal II

5

REQUERIMIENTOS El sistema debe tener una interfaz grafica de usuario intuitiva, y de fácil manejo por parte del personal médico. El sistema debe ser multiplataforma de manera que en la medida de lo posible no se tenga que utilizar únicamente una plataforma tecnológica y se limite su uso por licenciamiento. El sistema debe permitir atomicidad en operaciones e independencia, pudiendo correr desde una única computadora o dentro de una red de computadoras o internet. El calculo de reglas debe ser parte del código pero encontrarse en un archivo independiente para facilitar el mantenimiento o reemplazo del algoritmo de calculo. Los gastos por licencias, para el desarrollo y uso del sistema deben ser mínimos. Se debe utilizar en la medida de lo posible los últimos avances tecnológicos en lenguajes de programación. Utilizar tecnología probada. Tener una aplicación practica para el sistema( posible uso en hospitales)

CALENDARIO Diseño de base de datos Diseño de programas de mantenimiento de catálogos Diseño de algoritmo para generación de reglas Validación de algoritmo con personal especializado (Asesor de proyecto) Programación de modulo de generación de reglas Carga de catálogos Carga de información de casos clínicos de prueba. Pruebas de sistema Adecuaciones a sistema de generación de reglas Pruebas finales a sistema en laboratorio Generación de documentación de proyecto

FUERA DEL CALENDARIO DE LA MATERIA DE PROYECTO TERMINAL II Carga de datos clínicos reales Pruebas de generación de reglas con datos clínicos reales Validación de reglas contra sistema tradicional de diagnostico Adecuaciones al sistema para ajustarlo al proceso real Documentación de resultados de análisis en ambiente hospitalario Utilización como auxiliar de diagnostico

Sergio Ramírez López Proyecto Terminal II

6

JUSTIFICACIÓN Dentro del campo de acción del ingeniero biomédico se encuentra el facilitar las herramientas para mejorar el diagnostico y detección de enfermedades por parte del profesional encargado de esas labores (Médicos). En México y en particular en la UAMI se cuenta con un grupo de investigadores altamente especializados en el uso de las herramientas computacionales para facilitar el diagnostico, como ejemplo se encuentran el área de procesamiento digital de señales o los esfuerzos que se realizan por generar reglas para la determinación de enfermedades utilizando algoritmos de inteligencia artificial y sistemas expertos, Este tipo de investigaciones se realizan generalmente en y por los alumnos y profesores de postgrado, Pero una pequeña parte de una investigación mas grande se puede realizar como proyecto terminal para obtener el titulo de Ingeniero Biomédico y es lo que se pretende en este proyecto.

METAS Generar el diseño de base de datos adecuada al problema planteado: Una base de datos normalizada de fácil mantenimiento y rápido acceso que permita relacionar: Enfermedades son síntomas, pacientes con enfermedades y los síntomas que presenta y corresponden con la enfermedad. Generar un programa de mantenimiento de la base de datos (Catálogos de síntomas, enfermedades, usuarios) que por un lado facilite la captura de información y el ligado de los datos interconectados y evite inconsistencias de información. Generar un programa que permita explotar la información de la base de datos, y que, aplicando un algoritmo de generación haga la discriminación de síntomas de manera que se pueda, con base en los síntomas, determinar si un paciente padece o no una enfermedad.

FUNDAMENTO TEORICO:

El Análisis Discriminante El Análisis discriminante es un método estadístico para análisis multivariante en el que partiendo de el supuesto de la existencia de dos o mas poblaciones con una distribución normal dentro de un mismo espacio maestral y cuyas medias son diferentes buscamos diferenciar a cual de estas poblaciones pertenece cada elemento partiendo de una serie de características o variables independientes.

Sergio Ramírez López Proyecto Terminal II

7

Una forma simplificada de el análisis discriminante es cuando nos interesa hacer una clasificación dicotómica en la que solo hay dos valores a seleccionar del tipo Si o No y nos permiten distinguir entre dos poblaciones que comparten el mismo espacio muestral. Debido a que la característica que estamos buscando diferenciar (variable dependiente) depende en general de mas de una variable independiente, y que las medias de las poblaciones aunque no son las mismas generalmente se encuentran cercanas debemos ser capaces de distinguir con una certeza aceptable a cual de estas poblaciones pertenece cada uno de los sujetos de nuestra prueba, pues es posible que clasifiquemos a un sujeto como perteneciente a la población A cuando en realidad pertenece a la población B. Población A Población B Sujeto de pruebas Si por otro medio comprobamos si un sujeto pertenece al la población A o a la población B ( AA o BB) esperamos que la probabilidad de clasificar a un sujeto que pertenece a la población A dentro del conjunto AA o a un sujeto que pertenece a la población B en el conjunto BB sea alta y que la clasificación errónea de (esto es un sujeto B en AA o atreves) sea baja. Si tomamos una variable independiente en particular para ver que tan significativa es podemos estimar la relevancia de esta variable a partir de los siguientes supuestos. Siendo n el numero de sujetos en nuestro espacio muestral, sabemos cualquiera de los n miembros del espacio muestral van a caer dentro de una de estas cuatro categorías por tanto tenemos la siguiente ecuación: n = VA + VB + FA + FB donde: VA = El numero de sujetos que clasificamos en la población A efectivamente pertenece a la población A (Verdadero positivo). FA = El número de sujetos que clasificamos a la población A pertenece a la población B (Falso positivo). VB = El número de sujetos que clasificamos en la población B efectivamente pertenece a la población B (Verdadero Negativo). FB = El número de sujetos que clasificamos en la población B y en realidad pertenecen a la población A (Falso Negativo).

Sergio Ramírez López Proyecto Terminal II

8

Esto da pie a la siguiente matriz:

AA BB A VA FB B FA VB

Así podemos determinar las siguientes probabilidades:

• La probabilidad de que un sujeto pertenece efectivamente a la población A (PVA).

PVA = VA/n

• La probabilidad de que un sujeto efectivamente pertenece a la población B (PVB).

PVB = VB/n

• La probabilidad de que un sujeto pertenece efectivamente a la población A (PFA).

PFA = FA/n

• La probabilidad de que un sujeto efectivamente pertenece a la población B (PFB).

PFB = FB/n Y a partir de estas probabilidades las siguientes ecuaciones que nos ayudaran a probar que tan acertada puede ser nuestra predicción: Sensibilidad o tasa de verdaderos positivos es la probabilidad de que un sujeto que clasificamos en la población A efectivamente pertenece a la población A. PA = VA / (VA + FA) Especifisidad o tasa de verdaderos negativos es la probabilidad de que un sujeto que clasificamos en la población B efectivamente pertenece a la población B. PB = VB / (VB + FB) Prevalencia que es la probabilidad de que un sujeto pertenezca a la población A en este caso. PrA = (VA + VB) / n Lo que nos interesa en realidad es estimar a que población pertenece un sujeto en particular a partir de la variable independiente de que disponemos.

Sergio Ramírez López Proyecto Terminal II

9

Así: El Valor predictivo de una prueba positiva es la probabilidad de que un sujeto pertenece a la población A cuando la variable en cuestión ha mostrado que pertenece a la población A.

PrVA = VA / (VA + FB)

Y el Valor predictivo de una prueba negativa es la probabilidad de que un sujeto pertenezca a la población b cuando la variable examinada muestra que pertenece al conjunto B PrVB = VB /(VB + FA)

Sergio Ramírez López Proyecto Terminal II

10

EL ALGORITMO: Para poder determinar en el caso de mas de una variable cuales son las variables que mejor determinan a que población pertenece un sujeto en particular requerimos determinar por separado los valores de sensibilidad, especificidad, valor predictivo positivo y valor predictivo negativo para cada una de las variables y posteriormente seleccionar aquellas que mejor describen el resultado. Como en general para este tipo de problemas las variables independientes están interrelacionadas será necesario, en la medida de lo posible eliminar en el calculo la influencia de las demás variables para poder hacer nuestra estimación, esto lo hacemos realizando iteraciones y calculando los valores antes descritos para cada variable, separando la variable con mejores posibilidades de describir el fenómeno y eliminando la influencia de esta variable en el espacio muestral generando así un espacio muestral reducido que no cuente con los datos correspondientes a la variable. Así, tenemos el siguiente caso. La población A y la población B cuentan con las siguientes variables independientes: A : ( x1,x2,x3,x4,.......xm) B : ( x1,x2,x3,x4,.......xm) Y cada uno de los valores x1...xm puede tomar únicamente los valores 0 y 1. Si hacemos un muestreo para ambas poblaciones tomando n sujetos y partiendo del supuesto de que ambas se encuentran en el mismo espacio muestral y además conocemos a que población pertenece cada uno de los sujetos de prueba podemos generar la siguiente matriz: x1 x2 x3 …. Xm S1 1 1 0 …. 0 S2 1 0 0 …. 1 S3 0 1 1 …. 0 . . .

Sn 0 0 1 …. 1

A A B . . .

Rn

Podemos calcular para cada una de las variables la relevancia de esta.

Sergio Ramírez López Proyecto Terminal II

11

Para x1 Sensibilidad : PA_x1 = VA x1/ (VAx1 + FAx1) Especifisidad: PB_x1 = VB x1 / (VBx1 + FBx1) Prevalencia: PrA_x1 = (VAx1 + VBx1) / n Valor predictivo positivo PrVA_x1 = VA x1 / (VAx1 + FBx1)

Valor predictivo negativo PrVB_x1 = VB x1/(VBx1 + Fax1) x1 x2 x3 …. Xm S1 1 1 0 …. 0 S2 1 0 0 …. 1 S3 0 1 1 …. 0 . . .

Sn 0 0 1 …. 1

A A B . . .

Rn

Para x2 Sensibilidad : PA_x2 = VA x2/ (VAx2 + Fax2) Especifisidad: PB_x2 = VB x2 / (VBx2 + FBx2) Prevalencia: PrA_x2 = (VAx2 + VBx2) / n Valor predictivo positivo PrVA_x2 = VA x2 / (VAx2 + FBx2)

Valor predictivo negativo PrVB_x2 = VB x2/(VBx2 + Fax2) x1 x2 x3 …. Xm S1 1 1 0 …. 0 S2 1 0 0 …. 1 S3 0 1 1 …. 0 . . .

Sn 0 0 1 …. 1

A A B . . .

Rn

Sergio Ramírez López Proyecto Terminal II

12

Y así para cada una de las variables, posteriormente determinamos que variable nos entrega mejores resultados y eliminamos la columna que genero el resultado y las determinaron este resultado, en este ejemplo suponemos que es x1: x1 x2 x3 …. Xm-1 Xm S1 1 1 0 …. 1 0 S2 1 0 0 …. 0 1 S3 0 1 1 …. 1 0 S4 1 0 0 … 0 1 S5 0 1 1 … 1 1 . . .

Sn 0 0 1 …. 1 1

A A B A A . . .

Rn

La matriz resultante es la siguiente: x2 x3 …. Xm-1 Xm S1 1 0 …. 1 0 S3 1 1 …. 1 0 S5 1 1 … 1 1 . . .

Sn 0 1 …. 1 1

A B A . . .

Rn

Para determinar cual es el siguiente síntoma relevante vamos a repetir el proceso de manera iterativa hasta obtener los datos para las mejores variables explicativas. En el caso de que cualquiera de los valores VA, VB, FA, FB fuera 0 este será substituido por 1 para evitar un error de calculo

Sergio Ramírez López Proyecto Terminal II

13

EXPERIENCIA PREVIA Durante el curso de Proyecto Terminal I realizado entre febrero y agosto de 1997 se realizó un sistema que generaba reglas y las guardaba en una base de datos creada ex profeso para su utilización, el sistema fue desarrollado en lenguaje C corriendo como una aplicación de DOS. Utilizaba reglas preestablecidas que bajo ciertas condiciones podían provocar un error de estimación del padecimiento. El sistema se planeó originalmente para analizar HIPERTENSIÓN pero el mantenimiento necesario para agregar nuevos padecimientos obligaba a analizar las reglas a aplicar antes de alimentarlas al sistema. El sistema era poco atractivo lo que dificultaba su utilización por lo que no cumplió las expectativas que se tenían del mismo A principios del 2000 se realizó una primera versión del sistema planteado aplicando un algoritmo (muy similar al utilizado al final, pero que no contemplaba las reglas para el calculo de sensibilidad necesarios por medio de análisis discriminante) para el calculo de reglas. Realizado en Visual Basic 6, pero no se probo con datos reales.

RESULTADOS En el periodo comprendido entre Enero y junio del 2002 se realizo una investigación sobre lo que es el análisis discriminante y cual es su relación con el análisis multivariante, ya anteriormente se habían hecho esfuerzos por conseguir esta información pero en realidad no se encontró la misma en el ámbito en el que nos desenvolvíamos. Estas investigaciones mostraron que, aunque el proceso iterativo para la reducción de la matriz utilizada en la selección de los casos funcionaba bien, el cálculo de probabilidades y el concepto en general del análisis discriminante necesitaba revisarse. Apoyado por esta nueva evidencia documental y por la experiencia adquirida en programación entre el año 2000 y 2002 decidimos rescribir el programa completo utilizando como lenguaje de programación PHP y como base de datos MySQL lo que permitía de una manera muy sencilla montar la aplicación en un servidor dentro de una Intranet o en una computadora que contara con un servidor web personal y soportara PHP. Un punto importante para la selección de el lenguaje fue la potencia de este y el costo de licenciamiento dado que es software libre, MySQL en el momento de escribir el programa también podía considerarse software libre (al día de hoy tiene una licencia dual que obliga a la compra de la misma cuando se trata de una aplicación comercial). Como servidor web se selecciono APACHE ya que también tiene una licencia que facilita su adopción, es ampliamente utilizado para aplicaciones en de todo tipo en internet y PHP interactua prácticamente de forma nativa con esta tecnología, adicionalmente se contemplo la

Sergio Ramírez López Proyecto Terminal II

14

posibilidad de que la aplicación para la etapa 2 (etapa fuera del alcance del proyecto) pudiera correr en un servidor UNIX o LINUX. La programación de la aplicación en lenguaje PHP se realizó durante el trimestre 92-I y en este periodo se realizaron visitas periódicas a el asesor del proyecto con el fin de asegurar que estábamos siguiendo la línea que nos habíamos propuesto. El Programa base cuyo manual se incluye en el anexo A de este documento es un sistema que cuenta con control de catálogos para enfermedades, síntomas y la relación síntoma-enfermedad. Cuenta también con una pantalla de captura para pacientes y una pantalla para capturar de una manera muy fácil cuales son los síntomas que tiene el paciente; así como pantallas para el mantenimiento y actualización de la información de los pacientes. El sistema además está provisto de un subsistema de administración de roles y usuarios lo que permite separar las funciones que se realizan sobre el, y permitir por ejemplo que la generación de reglas para cada enfermedad sea accesible únicamente por el usuario autorizado para este fin. Para efectos de realizar las pruebas preliminares se generó una matriz de pacientes ficticios con una serie de síntomas cada uno a fin de poder probar la generación de reglas, algunos de estos pacientes de prueba fueron marcados como enfermos y otros como no enfermos de la enfermedad seleccionada para la prueba de generación de reglas (Hipotiroidismo). Una vez alimentada la base de datos se procedió a probar la generación de reglas y se determinó, según los datos con los que cuenta la base de datos cuales son los síntomas más relevantes y los valores discriminantes para cada uno de estos con el fin de que sea fácil al hacer un diagnostico determinar que tan relevante es el síntoma para la enfermedad. Para Hipotiroidismo, se encontraron los siguientes síntomas con de acuerdo con los datos introducidos: Sintoma Sensibilidad

Especificidad

Prevalencia

Valor Predictivo pos

Valor Predictivo Neg

Letargia 50 77.7778 72.7273 33.3333 87.5 Pelo escaso y quebradizo 92.3077 60 30.4348 75 85.7143 Durante estas pruebas nos dimos cuenta que requerimos de un número mayor de casos para poder hacer una mejor discriminación; también la necesidad de utilizar datos reales y no datos ficticios para la generación de reglas. Una vez generadas las reglas se introdujo la información de un paciente del cual conocemos que padece hipotiroidismo (Se ha realizado perfil tiroideo y actualmente

Sergio Ramírez López Proyecto Terminal II

15

es tratado por el servicio de endocrinología en el ISSSTE) y realizamos una prueba con base en los síntomas que declara tener este paciente. El resultado de esta prueba fue el siguiente: De los síntomas que tiene el paciente con el que ser realizaron las pruebas se identifico claramente que posee ambos síntomas por lo que, con los datos que se cuentan se puede identificar la presencia de hipotiroidismo. Durante el periodo en el que se realizó el proyecto no fue posible conseguir casos reales para asó hacer el ajuste necesario en el sistema por tanto esta es una tarea que falta por realizar. Se concluye entonces:

• El sistema generado no es un sistema experto pero si puede ser un valioso auxiliar en el diagnostico medico.

• Con un poco de trabajo adicional, una vez completado las pruebas de campo y los ajustes necesarios puede hacer una buena aproximación a un diagnostico preliminar.

• Con los datos que se cuenta el sistema esta mostrando información relevante para identificar posibles padecimientos.

• El análisis discriminante muestra que puede hacer una buena predicción para discriminar si un paciente se encuentra sano o enfermo.

• Si se cuenta con las reglas para varios padecimientos se puede desplegar que padecimientos posibles tiene un paciente y de acuerdo con los síntomas que presenta y con una pequeña modificación el orden de probabilidad de que padezca cada uno de estos.

• Los valores generados por el generador de reglas muestran cuales son los síntomas mas significativos para un padecimiento.

• Se requiere cargar mas padecimientos, síntomas y hacer las relaciones necesarias para así poder cargar los casos correspondientes.

• Se requiere cargar casos reales para generar las reglas correspondientes tanto para hipotiroidismo como para otras enfermedades.

• Con los datos cargados se requiere hacer toda una serie de pruebas para validar contra la realidad la validez de el modelo predictivo.

Sergio Ramírez López Proyecto Terminal II

16

ANEXO A

PLATAFORMA TECNOLÓGICA: Sistema Operativo: Desarrollo: Windows (NT4 y 98) Pruebas: Windows (NT4 y 98), LINUX Base de datos: MySQL (licencia GNU) Lenguaje de programación: PHP (Lenguaje de Scripts) Interfaz Grafica: Internet Explorer, Netscape, Opera ( Tecnología Web) DATOS PERSONALES Nombre: Sergio Ramírez López Boleta 92322377 Teléfono: 58111785, 35394114 E-Mail: [email protected] Carrera: Ingeniería Biomédica –Instrumentación Médica Electrónica-. Fecha Nac.: 31/DIC/1969 Institución: Universidad Autónoma Metropolitana –Iztapalapa-. Trimestre: 02-P Créditos: 510 Materia: Seminario de Proyectos II Clave: 212443 Grupo: CL6__

Sergio Ramírez López Proyecto Terminal II

17

ANEXO B

MANUAL DE USUARIO: Índice Introducción El Sistema de diagnostico medico tiene como objetivo ser un auxiliar en el diagnóstico diferencial de enfermedades, facilitar la generación de reglas y la aplicación de las mismas generando una base autónoma de conocimientos permitiendo así, tomando como base los síntomas de un paciente señalar cuales son los posibles padecimientos que pueden generarlos. El sistema cuenta con una pantalla de login, un menú de aplicación, administración de usuarios, catálogos de Enfermedades y síntomas, administración de pacientes, generación de reglas y el subsistema de diagnóstico. Login

Al escribir en el navegador la dirección del sistema aparece la página de login. En esta página se tiene que escribir el nombre de usuario y contraseña que se han asignado y después pulsar sobre el botón “entrar” para así poder ingresar en el sistema, la información se guarda en una cookie y es consultada por todas las páginas del mismo, por este motivo es necesario que estén activadas las cookies.

Menu del sistema

Una vez que nos hemos firmado en el sistema aparecerá el menú de la aplicación el cual muestra la configuración que tenemos asignada de acuerdo con los permisos asignados por el administrador; a continuación se verá en detalle cada una de estas opciones.

Sergio Ramírez López Proyecto Terminal II

18

Menu del administración

Desde esta pantalla se realiza la administración de usuarios y permisos, las funciones a las que tiene acceso cada uno de los usuarios se pueden determinar tanto en el momento de creación del usuario como en el momento que la necesidad así lo requiera.

Administración de usuarios al pulsar sobre administración de usuarios se muestra la siguiente pantalla de búsqueda, desde este sitio se puede generar un nuevo usuario o escribiendo en las casillas correspondientes se puede buscar un usuario ya existente con el fin de actualizar la información de el mismo o incluso borrar el usuario en cuestión. Para realizar una búsqueda se llena el campo correspondiente al criterio de búsqueda de nuestra elección, si es por ID, se hará una búsqueda exacta, en el caso de que sea por nombre o apellido la búsqueda traerá todos los usuarios cuyo nombre, apellido o ambos contengan la cadena que hemos escrito en el cuadro de selección.

En el caso de que no se seleccione ningún criterio de búsqueda, al dar clic sobre el botón buscar el sistema desplegará todos los usuarios disponibles en el sistema.

Sergio Ramírez López Proyecto Terminal II

19

Si desde este punto deseamos dar de alta un nuevo usuario damos clic sobre el botón “nuevo” y se desplegará una pantalla con los campos correspondientes a el usuario en blanco listo para capturar la información del usuario. Una vez completada la información del usuario en el formulario de captura pulsamos sobre el botón grabar y la información será grabada en la base de datos. Para desde esta pantalla asignar los permisos con que cuenta este usuario solo hay que marcar las casillas correspondientes a estos permisos. Una vez que se despliega el listado de los usuarios que corresponden con el criterio de búsqueda procedemos a seleccionar el usuario que queremos actualizar o borrar, y damos clic sobre el botón correspondiente Si damos clic en el botón “borrar” el usuario será eliminado de la base de datos.

Si damos clic sobre el botón actualizar nos desplegará la misma pantalla que tenemos para captura de un nuevo usuario solo que en este caso esta estará pre-llenada con la información del usuario de que se trate.

Sergio Ramírez López Proyecto Terminal II

20

Al dar clic sobre el botón “Actualizar” se actualizará la información del usuario presentando en la pantalla “Registro Actualizado”.

Administración de permisos La opción de administración de permisos permite a un usuario determinado cambiar las opciones de menú a las que tiene acceso.

De la misma forma que en la opción administración de usuarios se presentará una pantalla de búsqueda la que tiene básicamente el mismo comportamiento ya tratado (en caso de tener dudas regresar a la sección “administración de usuarios” dentro de este manual. Una vez seleccionado el usuario cuyo nivel de acceso se quiere modificar damos clic sobre el botón actualizar y nos desplegará la pantalla para modificar los permisos del usuario seleccionado.

Sergio Ramírez López Proyecto Terminal II

21

Desde esta pantalla solamente tenemos que seleccionar o des seleccionar las opciones que corresponden a los permisos a modificar.

Catálogos Desde el menú de catálogos se administra toda la información de Síntomas, Enfermedades y la relación que guarda un síntoma con una enfermedad dada.

Catalogo de Enfermedades Desde esta opción realizar las operaciones de alta de enfermedad, borrado de enfermedad y modificación de la información de la misma.

Al dar clic sobre el botón catálogo de enfermedades vamos a entrar en una pantalla de búsqueda desde la que podemos buscar una enfermedad en particular. También podemos buscar solo una parte de la palabra o frase de la enfermedad que buscamos y

el sistema nos traerá de regreso todas las enfermedades que contengan la frase que escribimos. Al dar clic sobre el botón nuevo también nos permitirá capturar una nueva enfermedad. El sistema no discrimina si el nombre de una enfermedad está repetido.

Sergio Ramírez López Proyecto Terminal II

22

Si no escribimos nada en los criterios de búsqueda al pulsar el botón buscar el sistema nos regresará un listado con todas las enfermedades que están dadas de alta en el sistema y solo se requerirá seleccionar una para que de manera automática el sistema nos mande la pantalla de mantenimiento de la misma.

Desde esta pantalla podemos actualizar el nombre o la descripción de la enfermedad o complementar la información. Una vez que hemos actualizado la información al dar clic en el botón grabar se grabará el registro correspondiente en la base de datos y aparecerá una pantalla informando que se ha actualizado la información.

Catalogo de síntomas Desde esta opción realizar las operaciones de alta de síntomas, borrado de síntomas y modificación de síntomas.

Al dar clic sobre el botón catálogo de síntomas aparecerá la pantalla de búsqueda de síntomas, funciona de la misma manera que el catálogo de enfermedades.

Sergio Ramírez López Proyecto Terminal II

23

La búsqueda se realizará de acuerdo con los criterios de búsqueda seleccionados, en el caso de no escribir ningún criterio se desplegarán todos los síntomas con que cuenta el catálogo. Si seleccionamos en el control con la leyenda nuevo, aparecerá la pantalla para captura de un nuevo síntoma, en esta se captura el nombre del síntoma, el nombre común (por el que lo puede conocer el paciente) ejemplo: Síntoma--- Cefalea Nombre común--- Dolor de cabeza Y la descripción del mismo.

Si en lugar de seleccionar nuevo se selecciona un síntoma aparecerá la misma pantalla pero con la información del síntoma correspondiente, esta de manera que podremos modificar la misma. Al dar clic en el botón guardar la información se grabará en la base de datos y aparecerá la pantalla con la leyenda “Registro Actualizado”.

Sergio Ramírez López Proyecto Terminal II

24

Al dar clic sobre la opción “Relación Síntoma Enfermedad” aparecerá una pantalla que nos permite seleccionar una enfermedad de las que se encuentran en nuestro catálogo de enfermedades.

Al seleccionar una enfermedad la pantalla se refrescará para desplegar todos los síntomas que están relacionados con la enfermedad, para eliminar un síntoma solo hay que desmarcar el síntoma del que se trate y pulsar el botón guardar con esto se eliminará la relación del síntoma en cuestión y este ya no estará asociado con la enfermedad. En el caso de que no tengamos asociado ningún síntoma aparecerá vacío el recuadro de síntomas

Si queremos agregar un síntoma que no está en la lista marcamos en el control “Todos los síntomas” y este nos desplegará todos los síntomas que se encuentran en la base de datos, los síntomas que ya están relacionados con la enfermedad aparecerán preseleccionados y resaltados. Para agregar un síntoma únicamente hay que marcarlo.

Sergio Ramírez López Proyecto Terminal II

25

Una vez marcados todos los síntomas que queremos agregar damos clic en el botón grabar y la información se guardará en la base de datos apareciendo la pantalla síntoma enfermedad con la hiperliga regresar a menú, para regresar al menú podemos dar clic sobre esta o sobre el botón regresar en el menú que se encuentra en la parte superior de la aplicación.

Generación de Reglas

En el menú generación de reglas vamos a controlar la generación de casos, el asociar una enfermedad y síntoma con un paciente para así hacer los cálculos que permitan generar las reglas para cada padecimiento Este menú cuenta con dos pociones; cargar casos y generar reglas.

Cargar Casos

Al dar clic sobre la opción cargar casos aparecerá la pantalla de búsqueda de pacientes con el fin de seleccionar un paciente en particular con el cual trabajar. El sistema carga la información paciente por paciente cuando se hace desde pantalla. Al igual que en todas las pantallas de búsqueda de el sistema al buscar por id se realizará una búsqueda exacta, si el criterio es por nombre o apellido el sistema buscará

todas las ocurrencias que contengan el texto utilizado en los criterios de búsqueda.

Sergio Ramírez López Proyecto Terminal II

26

En el caso de que no se seleccione ningún criterio se desplegarán todos los pacientes registrados. En esta pantalla después de seleccionar un paciente se tiene que seleccionar la operación a realizar. Las operaciones posibles son:

• Crear un nuevo paciente • Asociar síntomas a un paciente • Asociar enfermedad a un paciente • Consultar que síntomas tiene un paciente • Verificar que enfermedades puede tener el paciente

Nuevo paciente será tratado en el menú de pacientes.

Asociar Síntomas Al seleccionar un paciente y pulsar Asociar Síntoma aparecerá en la pantalla la lista de síntomas disponibles y los síntomas que ya están relacionados para el paciente que seleccionamos en la pantalla anterior.

Sergio Ramírez López Proyecto Terminal II

27

Desde esta pantalla podemos agregar síntomas para el paciente seleccionado y una vez que ya están seleccionados todos los síntomas para este paciente pulsamos el botón grabar con lo que quedará automáticamente grabado que este paciente tiene los síntomas seleccionados.

Una vez se ha grabado la información aparecerá una pantalla con un resumen de los síntomas que presenta este paciente y el botón para hacer el diagnostico del paciente de acuerdo con las reglas que tiene el sistema.

Al pulsar el botón diagnosticar el sistema realizará una búsqueda de los síntomas y desplegará que síntomas tiene el paciente, las enfermedades posibles de acuerdo a sus síntomas y las probabilidades asociadas a cada síntoma-enfermedad de acuerdo a las reglas generadas. La generación de reglas no necesariamente va a asociar una probabilidad a cada uno de los síntomas.

Sergio Ramírez López Proyecto Terminal II

28

Solamente aparecerán valores de probabilidad para los síntomas mas significativos. Para un padecimiento aparecerán los síntomas asociados a el mismo y resaltados los síntomas que presenta el paciente.

Asociar Enfermedad El objetivo de esta pantalla es asociar las posibles enfermedades de que sospechamos para este paciente. La búsqueda se realizará sobre las enfermedades posibles para el paciente en cuestión. Al dar clic sobre Asociar enfermedad aparecerá una pantalla que presenta un control desplegable con las enfermedades disponibles en el sistema y el paciente seleccionado.

Al seleccionar una enfermedad aparecerá una pantalla con los síntomas asociados a esta enfermedad, en el caso de que alguno de estos síntomas ya este asociado a el paciente aparecerá preseleccionado el mismo.

Sergio Ramírez López Proyecto Terminal II

29

También desde esta pantalla pueden asociarse otros síntomas que no corresponden a la enfermedad seleccionada. Si dentro del control desplegable cambiamos el padecimiento aparecerán los síntomas correspondientes a esta enfermedad.

Desde esta pantalla podemos seleccionar que síntomas tiene un paciente y adicionalmente para efectos de generar las reglas podemos marcar si el paciente padece la enfermedad en cuestión.

Una vez que se pulsa el botón grabar aparecerá un resumen de los síntomas asociados a este paciente.

Sergio Ramírez López Proyecto Terminal II

30

Generación de Reglas

Desde esta opción de menú podemos generar las reglas para cada uno de los padecimientos. Para poder generar las reglas se requiere que tengamos suficientes casos con la enfermedad asociada para que los resultados sean estadísticamente significativos. Desde esta pantalla seleccionamos la enfermedad que queremos procesar automáticamente aparecerá una pantalla con el resumen de los síntomas asociados a esta enfermedad.

Desde esta pantalla podemos seleccionar que información queremos que despliegue nuestro sistema, las opciones a desplegar son:

• Mostrar Tablas: Muestra las matrices para la generación de las reglas

• Mostrar Resultados parciales: Desplegará los valores encontrados durante el proceso.

• Mostrar Resumen de casos: Despliega la información resultante del proceso de generación de reglas.

• Mostrar Descripción de la enfermedad: Desplegará la información capturada para la enfermedad en cuestión.

• Mostrar Listado de Síntomas: despliega los síntomas de la enfermedad seleccionada

Sergio Ramírez López Proyecto Terminal II

31

Al pulsar en el botón procesar se generarán las reglas correspondientes a la enfermedad seleccionada. Se desplegará también la información que se seleccionó en la pantalla anterior. En el caso de el ejemplo la descripción de la enfermedad y los síntomas. También se desplegarán si fue seleccionado en las opciones de despliegue las matrices correspondientes a los pacientes y síntomas.

Entre cada ciclo de calculo se desplegará el resumen correspondiente a cual fue el síntoma que presentó los mejores valores de probabilidad siempre que esta opción de despliegue (desplegar resultados parciales) haya sido seleccionada.

Sergio Ramírez López Proyecto Terminal II

32

Al finalizar el proceso se desplegará un resumen con los datos generados durante el proceso.

El sistema desplegará la información seleccionada, si no se seleccionan las tablas ni los resultados parciales tendremos el nombre de la enfermedad, la descripción de la misma, sus síntomas y el resumen de los cálculos realizados.

Sergio Ramírez López Proyecto Terminal II

33

Pacientes

La opción de menú pacientes presenta un menú para el manejo de los pacientes. En principio puede parecer redundante algunas opciones de este menú con el menú de generación de reglas pero está pensado para que un usuario pueda realizar las operaciones que necesita sin tener acceso a aquellas funciones que no requiere. La primera opción disponible es búsqueda de paciente, esta ya fue descrita en la sección generación de reglas.

Sergio Ramírez López Proyecto Terminal II

34

Búsqueda de Pacientes La búsqueda de el paciente se realizará de acuerdo con los criterios de selección

El sistema desplegará todos los pacientes que cumplan con los criterios de selección y en caso de que no se seleccione ningún criterio desplegará todos los síntomas disponibles Al seleccionar un paciente y hacer clic en el botón “Consulta Síntomas” el sistema desplegará los síntomas que tiene asociados este paciente.

Sergio Ramírez López Proyecto Terminal II

35

Nuevo Paciente Desde esta opción de menú podremos dar de alta un nuevo paciente, la información que se solicita es la siguiente:

• Nombre • Apellido Paterno • Apellido Materno • Estatura • Peso • Fecha de nacimiento

Esta información puede ser relevante como ayuda para el diagnostico aunque de momento el sistema

no la toma en cuenta para el calculo de probabilidades (esta es una oportunidad de mejora). Una vez capturada la información y al hacer clic en el botón grabar se insertará la información del paciente en la base de datos. Mantenimiento de pacientes.

Al dar clic sobre la opción del menú “Mantenimiento de Pacientes” se desplegará la pantalla de búsqueda de pacientes, la diferencia radica en que una vez seleccionados los criterios de búsqueda nuestras opciones a realizar cuando seleccionemos el paciente son:

• Nuevo Paciente • Actualizar • Borrar

La opción “Nuevo paciente” ya fue tratada con anterioridad Si Seleccionamos “Borrar” el registro correspondiente al paciente seleccionado será eliminado. En caso de que seleccionemos “Actualizar” se desplegará una pantalla con los datos del paciente pre-llenados con el fin de que modifiquemos la información disponible.

Sergio Ramírez López Proyecto Terminal II

36

Las opciones Asociar Síntoma y Asociar Enfermedad fueron tratadas en la sección generar reglas

Diagnostico Dentro de el menú principal o el menú de pacientes tenemos acceso a la opción Diagnostico de el sistema. Si pulsamos sobre la opción diagnostico aparecerá la pantalla de búsqueda de pacientes que ya fue descrita con anterioridad.

Esta pantalla desplegará un listado de los pacientes que cumplen con los criterios de búsqueda.

Al dar clic sobre un paciente dentro de el listado de pacientes el sistema presentará un resumen de la información del paciente así como los síntomas asociados al mismo y las posibles enfermedades que padece.

Sergio Ramírez López Proyecto Terminal II

37

Regresar Esta opción del menú nos regresará al menú principal de el sistema

Salir Esta opción del menú nos sacará del sistema

Sergio Ramírez López Proyecto Terminal II

38

ANEXO C

Diccionario de Datos Tabla Campo Tipo Nulo

ENFERMEDAD_SINTOMA Enfermedad_Sintoma_ID int(10) No

ENFERMEDAD_SINTOMA Enfermedad_ID int(10) No

ENFERMEDAD_SINTOMA Sintoma_ID int(10) No

ENFERMEDAD_SINTOMA Significativo int(11) No

ENFERMEDAD_SINTOMA Factor_Calidad float No

ENFERMEDAD_SINTOMA Sencibilidad float No

ENFERMEDAD_SINTOMA Especificidad float No

ENFERMEDAD_SINTOMA Prevalencia float No

ENFERMEDAD_SINTOMA Valor_Pred_Pos float No

ENFERMEDAD_SINTOMA Valor_Pred_Neg float No

PACIENTE Paciente_ID int(10) No

PACIENTE Nombre char(30) No

PACIENTE Ap_Paterno char(30) Sí

PACIENTE Ap_Materno char(30) Sí

PACIENTE Fecha_Nacimiento datetime Sí

PACIENTE Peso char(18) Sí

PACIENTE Estatura char(18) Sí

PACIENTE_ENFERMEDAD Paciente_Enfermedad_ID int(10) No

PACIENTE_ENFERMEDAD Paciente_ID int(10) No

PACIENTE_ENFERMEDAD Enfermedad_ID int(10) No

PACIENTE_ENFERMEDAD Enfermo int(11) Sí

PACIENTE_SINTOMA Paciente_Sintoma_ID int(10) No

PACIENTE_SINTOMA Paciente_ID int(10) No

PACIENTE_SINTOMA Sintoma_ID int(10) No

PACIENTE_SINTOMA Valor int(11) Sí

PACIENTE_SINTOMA_ENFERMEDAD Paciente_Enfermedad_sintoma_ID int(10) No

PACIENTE_SINTOMA_ENFERMEDAD Usuario_ID int(10) Sí

PACIENTE_SINTOMA_ENFERMEDAD Paciente_Sintoma_ID int(10) Sí

PACIENTE_SINTOMA_ENFERMEDAD Enfermedad_Sintoma_ID int(10) Sí

PACIENTE_SINTOMA_ENFERMEDAD Valor int(11) Sí

USUARIO Usuario_ID int(10) No

USUARIO Nombre varchar(18) No

USUARIO Ap_Paterno varchar(18) No

USUARIO Ap_Materno varchar(18) Sí

USUARIO Nivel int(11) No

USUARIO User varchar(20) No

USUARIO Password varchar(25) No

Sergio Ramírez López Proyecto Terminal II

39

ENFERMEDAD Enfermedad_ID int(10) No

ENFERMEDAD Usuario_ID int(10) Sí

ENFERMEDAD Descripcion text No

ENFERMEDAD Procesada int(11) No

ENFERMEDAD Nombre varchar(50) No

HISTORIA CLINICA Historia_Clinica_ID int(10) No

HISTORIA CLINICA Paciente_ID int(10) No

HISTORIA CLINICA Ante_Dievetes int(11) Sí

HISTORIA CLINICA Ante_Hipertension int(11) Sí

HISTORIA CLINICA Ante_Cancer int(11) Sí

HISTORIA CLINICA Ante_Parto_Multiple int(11) Sí

HISTORIA CLINICA Historia text Sí

SINTOMA Sintoma_ID int(10) No

SINTOMA Usuario_ID int(10) Sí

SINTOMA Descripcion text No

SINTOMA Nombre varchar(50) No

SINTOMA Nombre_Comun varchar(50) Sí

Sergio Ramírez López Proyecto Terminal II

40

ANEXO D

Diseño de base de datos