Este capítulo documenta dos módulos que conviven en IAegis y que, aunque son independientes entre sí, comparten un objetivo: dar visibilidad sobre quién trabaja en tu contrato y cómo se está comportando la siniestralidad. El primero, Siniestralidad, consolida los indicadores del DS 67 (el reglamento que regula la cotización adicional según el riesgo efectivo de la empresa). El segundo, Personal Externo, construye el padrón de trabajadores de empresas contratistas y subcontratistas que operan en tu frente de trabajo.
A lo largo del capítulo verás que un mismo dato alimenta decisiones de gestión: la dotación y las horas-hombre del personal externo son la base sobre la que el módulo de Siniestralidad calcula los índices de frecuencia y gravedad. Por eso conviene leer las dos partes de corrido: al terminar sabrás cargar el cierre mensual de un contrato, interpretar el diagnóstico que genera la IA y mantener vigente el padrón de personal externo, incluida su importación masiva desde una planilla de Excel.
Roberto, jefe de SSO de una constructora, cada mes cierra la siniestralidad de su obra principal y, en paralelo, actualiza el padrón del personal de la contratista de montaje. Este capítulo le da las dos herramientas con el mismo nivel de detalle.
El módulo de Siniestralidad se accede desde la ruta /siniestralidad y es una pantalla única, sin sub-rutas: un dashboard que muestra los indicadores DS 67, el desglose por género, la analítica de la naturaleza de los siniestros y el historial de cierres mensuales. Desde ahí mismo se carga el cierre de cada período y se consulta el análisis generado por inteligencia artificial.
El módulo de Personal Externo tiene dos puntos de entrada que muestran la misma pantalla: la vista de Registros (/records/external-personnel) y la vista de Administración (/admin/external-personnel). La única diferencia funcional entre ambas es el destino del botón de volver: en la primera vuelve a /records y en la segunda a /admin.
Estos módulos están pensados para perfiles distintos según el trabajo:
| Módulo | Usuario típico | Qué necesita |
|---|---|---|
| Siniestralidad | Prevencionista de riesgos, jefe de SSO, administrador de contrato | Permiso VER SINIESTRALIDAD (ver) o GESTIONAR SINIESTRALIDAD (cargar/editar/eliminar) |
| Personal Externo | Administrador de contrato, jefe de SSO, administrador de usuarios | Permiso GESTIONAR PERSONAL EXTERNO o GESTIONAR DIRECTORIO DE USUARIOS |
Antes de empezar a operar, asegúrate de reunir estos requisitos previos:
Al terminar el capítulo sabrás: leer los indicadores DS 67 y las tres zonas del gauge, cargar y corregir un cierre mensual, interpretar el diagnóstico IA, y mantener el padrón externo con altas individuales, importación masiva, edición y bajas.
Si solo necesitas consultar los indicadores sin cargar datos, pide que te asignen el permiso de solo lectura. Con él verás el dashboard completo pero no el botón de cargar un cierre.
La regla de acceso es sencilla y conviene memorizarla antes de operar, porque explica la mayoría de los mensajes que verás.
En Siniestralidad existen dos permisos:
| Permiso (como aparece en roles) | Qué habilita |
|---|---|
VER SINIESTRALIDAD | Ver el dashboard y sus indicadores (solo lectura) |
GESTIONAR SINIESTRALIDAD | Ver más crear, editar y eliminar cierres mensuales |
Además, los perfiles SuperAdmin y Tenant Admin siempre pueden ver y gestionar. El permiso de gestión controla tres cosas visibles: el botón Cierre Mensual, la columna Acciones de la tabla de historial y el botón Cargar Datos que aparece cuando se trabaja sin un contrato activo.
En Personal Externo:
| Permiso (como aparece en roles) | Qué habilita |
|---|---|
GESTIONAR PERSONAL EXTERNO | Ver y gestionar el padrón: alta, edición, desactivación e importación |
GESTIONAR DIRECTORIO DE USUARIOS | Lo anterior más eliminar registros |
La eliminación de una persona del padrón exige GESTIONAR DIRECTORIO DE USUARIOS. Si solo tienes GESTIONAR PERSONAL EXTERNO, el botón de eliminar no aparece y deberás usar Desactivar para dar de baja temporal. No se trata de un error: es una separación de privilegios deliberada.
El módulo de Siniestralidad además debe estar habilitado a nivel de la organización. Si no lo está, verás un mensaje de módulo deshabilitado. Si no hay empresa activa, se mostrará un mensaje de contexto requerido; y si no tienes el permiso de lectura, el texto centrado "Sin permisos para acceder a Siniestralidad".
Asigna el permiso de gestión solo a quienes cargan datos mes a mes. El resto del equipo de terreno solo necesita lectura para consultar los indicadores, lo que reduce el riesgo de borrar un cierre por accidente.
El módulo de Siniestralidad mide, para un contrato o para la empresa completa, cuántos accidentes hubo, cuántos días se perdieron y cómo eso se traduce en los índices que la legislación chilena exige informar. Concretamente, a partir de los cierres mensuales que tú cargas, el sistema calcula:
Todo esto se presenta en un dashboard con gráficos y, además, se resume en un diagnóstico ejecutivo generado por IA que proyecta escenarios a 3, 6 y 12 meses.
El DS 67 de 1999 reglamenta, dentro de la Ley 16.744, la cotización adicional diferenciada: las empresas cotizan un porcentaje base y, según su siniestralidad efectiva, ese porcentaje sube o baja. La idea es simple de entender: quien se accidenta menos, paga menos; quien se accidenta más, paga más.
El cálculo que hace IAegis, documentado en la utilidad calculadoraDS67.ts, es el siguiente:
| Indicador | Fórmula | Comentario |
|---|---|---|
| IF (Índice de Frecuencia) | (Σ accidentes CTP × 1.000.000) / Σ horas-hombre | Si no hay horas-hombre, vale 0 |
| IG (Índice de Gravedad) | (Σ días perdidos × 1.000.000) / Σ horas-hombre | Los días perdidos suman AT + EP + Karin |
| Tasa de Siniestralidad | ((Σ días perdidos / nº períodos) / dotación promedio) × 100 | Si la dotación es 0, vale 0 |
| Proyección de cotización | 0,95 % + recargo según tasa | Recargo: >64 → 3,4 · >32 → 1,7 · >16 → 0,85 · >8 → 0,34 · resto 0 |
| Peso Ley Karin | (Σ días Karin / Σ días perdidos) × 100 | Porcentaje de siniestralidad psicosocial |
| Ratio STP:CTP | Σ accidentes STP / Σ accidentes CTP | Si no hay CTP, se toma Σ accidentes STP |
El IF y el IG se expresan en "por millón de horas-hombre" precisamente para comparar empresas o períodos de distinto tamaño. No importa si una obra tiene 50 trabajadores y otra 500: el millón de horas normaliza la comparación.
La proyección de cotización merece una aclaración. El sistema parte de la base legal de 0,95 % y le suma un recargo escalonado según la tasa de siniestralidad. Los tramos son: hasta 8 % no hay recargo; de 8 % a 16 % suma 0,34; de 16 % a 32 % suma 0,85; de 32 % a 64 % suma 1,7; y sobre 64 % suma 3,4. En la práctica, una empresa con tasa 20 % proyecta una cotización de 0,95 + 0,85 = 1,80 %, mientras que una con tasa 5 % se queda en la base de 0,95 %. Esa diferencia de casi un punto porcentual sobre la masa salarial es dinero real, y es exactamente lo que motiva a mantener la siniestralidad baja.
Dos contratos idénticos en dotación pero con distinto historial ilustran el punto. El contrato "A" acumula 6 días perdidos promedio por mes (tasa 15 %) y proyecta 1,80 % de cotización; el contrato "B" acumula 3 días (tasa 7,5 %) y proyecta 0,95 %. La gestión de B le cuesta a su mandante casi un punto menos de cotización: la siniestralidad no es solo seguridad, es también costo.
Los términos que conviene dominar desde ahora son:
Los días perdidos de origen psicosocial se registran por separado en el campo de Ley Karin / Salud. El sistema los suma al total de días perdidos para el IG, pero además calcula su peso relativo y dispara una alerta cuando supera el 20 % de la siniestralidad total.
Siniestralidad: <contrato activo> o Consolidado Empresa: <empresa>./siniestralidad desde el menú o escribiendo la URL.
Figura 21.1 — Dashboard de Siniestralidad con gauge DS 67, cotización, género ESG, analítica y tabla de cierres
Si no hay empresa activa, en el encabezado verás un icono de escudo con la etiqueta "Sin Contexto" y el módulo no mostrará indicadores. Selecciona la empresa y el contrato en la barra superior antes de seguir.
La columna izquierda del dashboard está dominada por el gauge de Tasa de Siniestralidad, un medidor semicircular que ubica el porcentaje en una de tres zonas:
| Zona | Condición | Color |
|---|---|---|
| ZONA DE REBAJA | Tasa menor a 30 | Verde |
| ZONA BÁSICA | Tasa entre 30 y 70 | Ámbar |
| RIESGO DE RECARGO | Tasa de 70 o más | Rojo |
Debajo del gauge se muestra la "Cotizacion Proyectada" como un porcentaje con dos decimales. Parte de 0,95 % (la base) y le suma el recargo según el tramo de la tasa. Es el dato que conecta directamente con el DS 67: cuanto más alta la tasa, más alta la cotización adicional proyectada.
Figura 21.2 — Gauge de Tasa de Siniestralidad y sus tres zonas de color
Un contrato con 40 trabajadores promedio y 12 días perdidos en un mes arroja una tasa de 30 % (está justo en el límite de la zona básica). Si al mes siguiente los días perdidos suben a 30, la tasa se dispara y el gauge se mueve hacia la zona roja. Roberto usa este movimiento como señal temprana para intervenir antes de que la cotización adicional suba de tramo.
La zona "RIESGO DE RECARGO" se alcanza con tasa de 70 % o más. Es una señal de alerta, no una multa automática: la cotización proyectada es una estimación para que gestiones, no la cotización facturada por el organismo.
Bajo el gauge hay un bloque de "Exposición al Riesgo por Género (ESG · R-SGI-020)" que responde al requerimiento de desglosar la exposición por género. Muestra barras con los porcentajes de horas-hombre masculinas y femeninas (HH ♂ % / HH ♀ %) y sus totales absolutos. Si cargaste la dotación por género en el cierre, también aparecen los porcentajes de trabajadores (Trab. ♂ % / Trab. ♀ %) con el número de hombres y mujeres del último período.
Completa siempre los campos de trabajadores hombres y mujeres del formulario de cierre. Aunque son opcionales, son los que alimentan este desglose ESG y permiten detectar desequilibrios de exposición que el IG por sí solo no muestra.
La columna derecha trae dos bloques de analítica:
Accidentes (AT), Enfermedad (EP) y Ley Karin / Salud. Solo se dibujan las categorías con valor mayor que cero, y el pie muestra el total "Dias Perdidos: N".STP : 1 CTP. Si el ratio supera 10, la leyenda es "ALTA PROBABILIDAD DE EVENTO GRAVE"; en caso contrario, "RATIO BAJO CONTROL".Acompañan dos tarjetas con los valores numéricos de "IF (Frecuencia)" e "IG (Gravedad)", cada uno con un decimal.
El ratio STP:CTP es un clásico de la seguridad (la "pirámide de Bird"): por cada accidente con tiempo perdido suele haber muchos sin tiempo perdido. Un ratio bajo puede indicar que no estás registrando los STP, no necesariamente que no ocurran. Revisa la calidad del dato antes de celebrar.
Si hay datos, al pie del dashboard aparece la tabla "Historial de Cierres Mensuales", ordenada por período descendente (el mes más reciente primero). Cada fila es un cierre:
| Columna | Contenido |
|---|---|
| Periodo | El período en formato AAAA-MM |
| Dotacion | Dotación promedio del mes |
| HH Total | Horas-hombre totales con separador de miles |
| Dias AT | Días perdidos por accidentes |
| Dias EP | Días perdidos por enfermedad profesional |
| Karin | Días perdidos por Ley Karin / Salud |
| CTP | Accidentes con tiempo perdido |
| STP | Accidentes sin tiempo perdido |
| Fatales | Accidentes fatales |
| Acciones | Lápiz (editar) y tacho (eliminar), solo con permiso de gestión |
La columna Acciones solo aparece si tienes GESTIONAR SINIESTRALIDAD. Si eres de solo lectura, verás la tabla completa pero sin los iconos de lápiz ni tacho.
En el encabezado del dashboard hay cuatro botones de acción:
| Botón | Qué hace | Cuándo está disponible |
|---|---|---|
| Cierre Mensual (icono +) | Abre el formulario para cargar un período | Con contrato activo y permiso de gestión |
| Exporta el informe ejecutivo en PDF | Cuando hay al menos un cierre | |
| Excel | Exporta un Excel multi-hoja (resumen, mensual, accidentes, días perdidos) | Cuando hay al menos un cierre |
| PPT | Exporta una presentación ejecutiva | Cuando hay al menos un cierre |
Además, el botón Cambiar Nodo (icono de lupa) abre el selector de contexto para elegir otro contrato o empresa.
El Excel multi-hoja es ideal para los informes SSOMA mensuales: trae la hoja resumen y las hojas desglosadas por accidentes y días perdidos, listas para anexar al reporte R-SGI-020.
Si una exportación falla, aparece un banner rojo con el texto Error exportando PDF/EXCEL/PPT: <detalle>. Es un error de generación del archivo, no de tus datos; revisa la conexión e intenta de nuevo.
Si el contrato activo todavía no tiene cierres mensuales, el dashboard no desaparece: el gauge y las tarjetas de IF e IG muestran valores en cero, la tabla de historial no se dibuja y el diagnóstico IA muestra su propio estado vacío. Es la forma que tiene el sistema de decirte "todavía no hay información para analizar".
Figura 21.3 — Dashboard de Siniestralidad sin cierres: indicadores en cero y diagnóstico vacío
No confundas el estado sin datos con un error. Mientras no cargues el primer cierre, todo es cero por diseño y la tarjeta de IA dirá "Sin datos para analizar". Carga un cierre y los indicadores empezarán a calcularse.
El cierre mensual se captura en un modal llamado "Cierre Mensual Estadistico" (cuando creas) o "Editar Cierre Mensual" (cuando editas), con el subtítulo "Nodo: <contrato>".
/siniestralidad, con un contrato activo seleccionado, haz clic en Cierre Mensual (botón con icono de más en el encabezado).AAAA-MM.
Figura 21.4 — Formulario "Cierre Mensual Estadistico" con sus secciones
El botón Cierre Mensual solo aparece con contrato activo. Si no lo ves pero tienes permiso de gestión, es porque estás en modo "Consolidado Empresa": en ese caso el dashboard muestra tarjetas por contrato con el botón Cargar Datos en cada una.
La sección general pide dos campos obligatorios:
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Periodo Fiscal | Mes (month) | Sí | Deshabilitado al editar. Por defecto el mes actual |
| Dotacion Promedio | Número (mín. 0) | Sí | Dotación promedio del período |
Luego viene la sección "Desglose de HH y Trabajadores por Género (ESG)":
| Campo | Tipo | Obligatorio | Placeholder |
|---|---|---|---|
| HH Masculino (M) | Número | Sí | "Ej: 1500" |
| HH Femenino (F) | Número | Sí | "Ej: 1200" |
| Trabajadores Hombres | Número | No | "Ej: 47" |
| Trabajadoras Mujeres | Número | No | "Ej: 4" |
No busques dónde escribir el total de horas-hombre: el campo "Total Consolidado HH:" se calcula solo como la suma de HH Masculino + HH Femenino. No es editable, y se recalcula en cuanto cambias alguno de los dos valores.
La sección "Desglose de Dias Perdidos (Naturaleza)" pide cuatro campos, ninguno obligatorio:
| Campo | Obligatorio |
|---|---|
| Accidentes (AT) | No |
| Enfermedad (EP) | No |
| Ley Karin / Salud | No (estilo rosa) |
| Trayecto / Otros | No |
La sección de conteo de accidentes y eventos:
| Campo | Tipo | Obligatorio |
|---|---|---|
| Accidentes CTP | Número | No |
| Accidentes STP | Número | No |
| Fatales | Número | No |
| Ultimo Siniestro | Fecha | No |
Si declaras uno o más Fatales, la validación previa al guardado lo marcará como error (CRÍTICO). La Ley 16.744 exige investigación causal y notificación a la SEREMI, la Mutualidad y la SUSESO dentro de 24 horas: el campo no es un simple número.
La última sección es "Resumen Incidentes Detallado (R-SGI-020)", pensada para el informe mensual SSOMA. Todos sus campos son opcionales y tienen el placeholder "0":
| Campo | Tipo |
|---|---|
| Enfermedades Prof. | Número |
| Daño Material | Número |
| Cuasi Pérdidas | Número |
| Medio Ambiental | Número |
| Otros (Trayecto) | Número |
Los botones de cierre del modal son Abortar (cierra sin guardar) y Consolidar Estadisticas (crear) o Actualizar Estadisticas (editar).
Aunque estos campos sean opcionales, completar al menos las cuasi pérdidas y el daño material le da contexto al informe R-SGI-020 y evita que la siniestralidad se lea en vacío. El daño material sin lesión también es un precursor valioso.
Al pulsar Consolidar Estadisticas, el sistema ejecuta una validación híbrida y determinística (no consume IA externa): cruza los datos que cargaste contra reglas de coherencia y contra tu histórico para detectar inconsistencias o saltos bruscos.
Si hay observaciones de tipo error o warning, se abre el modal "Validación IA · Pre-guardado" con el título "N observación(es) antes de guardar" y el texto "Detecté inconsistencias o spikes vs tu histórico. Revisa antes de guardar:". Cada observación muestra un badge de severidad (CRÍTICO si es error, REVISAR si es warning, INFO si es informativa), el campo, el message y, cuando corresponde, una → suggestion.
Figura 21.5 — Modal "Validación IA · Pre-guardado" con observaciones antes de guardar
Los botones del modal son "Volver a revisar" (cierra sin guardar) y "Guardar de todos modos" (persiste pese a las observaciones).
Las reglas que disparan observaciones son, en resumen:
| Regla | Severidad |
|---|---|
| Hombres + mujeres difieren más de 10 % de la dotación promedio | Warning |
| Accidentes (CTP + fatales) > 0 con 0 días AT (y viceversa) | Warning |
| Fatales > 0 | Error |
| EP > 0 con 0 días EP | Info |
| HH totales muy bajas (< dotación × 100) o muy altas (> dotación × 240) | Warning |
| Spike de accidentes (> 3× el promedio de los últimos 6 períodos) | Warning |
| Spike de días Karin (> 2× el promedio histórico y > 5) | Warning |
La validación no bloquea el guardado: si estás seguro de tus cifras (por ejemplo, un mes atípico real), puedes pulsar "Guardar de todos modos". Pero cada vez que te lo advierte, tómate un minuto para verificar, porque un dato mal cargado distorsiona el IF y el IG de todos los meses.
Volver a guardar el mismo mes sobrescribe el cierre anterior de ese contrato. El sistema usa un identificador único por contrato y período, de modo que no se acumulan duplicados: re-cargar un mes reemplaza el dato previo, no lo suma.
Qué hacer si algo falla. Si el guardado o el borrado falla, el dashboard muestra un banner rojo con el texto Error al guardar cierre mensual: <msg> o Error al eliminar cierre mensual: <msg>, según el caso, junto con un botón "Cerrar". Lee el detalle del mensaje: casi siempre se trata de un problema de permisos o de conexión. Corrige el contexto y reintenta; si el error persiste, contacta al administrador.
Antes de guardar, verifica mentalmente que el Total Consolidado HH sea coherente con tu dotación: si declaraste 52 trabajadores, un total de horas-hombre por debajo de 5.200 o por encima de 12.480 disparará una advertencia de rango sospechoso.
Al inicio del dashboard hay una tarjeta grande titulada "Diagnóstico IA · DS 67" / "Inteligencia de Siniestralidad". Se genera automáticamente al abrir la pantalla (con una caché de 30 minutos) y ofrece un resumen ejecutivo de los indicadores, con proyecciones a 3, 6 y 12 meses y escenarios de acción.
Sus estados posibles:
| Estado | Qué muestra |
|---|---|
| Empty (sin cierres) | "Sin datos para analizar" y "Carga al menos un cierre mensual para activar el diagnóstico IA." |
| Loading | "Analizando indicadores DS 67…" y "Cruzando N períodos · Calculando proyección y escenarios." |
| Error | "Error generando diagnóstico" + "IA no disponible. Intenta nuevamente o contacta al administrador." + botón "Reintentar" |
El badge de estado que acompaña el diagnóstico tiene cuatro valores posibles:
| Valor | Etiqueta | Color |
|---|---|---|
crítico | CRÍTICO | Rojo |
alerta | ALERTA | Ámbar |
estable | EN GESTIÓN | Cyan |
óptimo | ÓPTIMO | Verde |
Figura 21.6 — Diagnóstico IA · DS 67 con proyección y escenarios
Si el diagnóstico quedó cacheado y quieres forzar un análisis nuevo (por ejemplo, justo después de cargar un cierre), usa el botón Regenerar del encabezado de la tarjeta.
El cuerpo del diagnóstico se organiza en secciones, de arriba hacia abajo:
situation) y el resumen final (finalSummary).+ impacto esperado y el plazo en días.Al pie se lee Generado · <fecha/hora> · Modelo <modelUsed>.
El diagnóstico de la obra de Roberto dice "EN GESTIÓN" y su proyección a 12 meses muestra que, si no actúa, la tasa sube de 32 % a 55 % y la cotización pasa de 0,95 % a 1,85 %. El escenario "Si ejecutas el plan" la mantiene en 0,95 %. Roberto prioriza las dos medidas con badge CRÍTICO del plan de acción y agenda la revisión en 30 días.
El diagnóstico es una herramienta de apoyo, no un dictamen. Las proyecciones se basan en tu histórico cargado: si los datos de los cierres están incompletos, el diagnóstico arrastra esa incertidumbre. La calidad del análisis es igual a la calidad del dato.
Conviene leer el diagnóstico en tres tiempos. Primero, mira el badge de estado: si es rojo o ámbar, hay algo que atender hoy. Segundo, lee el "Diagnóstico Ejecutivo" y la lista de Highlights: son el resumen de una página que puedes pegar en tu reporte mensual. Tercero, baja al "Plan de Acción" y ordena las medidas por prioridad: las de badge CRÍTICO son las que debes ejecutar antes de que el escenario "Si NO actúas" se materialice.
No trates el plan de acción como una sugerencia decorativa. Convierte las medidas CRÍTICO en tareas reales con responsable y plazo dentro del mismo mes; así el diagnóstico pasa de "informe" a "plan de trabajo".
Para leer el dashboard con criterio, conviene repasar un mes con cifras concretas:
En marzo, el contrato "Montaje Norte" reporta dotación promedio 50 trabajadores, 8.000 horas-hombre, 2 accidentes CTP, 6 accidentes STP, 5 días perdidos AT, 2 días EP y 3 días Karin. El sistema calcula: IF = (2 × 1.000.000) / 8.000 = 250,0; IG = ((5+2+3) × 1.000.000) / 8.000 = 1.250,0; tasa = ((10 días / 1 período) / 50) × 100 = 20 %. Con tasa 20 %, la proyección de cotización queda en 0,95 + 0,85 = 1,80 %. El ratio STP:CTP es 6/2 = 3,0 (bajo control) y el peso Karin es (3/10) × 100 = 30 %, lo que dispara la Alerta Ley Karin por superar el 20 %.
Revisa el IG junto con el IF, nunca por separado. Un IF bajo con IG alto significa pocos accidentes pero graves; un IF alto con IG bajo sugiere muchos eventos menores. Son realidades distintas que piden respuestas distintas.
El módulo de Personal Externo construye el padrón de trabajadores de empresas contratistas y subcontratistas que operan dentro de tu contrato. Cada persona queda asociada a uno o más sub-contratos y puede mantenerse activa o inactiva. El padrón se segmenta por contrato activo, un concepto que la interfaz llama "Bóveda Segregada": solo ves y gestionas el personal del contrato que tienes seleccionado.
Sirve para, entre otras cosas, saber exactamente quién está en tu frente de trabajo, mantener vigente el dato de cargo y empresa, y disponer de una fuente confiable de dotación externa para cruzar con la siniestralidad y con los registros del capítulo 2 (capacitaciones, entregas de EPP, etc.).
La dotación externa que aquí gestionas es la misma que alimenta los cálculos del módulo de Siniestralidad cuando trabajas con contratos. Un padrón desactualizado se traduce en indicadores poco confiables.
/records/external-personnelLa vista de Registros es la puerta de entrada operativa. El encabezado dice "Padrones Externos" con el subtítulo "Bóveda Segregada" y, cuando hay contrato activo, un badge "Contrato: <nombre>".
Si no hay contrato activo, verás un banner rojo con el texto "Atención: Seleccione un Contrato en la barra superior para gestionar este padrón." y el panel de control queda deshabilitado.
Figura 21.7 — Padrones Externos: panel de ingesta y nómina local
Las dos vistas (/records/... y /admin/...) montan la misma pantalla. La única diferencia es el destino del botón de volver: en Registros vuelve a /records, en Administración a /admin. No hay una versión "más poderosa" de la pantalla.
Si el contrato activo todavía no tiene personas cargadas, la nómina muestra el estado vacío "Padrones no hallados" con el texto "Cargue una nómina local para este frente de trabajo."
Figura 21.8 — Estado vacío "Padrones no hallados" de un contrato sin personas
El estado vacío no te deja solo: es justo el momento de usar "Alta Individual" para la primera persona o "Carga Masiva Excel" para traer el padrón completo de una vez.
/admin/external-personnelLa vista de Administración es idéntica en funciones, pensada para el perfil administrativo que además tiene permisos de eliminación. Aquí el mensaje de empresa requerida menciona el módulo "Padrones Externos", mientras que en la vista de Registros menciona "Personal Externo". Es una distinción solo de texto, no de comportamiento.
Sin el permiso correspondiente, verás "Acceso Denegado" / "No tienes permisos para gestionar padrones externos." con un botón "Volver".
Reserva la vista de Administración para quienes administran el padrón con permisos de eliminación, y deja la de Registros para los jefes de SSO que solo necesitan altas, ediciones y desactivaciones del día a día.
| Campo | Obligatorio | Notas |
|---|---|---|
| Nombre completo | Sí | Tiene el foco al abrir |
| RUT | Sí | Placeholder 12.345.678-9, máximo 12 caracteres; se formatea en vivo y muestra badge "Valido" o "Invalido" |
| Cargo | No | Placeholder "Cargo (ej: Operario)" |
| Empresa | Sí | — |
| Email (para notificaciones) | No | Tipo email, placeholder ejemplo@empresa.cl |
| Asignar a Sub-Contratos | Sí | Checkboxes; al menos uno |
Figura 21.9 — Modal "Alta Individual" con campos y sub-contratos
El RUT se valida en vivo mientras escribes, incluyendo el dígito verificador. Si el badge dice "Invalido", corrige antes de enviar: el sistema rechazará el alta con el mensaje "El RUT ingresado no es válido. Verifique el dígito verificador.".
Si no hay empresa activa, el alta falla con "Debe seleccionar un Contrato en el Header para cargar personal.". Y si intentas cargar un RUT ya existente en el padrón de ese contrato, verás "Ya existe una persona con este RUT en el padrón de este contrato.": el RUT es la clave única del padrón.
plantilla-personal-externo.xlsxPara cargas grandes, el módulo permite importar desde un archivo de Excel. El enlace "↓ Descargar Plantilla Excel" descarga la plantilla oficial plantilla-personal-externo.xlsx, que está en la raíz del repositorio y se sirve al frontend desde la carpeta de plantillas.
La plantilla trae 4 columnas: Nombre, RUT, Cargo, Empresa. La columna Email es opcional y puedes agregarla manualmente.
Figura 21.10 — Plantilla plantilla-personal-externo.xlsx con sus columnas
| Columna | Obligatoria | Valor por defecto si falta |
|---|---|---|
| Nombre | Sí | — (la fila se ignora sin nombre) |
| RUT | Sí | — (la fila se ignora sin RUT) |
| Cargo | No | Externo |
| Empresa | No | S/E |
| No | — (se valida formato si viene) |
El sistema acepta variantes de encabezado para que no falles por mayúsculas: Nombre/name, RUT/rut, Cargo/position, Empresa/company y Email/email/EMAIL/Correo/correo. Aun así, usar la plantilla oficial es lo más seguro.
La importación lee solo la primera hoja del libro de Excel. Si pegas los datos en una segunda hoja, el sistema no los verá.
Antes de cargar el archivo, elige el "Modo de importación" en el panel de ingesta:
| Valor | Etiqueta | Comportamiento |
|---|---|---|
create-only | Solo crear nuevos (saltar existentes) | Los RUT que ya existen en el contrato se ignoran |
upsert-email | Crear + actualizar solo emails | Solo actualiza el email; un email vacío en la planilla NO borra el existente |
upsert-all | Crear + actualizar todos los campos | Nombre, cargo, empresa y email se sobrescriben si difieren; las celdas vacías NO borran datos |
El modo upsert-all sobrescribe datos existentes. Úsalo cuando confías en que la planilla es la fuente oficial más reciente; de lo contrario, create-only es la opción segura para una primera carga sin pisar el padrón.
.xlsx y .xls).
Figura 21.11 — Panel de ingesta con modos de importación, carga masiva y enlace a la plantilla
El resumen de la importación detalla: Creados, Actualizados, Existentes saltados (modo create-only), Filas sin nombre ignoradas, RUTs inválidos ignorados, RUTs duplicados dentro del archivo y Emails con formato inválido omitidos, cada uno con su cantidad y, cuando aplica, el detalle de filas.
Verifica el contador de "Creados" contra el número de personas que esperabas cargar. Si "Filas sin nombre ignoradas" o "RUTs inválidos ignorados" es distinto de cero, corrige esas filas y vuelve a importar; el sistema las saltó a propósito.
Antes de importar debe existir un contrato activo y al menos un sub-contrato seleccionado. Los errores textuales son claros: "Defina el contexto operativo (Contrato) antes de la ingesta." y "Seleccione al menos un Sub-Contrato antes de importar.". Si el archivo no tiene las columnas mínimas, verás "El archivo debe contener columnas 'Nombre' y 'RUT'.".
La importación valida cada fila antes de escribir: se saltan las filas sin RUT o sin nombre, se verifica el dígito verificador del RUT y el formato del email, y se detectan los RUT duplicados dentro del propio archivo. Por eso el resumen final es tan granular: te dice exactamente qué entró, qué se omitió y por qué. Ese resumen es tu control de calidad de la carga.
Carolina importa una planilla de 30 filas. El resumen dice Creados: 25, Existentes saltados: 3 (eran personas que ya estaban en el padrón) y RUTs inválidos ignorados: 2 con las filas 12 y 27 señaladas. Revisa esas dos filas, corrige los dígitos verificadores y vuelve a importar solo esas líneas en un segundo archivo; ahora sí, los 30 quedan en la nómina.
Cada fila de la "Nómina Local" (columna derecha, con el contador "Personal vinculado a este contrato: N") muestra los datos de la persona y una serie de acciones según tu permiso:
| Icono | Qué hace | Permiso |
|---|---|---|
| Identificación | "Editar datos (nombre, cargo, empresa, email)" | Gestionar |
| Lápiz | "Editar sub-contratos" | Gestionar |
| Prohibido / check | "Desactivar" / "Reactivar" | Gestionar |
| Tacho | Eliminar a la persona | Solo GESTIONAR DIRECTORIO DE USUARIOS |
La nómina tiene una barra de búsqueda con placeholder "Interceptar registro..." que filtra por nombre, RUT o empresa.
Figura 21.12 — Modal "Editar Datos" (el RUT no es editable)
El modal "Editar Datos" muestra el RUT como clave no editable y permite modificar nombre, cargo, empresa y email (con la nota "Dejar vacío para quitar el email existente."). El botón es "Guardar Cambios".
El RUT no es editable por diseño: es la clave que identifica a la persona y la que detecta duplicados. Si te equivocaste de RUT, la vía correcta es eliminar la persona (con el permiso de administración) y darla de alta nuevamente con el RUT correcto.
La Desactivación y la Eliminación piden confirmación:
| Acción | Título del modal | Mensaje |
|---|---|---|
| Eliminar | "Confirmar Eliminación" | "¿Está seguro que desea eliminar a esta persona del padrón?" + nombre |
| Desactivar | "Confirmar Desactivación" | "¿Desactivar a esta persona? Podrá reactivarla después." + nombre |
Figura 21.13 — Modal "Confirmar Desactivación"
Figura 21.14 — Modal "Confirmar Eliminación"
La eliminación es definitiva e irreversible; la desactivación es reversible. Si una persona deja el frente por un tiempo pero podría volver, usa Desactivar: podrás reactivarla después con el botón de reactivar.
Antes de eliminar a alguien del padrón, verifica que no esté referenciada en capacitaciones o entregas de EPP recientes. Prefiere desactivar cuando hay historial que conservar, y eliminar solo cuando el registro es erróneo o duplicado.
Carolina comienza el lunes con el cierre de siniestralidad de la faena "Planta Concentradora". Abre /siniestralidad, verifica en la barra superior que el contrato activo sea "Planta Concentradora" y observa que el gauge marca ZONA BÁSICA con una tasa de 24 %. Pulsa Cierre Mensual y carga el período del mes anterior: dotación promedio 52, HH masculino 3.200 y HH femenino 480, con lo que el Total Consolidado HH queda en 3.680. En días perdidos registra 4 en AT, 1 en EP y 2 en Ley Karin / Salud; en accidentes, 1 CTP y 3 STP, sin fatales. Al pulsar Consolidar Estadisticas, la validación IA le advierte que los días Karin superan el doble del promedio histórico: Carolina revisa, confirma que hubo dos licencias por estrés laboral ese mes y elige "Guardar de todos modos". El dashboard recalcula los indicadores y el Diagnóstico IA · DS 67 se regenera mostrando el estado "EN GESTIÓN" y una proyección a 12 meses que recomienda reforzar el programa psicosocial.
Ese mismo día, Carolina debe actualizar el padrón del personal de la contratista de mantenimiento "Servicios Eléctricos del Norte". Entra por /records/external-personnel, selecciona el contrato y ve el banner confirmando la Bóveda Segregada. Descarga la plantilla con "↓ Descargar Plantilla Excel", la completa con 25 personas (columnas Nombre, RUT, Cargo, Empresa y agrega Email), elige el modo "Solo crear nuevos (saltar existentes)" y arrastra el archivo a la zona "Carga Masiva Excel". El resumen le indica Creados: 22, Existentes saltados: 3 y RUTs inválidos ignorados: 0. Para el electricista nuevo que faltó, usa "Alta Individual", completa nombre, RUT, empresa y sub-contrato, y consolida el alta. Al final, la Nómina Local muestra "Personal vinculado a este contrato: 47" y Carolina da por cerrada la jornada: siniestralidad al día y padrón vigente.
Haz coincidir el cierre de siniestralidad con la actualización del padrón el mismo día del corte mensual. Así la dotación y las horas-hombre que declaras en Siniestralidad reflejan exactamente el personal que gestionas en Personal Externo.
GESTIONAR SINIESTRALIDAD (o siendo Tenant Admin/SuperAdmin). Con permiso de solo lectura verás el dashboard sin poder cargar. Sin contrato activo, en su lugar se muestra la ingesta por unidades de negocio con el botón Cargar Datos por contrato.GESTIONAR DIRECTORIO DE USUARIOS. Con GESTIONAR PERSONAL EXTERNO solo puedes desactivar/reactivar. Si no ves el tacho en la fila, es porque tu rol no incluye ese permiso./records vs /admin). No existe una versión con más funciones en una u otra ruta.Nombre y RUT. Cargo, Empresa y Email son opcionales; sin Cargo se asigna "Externo" y sin Empresa se asigna "S/E". La plantilla oficial trae 4 columnas (Nombre, RUT, Cargo, Empresa) y Email se agrega manualmente si hace falta.Error exportando ...: <detalle>. Es un error de generación del archivo, no de tus datos: revisa la conexión e intenta de nuevo. Si persiste, contacta al administrador.