Saltar al contenido

Seguridad e higiene en obra

En ConstruWare, un accidente de obra se puede cerrar sin la investigación que exige la NOM-031

Por Eduardo Gallegos · Publicado el 23 de septiembre de 2026

Panel de seguridad e higiene de una obra de construcción con eventos de accidentes registrados.

Un trabajador se cae de un andamio, se registra el accidente en ConstruWare, se agrega una acción correctiva y se cierra. En el panel ya no aparece como pendiente. Verificamos en el código que ese cierre no exige nada de lo que la norma mexicana de seguridad en construcción llama "investigación del accidente": ni quién fue, ni por qué pasó, ni qué se concluyó. Con la descripción mínima y una frase de acción, el caso desaparece.

La ley exige investigar, no solo actuar

La NOM-031-STPS-2011, numeral 21.2, es explícita sobre qué debe comprender la investigación de todo accidente de trabajo en una obra de construcción:

"Cuando ocurra un accidente de trabajo en las obras de construcción, se deberá realizar una investigación que al menos comprenda lo siguiente: a) La identificación de los datos generales del accidentado; b) Las causas del accidente [...]; c) Las consecuencias del accidente, con la precisión de la parte del cuerpo lesionada, y el tipo de lesión y/o el daño material que se ocasionó; d) La descripción secuencial del accidente [...]; e) La evaluación del accidente [...]; f) Las actividades o medidas que debieron existir para prevenir el accidente; g) El seguimiento del accidente y las medidas de seguridad implementadas; h) Los antecedentes o enfermedades de trabajo anteriores [...]; i) El resultado de la investigación, y j) Las propuestas de medidas de seguridad que deberán adoptarse [...], para evitar la repetición del accidente."

Son 10 elementos mínimos, no una casilla. El numeral 21.1 exige además llevar un registro de los accidentes con base en esos resultados -sin la investigación, el registro tampoco se puede sostener.

Agenda una demo gratis

La sanción: no observar las normas de seguridad e higiene

El artículo 994, fracción V, de la Ley Federal del Trabajo fija la multa para el patrón que no cumple con las normas de seguridad derivadas de una NOM:

"Se impondrá multa, por el equivalente a: [...] V. De 250 a 5000 Unidades de Medida y Actualización, al patrón que no observe en la instalación de sus establecimientos las normas de seguridad e higiene o las medidas que fijen las Leyes para prevenir los riesgos de trabajo."

Con la UMA vigente en 2026 ($117.31 diarios, INEGI), el rango va de $29,327.50 a $586,550.00 MXN. No es una multa por expediente, sino por incumplir la norma en el centro de trabajo -la exposición depende de cuántos accidentes queden sin la investigación completa que exige el numeral 21.2.

ElementoQué dice la norma
Registro de accidentesNOM-031-STPS-2011, numeral 21.1
Investigación obligatoria (10 incisos a-j)NOM-031-STPS-2011, numeral 21.2
Sanción por no observar la normaArt. 994 fr. V, Ley Federal del Trabajo
Multa250 a 5,000 UMA = $29,327.50 a $586,550.00 MXN (UMA 2026: $117.31/día)

Verificado en el código: cerrar solo pide una acción escrita

Confirmamos el hallazgo directamente en el código de ConstruWare (repo medware-construccion, rama main). El formulario de alta de un evento de seguridad, addSafetyEventSchema (packages/shared-schemas/src/safety.ts:9-34), deja opcionales justo los datos que la investigación exige documentar:

personName: z.string().trim().max(160).optional(),
description: z.string().trim().min(1, 'Describe qué pasó.').max(4000),

Identificar al accidentado es opcional; la descripción sólo exige un carácter. No hay campo para causas, evaluación, antecedentes, resultado de la investigación ni medidas propuestas -los incisos b, e, h, i y j del numeral 21.2 no tienen dónde capturarse.

El corte real está al cerrar. SafetyService.update() (services/projects/src/safety/safety.service.ts:245-254) sólo exige que exista un texto de acción correctiva:

