Cleaning Management Workflows

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_protocols and cleaning_checklists.
  • Infection/isolation flags (if any) are available from EHR Infection Control.
  1. Receive ADT Event - Scheduling module publishes ADT A03/A02 bed release event (INT-CLN-001). - Cleaning module creates a new cleaning_tasks row with:
    • task_type = 'discharge_bed'
    • bed_id, location_id, encounter_id
    • trigger_source = 'adt_event'
    • status = 'pending'
    • priority based on bed management rules (e.g., ICU > general ward).
  2. 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_id is set accordingly.
  3. 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 → assign assigned_to and set assigned_datetime. - If not, task appears in SCR-CLN-001 (Cleaning Task Board) for manual assignment by Supervisor.
  4. 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.
  5. 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:
    • status updated to in_progress
    • started_datetime recorded
    • Task timer starts in the mobile UI.
  6. Checklist Execution - Staff opens the protocol-specific checklist (linked via cleaning_tasks.protocol_id → cleaning_protocols.checklist_id). - For each cleaning_checklist_items row:
    • Staff marks item as completed/not applicable.
    • Mandatory items must be completed; system prevents completion if any mandatory item is unchecked.
  7. Protocol Application (Standard vs Enhanced vs Terminal) - If protocol type = terminal or enhanced, system displays:
    • Additional PPE requirements.
    • Extended surfaces/equipment list.
    • Staff follows instructions and confirms completion of protocol-specific steps.
  8. Record Supplies Used - Staff records cleaning agents and supplies used (e.g., disinfectant brand, wipes, PPE) per task. - System inserts rows into cleaning_supplies_usage with task_id, supply_name, quantity_used, unit, lot_number (if applicable).
  9. 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_datetime set.
  10. Inspection (If Required)
    • If cleaning_tasks.inspection_required = true (e.g., random sampling or infection-related), system:
    • Creates a pending cleaning_inspections record with re_clean_required = false initially.
    • Notifies Supervisor/Inspection staff to perform inspection (see WF-CLEANING-006).
  11. Update Bed Status & Notify Bed Management
    • Cleaning module publishes bed cleaning status update (INT-CLN-001) to Scheduling/Bed Management:
    • Bed status: Clean/Ready (or Clean/Pending Inspection if 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.
  12. 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

flowchart TD A["ADT A03/A02 Bed Release Event"] --> B["Create cleaning_tasks row (pending)"] B --> C["Check infection/isolation flags"] C --> D{"Infection flag present?"} D -->|"Yes"| E["Assign terminal/enhanced protocol_id"] D -->|"No"| F["Assign standard protocol_id"] E --> G F --> G["Determine assignment (auto or dispatcher)"] G --> H{"Staff auto-assigned?"} H -->|"Yes"| I["Notify assigned Cleaning Staff"] H -->|"No"| J["Task appears on Dispatcher Board"] J --> K["Dispatcher assigns staff"] K --> I I --> L["Staff arrives and scans room/bed QR"] L --> M{"QR matches task location/bed?"} M -->|"No"| M1["Show error, do not start task"] M1 --> L M -->|"Yes"| N["Set status=in_progress, started_datetime"] N --> O["Staff completes checklist items"] O --> P{"All mandatory items completed?"} P -->|"No"| P1["Prevent completion, highlight missing items"] P1 --> O P -->|"Yes"| Q["Record supplies used"] Q --> R["Staff scans QR to complete task"] R --> S{"QR matches and validations pass?"} S -->|"No"| S1["Show error, keep in_progress"] S1 --> R S -->|"Yes"| T["Set status=completed, completed_datetime"] T --> U{"Inspection required?"} U -->|"Yes"| V["Create cleaning_inspections row, notify inspector"] U -->|"No"| W["Publish bed status=Clean/Ready"] V --> W W --> X["Bed Board updated, bed available"]

Decision Points

  1. Infection Flag Present? - If yes → assign terminal/enhanced protocol; mark inspection_required = true by default. - If no → assign standard discharge protocol; inspection may be random or policy-based.
  2. 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.
  3. 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.
  4. Checklist Completion - If mandatory items not completed → system prevents task completion and highlights missing items.
  5. Inspection Required? - If yes → bed may be set to Clean/Pending Inspection and 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_id or location_id, system flags task as error and alerts Supervisor; no auto-assignment occurs.
  • No Available Staff in Zone
  • Task remains pending and 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_datetimecreated_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_datetimeassigned_datetime
Cleaning completion (standard discharge) ≤ 30 min from start Escalate to Supervisor if not completed within 45 min cleaning_tasks.completed_datetimestarted_datetime
Cleaning completion (enhanced/terminal) ≤ 60 min from start Escalate to Supervisor if not completed within 90 min cleaning_tasks.completed_datetimestarted_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

stateDiagram-v2 [*] --> Pending : ADT bed release event received Pending --> Assigned : Staff assigned (auto or dispatcher) Assigned --> InProgress : Staff scans room QR, cleaning starts InProgress --> ChecklistComplete : All mandatory checklist items done ChecklistComplete --> Completed : Final QR scan validates, task closed ChecklistComplete --> PendingInspection : Inspection required (infection/random) PendingInspection --> Completed : Inspection passes PendingInspection --> ReworkRequired : Inspection fails ReworkRequired --> InProgress : Staff re-cleans flagged areas InProgress --> OnHold : Staff paused (emergency reassignment) OnHold --> InProgress : Staff resumes cleaning Completed --> [*] : Bed status updated to Clean/Ready Pending --> Cancelled : Task cancelled (ADT correction, bed reassigned) Cancelled --> [*]

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' or or_terminal).
  1. 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_tasks row:
    • task_type = 'or_turnover'
    • location_id = OR room location
    • trigger_source = 'or_case_complete'
    • status = 'pending'
  2. 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_id updated accordingly.
  3. Assign OR Cleaning Team - System assigns task to OR Cleaning Staff group or specific staff based on OR zone. - assigned_to and assigned_datetime set; notification sent to OR Cleaning Staff.
  4. 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_datetime recorded.
  5. Execute OR-Specific Checklist - System loads OR checklist (e.g., surgical surfaces, anesthesia machine, monitors, floor, waste disposal). - Staff completes items; mandatory items enforced.
  6. 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.
  7. 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.
  8. OR Nurse Readiness Verification - Once staff marks checklist complete, system notifies OR Nurse. - OR Nurse reviews room, may have a simplified verification checklist.
  9. Decision: Room Ready? - If OR Nurse identifies issues (e.g., visible contamination):
    • Task is set to rework_required or in_progress again.
    • 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.
  10. Task Completion and OR Status Update
    • On readiness confirmation:
    • cleaning_tasks.status = 'completed'
    • completed_datetime set.
    • Cleaning module publishes OR room status update (INT-CLN-002) to OR Management:
    • Room status: Ready for Next Case.
    • Turnover time calculated.
  11. Dashboard Update
    • OR Turnover Dashboard (SCR-CLN-004) shows:
    • Actual turnover time vs target.
    • Next case info and readiness.

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

flowchart TD A["OR case completed"] --> B["Create OR turnover cleaning_tasks row"] B --> C["Check contamination/infection status"] C --> D{"Contaminated/infectious case?"} D -->|"Yes"| E["Assign OR terminal protocol"] D -->|"No"| F["Assign standard OR turnover protocol"] E --> G F --> G["Assign OR cleaning team"] G --> H["Notify OR Cleaning Staff"] H --> I["Staff scans OR room QR to start"] I --> J{"QR valid for OR room?"} J -->|"No"| J1["Error, cannot start"] J1 --> I J -->|"Yes"| K["Set status=in_progress, started_datetime"] K --> L["Staff completes OR checklist"] L --> M{"Protocol type = terminal?"} M -->|"Yes"| N["Complete additional terminal steps"] M -->|"No"| O N --> O["Record supplies and confirm times"] O --> P["Notify OR Nurse for readiness verification"] P --> Q{"OR Nurse satisfied?"} Q -->|"No"| R["Set status=in_progress/rework, add notes"] R --> L Q -->|"Yes"| S["Set status=completed, completed_datetime"] S --> T["Publish OR room status=Ready"] T --> U["Update OR Turnover Dashboard"]

Decision Points

  1. Contaminated/Infectious Case? - If yes → OR terminal protocol with extended steps and possibly inspection. - If no → standard OR turnover protocol.
  2. QR Validation - If QR does not match OR room → prevent task start; avoid mis-logging cleaning to wrong OR.
  3. OR Nurse Readiness Decision - If not satisfied → task returns to in_progress with re-clean instructions. - If satisfied → task completes and OR room becomes available.
  4. 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_datetimecreated_at
Cleaning start (QR scan) ≤ 5 min from assignment Alert Supervisor if not started within 10 min cleaning_tasks.started_datetimeassigned_datetime
Standard OR turnover completion ≤ 20 min from start Escalate to Supervisor if not completed within 30 min cleaning_tasks.completed_datetimestarted_datetime
Terminal OR cleaning completion ≤ 45 min from start Escalate to Supervisor if not completed within 60 min cleaning_tasks.completed_datetimestarted_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

stateDiagram-v2 [*] --> Pending : OR case completion event received Pending --> Assigned : OR cleaning team assigned Assigned --> InProgress : Staff scans OR room QR, cleaning starts InProgress --> ChecklistComplete : All OR checklist items completed ChecklistComplete --> AwaitingVerification : OR Nurse notified for readiness check AwaitingVerification --> Completed : OR Nurse confirms room is ready AwaitingVerification --> ReworkRequired : OR Nurse identifies issues ReworkRequired --> InProgress : Staff re-cleans specific areas Completed --> [*] : OR room status = Ready for Next Case Pending --> Cancelled : Case event corrected or OR closed Cancelled --> [*]

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_schedules configured per cleaning_zones and facility.
  • Staff assigned to zones and shifts in cleaning_staff.
  • Checklists and protocols for routine cleaning are active.
  1. Generate Daily Schedule - At configured times (e.g., midnight), system generates routine cleaning tasks from cleaning_schedules:
    • For each active schedule row, create cleaning_tasks with:
    • task_type = 'routine'
    • zone_id, facility_id, location_id (if specific)
    • trigger_source = 'schedule'
    • status = 'pending'.
  2. 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.
  3. 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.
  4. 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' and started_datetime.
  5. Execute Zone Protocol - Staff follows zone-specific protocol (public areas, corridors, elevators, offices, clinics). - Completes checklist items for each area in the zone.
  6. 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).
  7. 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_datetime recorded.
  8. Supervisor Dashboard Review - Facilities Supervisor reviews completion status on dashboard:
    • Overdue tasks highlighted.
    • Completion rates per zone/shift.
  9. Escalate Incomplete Tasks - For tasks not completed by end of shift:
    • Supervisor may reassign to next shift or mark as deferred with reason.

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

