Categorías
DSM5Tool Temporada 1

Log 1.7: DSM5Tool – Versión 0.2.4

Seguimos con el proyecto después de unos días de relax.

Las mejoras propuestas para la versión 0.2.4 son:

  • Gestión de usuarios
  • Bloque #2 de trastornos completado
  • Página para trastornos: TrastornoPage.jsx
  • Paginación
  • Implementación de técnicas

Gestión de usuarios

🟩🟩🟩🟩🟩

Ya he desarrollado la parte del servicio de consulta

import axios from 'axios'
 const baseUrl = '/api/login'
 const login = async credentials => {
   const response = await axios.post(baseUrl, credentials)
   return response.data
 }
 export default { login }

Además, el frontend ya tiene definido la pantalla de login y ya simula el acceso de usuario

Ya he terminado el backend. Ahora ya no sólo se puede acceder a la parte de la API enfocada al Login, sino también he creado un endpoint para crear nuevos usuarios y la edición de los trastornos requiere ahora de autorización mediante token.

En el frontend todo está más o menos listo, a falta de la actualización de los trastornos puesto que tengo que incluir en la cabecera el token generado.

La base de datos ya dispone de un documento para usuarios al que he modificado ligeramente el esquema inicial: he considerado más útil emplear el correo electrónico como usuario en lugar de andar creando nombres de usuario porque añadía una capa de complejidad innecesaria y porque, en realidad, me interesará en el futuro disponer de una base de datos de usuarios a los que contactar mediante email.

interface usuario = { 
	nombre: String,
	email: String,
	password: String,
	tipo: String
}

Con esto zanjo la gestión de usuarios prevista para la versión 0.2.4.

Bloque #2 de trastornos

⬜⬜⬜⬜⬜

Página para trastornos

⬜⬜⬜⬜⬜

Paginación

🟩🟩🟩🟩🟩

A pesar de que existen soluciones como react-pagination, como, en realidad, la aplicación no requiere de un sistema de paginación complejo; he optado por utilizar hooks y desarrollar yo mi propio sistema.

Ahora mismo la aplicación ya pagina correctamente, en bloques de 8 trastornos (por tratarse de una Grid de 4 elementos) y lo hace independientemente del total de trastornos mostrados.

Cada vez que hay un cambio en el motor de búsqueda, como, por ejemplo, seleccionar una determinada categoría, el sistema reinicia la paginación y la adapta al nuevo número de páginas.

Tuve algunas dudas acerca de cuál debería ser la funcionalidad de los botones Sig y Prev, y al final me decanté porque salten un nuevo intervalo de páginas, en lugar de ir moviéndose de una en una.

Por ahora los botones de «…» son meramente decorativos y no añaden funcionalidad.

Implementación de técnicas

🟩⬜⬜⬜⬜

La lista de técnicas avaladas por la evidencia científica está casi completada. Una vez la termine me gustaría centrarme en la implementación de las técnicas en la base de datos y así dejarlo todo lo listo para la parte de integración en el sistema tanto en la parte del front como en la del back.

Categorías
DSM5Tool Temporada 1

Log 1.3: DSM5Tool

Uno de los grandes problemas que he tenido que gestionar estas primeras semanas ha sido que, en determinado momento, al trabajar solo, me he sentido algo perdido.

Esa sensación suele traer consigo falta de motivación y, en muchas ocasiones, pérdida de interés por el proyecto. Por eso, para evitar que eso suceda, puede resultar interesante desarrollar cosas en paralelo que vayan a ser útiles en un futuro.

