Preventive Maintenance: Get Started¶
This walkthrough enables PM scheduling on the demo instance and creates a first plan for a piece of equipment. It takes about 5 minutes.
Prerequisites¶
- HEMMS is installed and you can log in as an admin
- At least one equipment record exists in :menuselection:
Maintenance --> Equipment - The companion modules are installed:
maintenance_plan(OCA)roots_hemms_workflowroots_hemms_asset_master
Step 1 — Install the module¶
- Open :menuselection:
Apps - Click :guilabel:
Update Apps List(top action menu) - Search for "Roots HEMMS — Preventive Maintenance for Hospitals"
- Click :guilabel:
Activate
After installation:
- 3 maintenance kinds are seeded under :menuselection:
Maintenance --> Configuration --> Maintenance Kinds - 1 new stage "PM Scheduled (ตามแผนบำรุงรักษา)" appears in the kanban as the leftmost column
Step 2 — Verify the seed data¶
Go to :menuselection:Maintenance --> Configuration --> Maintenance Kinds
You should see three kinds (and possibly two demo kinds from OCA — "Weekly" and "Monthly" — which you can archive if not needed):
| English name | Thai name |
|---|---|
| Calibration | การสอบเทียบ |
| Safety Inspection | ตรวจสอบความปลอดภัย |
| General Preventive Maintenance | บำรุงรักษาเชิงป้องกันทั่วไป |
Step 3 — Create your first PM plan¶
- Open :menuselection:
Maintenance --> Equipmentand click an equipment record (e.g., a Vital Signs Monitor) - Click the Preventive Maintenance tab (or click the :guilabel:
Maintenance Planssmart button if shown) - Click :guilabel:
Add a line(or :guilabel:Create) - Fill in:
- Description — e.g., "Quarterly calibration"
- Maintenance Kind — pick "Calibration"
- Frequency —
3 - Recurrence —
Month(s) - Start Maintenance Date — today
- Planning Horizon period —
6months (how far ahead requests are auto-created)
- Save
You've defined: "Run a Calibration on this equipment every 3 months, generate requests up to 6 months in advance."
Step 4 — Generate the first PM request manually¶
The cron job auto-runs daily, but you can trigger it once for testing:
- Open :menuselection:
Settings --> Technical --> Scheduled Actions - Find "Maintenance: generate preventive maintenance requests"
- Click :guilabel:
Run Manually
Step 5 — See the new PM request¶
- Open :menuselection:
Maintenance --> Maintenance Requests - Switch to kanban view (default)
- Your new PM request appears in the leftmost column "PM Scheduled (ตามแผนบำรุงรักษา)"
Visual indicators on the kanban card
- Red dot — Equipment criticality = Critical (red)
- Yellow dot — Watch (yellow)
- Green dot — Normal (green)
- Red flag — Request has breached its SLA hours
Step 6 — Move the PM request through the workflow¶
The PM request now follows the standard 5-stage repair workflow, starting from PM Scheduled instead of Submitted:
- Open the PM request
- Click the next-stage button at the top
- Each stage transition is recorded in the Stage Transition Log (see the "Audit Trail" tab on the request form)
What just happened¶
When you ran the cron in Step 4:
- Layer 2 (
maintenance_plan) — walked the plan's interval forward and created amaintenance.requestwithmaintenance_plan_idset to your plan - Layer 3 (
roots_hemms_pm) — thecreate()override sawmaintenance_plan_idwas set, so it routed the request to the "PM Scheduled" stage instead of the default - Layer 3 (
roots_hemms_workflow) — the workflow'screate()hook logged the initial stage entry tohemms.stage.transition.log - Layer 3 (
roots_hemms_criticality) — the related fieldroots_equipment_criticality_colorpopulated the kanban card's dot color
Next steps¶
- Configuration — add your own custom maintenance kinds
- Workflows — full PM lifecycle including SLA breach handling
- Reporting — track PM coverage and overdue PMs