Skip to main content

Overview

Energy CMMS includes comprehensive safety management tools to ensure safe work practices through permits, risk analysis, and inspections.

Work Permit System

Controlled work authorization and tracking:

Permit Types

Hot Work

Welding, cutting, grinding, or other spark-generating activities

Confined Space

Entry into tanks, vessels, manholes with limited access

Work at Heights

Activities above 1.8m (6 feet) requiring fall protection

Electrical Work

Live electrical work or lockout/tagout procedures

Excavation

Ground penetration or trenching activities

Cold Work

General maintenance in operating areas

Creating Work Permits

1

Navigate to Permits

Go to Safety > Work Permits
2

Select Permit Type

Choose appropriate type based on hazards:
  • Hot Work
  • Confined Space
  • Work at Heights
  • Multiple types if needed
3

Define Work Scope

Provide detailed information:
  • Description: What work will be done
  • Location: Exact work area
  • Start Date/Time: When work begins
  • End Date/Time: Expected completion
4

Link to Work Order

Connect permit to maintenance order:
  • Auto-populates location and equipment
  • Tracks permit against work completion
  • Enables cost allocation
5

Complete Requirements Checklist

Verify all prerequisites:
  • Training certifications
  • Equipment inspections
  • Atmospheric testing
  • Emergency procedures briefed

Permit Requirements

Each permit type has specific requirements:
# Example: Hot Work Permit requirements
requisitos_hot_work = [
    RequisitoPermiso(
        tipo_permiso=hot_work_type,
        texto="Fire extinguisher present at worksite",
        es_critico=True,
        orden=1
    ),
    RequisitoPermiso(
        tipo_permiso=hot_work_type,
        texto="Fire watch assigned for duration and 30 min after",
        es_critico=True,
        orden=2
    ),
    RequisitoPermiso(
        tipo_permiso=hot_work_type,
        texto="Combustible materials removed from area",
        es_critico=True,
        orden=3
    ),
    RequisitoPermiso(
        tipo_permiso=hot_work_type,
        texto="Hot work equipment inspected",
        es_critico=False,
        orden=4
    )
]
Critical requirements (marked es_critico=True) must be verified before permit can be issued. Work cannot proceed without them.

Job Safety Analysis (JSA)

Systematic risk identification linked to permits:

JSA Structure

Break down job into sequential steps:
  • Each major task
  • Logical order
  • Manageable detail level
Identify risks for each step:
  • Physical hazards
  • Chemical exposures
  • Ergonomic issues
  • Environmental factors
Define mitigation measures:
  • Engineering controls
  • Administrative procedures
  • Personal protective equipment
  • Training requirements

Creating JSA

1

Initiate Analysis

Create new AnalisisRiesgo record:
  • Link to work location
  • Describe overall work
  • Assign team leader
  • Add participating workers
2

Define Work Steps

For each major task:
paso = PasoTrabajo.objects.create(
    analisis=jsa,
    descripcion="Install new motor coupling",
    orden=1
)
3

Identify Hazards

For each step, list risks:
Riesgo.objects.create(
    paso=paso,
    descripcion="Pinch points during alignment"
)
4

Define Controls

For each hazard, specify mitigation:
Control.objects.create(
    riesgo=riesgo,
    descripcion="Use proper hand placement, wear gloves"
)
5

Team Review

All workers sign off:
  • Understand hazards
  • Know controls
  • Agree to procedures

JSA Template

{
  "trabajo": "Motor Replacement",
  "ubicacion": "Pump Room A",
  "fecha": "2024-03-15",
  "lider": "John Smith",
  "equipo": ["Jane Doe", "Mike Johnson"],
  "pasos": [
    {
      "numero": 1,
      "descripcion": "Lockout/Tagout electrical source",
      "riesgos": [
        {
          "descripcion": "Electrical shock",
          "controles": [
            "Verify de-energization with multimeter",
            "Apply personal locks",
            "Test for zero energy"
          ]
        }
      ]
    },
    {
      "numero": 2,
      "descripcion": "Disconnect and remove old motor",
      "riesgos": [
        {
          "descripcion": "Heavy lifting - muscle strain",
          "controles": [
            "Use hoist for motor removal",
            "Team lift with proper technique",
            "Take breaks as needed"
          ]
        }
      ]
    }
  ]
}
Create JSA templates for common jobs. Reuse and customize instead of starting from scratch each time.

Permit Workflow States

State Transitions

Being prepared:
  • Requestor filling out form
  • Requirements being verified
  • JSA being completed
  • Not yet submitted for review

Approval Workflow

# Permit approval chain
permiso = PermisoTrabajo.objects.get(id=123)

# Supervisor reviews and approves
if all_requirements_met(permiso):
    permiso.estado = 'APROBADO'
    permiso.autorizado_por = supervisor
    permiso.fecha_autorizacion = timezone.now()
    permiso.save()
    
    # Notify workers
    notify_permit_approved(permiso)
else:
    # Request corrections
    permiso.estado = 'BORRADOR'
    permiso.save()
    notify_corrections_needed(permiso)

Safety Inspections

Regular facility and equipment safety checks:

Inspection Types

Pre-Use Equipment

Daily checks before using:
  • Fall protection gear
  • Lifting equipment
  • Power tools
  • Vehicles

Area Inspections

Periodic facility audits:
  • Fire safety
  • Housekeeping
  • Exit routes
  • Safety equipment

Permit Verification

Validate active permits:
  • Requirements still met
  • Conditions unchanged
  • Controls in place

Incident Investigation

Post-incident review:
  • Root cause analysis
  • Witness statements
  • Corrective actions

Inspection Process

1

Create Inspection