flowchart TD A["Scheduler runs"] --> B["Generate routine cleaning_tasks from cleaning_schedules"] B --> C["Auto-assign tasks by zone/shift"] C --> D["Staff views My Tasks at shift start"] D --> E["Staff goes to zone checkpoint and scans QR"] E --> F{"QR matches zone?"} F -->|"No"| F1["Error, cannot start"] F1 --> E F -->|"Yes"| G["Set status=in_progress, started_datetime"] G --> H["Staff performs cleaning per protocol"] H --> I{"Maintenance issue found?"} I -->|"Yes"| J["Create maintenance work order via INT-CLN-004"] J --> K I -->|"No"| K["Continue cleaning"] K --> L["Staff completes checklist items"] L --> M["Staff scans QR to complete task"] M --> N{"All mandatory items done?"} N -->|"No"| N1["Prevent completion, show missing items"] N1 --> L N -->|"Yes"| O["Set status=completed, completed_datetime"] O --> P["Supervisor reviews dashboard"] P --> Q{"Any overdue/incomplete tasks?"} Q -->|"Yes"| R["Escalate or reassign tasks"] Q -->|"No"| S["End of workflow"]

Decision Points

  1. QR Zone Validation - If QR does not match expected zone → system blocks start/completion.
  2. Maintenance Issue Found? - If yes → create maintenance work order; link to task for traceability.
  3. Checklist Completion - If mandatory items incomplete → prevent task completion.
  4. 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_schedules has 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 missed with 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_datetimestarted_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_protocols with associated checklists.
  • Specialized Cleaning Staff with appropriate certifications (certification_infection_control, certification_biohazard) defined in cleaning_staff.
  1. 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.
  2. Create Terminal Cleaning Task - Cleaning module creates cleaning_tasks row:
    • task_type = 'terminal'
    • trigger_source = 'infection_control'
    • inspection_required = true
    • priority set to high.
  3. 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). - Sets protocol_id accordingly.
  4. Assign Specialized Cleaning Team - System filters cleaning_staff for:
    • Correct zone.
    • certification_infection_control = true (and certification_biohazard = true if required).
    • Assigns task to qualified staff; if none available, escalates to Supervisor.
  5. 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).
  6. Start Terminal Cleaning - Staff scans room QR code to start; status = 'in_progress', started_datetime set.
  7. Execute Terminal Checklist - Staff completes extended checklist:
    • All surfaces, vents, curtains, equipment, high-touch areas.
    • Waste disposal and linen handling per infection control policy.
  8. 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).
  9. 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.
  10. 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).
  11. 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_tasks or reopens existing one.
  12. 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

