Hospital Equipment Maintenance System

End-to-End Operational Flowchart & Custody Lifecycle Architecture

Document: SOP-ENG-001
System: SOLVIS Platform
Theme: Light Medical Theme
Generated: October 2026
Architecture

1. High-Level Maintenance Ecosystem Overview

HOSPITAL ASSET & WORK ORDER LIFECYCLE (END-TO-END PIPELINE) 1. Asset Failure / PM Due Clinical Staff or Technician Open Ticket / Work Order STATUS: OPEN / NEW Can Repair In-House? YES (In-House) Internal Resolution Calibrate / Fix / Test Custody Stays in Hospital TICKET CLOSED NO (Vendor) 2. Send to Supplier Targeted Vendor Filtering Custody → Supplier Company ASSET & TICKET: "MAINTENANCE" 3. Return from Supplier Dynamic JSON Parts Form Reassign: Stock OR User STATUS: "IN SERVICE" / "IN STOCK" Synchronize Ticket & Audit Trail → Ready for Use
RBAC Policy

2. Role-Based Access Control (RBAC) & Team Specialization

Team / Role Assigned Equipment Scopes Maintenance & Work Order Privileges Vendor Visibility Filter
ADMIN Universal (All Hospital Assets) Full CRUD, Work Orders, Custody Overrides, Global Reports All Vendors (IT, BioMed, General)
MAINTENANCE_IT Laptops, PCs, Servers, Switches, Printers IT Work Orders, Specs Form Builder, Dispatch IT Hardware Vendors with "IT" category
BIOMEDICAL Ventilators, Monitors, Defibrillators, Pumps Medical Device Calibrations, BioMed Repairs, Parts JSON Vendors with "BIOMEDICAL" category
GENERAL HVAC, Generators, Beds, Lighting, Facilities Facility Work Orders, General Infrastructure Overhauls Vendors with "GENERAL" category
END_USER (Clinical) Custody-assigned equipment only Open Ticket, Request Inspection, View Ticket Status (Read-Only) None (Hidden from clinical staff)
1. Preventive (PM) Scheduled

Time-based inspection to prevent failure. Overhauls, calibration, filter replacements.

2. Corrective (CM) Breakdown

Triggered by staff defect reports. Asset immediately flagged for triage and diagnosis.

3. In-House Triage Internal

Repaired by hospital engineers within facility workshop. Custody remains internal.

4. Vendor Repair External

Sent out to manufacturer/supplier under official work order. Custody is legally transferred.

Phase 1: Dispatch to Supplier & Custody Handover

Hardware Triage, Qualified Vendor Filtering & Database State Synchronization

Route: /Maintenance/SendToSupplier
Status Transition: In Service / In Stock → Under Maintenance
Dispatch Workflow

1. Step-by-Step Equipment Dispatch Sequence

Step 01 • Identification
Select Defective Asset

Technician opens asset view or defect ticket. Confirms device category, department, and serial number.

→
Step 02 • Pre-Send Diagnosis
Fill Issue Description

Detailed defect symptom log is written (e.g., "Motherboard failure", "Calibration drift").

→
Step 03 • Supplier Filtering
Choose Qualified Vendor

Dropdown auto-filters suppliers based on matching asset department (IT, BioMed, General).

→
Step 04 • Custody Handover
Execute Work Order

Physical unit dispatched. Custody switches to Supplier Company. Ticket status → Maintenance.

1. Trigger & Validation Source State: • In Stock (Inventory) • Assigned to User Security Pre-Condition: • User has maintenance role • Asset belongs to team dept • Reject if already in maint 2. Vendor Match Filter Query Logic: SELECT * FROM Suppliers WHERE IsActive = 1 AND JSON_CONTAINS( Categories, '["IT"]') • Unrelated vendors hidden • Common vendors supported ✓ Prevents invalid routing 3. Handover Transaction Payload POSTed: • AssetId • SupplierId • IssueDescription (Text) • EstimatedReturnDate • HelpdeskTicketId (opt) • ItemsReplaced left NULL (filled later upon receipt) 4. Database State Mutations Executed: Assets.Status = 2 Assets.Custody = Supplier.CompanyName WorkOrders.Insert() Tickets.Status = 2 ✓ Live Custody Tracker Visible in Maintenance Tab
Filtering Logic

2. "Vendors That Can Help" Filtering Logic

Device Scope Supplier Category Example Vendors
IT Devices ["IT"] Dell Enterprise, HP Service, Cisco Pro
BioMed Devices ["BIOMEDICAL"] Siemens Healthineers, Philips Med, GE
Facilities ["GENERAL"] Daikin HVAC, Schindler Elevators, Otis
Multi-Discipline ["IT", "GENERAL"] Schneider Electric, Siemens Infra
Audit Trail

