scieee Science in your language
[es] (orig)

UroAnalytics: predicción y gestión de datos para una unidad de uro-oncología

Abstract

El cáncer de próstata es uno de los tumores con mayor prevalencia en la actualidad. Hay muchas variables que influyen en el desarrollo de esta enfermedad, por lo que los especialistas necesitan una gran cantidad de datos para poder estudiar las causas y consecuencias de esta enfermedad, así como encontrar los métodos más efectivos para poder tratarla. Una de las variables más relevantes es la recidiva bioquímica, que indica si un paciente vuelve a tener un tumor activo tras el tratamiento radical primario. En este trabajo se ha propuesto crear una herramienta que sea capaz de gestionar un conjunto de datos relacionados con el cáncer de próstata, con el objetivo de facilitar la labor del médico especialista en Urología para realizar un correcto seguimiento y predicción del riesgo de recidiva. En este sentido, la aplicación es capaz de predecir si, a partir de un conjunto de datos, un paciente padecerá de recidiva bioquímica utilizando técnicas de Machine Learning. El conjunto de datos utilizado para entrenar a los modelos de Machine Learning contiene información relacionada con el seguimiento de 269 pacientes, en la que cada uno posee información en más de 50 variables durante un periodo que va desde el año 2008 hasta el año 2015.

Read accessible full text

UroAnalytics: predicción y gestión de datos para una unidad de uro-oncología

Author: Caridad Villar Rojas, Mariana de la; Mercado Correa, Richard Junior; González de Miguel, Mateo; Castada Collado, Maryny Zara
Year: 2022
Source: https://docta.ucm.es/bitstreams/465588f1-1088-43d7-b27b-6e5bfda91b23/download
T abajo de Fin de G ado de Ingenie ía In o má ica y del G ado en
Ingenie ía de Compu ado es, Facul ad de In o má ica
U oAnaly ics: p edicción y ges ión de da os pa a una unidad
de u o-oncología.
U oAnaly ics: da a p edic ion and managemen o a uni o
u o-oncology.
Au o es: Lau a Falque González (GII),
Ma iana de la Ca idad Villa Rojas (GII),
Richa d Junio Me cado Co ea (GII),
Ma eo González de Miguel (GIC),
Ma yny Za a Cas ada Collado (GII)
Di ec o : An onio Sa asa Cabezuelo
Codi ec o : Ja ie Camb one o San os Cu so académico 2021/2022
ÍNDICE
AGRADECIMIENTOS .......................................................................................................................... 1
RESUMEN ............................................................................................................................................. 2
ABSTRACT ............................................................................................................................................ 3
CAPÍTULO 1. INTRODUCCIÓN ......................................................................................................... 4
1.1. MOTIVACIÓN ....................................................................................................................... 4
1.2. OBJETIVOS ........................................................................................................................... 4
1.3. PLAN DE TRABAJO ............................................................................................................. 5
CHAPTER 1. INTRODUCTION ........................................................................................................... 7
1.1. MOTIVATION ....................................................................................................................... 7
1.2. OBJECTIVES ......................................................................................................................... 7
1.3. WORK PLAN ......................................................................................................................... 8
CAPÍTULO 2. ESTADO DEL ARTE .................................................................................................. 10
CAPÍTULO 3. TECNOLOGÍAS EMPLEADAS ................................................................................. 11
3.1. Gi ......................................................................................................................................... 11
3.2. Visual S udio Code ............................................................................................................... 11
3.3. Boo s ap ............................................................................................................................... 11
3.4. PHP ....................................................................................................................................... 11
3.5. Ja aSc ip .............................................................................................................................. 12
3.6. Py hon ................................................................................................................................... 12
3.7. Jupy e ................................................................................................................................... 12
3.8. Base de da os ......................................................................................................................... 12
CAPÍTULO 4. ESPECIFICACIÓN DE REQUISITOS ....................................................................... 14
4.1. Ac o es .................................................................................................................................. 14
4.2. Casos de uso .......................................................................................................................... 14
4.2.1. Casos de uso pa a el ac o Use .................................................................................... 14
4.2.2. Casos de uso pa a el ac o Admin ................................................................................. 28
CAPÍTULO 5. ARQUITECTURA DE LA APLICACIÓN ................................................................. 31
CAPÍTULO 6. MODELO DE DATOS ................................................................................................ 33
6.1. Tabla pa ien s ........................................................................................................................ 33
6.2. Tabla use s ............................................................................................................................ 37
CAPÍTULO 7. DISEÑO ....................................................................................................................... 39
7.1. Es ilo ..................................................................................................................................... 39
7.2. Colo es .................................................................................................................................. 39
7.3. P incipios de diseño .............................................................................................................. 40
7.3.1. P incipio de consis encia in e na y ex e na ................................................................... 40
7.3.2. P incipio de cie e ......................................................................................................... 41
7.3.3. P incipio de ges ión del es ado isible .......................................................................... 42
7.3.4. P incipio de p oximidad ................................................................................................ 42
7.3.5. P incipio de isibilidad y eedback ............................................................................... 43
CAPÍTULO 8. IMPLEMENTACIÓN .................................................................................................. 45
8.1. MÓDULO USUARIO .......................................................................................................... 45
8.1.1. Regis o ......................................................................................................................... 45
8.1.2. Solici udes de egis o ................................................................................................... 48
8.1.3. Inicio de sesión (Login) ................................................................................................ 53
8.1.4. Ce a sesión ................................................................................................................. 57
8.2. MÓDULO PACIENTES ........................................................................................................... 58
8.2.1. Visualiza pacien es ...................................................................................................... 59
8.2.2. Añadi pacien e ............................................................................................................. 62
8.2.3. Ve es adís icas ............................................................................................................. 64
8.2.4. Expo a pacien es ......................................................................................................... 68
8.2.5. Impo a pacien es ......................................................................................................... 69
8.3. MÓDULO CONSULTAS.......................................................................................................... 70
8.3.1. Inicio consul a ............................................................................................................... 71
8.3.2. Ve abla ........................................................................................................................ 74
8.3.3. Ve es adís icas ............................................................................................................. 75
8.3.4. Ve de alles ................................................................................................................... 75
8.3.5. Expo a consul a .......................................................................................................... 78
CAPÍTULO 9. MÓDULO PREDICCIONES ....................................................................................... 79
9.1. Limpieza de los da os ............................................................................................................ 79
9.2. Modelos de p edicción .......................................................................................................... 82
9.2.1. Desc ipción inicial de los da os .................................................................................... 83
9.2.2. Limpieza de columnas con ilas acías ......................................................................... 84
9.2.3. Visualización gene al y es udio de los da os ................................................................. 86
9.2.4. Gene ación de los modelos de p edicción ..................................................................... 91
9.3. P edicciones ........................................................................................................................ 109
9.4. F on end del apa ado de P edicciones ............................................................................... 116
9.4.1. Impo ación de da os del pacien e ............................................................................... 119
9.4.2. P edicción con los da os del o mula io ...................................................................... 125
CAPÍTULO 10. CONCLUSIONES Y TRABAJO FUTURO ............................................................ 128
10.1. Conclusiones ................................................................................................................... 128
10.2. T abajo Fu u o................................................................................................................. 128
CHAPTER 10. CONCLUSIONS AND FUTURE WORK ................................................................ 130
10.1. Conclusions ..................................................................................................................... 130
10.2. Fu u e Wo k .................................................................................................................... 130
CAPÍTULO 11. TRABAJO INDIVIDUAL ....................................................................................... 132
CAPÍTULO 12. ANEXO .................................................................................................................... 141
12.1. Diag amas de ac i idad ................................................................................................... 141
12.2. Guía de usua io ............................................................................................................... 154
12.2.1. Login ....................................................................................................................... 154
12.2.2. Regis o ................................................................................................................... 157
12.2.3. Página de inicio ....................................................................................................... 158
12.2.4. Consul as ................................................................................................................. 160
12.2.5. P edicciones ............................................................................................................ 167
12.2.6. Pacien es ................................................................................................................. 170
12.2.7. Manual de usua io ................................................................................................... 174
12.2.8. Cuen a del usua io .................................................................................................. 174
12.2.9. Pe iciones de egis o .............................................................................................. 176
BIBLIOGRAFÍA ................................................................................................................................ 177
1
AGRADECIMIENTOS
Habiendo e minado el TFG, nos damos cuen a de lo la go y di ícil que ha sido es e
camino uni e si a io, y que no hab ía sido posible sin la ayuda de muchas pe sonas.
En p ime luga , que emos ag adece a nues o u o , An onio Sa asa Cabezuelo, el cual
nos ha acompañado en es e p oceso, apo ándonos su sabidu ía y expe iencia.
Po o o lado, damos las g acias al Hospi al In an a Leono , conc e amen e al doc o
Ja ie Camb one o San os po habe colabo ado con noso os y apo a nos los elemen os
necesa ios pa a la ealización de nues o p oyec o.
Po úl imo, pe o no menos impo an e, a nues os amilia es, po oda su comp ensión
y apoyo en los mejo es y peo es momen os.