flowchart TD A["Infection Control flags room for terminal cleaning"] --> B["Create terminal cleaning_tasks row"] B --> C["Map pathogen to terminal protocol"] C --> D["Assign specialized cleaning staff"] D --> E{"Qualified staff available?"} E -->|"No"| E1["Escalate to Supervisor, alert Infection Control"] E1 --> D E -->|"Yes"| F["Notify specialized cleaning team"] F --> G["Staff scans room QR to start"] G --> H["Set status=in_progress, started_datetime"] H --> I["Execute terminal cleaning checklist"] I --> J{"Protocol requires UV/fogging?"} J -->|"Yes"| K["Apply UV/fogging and record cycle"] J -->|"No"| L K --> L["Record agents, contact times, PPE in supplies_usage"] L --> M["Infection Control performs environmental sampling (if required)"] M --> N["Create cleaning_inspections row"] N --> O{"Inspection pass?"} O -->|"No"| P["Set pass_fail=fail, re_clean_required=true, create re-clean task"] P --> H O -->|"Yes"| Q["Set pass_fail=pass, inspection_result=pass"] Q --> R["Set cleaning_tasks.status=completed"] R --> S["Update bed/room status=Terminally Cleaned/Ready"]

Decision Points

  1. Qualified Staff Available? - If no → escalate to Supervisor and Infection Control; may delay bed availability.
  2. Protocol Requires UV/Fogging? - If yes → additional steps and device logging required.
  3. Inspection Pass or Fail? - If fail → re-clean required; new task or reopened task. - If pass → room cleared for new patient.
  4. 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_datetimecreated_at
