# RF-MAA017-007: Permisos de Trabajo

## Informacion General

| Atributo | Valor |
|----------|-------|
| **Codigo** | RF-MAA017-007 |
| **Nombre** | Permisos de Trabajo |
| **Modulo** | MAA-017 Seguridad HSE |
| **Prioridad** | P1 - Alta |
| **Complejidad** | Alta |

## Descripcion

El sistema debe permitir la solicitud, autorizacion y control de permisos de trabajo para actividades peligrosas en obras de construccion. Incluye permisos para trabajos en altura, espacios confinados, trabajos en caliente, excavaciones, y otros trabajos de alto riesgo, con verificacion de requisitos previos y controles durante la ejecucion.

## Requisitos Funcionales

### RF-MAA017-007.1: Tipos de Permisos de Trabajo

- Catalogo de tipos de permiso con requisitos:
  - **Trabajo en Altura** (>1.8m):
    - Arnes certificado vigente
    - Capacitacion NOM-009-STPS
    - Linea de vida/punto de anclaje
    - Casco con barbiquejo
    - Supervision continua
  - **Espacio Confinado**:
    - Monitoreo de atmosfera
    - Ventilacion forzada
    - Vigia exterior
    - Equipo de rescate
    - Capacitacion especifica
  - **Trabajo en Caliente** (soldadura, corte):
    - Extintor disponible
    - Area despejada de combustibles
    - Vigia de fuego (fire watch)
    - EPP especial
  - **Excavaciones** (>1.5m):
    - Estudio de suelos
    - Ademe o talud
    - Escaleras de acceso
    - Detector de lineas subterraneas
  - **Trabajos Electricos**:
    - Bloqueo/Etiquetado (LOTO)
    - Guantes dielelectricos
    - Detector de tension
    - Capacitacion NOM-029
  - **Izaje de Cargas**:
    - Plan de izaje
    - Grua certificada
    - Operador calificado
    - Senalero designado
- Configurar vigencia maxima por tipo
- Definir autorizadores requeridos
- Establecer documentos obligatorios

### RF-MAA017-007.2: Solicitud de Permiso

- Solicitante selecciona tipo de trabajo
- Describir trabajo a realizar
- Indicar ubicacion exacta en obra
- Definir fecha y horario del trabajo
- Listar personal involucrado
- Sistema verifica requisitos del personal:
  - Capacitaciones vigentes
  - EPP asignado y vigente
  - Aptitud medica
- Adjuntar documentos de soporte
- Describir medidas de seguridad a aplicar
- Firma digital del solicitante

### RF-MAA017-007.3: Proceso de Autorizacion

- Flujo de aprobacion configurable:
  1. Supervisor de obra (primera firma)
  2. Coordinador HSE (segunda firma)
  3. Residente de obra (tercera firma - trabajos criticos)
- Verificacion automatica de requisitos
- Checklist de condiciones previas
- Registro de observaciones por autorizador
- Rechazo con motivo obligatorio
- Notificaciones en cada paso
- Permiso valido solo con todas las firmas

### RF-MAA017-007.4: Control Durante Ejecucion

- Hora de inicio real registrada
- Verificacion de condiciones antes de iniciar
- Monitoreo periodico durante trabajo
- Registro de eventos/anomalias
- Suspension por condiciones inseguras
- Extension de permiso si es necesario
- Cierre formal del permiso al terminar

### RF-MAA017-007.5: Cierre de Permiso

- Verificacion de condiciones post-trabajo
- Confirmacion de area segura
- Retiro de senalizaciones temporales
- Firma de cierre por responsable
- Registro de incidentes ocurridos
- Fotos de area al finalizar
- Archivo digital del permiso completo

### RF-MAA017-007.6: Reportes y Seguimiento

- Dashboard de permisos activos
- Permisos por vencer en proximas horas
- Historial de permisos por obra/trabajador
- Estadisticas de tipos de permiso
- Permisos rechazados y motivos
- Tiempo promedio de autorizacion
- Cumplimiento de proceso

## Reglas de Negocio

1. No se puede iniciar trabajo de alto riesgo sin permiso autorizado
2. Permiso de altura valido maximo 8 horas continuas
3. Permiso de espacio confinado valido maximo 4 horas
4. Trabajo en caliente requiere vigilancia 30 min post-trabajo
5. Personal sin capacitacion vigente no puede incluirse
6. Permiso vencido requiere nueva solicitud
7. Suspension de permiso es inmediata y definitiva
8. Minimo 2 personas para trabajo en espacio confinado
9. Monitoreo de atmosfera cada 2 horas en espacio confinado
10. Area de trabajo en caliente debe despejarse 10m radio