3. Database State Mutations on Dispatch (Phase 1)

Table Column New Value
Assets Status Maintenance (Enum = 2)
Assets CurrentCustody Supplier.CompanyName
MaintenanceOrders Status SentToSupplier
Tickets Status Maintenance

Phase 3: Receiving, Replaced Parts JSON & Custody Reassignment

Hardware Check-in, Dynamic Form Builder, and Dual Custody Routing

Route: /Maintenance/ReturnFromSupplier/{id}
Status Transition: Under Maintenance → In Service / In Stock
JSON Pipeline

1. Dynamic Replaced Parts JSON Builder Pipeline

1. Dynamic UI Repeater Grid Part: [ RAM 16GB ] Qty: [ 2 ] Cost: [ 90 ] Part: [ NVMe 1TB ] Qty: [ 1 ] Cost: [ 120 ] + Add Part Row • Add / Remove rows on-the-fly 2. Client Serializer (Form → JSON) // Form submit event intercepted: const items = []; row.forEach(r => items.push({ part_name: r.name, quantity: r.qty, cost: r.cost })); hiddenField.value = JSON.stringify(items); 3. MySQL JSON Column Storage [ { "part": "RAM 16GB", "qty": 2, "cost": 90 }, { "part": "NVMe 1TB", "qty": 1, "cost": 120 } ] Saved in WorkOrders.ReplacedPartsJson • Parsed safely back to C# List<ReplacedPart> • Full cost analytics & historical tracking
Routing Logic

2. Custody Reassignment Decision Tree (Central Stock vs User)

When equipment is received from the supplier, custody MUST NOT stay with the vendor. The receiving officer chooses the target destination:

Option A: Return to Stock
  • Asset.CurrentCustody = "Stock"
  • Asset.AssignedUserId = NULL
  • Asset.Status = InStock
  • Ready for future redeployment
Option B: Return to User
  • Asset.CurrentCustody = User.FullName
  • Asset.AssignedUserId = SelectedUserId
  • Asset.Status = InService
  • Directly handed back to department
Ticket Sync

3. Helpdesk Ticket Synchronization on Return

Entity Attribute Value on Return
MaintenanceOrder ActualReturnDate DateTime.UtcNow
MaintenanceOrder ItemsReplaced Structured JSON String
MaintenanceOrder Status Completed
Ticket (Linked) Status Resolved / Closed
TicketComment Body Auto-logged return note + part list

Preventive Maintenance (PM) & Technical Audit Trail

Inspection Intervals, Recurring Overhauls, and Historical Compliance

Module: Preventive Maintenance Engine
Compliance: Medical Equipment Safety Overhaul
Inspection Engine

1. Preventive Maintenance (PM) Interval Scheduling Flowchart

1. Daily PM Engine Inspection Query: Calculates days remaining: NextPM - Today • Runs for active devices • Categorized by department 2. Dynamic Status Badging OVERDUE (< 0 days): Red Badge • Critical DUE SOON (≤ 14 days): Amber Badge UP-TO-DATE (> 14 days): Green Badge 3. Automated Notification & Dispatch Automatic Actions on Overdue Asset: 1. Notification badge pinned to Maintenance Dashboard 2. One-click Work Order generation: /Maintenance/SendToSupplier 3. Auto-computes Next PM Date on Return: NextPM = Today + IntervalDays ✓ Fully closes the recurring audit loop
Routing Pathways

2. Routine In-House Checkup vs External Overhaul Pathway

Criteria Pathway A: In-House Pathway B: Supplier Overhaul
Scope Filter swap, sensor zeroing, battery test Internal motor rebuild, recalibration cert
Custody Remains with Hospital / User Transferred to Supplier Company
Status Stays "In Service" Switches to "Under Maintenance"
Parts Used Hospital internal stock Supplier items → ReplacedPartsJson
Certification Signed by in-house engineer Vendor certificate attached to Order
Audit Trail

3. Work Order Details View & Historical Compliance Log

Auditing & Safety Standard Compliance Compliant

Every maintenance operation creates an immutable historical event accessible via /Maintenance/Details/{id} and /Assets/Details/{id}:

  • Pre-Send Snapshot: Date dispatched, technician user, defect log, targeted supplier.
  • Custody Chain: Timestamped record of who possessed device at any historical date.
  • Replaced Parts Breakdown: Granular inventory cost, part serials, and quantities.
  • Final Disposition: Destination (Stock vs Clinical User) and ticket closure link.