Terminal cleaning start ≤ 15 min from assignment Alert Supervisor if not started within 20 min cleaning_tasks.started_datetimeassigned_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_datetimestarted_datetime
Environmental sampling and results ≤ 30 min from cleaning completion Alert IC Officer if sampling not performed within 45 min cleaning_inspections.inspection_datetimecompleted_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

stateDiagram-v2 [*] --> Flagged : Room flagged for terminal cleaning (IC Nurse / auto) Flagged --> Pending : Terminal cleaning task created Pending --> Assigned : Specialized staff assigned (certified for infection control) Assigned --> InProgress : Staff scans room QR, terminal cleaning starts InProgress --> CleaningComplete : Terminal checklist completed, agents and PPE recorded CleaningComplete --> UVFogging : Protocol requires UV disinfection or fogging CleaningComplete --> AwaitingSampling : No UV/fogging, proceed to sampling UVFogging --> AwaitingSampling : UV/fogging cycle completed and logged AwaitingSampling --> SamplingComplete : Environmental sampling performed SamplingComplete --> Cleared : IC Officer reviews, inspection passes SamplingComplete --> ReCleanRequired : IC Officer reviews, inspection fails ReCleanRequired --> InProgress : Staff re-cleans, new cycle begins Cleared --> [*] : Room released, bed status = Terminally Cleaned/Ready Pending --> Cancelled : Flag withdrawn or patient not infectious Cancelled --> [*]

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.
  1. 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.
  2. Create Ad-Hoc Task - System creates cleaning_tasks row:
    • task_type = 'ad_hoc'
    • trigger_source = 'manual_request'
    • priority based on urgency and type (biohazard → highest).
  3. Determine Protocol - If type = biohazard → assign biohazard protocol. - If type = spill (non-biohazard) → assign spill protocol. - Else → general spot-clean protocol.
  4. 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.
  5. Staff Notification - Assigned staff receives urgent notification with location and protocol.
  6. Start Emergency Cleaning - Staff travels to location and scans QR code (if available) or confirms location manually. - status = 'in_progress', started_datetime set.
  7. Execute Protocol - Staff follows protocol-specific steps:
    • For biohazard: appropriate PPE, containment, disposal per infection control.
    • For spills: proper absorbent materials and disinfectants.
  8. Record Materials Used - Staff records supplies and agents used in cleaning_supplies_usage.
  9. Completion - Staff confirms area is safe and clean. - Scans QR code or confirms location to complete task. - status = 'completed', completed_datetime set.
  10. 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