## Criterios de Aceptacion

- [ ] Catalogo incluye 6 tipos principales de permisos
- [ ] Solicitud verifica automaticamente requisitos del personal
- [ ] Flujo de 3 niveles de autorizacion funcional
- [ ] Alertas enviadas 30 min antes de vencimiento
- [ ] Permiso no puede iniciarse sin todas las firmas
- [ ] Suspension registra motivo y notifica a todos
- [ ] Dashboard muestra permisos activos en tiempo real
- [ ] Historial mantiene 5 anos de registros
- [ ] Proceso completo funciona en modo offline

## Modelo de Datos

### Tabla: hse.tipos_permiso_trabajo
```
- id: UUID PK
- tenant_id: UUID FK
- codigo: VARCHAR(20) UNIQUE
- nombre: VARCHAR(200)
- descripcion: TEXT
- norma_referencia: VARCHAR(50)
- vigencia_max_horas: INTEGER
- requiere_autorizacion_nivel: INTEGER DEFAULT 2
- documentos_requeridos: JSONB
- requisitos_personal: JSONB
- equipos_requeridos: JSONB
- activo: BOOLEAN DEFAULT true
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permisos_trabajo
```
- id: UUID PK
- tenant_id: UUID FK
- folio: VARCHAR(30) UNIQUE
- tipo_permiso_id: UUID FK
- fraccionamiento_id: UUID FK
- solicitante_id: UUID FK
- descripcion_trabajo: TEXT
- ubicacion: VARCHAR(300)
- ubicacion_geo: GEOMETRY(Point)
- fecha_inicio_programada: TIMESTAMPTZ
- fecha_fin_programada: TIMESTAMPTZ
- fecha_inicio_real: TIMESTAMPTZ
- fecha_fin_real: TIMESTAMPTZ
- estado: ENUM(borrador, solicitado, aprobado_parcial, autorizado, en_ejecucion, suspendido, cerrado, rechazado, vencido)
- motivo_rechazo: TEXT
- motivo_suspension: TEXT
- observaciones: TEXT
- created_at: TIMESTAMPTZ
- updated_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_personal
```
- id: UUID PK
- permiso_id: UUID FK
- employee_id: UUID FK
- rol: ENUM(ejecutor, supervisor, vigia, operador, senalero)
- verificacion_capacitacion: BOOLEAN DEFAULT false
- verificacion_epp: BOOLEAN DEFAULT false
- verificacion_aptitud: BOOLEAN DEFAULT false
- observaciones: TEXT
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_autorizaciones
```
- id: UUID PK
- permiso_id: UUID FK
- nivel: INTEGER
- autorizador_id: UUID FK
- rol_autorizador: VARCHAR(100)
- decision: ENUM(aprobado, rechazado)
- observaciones: TEXT
- firma_digital: TEXT
- fecha_decision: TIMESTAMPTZ
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_checklist
```
- id: UUID PK
- permiso_id: UUID FK
- momento: ENUM(pre_trabajo, durante, post_trabajo)
- item_verificacion: VARCHAR(300)
- cumple: BOOLEAN
- observacion: TEXT
- verificador_id: UUID FK
- fecha_verificacion: TIMESTAMPTZ
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_monitoreos
```
- id: UUID PK
- permiso_id: UUID FK
- fecha_hora: TIMESTAMPTZ
- tipo: VARCHAR(100)
- valor_medicion: VARCHAR(50)
- unidad: VARCHAR(20)
- dentro_rango: BOOLEAN DEFAULT true
- observaciones: TEXT
- responsable_id: UUID FK
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_eventos
```
- id: UUID PK
- permiso_id: UUID FK
- fecha_hora: TIMESTAMPTZ
- tipo_evento: ENUM(inicio, suspension, reanudacion, extension, anomalia, cierre)
- descripcion: TEXT
- accion_tomada: TEXT
- responsable_id: UUID FK
- created_at: TIMESTAMPTZ
```