if (dto.correctiveDoneAt && !(dto.correctiveAction ?? previo.correctiveAction)) {
  throw new BadRequestException('No se puede cerrar una medida correctiva que no se ha escrito.');
}

La migración de base de datos replica exactamente ese mismo criterio, no uno más estricto -es una restricción a nivel de esquema, no solo de la API-. El CHECK de la tabla (packages/db/migrations/1700001580000_seguridad_higiene_stps.cjs:83-84) dice:

CONSTRAINT project_safety_events_correctiva_chk
  CHECK (corrective_done_at IS NULL OR corrective_action IS NOT NULL)

Y en el panel, el filtro de pendientes de ProjectSafety.tsx:127-130 sólo saca de la lista un evento cuando ya no tiene aviso IMSS abierto y su acción correctiva quedó cerrada -sin comprobar si la investigación de los 10 incisos existe en algún lado-:

const visibles = soloPendientes
  ? events.filter((e) => e.daysWithoutImssNotice !== undefined || (e.correctiveAction && !e.correctiveDoneAt))
  : events;

Un accidente con incapacidad se puede registrar con la descripción "Caída", sin nombre del accidentado; agregarle una acción correctiva de una línea, ponerle fecha de cierre, y desaparece de pendientes -con el expediente que exige el 21.2 completamente vacío.

Agenda una demo gratis

Qué significa en la práctica, y qué falta en el producto

El sistema sí registra el accidente y sí permite escribir una acción correctiva -esa parte funciona-. Lo que falta es que el cierre exija, o al menos deje capturados, los elementos del numeral 21.2: identificación completa, causas, consecuencias, descripción secuencial, evaluación, medidas que debieron existir, seguimiento, antecedentes, resultado y propuestas. Hoy nada de eso bloquea el cierre ni la desaparición del pendiente. Puedes ver ese recorrido completo, del accidente al cierre sin investigación, en este flujo de producto, o estimar la exposición con tus propios números en la calculadora de exposición por investigación de accidentes NOM-031.

Preguntas frecuentes

¿ConstruWare no registra accidentes?
Sí los registra: tipo, severidad, días de incapacidad, aviso al IMSS. Lo que no exige es la investigación de 10 elementos que pide el numeral 21.2 de la NOM-031 antes de cerrar el caso.

¿Aplica a cualquier accidente, sin importar el tamaño de la obra?
Sí: los numerales 21.1 y 21.2 obligan a registrar e investigar todo accidente de trabajo en obras de construcción, sin condicionarlo al tamaño de la obra (a diferencia de otros numerales de la misma norma).

¿Cuál es la multa exacta?
La LFT no fija un monto único: de $29,327.50 a $586,550.00 MXN (250 a 5,000 UMA, valor 2026), por no observar las normas de seguridad e higiene en el centro de trabajo.

¿Significa que mi obra ya incumplió?
No necesariamente: el hallazgo es que el sistema permite cerrar un caso sin ese expediente y no lo detecta, no que ya haya ocurrido con certeza en tu operación. Si tu equipo siempre documenta la investigación completa fuera del sistema, hoy no se manifiesta -pero el sistema no te avisa si algún caso quedó incompleto.

Fuentes consultadas: NOM-031-STPS-2011, texto oficial publicado en el Diario Oficial de la Federación (4 de mayo de 2011), numerales 21.1 y 21.2. Ley Federal del Trabajo, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, artículo 994 fracción V. Valor de la UMA 2026 publicado por el INEGI ($117.31 diarios, vigente desde el 1 de febrero de 2026). Este artículo es orientativo y no sustituye una revisión de tu caso por tu responsable de seguridad e higiene o asesor legal.

Ve cómo ConstruWare registra hoy un accidente, y dónde falta el expediente

Te mostramos en vivo el alta de un evento de seguridad, su cierre, y el punto exacto donde la investigación completa se queda fuera.

Agenda una demo gratis
Agendar 30 min
Contacta a un especialista
Ventas y Proyectos (abre en una ventana nueva) Soporte Técnico (abre en una ventana nueva)