Download Raúl Mateos - DEIM (URV)

Document related concepts
no text concepts found
Transcript
PROYECTO FINAL DE CARRERA
SISTEMA DE ANÁLISIS DE DATOS MÉDICOS SEGÚN
ITINERARIOS Y EVOLUCIONES
Alumno:
RAUL MATEOS FERRÉ
Director:
DAVID RIAÑO
Ingeniería Técnica en Informática de Gestión
PROYECTO FINAL DE CARRERA
INDICE DE CONTENIDOS
Capítulo 1. INTRODUCCIÓN.................................................................................. 3
1.1
Descripción del Proyecto .............................................................................. 3
1.2
El contexto del trabajo: El Sistema PalliaSys.............................................. 5
1.2.1
Descripción general ............................................................................... 5
1.2.2
Funcionamiento: PalliaSys. .................................................................. 7
1.3
Objetivos. ........................................................................................................ 8
1.4
Organización del documento....................................................................... 9
Capítulo 2. ANTECEDENTES................................................................................ 10
2.1
Un hospital ................................................................................................... 10
2.1.1
La UCP .................................................................................................. 11
2.1.2
El paciente paliativo ............................................................................ 12
2.1.3
El medico paliativo.............................................................................. 12
2.1.4
Servicios de la UCP ............................................................................. 12
2.2
Circuito de Pacientes paliativos................................................................. 15
2.3
Evolución de un paciente ........................................................................... 17
2.3.1
Clasificación no supervisada: K-Means............................................. 17
2.3.2
Pseudocódigo del Algoritmo K-Means ............................................. 17
2.4
Estructuras de Decisión .............................................................................. 18
2.4.1
Minería de Datos.................................................................................. 18
2.4.2
Aprendizaje Automático .................................................................... 18
2.4.3
Algoritmos de inducción .................................................................... 19
2.4.4
Reglas de producción.......................................................................... 24
2.4.5
Tablas de Decisión ............................................................................... 24
Capítulo 3. SISTEMA DE AYUDA A LA TOMA DE DECISIÓN..................... 27
3.1
Descripción del sistema .............................................................................. 27
3.1.1
Funcionalidad y uso ............................................................................ 28
3.2
Aspectos de la implementación................................................................. 31
3.2.1
Fase 1: Recogida de datos. .................................................................. 31
3.2.2
Fase 2: Circuito de pacientes y Cambio de estado. ......................... 32
3.2.3
Fase 3: Estructuras de decisión. ......................................................... 34
3.2.4
Fase 4: Previsión de evoluciones de nuevos pacientes................... 38
3.3
Interficie de usuario..................................................................................... 39
3.3.1
Introducción ......................................................................................... 39
3.3.2
Pantalla principal................................................................................. 39
3.3.3
Pantalla Nuevo Proyecto. ................................................................... 40
3.3.4
Pantalla de circuitos de Pacientes y Estadios. ................................. 43
3.3.5
Pantalla árbol de decisión................................................................... 45
3.3.6
Pantalla Reglas de Producción. ......................................................... 46
3.3.7
Pantalla Tabla de Decisión. ................................................................ 46
3.3.8
Pantalla de Nuevo Paciente................................................................ 48
3.3.9
Pantalla Guardar Proyecto. ................................................................ 49
3.3.10
Pantalla Abrir Proyecto....................................................................... 51
1
PROYECTO FINAL DE CARRERA
Capítulo 4. PRUEBAS REALIZADAS................................................................... 52
4.1
Descripción de las pruebas......................................................................... 52
4.2
Datos Obtenidos. ......................................................................................... 53
4.2.1
Circuito de Pacientes........................................................................... 53
4.2.2
Árbol de decisión................................................................................. 53
4.2.3
Reglas de Producción.......................................................................... 55
4.2.4
Tablas de decisión................................................................................ 56
4.2.5
Nuevo Paciente: Previsión.................................................................. 56
4.3
Análisis de resultados. ................................................................................ 56
4.3.1
Circuito de Pacientes........................................................................... 57
4.3.2
Árbol, Reglas y Tablas de Decisión................................................... 58
4.4
Conclusión de las pruebas.......................................................................... 60
Capítulo 5. CONCLUSIÓN DEL PROYECTO..................................................... 61
5.1
Resumen del trabajo. ................................................................................... 61
5.2
Alcance de los objetivos marcados............................................................ 62
5.2.1
Conclusiones obtenidas. ..................................................................... 63
5.3
Trabajo futuro............................................................................................... 64
Capítulo 6. ANEXOS ............................................................................................... 65
6.1
Anexo 1: Datos de Pacientes. .................................................................... 65
6.2
Anexo 2: Algoritmo de generación aleatoria de datos ........................... 67
Capítulo 7.
BIBLIOGRAFÍA ................................................................................... 68
2
PROYECTO FINAL DE CARRERA
Capítulo 1. INTRODUCCIÓN
1.1 Descripción del Proyecto
El presente trabajo se engloba dentro del proyecto PalliaSys, en el que se diseña
e implementa un sistema informático que ayude a gestionar la información de
los pacientes de la Unidad de Curas Paliativas (UCP) del Hospital de la Santa
Creu i Sant Pau (Barcelona).
Figura 1. Arquitectura Multi-Agente del proyecto Palliasys.
3
PROYECTO FINAL DE CARRERA
La idea central de este proyecto reflejada en la figura 1, es la de desarrollar una
herramienta que ayude a la toma de decisiones de los profesionales de un
Hospital que interactúan en la Unidad de Curas Paliativas. Por ayuda a la toma
de decisión se entiende la tarea de, en base a un conjunto de datos, extraer y
presentar conocimiento implícito de tal forma que el profesional tenga una
visión más amplia del problema a resolver.
Los pacientes paliativos son enfermos en estado terminal atendidos por centros
sanitarios con el fin de paliar el sufrimiento en la última etapa de su vida. El
tratamiento de estos pacientes define un modelo altamente distribuido tanto por
lo que atañe a los pacientes como a los profesionales médicos. Los pacientes
pueden residir en casa, con o sin posibilidades de asistir a la consulta del
especialista médico, estar ingresados en algún servicio hospitalario (oncología,
unidad de curas intensivas, etc.) o en un centro sociosanitario (CSS), o residir en
la unidad de curas paliativas (UCP) del hospital. Como complemento, los
médicos y demás facultativos realizan labores de asistencia a domicilio o
PADEs, visita a los pacientes hospitalizados y consulta en el despacho.
Las bases de datos de una UCP incorporan información sobre las evoluciones
de los pacientes a lo largo de los tránsitos entre deferentes emplazamientos.
Cada uno de los pasos de un episodio de tratamiento contiene información
básica sobre el lugar en que se encuentra el paciente (inmovilizado en domicilio,
en domicilio con movilidad, en CSS, en un servicio hospitalario, en la UCP,
etc.), la duración de la estancia (nº de días), la medicación que se le ha
suministrado en ese periodo (fármacos y dosis), las pruebas y procedimientos
recibidos por el paciente y el estado de salud medio durante la estancia.
El tratamiento de un paciente desde el momento en que entra en contacto con la
UCP y el momento final, está representado por un episodio asistencial que es,
una secuencia de bloques de datos conteniendo información del tipo que se ha
comentado en el párrafo anterior.
Con este tipo de información, acumulada para todos los pacientes en un
intervalo temporal significativo, se propone realizar los siguientes estudios,
empleando técnicas de análisis inteligente de datos:
Detección de patrones de circuitos seguidos por los pacientes.
Aplicación de métodos clasificatorios no supervisados para la detección de
estados de paciente, si éstos son desconocidos.
Construcción de la estructura de estados (no supervisados) de los pacientes
para mostrar los cambios de estado.
Algoritmos de construcción de estructuras de decisión (árboles, reglas,
tablas) sobre la movilidad de los pacientes con el fin de prever el circuito
que seguirá un nuevo paciente dentro de la estructura de la que forma parte
la Unidad de Curas Paliativas.
4
PROYECTO FINAL DE CARRERA
Algoritmos de construcción de estructuras de decisión sobre la evolución de
los pacientes, a partir de los estados en que se clasifican los pacientes ya
tratados. Estas estructura será empleada para la previsión de evoluciones de
nuevos pacientes.
1.2 El contexto del trabajo: El Sistema PalliaSys
1.2.1
Descripción general
El sistema informático PalliaSys es un sistema en red orientado a la e-asistencia
de los pacientes de una Unidad de Cuidados Paliativos (UCP). PalliaSys permite
el acceso desde cualquier lugar y en cualquier momento a un registro
electrónico de los pacientes paliativos almacenado de forma centralizada, bajo
el control de la UCP responsable de esos pacientes. Mediante dispositivos
electrónicos de distinto tipo (teléfonos móviles, agendas electrónicas,
ordenadores portátiles, PCs) se puede acceder a una serie de servicios
orientados a mejorar la calidad del tratamiento de estos pacientes. Esto es
especialmente interesante en este tipo de asistencia puesto que las actividades
que se llevan a cabo para atender a los enfermos paliativos se realizan en
distintos lugares y por distinto personal. Una UCP está a cargo de la atención
tanto de los pacientes paliativos que están ingresados (hospitalizaciones, sea en
la propia UCP, en otras unidades del hospital, o en un centro sociosanitario),
como de los pacientes paliativos que, o están en su casa sin poderse desplazar
(visitados por el personal PADES), o bien realizan visitas periódicas a los
especialistas de la UCP (consulta externa). Así pues, un paciente puede ser
tratado por el personal de la UCP, por médicos de otros centros, por PADES, o
incluso puede requerir la ayuda de la familia, amigos o de un cuidador
personal. Por tanto, el seguimiento de un paciente puede llegar a ser
multiservicio , multicentro y multipersona.
Se puede apreciar, pues, el carácter multidisciplinario y distribuido de la
asistencia de pacientes paliativos. Esto describe un entorno propicio para el uso
de un sistema informático, basado en la historia clínica electrónica de los
pacientes, que facilite a cada tipo de usuario el acceso a los datos de los
pacientes que necesite, y proporcione herramientas que puedan ayudar a llevar
a cabo las funciones de apoyo al personal y que permitan diseñar una estrategia
terapéutica conjunta a seguir entre la UCP, otros servicios hospitalarios
involucrados (Oncología, Radiología, etc.), los centros sociosanitarios, los
PADES y los equipos de atención primaria correspondientes. Para ello
proponemos el uso de diversas tecnologías desarrolladas dentro del campo de
la Inteligencia Artificial: concretamente, se está desarrollando un sistema multiagente que incorpora herramientas de análisis inteligente de datos .
Un agente se podría definir como un programa que aplica técnicas de
Inteligencia Artificial para escoger en cada momento las acciones más
adecuadas a realizar para llegar a conseguir unos objetivos asignados por un
5
PROYECTO FINAL DE CARRERA
usuario. Debería reaccionar de forma flexible, proactiva, dinámica, autónoma e
inteligente a los cambios que se producen de forma continua en su entorno de
actuación. Un sistema multi-agente es un conjunto de agentes autónomos que se
comunican entre ellos para coordinar sus actividades y así ser capaces de
resolver de forma colectiva un problema complejo que no podría resolver
ninguno de los agentes de forma individual.
Los sistemas de análisis inteligente de datos pueden ser empleados para la
explotación de los datos del registro electrónico de pacientes y para extraer
modelos de comportamiento que definan perfiles de usuario explícitos que
puedan ser analizados por los médicos con fines asistenciales, organizativos,
económicos o de control de la calidad. Estos modelos también pueden
emplearse en la predicción de circuitos de pacientes nuevos y permiten
anticipar la toma de decisiones de los jefes de servicio.
En el caso de PalliaSys, uno de los agentes del sistema (Véase figura 1), el Data
Analyser, estará especializado en técnicas de minería de datos, descubrimiento
de conocimiento y algoritmos de aprendizaje automático, y utilizará toda esta
capacidad procedural para analizar la información clínica de los pacientes
paliativos y ayudar a los directivos de la UCP en la toma de decisiones. Este
agente puede definir modelos de diferentes tipos de pacientes, empleando técnicas
de aprendizaje automático no supervisado. Puede también analizar la evolución
clínica de los pacientes y los flujos de pacientes entre diversas localizaciones,
creando modelos de estas evoluciones que permitan realizar predicciones sobre los
estados futuros de los pacientes (p.e. podría anticipar que el estado de un
paciente empeorará mucho en breves semanas, y recomendar la adopción de
mesuras preventivas). Estos modelos se crean utilizando técnicas de
aprendizaje automático inductivo. Las funcionalidades ofrecidas por este
agente sólo podrán ser utilizadas por la persona responsable de la UCP.
Flujo de los pacientes paliativos dentro del hospital
La transición de los pacientes paliativos entre sus posibles localizaciones (UCP,
otros servicios del hospital, centros sociosanitarios u hospitalización
domiciliaria) es un tema importante para el responsable de la UCP, ya que se
pueden tomar muchas decisiones organizativas como resultado del análisis de
tales transiciones.
Análisis de la evolución clínica de los pacientes
Un estadío indica el grado de evolución de la enfermedad de un paciente
paliativo. Básicamente en este trabajo se definen seis estadíos diferentes,
aunque el número posible de estadios de un paciente dependerá del campo
médico en que se encuentre, de la voluntad del propio facultativo y de la
patología del paciente. Dado que la mayoría de pacientes paliativos provienen
del ámbito de la oncología y en esta se definen los estadíos 0, 1, 2, 3 y 4, nuestra
decisión ha sido fijar seis estados posibles: los anteriores y el estadío de éxitus.
6
PROYECTO FINAL DE CARRERA
pero todos ellos se pueden refinar en estados más específicos según las
peculiaridades de cada paciente concreto. El análisis de los registros clínicos de
los pacientes permite la propuesta detección automática de tales estados si estos
no han sido definidos de antemano y la construcción de diagramas de flujo de
la evolución de los pacientes.
1.2.2
Funcionamiento: PalliaSys.
La descripción del funcionamiento general de la asistencia médica en el sistema
PalliaSys es la siguiente:
INGRESO: Cuando ingresa el paciente en el programa de curas paliativas
por primera vez, se rellena la ficha de registro con sus datos personales,
datos familiares, estado de salud de la primera visita, diagnósticos, y
episodio. A partir de aquí, y hasta que el paciente fallece, se van realizando
evaluaciones periódicas en cada una de las sucesivas visitas. Estas
evaluaciones se llevan a cabo tanto si el paciente se visita en la consulta
médica como si el médico va a visitarle a domicilio o si el paciente está
ingresado en algún pabellón del hospital.
TRATAMIENTO: En cada visita, el paciente (o la persona que se ocupa de
su cuidado) debe rellenar una ficha de auto-evaluación. Posteriormente, el
médico, según sus observaciones y las pruebas realizadas, rellena un
formulario evaluando los mismos factores de manera objetiva. Además,
introduce una serie de datos útiles consistentes básicamente en la
medicación y ordenes para realizar pruebas y análisis.
ALTA: Cuando el paciente fallece (exitus) se realiza la evaluación final.
INGRESO
ALTA
TRATAMIENTO
EPISODIO
Figura 2. Episodio de un paciente
La figura 2 muestra de manera esquemática un episodio clínico de un paciente
de la UCP, destacándose la entrada de datos en el ingreso, durante el
tratamiento y al alta. Durante el tratamiento puede observarse puntualmente
cada visita de manera independiente.
7
PROYECTO FINAL DE CARRERA
1.3 Objetivos.
Los objetivos que se presentan en este trabajo pretenden alcanzar la resolución
de los problemas planteados. Pero hay que tener en cuenta que son los
profesionales médicos quienes plantean estos problemas, y la tarea del presente
trabajo es dar una solución técnica. Por tanto, hay una motivación externa a la
hora de formular los problemas que se pretenden solucionar.
Los objetivos tiene la siguiente división:
Detección de estados del paciente
Este objetivo plantea la detección del estado de los paciente mediante métodos
de clasificación no supervisados. La clasificación se hará en base a unos
atributos del paciente previamente seleccionados por un experto. Todos los
atributos se obtendrán de la fuente de datos descrita en la sección 2.1.4.1. Esta
fuente aparece con el nombre PCU Database en la figura 1, donde el agente DB
Wrapper actúa como intermediario entre la Base de Datos física y el agente
Data Analyser que se desarrolla en este trabajo.
Patrones de circuitos y Cambios de estado
En este apartado se modela el circuito estándar de los pacientes a medida que
cambian de ubicación durante el tratamiento. De esta manera se obtiene una
representación de la conducta general del hospital con respecto a la unidad de
curas paliativas. También se modela la evolución de los pacientes atendiendo a
su estado de salud, obteniéndose al igual que antes una representación de la
conducta general del hospital frente a un estado de un paciente en concreto.
Creación de Estructuras de decisión
Este objetivo prevé la incorporación de algoritmos creación de estructuras de
decisión: Árboles, reglas y tablas; partiendo de los datos que se desprenden de
la consecución de los objetivos anteriormente mencionados.
Creación de una Base del Conocimiento y predicción de nuevos pacientes
Una vez obtenidos las estructuras de decisión estaremos en disposición de crear
una Base del Conocimiento (BC). Esta BC recogerá todos los datos
imprescindibles para la ayuda a la toma de decisión, dispuestos de forma tal
que permita realizar consultas sobre futuras evoluciones de pacientes (cambios
de ubicación o cambios en su estado).
8
PROYECTO FINAL DE CARRERA
Análisis de resultados con datos reales
Una vez creada la aplicación que implemente la solución a los problemas
propuestos en el apartado 1.1, se iniciará un análisis detallado de los resultados
con datos reales extraídos de la Base de Datos Hospitalarios del Hospital de la
Santa Creu i Sant Pau (Barcelona).
1.4 Organización del documento
En el capítulo 2 se describen los antecedentes tenidos en cuenta para la
realización del presente trabajo. Se pasará revista a conceptos clave como son:
Hospital, paciente o doctor paliativo, intentando situar al lector en el campo de
las curas paliativas. En este capítulo también se presentará la fuente de datos
con la cual se ha efectuado el estudio, así como técnicas de clasificación
automática de estado de un paciente (Algoritmo K-Means) y de toma de
decisión que se han utilizado (Árboles, Reglas y Tablas de Decisión), dando una
visión teórica de todas estos métodos.
En el capítulo 3 se presenta una solución al problema planteado en la sección
1.1 detallando el sistema creado y describiendo su funcionamiento, uso e
implementación.
En el capítulo 4 se analizan los resultados obtenidos de las pruebas realizadas,
mostrando gráficos de modelado, árboles de decisión, reglas de aprendizaje y
tablas de decisión generados.
En el capítulo 5 se detallan los objetivos conseguidos y las conclusiones más
relevantes a las que se ha llegado. Se presenta una comparativa entre los
objetivos propuestos y los realmente alcanzados, y finalmente, se detalla una
perspectiva de futuro.
En el capítulo 6 se incluyen los anexos que describen diferentes términos que
aparecen en el documento.
9
PROYECTO FINAL DE CARRERA
Capítulo 2. ANTECEDENTES
2.1 Un hospital
Un hospital es una empresa de servicios cuya principal función es el cuidado de
los pacientes, ya sea obteniendo su cura absoluta o una mejora de su calidad de
vida. La función del médico es determinar cuáles son los cuidados adecuados a
cada paciente de acuerdo a sus necesidades. Todos los médicos están asociados
a uno o varios servicios o departamentos del hospital dependiendo de su
especialización. Todos los pacientes tratados en un hospital se encuentran
identificados por un número de historia que se mantiene de forma permanente
en el sistema informático, aun después de la defunción de la persona a la que
identifican. A este número de historia se le asocia un historial médico que se
divide en diferentes secciones: los datos personales y familiares del paciente
paliativo, los episodios y diagnósticos, el estado de salud y la evaluación final
(en caso de muerte del paciente). También han de estar disponibles todas las
evaluaciones que se han realizado al paciente, ya sean resultado de una visita
presencial (en domicilio, consulta o pabellón) o bien a través del mecanismo de
autoevaluación del paciente, si éste es el caso.
El acceso de un paciente al hospital, puede realizarse por diferentes entradas:
Hospitalización en la Unidad de Cuidados Paliativos (UCP). Véase 2.1.1
Hospitalización en otras unidades del hospital.
La hospitalización en un Centro SocioSanitario (CSS): Centros de
institucionalización que pueden tener diversas unidades de hospitalización
y atención diurna. Pueden ser de diversos tipos:
•
•
Larga estancia: Destinados a la atención continuada de personas con
enfermedades o procesos crónicos y diferentes niveles de dependencia
con diversos grados de complejidad clínica y que no pueden atendidos en
su domicilio.
Estancia media – convalecencia. Destinados a personas con enfermedades
que se encuentran en fase de recuperación de un proceso agudo y con
pérdida de autonomía potencialmente recuperable, o que necesitan la
10
PROYECTO FINAL DE CARRERA
•
•
•
continuación de un tratamiento o supervisión clínica continuada y que, a
causa de su complejidad, requieren unas curas intensivas.
Estancia media – curas paliativas. Destinados a enfermos en situación de
enfermedad avanzada o terminal que necesitan control de los síntomas o
tratamientos continuados en régimen de hospitalización. La patología
predominante es la oncológica.
Estancia media – polivalente. Destinados a la atención de convalecencia y
curas paliativas en unidades que, por su dimensión y criterios de
planificación, no pueden realizar estas actividades de una manera
específica.
Hospital de día. Asistencia predominantemente a personas mayores
enfermas, enfermos crónicos que requieren medidas integrales de apoyo,
rehabilitación, tratamiento o diagnóstico, y seguimiento especializado en
régimen diurno ambulatorio. Los objetivos de los servicios de atención de
día son la evaluación integral, la rehabilitación y la atención continuada
de mantenimiento.
A la hora de formalizar un ingreso del paciente, se determina la unidad o centro
al que se le destina y el diagnóstico de entradas. Posteriormente se van
realizando evaluaciones periódicas en cada una de las sucesivas visitas.
2.1.1
La UCP
La Unidad de Cuidados Paliativos (UCP) de un hospital atiende a los pacientes
que se encuentran en fase terminal, con la finalidad de aliviar, en la medida de
lo posible, el dolor y sufrimiento de estos pacientes en la última etapa de su
vida. Los pacientes atendidos, así como los facultativos involucrados en el
proceso, tienen unas necesidades de manejo de información que han de ser
satisfechas dentro de un entorno distribuido.
Una UCP está a cargo de la atención tanto de los pacientes paliativos que están
ingresados (hospitalizaciones, sea en la propia UCP, en otras unidades del
hospital, o en un centro sociosanitario), como de los pacientes paliativos que, o
están en su casa sin poderse desplazar (visitados por los PADES), o bien
realizan visitas periódicas a los especialistas de la UCP (consulta externa). En la
descripción general de una UCP se aprecia su carácter multidisciplinario y
distribuido en que participan diversos interlocutores (doctores, enfermeros y
diversos tipos de pacientes) con diversas actividades sanitarias (visitas a
pabellón, a casa y a consulta). Esto describe un entorno propicio para el uso de
un sistema informático basado en la historia clínica electrónica de los pacientes
centralizada y accesible por las diversas plataformas suministradas por las
nuevas tecnologías de la información y las comunicaciones.
11
PROYECTO FINAL DE CARRERA
2.1.2
El paciente paliativo
Persona que recibe cuidados paliativos. Puede residir en su domicilio o estar
ingresado en el pabellón de la UCP del hospital, en otros pabellones del
hospital o en un centro sociosanitario.
El cuidado paliativo es un modelo interdisciplinario que se centra en la gestión
completa de las necesidades físicas, psicológicas, sociales y espirituales de los
pacientes con todo tipo de enfermedades progresivas e incurables, así como de
sus familias.
2.1.3
El medico paliativo
Estos médicos realizan visitas en su consulta y pasan visita en los pabellones
hospitalarios. En principio, no se distinguirán diferentes tipos de usuarios
(médicos, enfermeras) del sistema en esta categoría.
2.1.4
Servicios de la UCP
Los servicios que se llevan a cabo para atender a los enfermos paliativos son
básicamente las siguientes: la hospitalización en la UCP, en otras unidades del
hospital o en un centro sociosanitario, la consulta externa, la visita a domicilio y
la evaluación periódica del estado de los pacientes que son responsabilidad de
la UCP.
La hospitalización en la UCP se basa en gestionar las camas disponibles de la UCP
para alojar temporalmente los casos más complejos de pacientes paliativos
hasta el momento en que o bien fallecen o bien se estabilizan y son dados de
alta y trasladados a sus domicilios o a un centro sociosanitario.
La hospitalización en otras unidades del hospital es práctica habitual cuando el
número de camas disponibles en la UCP no es muy elevado. Esta limitación
provoca que un paciente paliativo pueda estar hospitalizado en otras unidades
del hospital, dependiendo de su enfermedad (p.e. un enfermo de cáncer podría
estar en la unidad de Oncología, o un paciente con una insuficiencia cardiaca
terminal en Cardiología). Por tanto, el seguimiento de un paciente puede llegar
a ser multiservicio. En estos casos el equipo de cuidados paliativos realiza
interconsultas con los profesionales responsables de las distintas unidades del
hospital.
La hospitalización en un centro sociosanitario (CSS) se lleva a cabo con los pacientes
paliativos que precisan estar hospitalizados por un periodo de tiempo
prolongado. En este caso, el seguimiento de un paciente es multicentro y el
equipo de cuidados paliativos requerirá la localización del paciente en
diferentes centros sanitarios.
12
PROYECTO FINAL DE CARRERA
La consulta externa se ocupa de la evaluación y orientación terapéutica de los
enfermos y sus familiares y el seguimiento de los pacientes que no precisan
hospitalización o que son dados de alta desde la UCP. Estas consultas las
realizan los médicos de la UCP en la propia unidad. Ante dificultades de
desplazamiento, o cuando se requiere un control intensivo, los equipos PADES
(Personal de Atención Domiciliaria – Equipos de Soporte) se ocupan, junto con
los Equipos de Atención Primaria, de la atención en el domicilio. En este caso, el
seguimiento de un paciente por parte del equipo paliativo se hace
completamente distribuido en el área de influencia urbana o rural de la UCP.
Por último, se puede destacar que en la evaluación periódica del estado de los
pacientes es el propio paciente el que rellena un cuestionario de auto-evaluación de
su estado cada vez que se le realiza una visita médica (en el hospital o en su
domicilio). Este cuestionario es también revisado por el médico durante la
visita.
2.1.4.1 Base de Datos Hospitalarios
El sistema PalliaSys dispone de una base de datos centralizada, situada en la
UCP del hospital, donde se almacenan el histórico de los datos relevantes de los
pacientes paliativos. El contenido de la base de datos incluye información sobre
pacientes, asistencia, personal médico y ubicación.
Figura 3. PCU Database.
13
PROYECTO FINAL DE CARRERA
A continuación se describen los tipos de datos que podemos encontrar dentro
de la Base de Datos:
Datos de los pacientes:
•
•
Datos de la asistencia clínica prestada en cada posible ubicación (UCP, CSS o
domicilio).
•
•
•
•
•
•
•
•
•
Datos personales, como el nombre, dirección, teléfono, etc.
Datos familiares, como el número de hijos, la situación familiar, trabajo,
etc.
Estado de salud en la primera visita del paciente. Incluye la capacidad
funcional (alimentación, higiene, movilidad, etc.), problemas de salud
(molestias y preocupaciones) y dolor principal (localización, tratamiento
previo, etc.).
Datos diagnósticos, que corresponden a la enfermedad que padece el
paciente. Se distingue entre el diagnóstico principal único y los
diagnósticos secundarios múltiples.
Datos históricos de las auto-evaluaciones periódicas, como los grados de
dolor, debilidad, depresión, ansiedad, náuseas, somnolencia, apetito,
bienestar, dificultad respiratoria o sequedad bucal. Hay otros datos que
miden la presencia o no de estreñimiento o insomnio, así como un dato
general para expresar otras dolencias.
Datos de los episodios que reflejan los datos del tratamiento en cada
visita.
Criterios de complejidad que recogen características de complejidad de
las actuaciones paliativas dependientes del paciente (p.e. personalidad
adictiva, dolor neuropático severo), de la familia (p.e. gran impacto
emocional) o de los profesionales (p.e. obstinación terapéutica).
Evaluación final, con los datos del fallecido (fecha, lugar, aceptación,
sedación, etc.).
Datos de las estrategias terapéuticas que se están siguiendo con los
pacientes.
Medicación recibida por el paciente a lo largo de los diferentes episodios.
La medicación consiste en un conjunto de medicamentos para los que se
indica el nombre, dosis (en mg), intervalo de la toma (en horas) y vía de
administración.
Tratamientos recibidos por el paciente a lo largo de los diferentes
episodios.
Datos del personal médico:
Se anotan los médicos responsables y teléfonos, tanto a nivel de atención
primaria como de atención especializada.
14
PROYECTO FINAL DE CARRERA
Datos de la ubicación:
Registran los cambios de ubicación del paciente, que debe quedar perfecta y
unívocamente establecida. Se identifican cuatro situaciones posibles:
1) En domicilio: debe registrarse la dirección completa, así como el número
de teléfono.
2) En la UCP: se debe indicar el identificador de cama que ocupa.
3) En otro servicio del hospital: se debe indicar el servicio y el identificador
de la cama.
4) En el CSS: se indica el CSS, y opcionalmente su sección y el identificador
de la cama. Además, el sistema almacena también los datos necesarios
para la gestión adecuada de los usuarios (claves y contraseñas de acceso,
permisos asociados a cada tipo de usuario, etc.).
A lo largo de todas los episodios clínicos de todos los pacientes relacionados
con la UCP (Ver figura 2), la información descrita anteriormente queda
almacenada en la PCU Database (Ver figura 1) cuyo diseño se muestra en la
figura 3.
2.1.4.2 Análisis de circuitos
En cada una de las evaluaciones de un paciente se estudia si es necesario
realizar un cambio de ubicación del paciente o si sigue donde está. Las
ubicaciones posibles son: en domicilio sin PADES, en domicilio pero con
PADES, en un centro socio-sanitario asociado al hospital, en urgencias o en el
hospital de día.
En caso de determinarse un cambio de ubicación del paciente, el médico
indicará cuáles han sido los motivos del traslado (mal control de algún síntoma,
bajo soporte familiar, petición expresa del paciente, etc.). De esta forma, el
médico podrá saber para cada paciente en qué ubicaciones ha estado y cuáles
han sido los motivos de los cambios. Así también se podrán realizar diferentes
estudios de los que se podrán extraer resultados útiles para casos posteriores.
2.1.4.3 Análisis de la evolución de un paciente
En cada una de las evaluaciones de un paciente durante su episodio (registro
clínico) puede darse el caso que su estado de salud cambie, debido a diferentes
razones que sólo los profesionales médicos saben determinar. El análisis de los
registros clínicos de los pacientes permite la detección automática de tales
estados y la definición de diagramas de flujo de la evolución de los pacientes.
2.2 Circuito de Pacientes paliativos
Para representar la movilidad de los pacientes paliativos, tenemos a nuestra
disposición una Base de Datos Hospitalarios que recoge los datos del transito
15
PROYECTO FINAL DE CARRERA
entre servicios de los pacientes con un información específica común (Véase
figura 3). Durante el periodo de ingreso del paciente, hasta la fecha en que se le
da de alta médica por exitus en el sistema, al paciente se le realizan una serie de
evaluaciones periódicas que aportan información referente a su ubicación (en el
momento de la evaluación, y de su posible cambio a otra ubicación). Este
comportamiento viene esquematizado en la figura 2.
La modelización de un circuito de pacientes paliativos pasa por la creación de
una estructura de datos tal que permita representar la movilidad de estos
pacientes. Para este cometido, la utilización de Grafos parece la opción más
indicada.
Un grafo es una colección de vértices llamados nodos, algunos de los cuales
están unidos por flechas mediante arcos. Tradicionalmente se han utilizado los
grafos para representar elementos relacionados entres sí.
Distinguimos un solo tipo de nodo Servicio que representa el servicio
hospitalario donde se ubican los pacientes paliativos. El nodo servicio recogerá
el nombre de la unidad sanitaria que representa (p.e. Oncología, UCP, CSS,
etc.). A su vez, los arcos representan el tránsito de los pacientes entre diferentes
nodos Servicio.
Formalmente, existen algunas características que definen particularidades sobre
el tipo de grafo con el que se está trabajando: grafo conexo, grafo dirigido, grafo
informado y grafo etiquetado. En un grafo conexo, todos los nodos están
conectados directa o indirectamente entre sí, y por lo tanto no existe ningún
nodo aislado del resto. En un grafo dirigido, los arcos tienen asociado un
sentido representando la dirección de su relación (dos nodos mutuamente
relacionados deberán representarse con dos arcos de diferentes sentidos). En
un grafo etiquetado, los arcos almacena información concerniente al problema
que se intenta resolver. La figura 4 muestra un ejemplo de este tipo de grafo.
9
F
B
21
12
C
5
20
4
2
A
4
2
17
E
7
15
D
Figura 4. Grafo conexo, dirigido y etiquetado.
16
PROYECTO FINAL DE CARRERA
La estructura de datos básica utilizada en este trabajo es la de un grafo conexo,
dirigido y etiquetado.
2.3 Evolución de un paciente
Paralelamente al circuito de pacientes descrito en la anterior sección, podemos
describir la modelización de la evolución de un paciente. Esto se debe a que la
metodología utilizada también incorpora el grafo como estructura de datos.
En este caso distinguimos también un solo tipo de nodo Estadío, que representa
el estado en que se pueden encontrar los pacientes paliativos. A su vez, los
arcos representan el tránsito de los pacientes entre diferentes nodos Estadío y
por tanto describen cambios de estado de pacientes o evoluciones.
La peculiaridad que podemos observar en la construcción de este tipo de grafos
es que la Base de Datos Hospitalarios no incluye información referente al
estadío de los pacientes, y por tanto, se debe buscar la forma de obtenerla. En
este trabajo se ha optado por la utilización de técnicas de clasificación no
supervisada, en concreto el algoritmo K-means.
2.3.1
Clasificación no supervisada: K-Means
K-Means es un algoritmo de clasificación estadístico basado en clusters, no
paramétrico y no supervisado cuyo cometido es el de crear una partición del
espacio de patrones en K grupos (clusters) adyacentes.
Su funcionamiento se basa en definir K puntos en el espacio de patrones,
correspondientes a los centros de los K clusters que se desea crear. Luego se
asigna cada patrón de entrenamiento presente en el espacio a cada grupo de
acuerdo al centro que se encuentra a menor distancia del patrón.
Una vez creados los grupos, se recalculan los centros originales de cada grupo
en base al punto medio calculado para los patrones que pertenecen a cada uno
de ellos respectivamente.
Estas dos etapas se reiteran en un bucle que culmina cuando el sistema llega a
un estado estable.
2.3.2
Pseudocódigo del Algoritmo K-Means
El algoritmo en cuestión es esquematizado por el pseudocódigo de la tabla 1.
Al cabo de algunas iteraciones los centros se estabilizan y con ellos la partición
del espacio formada por los K grupos definidos por estos centros.
17
PROYECTO FINAL DE CARRERA
Procedimiento K-Means
Comienzo
Determinar K centros iniciales
Repetir
Crear K grupos con los patrones más cercanos
a cada centro
Recalcular los K centros como los puntos
medios de cada grupo creado
hasta (los K centros tengan una despreciable entre
dos iteraciones).
Fin
Tabla 1. Algoritmo K-Means.
El parámetro principal que configura a este algoritmo es K, definido por el
usuario en cada caso. El valor óptimo de K es difícil de determinar y depende
mucho del caso y de la real distribución de los patrones en el espacio.
2.4 Estructuras de Decisión
2.4.1
Minería de Datos
Se denomina Minería de Datos al conjunto de técnicas y herramientas aplicadas
al proceso no trivial de extraer y presentar conocimiento implícito, previamente
desconocido, potencialmente útil y humanamente comprensible, a partir de
grandes conjuntos de datos, con objeto de predecir de forma automatizada
tendencias y comportamientos; y describir de forma automatizada modelos
previamente desconocidos.
El término Minería de Datos Inteligente se refiere específicamente a la aplicación
de métodos de aprendizaje automático, para descubrir y enumerar patrones
presentes en los datos, para estos métodos, se desarrollaron un gran número de
métodos de análisis de datos basados en la estadística. En la medida en que se
incrementaba la cantidad de información almacenada en las bases de datos,
estos métodos empezaron a enfrentarse a problemas de eficiencia y
escalabilidad y es aquí donde aparece el concepto de minería de datos. Una de
las diferencias entre al análisis de datos tradicional y la minería de datos es que el
primero supone que las hipótesis ya están construidas y validadas contra los
datos, mientras que el segundo supone que los patrones e hipótesis son
automáticamente extraídos de los datos.
2.4.2
Aprendizaje Automático
El aprendizaje puede ser definido como "cualquier proceso a través del cual un
sistema mejora su eficiencia". La habilidad de aprender es considerada como
18
PROYECTO FINAL DE CARRERA
una característica central de los "sistemas inteligentes", y es por esto que se ha
invertido esfuerzo y dedicación en la investigación y el desarrollo de esta área.
El desarrollo de los sistemas basados en conocimientos motivó la investigación
en el área del aprendizaje con el fin de automatizar el proceso de adquisición de
conocimientos el cual se considera uno de los problemas principales en la
construcción de estos sistemas.
Entre los múltiples modelos de aprendizaje automático, el aprendizaje inductivo
consiste en obtener un modelo que represente el dominio de conocimiento y
que sea accesible para el usuario a partir de instancias de conocimiento
concretas, en particular, resulta importante obtener la información de
dependencia entre las variables involucradas en el fenómeno, en los sistemas
donde se desea predecir el comportamiento de algunas variables desconocidas
basados en otras conocidas.
2.4.3
Algoritmos de inducción
Este tipo de algoritmos utiliza ejemplos como entradas para aplicar sobre ellos
un proceso inductivo y así presentar la generalización de los mismos como
resultado de salida. Existen dos tipos de ejemplo, los positivos y los negativos,
Los primeros fuerzan la generalización, mientras que los segundos previenen
para que no sea excesiva. Los ejemplos que se traten durante la fase de
entrenamiento deben ser representativos de los conceptos que se está tratando
de enseñar.
En la actualidad existen numerosos enfoques de algoritmos de inducción y
variedad en cada enfoque, el presente trabajo solo tratará los algoritmos
orientados a generar árboles de decisión, particularmente el algoritmos C4.5.
Dado a que el algoritmo C4.5 proviene del algoritmo ID3, se aporta la
explicación detallada de ambos.
2.4.3.1 Árboles de Decisión: Algoritmo ID3
2.4.3.1.1
Introducción al Algoritmo ID3
El algoritmo ID3, diseñado en 1993 por J. Ross Quinlan, toma objetos de una
clase conocida y los describe en términos de una colección fija de propiedades o
de variables, produciendo un árbol de decisión sobre estas variables que
clasifica correctamente todos los objetos. Hay ciertas cualidades que diferencian
a este algoritmo de otros sistemas generales de inferencia. La primera se basa en
la forma en que el esfuerzo requerido para realizar una tarea de inducción crece
con la dificultad de la tarea. El ID3 fue diseñado específicamente para trabajar
con masas de objetos, y el tiempo requerido para procesar los datos crece sólo
linealmente con la dificultad, como producto de:
19
PROYECTO FINAL DE CARRERA
La cantidad de objetos presentados como ejemplos.
La cantidad de variables dadas para describir estos objetos.
La complejidad del concepto a ser desarrollado (medido por la cantidad de
nodos en el árbol de decisión).
Esta linealidad se consigue a costa del poder descriptivo ya que los conceptos
desarrollados por el ID3 solo toman la forma de árboles de decisión basados en
las variables dadas, y este "lenguaje" es mucho más restrictivo que la lógica de
primer orden o la lógica multivaluada, en la cual otros sistemas expresan sus
conceptos.
El ID3 fue presentado como descendiente del CLS creado por Hunt y, como
contrapartida de su antecesor, es un mecanismo mucho más simple para el
descubrimiento de una colección de objetos pertenecientes a dos o más clases.
Cada objeto debe estar descrito en términos de un conjunto fijo de variables,
cada una de las cuales cuenta con su conjunto de posibles valores. Por ejemplo,
la variable Insomnio puede tener los valores {Cierto, Falso}, la variable sexo,
{Hombre, Mujer} y la variable estadío {0, 1, 2, 3, 4, 5}.
Una regla de clasificación en la forma de un árbol de decisión puede construirse
para cualquier conjunto C de variables de esta forma:
Si C está vacío, entonces se asocia arbitrariamente a cualquiera de las clases.
Si C contiene los representantes de varias clases, se selecciona una variable
V y se particiona C en conjuntos disjuntos C1,C2,....., Cn, donde Ci contiene
aquellos miembros de C que tienen el valor i para la variable V. Cada uno de
estos subconjuntos se trata con la misma estrategia.
Árbol ID3
Apoyo_familiar = Cierto
|
Disnea_refractaria = Cierto
|
|
VAS_Depresion <= 1
|
|
|
Morfina_Savredol-Oral <= 100: CSS3
|
|
|
Morfina_Savredol-Oral > 100: HOME
|
|
VAS_Depresion > 1: CSS1
|
Disnea_refractaria = Falso
|
|
STAS_Apetito <= 5: CSS1
|
|
STAS_Apetito > 5: ONCO
Apoyo_familiar = Falso
|
STAS_Apetito <= 5: CARDIO
|
STAS_Apetito > 5
|
|
Edad_joven = Cierto: CSS2
|
|
Edad_joven = Falso: ONCO
Figura 5. Ejemplo árbol de Decisión.
20
PROYECTO FINAL DE CARRERA
El resultado es un árbol en el cual cada hoja contiene un nombre de clase y cada
nodo interior especifica una variable para ser testeada con una rama
correspondiente al valor de la variable.
2.4.3.1.2
Descripción del Algoritmo ID3.
El objetivo del algoritmo ID3 es crear una descripción eficiente de un conjunto
de datos mediante la utilización de un árbol de decisión. Dados unos datos
consistentes, es decir, sin contradicción entre ellos, el árbol resultante describirá
el conjunto de entrada a la perfección. Además, el árbol puede ser utilizado
para predecir los valores de nuevos datos, asumiendo siempre que el conjunto
de datos sobre el cual se trabaja es representativo de la totalidad de los datos.
Dados:
Un conjunto de datos.
Un conjunto de descriptores de cada dato.
Un clasificador/conjunto de clasificadores para cada objeto.
Se desea obtener un árbol de decisión simple basándose en la entropía, donde
los nodos pueden ser:
Nodos intermedios: en donde se encuentran los descriptores escogidos
según el criterio de entropía, que determina cuál rama es la que debe
tomarse.
Hojas: estos nodos determinan el valor del clasificador.
Este procedimiento de formación de reglas funcionará siempre, dado que no
existen dos objetos pertenecientes a distintas clases pero con idéntico valor para
cada una de sus variables; si este caso llegara a presentarse, las variables son
inadecuadas para el proceso de clasificación.
Hay dos conceptos importantes a tener en cuenta en el algoritmo ID3: la
entropía y el árbol de decisión. La entropía se utiliza para encontrar la variable
más significativa en la caracterización de un clasificador. El árbol de decisión es
un medio eficiente e intuitivo para organizar los descriptores que pueden ser
utilizados con funciones predictivas.
2.4.3.1.3
Pseudocódigo del Algoritmo ID3
La tabla 2 presenta el algoritmo del método ID3 para la construcción de árboles
de decisión en función de un conjunto de datos previamente clasificados.
21
PROYECTO FINAL DE CARRERA
Función ID3
(R: conjunto de atributos no clasificadores,
C: atributo clasificador,
S: conjunto de entrenamiento) devuelve un árbol de decisión;
Comienzo
Si S está vacío entonces
Devolver un único nodo con Valor Falla;
Fin si
Si todos los registros de S tienen el mismo valor para el
atributo clasificador entonces
Devolver un único nodo con dicho valor;
Si R está vacío entonces
Devolver un único nodo con el valor más frecuente
1
del atributo clasificador en los registros de S
Fin si
Si R no está vacío entonces
D = atributo con mayor Ganancia (D,S) entre los
atributos de R;
Sean {dj | j=1,2,...., m} los valores del
atributo D;
Sean {dj | j=1,2,...., m} los subconjuntos de S
correspondientes a los valores de dj
respectivamente;
Devolver un árbol con la raíz nombrada como D y
con los arcos nombrados dl, d2,...., dm que van
respectivamente a los árboles ID3(R-{D}, C, Sl),
ID3(R-{D}, C, S2), .., ID3(R-{D}, C, Sm);
Fin si
Fin si
Fin
Tabla 2. Algoritmo ID3.
2.4.3.1.4
Limitaciones del 1Algoritmo ID3
El ID3 puede aplicarse a cualquier conjunto de datos, siempre y cuando las
variables sean discretas. Este sistema no cuenta con la facilidad de trabajar con
variables continuas ya que analiza la entropía sobre cada uno de los valores de
una variable, por lo tanto, tomaría cada valor de una variable continua
individualmente en el cálculo de la entropía, lo cual no es útil en muchos de los
dominios. Cuando se trabaja con variables continuas, generalmente se piensa en
rangos de valores y no en valores particulares.
Existen varias maneras de solucionar este problema del ID3, como la
agrupación de valores presentada en o la discretización de los mismos. El C4.5
resolvió el problema de los atributos continuos mediante la discretización.
1
Nota: habrá errores, es decir, registros que no estarán bien clasificados en este caso
22
PROYECTO FINAL DE CARRERA
2.4.3.2 Árboles de Decisión: Algoritmo C4.5
2.4.3.2.1
Introducción al Algoritmo C4.5
El C4.5 se basa en el ID3, por lo tanto, la estructura principal de ambos métodos
es la misma. El C4.5 construye un árbol de decisión mediante el algoritmo
"divide y vencerás" y evalúa la información en cada caso utilizando los criterios
de entropía y ganancia o proporción de ganancia, según sea el caso. A
continuación, se explicarán las características particulares de este método que lo
diferencian de su antecesor.
2.4.3.2.2 Pseudocódigo
del Algoritmo C4.5
Función
C4.5
(R: conjunto de atributos no clasificadores,
C: atributo
clasificador,
El algoritmo
del método
C4.5 para la construcción de árboles de decisión a
S: conjunto de entrenamiento) devuelve un árbol de decisión;
grandes rasgos muy similar al del ID3. Varía en la manera en que realiza las
pruebas sobre las variables, como se aprecia en la tabla 3.
Comienzo
Si S está vacío entonces
Devolver un único nodo con Valor Falla;
Si todos los registros de S tienen mismo valor para atributo
clasificador entonces
Devolver un único nodo con dicho valor;
Si R está vacío entonces
Devolver un único nodo con el valor más frecuente del
1
atributo clasificador en los registros de S
Si R no está vacío,
D = atributo con mayor Proporción de Ganancia(D,S)
entre los atributos de R;
Sean {dj | j=1,2,...., m} los valores del atributo D;
Sean {dj | j=1,2,...., m} los subconjuntos de S
correspondientes a los valores de dj
respectivamente;
Devolver un árbol con la raíz nombrada como D y con los
arcos nombrados d1, d2,....,dm, que van
respectivamente a los árboles C4.5(R-{D}, C, Sl),
C4.5(R-{D}, C, S2), C4.5(R-{D}, C, Sm);
Fin
1
Tabla 3. Algoritmo C4.5
2.4.3.2.3
Características particulares del Algoritmo C4.5
En cada nodo, el sistema debe decidir cuál prueba escoge para dividir los datos.
Los tres tipos de pruebas posibles propuestas por el C4.5 son:
1
Nota: habrá errores, es decir, registros que no estarán bien clasificados en este caso.
23
PROYECTO FINAL DE CARRERA
La prueba "estándar" para las variables discretas, con un resultado y una
rama para cada valor posible de la variable.
Una prueba más compleja, basada en una variable discreta, en donde los
valores posibles son asignados a un número variable de grupos con un
resultado posible para cada grupo, en lugar de para cada valor.
Si una variable A tiene valores numéricos continuos, se realiza una prueba
binaria con resultados A <= Z y A > Z, para lo cual debe determinarse el
valor límite Z.
Todas estas pruebas se evalúan de la misma manera, mirando el resultado de la
proporción de ganancia, o alternativamente, el de la ganancia resultante de la
división que producen. Ha sido útil agregar una restricción adicional: para
cualquier división, al menos dos de los subconjuntos Ci deben contener un
número razonable de casos. Esta restricción, que evita las subdivisiones casi
triviales, es tenida en cuenta solamente cuando el conjunto C es pequeño.
2.4.4
Reglas de producción
Una de las formas clásicas más empleadas en el entrono médico para la
representación de comportamientos es mediante el uso de reglas de producción.
Una regla de producción es una estructura condicionada IF...THEN en la que se
distinguen dos componentes: la condición que filtra los elementos para los
cuales la regla es válida (antecedente) y la conclusión que establece un hecho
sobre todos los elementos que satisfacen el antecedente de la regla
(consecuente).
Se distinguen diversos tipos de condiciones dependiendo de la estructura lógica
con que se combinan los componentes (selectores) del antecedente. En este
trabajo, el aprendizaje se centra exclusivamente en la producción de reglas
denominadas conjuntivas debido, principalmente, a que son más cómodas e
inteligibles. Se denominan reglas conjuntivas aquellas que disponen de un
antecedente en el que sus selectores se combinan mediante el “y” lógico:
REGLA: S1 y S2 y ... y Sn ENTONCES x
2.4.5
Tablas de Decisión
La tabla de decisión es un instrumento para decidir la mejor alternativa en un
proceso de decisión. Una tabla de decisión se compone de una matriz en la que
se almacenan una serie de condiciones y sus correspondientes acciones.
La tabla de decisión está integrada por cuatro secciones: identificación de
condiciones, entradas de condiciones, identificación de acciones y entradas de
acciones de la siguiente tabla.
24
PROYECTO FINAL DE CARRERA
Condición
Reglas de decisión
Identificación de condiciones Entradas de condiciones
Identificación de acciones Entradas de acciones
Figura 5. Forma general de las tablas de decisión.
La identificación de condiciones señala aquellas condiciones o variables que son
relevantes para la toma de decisión. Las entradas de condiciones indican qué
valor, que pude ser indefinido (indicado con el signo “--” ), se debe asociar para
una determinada condición. La identificación de acciones lista el conjunto de todas
las decisiones individuales que se pueden tomar en el proceso. Las entradas de
acciones muestran las acciones específicas del conjunto que deben emprenderse
cuando ciertas condiciones o combinaciones de éstas son verdaderas.
Las columnas del lado derecho de la tabla enlazan condiciones y acciones,
forman reglas de decisión que establecen las condiciones que deben satisfacerse
para emprender un determinado conjunto de acciones. Nótese que se omite el
orden de la secuencia (en que las condiciones son examinadas) cosa que no
sucede con los árboles de decisión. La regla de decisión incorpora todas las
condiciones que deben ser ciertas y no sólo una a la vez. La tabla 4 muestra una
tabla de decisión que describe las acciones emprendidas para los pagos por
parte de los pacientes de un hospital.
Condiciones
C1 El paciente tiene seguro médico básico
C2 El paciente tiene seguro social
A1 Pagar la consulta
A2 Exento de pago
A3 Pagar todos los servicios
Reglas de decisión
1
2
4
SI
NO
NO
SI
NO
X
X
X
Tabla 4. Tabla de decisión muestra el pago de los servicios de salud.
Las acciones tomadas dependen de que el paciente tenga seguro y, si es así ver
de qué tipos dicho seguro. Se tienen identificados dos tipos de seguros: el
seguro básico de salud (condición 1) y el seguro social (condición 2). La
existencia o no de la primera condición (que el paciente tenga seguro básico de
salud) se representa por medio de las letras S y N (sí o no) en la parte
correspondiente en la tabla a las entradas de condiciones. Cuatro reglas
relacionan las combinaciones de las condiciones 1 y 2 con tres diferentes
acciones:
El paciente debe pagar el costo de la consulta sin ningún otro cargo.
El paciente no paga ninguno de los cargos.
El paciente paga el costo de todo el tratamiento (consulta y otros cargos).
25
PROYECTO FINAL DE CARRERA
Al observar esta tabla es claro que cuando:
C1 y C2 son Sí y No respectivamente, la regla establece que se debe tomar la
acción A1; el paciente paga únicamente el costo de la consulta.
Cuando el valor de la condición C2 se invierte (C2 es Sí), y el valor de C1 es
indiferente (C1 es Sí o No, y lo expresamos con el símbolo “-“) la regla 2 indica
que debe emprenderse la acción A2; el paciente no necesita pagar ninguno de
los cargos.
Para finalizar, la regla 4 estipula que, si tanto C1 como C2 son No (lo que
significa que el paciente no tiene seguro), los miembros del personal deben
seguir A3: el paciente debe pagar todos los cargos de la atención médica que
recibe en la clínica.
26
PROYECTO FINAL DE CARRERA
Capítulo 3. SISTEMA DE AYUDA A LA TOMA DE
DECISIÓN.
3.1 Descripción del sistema
El sistema que se presenta en este trabajo, dentro del contexto del proyecto
PalliaSys, trata de dar una solución a la problemática siguiente:
Detectar los estados de un paciente y cambios de estado de estos paciente.
Detectar los patrones de circuitos seguidos por los pacientes
Construir de estructuras de decisión (árboles, reglas, tablas)
Detectar la evolución de los pacientes, a partir de los estados en que se
clasifican los pacientes ya tratados.
Por tanto la solución aquí planteada resolverá una parte de este proyecto. En
concreto, se va a desarrollar el núcleo central del agente Data Analyser (Véase
figura 1) :
DB
Wrapper
Data
Analyser
Figura 6. El proyecto en el contexto de Palliasys.
Hay que remarcar, que en este proyecto no se utilizará tecnología de agentes, es
decir, sólo se implementará aquello que el agente Data Analyser necesite para la
resolución de los problemas planteados, mientras que la tarea propia del agente
(como es la comunicación con otros agentes) se deja para un futuro trabajo. Por
esta razón, a partir de este momento no se hablará de un agente Data Analyser,
sino de un Sistema Data Analyser. Una de las limitaciones que se prevé es pues,
la obtención de datos reales de la Base de Datos Hospitalarios, ya que no habrá
esa comunicación necesaria entre agentes. Para solventar este contratiempo, en
27
PROYECTO FINAL DE CARRERA
posteriores secciones se describen unos métodos y algoritmos de obtención
aleatoria de datos.
A continuación se presentan las características específicas de este sistema.
3.1.1
Funcionalidad y uso
El funcionamiento de este sistema se basa en cuatro fases bien diferenciadas:
Fase 1: Recogida de datos provenientes de la Base de Datos Hospitalarios.
Fase 2: Generación de circuito de pacientes y de circuito de cambio de
estado. En esta fase se incluye la detección de estados de paciente.
Fase 3: Generación de Estructuras de decisión (árboles, reglas y tablas de
decisión).
Fase 4: Previsión de evoluciones de nuevos pacientes.
La figura 7 recoge las fases 1 y 2, la figura 8 recoge las fase 3 y finalmente la
figura 9 recoge la fase 4.
El acceso a los datos de la Base de Datos Hospitalarios tiene varias entidades en
juego, por un lado esta la PCU Database que es la Base de Datos física, por otro
lado tenemos el agente DB Wrapper que es quien interactúa directamente con la
Base de Datos, y finalmente tenemos al agente Data Analyser que es quien
realiza la petición de datos al DB Wrapper para que este a su vez acceda a los
datos físico y se los devuelva en un formato establecido previamente.
Una vez los datos de los pacientes están en poder del agente Data Analyser, se
iniciará la generación de circuito de pacientes y de circuito de cambio de estado.
En un primer lugar se generará el grafo de Circuitos que representa el circuito
de pacientes, este se genera a medida que se recorre la lista de pacientes que ha
proporcionado el agente DB Wrapper y mediante un algoritmo de generación
de grafos. Este algoritmo comprobará para cada paciente que recorrido a
seguido por los distintos servicio. Seguidamente se iniciará la detección de
estados de pacientes con el algoritmo K-Means, generando una lista de pacientes
como la anterior algo más reducida en cuanto a atributos de los pacientes, ya
que para la detección de estado del paciente puede ser que no sean necesarios la
totalidad de los atributos extraídos de la Base de Datos. La nueva lista creada
se pasará por el algoritmo de generación del grafos obteniendo como resultado
el grafo de Estados.
Este proceso corresponde a las fases 1 y 2, y esta esquematizado en la figura 7.
28
PROYECTO FINAL DE CARRERA
DB
Wrapper
Data Analyser
Datos de los pacientes
Registro clínico: Paciente 1
Registro clínico: Paciente 1
Clasificación de los pacientes
detección de estados
de paciente
con K-Means
Paciente 1: Estadío 1
Paciente 1: Estadío 2
Registro clínico: Paciente 2
Paciente 2: Estadío 3
Registro clínico: Paciente 3
Paciente 3: Estadío 2
Registro clínico: Paciente 3
Grafo de Circuitos
Paciente 3: Estadío 4
Grafo de Estados
Figura 7. Construcción del grafo de circuitos y el grafo de estados.
La generación de las estructuras de decisión parte de los grafos de circuitos y de
estadíos. Antes de esta generación se deben preparar los datos de los pacientes,
organizándolos de forma adecuada. El recorrido de los grafos nos permite
estructurar la información de los pacientes de acuerdo al formato de las
entradas de los algoritmos de generación de las estructuras de decisión.
El árbol de decisión es el primero en crearse, y toma como información de
partida los pacientes que han salido de un determinado servicio o estadío, por
tanto tendremos tantos árboles como servicios y estadíos de salida tengamos.
Una vez se generen los árboles, el agente Data Analyser está en disposición de
crear las reglas de producción y las tablas de decisión (tendremos una batería
de reglas y una tabla por árbol de decisión).
29
PROYECTO FINAL DE CARRERA
Grafo de Estados
Grafo de Circuitos
Árbol decisión C4.5
Reglas
Tabla de Decisión
Condición
Reglas de decisión
Condiciones Entrada de Condiciones
Acciones Entrada de Acciones
R1: Si .... entonces
R2: Si .... entonces
R3: Si .... entonces
R4: Si .... entonces
R5: Si .... entonces
Figura 8. Construcción de la estructura de decisión
Una vez tenemos generados el Árbol de decisión, las Reglas y la Tabla de
Decisión estamos en disposición de concluir la fase 4:
Dado un nuevo paciente, podemos prever el resultado de su evolución
aplicando los datos de este paciente sobre alguna de las estructuras de decisión
alcanzadas en la fase anterior. En el presente trabajo la estructura utilizada para
prever la evolución de los pacientes es el Árbol de decisión.
El Sistema Data Analyser será quien proveerá a los expertos médicos de aquella
información complementaria para la toma de decisión.
Nuevo Paciente
Estructura de Decisión
Actuación
Figura 9. Proceso de decisión sobre un paciente.
30
PROYECTO FINAL DE CARRERA
3.2 Aspectos de la implementación
El paradigma de programación utilizado ha sido el Paradigma Orientado a
Objetos, y el lenguaje de programación seleccionado para la implementación ha
sido JAVA (versión j2sdk1.4.2_01 de Sun Microsystems).
La principal motivación de esta elección no es otra que la facilidad para
identificar objetos dentro del sistema: Paciente, Lista de pacientes, Grafos,
Árboles, Tablas, etc. y esto ayuda enormemente a la concepción general del
sistema. Otra motivación relevante la tenemos en el hecho que el proyecto
PalliaSys donde se engloba este trabajo, está implementado con esta tecnología.
La implementación seguirá la división realizada en el apartado anterior, por lo
tanto tendremos 4 fases a implementar independientes, pero teniendo en cuenta
que para la consecución de cada una de las fases, previamente se ha tenido que
realizar la fase anterior.
3.2.1
Fase 1: Recogida de datos.
La información es un recurso fundamental en cuanto nos permite tratarla para
obtener unos resultados que confirmen una hipótesis o que ayuden a la
comprobación de los hechos. Por tanto, el acceso a esa información se hace
imprescindible para cualquier tipo de estudio que se desee realizar.
Entorno a la información, aparecen una serie de problemáticas que hay que
tener en cuenta, como son la posibilidad de que ésta no sea completa o de que
sea incierta. Estos aspectos hay que considerarlos a la hora de realizar los
estudios sobre estos datos. Los métodos y algoritmos utilizados en el presente
trabajo prevén este particularidad.
La fase de recogida de datos comprende el acceso a la Base de Datos
Hospitalarios que contiene la Unidad de Curas Paliativas (UCP) del Hospital de
la Santa Creu i Sant Pau (Barcelona). Este acceso se realiza mediante un agente
inteligente específico para esta tarea (DB Wrapper), pero como ya se ha indicado
anteriormente en la actualidad este agente no está plenamente desarrollado y su
uso por parte de este proyecto ha sido suplantada por la creación de un
algoritmo de generación aleatoria de datos que sustituye la información que se
debería recibir del agente DB Wrapper. En todo caso este agente debería retornar
un fichero con todos los registros clínicos de los pacientes en un determinado
periodo de tiempo suficientemente relevante. Este fichero debería estar
ordenado por número de historial clínico (NHC) y a su vez por fecha de
entrada en un servicio. Obviamente, el fichero también debería incluir toda una
serie de datos necesarios para las fases posteriores (Véase Anexo 6.1).
Una vez obtenido el fichero con todos los datos necesarios, estos se introducen
en nuestro sistema para ser tratados. Esto quiere decir que se cargarán todos los
31
PROYECTO FINAL DE CARRERA
registros clínicos en memoria, en una estructura que permite una manipulación
de los mismos lo más sencilla posible. De forma resumida podemos decir que
esta estructura no será más que una lista de registros clínicos (Lista de objetos
paciente) ordenados por el número de historial clínico y a su vez subordenados
por la fecha de entrada a un servicio.
3.2.2
Fase 2: Circuito de pacientes y Cambio de estado.
Una vez completada la Fase 1, tenemos en nuestro sistema la lista de pacientes
cargados en memoria englobados en una estructura adecuada para su posterior
tratamiento. la fase 32comprende la creación de un circuito de pacientes por un
lado, y la creación del circuito de cambio de estado de pacientes por otro.
3.2.2.1 Circuito de pacientes
Para la representación de un circuito de pacientes se ha optado por la creación
de una estructura de datos correspondiente a un Grafo.
El proceso de construcción de la estructura de grafo sigue los pasos de un
algoritmo de la tabla 5, donde en primer término el sistema, partiendo del grafo
vacío, solicita un objeto paciente de la lista de Pacientes de la fase anterior. Para
cada Paciente verifica los servicios por los que el paciente ha sido asistido,
creando y actualizando los nodos y arcos que sean necesarios. Por tanto en la
información de cada paciente aparece, como mínimo, tanto el servicio de donde
proviene como el servicio a donde se dirige (que puede ser el mismo).
PSEUDOCÓDIGO
ACCION Introducir_nodo_Partida(x)
SI (x ∉ N) ENTONCES (N+x)
ACCION Introducir_nodo_destino(x,M)
SI (x ∉ M) ENTONCES (N,M+x)
ACCION Introducir_arco(N,M,Eval)
Asociar (N,M,Eval)
L: lista de evaluaciones de pacientes (en un periodo de
tiempo).
G(N,M): grafo vacío: N = ∅ , M = ∅ , donde N es una lista
de nodos_partida y M una lista de nodos_destino.
MIENTRAS L ≠ ∅ HACER
Eval = evaluación_paciente(L)
Introducir_nodo_Partida(Eval.N)
Introducir_nodo_destino(Eval.N, Eval.M)
Introducir_arco(Eval.N, Eval.M, Eval)
Fin mientras
Tabla 5. Algoritmo de construcción del grafo de Circuitos
32
PROYECTO FINAL DE CARRERA
La implementación en JAVA se ha realizado mediante una estructura HashTable
donde se guardan los servicios de partida de cada paciente, y asociado a cada
servicio tenemos un puntero a otro HashTable donde se almacenan todos los
servicios destino. Por último, asociada a cada servicio destino tenemos una lista
(LinkedList) de pacientes que han realizado este circuito (arco del grafo).
Mediante esta implementación el acceso a esta estructura de grafo es casi
inmediata. Como decisión de diseño para la creación de las estructuras
HashTable hay que decir que su inicialización es de 16 posiciones, es decir,
inicialmente se prevé que no habrá más de 16 servicios de partida o destino. En
todo caso este parámetro es modificable en tiempo de compilación.
La figura 10 es ejemplo de grafo de circuito de pacientes:
P1
Paciente
P1
P1
P2
P2
P3
P4
P4
Servicio Partida
UCP
CSS1
UCP
CSS2
HOME
HOME
UCP
Servicio Destino
CSS1
CSS2
CSS2
CSS1
CSS1
UCP
HOME
CSS1
CSS2
P2
P1
P3
P2
UCP
P4
P4
HOME
Figura 10. Ejemplo de circuito de pacientes.
3.2.2.2 Cambio de estado
El circuito descrito por los cambios de estado de los pacientes es similar al
presentado en el apartado anterior, pero en este caso tenemos una peculiaridad
añadida, y es que contrariamente al circuito de pacientes donde se dispone del
nodo de partida y del nodo de destino para generar el grafo, en este caso no hay
tales nodos. Para su identificación se emplean técnicas de clasificación
automática, que partiendo de los atributos de un paciente se deteminará en que
esta se encuentra. La posibilidad de estados se reduce a seis, con lo cual el grafo
resultante no tiene unas dimensiones considerables.
El algoritmo de clasificación utilizado es el K-Means (Véase 2.3.1). Al tratarse de
un algoritmo conocido y ampliamente utilizado, se ha optado por utilizar una
herramienta que implemente este algoritmo. WEKA (Waikato Environment for
knowledge Analysis, University of Waikato, New Zealand) es una herramienta
de código abierto que permitirá clasificar mediante el algoritmo K-Means todos
aquellos datos que le pasemos con un formato especifico. Mediante el recorrido
33
PROYECTO FINAL DE CARRERA
de la lista de los pacientes, obtendremos un formato de los datos optimo para
introducirlo dentro del algoritmo proporcionado con la herramienta WEKA.
Una vez WEKA haya clasificado a los pacientes, estaremos en disposición de
crear el grafo de cambio de estado de los pacientes. Este grafo, a diferencia del
grafo creado en la sección anterior, tendrá como nodo de partida el estado
actual del paciente y como nodo de destino el estado del mismo paciente pero
en una evaluación posterior (los registros clínicos de pacientes están ordenados
por numero de historial clínico, por tanto las evaluaciones de cada paciente
aparecerán contiguas en la lista de pacientes).
El algoritmo de generación del grafo será reutilizado tanto para el circuito de
pacientes como el de cambio de estado, siendo la única diferencia el significado
de los datos que el algoritmo toma como entrada.
La figura 11 muestra un ejemplo de cambio de estado de pacientes:
Evaluaciones
P1
P1
E0
P2
E0
P3
E0
E1
E2
E2
E3
E4
P1
E4
E1
Exitus
E4
P2
P2
P1
P2
E3
E0
E3
E2
P3
P1
EXITUS
P3
Exitus
Figura 11. Ejemplo de cambio de estado de pacientes.
3.2.3
Fase 3: Estructuras de decisión.
En esta fase crearemos las estructuras de decisión: árboles, reglas y tablas; para
después poder realizar predicciones sobre futuros pacientes.
3.2.3.1 Árbol de Decisión: C4.5
La primera estructura a crear será el Árbol de Decisión mediante el algoritmo
C4.5. El resto de estructuras de decisión (Reglas y Tablas) se crearán a partir de
este Árbol.
Para la implementación del algoritmo C4.5 se ha utilizado nuevamente la
herramienta WEKA. Esta herramienta, permite generar árboles mediante el
citado algoritmo pasándole un fichero(.arff), como parámetro de entrada, con un
formato predefinido. En este fichero han de aparecer todos aquellos atributos
34
PROYECTO FINAL DE CARRERA
del paciente que deseamos evaluar como causante del cambio de ubicación o
estado, según el caso, de un paciente. Cada nodo del árbol está conformado por
un atributo y puede verse como la pregunta: ¿Qué valor tiene este atributo en el
ejemplar a clasificar? Las ramas que salen de los nodos, corresponden a los
posibles valores del atributo correspondiente.
Para la generación de los ficheros de entrada, en el caso del grafo de cambio de
estado, tendremos en cuenta sólo los atributos que el usuario decidió utilizar
para la determinación del estado del paciente.
Un árbol de decisión clasifica a un ejemplar, filtrándolo de manera descendente,
hasta encontrar una hoja, que corresponde a la clasificación buscada.
La generación del fichero de entrada del algoritmo C4.5 se produce de forma
automática cuando se recorren los grafos construidos en la fase anterior.
Dado un nodo de partida (servicio para el grafo de circuito de paciente, estadío
para el grafo de cambio de estado) el árbol de decisión representará a qué nodos
de destino puede llegar, y que combinación de atributos valor debe darse para
llegar a ese destino. Por tanto, tendremos tantos árboles de decisión como
nodos de partida tengamos en los dos grafos generados en la fase anterior.
La figura 12 muestra un ejemplo de árbol de decisión:
Árbol C4.5
Apoyo_familiar = Cierto
|
Disnea_refractaria = Cierto
|
|
VAS_Depresion <= 1
|
|
|
Morfina_Savredol-Oral <= 100: CSS3
|
|
|
Morfina_Savredol-Oral > 100: HOME
|
|
VAS_Depresion > 1: CSS1
|
Disnea_refractaria = Falso
|
|
STAS_Apetito <= 5: CSS1
|
|
STAS_Apetito > 5: ONCO
Apoyo_familiar = Falso
|
STAS_Apetito <= 5: CARDIO
|
STAS_Apetito > 5
|
|
Edad_joven = Cierto: CSS2
|
|
Edad_joven = Falso: ONCO
Figura 12. Ejemplo árbol de Decisión.
3.2.3.2 Reglas de Producción
Una vez se dispone del árbol de decisión, estamos en disposición de crear las
reglas de producción. Estas, aparecerán de forma automática al recorrer dicho
35
PROYECTO FINAL DE CARRERA
árbol en profundidad. Este recorrido no lo incorpora la herramienta WEKA,
pero al tratarse de código abierto el acceso a la estructura de datos donde se
almacena el árbol hace posible la implementación de las reglas.
Lo relevante aquí es que la conversión del árbol en reglas ayuda a distinguir los
diferentes contextos en los que un atributo participa en la clasificación, es decir,
reglas diferentes; elimina la diferencia entre nodos ubicados cerca de la raíz y
aquellos ubicados cerca de las hojas; y aumenta la facilidad de comprensión por
parte del usuario.
La figura 13 muestra las reglas de producción que se generan del árbol de la
figura 12.
Reglas de Producción
Si Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion <= 1 Y
Morfina_Savredol-Oral <= 100
ENTONCES CSS3
Si Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion <= 1 Y
Morfina_Savredol-Oral > 100
ENTONCES HOME
Si Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion > 1
ENTONCES CSS1
Si Apoyo_familiar = Cierto Y
Disnea_refractaria = Falso
STAS_Apetito <= 5
ENTONCES CSS1
Si Apoyo_familiar = Cierto Y
Disnea_refractaria = Falso
STAS_Apetito > 5
ENTONCES ONCO
Si Apoyo_familiar = Falso y
STAS_Apetito <= 5
ENTONES CARDIO
Si
Apoyo_familiar = Falso Y
STAS_Apetito > 5 Y
Edad_joven = Cierto
ENTONCES CSS2
Si
Apoyo_familiar = Falso Y
STAS_Apetito > 5 Y
Edad_joven = Falso
ENTONCES ONCO
Figura 13. Ejemplo reglas de producción.
36
PROYECTO FINAL DE CARRERA
3.2.3.3 Tabla de Decisión
Tanto las reglas de producción como la Tabla de Decisión son herramientas
visuales muy apropiadas para la comprensión del comportamiento que han
tenido el conjunto de pacientes que han pasado por la unidad de curas
paliativas del hospital en un periodo de tiempo.
Como ocurría con las reglas de producción, la tabla de decisión también deriva
del árbol C4.5, y será a partir de su exploración con la que se construya la tabla.
La implementación de la tabla de decisión a seguido unos pasos similares a la
implementación de las reglas de producción, pero en este caso se ha
introducido un grado de generalización que permite una mayor comprensión.
Como se puede prever, la utilización de atributos de pacientes con valores
numéricos hace que un mismo atributo pudiera aparecer varias veces en una
rama del árbol con valores diferentes, esto es, un nodo del árbol (p.e. sequedad
de boca) podría tener dos ramas (una con valor >3 y otra con valor <=3) , y en
una de esas ramas (p.e. valor >3) aparecer de nuevo ese mismo atributo-nodo
con otras dos ramas (p.e valor <5 y valor >=5). Este hecho se recogía en las
reglas de producción como datos independientes que se debían de cumplir uno
a uno, mientras que en el caso de la tabla de decisión se ha unificado el criterio
obteniendo como resultado condiciones a cumplir que pueden ser un rango de
valores. En el ejemplo que indicaba tendremos las siguientes condiciones a
cumplir:
Sequedad de boca <=3
Sequedad de boca entre [3,5]
Sequedad de boca >= 5
En conclusión, podemos observar que la representación del conocimiento en
forma de tabla de decisión puede ayudar en la localización de una acción
posterior a realizar de una forma algo más compacta, si cabe, que como lo
realiza las reglas de producción.
Condiciones
Apoyo familiar
Disnea refractaria
VAS Depresión
MorfinaSavredolOral
STAS Apetito
Edad joven
CSS3
HOME
CSS1
ONCO
CARDIO
CSS2
Reglas de decisión
Cierto
Cierto
<= 1
<= 100
X
Cierto
Cierto
<= 1
> 100
-
Cierto
Cierto
> 1
-
Cierto
Falso
<= 5
-
X
X
Cierto
Falso
> 5
-
Falso
Falso
<= 5
-
Falso
> 5
Cierto
Falso
> 5
Falso
X
X
X
X
X
Figura 14. Ejemplo Tabla de Decisión.
37
PROYECTO FINAL DE CARRERA
3.2.4
Fase 4: Previsión de evoluciones de nuevos pacientes.
Una vez completadas las tres fases anteriores, el sistema albergará una serie de
datos estructurados en forma de base del conocimiento. Con esta información,
pretendemos que nuestro sistema sea capaz de dar una respuesta dado un caso
específico de paciente.
La fase de previsión de evoluciones de nuevos pacientes es uno de los objetivos
principales de este trabajo, ya que es una fuente de información directa para la
ayuda a la toma de decisión por parte de los expertos.
El proceso de “previsión” se efectúa sometiendo los datos (atributos-valor) de
un paciente nuevo a un proceso de comparación con los datos de nuestra base
de conocimiento. En particular, al nuevo paciente se le hace pasar por el árbol
de decisión describiendo un circuito sobre este árbol (desde la raíz, hasta una o
varias hojas).
De nuevo, en esta apartado, aparece la problemática de poseer información
incompleta e inexacta, ya que los datos de un nuevo paciente puede que no
sean totalmente completos y carezcamos del valor de ciertos atributos. Para
solucionar este problema, en la exploración del árbol se tendrá en cuenta esta
cuestión y llegados el caso la solución será mostrar todos los posibles caminos o
soluciones, es decir, recorreremos más de una rama del árbol a la vez.
Una vez el proceso de previsión haya concluido el sistema mostrará en forma
de regla de producción todas las conclusiones a las que haya llegado. En todo
caso habrá más o menos conclusiones dependiendo de si la información es
totalmente completa o no.
La implementación de esta apartado se inicia con la presentación al usuario de
un formulario donde podrá introducir los datos de un nuevo paciente (o nueva
evaluación del paciente si este ya existía dentro de la base de datos). La
introducción de datos requiere que anteriormente se haya cargado la estructura
de decisión adecuada para la generación de un resultado, por tanto se necesita
saber de antemano el servicio del que proviene o el estado en el que se
encuentra para cargar la estructura del árbol adecuada. La carga de la
estructura se realiza mediante un fichero .arff que se le pedirá al usuario
mediante un cuadro de dialogo, una vez cargada la estructura y recogidos los
datos del paciente (que se almacenarán en una variable de tipo paciente) se
iniciará la previsión del nuevo servicio o estado al que el paciente evolucionará
y se presentará en pantalla en forma de regla de producción como antes ya se
ha indicado.
38
PROYECTO FINAL DE CARRERA
3.3 Interficie de usuario
La interficie de usuario permite interactuar con el sistema de una forma más
amigable, haciendo fácil la introducción y obtención de resultados y su
comprensión.
En este trabajo la interficie pretende cubrir todas las actividades que se han
descrito en los apartado anteriores, y que hacían referencia a la entrada y salida
de datos por pantalla.
La implementación se ha realizado con el lenguaje de programación orientada a
objetos JAVA.
3.3.1
Introducción
Las estructuras de datos que se crean mediante las metodologías explicadas en
los apartados anteriores, deben tener una continuidad en el tiempo para poder
ser consultadas cuando sea necesario. Esto obliga a introducir el concepto de
persistencia, que en el presente trabajo se plasma con la creación de un
“proyecto”, entendido este último concepto como un contenedor donde se
guardan las estructuras objeto de nuestro trabajo.
El software desarrollado permite la creación de un “proyecto”, así como la
recuperación de un proyecto guardado anteriormente.
La creación de un “proyecto” tiene una peculiaridad que cabe destacar, y es que
los datos de la Base de Datos Hospitalarios de los que parte toda el estudio no
son actualmente accesibles debido a que dependen de la conclusión de otro
proyecto final de carrera actualmente en proceso. Este inconveniente
inesperado al inicio del trabajo se ah solventado con al implementación de un
sistema de generación de datos ficticios (Véase 6.2 Anexo 2). Una vez se obtienen
estos datos “ficticios” el proceso de creación de grafos y estructuras de decisión
sigue la lógica que se describe a continuación.
3.3.2
Pantalla principal
La figura 15 muestra la pantalla principal donde se tiene acceso a todos los
servicios del programa. En este caso los servicios iniciales serán la carga un
proyecto, o la creación de uno nuevo.
Es lógico pensar que no tengamos acceso a otros servicios como la generación
de grafos o estructuras de decisión, ya que no tenemos ningún dato en memoria
para la creación de dichos objetos.
39
PROYECTO FINAL DE CARRERA
Figura 15. Pantalla principal.
Desde esta pantalla accederemos al resto de pantallas mediante los botones de
la barra de herramientas, o desde los menús.
3.3.3
Pantalla Nuevo Proyecto.
Para crear un nuevo proyecto debemos seleccionar la opción correspondiente
en el menú “archivo” o en el primer icono de la barra de herramientas.
Aparecerá un cuadro de dialogo donde podremos introducir parámetros para
la generación aleatoria de datos como son: el número de instancias y el número
de pacientes que queremos generar. El número de evaluaciones de cada
paciente vendrá dado por la división entre las instancias y los pacientes. En este
formulario también podremos seleccionar el número de clusters o clases
(número de Estadios) con los que clasificaremos a los pacientes. La figura 16
muestra lo explicado en este párrafo.
Una vez generados los datos aleatorios se podrá visualizar el resultado en
forma de tabla representada en la figura 17, aquí aparecen todos los pacientes
generados ordenados por su numero de historial clínico.
40
PROYECTO FINAL DE CARRERA
Figura 16. Nuevo Proyecto.
Figura 17. Datos generados.
41
PROYECTO FINAL DE CARRERA
En este momento estamos en disposición de lanzar el algoritmo K-means sobre
los datos para generar el grafo de Estadíos. Una vez pulsemos el botón con la
etiqueta “K-Means” aparecerá otro cuadro de dialogo donde podremos
seleccionar aquellos atributos que consideremos relevantes para la obtención de
los estadios de los pacientes. Esto se ve reflejado en la figura 18.
Figura 18. Selección de atributos para algoritmo K-Means.
Una vez se han seleccionado los atributos, el sistema muestra una ventana
donde se visualizan los pacientes de cada una de las clases que el algoritmo KMeans ha generado (que como máximo serán las que se han introducido como
parámetro de entrada en el cuadro de dialogo de “nuevo proyecto”). Esta
ventana también proporciona la posibilidad de cambiarle el nombre a las clases
generadas, de esta manera es el médico experto quien decide el nombre de los
estadíos o clases de pacientes. Para poder cambiar el nombre primero se
selecciona la clase mediante una lista desplegable, se introduce el nuevo
nombre dentro de un campo de texto y finalmente se pulsar el botón de
sustituir. La figura 19 muestra esta ventana.
Al pulsar el botón de finalizar se considera creado el nuevo proyecto. En este
momento las estructuras de grafos ya están creadas y se pueden visualizar
pulsando los respectivos botones o mediante el menú.
42
PROYECTO FINAL DE CARRERA
Figura 19. Estados de Pacientes.
3.3.4
Pantalla de circuitos de Pacientes y Estadios.
Las figuras 20 y 21 muestran la representación en forma de tablas del circuito de
los pacientes por los diferentes Servicios, así como el circuito de los pacientes
por los diferentes Estadíos.
La visualización de estos datos en forma tabular facilita en gran mediada su
comprensión. Dado un servicio o estadío de partida, representado por las filas,
podemos saber rápidamente a qué servicio o estadío de destino, representado
por las columnas, han ido a parar los pacientes paliativos.
En este caso solo se muestra el numero de pacientes que han ido de un servicio
a otro, o de un estadio a otro. No se muestra ningún tipo de información
adicional ya que ese no es el objetivo de la representación. En todo caso
internamente los datos completos de cada paciente están almacenados.
Una vez mostrados los grafos, tenemos a nuestra disposición los ficheros .arff
con la información necesaria para generar los árboles de decisión y las
estructuras derivadas (reglas, tablas).
43
PROYECTO FINAL DE CARRERA
Figura 20. Circuito de Pacientes.
Figura 21. Circuito de Estadios.
44
PROYECTO FINAL DE CARRERA
3.3.5
Pantalla árbol de decisión
A esta pantalla se accede tanto por el botón situado en la barra de herramientas
como por el menú “Decisión”.
La figura 22 muestra la primera acción que se debe realizar para generar el
árbol de decisión: “abrir fichero .arff” del servicio o estadío a partir del cual se
quiere realizar el estudio. Una vez abierto este fichero se muestra (como indica
la figura 23) el resultado de la generación del árbol.
Figura 22. Abrir árbol decisión
La información que se muestra del árbol de decisión es la siguiente:
Atributos utilizados.
Representación del árbol de decisión.
Número de hojas del árbol.
Tamaño del árbol.
Tiempo de construcción del árbol.
45
PROYECTO FINAL DE CARRERA
Figura 23. Árbol de decisión
3.3.6
Pantalla Reglas de Producción.
En esta pantalla podremos visualizar el resultado de recorrer el árbol de
decisión. Las reglas de producción aparecen enumeradas y facilita la
comprensión del conocimiento extraído de los datos iniciales. La figura 24
muestra esta pantalla.
3.3.7
Pantalla Tabla de Decisión.
La figura 25 muestra como representa la tabla de decisión el sistema. En este
caso los campos vacíos en la parte de las condiciones representan valores
indiferentes. Puede darse el caso que aparezcan rangos de valores en las
condiciones como apuntábamos en el apartado 2.4.5.
46
PROYECTO FINAL DE CARRERA
Figura 24. Reglas de Producción.
Figura 25. Tabla de Decisión.
47
PROYECTO FINAL DE CARRERA
3.3.8
Pantalla de Nuevo Paciente.
En esta pantalla tenemos la posibilidad de introducir los datos de un nuevo
paciente para estudiar su evolución futura.
A esta pantalla se puede acceder una vez hayamos cargado el árbol de decisión
ya que es a través de la exploración de éste cuando deducimos la evolución
futura del paciente.
Figura 26. Nuevo Paciente.
Una vez se han introducido los datos, el sistema mostrará el resultado por
pantalla en forma de Regla de Producción, indicando también la regla utilizada,
es decir, la referencia a la regla utilizada. La figura 27 muestra el resultado de
introducir un nuevo paciente.
Como se comento en el apartado 3.2.4, los datos de un paciente nuevo pueden
ser desconocidos. Este hecho se puede introducir mediante el símbolo “?” en los
campos numéricos, mientras que en los campos boléanos se entiende que falso
es el valor por omisión. Cabe decir que la introducción de información
desconocida por parte del usuario, genera un resultado poco atractivo y poco
útil, ya que la respuesta del sistema será prácticamente igual a la información
que facilita las reglas de producción.
48
PROYECTO FINAL DE CARRERA
Figura 27. Resultados Nuevo Paciente.
3.3.9
Pantalla Guardar Proyecto.
La opción de guardar un proyecto solo está activa si primero lo hemos creado.
Al guardar un proyecto se serializan los datos sobre un fichero “.ser” donde se
almacenan las estructuras de grafos de evolución del paciente. Esto es así, ya
que es a partir de los grafos con los que se generan el resto de estructuras de
decisión.
A la hora de guardar un proyecto podemos indicar en qué ubicación queremos
hacerlo, así como el nombre que queramos ponerle para posteriormente
recuperarlo.
La generación de estructuras de decisión consiste en la creación de ficheros .arff
que también serán permanentes en el tiempo por su condición de fichero.
Cuando se crea un proyecto nuevo estos ficheros .arff se almacenan en una
carpeta llamada ./tmp/, mientras que por el contrario si el proyecto se ha abierto
estos ficheros se almacenarán en la carpeta de donde se abrió el proyecto.
La figura 28 muestra el cuadro de dialogo para guardar un proyecto.
49
PROYECTO FINAL DE CARRERA
Figura 28. Guardar Proyecto.
Figura 29. Abrir Proyecto.
50
PROYECTO FINAL DE CARRERA
3.3.10 Pantalla Abrir Proyecto.
La figura 29 muestra el cuadro de dialogo que aparece cuando deseamos abrir
un proyecto guardado anteriormente. Esta opción permite cargar en memoria
toda la información necesaria para crear las estructuras de decisión.
Una vez se ha abierto el proyecto tendremos activas las opciones para visualizar
los grafos de evolución de los pacientes (tanto de Servicios como de Estadíos),
así como la opción para cargar un fichero que genere un árbol de decisión.
51
PROYECTO FINAL DE CARRERA
Capítulo 4. PRUEBAS REALIZADAS
4.1 Descripción de las pruebas.
En este apartado se analizan los resultados obtenidos del estudio detallado de
un conjunto de datos generado aleatoriamente, esto quiere decir que estos
resultados pueden ser a veces algo incoherentes desde el punto de vista médico
dada la naturaleza aleatoria de los datos.
Las pruebas realizadas constan de la creación de un proyecto con unas
determinadas opciones de generación de datos. Se ha optado por la creación de
un único proyecto ya que, como apuntaba en el párrafo anterior, al ser datos
aleatorios los resultados estarán sesgados por ruido aleatorio y se puede dar el
caso que los resultados de dos proyectos sean totalmente diferentes y no se siga
una lógica de resultados homogénea.
El proyecto se ha creado con los siguientes datos:
Numero de instancias: 300
Numero de pacientes: 100
Numero de Evaluaciones: 3 por paciente
Numero de Clusters (Estadios): 6
Estos datos generados se almacenan en un fichero, y corresponden a los
obtenidos tras una consulta a la Base de Datos Hospitalarios del Hospital de la
Santa Creu i Sant Pau (Barcelona) con la misma estructura (Véase 6.1 Anexo).
Los atributos escogidos para la clasificación que realiza el algoritmo K-Means
han sido aleatorios.
52
PROYECTO FINAL DE CARRERA
4.2 Datos Obtenidos.
4.2.1
Circuito de Pacientes.
En la figura 30 podemos observar el resultado del circuito de pacientes entre
centros de salud. Por ejemplo, observamos el traslado de 18 pacientes del centro
sociosanitario CSS3 al centro sociosanitario CSS1.
Figura 30. Circuito de Pacientes (Tabla)
La figura 31 muestra la distribución de los pacientes para cada cambio de
estadío. Observamos que la diagonal recoge la mayor parte de los pacientes,
significando esto que la mayor parte de pacientes permanecen estables en su
estadío y esporádicamente saltan a otro.
Figura 31. Circuito de Estadios
4.2.2
Árbol de decisión.
El ejemplo propuesto ha generado tantos árboles de decisión como servicios y
estadíos de partida tenemos. En este caso podemos hablar de trece árboles de
decisión.
53
PROYECTO FINAL DE CARRERA
Seguidamente vamos a mostrar dos de ellos: un árbol de Servicios y uno de
Estadios (figuras 32 y 33).
Árbol C4.5
-----------------Apoyo_familiar = Cierto
|
Disnea_refractaria = Cierto
|
|
VAS_Depresion <= 1
|
|
|
Morfina_Savredol-Oral <= 100: CSS3 (7.0/1.0)
|
|
|
Morfina_Savredol-Oral > 100: HOME (2.0)
|
|
VAS_Depresion > 1: CSS1 (3.0/1.0)
|
Disnea_refractaria = Falso
|
|
STAS_Apetito <= 5: CSS1 (2.0/1.0)
|
|
STAS_Apetito > 5: ONCO (3.0)
Apoyo_familiar = Falso
|
STAS_Apetito <= 5: CARDIO (2.0)
|
STAS_Apetito > 5
|
|
Edad_joven = Cierto: CSS2 (3.0)
|
|
Edad_joven = Falso: ONCO (2.0)
Numero de hojas :
8
Tamaño del árbol:
15
tiempo de construcción del modelo: 0.14 segundos
Figura 32. Árbol de Decisión (Servicio Partida UCP)
Árbol C4.5
-----------------Apoyo_familiar = Cierto: Clase0 (11.0/4.0)
Apoyo_familiar = Falso
|
VAS_Debilidad <= 2
|
|
Morfina_Savredol-Oral <= 400: Clase5 (8.0/2.0)
|
|
Morfina_Savredol-Oral > 400: Clase0 (13.0/2.0)
|
VAS_Debilidad > 2: Clase0 (3.0/1.0)
Numero de hojas :
4
Tamaño del árbol:
7
tiempo de construcción del modelo: 0 segundos
Figura 33. Árbol de Decisión (Estadio Partida Clase0)
Aunque estos resultados carezcan de valor médico podemos indicar, para el
árbol de la figura 32, que los pacientes con apoyo familiar, con disnea
refractaria y con un grado bajo de depresión son trasladados de la UCP al
centro sociosanitario CSS3 si toman menos de 100 mg. de morfina y a su propia
casa si toman más de 100 mg. por vía oral, como queda patente en los datos
generados de manera aleatoria.
54
PROYECTO FINAL DE CARRERA
4.2.3
Reglas de Producción
Las reglas de producción generadas también se mostrarán para los dos árboles
escogidos (figuras 34 y 35).
Como podemos observar las reglas están numeradas, esto es especialmente
importante para la posterior predicción de Servicios o Estadíos destino de
nuevos pacientes, ya que permitirá saber qué regla se ha satisfecho.
Reglas de Producción
R1: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion <= 1 Y
Morfina_Savredol-Oral <= 100
ENTONCES CSS3
R2: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion <= 1 Y
Morfina_Savredol-Oral > 100
ENTONCES HOME
R3: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Cierto Y
VAS_Depresion > 1
ENTONCES CSS1
R4: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Falso Y
STAS_Apetito <= 5
ENTONCES CSS1
R5: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Falso Y
STAS_Apetito > 5
ENTONCES ONCO
R6: SI Apoyo_familiar = Falso Y
STAS_Apetito <= 5
ENTONCES CARDIO
R7: SI Apoyo_familiar = Falso Y
STAS_Apetito > 5 Y
Edad_joven = Cierto
ENTONCES CSS2
R8: SI Apoyo_familiar = Falso Y
STAS_Apetito > 5 Y
Edad_joven = Falso
ENTONCES ONCO
Figura 34. Reglas de Producción (Servicio Partida UCP)
Reglas de Producción
R1: SI Apoyo_familiar = Cierto
ENTONCES Clase0
R2: SI Apoyo_familiar = Falso Y
VAS_Debilidad <= 2 Y
Morfina_Savredol-Oral <= 400
ENTONCES Clase5
R3: SI Apoyo_familiar = Falso Y
VAS_Debilidad <= 2 Y
Morfina_Savredol-Oral > 400
ENTONCES Clase0
R4: SI Apoyo_familiar = Falso Y
VAS_Debilidad > 2
ENTONCES Clase0
Figura 35. Reglas de Producción (Estadio Partida Clase0)
55
PROYECTO FINAL DE CARRERA
4.2.4
Tablas de decisión
Las figuras 36 y 37 muestran los resultados obtenidos de la creación de la Tablas
de Decisión.
Figura 36. Tabla de Decisión (Servicio Partida UCP)
Figura 37. Tabla de Decisión (Estadio Partida Clase0)
4.2.5
Nuevo Paciente: Previsión
Una vez creadas las estructuras de decisión podemos utilizarlas para prever la
posible evolución de un nuevo paciente.
Las pruebas realizadas han permitido verificar el correcto funcionamiento de la
previsión de evolución de un nuevo paciente.
4.3 Análisis de resultados.
Los resultados obtenidos en el apartado anterior muestran la funcionalidad del
sistema devolviendo valores aptos para su estudio.
A continuación pasaremos a explicar los resultados.
56
PROYECTO FINAL DE CARRERA
4.3.1
Circuito de Pacientes.
La figura 30 describe, en forma de tabla, el circuito que han realizado los
pacientes por los diferentes servicios. Esta tabla tiene dos entradas: las filas que
representan el servicio de partida, y las columnas que representan el servicio de
destino.
Ajustándonos a la prueba realizada podemos observar que el circuito a sido el
mostrado en la figura 38. de él se han eliminado los traslados con un nº de
pacientes no significativos (<=5).
10
6
CSS2
9
18
CSS3
13
CSS1
8
6
UCP
8
8
7
9
12
9
6
12
11
10
9
6
HOME
8
CARDIO
14
6
ONCO
8
Figura 38. Grafo del Servicio UCP
Esto viene a decir que de la UCP han salido 24 pacientes distribuidos de la
forma en que aparecen en la figura 30, sin descartar que alguno de estos 24
pacientes sea el mismo pero en una evaluación diferente. Como vemos los
servicios de Oncología y el Centro SocioSanitario 3 tienen la mayor afluencia
de pacientes provenientes de la UCP, mientras que el resto de servicios tienen
una igual recepción de pacientes.
El análisis de las estructuras de decisión permite responder el por qué de esta
movilidad.
Ahora veamos qué ha sucedido con el circuito de Estadios. La figura 31 muestra
este circuito, y si escogemos la clase0 para ilustrar lo sucedido tenemos lo
siguiente:
57
PROYECTO FINAL DE CARRERA
29
15
Clase3
38
Clase2
Clase4
1
2
1
Clase0
16
22
3
6
Clase1
23
Clase5
Figura 39. Grafo de Estadios Clase0
Este grafo muestra la evolución de 35 pacientes que partían de un estadio de
tipo “clase0”. Su destino ha sido mayoritariamente el mismo estadio, eso quiere
decir que estando en ese estadio hay una gran probabilidad de seguir en él
dadas una determinadas condiciones que tendremos ocasión de observar en el
apartado de análisis de las estructuras de decisión. Por el contrario, son pocos
los pacientes que evolucionan hacia otro estadio, aunque cabe destacar los 6
pacientes que desembocan en el estadio “clase5”.
Dado que no se han renombrado los estadios, sus nombres pueden crear
confusión, pero esta tarea se delega al médico experto que es quien debe decidir
observando los datos de cada clase de pacientes (el sistema permite esta
visualización). Nosotros podríamos aventurarnos a decir que la clase 0 se trata
de Estadio 0, mientras que la clase 5 se trata del Estadio 1 ya que parece la
evolución lógica de un paciente.
4.3.2
Árbol, Reglas y Tablas de Decisión
Este apartado abre las puertas al análisis de las estructuras de decisión,
desvelando el por qué de las evoluciones de los pacientes hacia unos Servicios o
Estadios determinados.
Ya que tanto los árboles como las reglas y la tablas dan la misma información
aunque representada de forma diferente, podemos unificarlas a la hora de dar
respuesta a las incógnitas que planteábamos anteriormente.
En primer lugar vamos a analizar las causas que han generado el circuito de
pacientes partiendo de la UCP. Para esto solamente debemos fijarnos en una
58
PROYECTO FINAL DE CARRERA
serie de atributos que determinan a qué servicio de destino evolucionará un
paciente, por tanto los atributos que no aparecen en estas estructuras de
decisión se pueden considerar irrelevantes ya que no aportan información para
discriminar hacia qué servicio destino dirigirse. Más concretamente, en el caso
de los pacientes que se han trasladado al servicio de Oncología los atributos
relevantes que han generado que el paciente cambie su ubicación a este destino
y no a otro han sido:
R5: SI Apoyo_familiar = Cierto Y
Disnea_refractaria = Falso Y
STAS_Apetito > 5
ENTONCES ONCO
R8: SI Apoyo_familiar = Falso Y
STAS_Apetito > 5 Y
Edad_joven = Falso
ENTONCES ONCO
Estos son los atributos determinantes que han hecho que un paciente cambie su
ubicación de la UCP a Oncología.
Por otro lado, vamos a analizar las causa que han originado el cambio de
Estadio partiendo de la clase 0. En este caso también debemos fijarnos en unos
atributos clave que determinan el cambio de Estadio de los pacientes.
Cabe decir, que la generación de datos aleatorios puede pasar factura en este
caso, ya que al producirse la situación que la gran mayoría de los pacientes
vayan aun Estadio en concreto (en este caso clase0) hace que el árbol C4.5
generalice en exceso y no tenga en cuenta la minoría de pacientes que tienen
como destino otros Estadíos. En este caso en particular el árbol C4.5 sólo tiene
en cuenta los Estadíos destino: clase 0 y clase 5, repartiendo el resto de
pacientes en estas dos clases. Si se observa detenidamente la salida del sistema
al mostrar el árbol de decisión puede verse entre paréntesis los pacientes
asignados a cada una de las hojas (pacientes bien asignados, pacientes mal
asignados).
Teniendo en cuenta lo comentado en el párrafo anterior, observamos que los
pacientes que parten del Estadio clase 0 sólo tienen dos destinos posibles: clase
0 y clase 5. En el caso de que el destino fuera la clase 5, estos serian los atributos
que causarían ese cambio:
R2: SI Apoyo_familiar = Falso Y
VAS_Debilidad <= 2 Y
Morfina_Savredol-Oral <= 400
ENTONCES Clase5
59
PROYECTO FINAL DE CARRERA
4.4 Conclusión de las pruebas.
Las pruebas realizadas han partido de un numero de instancias de pacientes
predefinida por el usuario. Todas estas instancias, en un inicio ofrecían una
pobre situación para extraer conocimiento, y ha sido mediante unas técnicas
elaboradas, con las que se ha podido extraer unas conclusiones claras para la
ayuda a la toma de decisión.
Las pruebas anteriormente vistas han demostrado que los métodos utilizados
son útiles a la hora de solucionar la problemática que planteábamos en el
apartado 1.1.
Como hemos observado en párrafos anteriores, el análisis de los circuitos de
pacientes, junto al análisis de las estructuras de decisión, han mostrado los
atributos que se deben tener en cuenta a la hora de determinar la evolución de
un paciente, esto permite tener una visión global de la situación de un hospital,
y aporta un valor añadido a la hora de tomar una decisión.
La pruebas han permitido observar el fenómeno de movilidad de los pacientes,
que en el caso concreto que nos atañe hemos visto que era bastante homogéneo,
mientras que en el caso de la evolución de los pacientes por los distintos
Estadios no lo era tanto. Esto último se debe por un lado a la generación de
datos a la que hemos tenido que recurrir por falta de datos reales, y que
provoca que las evaluaciones de los pacientes sean de igual número para todos,
y por otro a la poco aleatoriedad de los datos con la que se le ha dotado al
algoritmo de generación para que los instancias de un mismo paciente no
fueran muy diferentes entre sí (Véase Anexo 6.2).
60
PROYECTO FINAL DE CARRERA
Capítulo 5. CONCLUSIÓN DEL PROYECTO
5.1 Resumen del trabajo.
La idea central de este proyecto ha sido la de desarrollar una herramienta que
ayude a la toma de decisión de los profesionales de un Hospital que interactúa
en la Unidad de Curas Paliativas.
Las bases de datos de una UCP incorporan información sobre las evoluciones
de los pacientes a lo largo de los tránsitos entre deferentes emplazamientos.
Cada uno de los pasos de un episodio de tratamiento contiene información
básica sobre el lugar en que se encuentra el paciente (inmovilizado en domicilio,
en domicilio con movilidad, en CSS, en un servicio hospitalario, en la UCP,
etc.), la duración de la estancia (nº de días), la medicación que se le ha
suministrado en ese periodo (fármacos y dosis), las pruebas y procedimientos
recibidos por el paciente y el estado de salud medio durante la estancia.
El tratamiento de un paciente desde el momento en que entra en contacto con la
UCP y el momento final, está representado por un episodio asistencial que es,
una secuencia de bloques de datos conteniendo información del tipo que se ha
comentado en el párrafo anterior.
Con este tipo de información, acumulada para todos los pacientes en un
intervalo temporal significativo, se ha realizado los siguientes estudios,
empleando técnicas de análisis inteligente de datos:
Detección de patrones de circuitos seguidos por los pacientes.
Aplicación de métodos clasificatorios no supervisados para la detección de
estados de paciente, si éstos son desconocidos.
Construcción de la estructura de estados (no supervisados) de los pacientes
para mostrar los cambios de estado.
Algoritmos de construcción de estructuras de decisión (árboles, reglas,
tablas) sobre la movilidad de los pacientes con el fin de prever el circuito
61
PROYECTO FINAL DE CARRERA
que seguirá un nuevo paciente dentro de la estructura de la que forma parte
la Unidad de Curas Paliativas.
Algoritmos de construcción de estructuras de decisión sobre la evolución de
los pacientes. A partir de los estados en que se clasifican los pacientes ya
tratados. Estas estructura será empleada para la previsión de evoluciones de
nuevos pacientes.
Análisis del sistema mediante pruebas con datos generados aleatoriamente.
5.2 Alcance de los objetivos marcados.
Todo trabajo debe plantearse unos objetivos a cumplir más o menos realistas, y
que lleven a la consecución de unos fines buscados. El presente trabajo a
tratado de alcanzar la totalidad de los objetivos marcados en la sección ¡Error!
No se encuentra el origen de la referencia., y a continuación se muestra el
resultado obtenido:
Patrones de circuitos y Cambios de estado
Este objetivo trataba de modelar las evoluciones de los pacientes, y como se ha
podido observar es un objetivo plenamente alcanzado.
Detección de estados de paciente
Este objetivo planteaba la detección del estado de los paciente mediante
métodos de clasificación no supervisados. En nuestro caso estos métodos se
han materializado en el algoritmo k-means que realiza la clasificación de los
pacientes de una forma no supervisada.
Creación de Estructuras de decisión
Este objetivo previa la incorporación de algoritmos de creación de estructuras
de decisión: Árboles, reglas y tablas, partiendo de los datos que se desprendían
de la consecución de los objetivos anteriores mencionados. En efecto, la creación
de estas estructuras ha sido satisfactoria.
Creación de una Base del Conocimiento y predicción de nuevos pacientes
Una vez obtenidos las estructuras de decisión estamos en disposición de crear
una Base del Conocimiento (BC). Esta BC recoge todos los datos
imprescindibles para la ayuda a la toma de decisión, dispuestos de forma tal
que permita realizar consultas sobre futuras evoluciones de pacientes (cambios
de ubicación o cambios en su estado).
Este objetivo no ha sido alcanzado, en todo caso se ha creado la estructura que
podrá generar Base del Conocimiento.
62
PROYECTO FINAL DE CARRERA
Análisis de resultados con datos reales
Una vez creada la aplicación que implemente la solución a los problemas
propuestos en el apartado 1.1, se iniciará un análisis detallado de los resultados
con datos reales extraídos de la Base de Datos Hospitalarios del Hospital de la
Santa Creu i Sant Pau (Barcelona).
Este objetivo no ha sido alcanzado, dado que no se han podido obtener esos
datos reales, y por tanto su análisis ha sido imposible. Por otro lado, cabe decir
que se ha creado un algoritmo que simula la generación de estos datos, aunque
su naturaleza irremediablemente aleatoria ofrezca un pobre resultado desde el
punto de vista médico en la fase de pruebas.
5.2.1
Conclusiones obtenidas.
Las pruebas realizadas han partido de un número de instancias de pacientes
predefinida. Todas estas instancias, en un inicio ofrecían una pobre situación
para extraer conocimiento, y ha sido mediante unas técnicas elaboradas, con las
que se ha podido extraer unas conclusiones claras para la ayuda a la toma de
decisión.
Las pruebas anteriormente vistas han demostrado que los métodos utilizados
son útiles a la hora de solucionar la problemática que planteábamos en el
apartado 1.1.
Como hemos observado en párrafos anteriores, el análisis de los circuitos de
pacientes, junto al análisis de las estructuras de decisión han mostrado los
atributos que se deben tener en cuenta a la hora de determinar la evolución de
un paciente, esto permite tener una visión global de la situación de un hospital,
y aporta un valor añadido a la hora de tomar una decisión.
La pruebas han permitido observar el fenómeno de movilidad de los pacientes,
que en el caso concreto que nos atañe hemos visto que era bastante homogéneo,
mientras que en el caso de la evolución de los pacientes por los distintos
Estadios no lo era tanto. Esto último se debe por un lado a la generación de
datos a la que hemos tenido que recurrir por falta de datos reales, y que
provoca que las evaluaciones de los pacientes sean de igual número para todos,
y por otro a la poco aleatoriedad de los datos con la que se le ha dotado al
algoritmo de generación para que los instancias de un mismo paciente no
fueran muy diferentes entre sí (Véase 6.2 Anexo 2).
63
PROYECTO FINAL DE CARRERA
5.3 Trabajo futuro.
Dado que el presente trabajo se enmarca dentro del proyecto Palliasys [1], el
trabajo futuro depende de las exigencias de este último, pero en todo caso hay
que destacar diferentes actividades que si que se deberían realizar en un futuro
independientemente del proyecto Palliasys:
Prueba y análisis del sistema con datos reales.
Transformación del Sistema de Análisis Inteligente en un agente de Análisis
Inteligente e integración en el sistema multi-agente Palliasys.
Ampliación de los técnicas de minería de datos, incluyendo otras
metodologías de inteligencia artificial como son las redes neuronales por
ejemplo.
Ampliación de las opciones que ofrece el sistema software desarrollado,
como son la posibilidad de exportar los datos a distintos formatos como xml,
excel.
64
PROYECTO FINAL DE CARRERA
Capítulo 6. ANEXOS
6.1 Anexo 1: Datos de Pacientes.
Nombre del Atributo
Problemas STAS
Edad
Sexo
Fecha
Dolor
Debilidad
Depresión
Ansiedad
Nauseas
Somnolencia
Apetito
Bienestar
Dificultad respiratoria
Sequedad boca
Tipo Atributo
numeric
{H,M}
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
Problemas VAS
Dolor
Debilidad
Depresión
Ansiedad
Nauseas
Somnolencia
Apetito
Bienestar
Dificultad respiratoria
Sequedad boca
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
numeric
Estreñimiento
Insomnio
{Cierto,Falso}
{Cierto,Falso}
Criterios de Complejidad
Edad joven
Personalidad adictiva
{Cierto,Falso}
{Cierto,Falso}
65
PROYECTO FINAL DE CARRERA
Problematica socio familiar
Dificultad Adaptacion
dolores dificiles
Obstruccion intestinal
Fallo cognitivo
Compresion medular
Disnea refractaria
Hemorragias
Angustia existencial
Crisis deterioro rapido
Situacion agonica
Evalucion clinica exploraciones
Radioterapia
Endoscopia paliativa
Cirugia paliativa
Rotacion opioides
Via subcutanea
Bifosfonatos
Soporte transfusional paliativo
Indicacion estategias sedacion
Claudicación
Crisis deterioro rapido familia
Gran impacto emocional
Obstinacion terapeutica
Negacion
Desconocimiento
Paliativo
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
enfoque {Cierto,Falso}
Tratamiento
Apoyo familiar
Control Ansiedad
Control Depresion
Control Dificultad Respiratoria
Soporte Emocional
Soporte Espiritual
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
{Cierto,Falso}
Fármacos
Ibuprofeno-Intravenosa
Tamadol-Oral
Morfina Savredol-Oral
Valproato-Oral
Metilprednisolona-Oral
numeric
numeric
numeric
numeric
numeric
66
PROYECTO FINAL DE CARRERA
6.2 Anexo 2: Algoritmo de generación aleatoria de datos
La motivación que me ha llevado a la creación de este algoritmo ha sido la
necesidad de tener una serie de datos con los que poder probar la aplicación
software creada en este trabajo. En un principio estos datos debían haber sido
proporcionados por el Hospital de la Santa Creu i Sant Pau (Barcelona), pero
por causas ajenas al autor del presente estudio finalmente estos datos no han
podido formar parte del proyecto.
El objetivo de esta generación de datos, es la obtención de una serie de
instancias de pacientes configurables en cantidad vía programa. En un
principio, el usuario marcará que número de instancias y de pacientes que
desea obtener, esto no mostrará el número de evaluaciones que crearemos para
cada paciente (instancias/pacientes). Una vez obtenidos los datos anteriores el
algoritmo procederá de la siguiente manera:
ALGORITMO
I: numero de instancias
P: número de pacientes
E: número de evaluaciones (I/P)
L(N): Lista de pacientes generados
Comenzar
N = paciente inicial (datos inicializado desde un
fichero externo)
Mientras instancias ≠ 0 repetir
M = N (copia del paciente inicial)
Mientras evaluaciones de ≠ 0 repetir
Si es la primera evaluación entonces
M será 30 atributos diferente a N
Fin si
M será 7 atributos diferente a Manterior
Añadir L(M)
Fin mientras
Fin mientras
fin
De esta manera tendremos pacientes diferentes en 30 atributos entre sí,
mientras que un mismo paciente será diferente en 7 atributos por cada
evaluación que realice.
La introducción de información referente al ubicación de inicio también se hace
aleatoriamente por cada paciente y al primero de cada evaluación.
67
PROYECTO FINAL DE CARRERA
Capítulo 7. BIBLIOGRAFÍA
[1] Proyecto Palliasys: TIC-2003-07936. Ministerio de ciencia y tecnología.
[2] A. Moreno, D. Riaño, A. Pascual, A. Valls, X. Mallafré. Sistema telemático para
la gestión de unidades de curas paliativas (2003).
[3] D. Riaño, A. Moreno, A. Valls. PalliaSys: Agent-Based Palliative Care.
[4] A. Moreno, A. Valls, D. Riaño. Improving palliative care with agent technology.
[5] A. Valls, A. Moreno, D. Riaño, A. Pascual .Modelo de e-asistencia basado en las
tecnologías de sistemas multi-agente y análisis inteligente de datos.
[6] Richard N. Shiffman. Representation of Clinical Practice Guidelines in
Conventinal and Augmented Decision Tables. 1997.
[7] J. Vanthienen & G. Wets. From Decision Table to Expert System Shells.
[8] J.R. Quinlan. Induction of decision trees. Machine Learning, 1(1):81–106, 1986.
[9] J.R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann, San
Mateo, CA., USA, 1993.
[10]P. Clark, T. Nieblett. The CN2 induciton Algorithm, October 1988.
[11] S. Microsystems, Java Native Interface Specification –
http://java.sun.com/j2se/1.4/docs/guide/jni/. SUN Microsystems, 2001.
[12] Software WEKA http://www.cs.waikato.ac.nz/
68