### Tabla: hse.permiso_documentos
```
- id: UUID PK
- permiso_id: UUID FK
- tipo_documento: VARCHAR(100)
- nombre: VARCHAR(200)
- archivo_url: VARCHAR(500)
- fecha_subida: TIMESTAMPTZ
- subido_por: UUID FK
```

## Casos de Uso

### CU-MAA017-007.1: Solicitar Permiso de Trabajo en Altura

**Actor**: Supervisor de cuadrilla
**Precondicion**: Actividad de altura programada

**Flujo Principal**:
1. Supervisor accede a modulo de permisos
2. Selecciona tipo "Trabajo en Altura"
3. Sistema muestra requisitos del permiso
4. Supervisor describe el trabajo a realizar
5. Supervisor indica ubicacion y horario
6. Supervisor agrega personal involucrado
7. Sistema verifica por cada trabajador:
   - Capacitacion NOM-009 vigente
   - Arnes asignado y vigente
   - Aptitud medica
8. Sistema marca trabajadores que cumplen/no cumplen
9. Supervisor ajusta lista si hay faltantes
10. Supervisor marca medidas de seguridad a aplicar
11. Supervisor firma digitalmente solicitud
12. Sistema envia a flujo de autorizacion
13. Sistema notifica al Coordinador HSE

**Flujo Alterno - Personal sin Requisitos**:
8a. Si trabajador no cumple requisitos
8b. Sistema indica requisito faltante
8c. Supervisor puede excluir o programar cumplimiento
8d. Permiso no avanza hasta resolver

### CU-MAA017-007.2: Autorizar Permiso de Trabajo

**Actor**: Coordinador HSE
**Precondicion**: Permiso solicitado pendiente

**Flujo Principal**:
1. Coordinador recibe notificacion de permiso
2. Sistema muestra detalle y requisitos
3. Coordinador verifica cumplimiento de cada item
4. Coordinador realiza inspeccion en campo (opcional)
5. Coordinador registra observaciones
6. Si todo cumple, Coordinador aprueba
7. Coordinador firma digitalmente
8. Sistema actualiza estado del permiso
9. Si es ultimo nivel, permiso queda autorizado
10. Sistema notifica a solicitante
11. Sistema genera documento de permiso PDF

**Flujo Alterno - Rechazo**:
6a. Si hay incumplimientos criticos
6b. Coordinador rechaza con motivo
6c. Sistema notifica rechazo a solicitante
6d. Solicitante debe corregir y resolicitar

### CU-MAA017-007.3: Ejecutar y Cerrar Permiso

**Actor**: Supervisor / Vigia
**Precondicion**: Permiso autorizado

**Flujo Principal**:
1. Supervisor marca inicio de trabajo
2. Sistema registra hora real de inicio
3. Sistema inicia contador de vigencia
4. Durante trabajo, vigia registra monitoreos
5. Sistema alerta 30 min antes de vencimiento
6. Al terminar, supervisor verifica area segura
7. Supervisor completa checklist post-trabajo
8. Supervisor firma cierre del permiso
9. Sistema registra hora de cierre
10. Sistema archiva permiso completo

**Flujo Alterno - Suspension**:
4a. Si se detecta condicion insegura
4b. Vigia/Supervisor suspende permiso
4c. Sistema registra motivo de suspension
4d. Sistema notifica a todos los involucrados
4e. Trabajo debe detenerse inmediatamente

## Mockups

### Pantalla: Solicitud de Permiso
```
+--------------------------------------------------+
| SOLICITUD DE PERMISO DE TRABAJO                  |
+--------------------------------------------------+
| Tipo: [Trabajo en Altura v]                      |
| Norma: NOM-009-STPS-2011                         |
| Vigencia maxima: 8 horas                         |
+--------------------------------------------------+
| DESCRIPCION DEL TRABAJO                          |
| [Instalacion de canceleria en nivel 5,          |
|  fachada norte del edificio A____________]      |
|                                                  |
| Ubicacion: [Edificio A - Nivel 5 - Fachada N]   |
| Fecha: [06/12/2025]  Hora: [08:00] a [16:00]    |
+--------------------------------------------------+
| PERSONAL INVOLUCRADO                             |
+--------------------------------------------------+
| [+ Agregar Personal]                             |
|                                                  |
| Nombre          | Rol      | NOM-009 | Arnes    |
+--------------------------------------------------+
| Juan Perez      | Ejecutor |   ✓    |   ✓      |
| Pedro Lopez     | Ejecutor |   ✓    |   ✓      |
| Maria Garcia    | Vigia    |   ✓    |   N/A    |
+--------------------------------------------------+
| MEDIDAS DE SEGURIDAD                             |
| [✓] Linea de vida instalada                     |
| [✓] Puntos de anclaje verificados               |
| [✓] Area acordonada abajo                       |
| [✓] Comunicacion radio disponible               |
+--------------------------------------------------+
| [Cancelar]              [Firmar y Enviar]       |
+--------------------------------------------------+
```