2
RESUMEN
El cánce de p ós a a es uno de los umo es con mayo p e alencia en la ac ualidad.
Hay muchas a iables que in luyen en el desa ollo de es a en e medad, po lo que los
especialis as necesi an una g an can idad de da os pa a pode es udia las causas y
consecuencias de es a en e medad, así como encon a los mé odos más e ec i os pa a pode
a a la. Una de las a iables más ele an es es la ecidi a bioquímica, que indica si un pacien e
uel e a ene un umo ac i o as el a amien o adical p ima io.
En es e abajo se ha p opues o c ea una he amien a que sea capaz de ges iona un
conjun o de da os elacionados con el cánce de p ós a a, con el obje i o de acili a la labo
del médico especialis a en U ología pa a ealiza un co ec o seguimien o y p edicción del
iesgo de ecidi a. En es e sen ido, la aplicación es capaz de p edeci si, a pa i de un conjun o
de da os, un pacien e padece á de ecidi a bioquímica u ilizando écnicas de Machine
Lea ning.
El conjun o de da os u ilizado pa a en ena a los modelos de Machine Lea ning
con iene in o mación elacionada con el seguimien o de 269 pacien es, en la que cada uno
posee in o mación en más de 50 a iables du an e un pe iodo que a desde el año 2008 has a
el año 2015.
PALABRAS CLAVE
Cánce , p ós a a, p edicción, consul as, machine lea ning, ecidi a bioquímica, U ología, U o-
oncología
3
ABSTRACT
P os a e cance is one o he mos p e alen umo s oday. The e a e many a iables
ha in luence he de elopmen o his disease, so specialis s need a la ge amoun o da a o be
able o s udy he causes and consequences o his disease, as well as o ind he mos e ec i e
me hods o ea i . One o he mos ele an a iables is biochemical ecu ence, which
indica es whe he a pa ien has an ac i e umo again a e p ima y adical ea men .
In his wo k we ha e p oposed o c ea e a ool ha is able o manage a se o da a ela ed
o p os a e cance , wi h he aim o acili a ing he wo k o he U ology specialis o pe o m a
co ec moni o ing and p edic ion o he isk o ecu ence. In his sense, he applica ion is able
o p edic whe he , om a se o da a, a pa ien will su e om biochemical ecu ence using
Machine Lea ning echniques.
The da ase used o ain he Machine Lea ning models con ains in o ma ion ela ed o
he ollow-up o 269 pa ien s, in which each pa ien has in o ma ion on mo e han 50 a iables
du ing a pe iod anging om 2008 o 2015.
KEYWORDS
Cance , p os a e, p edic ion, consul a ions, machine lea ning, biochemical ecu ence,
U ology, U o-oncology
4
CAPÍTULO 1. INTRODUCCIÓN
En es e capí ulo se desc ibe la p oblemá ica po la que nace es e p oyec o y su
espec i a solución. Además, se plan ean los obje i os pa a el desa ollo de es e p oyec o.
1.1. MOTIVACIÓN
El p oblema que se quie e soluciona con es a aplicación es la di icul ad que supone
de ec a un posible caso de ecidi a de cánce de p ós a a. Los modelos de p edicción u ilizados
en la unidad de U o-oncología del Hospi al Uni e si a io In an a Leono es án basados en
eg esiones lineales, las cuales son conocidas po se muy simples, y en cu as Cox. Asimismo,
la ges ión de pacien es se ealiza median e hojas Excel.
Una posible solución al p oblema de la p edicción de iesgo se ía la del es udio de los
da os pa a de e mina qué modelos de p edicción son los más adecuados en es e caso. En lo
e e en e a la ges ión y manejo de da os, la mejo solución se ía diseña una aplicación web,
capaz de conec a se a una base de da os, en la que pode ealiza ope aciones y consul as sob e
una abla de pacien es.
Pa a uni ica es as dos soluciones, se ha p opues o c ea una aplicación web que
esuel a los p oblemas desc i os an e io men e, es deci , manipula los da os de los pacien es
de mane a g á ica y sencilla y gene a p edicciones sob e un pacien e dado, habiendo ealizado
un es udio p e io sob e los da os iniciales, u ilizando écnicas de Machine Lea ning con los
siguien es modelos: kNN, eg esión logís ica y andom o es .
1.2. OBJETIVOS
El obje i o p incipal de es e p oyec o es la c eación de una he amien a que pe mi a a un
médico expe o en U o-oncología analiza da os de pacien es con cánce de p ós a a con el
obje i o de p edeci la posibilidad de que un pacien e padezca de ecidi a bioquímica.
Es e obje i o p incipal se pa icula iza en los siguien es obje i os más especí icos:
● Realiza un es udio de los da os pa a pode comp ende los. De es a o ma, se pueden
gene a modelos de p edicción capaces de p onos ica de mane a e ec i a los casos de
ecidi a bioquímica.
5
● C ea una aplicación web pa a que un médico pueda ealiza sus es udios de o ma
in ui i a.
● Gene a los modelos de p edicción, basados en los algo i mos de Random Fo es , k-
Nea es Neighbou s y Reg esión Logís ica. La limpieza y la co ec a selección de los
da os, así como el es ablecimien o de los pa áme os adecuados pe mi i án ene
modelos de p edicción p ecisos y e ec i os.
● Facili a la ges ión e inco po ación de los da os.
● Mos a al médico g á icos de los da os más ele an es, así como in o mes de consul as.
● Facili a la capacidad de impo a y expo a da os de mane a masi a y sencilla a a és
de hojas de Excel.
● O ece un sis ema de ges ión de usua ios con acceso au en icado que es inja el uso a
los médicos egis ados en la aplicación.
1.3. PLAN DE TRABAJO
Pa a lle a a cabo el p oyec o se de inió un plan de abajo con dis in as ases. Pa a
cada una de es as ases se es ablecie on uno o a ios obje i os a consegui . El calenda io de
abajo se mues a en la igu a 1.
A con inuación, se p esen a una abla con el plan de abajo.
FASE
OBJETIVOS
HORAS
1
Es ablece las uncionalidades y obje i os p incipales del p oyec o
20
2
Especi icación de equisi os
20
3
Es udio de las ecnologías a u iliza
40
4
Implemen ación de la es uc u a básica de la aplicación
50
5
Es udio de los da os adqui idos
30
6
Limpieza de los da os adqui idos
40
7
Implemen ación del apa ado de Consul as
60
12
3.5. Ja aSc ip
Ja aSc ip [5] es un lenguaje de p og amación que se ha u ilizado en la aplicación web
pa a implemen a la in o mación dinámica de la in e az g á ica como es el caso de las g á icas
que apa ecen en la sección Ve es adís icas de la página de Pacien es.
3.6. Py hon
En el backend se ha u ilizado Py hon [6] pa a implemen a una API con Flask [23],
que es un amewo k de Py hon.
Py hon es un lenguaje de p og amación cen ado en la legibilidad y simplicidad del
código y que dispone de lib e ías muy ú iles pa a el p ocesamien o de da os.
Además de implemen a Flask, Py hon se ha u ilizado pa a ealiza un no ebook de
Jupy e [7] pa a p uebas en p edicciones.
Cabe des aca que en el no ebook pa a el p oceso de p edicción se ha u ilizado la lib e ía
Sciki -lea n [8] que p opo ciona los conocimien os básicos del ap endizaje au omá ico y
he amien as como po ejemplo el p ep ocesamien o de da os y ajus e de modelos.
Asimismo, se ha hecho uso de las lib e ías Pandas [24], SQLAlchemy [25] y Pandas-
P o iling [26] de Py hon pa a la ges ión y isualización de da os a g an escala de mane a
cómoda y e icien e.
3.7. Jupy e
Jupy e es una in e az web que acili a a eas como limpieza y con e sión de da os,
dis ibuidas de o ma sencilla y o ganizada en dis in as celdas del no ebook.
Además, pe mi e inclui especi icaciones ma kdown muy ú iles a la ho a de documen a cada
a ea p ocesada.
Median e es a he amien a se ha gene ado un no ebook empleado pa a la ealización de
p uebas de los di e en es pasos que componen la ase de p edicción y olca el con enido
ele an e de dichas p uebas en el código de la página de P edicciones de la aplicación web.
3.8. Base de da os
Pa a adminis a los da os de la aplicación web se ha u ilizado MySQL [9], un sis ema
de ges ión de bases de da os desa ollado po O acle.

13
Pa a aloja los da os de la base de da os, se ha u ilizado XAMPP [29], ya que es a
he amien a que con iene po de ec o un se ido Apache pa a aloja an o el código PHP del
on end como phpMyAdmin [30] pa a adminis a de mane a sencilla la base de da os.
14
CAPÍTULO 4. ESPECIFICACIÓN DE REQUISITOS
En es e capí ulo se desc iben los ac o es p incipales que con o man la aplicación, así
como los casos de uso.
4.1. Ac o es
En la aplicación se han de inido dos ipos de usua ios:
● Use : es el usua io gené ico de la aplicación, es deci , un doc o de la unidad de u o-
oncología del hospi al, que ha á uso de casi odas las uncionalidades implemen adas.
● Admin: es un usua io con pe misos especiales den o de la aplicación, con la capacidad
de acep a o denega pe iciones de egis o de o os usua ios. Al igual que Use , es un
doc o del hospi al, pe o con pe misos de adminis ación.
4.2. Casos de uso
A con inuación, se explican los casos de uso pa a cada uno de los ac o es.
4.2.1. Casos de uso pa a el ac o Use
En la igu a 2 se mues a el diag ama de casos de uso del ac o Use , donde se pueden
ap ecia odas las acciones que es e puede lle a a cabo.
15
Figu a 2. Diag ama de casos de uso del ac o Use .
Iden i icado
C001
Nomb e
Inicia sesión
Desc ipción
El usua io se au en ica pa a pode accede a la aplicación.
Ac o p incipal
Usua io y Adminis ado
Ac o secunda io
N/A
Da os de en ada
Co eo elec ónico y con aseña.
Da os de salida
Ven ana p incipal de la aplicación pa a un usua io au en icado.
P econdiciones
Debe es a dado de al a p e iamen e po el adminis ado y exis i
en la base de da os.
Pos condiciones
Éxi o: El usua io es au en icado y puede accede a las
he amien as de la aplicación.
16
Fallo: Mensaje de e o y uel a a inicia sesión.
Flujo p incipal
1. El usua io in oduce su co eo elec ónico y con aseña.
2. Se comp ueban los da os in oducidos.
3. Se con i ma la iden idad del usua io.
4. Se mues a la en ana p incipal co espondien e a un
usua io au en icado.
Flujo al e na i o
2.a. No se econoce los da os in oducidos.
Se mues a un mensaje de e o y se uel e al paso 1.
Iden i icado
C002
Nomb e
Ce a sesión
Desc ipción
El usua io cie a la sesión de la aplicación.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
N/A
Da os de salida
Pan alla de inicio de sesión.
P econdiciones
El usua io debe es a p e iamen e au en icado.
Pos condiciones
Éxi o: Se mues a la pan alla de inicio de sesión.
Fallo: Mensaje que mues a el e o .
Flujo p incipal
1. El usua io pulsa el bo ón “Ce a sesión”.
2. Se cie a la sesión del usua io.
3. Se mues a la pan alla de inicio de sesión.
Flujo al e na i o
2.a. No se ha podido ealiza el cie e de sesión del usua io.
Se mues a un mensaje de e o .
17
Iden i icado
C003
Nomb e
Regis o
Desc ipción
Un nue o usua io se egis a en la aplicación.
Ac o p incipal
Use
Ac o secunda io
Admin
Da os de en ada
Nomb e, apellidos, co eo elec ónico y con aseña.
Da os de salida
Mensaje po pan alla que dice que el usua io iene que espe a a
que el adminis ado acep e el egis o. La con i mación se
no i ica á a a és del co eo elec ónico p opo cionado po el
usua io en el egis o.
P econdiciones
Que no exis a un usua io en la base de da os con el mismo co eo
elec ónico.
Pos condiciones
Se mues a un mensaje de que el usua io iene que espe a un
co eo elec ónico de con i mación.
Flujo p incipal
1. El usua io in oduce nomb e, apellidos, co eo elec ónico,
nomb e de usua io y con aseña.
2. Se comp ueba si los da os son álidos.
3. El sis ema comp ueba si el usua io no exis e en la base de
da os.
4. Se mues a un mensaje de que el usua io iene que espe a
un co eo elec ónico de con i mación.
Flujo al e na i o
2.a. Los da os in oducidos no son álidos, se mues a un mensaje
de e o y se uel e al paso 1.
3.a. Ya exis e el usua io en la base de da os. Se mues a un
mensaje de e o y se uel e al paso 1.

