Los Checklists forman parte del módulo de Registros de IAegis. Las capacidades avanzadas de este capítulo (scoring por secciones, tipos de respuesta, turnos, vínculo a activos Reposit y verificación con firma) dependen de cómo esté diseñada cada plantilla y de los permisos que tenga tu usuario. Si no ves alguna pantalla o botón, es probable que te falte el permiso correspondiente o que tu organización no haya activado esa capacidad. Consulta con tu administrador.
El módulo de Checklists te permite definir protocolos de inspección estandarizados (plantillas) y ejecutarlos en terreno como registros trazables, con folio único, geolocalización, evidencia fotográfica, firma electrónica y generación de PDF corporativo. Los Checklists Avanzados agregan tres capacidades que conviven en la misma pantalla de ejecución: scoring de auditoría, turnos y vínculo a activos.
Antes, una inspección con puntaje ponderado o un relevo de turno se llevaba en planillas Excel paralelas, propensas a errores y difíciles de auditar. IAegis reemplaza esa planilla por un flujo digital de principio a fin: la plantilla define las reglas de puntaje, el operador ejecuta la inspección desde su teléfono, el sistema calcula el cumplimiento en vivo, y el ciclo puede cerrarse con un plan de medidas correctivas verificado y firmado por el SSO.
Las tres capacidades diferenciadoras son:
Este capítulo cubre los checklists avanzados. El checklist simple (una lista de puntos con respuesta Sí/No/N/A y un porcentaje plano de cumplimiento) se trata en el Capítulo 02 (Registros). Ambos comparten la misma pantalla de ejecución; lo que cambia es cómo está diseñada la plantilla.
| Aspecto | Checklist simple (Cap. 02) | Checklist avanzado (este capítulo) |
|---|---|---|
| Respuesta por punto | Solo OK / No OK / N/A | Sí/No, numérico, selección única, selección múltiple |
| Cumplimiento | Porcentaje plano sobre todos los ítems | Ponderado por secciones y pesos; banda de resultado |
| Ítem crítico | No aplica | Un crítico en 0 fuerza la banda a "Crítico" |
| Ciclo | Una sola pasada (se guarda y queda cerrado) | Puede ser turno (abrir → cerrar → seguimiento → verificar) |
| Activo Reposit | No | Opcional: vincula y sincroniza lecturas |
| Plan de acción | No | Sí, con medidas, responsables y verificación firmada |
No todo checklist necesita ser avanzado. Si solo requieres una lista Sí/No con porcentaje plano, deja la plantilla sin scoring y sin campos de cierre: se comportará como un checklist simple. Activa las capacidades avanzadas solo cuando realmente las necesites.
| Concepto | Descripción |
|---|---|
| Plantilla | El diseño reutilizable de una inspección: sus puntos de control, tipos de respuesta, secciones, pesos, campos contextuales y vínculo a activo. La crea el administrador. |
| Punto de control (ítem) | Cada elemento que se inspecciona. Tiene un texto, un tipo de respuesta, un peso y puede ser crítico. |
| Checklist ejecutado (registro) | El resultado de correr una plantilla en terreno. Tiene folio único CHK-XXXX, ubicación, respuestas, evidencia y scoring persistido. |
| Sección ponderada | Grupo de ítems con un peso propio (por ejemplo, Frenos 40%). El % total es el promedio ponderado de las secciones. |
| Banda de resultado | Clasificación del % total: Excelente, Aceptable, Regular o Crítico. |
| Ítem crítico | Punto de control marcado como determinante: si queda en puntaje 0, la banda global se fuerza a Crítico. |
| Turno | Checklist que se abre (OPEN), se cierra más tarde (CLOSED / IN_FOLLOWUP) y, con plan, se verifica (RESOLVED). Existe solo si la plantilla tiene campos de cierre. |
| Campos contextuales | Datos de apertura (antes de los ítems) y de cierre (después de los ítems), por ejemplo kilometraje inicial y final. |
| Activo (Reposit) | Elemento del catálogo de bienes de la empresa (vehículo, maquinaria, equipo) que la plantilla puede exigir vincular. |
| Plan de acción | Conjunto de medidas correctivas que se abren al cerrar un turno con hallazgos No OK; cada medida tiene responsable, plazo y jerarquía. |
| Verificación de cierre | Firma del SSO (Ley 19.799) que confirma que todas las medidas se ejecutaron y el cierre cumple el DS 44/2024. |
El módulo de Checklists da soporte a varias exigencias de la normativa chilena de seguridad y salud en el trabajo:
| Norma | Cómo aporta el módulo |
|---|---|
| DS 44/2024 (nuevo reglamento SGSST, reemplaza al DS 40) | Materializa inspecciones planificadas, evidencia y verificación de cierre. La declaración de firma de la verificación cita literalmente "los estándares DS 44/2024". |
| Ley 16.744 (accidentes del trabajo y enfermedades profesionales) | Las inspecciones y el plan de medidas correctivas alimentan la gestión preventiva y la trazabilidad ante la mutual. |
| Ley 19.799 (firma electrónica) | La verificación de cierre se firma digitalmente con declaración de responsabilidad, dándole valor probatorio. |
| DS 594 (condiciones sanitarias y ambientales en lugares de trabajo) | Las inspecciones de equipos, EPP e infraestructura respaldan su cumplimiento documental. |
| DS 109 / DS 40 (legado) | Aplicable a la clasificación de riesgos que motiva las medidas del plan de acción. |
La verificación de cierre se firma con una declaración explícita bajo la Ley 19.799. Firmar un cierre implica declarar bajo tu responsabilidad que todas las medidas fueron ejecutadas correctamente y que el cierre cumple el DS 44/2024. Trata la firma con la misma seriedad que una firma manuscrita.
Los checklists tienen varios roles: quien los ejecuta, quien cierra el turno, quien completa las medidas y quien verifica el cierre. Cada acción está protegida por un permiso distinto, de modo que solo las personas autorizadas pueden avanzar el ciclo.
| Acción | Etiqueta del permiso en la UI de roles | Quién lo suele tener |
|---|---|---|
| Ejecutar / crear un checklist | CREAR NUEVOS REGISTROS | Operador / inspector |
| Ver todos los checklists (no solo los propios) | VER TODOS LOS REGISTROS | Supervisor / admin |
| Cerrar el turno de un checklist | CERRAR TURNO DE CHECKLIST | Supervisor / SSO |
| Ver la bandeja de seguimiento | VER BANDEJA DE SEGUIMIENTO DE CHECKLISTS | Supervisor / SSO |
| Verificar el cierre (firma) | VERIFICAR CIERRE DE CHECKLIST | SSO / verificador |
| Completar medidas asignadas | Completar medidas asignadas (se aplica dentro de la bandeja de seguimiento, no como etiqueta aparte) | Responsable de la medida |
| Gestionar plantillas (crear/editar/eliminar) | GESTIONAR PLANTILLAS DE CHECKLIST | Tenant Admin |
Los usuarios con rol Tenant Admin o Super Admin siempre pueden crear y ver todos los registros aunque no tengan el permiso granular asignado (es un fallback explícito del sistema). El resto de acciones sensibles (cerrar, verificar, ver bandeja) sí exigen el permiso específico.
La creación de un checklist no se escribe directamente desde tu teléfono: pasa por una función de servidor (createChecklist) que valida todo de forma atómica (folio, activo vinculado, permisos, sincronización de lecturas). Las reglas de la base de datos bloquean el intento de crear un checklist saltándose esa función. Lo mismo aplica al cierre y a la verificación. Es una defensa en profundidad: aunque alguien manipule la app, el servidor tiene la última palabra.
La entrada principal está en el menú de Registros: el botón Ejecutar Checklist te lleva al selector de plantillas. Estas son las rutas del módulo:
| Ruta | Pantalla | Acceso |
|---|---|---|
/records/checklists | Selector de plantillas / Runner | Operador+ (CREAR NUEVOS REGISTROS) |
/records/checklists/completed | Historial de Checklists | Ve los propios; admin/VER TODOS LOS REGISTROS ven todos |
/records/checklists/follow-up | Bandeja de seguimiento | VER BANDEJA DE SEGUIMIENTO DE CHECKLISTS |
/records/checklists/:id/close | Cierre de turno | CERRAR TURNO DE CHECKLIST |
/records/checklists/:id/verify | Verificación de cierre | VERIFICAR CIERRE DE CHECKLIST |
/admin/checklist-templates | Hub de plantillas | GESTIONAR PLANTILLAS DE CHECKLIST |
/admin/checklist-templates/new | Editor (nueva plantilla) | GESTIONAR PLANTILLAS DE CHECKLIST |
/admin/checklist-templates/:id/edit | Editor (editar plantilla) | GESTIONAR PLANTILLAS DE CHECKLIST |
Es la primera pantalla al entrar a /records/checklists. Muestra un grid con las plantillas disponibles de tu empresa activa (ordenadas de la más reciente a la más antigua) para que elijas cuál ejecutar.
Figura 13.1 — Selector de plantillas de checklist: grid de tarjetas "Ejecutar Checklist" con el contador de puntos de control.
El encabezado muestra el título "Ejecutar Checklist" y el subtítulo "Selecciona una plantilla para iniciar". Cada tarjeta de plantilla incluye:
N Puntos de Control" con la cantidad de ítems.| Botón / acción | Qué hace | Resultado |
|---|---|---|
| Botón atrás (flecha) | Vuelve al Centro de Registros | Navega a /records |
| Tarjeta de plantilla → Iniciar | Abre el Runner con esa plantilla | Pasa a la pantalla de ejecución (Sección 13.4) |
| Estado | Qué verás |
|---|---|
| Cargando | Spinner + "Cargando plantillas...". |
| Vacío | Ícono + "Sin Plantillas Disponibles" / "Contacta al administrador para crear plantillas". |
| Error | Ícono rojo + "Error" + "Error al cargar las plantillas. Por favor, intenta nuevamente." + botón "Volver". |
| Sin empresa activa | Mensaje que pide seleccionar una empresa (módulo "Checklists"). |
| Sin permiso | "Acceso Denegado" / "No tienes permisos para acceder a este módulo." |
Para que aparezcan plantillas, primero un administrador debe haberlas creado en /admin/checklist-templates (Sección 13.9). Si tu organización recién comienza, el selector aparecerá vacío hasta que exista la primera plantilla.
El Runner es la pantalla donde ejecutas la inspección: respondes cada punto de control, capturas la ubicación y la evidencia, ves el scoring en vivo y guardas el registro. Se abre al pulsar Iniciar en una plantilla. El título y la descripción de la plantilla encabezan la vista.
Figura 13.2 — Ejecución: pantalla inicial del Runner con la cabecera, el bloque de ubicación vacío y el aviso de geolocalización.
El Runner arma su contenido según cómo esté diseñada la plantilla. Estos bloques aparecen de forma condicional, de arriba hacia abajo:
| Bloque | Cuándo aparece | Para qué sirve |
|---|---|---|
| Activo a inspeccionar | Si la plantilla exige activo (tiene categoría de activo) | Elegir y mostrar el activo Reposit (nombre, código, patente). |
| Auto-llenar desde foto | Siempre | Subir una foto del checklist en papel para que la IA autocomplete los ítems. |
| Datos de apertura | Si hay campos contextuales de apertura | Capturar datos previos (por ejemplo, kilometraje inicial). |
| Ubicación de la Inspección | Siempre | Registrar la geolocalización (obligatoria). |
| Puntos de control | Siempre | Responder cada ítem según su tipo. |
| Cumplimiento de la auditoría | Si la plantilla tiene scoring o secciones | Ver el % y la banda en vivo. |
| Turno abierto (aviso) | Si hay campos de cierre | Avisar que al guardar el checklist queda "Abierto". |
La Ubicación de la Inspección es obligatoria. Es un campo de solo lectura con un botón para geolocalizar: al pulsarlo, IAegis pide tu ubicación GPS y rellena la latitud y longitud (con 5 decimales) y muestra un mapa.
Autoriza el acceso a la ubicación en tu navegador o app antes de iniciar. Si el GPS tarda, mantén la pantalla abierta unos segundos: el botón muestra un spinner mientras localiza y se completa solo al obtener la posición.
Si la plantilla exige un activo, el Runner abre automáticamente el modal selector de activo al entrar (si aún no hay uno elegido). También puedes abrirlo con el botón Seleccionar / Cambiar del panel "Activo a inspeccionar". El selector filtra el catálogo Reposit por la categoría que pide la plantilla.
Figura 13.3 — En la plantilla se define la categoría de activo y los campos contextuales de apertura y cierre que luego aparecen en el Runner.
Al elegir un activo, los datos de apertura marcados con "prefillar desde activo" se rellenan automáticamente con sus datos: patente, código, nombre, marca, modelo, último kilometraje o último horómetro. Los campos de apertura pueden ser de cuatro tipos:
| Tipo de campo | Control en pantalla | Validación |
|---|---|---|
| Texto | Caja de texto libre | Si es obligatorio, no puede quedar vacío |
| Número | Input numérico con la unidad como sufijo | Dentro del mínimo/máximo del campo |
| Selección | Menú desplegable con opciones + "Seleccionar…" | Si es obligatorio, hay que elegir una |
| Indicador 0–100% | Botonera "0%", "25%", "50%", "75%", "100%" | Si es obligatorio, hay que marcar un valor |
Al vincular un activo, los campos con prefill se sobrescriben con los datos del activo elegido. Si cambias el activo, esos valores se reemplazan por los del nuevo. Revisa siempre las lecturas prefilladas (por ejemplo, el kilometraje) antes de guardar, porque se sincronizan de vuelta al activo.
El corazón del checklist avanzado es que cada punto de control puede responderse de forma distinta. Estos son los cuatro tipos:
Figura 13.4 — Runner con puntos de control de distinto tipo y el panel de cumplimiento calculando en vivo.
| Tipo | Cómo se responde | Obligatorio | Cómo puntúa |
|---|---|---|---|
| Binario (Sí/No) | Botones OK / No OK / N/A (verde/rojo/gris) | Sí | OK = 100%, No OK = 0% |
| Numérico | Input numérico + botón N/A | Sí | % derivado según rango y objetivo/dirección; muestra un badge con el % |
| Selección única | Lista de opciones tipo radio + N/A | Sí | Puntaje = score de la opción elegida |
| Selección múltiple | Lista de opciones tipo casilla + N/A | Sí | Puntaje = promedio de los scores de las opciones marcadas |
Todo ítem debe responderse. Un ítem sin respuesta queda en estado PENDING y se resalta con borde/fondo amarillo hasta que lo respondas. El sistema no te deja guardar mientras haya ítems PENDING.
Los ítems marcados como críticos muestran un badge Crítico junto al texto. Si un ítem crítico queda en puntaje 0, la banda global se fuerza a "Crítico", sin importar cuán alto sea el porcentaje del resto. Es un mecanismo para que una falla determinante no quede diluida en un buen promedio.
Cuando marcas un ítem como No OK (o eliges una opción de bajo puntaje en los otros tipos), aparecen los campos de hallazgo:
Figura 13.5 — Hallazgo No OK: campo "Descripción del Hallazgo" con dictado por voz y botones "Tomar Foto" / "Subir Foto".
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Descripción del Hallazgo | Área de texto con dictado por voz | Sí en binarios No OK | En binario No OK no puede quedar vacía. En ítems no binarios el label cambia a "Descripción del Hallazgo (opcional)". Placeholder "Describe el hallazgo o usa el micrófono para dictar...". |
| Foto de evidencia | Cámara / archivo (imagen) | Opcional | Botones "Tomar Foto" y "Subir Foto"; miniatura de 128×128 con botón para quitar. |
Aunque la foto es opcional, adjuntar evidencia de cada hallazgo No OK vuelve el reporte mucho más sólido ante una fiscalización o ante la mutual. Usa el dictado por voz para describir el hallazgo con las manos ocupadas en terreno.
Si la plantilla tiene scoring o secciones, el bloque "Cumplimiento de la auditoría" calcula el resultado en tiempo real a medida que respondes:
N OK · N No OK · N N/A · N evaluados (N/A excluido)".Las respuestas N/A no penalizan: se excluyen del denominador, así que no suben ni bajan el porcentaje. Sirven para dejar constancia de que un punto no aplicaba a esta inspección sin castigar el resultado.
El bloque "Auto-llenar desde foto del checklist en papel" está siempre disponible. Permite subir una foto del checklist físico y que la IA (OCR) detecte las marcas ✓ / ✗ / N-A y autocomplete el status de cada ítem que coincida.
| Requisito de la foto | Detalle |
|---|---|
| Formato | Debe ser una imagen. Error si no lo es: "El archivo debe ser una imagen." |
| Tamaño | Máximo 8 MB. Error si excede: "La imagen excede 8 MB." |
Mientras procesa, el botón muestra "Analizando…" y queda deshabilitado. Si ningún ítem coincide, la IA avisa que la foto no corresponde a este checklist; en ese caso revisa que subiste el documento correcto o completa manualmente.
El OCR es una ayuda, no un reemplazo del criterio del inspector. Siempre revisa que el status autocompletado sea correcto antes de guardar: una marca mal interpretada por la IA es tu responsabilidad corregirla.
Al terminar, tienes dos botones de guardado y uno de cancelar:
| Botón | Qué hace | Estados |
|---|---|---|
| Cancelar | Descarta la ejecución y vuelve al listado de plantillas | — |
| Guardar Checklist | Crea el registro sin generar PDF | "Guardando…" + deshabilitado durante el envío |
| Guardar y Generar PDF | Crea el registro y genera el PDF corporativo | "Guardando…" + deshabilitado |
Antes de crear el registro, el sistema valida en este orden y muestra el mensaje literal correspondiente si algo falla:
<etiquetas>."| Plantilla | Fase al guardar | Qué significa |
|---|---|---|
| Con campos de cierre | OPEN (turno abierto) | Hay que cerrarlo más tarde para registrar los datos de cierre. |
| Sin campos de cierre | CLOSED (cerrado) | Flujo de una sola pasada: queda listo al guardar. |
Si la plantilla es de turno, el Runner muestra un aviso al final: "Al guardar, el checklist queda en estado Abierto. Al terminar el trabajo lo cerrás desde 'Checklists completados' para registrar los datos de cierre (N campos)." El texto del producto usa la forma "lo cerrás"; en este manual usamos el tuteo chileno ("lo cierras"). El significado es el mismo.
El guardado del registro y la generación del PDF son independientes. Si el PDF falla por alguna razón, el checklist igual queda guardado; podrás regenerar el PDF más tarde desde la tarjeta en el historial con el botón "Reporte PDF".
En /records/checklists/completed encuentras todos los checklists que puedes ver (los propios, o todos si eres admin o tienes VER TODOS LOS REGISTROS), organizados por fase, con buscador y tarjetas de resumen con scoring.
Figura 13.6 — Historial de Checklists: encabezado, chips de fase y tarjetas con badges de banda y contadores.
El encabezado dice "Historial de Checklists" con un contador "N registros". Debajo hay filtros:
| Filtro | Tipo | Comportamiento |
|---|---|---|
| Buscador | Texto | Placeholder "Buscar por título, ubicación o usuario...". Filtra por título de la plantilla, ubicación y nombre del usuario. |
| Filtro de fase | Chips | "Todos", "Abiertos" (OPEN), "En seguimiento" (IN_FOLLOWUP), "Cerrados" (COMPLETED). Cada chip muestra su contador; los vacíos (salvo "Todos") se ocultan. |
N (borde ámbar): "Estos checklists están en estado OPEN y requieren completar los datos de cierre." Lista hasta 5, cada uno con su folio, "abierto el <fecha>" y un botón Cerrar que lleva a la pantalla de cierre.N (borde índigo): "Cerrados con plan de acción abierto. El verificador SSO firma el cierre cuando todas las medidas estén completas." Incluye el enlace "Ver bandeja completa →" hacia la bandeja de seguimiento.Cada tarjeta muestra: título, folio CHK-XXXX, badge de banda ("Banda · %"), badge de hallazgos ("N Hallazgos"), contadores OK / No OK / N/A, barra de cumplimiento (o el desglose por sección si la plantilla tiene secciones), inspector y fecha. Es expandible para ver ubicación, mapa, hallazgos con sus comentarios y el detalle completo de ítems con su status.
| Botón de la tarjeta | Qué hace | Cuándo aparece |
|---|---|---|
| Expandir (chevron) | Muestra/oculta el detalle completo | Siempre |
| Editar (lápiz) | Edita el registro | Si eres dueño o tienes permiso |
| Eliminar (papelera) | Elimina el registro | Con el permiso de eliminación |
| Reporte PDF | Genera y descarga el PDF corporativo | Siempre; muestra "Generando..." + spinner |
| Estado | Qué verás |
|---|---|
| Cargando | Spinner + "Cargando checklists completados...". |
| Vacío (grid) | "No se encontraron checklists que coincidan con el filtro." |
| Límite alcanzado (100) | Aviso ámbar "Mostrando los primeros 100 registros. Usa los filtros para refinar tu búsqueda." |
| Sin empresa | Mensaje que pide seleccionar una empresa (módulo "Checklists"). |
El listado ordena por fecha (del más nuevo al más antiguo) y trae como máximo 100 registros. Los usuarios no administradores solo ven sus propios checklists y los de su contexto de contrato/subcontrato. Si necesitas ver más, usa el buscador y los chips de fase para acotar.
Cuando un checklist quedó en fase OPEN, hay que cerrarlo. La pantalla de cierre (/records/checklists/:id/close) captura los datos de cierre, los comentarios y, si corresponde, el plan de acción. Requiere el permiso CERRAR TURNO DE CHECKLIST.
Llegas aquí desde el botón Cerrar de la sección "Turnos abiertos" del historial. El encabezado muestra "Cierre de turno" + el título de la plantilla + "Folio <folio> · N hallazgos 'No OK'".
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Datos de cierre | Texto / número / selección / indicador (igual que apertura) | Según cada campo | Los campos marcados como obligatorios no pueden quedar vacíos. Por ejemplo, kilometraje final. |
| Comentarios de cierre | Área de texto | Opcional | Placeholder "Novedades del turno, condiciones particulares, anomalías observadas…". |
Debajo de los datos de cierre está el plan de acción, opcional. Sirve para dejar registradas las medidas correctivas de los hallazgos No OK. El bloque avisa según el caso:
N hallazgo(s) 'No OK'. Si agregas medidas, el checklist pasará a Seguimiento (IN_FOLLOWUP)."
Figura 13.7 — Un cierre con plan de acción abre el ciclo de seguimiento: las medidas se gestionan luego desde la bandeja.
El plan se organiza en tres horizontes: Corto plazo, Mediano plazo y Largo plazo. Cada medida nueva nace con una jerarquía sembrada según el horizonte (Administrativo / Ingeniería / Sustitución respectivamente) y en estado PENDING. Los campos de cada medida:
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Descripción | Área de texto | Sí | No puede quedar vacía. Placeholder "Descripción de la medida…". |
| Responsable | Menú (usuarios activos) o externo | Sí | Puede ser un usuario del sistema o "Externo / texto libre". |
| Responsable externo | Texto | Condicional | Solo visible si no elegiste un usuario. Placeholder "Nombre del responsable (externo)". |
| Fecha límite | Fecha | Recomendado | No puede ser anterior a hoy. Default: hoy + 7 días. |
| Botón | Qué hace | Estados |
|---|---|---|
| Botón atrás / Cancelar | Vuelve sin cerrar | — |
| Generar con IA | Genera el plan a partir de los hallazgos No OK (Gemini), con referencia legal | "Generando…" + spinner; deshabilitado durante |
| Agregar medida (corto/mediano/largo) | Añade una fila de medida vacía al horizonte | — |
| Quitar (por medida) | Elimina la medida del plan | — |
| Cerrar turno / Cerrar y abrir seguimiento | Cierra el turno vía servidor | El texto cambia según haya plan; "Guardando…" + deshabilitado |
El botón principal dice "Cerrar turno" si no hay medidas, y "Cerrar y abrir seguimiento" si hay al menos una.
Si pulsas "Generar con IA" cuando ya hay medidas cargadas, aparece un modal de confirmación: título "Reemplazar plan de acción", mensaje "Ya hay medidas en el plan. ¿Reemplazarlas con la sugerencia generada por IA?", con botones "Reemplazar" / "Cancelar". La IA propone medidas con su referencia legal; revísalas y ajústalas antes de cerrar.
Al pulsar el botón de cierre, el sistema valida y muestra el mensaje literal si algo falla:
| Situación | Mensaje |
|---|---|
| Sin permiso | "No tienes permisos para cerrar checklists." |
| Sin permiso en el contrato | "No tienes permisos para cerrar este checklist en su contrato." |
| Falta campo de cierre obligatorio | "Falta completar los campos obligatorios de cierre: <etiquetas>" |
| Medida sin descripción | "Cada medida del plan debe tener una descripción." |
| Medida sin responsable | "Cada medida del plan debe tener un responsable (interno o externo)." |
| Fecha límite anterior a hoy | "La fecha límite '<fecha>' de una medida es anterior a hoy. Ajústala antes de cerrar el turno." |
| Error de permiso del servidor | "No tienes permisos para cerrar este checklist." |
| El estado cambió | "Este checklist ya no está abierto o cambió de estado. Recarga la página." |
| Otro error | "Error al guardar el cierre: <detalle>" |
| Estado | Qué verás |
|---|---|
| Sin permiso | "Sin permiso" / "Tu rol no incluye CERRAR TURNO DE CHECKLIST. Solicítalo al administrador." + "Volver". |
| Cargando | "Cargando checklist…" con spinner. |
| Error de carga | "El checklist no existe o no tienes acceso." / "No se pudo cargar el checklist." + "Volver". |
| Ya cerrado | "Este checklist ya fue cerrado" / "Fase actual: <fase>." + "Ver completados". |
El cierre lo ejecuta una función de servidor que estampa quién cerró (closedBy), decide la fase (Cerrado si no hay plan, En Seguimiento si lo hay) y notifica a los responsables de cada medida ("Plan de Acción asignado · Checklist"). La sincronización del kilometraje/horómetro al activo la hace el servidor automáticamente. Nada de esto depende de que tu teléfono quede encendido.
La bandeja (/records/checklists/follow-up) es la vista del supervisor/SSO sobre todos los checklists en fase IN_FOLLOWUP de la empresa activa. Reúne indicadores, permite completar medidas pendientes en línea e ir a verificar. Requiere el permiso VER BANDEJA DE SEGUIMIENTO DE CHECKLISTS.
Figura 13.8 — Bandeja de seguimiento: KPIs y tarjetas de checklists con plan de acción abierto.
El encabezado dice "Seguimiento" / "Checklists en seguimiento" / "Checklists cerrados con plan de acción abierto. Verifica cuando todas las medidas estén completadas."
| KPI | Qué cuenta |
|---|---|
| En seguimiento | Total de checklists en la bandeja. |
| Con medidas vencidas | Checklists con al menos una medida PENDING cuyo plazo ya pasó. |
| Sin actividad ≥7 días | Checklists sin movimiento hace más de 7 días. |
| Listos para verificar | Checklists con todas las medidas fuera de PENDING y al menos una completada. |
Cada tarjeta muestra: badge "Seguimiento", folio, "N medida(s) vencida(s)" si aplica, "Listo para verificar" si aplica, título, activo vinculado, "Cerrado: <fecha>", "N días desde apertura" y "completadas/total medidas completadas".
| Botón | Qué hace | Precondición |
|---|---|---|
| Verificar | Va a la pantalla de verificación del checklist | Siempre visible |
Ver/Ocultar medidas (N) | Expande las medidas PENDING en línea | Si hay medidas PENDING |
| Completar (por medida) | Abre el modal para subir evidencia y cerrar la medida | Admin, o responsable/dueño con el permiso de completar medidas |
Cada medida pendiente muestra su descripción y "Vence <fecha> · Resp: <nombre>".
Al pulsar "Completar", se abre un modal donde el responsable sube evidencia (foto + comentario) y la medida pasa a COMPLETED. La autorización efectiva la valida el servidor: aunque veas el botón, solo se cierra la medida si realmente tienes permiso.
| Estado | Qué verás |
|---|---|
| Sin acceso | "Sin acceso" / "Tu rol no incluye VER BANDEJA DE SEGUIMIENTO DE CHECKLISTS." |
| Sin empresa | "Selecciona una empresa para ver la bandeja." |
| Cargando | "Cargando…". |
| Error | "Error: <mensaje>". |
| Vacío | Ícono + "No hay checklists en seguimiento" / "Cuando un cierre genere un plan de acción, aparecerá acá." |
La verificación (/records/checklists/:id/verify) es el cierre formal del ciclo: el SSO revisa que todas las medidas se ejecutaron, escribe un comentario de cierre técnico y firma digitalmente. Con eso el checklist pasa a RESOLVED. Requiere el permiso VERIFICAR CIERRE DE CHECKLIST.
El encabezado muestra "Verificación de cierre" + el título + "Folio <folio> · N medidas en el plan". Debajo aparece la lista de medidas: cada una con un checkbox, su descripción y "jerarquía · Plazo: <fecha> · Resp: <nombre>". Si una medida está COMPLETED, se ve "Completada por <nombre> · <fecha>" y su comentario de evidencia.
El SSO no puede marcar ni firmar mientras haya medidas en PENDING. Solo puede firmar cuando todas están COMPLETED (con evidencia subida por el responsable). Si hay pendientes, aparece el aviso: "⚠️ Hay medidas en estado PENDING. El verificador solo puede firmar cuando todas las medidas estén COMPLETED (con evidencia subida por el responsable). Pídele al responsable que cierre las medidas pendientes desde su bandeja antes de continuar."
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Comentario de cierre técnico | Área de texto | Sí | No puede quedar vacío. Placeholder "Resumen del cierre: efectividad de las medidas, observaciones, próximos pasos…". |
| Firma digital del verificador | Firma (pad de firma) | Sí | Botón "Firmar el cierre" / "Re-firmar"; muestra la miniatura de la firma. |
| Botón | Qué hace | Precondición |
|---|---|---|
| Checkbox de medida | Marca/desmarca como verificada | Deshabilitado si la medida está bloqueada (PENDING u otra) |
| Cancelar | Vuelve | — |
| Firmar y resolver | Marca todo VERIFIED y pasa a RESOLVED | Todas marcadas + comentario + firma; deshabilitado hasta cumplir todo ("Guardando…" + spinner) |
Mensajes de validación literales al firmar:
<detalle>"| Estado | Qué verás |
|---|---|
| Sin permiso | "Sin permiso" / "Tu rol no incluye VERIFICAR CIERRE DE CHECKLIST." |
| Cargando | "Cargando checklist…". |
| Error de carga | "El checklist no existe o no tienes acceso." / "No se pudo cargar el checklist." |
| Ya verificado | "Checklist ya verificado" / "Resuelto el <fecha> por <nombre>." + "Ver completados". |
| No está en seguimiento | "Este checklist no está en fase de seguimiento (actual: <fase>)." + "Volver". |
| Sin plan (0 medidas) | "Este checklist no tiene plan de acción. Si fue marcado como IN_FOLLOWUP por error, contacta al admin del sistema." |
Al abrir el pad de firma, se muestra la declaración literal: "Declaro haber verificado que todas las medidas del plan de acción fueron ejecutadas correctamente y que el cierre del checklist cumple con los estándares DS 44/2024." Firmar equivale a asumir esa responsabilidad. La firma queda asociada de forma inseparable al registro y al verificador.
[Runner: plantilla con campos de cierre]
|
v
OPEN (turno abierto)
|
Cierre de turno (13.6)
/ \
sin plan con plan
| |
v v
CLOSED IN_FOLLOWUP
|
responsables completan medidas
(COMPLETED con evidencia)
|
Verificación SSO (13.8)
firma DS 44 + comentario
|
v
RESOLVED
Las plantillas son el diseño reutilizable de cada inspección. Se gestionan en /admin/checklist-templates y las diseña quien tenga el permiso GESTIONAR PLANTILLAS DE CHECKLIST (típicamente el Tenant Admin). Aquí defines los puntos de control, el scoring, los turnos y el vínculo a activos.
Figura 13.9 — Administración de plantillas: grid de plantillas existentes y botón "Nueva Plantilla".
El encabezado dice "Plantillas de Checklist" / "Formatos de Inspeccion Estandarizada" con el botón Nueva Plantilla. Cada tarjeta muestra el título, la descripción, "N Puntos de Control" y los botones editar (lápiz) y eliminar (papelera).
| Botón | Qué hace |
|---|---|
| Nueva Plantilla | Abre el editor vacío (/admin/checklist-templates/new). |
| Editar (lápiz) | Abre el editor con la plantilla cargada. |
| Eliminar (papelera) | Abre el modal de confirmación de borrado. |
| Botón atrás | Vuelve a /admin. |
Estados: sin empresa (pide seleccionarla, "Plantillas de Checklist"); sin permiso ("Acceso Denegado" / "No tienes permisos para gestionar plantillas de checklist." + "Volver"); cargando (spinner + "Cargando plantillas..."); error ("Error" + "Error al cargar las plantillas. Por favor, intenta nuevamente."); vacío (ícono + "Sin Plantillas Definidas" / "Crea tu primera plantilla de checklist").
Al pulsar la papelera aparece el modal de confirmación (el copy del producto tiene faltas de acento): título "Confirmar Eliminacion", texto "Estas seguro de que deseas eliminar la plantilla?" con el nombre, nota "Esta accion no se puede deshacer. La plantilla sera eliminada permanentemente." y botones "Cancelar" / "Eliminar". Eliminar una plantilla no afecta los checklists ya ejecutados (conservan su copia de ítems), pero la plantilla desaparece del selector de ejecución.
El editor encabeza con "Ingeniería de Checklist" (plantilla nueva) o "Refinar Protocolo" (edición) y el subtítulo "Diseño de Matrices Operativas Aegis". Se organiza en módulos.
Figura 13.10 — Editor de plantilla: módulo "Configuración Maestra" y comienzo de la "Arquitectura de Control".
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Título del Protocolo de Inspección | Texto | Sí | No puede quedar vacío. Placeholder "Ej: Inspección Técnica de Maquinaria Pesada". Saneado a ≤200 caracteres, sin <>. |
| Alcance y Objetivos Operacionales | Área de texto | Opcional | Hasta 1000 caracteres. Placeholder "Describa el propósito técnico de esta validación...". |
Aquí defines los puntos de control (ítems). Es una lista arrastrable: puedes reordenarlos con drag & drop.
Figura 13.11 — Arquitectura de Control: lista de puntos de control con su chip de tipo y acciones.
| Elemento de la fila | Descripción |
|---|---|
| Texto del punto de control | Obligatorio (todos deben estar definidos). Placeholder "Defina el punto de control...". Saneado ≤500 caracteres. |
| Botón configurar (chip de tipo) | Expande la configuración avanzada; muestra el tipo corto (Sí/No, Numérico, Única, Múltiple). |
| Eliminar (papelera) | Quita el ítem. No se puede si queda uno solo. |
El botón "Inyectar Punto de Control" agrega un ítem vacío. Si intentas borrar el único ítem, el editor avisa: "Un protocolo debe contener al menos un punto de control."
Figura 13.12 — Configuración avanzada de un punto de control: tipo de respuesta, peso, ítem crítico y escala/opciones.
| Campo | Opciones / valores | Default | Notas |
|---|---|---|---|
| Tipo de respuesta | "Sí/No · Cumple" (binario), "Numérico", "Selección única", "Selección múltiple" | Binario | Cambiar el tipo siembra/limpia las estructuras dependientes. |
| Peso del ítem | Número ≥0.1 (paso 0.1) | 1 | "Pondera dentro de su sección. Default 1." |
| Ítem crítico | Switch Crítico / Normal | Normal | "Si no cumple, fuerza banda CRÍTICO." |
| (numérico) Mínimo | Número | 0 | — |
| (numérico) Máximo | Número | 100 | Debe ser mayor que el mínimo. |
| (numérico) Objetivo (opcional) | Número | vacío | Si se fija, el puntaje cae al alejarse del objetivo. |
| (numérico) Mayor es mejor | Switch Sí / No | Sí | Deshabilitado si hay objetivo. |
| (única/múltiple) Opciones | Lista de etiqueta + puntaje (0–100 pts) | 2 opciones (100 y 0) | Placeholder "Etiqueta (ej: Bueno, Regular, Malo…)". Requiere ≥1 con etiqueta para guardar. |
Nota de selección única: "El puntaje del ítem = score de la opción elegida." Nota de selección múltiple: "El puntaje del ítem = promedio de los score de las opciones marcadas."
El módulo de scoring agrupa los puntos de control en secciones ponderadas.
Figura 13.13 — Scoring de Cumplimiento: secciones, pesos y asignación de ítems.
| Control | Descripción |
|---|---|
| Toggle "Scoring de Cumplimiento" | Al activarlo por primera vez, siembra una sección "General" con todos los ítems. |
| Resumen de pesos | "Suma de pesos N% / 100%" (verde si suma 100 ±0.5, ámbar si no) o "Sin pesos · se repartirá parejo (N% c/u)". |
| "Repartir parejo" | Distribuye 100% en partes iguales entre las secciones. |
| Sección: nombre | Placeholder "Nombre de la sección (ej: Estructura, Frenos, EPP)". ≤80 caracteres. |
| Sección: peso | Número 0–100 (paso 0.1). Placeholder "auto"; vacío = reparto parejo. |
| "Crear sección" | Agrega una sección vacía. |
| Asignación de ítems | Un menú por ítem para asignarlo a una sección o "— Sin asignar —". |
Con el scoring apagado, se muestra: "Activa el scoring para agrupar los puntos de control en secciones y asignarles un peso. Sin scoring, la auditoría se calcula como % plano sobre todos los ítems." Avisos: sección vacía → "Sección vacía · no se guardará"; ítems sin asignar → "N sin asignar".
Si defines pesos, procura que sumen 100% (el badge se pone ámbar si no cuadra). Si no defines pesos, el motor reparte parejo y calcula un micro-promedio por ítem. Ejemplo típico: Frenos 40%, EPP 30%, Estructura 30%.
Figura 13.14 — Vínculo a Activo (Reposit) y campos contextuales de apertura y cierre.
| Campo | Opciones | Notas |
|---|---|---|
| Categoría del activo a inspeccionar | "Sin activo vinculado", "Vehículo", "Maquinaria", "Equipo", "Herramienta", "Infraestructura", "Otro" | Al elegir una categoría distinta de "Sin activo vinculado", aparece el editor de campos contextuales. |
Los campos contextuales se organizan en dos bloques: "Apertura · antes de los ítems" y "Cierre · después de los ítems". Recuerda: si defines campos de cierre, la plantilla se vuelve de turno. Cada campo tiene:
| Campo | Opciones / valores | Notas |
|---|---|---|
| Etiqueta | Texto | Placeholder "Ej: Kilometraje inicial" / "Ej: Kilometraje final". ≤80 caracteres. |
| Tipo | "Texto", "Número", "Selección", "Indicador 0–100%" | — |
| Unidad (opcional) | Texto | Placeholder "km, lts, °C, %…". ≤16 caracteres. |
| Prefillar desde activo | "Sin prefill", "Patente del activo", "Código del activo", "Nombre del activo", "Marca", "Modelo", "Último kilometraje", "Último horómetro" | Toma el dato del activo vinculado al ejecutar. |
| Opciones (si tipo=Selección) | Texto separado por comas | Placeholder "Operativo, Restringido, Fuera de servicio". |
| Campo obligatorio | Casilla | Si se marca, será exigido en el Runner o el cierre. |
Los botones "Agregar campo de apertura" / "Agregar campo de cierre" y "Quitar" (por campo) gestionan la lista. Al quitar la categoría de activo, los campos contextuales se vacían.
El footer del editor tiene "Abortar Diseño" (cancelar) y "Consolidar Protocolo" (guardar; muestra "Guardando..." mientras persiste). Al guardar, valida:
| Situación | Mensaje |
|---|---|
| Sin empresa | "Debe seleccionar una empresa" |
| Sin tenant | "No se pudo identificar el tenant. Por favor, vuelve a iniciar sesión." |
| Sin permiso | "No tienes permisos para gestionar plantillas de checklist." |
| Sin título | "El título del protocolo es obligatorio." |
| Ítem sin texto | "Todos los puntos de control deben estar definidos." |
| Selección sin opciones | "El punto de control '<texto>' es de selección: agrega al menos una opción con etiqueta." |
| Numérico mal configurado | "El punto de control numérico '<texto>' necesita un máximo mayor que el mínimo." |
| Error al guardar | "Error al guardar la plantilla. Por favor, intenta nuevamente." |
La plantilla se guarda mediante una transacción atómica. Solo se escriben los campos con valor real (la base de datos rechaza valores vacíos indefinidos); el tipo binario, que es el default, no se escribe para mantener los datos limpios. Las secciones vacías se descartan y las referencias a ítems huérfanos se filtran. Una vez consolidada, la plantilla aparece de inmediato en el selector de ejecución.
CHK-XXXX./admin/checklist-templates → Nueva Plantilla.| Problema | Causa probable | Solución |
|---|---|---|
| No veo ninguna plantilla al ir a "Ejecutar Checklist" | No hay plantillas creadas para esta empresa, o falta seleccionar empresa. | Pide al administrador que cree plantillas en /admin/checklist-templates y verifica tu empresa activa. |
| El botón "Guardar" no responde / dice "Guardando…" | Guard anti doble-envío: los botones se deshabilitan mientras persiste. | Espera a que termine. Si falla, aparece un modal de error. |
| Me dice que faltan campos obligatorios de apertura | Un campo contextual obligatorio quedó vacío. | El mensaje lista cuáles; complétalos y vuelve a guardar. |
| No me deja guardar: hay ítems sin responder | Algún punto de control quedó en PENDING (resaltado amarillo). | Responde todos los ítems (OK/No OK/N/A o su valor). |
| "Este checklist ya no está abierto o cambió de estado" | Otro usuario ya lo cerró o cambió de fase. | Recarga la página. |
| No puedo verificar: hay medidas en PENDING | El verificador solo firma con todas las medidas COMPLETED. | Pide a los responsables que suban evidencia y cierren sus medidas primero. |
| El PDF no se generó pero el checklist sí | El guardado y el PDF son independientes. | Regenera el PDF desde la tarjeta del historial con "Reporte PDF". |
| La foto OCR no detectó nada | La foto no corresponde a este checklist (no coincidieron los ítems). | Verifica que subiste el documento correcto o completa manualmente. |
| No me aparece cerrar / verificar / seguimiento | Faltan permisos específicos. | Solicita CERRAR TURNO, VERIFICAR CIERRE o VER BANDEJA DE SEGUIMIENTO al administrador. |
| Mi auditoría bajó a "Crítico" con casi todo OK | Un ítem crítico quedó en No OK (puntaje 0). | Es el comportamiento esperado: un crítico en 0 fuerza la banda a Crítico. |
| No puedo cerrar el turno en este contrato | Tu permiso no cubre el contrato del checklist. | Solicita el acceso al contrato correspondiente. |