### Pantalla: Autorizacion de Permiso
```
+--------------------------------------------------+
| AUTORIZACION DE PERMISO                          |
+--------------------------------------------------+
| Folio: PTR-ALT-2025-0089                        |
| Tipo: Trabajo en Altura                          |
| Solicitante: Sup. Carlos Mendez                 |
| Estado: Pendiente Nivel 2 (HSE)                 |
+--------------------------------------------------+
| VERIFICACION DE REQUISITOS                       |
+--------------------------------------------------+
| [✓] Personal con capacitacion vigente           |
| [✓] EPP completo y vigente                      |
| [✓] Equipo de proteccion disponible             |
| [✓] Area senalizada                             |
| [ ] Verificacion en campo realizada             |
+--------------------------------------------------+
| Observaciones:                                   |
| [Verificar punto de anclaje #3 antes de_____]   |
| [iniciar, presenta oxido visible_____________]  |
+--------------------------------------------------+
| Nivel 1 (Supervisor): ✓ Juan Perez - 05/12 14:00|
| Nivel 2 (HSE): Pendiente                        |
+--------------------------------------------------+
| [Rechazar]              [Aprobar y Firmar]      |
+--------------------------------------------------+
```

### Pantalla: Dashboard de Permisos
```
+--------------------------------------------------+
| PERMISOS DE TRABAJO - Control                    |
+--------------------------------------------------+
| Obra: [Todas v]            Fecha: [Hoy]         |
+--------------------------------------------------+
| PERMISOS ACTIVOS AHORA                           |
+--------------------------------------------------+
| +--------+  +--------+  +--------+  +--------+  |
| |   3    |  |   1    |  |   0    |  |   5    | |
| | Altura |  | Conf.  |  |Caliente|  |Pendient| |
| +--------+  +--------+  +--------+  +--------+  |
+--------------------------------------------------+
| EN EJECUCION                                     |
+--------------------------------------------------+
| ! PTR-ALT-0089 | Altura | Edif A Niv 5          |
|   Vence en: 2:30 hrs | Ejecutor: J. Perez       |
|   [Ver] [Monitorear]                            |
+--------------------------------------------------+
| ! PTR-CON-0023 | Esp. Confinado | Cisterna      |
|   Vence en: 1:15 hrs | Ejecutor: P. Lopez       |
|   Ultimo O2: 20.8% (14:30)                      |
|   [Ver] [Monitorear]                            |
+--------------------------------------------------+
| PROXIMOS A VENCER (30 min)                       |
| ! PTR-ALT-0088 | Altura | Vence 15:00           |
+--------------------------------------------------+
| [Nuevo Permiso]  [Ver Historial]  [Reportes]    |
+--------------------------------------------------+
```

## Especificaciones Tecnicas Relacionadas

- ET-MAA017-DB-001: Schema HSE Database
- ET-MAA017-BE-010: Work Permits Service
- ET-MAA017-BE-011: Authorization Workflow Service
- ET-MAA017-FE-016: Work Permit Request Form
- ET-MAA017-FE-017: Authorization View
- ET-MAA017-FE-018: Permit Monitoring Dashboard

## User Stories Relacionadas

- US-MAA017-008: Solicitar permiso trabajo peligroso
- US-MAA017-025: Autorizar permiso de trabajo
- US-MAA017-026: Monitorear trabajo en ejecucion
- US-MAA017-027: Cerrar permiso de trabajo
- US-MAA017-028: Consultar historial de permisos

## Integraciones

### Internas
- RF-MAA017-002: Verificar capacitaciones del personal
- RF-MAA017-004: Verificar EPP asignado
- RF-MAA017-001: Vincular incidentes durante ejecucion
- MAI-007: Obtener datos del personal

### Externas
- Ninguna requerida

---

**Autor**: Requirements-Analyst
**Fecha**: 2025-12-06
**Version**: 1.0.0
