4.7 KiB
4.7 KiB
Complaint SLA Management Feature
Overview
A dedicated PX Admin-only interface for managing complaint SLA (Service Level Agreement) configurations with automatic hospital selection from session.
Features
1. PX Admin Only Access
- Protected by
@px_admin_requireddecorator - Automatically uses hospital from session (
selected_hospital_id) - Redirects to hospital selection if no hospital is selected
2. Hospital Context
- Hospital is automatically set from the first selection after login
- Stored in session as
selected_hospital_id - No need to manually select hospital for each configuration
3. SLA Configuration Types
Source-Based SLAs
- Configure SLAs based on complaint source (MOH, CCHI, Patient, etc.)
- Takes precedence over severity-based configs
- Example: MOH complaints = 24 hours, CCHI = 48 hours
Severity/Priority-Based SLAs
- Configure SLAs based on severity and priority levels
- Used when no source-based config exists
- Example: Critical/Urgent = 12 hours, Low/Low = 72 hours
4. Timing Configuration
SLA Deadline
- Total hours from complaint creation until deadline
- Example: 24, 48, 72 hours
Reminder Timing (Modern)
- First Reminder: X hours after complaint creation
- Second Reminder: X hours after complaint creation
- Set to 0 to use legacy timing
Reminder Timing (Legacy)
- First Reminder: X hours before deadline
- Second Reminder: X hours before deadline (with enable checkbox)
Escalation
- X hours after creation to auto-escalate
- Set to 0 to use standard overdue logic
URLs
| URL | View | Description |
|---|---|---|
/complaints/settings/sla-management/ |
sla_management |
Main SLA management page |
/complaints/settings/sla-management/new/ |
sla_management_create |
Create new SLA config |
/complaints/settings/sla-management/<uuid>/edit/ |
sla_management_edit |
Edit existing config |
/complaints/settings/sla-management/<uuid>/toggle/ |
sla_management_toggle |
Toggle active status |
Files Created/Modified
New Files
/apps/complaints/management/commands/test_sla_reminders.py- Test command/templates/complaints/sla_management.html- Main management page/templates/complaints/sla_management_form.html- Create/Edit form/templates/complaints/partials/severity_badge.html- Severity badge partial/templates/complaints/partials/priority_badge.html- Priority badge partial
Modified Files
/apps/complaints/ui_views.py- Added 4 new views/apps/complaints/urls.py- Added 4 new URL routes/templates/config/dashboard.html- Added navigation card
Usage
For PX Admins
- Login as PX Admin
- Select Hospital (first time after login)
- Navigate to System Configuration → Complaint SLA
- Or directly:
/complaints/settings/sla-management/
- Or directly:
- Configure SLAs:
- Click "Add SLA Configuration"
- Choose Source (for source-based) OR Severity/Priority
- Set SLA hours, reminders, escalation
- Save
Example Configuration
MOH Complaints (Source-Based):
- Source: Ministry of Health
- SLA Hours: 24
- First Reminder: 12 hours after creation
- Second Reminder: 18 hours after creation
- Escalation: 24 hours after creation
Critical/Urgent Complaints (Severity-Based):
- Severity: Critical
- Priority: Urgent
- SLA Hours: 12
- First Reminder: 6 hours after creation
- Second Reminder: 9 hours after creation
- Escalation: 12 hours after creation
Testing
Use the management command to test SLA reminders:
# Create test complaints and run SLA reminder task
python manage.py test_sla_reminders --run-task
# Dry run (preview only)
python manage.py test_sla_reminders --dry-run
# Test specific scenario
python manage.py test_sla_reminders --scenario assigned --complaint-count 3
# Clean up test data
python manage.py test_sla_reminders --cleanup
SLA Priority Order
- Source-based config (MOH, CCHI, Internal)
- Severity/Priority-based config
- System defaults (from settings)
Key Benefits
✅ Hospital Auto-Selection: No need to manually select hospital each time ✅ PX Admin Only: Secure, role-based access ✅ Visual Interface: Clean, modern UI with badges and stats ✅ Flexible Timing: Support for both modern (after creation) and legacy (before deadline) timing ✅ Toggle Status: Easily enable/disable configs without deleting ✅ Audit Logging: All changes logged for compliance
Session Flow
1. PX Admin logs in
↓
2. Redirected to hospital selection page
↓
3. Selects hospital → stored in session['selected_hospital_id']
↓
4. All SLA configs use this hospital automatically
↓
5. Can switch hospitals anytime from sidebar