Skip to main content
El tamizaje es el proceso central de PsicoScan ML. Consiste en registrar las respuestas del cuestionario SENA de un estudiante, calcular las puntuaciones T de las 31 escalas, enviarlas al modelo de clasificación ML y guardar el resultado.
Solo los roles PSICOLOGO y ADMIN pueden iniciar una aplicación asistida del cuestionario desde /cuestionario. Los estudiantes pueden autoaplicarlo mediante su tokenEncuesta en /tamizaje/[token].

Flujo del tamizaje

1

Seleccionar al estudiante

En /cuestionario, la tabla muestra todos los estudiantes con su semáforo actual y fecha del último tamizaje. Hacer clic en un estudiante o usar el botón de acción abre la aplicación del cuestionario en /cuestionario/[estudianteId].
2

Responder los 188 reactivos del SENA

El cuestionario SENA consta de 188 reactivos con escala Likert de 5 puntos:
ValorEtiqueta
1Nunca o casi nunca
2Pocas veces
3Algunas veces
4Muchas veces
5Siempre o casi siempre
Todos los reactivos deben responderse antes de enviar. El sistema valida que no quede ninguno sin contestar y que los valores estén en el rango 1–5.
3

Cálculo local de puntuaciones T

Al enviar, el servidor calcula las 31 escalas a partir de las respuestas brutas usando el módulo lib/sena/scoring. El resultado incluye puntuaciones directas (pd) y T (pt) para cada escala, así como la detección de ítems críticos.
4

Clasificación ML

El servidor envía las puntuaciones T al endpoint POST /api/v1/clasificar del servicio ML. Si la API responde en menos de 5 segundos, el resultado ML reemplaza al del scoring local. Si la API no está disponible, se usa el resultado del scoring local como respaldo transparente (sin error visible al usuario).
5

Guardar y ver resultado

El tamizaje se persiste en la base de datos con todas las escalas T, el semáforo, el tipo de caso, las observaciones y los ítems críticos. El sistema redirige a /cuestionario/[estudianteId]/completado (staff) o /cuestionario/mi-sena/completado (estudiante autoaplicación).

Las 31 escalas del SENA

Las escalas se organizan en siete grupos. Todas las puntuaciones son de tipo T (media 50, desviación estándar 10).
CódigoNombre completoDescripción
incInconsistenciaDetecta patrones de respuesta contradictorios
negImpresión negativaTendencia a exagerar problemas
posImpresión positivaTendencia a minimizar problemas
Estos tres son escalas de control. Un valor elevado de inc sugiere que el cuestionario debe repetirse. Un neg alto no invalida el resultado pero se clasifica como IMPRESION_NEGATIVA. Un pos alto genera IMPRESION_POSITIVA.

Los 5 tipos de caso

El modelo ML clasifica cada tamizaje en uno de cinco tipos de caso:
Tipo de casoSemáforoDescripciónAcción recomendada
SIN_RIESGOVERDEInstrumento fiable, sin indicadores de riesgoSeguimiento periódico normal
INCONSISTENCIAAMARILLOPatrón de respuesta incoherente (inc elevado)Solicitar repetición del cuestionario
IMPRESION_POSITIVAAMARILLOSesgo de minimización (pos elevado)Revisión en entrevista con psicólogo/a
IMPRESION_NEGATIVAROJOSesgo de exageración (neg elevado) con índices altosAtención prioritaria independientemente del sesgo
CON_RIESGOROJO_URGENTEInstrumento fiable con riesgo confirmadoAtención inmediata en persona
Un resultado ROJO_URGENTE (CON_RIESGO) requiere contacto directo e inmediato con el estudiante. No debe gestionarse únicamente por correo o mensaje. Notificar al psicólogo/a del plantel de forma presencial.

Ítems críticos

El SENA incluye 25 ítems críticos que evalúan conductas de alto riesgo (ideación suicida, autolesión, experiencias traumáticas, psicosis, etc.). Un ítem se considera crítico cuando la respuesta del estudiante es ≥ 3 (Algunas veces, Muchas veces o Siempre o casi siempre). Cada ítem crítico activado se almacena en el campo itemsCriticos del tamizaje con la siguiente estructura:
{
  "item": 124,
  "categoria": "Riesgo de autolesion",
  "texto": "Quiero morirme",
  "respuesta": 4,
  "etiquetaRespuesta": "Muchas veces"
}

Categorías de ítems críticos

CategoríaEjemplo de ítem
Riesgo de autolesión”Quiero morirme” (ítem 124), “Pienso que mi vida no tiene sentido” (ítem 141)
Pérdida de control”Siento que voy a perder el control” (ítem 76)
Alteraciones del pensamiento”Creo que otras personas pueden leer mis pensamientos” (ítem 119)
Estresores traumáticos”Me han pasado cosas horribles” (ítem 86)
Petición de ayuda”Hay cosas que van mal y necesitaría ayuda” (ítem 118)
Riesgos familiares”Mis padres me pegan” (ítem 19)
Acoso escolar”Me amenazan en el instituto” (ítem 163)
Falta de apoyo social”Me siento solo” (ítem 137)
Imagen corporal”Creo que mi cuerpo es horrible” (ítem 53)
Culpa”Me siento culpable” (ítem 75)
El número y la categoría de los ítems críticos son el primer punto a revisar en una entrevista de seguimiento. Prioriza siempre los ítems de la categoría Riesgo de autolesión y Petición de ayuda.

Integración con el modelo ML

El servidor envía la siguiente carga útil al endpoint POST /api/v1/clasificar:
{
  "estudiante_id": "<id>",
  "inc": 0.9,
  "neg": 1,
  "pos": 0,
  "glo_t": 66,
  "emo_t": 71,
  "dep_t": 86,
  "ans_t": 61,
  "...": "(todas las escalas T)",
  "items_criticos_count": 5,
  "respuestas": "2134...",
  "edad": 15,
  "sexo": "FEMENINO"
}
La respuesta esperada del modelo es:
{
  "semaforo": "ROJO_URGENTE",
  "tipo_caso": "CON_RIESGO",
  "observaciones": "Ideacion suicida activa, aislamiento severo..."
}
Si la API ML no responde en 5 segundos (AbortSignal.timeout(5000)), el sistema usa el resultado del scoring local sin interrumpir el flujo.

Build docs developers (and LLMs) love