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
Temporada 0

Log 0.6

El último escalón en la escalera que comencé hace unos meses para llegar al punto de salida del proyecto Heres es conocer TypeScript.

TypeScript es un lenguaje de programación desarrollado y mantenido por Microsoft. Su gran utilidad radica en que se trata de un lenguaje sintácticamente estricto que añade tipado estricto a JavaScript.

El desarrollo de Heres-I se va a realizar totalmente en TypeScript por una serie de razones:

Definición de tipos

Algo clave en el desarrollo complejo de un producto software es definir claramente qué es lo que vamos a utilizar y cuál es su contenido. JavaScript nos permite dejar esos conceptos sin definir, abriendo así la puerta a futuros problemas de compilado. Con TypeScript esto no sucede porque, antes de ponernos a trabajar, debemos definir nuestras variables: cómo están formadas y qué tipo de datos van a contener.

Declaración de variables de entrada y de salida a funciones

TypeScript nos «obliga» a utilizar tipos también en las entradas y salidas de nuestras funciones, de nuestros componentes. Esto hace de mecanismo de control para establecer claramente qué esperamos recibir y qué esperamos obtener en cada llamada a una función.

De nuevo, TypeScript limita mucho los posibles errores de desarrollo asociados a la ambigüedad inherente en JavaScript.

Un ejemplo de una función en TypeScript sería:

import React from 'react';
import { Entry } from '../types';


const HospitalEntry: React.FC<{ entry: Entry }> = ({ entry }) => {

  return(
    <div>
      <h5>Hospital Check Entry</h5> 
      {entry.description}
    </div>
  );
};

export default HospitalEntry;

Es en la propia definición de la función donde ya declaramos el tipo de la entrada y de la salida, con lo que nos aseguramos en todo momento de llevar un control del flujo de datos.

Heres I, en marcha

Una vez he finalizado la parte de TypeScript y, a falta de concluir con la sección de React-Native para desarrollo móvil, ya me siento en condiciones de dar el paso con Heres I y empezar con un proyecto personal de mayor envergadura.

Los próximos devlogs estarán enfocados a una parte más teórica y estructural del desarrollo con la definición de requisitos y planificación del desarrollo de forma algo más exhaustiva.