Initialize inspection record:
  • Select inspection type
  • Assign inspector
  • Set location/equipment
  • Load checklist
2

Execute Checklist

For each item, record status:
ResultadoInspeccion.objects.create(
    inspeccion=inspeccion,
    item=checklist_item,
    estado='CUMPLE',  # or 'NO_CUMPLE', 'NO_APLICA'
    observacion="Minor rust on railing",
    foto=uploaded_image
)
3

Document Findings

Capture evidence:
  • Photos of issues
  • Observations
  • Recommendations
4

Determine Overall Result

Inspection outcome:
  • APROBADO: All items pass
  • CON_HALLAZGOS: Minor issues noted
  • RECHAZADO: Critical failures
5

Generate Actions

For non-compliant items:
  • Create corrective work orders
  • Assign responsibility
  • Set deadline
  • Follow up

Mobile Inspections

Use mobile devices for field inspections. Real-time data capture, photos, and GPS location improve accuracy and efficiency.

Incident Reporting

Capture and investigate safety events:

Incident Severity

Minor issues:
  • Near miss
  • First aid only
  • Property damage less than $1,000
  • No lost time

Incident Workflow

1

Immediate Reporting

Anyone can submit incident:
  • Mobile app or web
  • Date/time/location
  • Brief description
  • Injured persons
  • Immediate actions taken
2

Initial Response

Safety team reviews:
  • Assess severity
  • Secure scene
  • Provide first aid
  • Notify management
3

Investigation

Detailed analysis:
  • Interview witnesses
  • Document scene
  • Collect evidence
  • Timeline reconstruction
4

Root Cause Analysis

Identify underlying factors:
  • Immediate causes
  • Contributing factors
  • Systemic issues
  • 5 Whys technique
5

Corrective Actions

Prevent recurrence:
  • Engineering changes
  • Procedure updates
  • Training programs
  • Follow-up audits

Incident Model

incidente = Incidente.objects.create(
    titulo="Fall from ladder",
    tipo=incident_type,
    descripcion="Worker fell from 6-foot ladder while...",
    fecha_ocurrencia=timezone.now(),
    ubicacion=work_location,
    reportado_por=witness,
    severidad='ALTA',
    estado='EN_PROCESO'
)

Personal Protective Equipment (PPE)

Track PPE issuance and compliance:

PPE Management

1

Define PPE Requirements

By job type or area:
  • Hard hat
  • Safety glasses
  • Steel toe boots
  • Gloves (specific type)
  • Hearing protection
  • Respirator (if needed)
2

Issue PPE

Record issuance to workers:
AsignacionEPP.objects.create(
    miembro=worker,
    material=ppe_item,
    cantidad=1,
    fecha_entrega=date.today(),
    motivo="Initial issue",
    fecha_proxima_entrega=date.today() + timedelta(days=180)
)
3

Track Condition

Monitor PPE status:
  • Inspection records
  • Damage reports
  • Replacement needs
4

Enforce Compliance

During inspections:
  • Verify proper use
  • Check condition
  • Replace expired items
  • Training if misused

PPE Lifecycle

Training & Certification

Track safety training compliance:

Training Requirements

Initial Training

Before starting work:
  • Company safety orientation
  • Hazard communication
  • Emergency procedures
  • Job-specific training

Refresher Training

Periodic updates:
  • Annual safety review
  • New procedure rollouts
  • Incident lessons learned
  • Regulatory changes

Certifications

Special qualifications:
  • Confined space entry
  • Forklift operation
  • First aid/CPR
  • Arc flash qualified

Competency Checks

Practical assessments:
  • Lockout/tagout procedure
  • Fall protection setup
  • Fire extinguisher use
  • Emergency response

Training Tracking

# Link training to permits
if not worker.has_valid_certification('Confined Space'):
    permit.estado = 'RECHAZADO'
    permit.motivo_rechazo = "Worker not certified for confined space"
    permit.save()

Safety Dashboards

Real-time safety metrics:

Key Indicators

Days Since Incident

Consecutive days without recordable injury

Open Permits

Currently active work permits

Pending Inspections

Overdue or upcoming inspections

Training Due

Workers with expiring certifications

Incident Rate

OSHA recordable injury rate

Audit Findings

Open corrective actions

Regulatory Compliance

OSHA Recordkeeping

Annual injury log:
  • Record all work-related injuries/illnesses
  • Classify by severity
  • Track lost time
  • Post annual summary
Annual posting:
  • Total cases for the year
  • Injury/illness rates
  • Posted Feb 1 - Apr 30
  • Management certification
Incident detail form:
  • Full description
  • Witness statements
  • Root cause
  • Corrective actions

Best Practices

Leading Indicators: Track proactive measures (inspections completed, near misses reported, training hours) not just incidents.
Daily toolbox talks:
  • Review JSA
  • Discuss permit requirements
  • Identify changed conditions
  • Confirm roles and responsibilities
Empower all workers:
  • Anyone can stop unsafe work
  • No retribution policy
  • Supervisor notification
  • Resume only when safe
Proactive identification:
  • Encourage reporting
  • Anonymous options
  • Quick investigation
  • Share lessons learned
Safety culture:
  • Regular safety meetings
  • Worker involvement
  • Trend analysis
  • Benchmark against industry

Integration Points

With Maintenance

  • Permits linked to work orders
  • JSA triggers maintenance procedures
  • Incident investigation may reveal maintenance issues

With Training

  • Permit requirements verify certifications
  • Incident analysis identifies training needs
  • Compliance tracking for audits

With Inventory

  • PPE stock management
  • Safety equipment calibration
  • Emergency equipment locations

Next Steps:

Build docs developers (and LLMs) love