18
Iden i icado
C004
Nomb e
Modi ica da os de usua io
Desc ipción
El usua io modi ica los da os pe sonales de su cuen a.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
Nomb e, apellidos, co eo elec ónico y con aseña.
Da os de salida
Ven ana de con i mación de da os modi icados.
P econdiciones
El usua io debe es a au en icado en la aplicación.
Pos condiciones
Éxi o: Los nue os da os se han ac ualizado co ec amen e en la
base de da os.
Fallo: Mensaje de e o .
Flujo p incipal
1. El usua io selecciona los campos que desea modi ica .
2. El usua io modi ica los campos seleccionados.
3. El usua io pulsa el bo ón de con i ma cambios.
4. Se mues a un mensaje de ope ación ealizada.
Flujo al e na i o
3.a. Los da os in oducidos po el usua io no son álidos. Se
mues a un mensaje de e o y se uel e al paso 1.
Iden i icado
C005
Nomb e
Elimina cuen a
Desc ipción
El usua io accede a su pe il y elimina su cuen a.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
Solici ud del usua io pa a elimina su cuen a.
Da os de salida
Ven ana de con i mación de baja.
P econdiciones
El usua io debe es a au en icado en la aplicación.
19
Pos condiciones
Éxi o: El usua io ha sido eliminado de la base de da os.
Fallo: Mensaje de e o .
Flujo p incipal
1. El usua io pulsa el bo ón de elimina cuen a desde su
pe il.
2. El usua io es eliminado de la base de da os.
3. Se mues a un mensaje de éxi o.
Flujo al e na i o
1.a. Ocu e un e o en el sis ema. Se mues a un mensaje de e o .
Iden i icado
C006
Nomb e
Realiza consul a
Desc ipción
El usua io ealiza una consul a il ando po a ibu os de pacien es.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
Fil os seleccionados.
Da os de salida
Da os de pacien es ob enidos po la consul a.
P econdiciones
El usua io debe es a au en icado en la aplicación y debe habe
seleccionado algún il o p e iamen e a ealiza la consul a.
Pos condiciones
Éxi o: Se mues an los da os de la consul a.
Fallo: Mensaje de e o .
Flujo p incipal
1. El usua io selecciona el il o que le in e esa aplica y
p opo ciona el o los alo es.
2. El usua io pulsa la opción de ealiza consul a.
3. El sis ema accede a la BBDD y mues a los esul ados de
la consul a en o ma o de abla.
Flujo al e na i o
1.a. Si los da os p opo cionados en el il o no cumplen los
equisi os de ango o ipo se mues a un mensaje de e o al
usua io.
20
Iden i icado
C007
Nomb e
Ve abla consul a
Desc ipción
Se le mues a al usua io los da os de la consul a que ealizó
p e iamen e.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
N/A
Da os de salida
Da os que se ob ienen de la consul a ealizada p e iamen e.
P econdiciones
El usua io debe es a au en icado en la aplicación y debe habe
ealizado una consul a p e iamen e.
Pos condiciones
Éxi o: Se mues an los da os de la consul a.
Fallo: Mensaje de e o .
Flujo p incipal
Se mues an los da os de la consul a p e ia en o ma o de abla.
Flujo al e na i o
1.a. Se mues a un mensaje in o mando al usua io de que no se
encuen an da os que concue dan con la búsqueda ealizada en la
is a an e io .
Iden i icado
C008
Nomb e
Ve es adís icas consul a
Desc ipción
Se le mues a al usua io los da os de la consul a que ealizó
p e iamen e.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
N/A
Da os de salida
Da os que se ob ienen de la consul a que concue da con la
búsqueda p e ia.
21
P econdiciones
El usua io debe es a au en icado en la aplicación y debe habe
ealizado una búsqueda co ec a en la is a an e io .
Pos condiciones
Éxi o: Se mues an los da os de la consul a.
Fallo: Mensaje de e o .
Flujo p incipal
Se mues an los da os de la consul a p e ia.
Flujo al e na i o
1.a. Si no se encuen an da os que concue den con la consul a
p e ia, la abla mos ada apa ece á acía.
Iden i icado
C009
Nomb e
Ve de alles consul a
Desc ipción
Se le mues a al usua io los da os de la consul a que ealizó
p e iamen e.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
N/A
Da os de salida
Da os que se ob ienen de la consul a p e ia.
P econdiciones
El usua io debe es a au en icado en la aplicación y debe habe
ealizado una consul a p e iamen e.
Pos condiciones
Éxi o: Se mues an los da os de la consul a.
Fallo: Mensaje de e o .
Flujo p incipal
1. El usua io elige e de alles ex endidos (opcional).
2. El usua io excluye da os de los de alles que se gene a án
(opcional).
3. El usua io indica que quie e e los de alles.
4. El sis ema gene a un pe il de da os que se ab e en una
nue a pes aña.
5. El usua io na ega po los da os.
28
Iden i icado
C018
Nomb e
Ve manual de usua io
Desc ipción
El usua io puede isualiza y na ega po el manual de usua io,
además de desca ga lo si lo desea.
Ac o p incipal
Use y Admin
Ac o secunda io
N/A
Da os de en ada
N/A
Da os de salida
In o mación del manual de usua io
P econdiciones
El usua io debe es a au en icado en la aplicación.
Pos condiciones
Éxi o: Se mues a o se desca ga la in o mación e e en e al
manual de usua io.
Fallo: E o del sis ema.
Flujo p incipal
1. El usua io accede al manual de usua io.
2. El usua io na ega en e las di e en es opciones del índice
del manual.
3. El usua io desca ga el manual de usua io (opcional).
Flujo al e na i o
1.a. Ocu e un e o en el sis ema y se in o ma al usua io.
4.2.2. Casos de uso pa a el ac o Admin
En la igu a 3 se mues a el diag ama con los casos de uso del ac o Admin, que iene
odas las uncionalidades p opias del Use , pe o con la capacidad de ges iona el egis o de
usua ios.

29
Figu a 3. Diag ama de casos de uso del ac o Admin.
Iden i icado
C019
Nomb e
Ges iona pe iciones de egis o
Desc ipción
El adminis ado comp ueba si el usua io que se ha egis ado es
un médico del hospi al y con i ma el egis o de dicho usua io.
Ac o p incipal
Admin
Ac o secunda io
Use
Da os de en ada
Nomb e, apellidos y co eo elec ónico.
Da os de salida
Ven ana de con i mación de egis o.
P econdiciones
El adminis ado debe es a au en icado en la aplicación.
Pos condiciones
Éxi o: El usua io se ha sido añadido a la base de da os.
Fallo: Mensaje de e o .
30
Flujo p incipal
1. El adminis ado accede a la solici ud de egis o del
usua io.
2. El adminis ado acep a la solici ud.
3. Se añade el usua io a la base de da os.
4. Se en ía un mensaje al usua io solici an e in o mando de
que ha sido egis ado.
5. Se mues a un mensaje de éxi o.
Flujo al e na i o
2.a El adminis ado echaza la solici ud. Se elimina la
no i icación y se en ía un mensaje al usua io solici an e
in o mando del echazo.
31
CAPÍTULO 5. ARQUITECTURA DE LA
APLICACIÓN
Pa a desa olla la aplicación, se ha u ilizado la a qui ec u a clien e-se ido . En es a
a qui ec u a, las a eas se epa en en e los p o eedo es de se icios, o se ido es, y los
clien es. Un clien e ealiza pe iciones a un se ido , y és e gene a una espues a. En la igu a 4
se puede obse a un esquema del uncionamien o de la aplicación.
Figu a 4. Esquema de pe iciones
Es e modelo es muy lexible y pe mi e sepa a las dis in as uncionalidades, o eciendo
así un mayo modula idad y una disminución de dependencias en e los dis in os componen es.
Una de las en ajas de aplica es a a qui ec u a es, que, en un caso eal de p oducción,
se pod ía delega las ope aciones más pesadas como, c ea modelos de p edicción a pa i de
muchos da os o hace uso de mé odos complejos de lib e ías de Py hon, a una máquina más
po en e, disminuyendo no ablemen e la ca ga de abajo en el disposi i o u ilizado po el
clien e.
Además, si en algún momen o su ge la necesidad de pasa la aplicación web a o a
pla a o ma como, a una aplicación mó il o de esc i o io, se puede ealiza el cambio de mane a
sencilla, ya que g an pa e de la uncionalidad se encuen a implemen ado en el lado del
se ido , y solo ha ía al a modi ica el clien e.
En cuan o a pa ones de diseño, se ha aplicado el pa ón Modelo Vis a Con olado , que
sepa a los da os, la in e az g á ica y la lógica. Pa a ello, es a aplicación cons a de dos pa es:
32
el on end pa a la in e az de usua io y el backend, que se enca ga de la lógica y del
p ocesamien o de los da os. El on end se ha desa ollado con PHP y Ja asc ip , y el backend
se ha c eado como una API con Flask, un amewo k de Py hon pa a c ea aplicaciones web.
Como base de da os elacional se ha u ilizado MySQL.
Pa a aloja el backend no ha sido necesa io u iliza ninguna he amien a ex e na, ya que
simplemen e bas a con u iliza el comando Py hon po de ec o. Sin emba go, pa a aloja el
on end en PHP y la base de da os, se ha u ilizado XAMPP, ya que es a he amien a con iene
po de ec o un se ido Apache pa a aloja el código PHP y phpMyAdmin pa a adminis a de
mane a sencilla la base de da os.
33
CAPÍTULO 6. MODELO DE DATOS
En es e capí ulo se desc ibe en de alle el modelo de da os u ilizado en el p oyec o. En
la igu a 5 se puede obse a la base de da os “ g_bd” y las ablas que es a incluye.
Figu a 5. BBDD en phpMyAdmin
● Pa ien s: ecoge an o los da os de los pacien es iniciales usados en el en enamien o del
modelo como de los nue os pacien es in oducidos po los usua ios.
● Use s: ecoge los dis in os usua ios que pueden accede a la aplicación. Tienen dos oles
posibles: usua io co ien e y adminis ado .
Al se únicamen e dos ablas comple amen e independien es, no se han es ablecido
elaciones en e dichas ablas. La u ilidad de MySQL pa a es a aplicación es la de man ene la
pe sis encia de da os.
6.1. Tabla pa ien s
Es a abla aúna los da os de los pacien es de la unidad de u o-oncología.
Los pacien es son inse ados en la base de da os a a és de uncionalidades como
“Impo a pacien es” o “Añadi pacien e”. En el p ime caso se impo a án uno o a ios
pacien es en o ma o .xls o .xlsx y en el segundo caso se impo a ía un único pacien e
in oduciendo cada campo en el o mula io de la aplicación.

