Asignatura: Trabajo de Final de Grado – Mención Desarrollo de Aplicaciones Interactivas.
Nombre del estudiante: Roger Sales López.
Consultor y profesor: Kenneth Capseta Nieto / Carlos Casado Martínez.
Introducción
Un 7% de la población sufre una enfermedad renal crónica (ERC), es decir, que al menos uno de sus riñones no trabaja bien, hasta el punto de requerir un tratamiento sustitutivo de la función renal. Estos tratamientos (la hemodiálisis, la diálisis peritoneal y el trasplante renal) son muy largos y los pacientes deben seguir unas pautas muy estrictas, pero, al tener tan poca participación en su propia evolución, acaban por desmotivarse e incumplir algunas pautas, con el peligro que ello conlleva para su salud.
El sistema “Renalclick” desarrollado en este trabajo de final de grado intenta dar solución a este problema únicamente con tecnologías web, mediante una aplicación móvil que los pacientes podrán usar para controlar y gestionar su enfermedad. A su vez, los centros de diálisis podrán monitorizarlos y hacerles seguimiento a través de una plataforma web, lo cual les permitirá también ajustar y mejorar los tratamientos en base a los registros hechos por los pacientes.
El problema anteriormente planteado fue detectado por un equipo de enfermería de diálisis de la Corporació Sanitària Parc Taulí, de Sabadell (Barcelona), que también ha aportado y validado toda la información médica y sin el cual este proyecto no hubiera podido realizarse.
Etapas y retos
En una primera fase de análisis y definición de requerimientos, se establecieron las bases del funcionamiento del sistema:
- Los pacientes, a través de la aplicación móvil, harían registros de constantes vitales y de signos y síntomas (diferentes todos ellos según el tratamiento que sigan).
- Cada paciente estaría asociado a un centro de referencia (hospital, centro de diálisis, etc.).
- Cada centro accedería al sistema a través de una plataforma web, desde donde visualizaría los registros de sus pacientes.
Conjuntamente con el equipo de enfermería, se diseñaron los primeros prototipos y se estableció una mínima identidad corporativa (marca, colores y tipografía) que sirvió de base para crear el prototipo final. Las interfaces se diseñaron pensando en el usuario final; al ser pacientes con una media de edad de 60 años, se crearon pantallas limpias, destacando y realzando el contenido principal, con el respaldo de un sistema de navegación claro e intuitivo, unos mensajes directos e inteligibles y una iconografía de soporte muy reconocible.
Paralelamente, ya se estaba trabajando en el diseño del sistema y del software, ya que el desarrollo de la aplicación móvil suponía un reto al no haber trabajado nunca antes con lenguajes de programación específicos de plataformas móviles.
Afortunadamente, mi consultor me recomendó Phonegap, un framework de trabajo que permite, a partir de un único desarrollo web hecho con HTML, CSS y Javascript, exportar a un formato de aplicación instalable en los principales sistemas operativos móviles (Android, iOS, Windows Phone, etc.). Ello me permitió explorar al máximo estos lenguajes, que conocía muy bien al haberlos trabajado en asignaturas como “Lenguajes y estándares web”, “Programación web” o “Programación web avanzada”, y construir la aplicación siguiendo la arquitectura y las funciones de otro framework, JQuery Mobile (basado obviamente en JQuery), cuya curva de aprendizaje es relativamente corta y, aunque en cierta manera impone la apariencia visual, se consigue tener una aplicación en poco tiempo.
El principal problema de usar Phonegap es que no se podría usar PHP ni ningún otro lenguaje de programación típico de lado de servidor para conectarse a la base de datos. La única manera de enviar y recuperar datos desde la aplicación móvil fue mediante los métodos Ajax de JQuery, por lo que se diseñaron un total de 28 servicios web en el servidor preparados para recibir las llamadas Ajax repartidas por el código Javascript de la aplicación.
La base de datos fue creciendo y modificándose a medida que avanzaba el proyecto, sobre todo con la introducción de nuevas funcionalidades no contempladas en un inicio, hasta obtener un modelo relacional que se tradujo en 18 tablas, la mayoría de ellas relacionadas con una única entidad “paciente”.
Durante la implementación e integración del sistema, otro de los retos más importantes a conseguir fue representar los registros de los pacientes. El equipo médico consideró importante que estos aparecieran en forma de gráficas de barras y líneas y, aunque existen muchos plugins en la red que cumplen con lo deseado si se introducen manualmente los valores a representar, la dificultad aumenta cuando los valores se obtienen dinámicamente, como era el caso. Se escogieron dos plugins distintos para la aplicación móvil (JqPlot) y la web (Chart.js), ya que el segundo no era compatible con JQuery Mobile, y se superó el reto declarando las funciones de las gráficas de los plugins con un array vacío de datos (tanto en ordenadas como en abcisas), configurando los pertinentes servicios web para devolver arrays asociativos de datos y, por último, introduciendo cada array devuelto en la función de la gráfica correspondiente que fuera a dibujarse en la página.
Tampoco nunca antes había trabajado con las variables de sesión de PHP, pero resultaron muy útiles al poder establecer sesiones de usuario cada vez que un centro iniciara sesión desde la plataforma web. Teniendo en cuenta que ésta se construyó con PHP y los lenguajes estándares HTML, CSS y Javascript (incluyendo también JQuery), se puede afirmar que el prototipo final ha sido programado exclusivamente con lenguajes web, resultando en un sistema sólido y funcional que satisface las necesidades exigidas inicialmente por el equipo médico y preparado para los ensayos con pacientes reales.
Conclusiones
El sistema Renalclick desarrollado presenta actualmente ciertas fisuras, como la falta de seguridad en las comunicaciones o la implementación del resto de módulos propuestos inicialmente por el equipo de enfermería (medicación, alimentación, entre otros).
Echando la vista atrás, si tuviera que volver a decidirme por un framework de trabajo, quizás buscaría una librería más ligera que JQuery Mobile, como por ejemplo Xui, mucho menos esclava a nivel de diseño y que funcionalmente se presenta más ágil, aunque la curva de aprendizaje sea mayor.
Es cierto que me ha ocasionado insomnio en muchas ocasiones y cierto desespero en tantas otras, pero la sensación final sabe a satisfacción. Me he divertido mucho y, de hecho, si hay un consejo que pueda daros a aquellos que vayáis a enfrentaros próximamente a un TFG, es éste: escoged un tema que realmente os apasione y confiad en que eso será suficiente para poder sacarlo adelante.
Reconozco que la primera vez que uno se propone desarrollar un sistema completo, se siente un ligero mareo. Si, además, le añades tecnologías que nunca has usado (JQuery Mobile, Phonegap, sesiones PHP, plugins Javascript), el ligero mareo se convierte en vértigo. Aun así, merece la pena aprovechar los trabajos finales para afrontar retos más allá de lo aprendido durante el grado. Hay que evolucionar profesionalmente, buscando ese punto de vértigo y no desistir hasta hallar la solución, porque por el camino es donde aprendes lo verdaderamente interesante. La pasión hará el resto.
Enlaces relacionados
- Documentación de Phonegap: http://docs.phonegap.com/
- Documentación de JQuery Mobile en la versión 1.4.5: http://demos.jquerymobile.com/1.4.5/navbar/
- Plugin Charts: http://www.chartjs.org/docs/
- Plugin JqPlot: http://www.jqplot.com/
- Repositori institucional O2: http://hdl.handle.net/10609/42325
Cita recomendada: SALES LÓPEZ, Roger. “Renalclick”: ayudando a los pacientes renales con tecnologías web. Mosaic [en línea], diciembre 2015, no. 134. ISSN: 1696-3296. DOI: https://doi.org/10.7238/m.n134.1535.
Un comentario
Deja un comentario
Deja un comentario