flowchart TD A["Any staff submits cleaning request"] --> B["Create ad_hoc cleaning_tasks row"] B --> C["Determine protocol based on type/urgency"] C --> D["Dispatcher assigns to nearest available staff"] D --> E["Notify assigned Cleaning Staff"] E --> F["Staff goes to location and scans QR/confirm location"] F --> G{"Location validated?"} G -->|"No"| G1["Prompt to correct location"] G1 --> F G -->|"Yes"| H["Set status=in_progress, started_datetime"] H --> I["Staff executes protocol steps"] I --> J["Record supplies used"] J --> K{"Biohazard task?"} K -->|"Yes"| L["Capture additional biohazard documentation"] K -->|"No"| M L --> M["Staff confirms area clean and safe"] M --> N["Complete task, set status=completed"]

Decision Points

  1. Request Type (biohazard vs spill vs general) - Determines protocol, PPE, and priority.
  2. Location Validation - If location cannot be validated (e.g., QR missing), staff must manually confirm; flagged for audit.
  3. 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_datetimecreated_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_datetimeassigned_datetime
Cleaning completion ≤ 15 min (spill); ≤ 30 min (biohazard); ≤ 20 min (general) Escalate if not completed within target + 15 min cleaning_tasks.completed_datetimestarted_datetime
Biohazard documentation ≤ 10 min after completion Alert IC and Supervisor if not documented within 20 min Documentation timestamp − completed_datetime

State Transition Diagram

stateDiagram-v2 [*] --> Submitted : Staff submits ad-hoc cleaning request Submitted --> Acknowledged : Dispatcher reviews request on Task Board Acknowledged --> Assigned : Dispatcher assigns nearest available staff Assigned --> EnRoute : Staff acknowledges and travels to location EnRoute --> InProgress : Staff arrives and scans QR / confirms location InProgress --> Completed : Area cleaned and confirmed safe InProgress --> BiohazardDoc : Biohazard task, additional documentation required BiohazardDoc --> Completed : Biohazard documentation captured Completed --> [*] : Task closed, KPI data recorded Submitted --> Merged : Duplicate request detected, merged with existing task Merged --> [*] Assigned --> Reassigned : Staff unavailable, Dispatcher reassigns Reassigned --> Assigned : New staff assigned

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_checklists and master data.
  • Inspectors have access to SCR-CLN-006 (Quality Inspection Form).
  1. 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.
  2. Open Inspection Form - Inspector selects a target (room/area or specific cleaning_tasks.task_id). - System loads appropriate inspection checklist (visual, surface testing, ATP).
  3. 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.
  4. Capture Photos and Notes - Inspector can take photos of deficiencies. - Photos and notes attached to inspection record.
  5. Determine Overall Score and Pass/Fail - System calculates overall score based on scoring criteria. - Inspector confirms pass/fail decision.
  6. Create Re-Clean Task if Fail - If fail:
    • System creates a new cleaning_tasks row:
    • task_type = 're_clean'
    • trigger_source = 'inspection_fail'
    • Links to inspection_id.
    • re_clean_required = true in cleaning_inspections.
  7. Record Inspection Result - System inserts cleaning_inspections row with:
    • inspection_datetime, inspector_id, location_id, task_id (if applicable).
    • score, pass_fail, deficiencies, photo_paths.
  8. Track Performance Over Time - Inspection results feed into analytics:
    • Pass rate per zone, staff, protocol type.
    • Trends over time.
  9. 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

flowchart TD A["Inspector selects rooms/areas for inspection"] --> B["Open inspection form"] B --> C["Perform inspection with checklist"] C --> D["Capture photos and notes"] D --> E["System calculates score"] E --> F{"Pass or Fail?"} F -->|"Pass"| G["Set pass_fail=pass, re_clean_required=false"] F -->|"Fail"| H["Set pass_fail=fail, re_clean_required=true"] H --> I["Create re_clean cleaning_tasks row"] G --> J["Save cleaning_inspections record"] I --> J J --> K["Inspection results available for analytics/reports"]

Decision Points

  1. Selection of Areas - Inspector may choose targeted rooms (e.g., high-risk areas) or random sampling.
  2. Pass/Fail Threshold - Based on scoring criteria; threshold configurable by facility.
  3. 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_datetimecreated_at
Monthly quality report generation By 5th business day of following month Alert Facilities Manager if report not generated Report generation log
content/clinical/cleaning/01-workflows.md Generated 2026-02-20 22:54