34
Los da os deben segui un o ma o conc e o, es deci , al menos una de las columnas y
sus ipos deben coincidi con los que se mues an a con inuación y, en caso de no se así, la
aplicación de ol e á un e o al a a de impo a los. Además, si en algún caso, uno o a ios
pacien es no cumplen en algún campo con el ango de alo es especi icado, se a a á dicha
en ada como inco ec a y se anula á su inse ción.
A con inuación, de desc iben las a iables de la abla:
N: Núme o del pacien e a in oduci
FILIACIÓN
1.- FECHACIR: Fecha PRL
SOCIODEMOGRÁFICAS
2.- EDAD
3.- ETNIA (1.- Caucásico, 2.- Neg o, 3.- Hispano, 4.- Asiá ico)
ANTECEDENTES
4.- OBESO: Obesidad (0.- NC, 1.- IMC < 25, 2.- IMC 25-30, 3.- IMC > 30)
5.- HTA (1.- Si, 2.- No, 3.- NC)
6.- DM: Diabe es Melli us (1.- Si, 2.- No, 3.- NC)
7.- TABACO (0.- NC, 1.- No, 2.- Ex umado , 3.- < 10 ciga illos/día, 4.- 10-20 ciga illos/día,
5.- > 20 ciga illos/día)
8.- HEREDA: Familia 1º g ado con CaP (1.- Si, 2.- No)
CLÍNICO-PATOLÓGICAS
9.- TACTOR: Tac o ec al p eope a o io (1.- Nega i o, 2.- Sospechoso, 3.- Posi i o)
10.- PSAPRE: PSA p eope a o io en biopsia (0-6 ng/ml, 6,01-10 ng/ml, 10,01-20 ng/ml, > 20
ng/ml)
11.- PSALT: PSAl/PSA
12.- TDUPPRE: Tiempo de duplicación de PSA p eope a o io (2º el de biopsia).
13.- ECOTR (1.- No mal, 2.- Sospechosa (nódulo))
35
BIOPSIA PROSTÁTICAS
14.- NBIOPSIA: Nº biopsias p e ias
15.- HISTO: ipo his ológico (1.- Adenoca cinoma, 2.- O o)
16.- GLEASON1: Gleason en biopsia (1.- 6, 2.- 7 (3+4), 3.- 7 (4+3), 4.- 8-10, 5.- Inclasi icable)
17.- NCILPOS: Nº cilind os posi i os (en cualquie lado) (1.- < 25%, 2.- 25-50%, 3.- 50%)
18.- BILAT: Bila e alidad (1.- Si, 2.- No)
19.- PORCENT: Mayo % a ec ación un cilind o
20.- IPERIN: In il ación pe ineu al (1. Si, 2.- No, 3.- NC)
21.- ILINF: In il ación lin á ica: (1. Si, 2.- No, 3.- NC)
22.- IVASCU: In il ación ascula (1. Si, 2.- No, 3.- NC)
23.- TNM1: cTNM biopsia (1.- cT2ab (unila e al), 2.- cT2c, 3.- cT3)
TRAS PROSTATECTOMÍA
24.- HISTO2: Tipo his ológico (1.- Adenoca cinoma, 2.- O o)
25.- GLEASON2: Gleason pieza PRL (1.- 6, 2.- 7 (3+4), 3.- 7 (4+3), 4.- 8-10, 5.- < 6)
26.- BILAT2: Bila e alidad (1.- Si, 2.- No)
27.- LOCALIZ: Localización en pieza (1.- ZP, 2.- ZT, 3.- ZFMA, 4.- Múl iple)
28.- MULTIFOC: Mul i ocalidad (1.- Si, 2.- No)
29.- VOLUMEN: Volumen umo al (% pieza)
30.- EXTRACAP: Ex ensión ex acapsula (1.- Si, 2.- No)
31.- VVSS: In asión Vesículas Seminales (1.- Si, 2.- No, 3.- NC)
32.- IPERIN2: In il ación pe ineu al pieza (1.- Si, 2.- No, 3.- NC)
33.- ILINF2: In il ación lin á ica pieza (1.- Si, 2.- No, 3.- NC)
34.- IVASCU2: In il ación ascula pieza (1.- Si, 2.- No, 3.- NC)
35.- PINAG: PIN al o g ado pieza (1.- Si, 2.- No, 3.- NC)
36
36.- MARGEN: Má genes qui ú gicos posi i os (1.- Si, 2.- No, 3.- NC)
37.- TNM2: TNM pieza (1.- pT2ab, 2.- pT2c, 3.- pT3, 4.- pT4, 5.- pN+)
EVOLUTIVOS
38.- PSAPOS: PSA posope a o io 1º (si mayo 0,2 no se conside a RBQ)
39.- RTPADYU: RTP adyu an e (1.- Si, 2.- No)
40.- RTPMES: Tiempo has a RTP adyu an e (meses).
41.- RBQ: Recidi a BQ (1.- Si (CASOS), 2.- No (CONTROLES), 3.- Pe sis encia PSA (PSA
> 0,2 p ime posope a o io as PRL))
42.- TRBQ: Tiempo has a RBQ (meses desde PRL) (Bajo iesgo (18 meses), Al o iesgo (< 18
meses))
43.- T1MTX: Tiempo has a 1ª me ás asis (meses)
44.- FECHAFIN: Fecha úl ima e isión.
45.- FALLEC: Fallecimien o (1.- Si, 2.- No)
46.- TSUPERV: Tiempo de supe i encia desde RBQ si Fallecimien o (meses)
47.- TSEGUI: Tiempo de seguimien o desde PRL (meses)
48.- PSAFIN: Úl imo PSA en seguimien o
49.- CAPRA-S: Valo ango 0-13 (Bajo iesgo (0-2), Medio (2-5), Al o iesgo (> 5))
MARCADORES
50.- RA-NUCLEAR: Recep o and ogénico nuclea epi elial. (0.- Nega i o (< 90% exp esión),
1.- Posi i o (90% sob eexp esión))
51.- RA-ESTROMA: Recep o and ogénico nuclea es omal. (0.- Nega i o (< 30%
exp esión), 1.- Posi i o (30% sob eexp esión))
52.- PTEN: Pé dida de exp esión (0.- Posi i o (P esencia / No pé dida), 1.- Pé dida pa cial o
comple a)
53.- ERG: Ausencia (0.- Nega i o (> 0,7), 1.- Posi i o (0-0,7))
54.- Ki67: P esencia (0.- Bajo (0-0,005), 1.- In e medio-al o (0,06 sob eexp esión))
37
55.- SPINK1: P esencia (0.- Nega i o (0-0,005), 1.- Posi i o (> 0,05 sob eexp esión))
56.- C-MYC: P esencia (0.- Nega i o (0-0,2), 1.- Posi i o (> 0,2 sob eexp esión))
57.- IMC (kg/m2)
58.- ASA: G ado ASA (I-IV)
59.- GR: G upo de iesgo: GRUPO TNM GLEASON PSA (BAJO (0) cT1-cT2a <7 < o = 10,
MEDIO (1) cT2b 7 >10-20, ALTO (2) cT2c o > >7 >20)
60.- PNV: P ese ación neu o ascula (1.- Si, 2.- No)
61.- TH: Tiempo de hospi alización (días)
62.- PGG: Po cen aje de ganglios a ec ados (%)
63.- NGG: Núme o de ganglios a ec ados (Nº)
6.2. Tabla use s
En es a abla se egis an los usua ios que pueden accede a la aplicación. Se di e encian
dos ipos de usua ios:
● Adminis ado : iene odas las uncionalidades de un usua io co ien e y a mayo es
puede acep a o denega pe iciones de egis o de usua ios.
● Usua io co ien e: iene acceso a odas las uncionalidades de la aplicación excep o a
las pe iciones de egis o de usua ios.
A con inuación, se desc iben las a iables de es a abla:
● id: iden i icado de cada usua io
● name: nomb e de usua io
● su name_1: p ime apellido del usua io
● su name_2: segundo apellido del usua io
● email: email asociado a la cuen a de usua io
● passwo d: con aseña asociada a la cuen a de usua io
● ype: ipo de usua io, puede se use o admin.
● accep ed: e alúa si el usua io ha sido acep ado po el adminis ado .
44
Figu a 15. Es ado de en enamien o

45
CAPÍTULO 8. IMPLEMENTACIÓN
En es e capí ulo se desc ibe la implemen ación ealizada en la aplicación web. Pa a ello
se p esen a á la uncionalidad po módulos uncionales.
8.1. MÓDULO USUARIO
8.1.1. Regis o
En es e apa ado, un po encial nue o usua io in oduce sus da os ellenando un
o mula io, y pos e io men e es añadido a la base de da os como un usua io “no egis ado”.
La solici ud de egis o se mues a en la igu a 16. La acep ación de es e nue o usua io se
desc ibe más adelan e.
Figu a 16. Página de egis o
46
En el caso de que el o mula io no se ellene de mane a co ec a, se mues a un mensaje
de e o ( igu a 17), indicando los allos come idos po el usua io.
Figu a 17. Mensajes de e o en la página de egis o
Si el o mula io se ellena co ec amen e, se edi ige a la siguien e página, indicando
que la solici ud de egis o ue un éxi o, como indica la igu a 18.
47
Figu a 18. Éxi o en la solici ud de egis o
La c eación de un nue o usua io se hace a a és de la pe ición POST / egis e que
apa ece en las igu as 19 y 20.
Figu a 19. P ocesamien o de la solici ud de egis o en pos Regis e .php
48
Figu a 20. Inse ción de po encial nue o usua io a la base de da os en g_se e .py
8.1.2. Solici udes de egis o
Es e apa ado es exclusi o de los adminis ado es. En él se pod án acep a o echaza
las pe iciones de egis o de un po encial nue o usua io. Las solici udes se mues an o denadas
po an igüedad, apa eciendo p ime o las solici udes más an iguas ( igu a 21).
Figu a 21. Solici udes de egis o
49
La abla con las solici udes de egis o es á paginada, y se mues an, como máximo,
cinco pe iciones. El adminis ado pod á pasa página a a és de los bo ones habili ados pa a
ello.
Las solici udes de egis o se ob ienen a a és de una pe ición a GET / egis e _pe i ions
( igu a 22), y la espues a ( igu a 23) de dicha pe ición se mues a al usua io a a és de una
abla ( igu a 21).
Figu a 22. Pe ición al backend de las solici udes de egis o desde el on end

50
Figu a 23. Pe ición a las solici udes de egis o del on end
Un adminis ado puede acep a o echaza solici udes pulsando un bo ón ( igu a 24),
y cuando se ealiza una de es as acciones, se no i ica al solici an e a a és del co eo
elec ónico p opo cionado sob e la acep ación o el echazo de la solici ud ( igu a 26).
51
Figu a 24. Modal de acep ación de solici ud de egis o
Es a uncionalidad, an o pa a acep a como pa a echaza , se mues a en la igu a 25.
Figu a 25. Acep ación de la solici ud de egis o. Se no i ica al solici an e sob e su
acep ación a a és del co eo elec ónico p opo cionado
Pa a pode en ia la no i icación de acep ación de la solici ud de egis o a a és del
co eo elec ónico, se ha u ilizado PHPMaile [21], una ex ensión de PHP que se puede ins ala
a a és de Compose [22].
52
Figu a 26. Co eo con acep ación de la solici ud de egis o
En cuan o a la implemen ación del mecanismo de paginación, que además apa ecen en
o as pa es de es a aplicación, se han u ilizado la URL y a iables de sesión, cuya
implemen ación se mues a en la igu a 27 y 28.
Figu a 27. Va iables u ilizadas pa a la paginación
53
Figu a 28. Implemen ación de los bo ones y del mecanismo de paginación
8.1.3. Inicio de sesión (Login)
Una ez acep ada la solici ud de egis o, el usua io puede loguea se pa a pode accede
a la aplicación ( igu a 29). Hay que des aca que cada ez que se hace login, el backend
de uel e al usua io un oken JWT, que se i á pa a iden i ica se cada ez que haga pe iciones
al backend. De es e modo, se es ingen las pe iciones únicamen e a usua ios egis ados y
acep ados.
60
Figu a 38. Pe ición al backend median e un id de pacien e
Po o a pa e, la isualización de da os de los pacien es se ha implemen ado con un
mé odo GET al y como se mues a en la igu a 39.

61
Figu a 39. Pe ición al backend de odos los pacien es
La llamada a es os mé odos del backend se p oduce desde un iche o php. En dicho
iche o ealiza una llamada a una unción dis in a del backend dependiendo de si el usua io ha
il ado po el id del pacien e o no. La lógica desc i a puede ap ecia se en la igu a 40.
Figu a 40. Pe ición de pacien es desde el on end
62
Si se obse a la penúl ima línea de la igu a 40, se puede ap ecia un equi e_once de
un iche o llamado “ iewTable.php”. En dicho iche o se gene a la abla con los da os de los
pacien es, y se ha incluido en una ca pe a “common” po que ambién es usada po el módulo
de consul as.
En la igu a 41 se puede ap ecia un agmen o de código ex aído de “ iewTable.php”,
cuya implemen ación de ine que si no exis en pacien es en la base de da os o se ealiza una
búsqueda de un id de pacien e inexis en e, la aplicación de ol e á un mensaje de a iso al
usua io.
Figu a 41. Código de la abla de pacien es
8.2.2. Añadi pacien e
Median e es a uncionalidad, el usua io puede añadi los da os de un pacien e a a és
de un o mula io. En dicho o mula io se ienen en cuen a los ipos de las a iables, po lo que
sal a á un e o si el usua io in en a in oduci un ipo no álido. A su ez, es á pe mi ido deja
campos en blanco, eso es á con emplado como una casuís ica álida.
En la igu a 42 se mues a una po ción de los da os que pueden se ellenados po el
usua io de un o al de 63 campos.
63
Figu a 42. Añadi pacien e
Una ez el usua io haya ellenado los campos que desea, debe á pulsa el bo ón de
añadi mos ado en la pa e in e io de la is a.
Pos e io men e, el pacien e nue o se á añadido a la base de da os y el usua io se á
edi igido a la página p incipal del módulo pacien es donde pod á obse a los da os de dicho
pacien e en la abla de isualización de da os.
La implemen ación de es a uncionalidad se ha comple ado median e un mé odo POST,
al y como se desc ibe en la igu a 43.
Figu a x. Vis a añadi pacien e 2
64
Figu a 43. Pe ición de añadi pacien e
En dicha igu a podemos obse a una llamada a la unción newPa ien sDF, cuyo
compo amien o se de ine en la limpieza de da os más adelan e.
8.2.3. Ve es adís icas
En es e apa ado el usua io puede isualiza es adís icas cons uidas con la mues a o al
de los pacien es que se encuen an en la base de da os. Todas las g á icas mues an in o mación
ace ca del núme o de pacien es con una ca ac e ís ica de e minada ( umado es, no umado es,
con obesidad, en un ango de edad de e minado, …).
Las dis in as g á icas que se pueden encon a en es a pes aña se mues an en la igu a
44.
65

