/estudiantes) es el directorio central del plantel. Muestra todos los estudiantes registrados ordenados por urgencia: primero los que tienen semáforo ROJO_URGENTE, luego ROJO, AMARILLO y VERDE. Dentro de cada nivel, se ordena por fecha de tamizaje más reciente.
Roles con acceso a esta sección:
ADMIN, PSICOLOGO, ORIENTADOR, DIRECTOR.Datos del estudiante
Cada registroEstudiante almacena los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
curp | String (único) | Clave Única de Registro de Población (18 caracteres, formato oficial) |
nombre | String | Nombre completo |
edad | Int | Calculada automáticamente desde la fecha de nacimiento al registrar |
sexo | Sexo | MASCULINO, FEMENINO o OTRO |
grado | String | Semestre o grado escolar (ej. 2°) |
grupo | String | Letra de grupo (ej. A, B, C) |
escuela | String | Nombre del plantel |
tokenEncuesta | String (único) | Token CUID generado automáticamente; se usa para el enlace de autoaplicación del cuestionario |
Tarjetas de filtro rápido por semáforo
Encima de la tabla hay cuatro tarjetas clicables que funcionan como filtros rápidos:| Tarjeta | Filtro aplicado |
|---|---|
| Sin riesgo | semaforo = VERDE |
| Revisión | semaforo = AMARILLO |
| Prioritario | semaforo = ROJO |
| Urgente | semaforo = ROJO_URGENTE |
Búsqueda y filtros avanzados
El componenteFiltrosEstudiantes proporciona filtros adicionales mediante parámetros de URL (searchParams):
| Parámetro URL | Descripción |
|---|---|
q | Búsqueda por nombre (insensible a mayúsculas) |
semaforo | Filtro por nivel de semáforo |
grupo | Filtro por grupo (opciones derivadas de los datos existentes) |
grado | Filtro por grado (opciones derivadas de los datos existentes) |
desde | Fecha mínima del último tamizaje (formato YYYY-MM-DD) |
hasta | Fecha máxima del último tamizaje (formato YYYY-MM-DD) |
N de M estudiantes cuando hay filtros activos, con un enlace “Ver todos” para limpiarlos.
Tabla de estudiantes
Columnas de la tabla:- Estudiante — Avatar con iniciales, nombre completo, edad y sexo abreviado (
M/F/Otro) - Grado / Grupo — Ej.
2° "A" - Último tamizaje — Fecha del tamizaje más reciente en formato
dd mmm yyyy; si no hay tamizaje muestra “Sin tamizaje” en gris - Estado — Badge de semáforo con punto de color y etiqueta
- Acción — Enlace “Expediente” que navega a
/estudiantes/[id]
ROJO_URGENTE tienen fondo rosa claro y borde izquierdo rojo para mayor visibilidad.
Ficha individual del estudiante (/estudiantes/[id])
La ficha individual muestra:
- Datos personales del estudiante (CURP, grado, grupo, edad, sexo, escuela)
- Lista de todos sus tamizajes con fecha, semáforo y tipo de caso
- Historial de citas
- Botón para aplicar el cuestionario (enlace a
/cuestionario/[estudianteId])
/expediente/[id].
Registrar un nuevo estudiante
Hacer clic en + Nuevo estudiante (disponible tanto en el dashboard como en la cabecera de la lista) abre el formulario en/estudiantes/nuevo.
Completar los datos obligatorios
Rellenar todos los campos: nombre completo, CURP, fecha de nacimiento, sexo, grado, grupo y nombre del plantel.
Validación de CURP
La CURP se valida con expresión regular (
/^[A-Z]{4}[0-9]{6}[HM][A-Z]{2}[B-DF-HJ-NP-TV-Z]{3}[0-9A-Z][0-9]$/). Si ya existe un registro con esa CURP, el sistema devuelve el error "Ya existe un estudiante con esa CURP".Enlace de autoaplicación del cuestionario (tokenEncuesta)
Cada estudiante tiene untokenEncuesta único generado automáticamente (CUID). Este token se usa para construir un enlace de autoaplicación que el estudiante puede abrir en su propio dispositivo sin necesidad de que el psicólogo esté presente:
Exportar e importar (solo ADMIN)
Los usuarios con rolADMIN tienen acceso a tres funciones adicionales en la parte superior de la lista:
| Función | Descripción |
|---|---|
| Importar estudiantes | Carga masiva de registros desde archivo (CSV/Excel) |
| Exportar para SENA | Descarga los estudiantes con respuestas pendientes de procesar |
| Importar respuestas | Carga masiva de cuestionarios respondidos fuera de línea |
| Exportar Excel | Descarga el listado completo como hoja de cálculo vía /api/export/excel |