La idea de DSM5Tool es sencilla: un índice de los distintos trastornos que aparecen en el manual de diagnóstico de psicología DSM-5 (https://www.psychiatry.org/psychiatrists/practice/dsm).

El objetivo de esta miniapp es la de coger algo de soltura con ReactJS y con Chakra UI para ir avanzando de forma más sostenida.

Por ahora ya he completado la primera fase de la aplicación que incluye:

  • Estructura de datos básica
  • Buscador por trastornos
  • Buscador por categorías/subcategorías
  • Listado de criterios diagnósticos.

Todavía me falta definir completamente la estructura de los datos, puesto que el DSM-5 no sigue un esquema predeterminado y eso complica un poco la forma de parametrizar la información.

En la siguiente iteración del proyecto mis objetivos son:

  • Concluir la estructura de los datos
  • Buscador por criterios/etiquetas
  • Información completa por trastorno

Por ahora la definición de mi estructura de datos sigue el esquema:

export const dsm = [
  {
    categoria: "Trastornos del desarrollo neurológico",
    tipos: [
      {
        tipo: "Discpacidades intelectuales",
        trastornos: [
          {
            codigo: "F70",
            trastorno: "Discapacidad intelectual leve",
            indice: "317",
            descripcion: "La discapacidad intelectual (trastorno del desarrollo intelectual) es un trastorno que comienza durante el período de desarrollo y que incluye limitaciones del funcionamiento intelectual como también del comportamiento adaptativo en los dominios conceptual, social y práctico.",
            criterios: [
              "Deficiencias de las funciones intelectuales, como el razonamiento, la resolución de problemas, la planificación, el pensamiento abstracto, el juicio, el aprendizaje académico y el aprendizaje a partir de la experiencia, confirmados mediante la evaluación clínica y pruebas de inteligencia estandarizadas individualizadas.",
              "Deficiencias del comportamiento adaptativo que producen fracaso del cumplimiento de los estándares de desarrollo y socioculturales para la autonomía personal y la responsabilidad social. Sin apoyo continuo, las deficiencias adaptativas limitan el funcionamiento en una o más actividades de la vida cotidiana, como la comunicación, la participación social y la vida independiente en múltiples entornos, tales como el hogar, la escuela, el trabajo y la comunidad.",
              "Inicio de las deficiencias intelectuales y adaptativas durante el período de desarrollo."
            ]
          }
        ]
      }
    ]
   }
  ]

Pronto os mostraré partes del diseño gráfico y de cómo avanza la parte de la lógica tras la aplicación.

Categorías
Heres I Temporada 1

Log 1.1 – Documentación de Heres I

El primer paso dentro del Proyecto Heres ha sido el de completar una mínima documentación.

Muchas veces he aborrecido esta tarea por considerarla tediosa y farragosa. Sin embargo, con el tiempo he aprendido el papel esencial que juega en todo desarrollo.

Disponer de un plan de acción, una organización y una lista de tareas con la que arrancar el proyecto es fundamental: describe los pasos a seguir, contextualiza las actividades y enfoca el trabajo.

La versión 1.0 del documento del proyecto ya está disponible en el repositorio del proyecto, aunque aquí incluyo la información más esencial del mismo con la idea de mantener la coherencia en los distintos devlogs que vaya publicando:

Descripción del proyecto

El Proyecto Heres I surge como solución a la necesidad de muchos profesionalesde la salud mental de disponer de un sistema de tracking  y análisis de datos relacionados con la evolución de la terapia en sus pacientes.

El objetivo de esta plataforma será la de proporcionar un entorno sencillo para que los pacientes puedan suministrar información sobre indicadores definidoscomo relevantes en su terapia. 

Estos datos, una vez almacenados, serán tratados de forma autónoma por un sistema de evaluación que servirá los datos procesados a los profesionales que lo requieran en el desarrollo de la terapia.

Las primeras fases de este proyecto se van a concentrar en la definición y estructura básica del sistema, la selección de los tratamientos y los parámetros de evaluación asociados y el sistema de evaluación integrado. 

Requisitos Funcionales

Esta es una versión muy básica de los requisitos funcionales que va a tener la plataforma Heres I. Se trata de una definición dinámica que, con toda seguridad, irá sufriendo modificaciones conforme nos sumerjamos de lleno en el proceso de desarrollo. No obstante, sirve como punto de partida para organizar las tareas en las próximas semanas:

Main Page

Breve información acerca de la plataforma y las soluciones que proporciona

Login Page

Login de usuario

Landing Page

  • Perfil de usuario
    • Consulta de datos de usuario  
    • Modificación de datos de usuario
  • Log Diario
    • Iniciar nuevo
    • Recuperar previo
    • Borrar
  • Bandeja de mensajes
    • Consultar
    • Borrar
  • Consultas terapéuticas
    • Crear 

Dashboard

  • Perfil de profesional
    • Consultar perfil del profesional
    • Modificar datos del profesional
  • Lista de pacientes
    • Acceso directo a panel de Paciente
  • Panel de paciente
    • Tendencia
    • Informes
  • Terapias
    • Crear
    • Modificar
    • Borrar

Con esta información de base, Heres I comienza a desarrollarse oficialmente.

We don’t stop playing because we grow old; we grow old because we stop playing.

George B. Shaw