66
Figu a 44. Es adís icas de los pacien es
A con inuación, se desc iben dos agmen os de código incluidos en la implemen ación
de las g á icas an e io es. Dichos agmen os pueden ap ecia se en las igu as 45 y 46.
En la igu a 45 se obse a una pe ición GET al backend, donde se ecibi án los da os
que pos e io men e se án mos ados en la g á ica median e llamadas a la unción loadDa a,
ap eciable en la igu a 46.
67
Figu a 45. Pe ición pa a las es adís icas desde el on end
Figu a 46. Función pa a ca ga las es adís icas
68
8.2.4. Expo a pacien es
G acias a es a uncionalidad, el usua io puede expo a odos los pacien es disponibles
en la base de da os, con sus espec i os campos y alo es, a un documen o Excel ( igu a 47).
Figu a 47. Expo a da os pacien es
T as ealiza una pe ición GET a /da abase ( igu a 48), el se ido de ol e á un a chi o
JSON ( igu a 49). A con inuación, el on end con ie e dicho a chi o en un iche o Excel pa a
p epa a la desca ga de los da os.
Figu a 48. Pe ición al se ido
69
Figu a 49. Código del se ido
8.2.5. Impo a pacien es
Es a is a pe mi e al usua io impo a pacien es de o ma masi a desde un iche o Excel
que con enga alguna de las columnas de la base de da os. El Excel en cues ión debe comenza
con el nomb e de las columnas en la p ime a ila, y la ipología de los da os den o de cada
campo debe de se co ec a, si es o no ocu e, se a isa á al usua io del e o ( igu a 51). A
con inuación, se p esen a la is a p incipal que con iene es a uncionalidad ( igu a 50).
76
Figu a 61. Inicio de alles de consul a
Al exclui los campos no deseados, se pod á además selecciona un swi ch adicional en
el que, si se ac i a, se gene a án unos da os más ex ensos e in e ac i os. Es a úl ima opción
aumen a á el iempo de espe a pa a la gene ación del análisis.
Ac o seguido de en ega el o mula io, se ealiza una pe ición GET a /ge De ails ( igu a
62), donde g acias al uso de los hilos en el backend, se igno a el posible bloqueo al usua io de
las demás uncionalidades de la aplicación mien as se gene a el análisis solici ado. Es e hilo
c ea á un a chi o empo al llamado “de alles[id público del usua io].h ml” g acias a la lib e ía
pandasP o iling.

77
Figu a 62. Código del se ido de la u a /ge De ails)
Al e mina de gene a los da os, se le mos a án al usua io leyendo el a chi o o iginado
haciendo una pe ición GET sin oken de usua io a /ge De ailsFile ( igu a 63), pa a, de nue o,
no bloquea la página al usua io en cues ión mien as se ealiza la solici ud.
Figu a 63. Código del se ido de la u a /ge De ailsFile
78
8.3.5. Expo a consul a
G acias a es a uncionalidad, el usua io puede expo a los esul ados de la consul a
ejecu ada, a un documen o Excel ( igu a 64).
Figu a 64. Expo a da os
El código implemen ado pa a es a uncionalidad es el mismo que el u ilizado en el
módulo de pacien es ( igu as 48 y 49).
79
CAPÍTULO 9. MÓDULO PREDICCIONES
En es e capí ulo se desc ibe el es udio y la implemen ación del módulo de p edicciones.
9.1. Limpieza de los da os
A con inuación, se explica á el p ocedimien o que se siguió pa a ob ene la mejo
in eg idad de los da os.
1. Pa a comenza , con la ayuda de la lib e ía Pandas de Py hon, se hizo de o ma cómoda
la lec u a an o de la base de da os de phpmyadmin, como del Excel p opo cionado po
el usua io.
2. T as lee ambas ablas, se ans o man los nomb es de las ablas a mayúsculas y los
espacios en blanco po guiones. Es o lo conseguimos u ilizando una unción map
( unción que aplica un cambio en odas y cada una de las columnas del Da aF ame en
cues ión) de las columnas con enidas en el Excel. De es a o ma se eliminan
con usiones a la ho a de impo a un Excel que no enga exac amen e el mismo nomb e
de columnas.
3. Después se ealiza la in e sección de campos en e la base de da os y el Excel
inco po ado, pa a así comp oba si hay columnas coinciden es. En caso con a io, se
ob end ía un e o que pos e io men e se ía mos ado al usua io.
4. Al se el iden i icado de pacien e un da o que se debe ocul a se elimina del Excel si
es que exis e. En la base de da os se ob end á un nue o iden i icado pa a cada pacien e
con una a iable inc emen al.
5. Pos e io men e, se c eó un a chi o JSON que con iene las 63 a iables iniciales como
cla es y cada una de ellas, además de su desc ipción, su ipo de da o (in , loa , …), su
ango posible de alo es y el campo ‘ eemplaza ’, explicado más adelan e. En la igu a
65 podemos obse a un ejemplo de upla cla e- alo con enido en el JSON desc i o.
80
Figu a 65. Ejemplo de en ada del JSON de a iables
6. Median e es e JSON, se puede comp oba de o ma sencilla si cada uno de los campos
con enidos en el Excel son co ec os. Si se diese el caso con a io exis i ían dos posibles
opciones: que el ipado de da os no sea el co ec o, o que el da o no es é con enido en
su ango posible de alo es. Si ocu iese lo p ime o, se mos a ía un e o al usua io
con odas y cada una de las columnas que no hayan cumplido es a condición, haciéndole
e al usua io que hay alo es en el Excel in oducido que ienen ipos in álidos. Po
o o lado, si el da o no es á con enido en su posible ango, simplemen e se elimina ía
dicho pacien e po iesgo de con aminación de pacien es no deseados en la base de
da os.
7. Po úl imo, se conca ena on las ablas: la p oducida después de la limpieza del Excel, y
la de la base de da os. Al ene iesgo de ob ene pacien es duplicados (no po su
iden i icado , si no po odos y cada uno de los alo es iguales), an es de impo a los
pacien es nue os, se eliminan odos aquellos que cumplan que cada uno de sus campos
son iguales al de o o pacien e, es deci , son en adas duplicadas en la base de da os y
es o sesga ía a la IA.
Todos es os pasos se ealizan pa a pode abs ae de la o ma más segu a al usua io, y
así consegui minimiza an o de iesgos de con aminación de la base de da os como de posibles
e o es que puedan su gi al in en a inse a da os no álidos en la base de da os desde el
backend, lo que o igina ía la de ención absolu a del se ido . Además, la aplicación in o ma al
usua io de las posibles columnas inco ec as que es én con enidas en el Excel que se es á
in en ando impo a , así como de los pacien es que se han conseguido in oduci en la base de
da os.
De los 269 pacien es que había inicialmen e en la base de da os, as la limpieza desc i a
an e io men e se han conse ado 204 pacien es comple amen e álidos.
Po úl imo, el campo “ eemplaza ” del a chi o JSON se ha u ilizado pa a pode mos a
al usua io los da os con su debida aducción, ya que casi odos ellos es án codi icados con un
81
código numé ico. Un ejemplo es el campo “ETNIA”, el cual iene dado po da os numé icos
del 1 al 4, siendo el 1 “caucásico”, y el 4 “asiá ico”. El obje i o de es o es que el usua io pueda
ap ecia el signi icado eal del alo de la a iable y no el código numé ico asociado a dicho
alo .
Cabe des aca que odo es e p ocedimien o se epi e siemp e que se in en an inse a
pacien es nue os, dando como esul ado una base de da os lo más ín eg a posible.
Las siguien es imágenes (66, 67) mues an el código u ilizado pa a implemen a es a
uncionalidad.
Figu a 66. Función de limpieza de da os 1

