Skip to content

Criticality: Get Started

This walkthrough sets Value × Risk on a single equipment record so you can see the traffic-light criticality badge update live. It takes about 5 minutes.

Already installed?

roots_hemms_criticality is in the default make install-private set, so if you can see the Maintenance app, the module is already there. Confirm by opening any equipment record — if you see a Criticality group above the notebook tabs with two tier fields, you are good to go.

Prerequisites

  • HEMMS is installed and you can log in (see Installation).
  • At least one record exists under Maintenance → Equipment. The hemms_private demo data ships a dozen items — pick any one of them.
  • Your user has at least the Maintenance / User access right.

Step 1 — Open an equipment record

  1. Open the Maintenance app from the launcher.
  2. Top bar → Equipment.
  3. Click any row. (If you have demo data, "Vital Signs Monitor #1" is a good first pick because it touches multiple downstream modules.)

You should land on the equipment form view.

Step 2 — Find the Criticality group

The criticality module injects a Criticality group above the notebook tabs, in the right-hand half of the form. It has three visible fields:

  • Value Tier — selection
  • Risk Tier — selection
  • Criticality — read-only colour badge

If you don't see it, the module is not installed for this equipment's company. Go to Apps, search for roots_hemms_criticality, and Activate.

Step 3 — Set Value Tier

Value Tier is the financial / replacement-cost lens. Use these as a starting guide; the exact thresholds are a hospital-by-hospital decision.

Tier Rule of thumb Hospital examples
Low Value < ฿100,000 to replace Stethoscope, sphygmomanometer, basic exam light, thermometer, weighing scale
Medium Value ฿100,000 – ฿1,000,000 Infusion pump, syringe pump, vital signs monitor, ECG machine, suction unit, portable oximeter
High Value > ฿1,000,000 Anesthesia machine, ventilator, ultrasound, X-ray, CT, MRI, dialysis machine, OR table

Pick a value and the field saves immediately. The chatter at the bottom of the form posts the tier change.

Step 4 — Set Risk Tier

Risk Tier is the clinical-risk lens — what happens to the patient (or the hospital) if this equipment fails right now?

Tier Rule of thumb Hospital examples
Low Risk Non-clinical, or clinical use is non-time-critical Office printer, BME workshop tool, exam-room desk lamp, weighing scale, non-clinical fridge
Medium Risk Clinical use but failure is recoverable within an hour Infusion pump, ECG, suction unit, exam light, sterilizer, autoclave, dental unit
High Risk Life-supporting OR sole-source OR failure has irreversible clinical consequence Defibrillator, anesthesia machine, ventilator, dialysis, neonatal incubator, OR monitor during surgery

When in doubt, go higher

Under-classifying a high-risk device costs lives and HA accreditation points. Over-classifying costs a slightly tighter PM schedule. The asymmetry is obvious.

Step 5 — Read the resulting criticality

The Criticality badge updates immediately based on the 3 × 3 matrix:

Value ↓ Risk → Low Risk Medium Risk High Risk
High Value 🟡 เฝ้าระวัง (Watch) 🔴 วิกฤต (Critical) 🔴 วิกฤต (Critical)
Medium Value 🟢 ปกติ (Normal) 🟡 เฝ้าระวัง (Watch) 🔴 วิกฤต (Critical)
Low Value 🟢 ปกติ (Normal) 🟢 ปกติ (Normal) 🟡 เฝ้าระวัง (Watch)

Three worked examples:

  • Defibrillator — Value: Medium (~฿200,000), Risk: High (life-support) → 🔴 Red.
  • MRI scanner — Value: High (>฿50M), Risk: Medium (planned imaging) → 🔴 Red.
  • Workshop drill — Value: Low, Risk: Low → 🟢 Green.

Step 6 — See criticality outside the form

Back out to Maintenance → Equipment.

List view — the row decoration colour follows criticality. Red rows pop visually, green rows blend in.

Kanban view — every card carries a coloured badge under the title.

Search bar — use the predefined filters:

  • Filters → Critical only — show only red equipment.
  • Filters → Watch — show only yellow.
  • Filters → Normal — show only green.
  • Filters → High Value / High Risk — slice by either single dimension.

Group By — filter dropdown → Group By → Criticality to get a count-per-colour collapsible kanban. This is the closest thing to a "criticality dashboard" the module ships out of the box.

Step 7 — Bulk-set criticality (optional)

If you just imported a hundred equipment items, going one-by-one is painful. The fast path:

  1. Switch the equipment screen to List view.
  2. Filter by category (e.g., "Infusion Pumps").
  3. Tick the checkbox in the header to select all visible rows.
  4. Actions → Update fields (or the new selection-action menu in Odoo 18) → set Value Tier and Risk Tier in one bulk operation.

For a sustained mass-classification effort, see Configuration for category-to-tier guidance.

Tips

Re-classify when a device's role changes

A vital-signs monitor parked in storage is Medium Risk. The same monitor wheeled into the OR becomes High Risk. Criticality is not a one-time decision — review it whenever equipment moves department, moves location, or changes clinical purpose.

Default is 'medium / medium' for a reason

Both fields are required=True, default="medium" so they are never null. That means newly-imported equipment lands in 🟡 Watch — visible and obvious, not silently misclassified as 🟢 Normal.

Criticality is a manual judgement

The module does not auto-infer criticality from category, brand, model, MoPH device class, or any other field. It is a deliberate decision recorded against an equipment record. The HA Annual PM Report has a separate, MoPH-driven risk tier — see HA Report — Configuration for that parallel concept.

What just happened

When you saved the form:

  1. Layer 3 (roots_hemms_criticality) — wrote roots_value_tier and roots_risk_tier.
  2. Layer 3 — the @api.depends("roots_value_tier", "roots_risk_tier") compute recalculated roots_criticality_color from the fixed matrix.
  3. Layer 3 — the @api.depends_context("lang") compute on roots_criticality_label re-rendered the bilingual badge in your current language.
  4. Layer 3 (roots_hemms_workflow) — the stored related field roots_equipment_criticality_color on every open maintenance.request on this equipment is updated.
  5. Layer 1 (mail.thread) — Odoo posted a tracking message to the equipment's chatter.

Next steps

  • Configuration — admin-level guidance + category-to-tier examples for a full hospital.
  • Workflows — see how request priority, spare-part flagging, and inspection snapshots react to criticality.
  • Reporting — slice the equipment register by criticality.