Cleaning Management Workflows
This document defines six core workflows for the Cleaning Management module. Each workflow covers process steps, decision logic, integration hooks, exception handling, and the paperless transformation achieved by the HIS.
Regulatory context (UAE): Cleaning workflows must support compliance with: - DOH Abu Dhabi and DHA Dubai infection prevention and environmental services standards (including integration with Malaffi and NABIDH bed/encounter data where applicable). - MOHAP requirements for infection control and environmental hygiene in federal facilities. - UAE PDPL (Federal Decree-Law No. 45/2021) for protection of staff and patient-related data (e.g., infection flags, staff identifiers). - ADHICS / TDRA/NESA cybersecurity controls for mobile devices and real-time dashboards.
Shared entities (patients, encounters, beds, facilities, departments, locations, users, payers) are referenced from their owning modules as per the overall HIS data model.
WF-CLEANING-001: Discharge / Transfer Bed Cleaning
Process Flow
Actor(s): Cleaning Staff, Charge Nurse, Bed Management Coordinator, Cleaning Supervisor / Dispatcher
Trigger: Patient discharged or transferred (ADT A03/A02 from Scheduling module)
Pre-conditions:
- Encounter status updated to “Discharged” or “Transferred” in
encounters. - Bed linked to encounter is set to “Needs Cleaning” in Scheduling/Bed Management.
- Relevant cleaning protocols and checklists are active in
cleaning_protocolsandcleaning_checklists. - Infection/isolation flags (if any) are available from EHR Infection Control.
- Receive ADT Event
- Scheduling module publishes ADT A03/A02 bed release event (INT-CLN-001).
- Cleaning module creates a new
cleaning_tasksrow with:task_type = 'discharge_bed'bed_id,location_id,encounter_idtrigger_source = 'adt_event'status = 'pending'prioritybased on bed management rules (e.g., ICU > general ward).
- Determine Protocol
- System queries infection/isolation status for the discharged encounter.
- If infection flag present (e.g., MRSA, COVID-19), assign terminal or enhanced protocol; else standard discharge protocol.
-
cleaning_tasks.protocol_idis set accordingly. - Auto-Assignment / Dispatcher Review
- System checks for available Cleaning Staff assigned to the relevant
cleaning_zones.zone_id. - If auto-assignment enabled and staff available → assignassigned_toand setassigned_datetime. - If not, task appears inSCR-CLN-001(Cleaning Task Board) for manual assignment by Supervisor. - Notification to Cleaning Staff
- Assigned staff sees new task in
SCR-CLN-002(My Tasks) and receives push notification with:- Room/bed, protocol type, priority, special infection precautions.
- Arrival and QR Scan
- Cleaning Staff arrives at room and scans room/bed QR code via mobile app.
- System validates that scanned location matches
cleaning_tasks.location_id/bed_id. - On success:statusupdated toin_progressstarted_datetimerecorded- Task timer starts in the mobile UI.
- Checklist Execution
- Staff opens the protocol-specific checklist (linked via
cleaning_tasks.protocol_id → cleaning_protocols.checklist_id). - For eachcleaning_checklist_itemsrow:- Staff marks item as completed/not applicable.
- Mandatory items must be completed; system prevents completion if any mandatory item is unchecked.
- Protocol Application (Standard vs Enhanced vs Terminal)
- If protocol type =
terminalorenhanced, system displays:- Additional PPE requirements.
- Extended surfaces/equipment list.
- Staff follows instructions and confirms completion of protocol-specific steps.
- Record Supplies Used
- Staff records cleaning agents and supplies used (e.g., disinfectant brand, wipes, PPE) per task.
- System inserts rows into
cleaning_supplies_usagewithtask_id,supply_name,quantity_used,unit,lot_number(if applicable). - Complete Task via QR Scan
- After checklist completion, staff scans QR code again to confirm they are still at the correct room/bed.
- System validates:
- All mandatory checklist items completed.
- Any required notes (e.g., stains that cannot be removed) captured.
- On success:
status = 'completed'completed_datetimeset.
- Inspection (If Required)
- If
cleaning_tasks.inspection_required = true(e.g., random sampling or infection-related), system: - Creates a pending
cleaning_inspectionsrecord withre_clean_required = falseinitially. - Notifies Supervisor/Inspection staff to perform inspection (see WF-CLEANING-006).
- If
- Update Bed Status & Notify Bed Management
- Cleaning module publishes bed cleaning status update (INT-CLN-001) to Scheduling/Bed Management:
- Bed status:
Clean/Ready(orClean/Pending Inspectionif inspection required). - Estimated readiness time if inspection pending.
- Bed Management Coordinator sees updated status on Bed Board (
SCR-CLN-003) and can allocate bed to next patient.
- Audit & KPI Update
- System logs actions in audit tables (module-level audit, not detailed here).
- KPIs such as Bed Turnaround Time and Cleaning Response Time are updated from
cleaning_tasks.
Data Modified:
cleaning_tasks— INSERT (task creation), UPDATE (assignment, start, completion, protocol, status).cleaning_supplies_usage— INSERT (one or more rows per task).cleaning_inspections— INSERT (if inspection required).- Shared (via other modules, not owned here):
- Bed status in Scheduling/Bed Management (UPDATE via integration, not direct DB write).
Mermaid Flowchart
Decision Points
- Infection Flag Present?
- If yes → assign terminal/enhanced protocol; mark
inspection_required = trueby default. - If no → assign standard discharge protocol; inspection may be random or policy-based. - Auto-Assignment vs Dispatcher Assignment - If auto-assignment enabled and staff available in zone → system assigns automatically. - Else → task remains unassigned until Dispatcher manually assigns.
- QR Code Validation - If scanned QR does not match task location/bed → system blocks start/completion and prompts user to select correct task or location.
- Checklist Completion - If mandatory items not completed → system prevents task completion and highlights missing items.
- Inspection Required?
- If yes → bed may be set to
Clean/Pending Inspectionand not fully available until inspection passes.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| Scheduling (Bed Management) | Inbound | ADT A03/A02 bed release | Encounter ID, bed_id, location_id, discharge/transfer time | Internal API / event bus — INT-CLN-001 |
| Scheduling (Bed Management) | Outbound | Cleaning task completion / status change | Bed cleaning status (pending/in-progress/ready), timestamps, protocol type | Internal API / event bus — INT-CLN-001 |
| EHR (Infection Control) | Inbound | On task creation | Infection/isolation flags, pathogen type | Internal API — INT-CLN-003 |
| Analytics / Reporting | Outbound | On task updates | Cleaning durations, supplies usage, compliance indicators | Internal ETL / DB views |
Exception Handling
- Missing or Invalid Bed/Location Data
- If ADT event lacks valid
bed_idorlocation_id, system flags task aserrorand alerts Supervisor; no auto-assignment occurs. - No Available Staff in Zone
- Task remains
pendingand unassigned; escalated on Supervisor dashboard with SLA breach timers. - QR Code Scan Failure (camera, network)
- Allow manual entry of room/bed with confirmation; log as exception; Supervisor can review.
- Mobile Connectivity Loss
- Mobile app caches checklist progress offline; syncs when connection restored. If completion cannot be synced within defined time, Supervisor is alerted.
- PDPL/Data Access Violations
- If user lacks permission to view infection details, system shows generic “Enhanced precautions required” instead of pathogen name, while still enforcing terminal protocol.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper cleaning request slips from wards to housekeeping | Automatic task creation from ADT events with digital task board | Eliminates lost/misplaced requests; real-time prioritisation |
| Phone calls from Charge Nurse to housekeeping to release beds | Event-driven notifications and dashboards for Cleaning Staff and Bed Management | Reduces delays and miscommunication; auditable timestamps |
| Manual bed status whiteboards | Bed Cleaning Status Board integrated with Scheduling | Single source of truth; visible across wards and bed management |
| Paper cleaning checklists per room | Protocol-driven digital checklists with mandatory items | Enforces completeness; supports DOH/DHA infection control audits |
| Handwritten logs of cleaning agents used | Structured cleaning_supplies_usage entries per task |
Enables traceability (e.g., for outbreak investigations) |
Remaining Paper Touchpoints: None — fully digital for discharge/transfer bed cleaning.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
| Scheduling (ADT) via INT-CLN-001 | ADT A03/A02 bed release event | Contains encounter ID, bed_id, location_id, discharge/transfer timestamp |
| EHR Infection Control via INT-CLN-003 | Infection/isolation flags, pathogen type | Determines protocol selection (standard vs terminal vs enhanced) |
cleaning_protocols |
Applicable protocol and associated checklist | Matched by task type + infection status |
cleaning_zones |
Zone assignment for staff routing | Maps bed location to cleaning zone |
cleaning_staff |
Available staff in zone with shift and certification data | Used for auto-assignment or dispatcher selection |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_tasks |
Task record: type, protocol, assignment, status, timestamps | INSERT on ADT event; UPDATE through lifecycle |
cleaning_supplies_usage |
Supplies and agents used per task | INSERT (one or more rows) |
cleaning_inspections |
Inspection record (if required) | INSERT; linked to task |
| Scheduling (Bed Management) via INT-CLN-001 | Bed status: Clean/Ready or Clean/Pending Inspection |
Outbound status update on task completion |
| Bed Cleaning Status Board (SCR-CLN-003) | Real-time bed cleaning status | Dashboard feed |
Post-conditions:
- Bed cleaned according to appropriate protocol (standard, enhanced, or terminal)
- All mandatory checklist items completed and recorded
- Supplies usage logged for traceability
- Bed status updated in Scheduling for next patient allocation
- Bed turnaround time KPI data captured
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Task creation from ADT event | ≤ 1 min from ADT message receipt | Alert IT if task not created within 5 min | cleaning_tasks.created_at − ADT event timestamp |
| Staff assignment | ≤ 5 min from task creation | Escalate to Supervisor if unassigned after 10 min | cleaning_tasks.assigned_datetime − created_at |
| Cleaning start (arrival + QR scan) | ≤ 15 min from assignment (standard); ≤ 10 min (high priority) | Alert Supervisor if not started within target + 5 min | cleaning_tasks.started_datetime − assigned_datetime |
| Cleaning completion (standard discharge) | ≤ 30 min from start | Escalate to Supervisor if not completed within 45 min | cleaning_tasks.completed_datetime − started_datetime |
| Cleaning completion (enhanced/terminal) | ≤ 60 min from start | Escalate to Supervisor if not completed within 90 min | cleaning_tasks.completed_datetime − started_datetime |
| Bed status update to Scheduling | ≤ 1 min from task completion | Alert IT if status not published within 5 min | Integration engine message log |
| Overall bed turnaround (ADT to Ready) | ≤ 60 min (standard); ≤ 120 min (terminal) | Alert Bed Management Coordinator if breached | cleaning_tasks.completed_datetime − ADT event timestamp |
State Transition Diagram
WF-CLEANING-002: OR Turnover Cleaning
Process Flow
Actor(s): OR Cleaning Staff, OR Nurse, Cleaning Supervisor / Dispatcher
Trigger: Surgical case completed and patient transferred to recovery in OR Management module
Pre-conditions:
- OR case status set to “Completed” in OR Scheduling.
- OR room marked as “Needs Cleaning” in OR Management.
- OR-specific cleaning protocols and checklists configured in
cleaning_protocols(e.g.,protocol_type = 'or_turnover'oror_terminal).
- OR Case Completion Event
- OR module publishes case completion event (INT-CLN-002) with OR room, case type, contamination/infection status.
- Cleaning module creates a
cleaning_tasksrow:task_type = 'or_turnover'location_id= OR room locationtrigger_source = 'or_case_complete'status = 'pending'
- Determine OR Protocol
- System checks case contamination level and infection flags.
- If contaminated/infectious case → assign OR terminal protocol; else standard OR turnover protocol.
-
protocol_idupdated accordingly. - Assign OR Cleaning Team
- System assigns task to OR Cleaning Staff group or specific staff based on OR zone.
-
assigned_toandassigned_datetimeset; notification sent to OR Cleaning Staff. - OR Cleaning Start
- OR Cleaning Staff opens task on mobile device (
SCR-CLN-002). - Staff scans OR room QR code to start. - On successful validation:status = 'in_progress'started_datetimerecorded.
- Execute OR-Specific Checklist - System loads OR checklist (e.g., surgical surfaces, anesthesia machine, monitors, floor, waste disposal). - Staff completes items; mandatory items enforced.
- Terminal Cleaning for Contaminated Cases
- If protocol type is terminal:
- Additional steps (e.g., high-level disinfection of equipment, extended contact times) are displayed.
- Staff confirms completion of terminal-specific items.
- Record Cleaning Time and Supplies
- Staff confirms start/end times (auto-captured but editable with reason).
- Supplies and agents used recorded into
cleaning_supplies_usage. - OR Nurse Readiness Verification - Once staff marks checklist complete, system notifies OR Nurse. - OR Nurse reviews room, may have a simplified verification checklist.
- Decision: Room Ready?
- If OR Nurse identifies issues (e.g., visible contamination):
- Task is set to
rework_requiredorin_progressagain. - Additional notes added; Cleaning Staff notified to re-clean specific areas.
- If acceptable:
- OR Nurse marks room as “Ready” in OR module or via Cleaning UI.
- Task is set to
- Task Completion and OR Status Update
- On readiness confirmation:
cleaning_tasks.status = 'completed'completed_datetimeset.- Cleaning module publishes OR room status update (INT-CLN-002) to OR Management:
- Room status:
Ready for Next Case. - Turnover time calculated.
- Dashboard Update
- OR Turnover Dashboard (
SCR-CLN-004) shows: - Actual turnover time vs target.
- Next case info and readiness.
- OR Turnover Dashboard (
Data Modified:
cleaning_tasks— INSERT (task), UPDATE (protocol, assignment, start, completion, status).cleaning_supplies_usage— INSERT.- Possibly
cleaning_inspections— INSERT if OR inspections are configured (optional). - OR room status in OR Management (via integration).
Mermaid Flowchart
Decision Points
- Contaminated/Infectious Case? - If yes → OR terminal protocol with extended steps and possibly inspection. - If no → standard OR turnover protocol.
- QR Validation - If QR does not match OR room → prevent task start; avoid mis-logging cleaning to wrong OR.
- OR Nurse Readiness Decision
- If not satisfied → task returns to
in_progresswith re-clean instructions. - If satisfied → task completes and OR room becomes available. - Terminal vs Standard Protocol - Determines additional steps, PPE, and possibly longer target turnover time.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| OR Management / Scheduling | Inbound | Case completion | OR room ID, case contamination status, timestamps | Internal API / event bus — INT-CLN-002 |
| OR Management / Scheduling | Outbound | Cleaning completion | OR room cleaning status, turnover time | Internal API / event bus — INT-CLN-002 |
| Infection Control (optional) | Inbound | On case completion | Infection risk flags | Internal API |
Exception Handling
- OR Case Event Missing or Delayed
- If OR completion event not received, OR Nurse can manually trigger cleaning task from OR module; system logs manual trigger.
- Staff Unavailable
- If no OR Cleaning Staff available, task escalated to Supervisor with SLA alerts.
- Disagreement Between Staff and OR Nurse
- If repeated re-clean requests occur, system flags for Supervisor review and potential staff retraining.
- System Downtime
- OR staff may use a minimal offline checklist; later, Supervisor can back-enter cleaning task with timestamps; flagged as “offline entry” for audit.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Verbal OR cleaning requests after each case | Automatic OR turnover task creation from OR case completion | Reduces missed turnovers; clear audit trail |
| Paper OR turnover checklists | OR-specific digital checklists with mandatory items | Supports DOH/DHA OR infection control audits |
| Whiteboard OR room status | OR Turnover Dashboard with real-time status | Improves scheduling efficiency and turnover KPIs |
| Manual logs of OR turnover times | Automatic calculation from started_datetime and completed_datetime |
Accurate KPIs for OR utilisation |
Remaining Paper Touchpoints: None — fully digital for OR turnover cleaning.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
| OR Management / Scheduling via INT-CLN-002 | OR case completion event: OR room ID, case type, contamination/infection status | Internal API / event bus |
cleaning_protocols |
OR-specific protocol (standard turnover vs terminal) | Matched by contamination status |
cleaning_staff |
OR Cleaning Staff availability and zone assignment | Used for team assignment |
| Infection Control (optional) | Infection risk flags for case | Internal API |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_tasks |
OR turnover task record: type, protocol, assignment, status, timestamps | INSERT on case completion; UPDATE through lifecycle |
cleaning_supplies_usage |
Cleaning agents and supplies used | INSERT (one or more rows) |
| OR Management / Scheduling via INT-CLN-002 | OR room status: Ready for Next Case |
Outbound status update on completion |
| OR Turnover Dashboard (SCR-CLN-004) | Actual turnover time vs target, readiness status | Real-time dashboard feed |
Post-conditions:
- OR room cleaned and verified ready for next surgical case
- OR Nurse readiness verification completed
- Turnover time calculated and available for KPI reporting
- OR room status updated in OR Management for scheduling
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Task creation from OR case completion | ≤ 1 min from case completion event | Alert IT if task not created within 3 min | cleaning_tasks.created_at − case completion timestamp |
| Staff assignment | ≤ 3 min from task creation | Escalate to Supervisor if unassigned after 5 min | cleaning_tasks.assigned_datetime − created_at |
| Cleaning start (QR scan) | ≤ 5 min from assignment | Alert Supervisor if not started within 10 min | cleaning_tasks.started_datetime − assigned_datetime |
| Standard OR turnover completion | ≤ 20 min from start | Escalate to Supervisor if not completed within 30 min | cleaning_tasks.completed_datetime − started_datetime |
| Terminal OR cleaning completion | ≤ 45 min from start | Escalate to Supervisor if not completed within 60 min | cleaning_tasks.completed_datetime − started_datetime |
| OR Nurse readiness verification | ≤ 5 min from cleaning completion | Alert OR Charge Nurse if not verified within 10 min | Verification timestamp − completed_datetime |
| OR room status update | ≤ 1 min from readiness confirmation | Alert IT if not published within 3 min | Integration engine message log |
State Transition Diagram
WF-CLEANING-003: Scheduled Routine Cleaning
Process Flow
Actor(s): Cleaning Staff, Facilities Supervisor
Trigger: Time-based schedule (daily/weekly/monthly) from cleaning_schedules
Pre-conditions:
- Active
cleaning_schedulesconfigured percleaning_zonesand facility. - Staff assigned to zones and shifts in
cleaning_staff. - Checklists and protocols for routine cleaning are active.
- Generate Daily Schedule
- At configured times (e.g., midnight), system generates routine cleaning tasks from
cleaning_schedules:- For each active schedule row, create
cleaning_taskswith: task_type = 'routine'zone_id,facility_id,location_id(if specific)trigger_source = 'schedule'status = 'pending'.
- For each active schedule row, create
- Assign Tasks by Zone
- System auto-assigns tasks to Cleaning Staff based on:
cleaning_staff.zone_id- Shift definitions (e.g., morning, evening).
- If auto-assignment not possible, tasks appear unassigned for Supervisor in
SCR-CLN-005.
- Staff Receives Shift Task List - At shift start, Cleaning Staff opens mobile app to see “My Tasks” for the shift. - Tasks are sorted by priority and due time.
- Start Zone Cleaning
- Staff navigates to first location/zone checkpoint.
- Scans QR code at zone checkpoint to confirm presence.
- System validates zone and sets
status = 'in_progress'andstarted_datetime. - Execute Zone Protocol - Staff follows zone-specific protocol (public areas, corridors, elevators, offices, clinics). - Completes checklist items for each area in the zone.
- Record Maintenance Issues
- If staff finds broken fixtures, spills, or other issues:
- They log an issue within the task.
- System creates an outbound maintenance work order via INT-CLN-004 (Facilities/Maintenance).
- Complete Zone Task
- After all areas in the zone are cleaned and checklist items completed:
- Staff scans QR code again at checkpoint to confirm completion.
status = 'completed',completed_datetimerecorded.
- Supervisor Dashboard Review
- Facilities Supervisor reviews completion status on dashboard:
- Overdue tasks highlighted.
- Completion rates per zone/shift.
- Escalate Incomplete Tasks
- For tasks not completed by end of shift:
- Supervisor may reassign to next shift or mark as
deferredwith reason.
- Supervisor may reassign to next shift or mark as
Data Modified:
cleaning_tasks— INSERT (scheduled tasks), UPDATE (assignment, start, completion, status, deferment).cleaning_supplies_usage— INSERT (if supplies tracked for routine tasks).- Maintenance system (via integration) — new work orders (not in this module’s DB).
Mermaid Flowchart
Decision Points
- QR Zone Validation - If QR does not match expected zone → system blocks start/completion.
- Maintenance Issue Found? - If yes → create maintenance work order; link to task for traceability.
- Checklist Completion - If mandatory items incomplete → prevent task completion.
- Overdue/Incomplete Tasks - Supervisor decides whether to reassign, defer, or mark as exception.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| Facilities / Maintenance | Outbound | Maintenance issue logged | Location, issue type, priority, photos (if any) | Internal API / work order system — INT-CLN-004 |
| Scheduling (for staff shifts) | Inbound | Shift planning | Staff shift info (optional) | Internal API |
| Analytics | Outbound | Task updates | Scheduled completion KPIs | Internal ETL |
Exception Handling
- Schedule Misconfiguration
- If
cleaning_scheduleshas invalid zone/facility references, system logs error and notifies Facilities Manager; tasks not generated. - Staff Overload
- If a staff member is assigned too many tasks (beyond threshold), system flags for Supervisor to rebalance.
- Missed Tasks
- Tasks not started by a certain time are flagged; Supervisor can reassign or mark as
missedwith reason. - Offline Operation
- If QR scanning fails due to connectivity, staff can manually confirm zone; flagged for audit.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Printed daily/weekly cleaning schedules posted on walls | Auto-generated digital schedules from cleaning_schedules |
Ensures latest schedule; easy updates without reprinting |
| Manual sign-off sheets for routine cleaning | Digital task completion with timestamps and user IDs | Strong audit trail; supports MOH/DOH/DHA inspections |
| Paper maintenance request forms | In-app maintenance issue logging with automatic work orders | Faster response; better tracking of recurring issues |
Remaining Paper Touchpoints: None — routine schedules and sign-offs are fully digital.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
cleaning_schedules |
Schedule definitions: zone, frequency, time slots, protocol | Auto-generates tasks at configured intervals |
cleaning_staff |
Staff zone assignments and shift definitions | Used for auto-assignment by zone/shift |
cleaning_protocols |
Zone-specific routine cleaning protocol and checklist | Loaded on task start |
| QR codes at zone checkpoints | Zone/location verification data | Scanned to confirm staff presence |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_tasks |
Routine task records: type, zone, assignment, status, timestamps | INSERT (batch generation); UPDATE through lifecycle |
cleaning_supplies_usage |
Supplies used per routine task (if tracked) | INSERT |
| Facilities / Maintenance via INT-CLN-004 | Maintenance work orders for issues found during cleaning | Outbound via internal API |
| Supervisor Dashboard (SCR-CLN-005) | Completion rates per zone/shift, overdue task alerts | Real-time dashboard feed |
Post-conditions:
- All scheduled zones cleaned per protocol within shift
- Maintenance issues identified and reported via work orders
- Completion rates and compliance data available for supervisor review
- Any deferred or missed tasks documented with reason
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Daily schedule generation | Completed by start of first shift (e.g., 06:00) | Alert IT if generation fails | System scheduler log |
| Task auto-assignment | ≤ 5 min from generation | Alert Supervisor if unassigned tasks remain 15 min into shift | cleaning_tasks.assigned_datetime |
| Zone cleaning start | ≤ 15 min from scheduled start time | Alert Supervisor if not started within 30 min | cleaning_tasks.started_datetime − scheduled time |
| Zone cleaning completion | Per zone target (e.g., 30–60 min depending on zone size) | Escalate if not completed by end of zone time window | cleaning_tasks.completed_datetime − started_datetime |
| Shift completion rate | ≥ 95% of scheduled tasks completed per shift | Alert Facilities Manager if < 90% | Supervisor dashboard aggregation |
| Overdue task escalation | Auto-escalate tasks not started within 1 h of scheduled time | Supervisor notified for reassignment or deferral | cleaning_tasks.status still pending past threshold |
WF-CLEANING-004: Terminal / Infection-Control Cleaning
Process Flow
Actor(s): Infection Control Nurse, Specialized Cleaning Staff, Infection Control Officer
Trigger: Patient with known infection discharged/transferred, or isolation precaution flag set; outbreak alert from Infection Control
Pre-conditions:
- Infection/isolation flags available from EHR Infection Control.
- Terminal cleaning protocols defined in
cleaning_protocolswith associated checklists. - Specialized Cleaning Staff with appropriate certifications (
certification_infection_control,certification_biohazard) defined incleaning_staff.
- Flag Room for Terminal Cleaning - Infection Control Nurse flags room/bed for terminal cleaning via Infection Control module or Bed Board. - Alternatively, system auto-flags when certain infection/isolation flags are present at discharge.
- Create Terminal Cleaning Task
- Cleaning module creates
cleaning_tasksrow:task_type = 'terminal'trigger_source = 'infection_control'inspection_required = truepriorityset to high.
- Select Protocol Based on Pathogen
- System retrieves pathogen type (e.g., C. difficile, COVID-19, MDR organisms).
- Maps pathogen to specific terminal protocol in
cleaning_protocols(e.g., specific disinfectant, UV/fogging requirement). - Setsprotocol_idaccordingly. - Assign Specialized Cleaning Team
- System filters
cleaning_stafffor:- Correct zone.
certification_infection_control = true(andcertification_biohazard = trueif required).- Assigns task to qualified staff; if none available, escalates to Supervisor.
- Staff Receives Detailed Instructions
- Specialized Cleaning Staff receives task with:
- PPE requirements.
- Required agents and contact times.
- Any additional steps (e.g., curtain removal, vent cleaning).
- Start Terminal Cleaning
- Staff scans room QR code to start;
status = 'in_progress',started_datetimeset. - Execute Terminal Checklist
- Staff completes extended checklist:
- All surfaces, vents, curtains, equipment, high-touch areas.
- Waste disposal and linen handling per infection control policy.
- Apply UV Disinfection or Fogging (If Required)
- If protocol requires UV/fogging:
- Staff records device used, cycle duration, and start/end times.
- System may interface with UV device logs (optional).
- Record Agents, Contact Times, and PPE
- Staff records:
- All agents used and their contact times.
- PPE worn (type, quantity).
- Inserts multiple rows into
cleaning_supplies_usage.
- Post-Cleaning Environmental Sampling (If Required)
- Infection Control team may perform environmental sampling (e.g., ATP testing).
- Results recorded in
cleaning_inspections(score, pass/fail, notes).
- Inspection and Clearance
- Infection Control Officer or delegate reviews inspection results.
- If pass:
cleaning_inspections.pass_fail = 'pass'cleaning_tasks.inspection_result = 'pass'- Room marked as terminally cleaned and cleared.
- If fail:
cleaning_inspections.pass_fail = 'fail're_clean_required = true- System creates a new re-cleaning
cleaning_tasksor reopens existing one.
- Update Bed/Room Status
- Once cleared, Cleaning module updates bed/room status via Scheduling:
- Status:
Terminally Cleaned/Ready. - Bed can now be allocated to new patients.
Data Modified:
cleaning_tasks— INSERT (terminal task), UPDATE (assignment, start, completion, inspection_result).cleaning_supplies_usage— INSERT (agents, PPE).cleaning_inspections— INSERT (environmental sampling, inspection), UPDATE (pass/fail, re_clean_required).
Mermaid Flowchart
Decision Points
- Qualified Staff Available? - If no → escalate to Supervisor and Infection Control; may delay bed availability.
- Protocol Requires UV/Fogging? - If yes → additional steps and device logging required.
- Inspection Pass or Fail? - If fail → re-clean required; new task or reopened task. - If pass → room cleared for new patient.
- Pathogen-Specific Protocol Mapping - Different pathogens may require different agents and contact times.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| EHR (Infection Control) | Inbound | Infection flag / outbreak alert | Pathogen type, isolation status, room/bed | Internal API — INT-CLN-003 |
| Scheduling (Bed Management) | Outbound | Terminal cleaning completion | Bed/room status = Terminally Cleaned/Ready | Internal API / event bus |
| Infection Control Analytics | Outbound | On completion | Terminal cleaning compliance metrics | Internal ETL |
Exception Handling
- Incomplete Pathogen Data
- If pathogen type unknown, system uses generic high-level terminal protocol and flags case for Infection Control review.
- Environmental Sampling Not Performed
- If required sampling not recorded within defined time, system sends reminder to Infection Control and prevents room clearance.
- PDPL Considerations
- Staff see only necessary infection control instructions; detailed pathogen info may be restricted to Infection Control roles.
- Device Integration Failure (UV/Fogging)
- If device logs cannot be retrieved, staff can manually enter cycle details; flagged for audit.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper terminal cleaning forms and sign-offs | Structured terminal cleaning tasks with digital checklists and e-signatures | Ensures completeness and traceability for high-risk rooms |
| Manual infection-control sign-off sheets | Digital inspection records in cleaning_inspections linked to tasks |
Supports DOH/DHA and MOH infection control audits |
| Handwritten logs of agents and contact times | Structured cleaning_supplies_usage entries with pathogen-specific protocols |
Enables detailed outbreak investigations and compliance reporting |
Remaining Paper Touchpoints: None — terminal cleaning documentation is fully digital.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
| Infection Control via INT-CLN-003 | Infection/isolation flags, pathogen type, isolation status | Determines pathogen-specific protocol |
| EHR / Bed Board | Room/bed flagged for terminal cleaning | Manual flag by IC Nurse or auto-flag on discharge |
cleaning_protocols |
Terminal protocol mapped to pathogen type | Includes agent, contact time, PPE, UV/fogging requirements |
cleaning_staff |
Specialized staff with certification_infection_control and certification_biohazard |
Filtered for qualified assignment |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_tasks |
Terminal cleaning task record with high priority and inspection_required = true |
INSERT on flag; UPDATE through lifecycle |
cleaning_supplies_usage |
Agents, contact times, PPE used | INSERT (multiple rows per task) |
cleaning_inspections |
Environmental sampling results, inspection score, pass/fail | INSERT; linked to task |
| Scheduling (Bed Management) | Bed/room status = Terminally Cleaned/Ready |
Outbound status update on clearance |
| Infection Control Analytics | Terminal cleaning compliance metrics | Outbound ETL |
Post-conditions:
- Room terminally cleaned per pathogen-specific protocol
- Environmental sampling completed and passed (if required)
- Infection Control Officer clearance obtained
- Bed/room released for new patient allocation
- Full audit trail of agents, contact times, and inspection results
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Task creation from infection flag | ≤ 5 min from flag event | Alert Supervisor if task not created within 10 min | cleaning_tasks.created_at − flag timestamp |
| Specialized staff assignment | ≤ 10 min from task creation | Escalate to Cleaning Supervisor + IC Officer if unassigned after 15 min | cleaning_tasks.assigned_datetime − created_at |
| Terminal cleaning start | ≤ 15 min from assignment | Alert Supervisor if not started within 20 min | cleaning_tasks.started_datetime − assigned_datetime |
| Terminal cleaning completion | ≤ 60 min from start (standard); ≤ 90 min (C. diff / MDR) | Escalate to IC Officer if not completed within target + 30 min | cleaning_tasks.completed_datetime − started_datetime |
| Environmental sampling and results | ≤ 30 min from cleaning completion | Alert IC Officer if sampling not performed within 45 min | cleaning_inspections.inspection_datetime − completed_datetime |
| IC Officer clearance | ≤ 15 min from sampling results | Escalate to IC lead if not cleared within 30 min | Clearance timestamp − sampling completion |
| Bed status update | ≤ 1 min from clearance | Alert IT if status not published within 5 min | Integration engine message log |
State Transition Diagram
WF-CLEANING-005: Ad-Hoc / Emergency Cleaning Request
Process Flow
Actor(s): Any Staff, Cleaning Dispatcher, Cleaning Staff
Trigger: Spill, biohazard, patient request, or unexpected cleaning need
Pre-conditions:
- Staff have access to request interface (mobile/desktop).
- Emergency/biohazard protocols defined in
cleaning_protocols.
- Submit Cleaning Request
- Any staff member (e.g., nurse, porter) opens cleaning request form.
- Enters:
- Location (facility, department, room).
- Type (spill, biohazard, general).
- Urgency (STAT, urgent, routine).
- Optional notes and photos.
- Create Ad-Hoc Task
- System creates
cleaning_tasksrow:task_type = 'ad_hoc'trigger_source = 'manual_request'prioritybased on urgency and type (biohazard → highest).
- Determine Protocol - If type = biohazard → assign biohazard protocol. - If type = spill (non-biohazard) → assign spill protocol. - Else → general spot-clean protocol.
- Dispatcher Review and Assignment
- Cleaning Dispatcher sees new request on Task Board (
SCR-CLN-001). - Assigns to nearest available Cleaning Staff based on zone and current workload. - Staff Notification - Assigned staff receives urgent notification with location and protocol.
- Start Emergency Cleaning
- Staff travels to location and scans QR code (if available) or confirms location manually.
-
status = 'in_progress',started_datetimeset. - Execute Protocol
- Staff follows protocol-specific steps:
- For biohazard: appropriate PPE, containment, disposal per infection control.
- For spills: proper absorbent materials and disinfectants.
- Record Materials Used
- Staff records supplies and agents used in
cleaning_supplies_usage. - Completion
- Staff confirms area is safe and clean.
- Scans QR code or confirms location to complete task.
-
status = 'completed',completed_datetimeset. - Biohazard Documentation (If Applicable)
- For biohazard tasks, additional documentation fields may be required:
- Type of biohazard (blood, body fluids, etc.).
- Exposure incidents (if any).
- Data may be shared with Infection Control for monitoring.
Data Modified:
cleaning_tasks— INSERT (ad-hoc task), UPDATE (assignment, start, completion).cleaning_supplies_usage— INSERT.- Optional: Incident reporting system (if integrated) for exposures.
Mermaid Flowchart
Decision Points
- Request Type (biohazard vs spill vs general) - Determines protocol, PPE, and priority.
- Location Validation - If location cannot be validated (e.g., QR missing), staff must manually confirm; flagged for audit.
- Biohazard Documentation - If biohazard → additional documentation and possible notification to Infection Control.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| Incident Reporting / Risk Management (optional) | Outbound | Biohazard exposure | Task details, exposure info | Internal API |
| Infection Control (optional) | Outbound | Biohazard events | Location, type, frequency | Internal API |
Exception Handling
- Duplicate Requests
- If multiple requests received for same location and short time window, system suggests merging; Dispatcher can mark duplicates.
- No Staff Available
- If no staff available, system escalates to Supervisor and sends alert to requesting user with expected delay.
- High Volume of Emergencies
- System may temporarily reprioritise routine tasks to free staff for emergencies; Supervisor approval required.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Phone calls to housekeeping for spills and emergencies | Structured digital requests with location, type, urgency | Reduces miscommunication; provides audit trail |
| Paper emergency cleaning logs | Real-time cleaning_tasks records with timestamps and staff IDs |
Enables response time KPIs and incident analysis |
| Manual biohazard incident forms | Integrated biohazard documentation linked to tasks | Supports infection control and occupational health reporting |
Remaining Paper Touchpoints: None — emergency requests and documentation are digital; some facilities may still print incident summaries for external reporting if required.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
| Any staff (nurse, porter, etc.) | Cleaning request: location, type (spill/biohazard/general), urgency, notes, photos | Submitted via mobile or desktop request form |
cleaning_protocols |
Protocol matched to request type and urgency | Biohazard → biohazard protocol; spill → spill protocol; general → spot-clean |
cleaning_staff |
Available staff by zone and current workload | Used by Dispatcher for assignment |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_tasks |
Ad-hoc task record: type, trigger, priority, protocol, assignment, status, timestamps | INSERT on request; UPDATE through lifecycle |
cleaning_supplies_usage |
Supplies and agents used | INSERT |
| Incident Reporting / Risk Management (optional) | Biohazard exposure details | Outbound for biohazard tasks |
| Infection Control (optional) | Biohazard event data: location, type, frequency | Outbound for monitoring |
| Requesting staff | Status updates and estimated arrival time | Push notification |
Post-conditions:
- Area cleaned and verified safe
- Biohazard documentation captured (if applicable)
- Response time recorded for KPI tracking
- Any exposure incidents reported to appropriate systems
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Request acknowledgement | ≤ 2 min from submission | Alert Supervisor if not acknowledged within 5 min | cleaning_tasks.created_at |
| Dispatcher assignment | ≤ 5 min from request (STAT/biohazard); ≤ 10 min (urgent); ≤ 15 min (routine) | Escalate to Supervisor if unassigned past target | cleaning_tasks.assigned_datetime − created_at |
| Staff arrival at location | ≤ 10 min (STAT/biohazard); ≤ 20 min (urgent); ≤ 30 min (routine) | Alert Supervisor and requesting staff if not arrived on time | cleaning_tasks.started_datetime − assigned_datetime |
| Cleaning completion | ≤ 15 min (spill); ≤ 30 min (biohazard); ≤ 20 min (general) | Escalate if not completed within target + 15 min | cleaning_tasks.completed_datetime − started_datetime |
| Biohazard documentation | ≤ 10 min after completion | Alert IC and Supervisor if not documented within 20 min | Documentation timestamp − completed_datetime |
State Transition Diagram
WF-CLEANING-006: Cleaning Quality Inspection
Process Flow
Actor(s): Facilities Supervisor, Infection Control Officer, Quality Inspector
Trigger: Scheduled inspection, random audit, or post-terminal cleaning verification
Pre-conditions:
- Inspection checklist templates and scoring criteria defined in
cleaning_checklistsand master data. - Inspectors have access to
SCR-CLN-006(Quality Inspection Form).
- Select Rooms/Areas for Inspection
- Inspector opens inspection module and selects:
- Specific rooms/areas.
- Or uses random sampling function (e.g., 10% of completed tasks).
- For post-terminal cleaning, system may auto-suggest rooms based on recent terminal tasks.
- Open Inspection Form
- Inspector selects a target (room/area or specific
cleaning_tasks.task_id). - System loads appropriate inspection checklist (visual, surface testing, ATP). - Perform Inspection
- Inspector walks through area, checking each item:
- Visual cleanliness.
- Surface swab/ATP readings (if devices integrated).
- Marks each item as pass/fail and enters scores.
- Capture Photos and Notes - Inspector can take photos of deficiencies. - Photos and notes attached to inspection record.
- Determine Overall Score and Pass/Fail - System calculates overall score based on scoring criteria. - Inspector confirms pass/fail decision.
- Create Re-Clean Task if Fail
- If fail:
- System creates a new
cleaning_tasksrow: task_type = 're_clean'trigger_source = 'inspection_fail'- Links to
inspection_id. re_clean_required = trueincleaning_inspections.
- System creates a new
- Record Inspection Result
- System inserts
cleaning_inspectionsrow with:inspection_datetime,inspector_id,location_id,task_id(if applicable).score,pass_fail,deficiencies,photo_paths.
- Track Performance Over Time
- Inspection results feed into analytics:
- Pass rate per zone, staff, protocol type.
- Trends over time.
- Generate Monthly Quality Reports - Facilities Manager and Infection Control Officer can generate reports for DOH/DHA/MOH audits.
Data Modified:
cleaning_inspections— INSERT (inspection), UPDATE (re_clean_required).cleaning_tasks— INSERT (re-clean tasks).
Mermaid Flowchart
Decision Points
- Selection of Areas - Inspector may choose targeted rooms (e.g., high-risk areas) or random sampling.
- Pass/Fail Threshold - Based on scoring criteria; threshold configurable by facility.
- Re-Clean Required? - If fail → re-clean task created; if pass → no further action.
Integration Points
| External Module / System | Direction | Trigger | Data Exchanged | Protocol / ID |
|---|---|---|---|---|
| Infection Control | Outbound | Post-terminal inspection | Inspection results, pass/fail, deficiencies | Internal API |
| Analytics / BI | Outbound | On inspection completion | Scores, pass rates, trends | Internal ETL |
Exception Handling
- Inspector Conflict of Interest
- System can enforce that inspector is not the same person who performed the cleaning task (role-based rule).
- Photo Upload Failures
- If photo upload fails, system allows text-only inspection; logs error for IT review.
- Device Integration Issues (ATP meters)
- If ATP device integration fails, inspector can manually enter readings; flagged for audit.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper inspection forms and manual scoring sheets | Digital inspection forms with automated scoring | Reduces errors; speeds up reporting |
| Physical photo printouts attached to reports | In-app photo capture stored with inspection records | Easier retrieval; supports remote audits |
| Manual compilation of monthly quality reports | Automated dashboards and exportable reports | Saves time; supports DOH/DHA/MOH inspections and accreditation |
Remaining Paper Touchpoints: None — inspections and reporting are fully digital; printed reports may be generated only when required by external auditors.
Inputs and Outputs
Inputs:
| Source | Data Element | Format / Notes |
|---|---|---|
| Inspector selection | Rooms/areas selected for inspection (targeted or random sampling) | Manual selection or system-suggested (post-terminal) |
cleaning_tasks |
Completed cleaning task linked to inspection (if applicable) | task_id reference |
cleaning_checklists |
Inspection checklist template with scoring criteria | Loaded based on inspection type |
| ATP/surface testing devices (optional) | Environmental sampling readings | Manual entry or device integration |
| Inspector mobile device | Photos of deficiencies and free-text notes | Captured in-app |
Outputs:
| Destination | Data Element | Format / Notes |
|---|---|---|
cleaning_inspections |
Inspection record: datetime, inspector, location, score, pass/fail, deficiencies, photos | INSERT |
cleaning_tasks |
Re-clean task (if inspection fails) | INSERT with task_type = 're_clean', trigger_source = 'inspection_fail' |
| Infection Control | Post-terminal inspection results | Outbound via internal API |
| Analytics / BI | Inspection scores, pass rates, trends by zone/staff/protocol | Outbound ETL |
| Monthly quality reports | Aggregated inspection data for DOH/DHA/MOH audits | Generated on demand |
Post-conditions:
- Inspection result recorded with score and pass/fail determination
- Re-clean task created if inspection fails
- Performance trends available for staff training and quality improvement
- Audit-ready documentation for regulatory inspections
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Inspection initiation (post-terminal) | ≤ 30 min from terminal cleaning completion | Alert IC Officer if not initiated within 45 min | cleaning_inspections.inspection_datetime − terminal task completed_datetime |
| Inspection completion | ≤ 20 min per room/area | Alert Supervisor if inspection exceeds 30 min | Inspection duration from start to save |
| Re-clean task creation (on fail) | ≤ 2 min from fail determination | Automatic; alert Supervisor | cleaning_tasks.created_at − inspection save time |
| Re-clean completion and re-inspection | ≤ 60 min from re-clean task creation | Escalate to Facilities Manager if not completed within 90 min | Re-clean completed_datetime − created_at |
| Monthly quality report generation | By 5th business day of following month | Alert Facilities Manager if report not generated | Report generation log |