82
Figu a 67. Función de limpieza de da os 2
9.2. Modelos de p edicción
T as ealiza la limpieza de da os inicial en el apa ado an e io , se ealiza on los
en enamien os necesa ios pa a pode gene a los dis in os modelos de p edicción, y así,
p edeci con los algo i mos que se mencionan más adelan e.
La idea es pode p edeci si una pe sona padece á de ecidi a bioquímica (RBQ) as
se ope ado de cánce p os á ico, a pa i de unos da os. La ecidi a bioquímica consis e en la
de ección de aumen o de los alo es de PSA (ma cado umo al p os á ico) as su
nega i ización una ez ealizada la p os a ec omía adical como a amien o oncológico en un
pacien e. El en enamien o de la aplicación y, po an o, las p edicciones, se ealizan en base a
es e conjun o de da os iniciales. Cualquie da o que se añada a la aplicación, no supone un
cambio en la decisión omada al p edeci . Es os nue os da os se u ilizan p incipalmen e pa a
los módulos Pacien es y Consul as, es deci , la ges ión y el es udio de pacien es.
Pa a ello, se ha u ilizado un no ebook
1
(adjun os con es a memo ia) con la limpieza de
da os pa a ealiza el análisis de los da os y las dis in as p uebas; pa a así, pos e io men e,
copia y pega el código necesa io del no ebook en el código que con iene el backend de la
aplicación.
1
Es muy p obable que las igu as mos adas en es a memo ia no se co espondan con el con enido del no ebook,
debido a que és e pod ía habe sido modi icado después de gene a es e documen o.
83
Pa a ealiza el análisis de los da os se ha u ilizado la lib e ía Pandas, y pa a gene a los
modelos y ealiza las p edicciones se ha u ilizado sciki -lea n, una lib e ía de Machine
Lea ning muy sencilla de u iliza .
La pa e de la limpieza, p epa ación y selección de los da os pa a los en enamien os se
ha ealizado de mane a manual, ya que las au oma izaciones de es os p ocesos se pueden
ealiza has a cie o pun o. Ha sido necesa io ealiza unas e lexiones y unas alo aciones más
subje i as pa a p epa a de mane a adecuada los da os pa a gene a los modelos. Es muy di ícil
que una máquina sea capaz de de e mina que, po ejemplo, el FALLECIMIENTO (columna
de nues a base de da os) sea un da o ele an e pa a p edeci casos ecidi a bioquímica, ya que
el allecimien o no es decisi o pa a p edeci es os casos.
9.2.1. Desc ipción inicial de los da os
En p ime luga , se isualiza on los da os pa a ene una idea inicial de cómo es el
da ase . Haciendo d .shape ( igu a 68) se ob iene el núme o de ilas y de columnas del da ase
as la p ime a limpieza p e ia.
Figu a 68. Fo ma del da ase as la p ime a limpieza
Se ha obse ado que el da ase iene 204 ilas (es deci , 204 casos de seguimien o de
cánce de p ós a a) y 60 columnas (o a iables). Viendo es o, se puede ap ecia la g an escasez
de da os pa a ealiza el en enamien o. Al se casos muy ex años, no exis e ninguna o ma de
ob ene más da os.
También se ha u ilizado d .desc ibe(include="all",da e ime_is_nume ic=T ue) pa a
e un esumen es adís ico ( igu a 69).
84
Figu a 69. Resumen es adís ico
Con es e esumen es adís ico se puede ap ecia que, po ejemplo, la edad media de los
pacien es es de unos 62 años, que el más jo en iene 46 años, y que el más mayo iene 78 años.
También apa ecen las es adís icas de o as columnas como PSAPRE, PSALT, e c. Explica e
in e p e a es os ecnicismos médicos se alejan del ámbi o de es e T abajo Final de G ado.
9.2.2. Limpieza de columnas con ilas acías
Algo que se ha enido muy en cuen a (ya que es necesa io pa a pode ealiza los
en enamien os), es no ene ninguna columna con da os nulos. Pa a de ec a es os nulos se ha
u ilizado d .in o() ( igu a 70).
Figu a 70. Visualización pa a localiza columnas acías
Como se puede obse a en las cap u as an e io es, hay algunas columnas con en adas
nulas. Algunas ni siquie a llegan a las 100 en adas no nulas, po lo que ue necesa io hace
más limpieza pa a no ene ninguna columna con da os acíos, y que sciki -lea n pueda hace
85
sus en enamien os co ec amen e. Pa a hace es a limpieza, se ellena on aquellos nulos con
la mediana de los da os de cada columna.
An es de hace el ellenado, se elimina on aquellas columnas con más del 50% de ilas
acías, ya que ellena con la mediana una columna p ác icamen e acía se ía alsea demasiado
el da ase , haciendo que las p edicciones no sean ce e as y e lejen una ealidad que no es. A
con inuación, en la igu a 71, se mues a la unción pa a elimina las columnas casi acías.
Figu a 71. Función pa a elimina columnas con alo es al an es mayo es o iguales al 50%
Una ez eliminadas las columnas casi acías, se ellena on las demás columnas con la
mediana a a és de la unción desc i a en la igu a 72:
Figu a 72. Función pa a ellena columnas con ilas acías con la mediana
Una ez ellenadas las columnas se puede con i ma que, e ec i amen e, no hay
ninguna columna con ilas acías ( igu a 73).
92
e lexiona en si u iliza más da os de en enamien o (un 80/20, po ejemplo), o más da os de
es (un 60/40), pa a compensa de alguna o ma la escasez de da os y el desbalance de las
dis in as ca ego ías.
Si se u ilizan más da os dedicados al en enamien o, con un 80/20 o incluso un 90/10,
es muy p obable que la calidad de los modelos aumen e. El p oblema de es o es que no hab ía
su icien es da os pa a es ea , y se pe de ía la capacidad de e alua co ec amen e la calidad de
los modelos (sob e odo, pa a e alua las p edicciones de los casos de “SI”, que son muy
escasos).
Po o a pa e, si se u ilizan más da os dedicados a los es , con un 60/40, se ob end ía
una mejo capacidad de alo a la calidad de los modelos (y más casos de “SI” pa a es ea ), a
cambio de una peo calidad de los modelos.
En un caso eal donde se necesi e p edeci la ecidi a bioquímica, la calidad de los
modelos de p edicción es muy impo an e, po lo que en ese caso es muy p obable que se acabe
u ilizando un 80% del da ase pa a en ena y el o o 20% es an e pa a e alua .
Sin emba go, de ca a a es e TFG se ha op ado po ene más da os de es , u ilizando un
60% pa a en ena y un 40% pa a es ea ( igu a 82), ya que de es e modo hab á más casos de
“SI” pa a pode mos a po pan alla y ob ene mejo es alo es de accu acy, p ecision y ecall.
De es a o ma se puede compensa la escasez de “SI” y mos a algo más equilib ado en la
aplicación.
Figu a 82. Gene ación de da os de en enamien o y de es .
De es a o ma, hay 122 en adas dedicadas al en enamien o y 82 en adas pa a es ea .
9.2.4.2. Random Fo es
Los Random Fo es s (Bosques Alea o ios en cas ellano) ilus ados en la igu a 83, son
una combinación de a ios Á boles de Decisión, a los cuales, alea o iamen e, se les pasa un
subconjun o de los alo es de un conjun o de da os. Es e mé odo de ap endizaje en a den o
del g upo de los Ensamble Lea ning Me hods (o Mé odos de Ap endizaje Combinado), ya que
u iliza a ios es imado es pa a gene a los modelos de p edicción.

93
Figu a 83. Visualización g á ica de Random Fo es s (31)
En es e caso, no se ha ealizado un escalado pa a que los da os del da ase engan un
ango simila , ya que es os mé odos no lo equie en. Aplica es as écnicas en Á boles
Alea o ios no apo a ían ningún ipo de bene icio.
En sciki -lea n, un Random Fo es Classi ie se puede c ea con
RandomFo es Classi ie (), y se han u ilizado los pa áme os class_weigh , boo s ap,
n_es ima o s y max_samples. Las conclusiones sob e cada pa áme o se desc ibi án a
con inuación:
● class_weigh . Indica los pesos de cada clase de la a iable a p edeci (en es e caso,
RBQ). Po de ec o odas las clases ienen peso 1. Se ha u ilizado balanced, de al o ma
que el peso de una clase es in e samen e p opo cional a la ecuencia de dicha clase.
De es a mane a, se consigue compensa el desbalance del “SI” sob e el “NO”
p edominan e en es e modelo.
● boo s ap. Es ablecido a ue. Es e pa áme o indica al clasi icado que iene que u iliza
subconjun os del da ase . El amaño de cada subconjun o es indicado po max_samples.
● max_samples. Indica el núme o de en adas máximo de cada Á bol de Decisión del
Random Fo es . Pa a selecciona es e alo , se ha i e ado sob e un ango en e 100 y
122 ( eniendo el 60% de da os pa a en ena enemos, como máximo, 122 en adas). El
94
ango es ablecido pod ía habe sido mayo . Sin emba go, u iliza an pocas en adas
pa a cada á bol pod ía pe judica el en enamien o de cada á bol.
Se ha ejecu ado la unción de la igu a 84 pa a encon a es e alo .
Figu a 84. Función pa a encon a el mejo alo de max_samples
Los esul ados de la unción se mues an en la igu a 85.
Figu a 85. Resul ados de ge _bes _max_samples
Se puede obse a que cualquie alo o ece un accu acy de ap oximadamen e 0,92.
Cualquie alo de max_sample puede se i . Se ha u ilizado, en es e caso, u iliza 100 alo es
pa a cada á bol.
● n_es ima o s. Es e pa áme o indica el núme o de á boles de decisión que con end á el
bosque alea o io. Pa a selecciona es e alo , se han ealizado en enamien os en a ias
95
i e aciones y se ha dibujado un g á ico con los esul ados. El núme o de es imado es
mínimos es 2, ya que un Bosque debe de ene más de un Á bol. En cuan o al núme o
máximo, la eo ía ecomienda u iliza la mayo can idad posible. Usa muchos
es imado es ha á que los en enamien os a den más. En es e caso se ha es ablecido el
máximo a 100. La búsqueda de es e alo se ha ealizado u ilizando la unción desc i a
en la igu a 86.
Figu a 86. Función pa a encon a el mejo alo de n_es ima o s
Los esul ados se mues an en la igu a 87.
Figu a 87. Accu acy pa a cada alo de n_es ima o s
Se puede obse a que la p ecisión es ap oximadamen e 0,9 pa a cualquie alo
n_es ima o s, po lo que odos los alo es ac ua án de mane a simila . Exis en algunos picos;
sin emba go, eso no se á siemp e así en odas las ejecuciones de la unción mencionada
an e io men e.
Una ez seleccionados los pa áme os, se p ocede a en ena y e alua el modelo con
los pa áme os seleccionados ( igu a 88). En la celda siguien e se mues a el en enamien o y
la gene ación de los esul ados de la e aluación (que no siemp e se án iguales).
96
Figu a 88. Celda con el en enamien o y gene ación de los esul ados del en enamien o.
Los esul ados del en enamien o se desc iben en el in o me y en la ma iz de con usión
que se mues an en la igu a 89.
Figu a 89. Resul ados del en enamien o
Se ob iene un sco e de 0,96. Es e esul ado puede pa ece bueno. Sin emba go, hay que
ene en cuen a o os alo es, como p ecision ( elación en e los posi i os p edichos y odos
los e dade os posi i os) y ecall ( elación en e la can idad de casos p edichos como
e dade os posi i os en e odos los e dade os posi i os), o ecidos ambién en el in o me de
clasi icación de la igu a 89.
97
También se ha u ilizado una cu a ROC y la AUC ( igu a 90) pa a e la elación en e
la asa de e dade os posi i os y la asa de alsos posi i os, mos ada en la igu a 90. Es os
esul ados de e minan cómo de bueno es un clasi icado .
Figu a 90. Celda pa a gene a la cu a ROC y la AUC
Figu a 91. Cu a ROC y AUC
Obse ando la g á ica an e io y el alo de AUC, se puede comp oba que el modelo
es capaz de dis ingui las dis in as clases, aunque se pod ía mejo a bas an e adqui iendo más
da os.
En el eje X se puede comp oba que la Tasa de Falsos Posi i os es siemp e 0, ya que el
da ase de es no ha clasi icado ningún “SÍ” de mane a inco ec a. Es o no es po que el
clasi icado dis ingue el “SÍ” de mane a pe ec a, si no que es o es debido a la escasez de los
casos de “SÍ” u ilizados en el es (mi a la ma iz de con usión de la Figu a 89). En el eje Y se
puede obse a un mayo mo imien o. La cu a iene poca al u a, indicando que hay pocos

98
e dade os posi i os (en la Figu a 89 se puede e que se los 4 casos de “SI”, sólo se acie a 1
caso).
Se puede comp oba que el modelo es capaz de p edeci co ec amen e la mayo ía de
los casos de “NO”, pe o el p edic o es muy malo p ediciendo los casos de “SI” (solo ha
ace ado 1 caso de 4). Cabe des aca que los casos de “SI” son muy escasos, po lo que se
necesi an más da os pa a ene un mejo p onós ico.
Con es e p ime es imado se ha p esenciado el p oblema que su ge al ene an pocos
da os y al ene una a iable a p edeci muy desbalanceada. Los modelos que se gene an es án
muy sesgados y e alua la e ec i idad de un p edic o es muy complicado.
Con es e da ase , los modelos que se gene an ienden a p edeci “NO” y en un caso eal,
es muy p obable que los p edic o es den a ios alsos nega i os. Es e enómeno se pod á
obse a ambién en los es imado es que se mencionan más adelan e.
9.2.4.3. k Nea es Neighbou s (kNN)
El algo i mo de k-Nea es Neighbou s es uno de los mé odos de clasi icación po
clus e ing más básicos del Machine Lea ning. Es e es un algo i mo de ap endizaje no
pa amé ico y basado en ins ancias.
● No es pa amé ico po que no hace suposiciones sob e la o ma de los da os. El
algo i mo no sabe si la dis ibución de los da os iene, po ejemplo, una
dis ibución no mal o de Fische .
● El ap endizaje es basado en ins ancias po que el algo i mo no ap ende de mane a
explíci a el modelo, si no que memo iza los da os ins anciados en el
en enamien o pa a pos e io men e hace las p edicciones.
Es e mé odo de ap endizaje clasi ica a una nue a ins ancia según la clase de sus k ecinos
más ce canos.
99
Figu a 92. Ejemplo de kNN (32)
En el ejemplo de la Figu a 92, se quie e clasi ica el cí culo e de. Si k=3, en onces és e
es clasi icado como un iángulo ojo. Sin emba go, si k=5, se clasi ica como un cuad ado azul.
Pa a ealiza el en enamien o, ha sido necesa io ealiza un escalado, ya que los
algo i mos basados en dis ancias como kNN se en muy a ec ados po el escalado de las
a iables. Pa a ealiza un en enamien o co ec o, es necesa io que las columnas engan una
escala simila . Pa a ello, se ha u ilizado el escalado de Min Max (o no malización), que educe
la escala de los da os a un ango que po lo gene al suele se en e 0 y 1.
Los pa áme os u ilizados pa a gene a es e modelo han sido n_neighbo s y p. A
con inuación se desc ibi án las e lexiones ealizadas pa a elegi los alo es de es os
pa áme os.
● n_neighbo s. Es e pa áme o indica el alo de k, es deci , el núme o de ecinos más
p óximos que se u iliza án pa a decidi la ca ego ía de la nue a ins ancia.
● p. Es e pa áme o indica el ipo de dis ancia que se u iliza á pa a de e mina la ce canía
en e las dis in as ins ancias. Si p=1, se u iliza á la dis ancia Manha an. Si p=2, se
u iliza á la dis ancia euclídea.
Pa a selecciona los dos pa áme os an e io es, se han u ilizado dos bucles
que i e an sob e los po enciales alo es de k ( igu a 93, 94 y 95), uno u ilizando
la dis ancia Manha an (p=1) y o o u ilizando la dis ancia euclídea (p=2), pa a
ob ene g á icamen e los esul ados de accu acy pa a cada alo de k,
100
dependiendo de la dis ancia u ilizada. De es e modo, se puede decidi de mane a
más sencilla el mejo alo de n_neighbo s y de p.
Figu a 93. Función pa a ob ene los accu acy pa a cada alo de n_neighbo s.
Figu a 94. Resul ados de accu acy pa a cada alo de k u ilizando dis ancia Manha an
(p=1)
101
Figu a 95. Resul ados de accu acy pa a cada alo de k u ilizando dis ancia euclídea (p=2)
T as a ias ejecuciones, se ha comp obado que se ob ienen accu acy muy
simila es, aunque es o a ía en cada ejecución.
Hay que ene mucho cuidado a la ho a de elegi el alo de k, sob e odo
cuando se ienen da os muy desbalanceados. Usa un k muy bajo ha ía que se
p oduzca o e i ing en el en enamien o, y usa un k muy al o puede disminui ,
o incluso hace imposible que el esul ado de la p edicción sea el de la clase
mino i a ia.
Figu a 96. Ejemplo de clus e ing u ilizando k=3 y k=20
108
Pa a es e caso, se han u ilizado pa a la o ación los modelos ya en enados
an e io men e. Es necesa io ene en cuen a que los modelos que se han u ilizado es án
sesgados, po lo que la o ación es a á ambién sesgada, y ende á a clasi ica a las nue as
ins ancias como “NO” ( igu as 106, 107 y 108).
Figu a 106. Celda pa a gene a el modelo de Vo ing Classi ie
Figu a 107. Resul ados de Vo ing Classi ie

109
Figu a 108. Cu a ROC y AUC de Vo ing Classi ie
9.3. P edicciones
Una ez ealizada los es udios necesa ios pa a gene a los modelos de p edicción, se ha
p ocedido a implemen a el apa ado de p edicciones, donde un usua io puede ellena un
o mula io pa a que, al pulsa un bo ón, se de uel a el esul ado de la p edicción de la ecidi a
bioquímica.
En p ime luga , se ha copiado, pegado y adap ado el código u ilizado en el no ebook
en el backend de la aplicación. Pa a ello, se ha c eado un iche o p edic ions.py cuyo con enido
es exclusi amen e el código elacionado con la gene ación de los modelos de p edicción.
El en enamien o se ealiza a a és de la unción que apa ece en la igu a 109. Se puede
obse a que la unción ecibe un da a ame como pa áme o, y de uel e los modelos
gene ados jun o con un dicciona io con los sco es de cada modelo. Los de alles de las unciones
in e nas se explica án más adelan e.
110
Figu a 109. Función pa a gene a los modelos
El apa ado 1 se co esponde con la limpieza y selección de los da os. El apa ado 2 se co esponde con el en enamien o.
Viendo la igu a an e io se puede comp oba que se ealizan una se ie de ope aciones
pa a ealiza los en enamien os. En el apa ado 1 se p oduce la limpieza y selección de los
da os median e la manipulación de un da a ame. Los mo i os y las decisiones omadas pa a
c ea es as unciones pa a limpia los da os se han discu ido en el apa ado an e io .
● d op_columns(d ) ( igu a 110). Es a unción se enca ga de elimina las columnas que
no deben de se u ilizadas pa a ealiza el en enamien o.
Figu a 110. Función pa a elimina columnas
● eplace_IPERIN2_NC(d ) ( igu a 111). Es a unción se enca ga de easigna los casos
desconocidos de IPERIN2 a “SI” o “NO” de mane a alea o ia.
111
Figu a 111. Función pa a easigna los casos desconocidos de IPERIN2
● eplace_RBQ_pe sis encia(d ) ( igu a 112). Es a unción se enca ga de easigna los
casos de pe sis encia de RBQ a “SI” o “NO”, de mane a alea o ia.
Figu a 112. Función pa a easigna los casos de pe sis encia de RBQ
● d _ca ego ical_ o_encoded(d ) ( igu a 113). Es a unción se enca ga de ans o ma los
alo es ca egó icos (si exis en) a alo es numé icos, pa a que la gene ación de los
modelos pueda se co ec a.
Figu a 113. Función pa a ans o ma da os ca egó icos a da os numé icos
● na_ o_median(d ) ( igu a 114) Es a unción ellena las ilas acías de cada columna con
la mediana de los da os de su misma columna.
112
Figu a 114. Función ellena campos acíos con la mediana
En el apa ado 2 de la igu a con la unción ainModels(d ) se encuen an las unciones
u ilizadas pa a gene a los modelos de p edicción. Todas es as unciones son muy simila es
en e sí, ya que odas ealizan un en enamien o con un algo i mo dado, y pos e io men e
de uel en un modelo con sus espec i os sco es. Las implemen aciones de es as unciones se
mues an en las igu as siguien es:
● Random Fo es ( igu a 115)
Figu a 115. En enamien o con Random Fo es
● Reg esión Logís ica ( igu a 116)
113
Figu a 116. En enamien o con Reg esión Logís ica
● k-Nea es Neighbou s ( igu a 117)
Figu a 117. En enamien o con kNN

114
● Vo ing Classi ie ( igu a 118)
Figu a 118. En enamien o con Vo ing Classsi ie
Todas las unciones mencionadas an e io men e se ejecu an cuando se ealiza la
p ime a pe ición al backend ( g_se e .py en la igu a 119); es deci , la gene ación de los
modelos se ealiza una única ez, y dichos modelos se gua dan en el backend, pa a así e i a
ealiza en enamien os (ope ación muy pesada) cada ez que se quie a ealiza una p edicción.
Figu a 119. Gene ación de modelos
En la igu a an e io se puede comp oba que se u iliza el deco ado
@app.be o e_ i s _ eques de Flask, que pe mi e ejecu a una unción an es de hace la p ime a
115
pe ición al backend. En es e caso, se ejecu a ainOnS a up(), que ejecu a las unciones
mencionadas an e io men e y almacena los modelos gene ados y los sco es en a iables
globales. De es e modo, se almacenan los es ados de los modelos, pa a que odos los usua ios
que lo necesi en puedan accede a los modelos pa a ealiza las p edicciones. Los es ados que
se almacenan apa ecen en la igu a 120, con sus espec i as inicializaciones:
Figu a 120. Es ados que se almacenan en el backend
● pipe_ c (Random Fo es Classi ie ). Almacena el modelo gene ado con Random
Fo es
● pipe_l c (Logis ic Reg ession Classi ie ). Almacena el modelo gene ado con Reg esión
Logís ica.
● pipe_knn (k-Nea es Neighbou s). Almacena el modelo gene ado con kNN.
● pipe_bes . Almacena el modelo gene ado con Vo ing Classi ie .
● sco es. Almacena el accu acy, p ecision y ecall de cada modelo
● las _ ain. Almacena la echa en la que se ealizó el en enamien o. De es e modo se
puede ene una idea de la no edad de los da os u ilizados.
Una ez gene ados los modelos de p edicción, se pueden ealiza las p edicciones a
a és de POST /p edic ( igu a 121), pasándole en el cue po de la pe ición un JSON con el
siguien e o ma o:
{
“ ea u es”: s ing,
“algo i hm”: s ing
}
El campo ea u es se co esponde con un s ing que con iene da os numé icos sepa ados
po coma. El backend se enca ga de ans o ma dicho s ing en una lis a de núme os. algo i hm
116
con iene el algo i mo a u iliza que, en es e caso, pueden se “ c”, “l c”, “knn” o “bes ”. El
mecanismo de es e endpoin se desc ibe en la igu a siguien e.
Figu a 121. Endpoin pa a ealiza las p edicciones
A a és de lo desc i o an e io men e, un usua io puede hace p edicciones a a és de
una se ie de da os de en ada. Pa a acili a su uso, se dispone del apa ado de “P edicciones”
en el on end de la aplicación de U oAnaly ics.
9.4. F on end del apa ado de P edicciones
A con inuación, se desc ibe la implemen ación del apa ado de “P edicciones”, cuyo
esul ado apa ece en las es igu as 122, 123 y 124:
117
Figu a 122. Desc ipción e impo ación de da os del apa ado “P edicciones”
Figu a 123. Fo mula io de da os de “P edicciones”
124
Figu a 133. Rellenado au omá ico de los alo es en el o mula io
Si la impo ación de los da os se ealiza con éxi o, se ellena el o mula io y apa ece un
mensaje de éxi o ( igu a 134).
Figu a 134. Fo mula io elleno con mensaje de éxi o
Si la impo ación no se ealiza co ec amen e, en onces apa ece un e o como el que
apa ece en la igu a 135.

125
Figu a 135. Impo ación de da os de p edicción allida
9.4.2. P edicción con los da os del o mula io
Una ez ellenado el o mula io, el usua io puede selecciona un algo i mo y
pos e io men e ealiza una p edicción con el algo i mo seleccionado ( igu a 136).
Figu a 136. Selección de algo i mos
Los esul ados que apa ecen cada ez que se cambia de algo i mo se ob ienen a a és
de pe iciones AJAX al backend con Ja asc ip a GET / aining/sco es ( igu a 137).
126
Figu a 137. Función que se ejecu a cuando se cambia de algo i mo
Cuando se selecciona el algo i mo, apa ece el bo ón de “P edeci ” jun o con los alo es
de accu acy, p ecision y ecall ( igu a 138).
Figu a 138. Resul ado del en enamien o y de la p edicción
127
La p edicción que puede ealiza un usua io ambién se ealiza a a és de una pe ición
AJAX con Ja asc ip a POST /p edic ( igu a 140). Dicha pe ición se ha implemen ado con la
unción de la igu a 139.
Figu a 139. Función ejecu ada cuando se pulsa el bo ón de “P edeci ”
Figu a 140. Función pa a pedi al backend el esul ado de la p edicción
128
CAPÍTULO 10. CONCLUSIONES Y TRABAJO
FUTURO
En es e capí ulo se desc ibe la e ospec i a del p oyec o, haciendo e la conclusión,
posibles mejo as u u as y el abajo indi idual ealizado po cada in eg an e del g upo
10.1. Conclusiones
Se ha implemen ado una he amien a web capaz de ges iona una can idad masi a de
da os, así como hace p edicciones de iesgo a pa i de es os, y capaz de ealiza las a eas
necesa ias pa a acili a la in es igación de los expe os en U o-oncología. En cuan o a
uncionalidades des acan la impo ación de un conjun o de pacien es, ges ionando posibles
e o es y limpiando au omá icamen e dichos da os; ejecución de consul as aplicando una
amplia a iedad de il os, ob eniendo es adís icas y ealizando expo aciones; gene ación de
p edicciones de ecidi a bioquímica que pueda ene un pacien e a pa i de unos da os.
Las p incipales en ajas que cub e es a aplicación son la comodidad y la cen alización
de dis in as uncionalidades en una sola aplicación, a a és de una in e az sencilla e in ui i a,
que acili a la ges ión e inco po ación de pacien es. Se puede baja el código de la aplicación a
a és del siguien e enlace:
h ps://gi hub.com/po chi23/TFG-U oAnaly ics
10.2. T abajo Fu u o
A con inuación, se lis an algunas líneas de abajo u u o pa a mejo a la aplicación:
● Adquisición de más da os. Se ha conseguido una can idad acep able de da os pa a
desa olla es e p oyec o. Sin emba go, la escasez de da os ha pe judicado en g an
mane a a los modelos de p edicción, dando poco ma gen pa a ealiza un es udio
adecuado y, como consecuencia, gene a unos modelos de p edicción no muy
buenos.
● P edicciones. Tal como se ha mencionado en el pun o an e io , la escasez de da os
ha pe judicado el es udio adecuado de los da os, p o ocando así que sea muy
129
di ícil que hace los ajus es necesa ios y selecciona los pa áme os adecuados
pa a cada modelo se hagan de mane a sa is ac o ia.
● G á icas. Se cuen a con una g an can idad de da os y se mues an los g á icos de
los da os más impo an es. Sin emba go, puede se in e esan e que las g á icas
sean más in e ac i as.
● Re ac o ización. Es e p oyec o ha sido desa ollado po cinco pe sonas, po lo que
coo dina se y pone se de acue do en cómo implemen a la aplicación ha sido más
compleja. Po al a de iempo ha sido muy complicado pone se con la
e ac o ización del código.
● No i icaciones. Puede se in e esan e pode no i ica a los usua ios de es a
aplicación ace ca de las posibles mejo as y ac ualizaciones que se puedan p oduci
en la aplicación.

130
CHAPTER 10. CONCLUSIONS AND FUTURE
WORK
This chap e desc ibes he e ospec i e o he p ojec , showing he conclusion, possible
u u e imp o emen s and he indi idual wo k ca ied ou by each membe o he g oup.
10.1. Conclusions
A web ool has been implemen ed, capable o managing a massi e amoun o da a, as
well as making isk p edic ions om his da a, and capable o pe o ming he necessa y asks
o acili a e he esea ch o expe s in U o-oncology. In e ms o unc ionali ies, he impo o
a se o pa ien s, managing possible e o s and au oma ically cleaning such da a; execu ion o
que ies by applying a wide a ie y o il e s, ob aining s a is ics and pe o ming expo s;
gene a ion o p edic ions o biochemical ecu ence ha a pa ien may ha e om ce ain da a
s and ou .
The main ad an ages co e ed by his applica ion a e he con enience and cen aliza ion
o di e en unc ionali ies in a single applica ion, h ough a simple and in ui i e in e ace,
which acili a es he managemen and inco po a ion o pa ien s. The applica ion code can be
downloaded h ough he ollowing link:
h ps://gi hub.com/po chi23/TFG-U oAnaly ics
10.2. Fu u e Wo k
Lis ed below a e some lines o u u e wo k o imp o e he applica ion:
● Acquisi ion o mo e da a. An accep able amoun o da a has been ob ained o
de elop his p ojec . Howe e , he sca ci y o da a has been e y de imen al o
he p edic ion models, gi ing li le ma gin o ca y ou an adequa e s udy and, as
a consequence, gene a ing no e y good p edic ion models.
● P edic ions. As men ioned in he p e ious poin , he sca ci y o da a has hinde ed
he p ope s udy o he da a, making i e y di icul o make he necessa y
adjus men s and selec he app op ia e pa ame e s o each model in a sa is ac o y
manne .
131
● G aphs. A la ge amoun o da a is a ailable and g aphs o he mos impo an da a
a e shown. Howe e , i may be in e es ing o make he g aphs mo e in e ac i e.
● Re ac o ing. Fi e people ha e de eloped his p ojec , so coo dina ing and
ag eeing on how o implemen he applica ion has been mo e complex. Due o
lack o ime i has been e y complica ed o e ac o he code.
● No i ica ions. I may be in e es ing o be able o no i y he use s o his applica ion
abou possible imp o emen s and upda es ha may occu in he applica ion.
132
CAPÍTULO 11. TRABAJO INDIVIDUAL
Richa d Junio Me cado Co ea
● Ap endizaje de los undamen os básicos del Machine Lea ning, u ilizando dis in os
ipos de ecu sos pa a ello. Se puso mucho hincapié en los modelos de Random Fo es ,
K-nea es neighbou s y Reg esión Logís ica.
● Pa icipación en la especi icación de equisi os y gene ación de diag amas de
ac i idades pa a las uncionalidades de impo ación y expo ación de da os a la
aplicación.
● Pa icipación en la decisión de las ecnologías a u iliza en la aplicación, en las que se
decidió u iliza PHP en el on end, Flask en el backend y MySQL como base de da os.
● C eación del eposi o io de Gi Hub pa a aloja el código del p oyec o, jun o con la
c eación de un eadme en Ma kdown pa a acili a la ins alación, ejecución y desa ollo
de la aplicación web.
● C eación del logo ipo de la aplicación web, u ilizando como e e encia la imagen de la
a a de Asclepio.
● Pa icipación en el es udio y análisis del conjun o de da os pa a su pos e io u ilización.
● Gene ación de los dis in os modelos de p edicción de la aplicación, haciendo los
es udios y p uebas necesa ias a a és de no ebooks de Jupy e con el conjun o de da os
p opo cionado.
● C eación de la in aes uc u a básica de la aplicación web.
● C eación de una clase con un mé odo que encapsula odo el código necesa io pa a hace
una pe ición HTTP al backend desde PHP, u ilizando cURL. De es e modo la solici ud
de pe iciones es más sencillo.
● Implemen ación de las uncionalidades básicas de ges ión de un usua io: Login,
Regis o, Solici udes de Regis o y Logou .
● Implemen ación del apa ado de “P edicciones” de la aplicación, en la que se
desa olla on las siguien es uncionalidades: ellena un o mula io con da os pa a
133
u iliza los en la p edicción, impo ación de da os, selección de algo i mos y ealización
de la p edicción.
● Con ibución en el apa ado de “Consul as”, co igiendo los e o es de paginación en la
isualización de las consul as.
● Con ibución en el apa ado de “Pacien es”, en el que se co igie on los e o es de
isualización de los da os de los pacien es.
● Esc i u a de la memo ia del p oyec o.
140
● Pa icipación en la implemen ación de unciones del backend pa a la gene ación de
de alles e e en es a un conjun o de da os a a és de la lib e ía Pandas P o iling
( unción del backend: ge De ails en la u a /ge De ails).
● Co ección de bugs en la aplicación, an o de on end como de backend.
● Esc i u a de la memo ia del p oyec o.

141
CAPÍTULO 12. ANEXO
12.1. Diag amas de ac i idad
En es e apa ado se especi ica án los diag amas de ac i idad co espondien es a los
casos de uso an e io men e mencionados.
C001-Inicia sesión
En la igu a 141 se mues a el diag ama e e en e al inicio de sesión del usua io en la aplicación.
Figu a 141. Diag ama de ac i idad Inicia sesión
C002-Ce a sesión
En la igu a 142 se mues a el diag ama e e en e al cie e de sesión del usua io.
142
Figu a 142. Diag ama de ac i idad Ce a sesión
C003-Regis o
En la igu a 143 se mues a el diag ama de cuando un nue o usua io se egis a en la aplicación,
indicando los da os necesa ios.
Figu a 143. Diag ama de ac i idad Regis o
C004-Ges iona pe iciones de egis o
El adminis ado comp ueba si el usua io que se ha egis ado es un médico del hospi al y
con i ma el egis o de dicho usua io. Es a acción se ep esen a en la igu a 144.
143
Figu a 144. Diag ama de ac i idad Ges iona pe iciones de egis o
C005-Modi ica da os de usua io
La igu a 145 mues a el diag ama dado cuando el usua io modi ica los da os pe sonales de su
cuen a.
144
Figu a 145. Diag ama de ac i idad Modi ica da os de usua io
C006-Elimina cuen a
El usua io elimina su cuen a pe diendo el acceso a la aplicación. Es a acción se desc ibe en el
diag ama de la igu a 146.
Figu a 146. Diag ama de ac i idad Elimina cuen a
145
C007-Realiza consul a
En la igu a 147 se mues a la acción del usua io ealizando una consul a de pacien es indicando
alguno o odos los a ibu os que deben cumpli se.
Figu a 147. Diag ama de ac i idad Realiza consul a
C008-Ve abla consul a
Se mues a al usua io los da os de la consul a que ealizó p e iamen e en o ma o abla. Es á
acción pa e de una an e io (C007-Realiza consul a), cuando la consul a en iada al sis ema
se ha p ocesado co ec amen e. En la igu a 148 se mues a es a acción.

146
Figu a 148. Diag ama de ac i idad Ve abla consul a
C009-Ve es adís icas consul a
Se mues a al usua io es adís icas en g á icos de la consul a que ealizó p e iamen e. Es á
acción pa e de una an e io (C007-Realiza consul a), cuando la consul a en iada al sis ema
se ha p ocesado co ec amen e. A con inuación, se puede obse a en la igu a 149 la acción
desc i a.
Figu a 149. Diag ama de ac i idad Ve es adís icas consul a
147
C010-Ve de alles consul a
Se mues a al usua io de alles de la consul a que ealizó p e iamen e. Es á acción pa e de una
an e io (C007-Realiza consul a), cuando la consul a en iada al sis ema se ha p ocesado
co ec amen e. Seguidamen e, en la igu a 150 se desc ibe la acción g á icamen e.
Figu a 150. Diag ama de ac i idad Ve de alles consul a
C011-Expo a consul a
El usua io expo a los da os de la consul a que ealizó p e iamen e. Es á acción pa e de una
an e io (C007-Realiza consul a), cuando la consul a en iada al sis ema se ha p ocesado
co ec amen e. Es a acción se desc ibe en el diag ama de la igu a 151.
148
Figu a 151. Diag ama de ac i idad Expo a consul a
C012-Realiza p edicción
Se ealiza un es udio sob e un conjun o de da os de pacien es y se hace una p edicción sob e
un pacien e en conc e o. El conjun o de da os que se u ilizan pa a p edeci no es la base de
da os comple a, sino un conjun o de da os iniciales. La igu a 152 e leja dicha acción.
149
Figu a 152. Diag ama de ac i idad Realiza p edicción
C013-Visualiza pacien es
Se mues a al usua io una abla con odos los da os de pacien es, es deci , los a ibu os de
pacien es que se encuen an en la base de da os. Es a acción es desc i a en la igu a 153.