First-time Setup¶
You have HEMMS installed (see Installation) and you can log in. This page walks through the post-install configuration that turns a blank Odoo into a working hospital.
Demo sandbox already has data
If you installed hemms_private with demo data (the default), seeded departments, employees, equipment, vendors, and a couple of contracts are already there. You can skip the import steps and jump straight to "Set criticality" to feel the workflow. The steps below are written for a fresh, blank installation.
Roadmap¶
The order matters — later steps depend on earlier ones:
flowchart TD
A[1 — Company &<br/>multi-tenant setup] --> B[2 — Departments &<br/>employees]
B --> C[3 — Vendors<br/>res.partner]
C --> D[4 — Equipment<br/>via Mass Import or hand-entry]
D --> E[5 — Criticality<br/>Value × Risk per equipment]
E --> F[6 — PM Plans<br/>frequency per kind]
F --> G[7 — Service Contracts<br/>warranty / MA]
G --> H[8 — Annual ปจป.<br/>Inspection at year-end]
H --> I[9 — Users &<br/>permissions] 1. Configure your company¶
By default Odoo ships with a single placeholder company "My Company". Rename it to match your hospital, or — if you operate multiple hospitals on one Odoo instance — enable multi-company mode.
- Settings → General Settings → Companies — rename "My Company".
- Upload your logo. It appears on every PDF report (ปจป., HA Annual PM, Service Contracts).
- Set the company address — used on report letterheads.
Multi-hospital deployment
If you operate multiple legal entities (e.g., a public hospital plus a private clinic on the same Odoo), see Administration — Multi-company for record-rule and inter-company-vendor setup.
2. Create departments and employees¶
The Asset Inspection committee, PM responsible-user, and signature flows all depend on hr.employee records.
- Settings → Users & Companies → Companies (or open the Employees app if visible).
- Employees → Configuration → Departments — create one department per real-world unit (BME, Pharmacy, ICU, OR, ER, etc.). The Annual ปจป. workflow is one inspection per department per fiscal year — model departments the way you'll inspect them.
- Employees — create one record per real person who will appear on a signature page or be assigned a request. For each, set:
- Department
- Job title (e.g., หัวหน้างานวิศวกรรมการแพทย์)
- Manager (used for activity routing)
3. Bring in vendors¶
Service contracts (Q3), spare-part suppliers, and external repair providers are all res.partner records with is_company = True.
You can either:
- Hand-enter — Contacts app → New → tick "Is a company", fill name + address + tax ID.
- Mass-import — see the Mass Import — Get Started page. Mass-import understands a
Partnerssheet that creates vendors tagged with the import batch reference, which makes rollback trivial if you load the wrong file.
4. Load equipment¶
This is the heaviest step. You have two options:
- Maintenance → Configuration → Mass Imports → Templates — download the Equipment template.
- Fill the spreadsheet with one row per equipment. Required columns:
name,category_id/name. Optional columns includeserial_no,ref(รหัสครุภัณฑ์),roots_brand_id/name,roots_model_id/name,assign_date,cost,location. - Maintenance → Mass Imports → New, upload the file, validate, run.
Full walk-through: Mass Import — Workflows.
- Maintenance → Equipment → New.
- Fill name, category, serial number, government Ref. No., brand, model, department, assigned user, in-service date.
- Save. Repeat per piece of equipment.
After load, every equipment row will have Value Tier = Medium and Risk Tier = Medium by default — the criticality module sets these so the field is always filled but never silently wrong. Step 5 walks through adjusting them.
5. Set criticality on each equipment¶
Criticality is a manual judgement call — there is no rules engine. The right time to set it is when you load equipment (you have the procurement file open) or during the first annual ปจป. inspection (you're touching every asset anyway).
- Maintenance → Equipment, open one item.
- Find the Criticality group above the notebook tabs.
- Set Value Tier (Low / Medium / High) — financial replacement value.
- Set Risk Tier (Low / Medium / High) — clinical risk if it fails.
- The Criticality badge updates immediately (green / yellow / red) based on the 3×3 matrix.
Full per-tier guidance with hospital examples: Criticality — Get Started.
Bulk-set criticality via the list view
For a fast first pass, open Maintenance → Equipment, switch to list view, sort by category, multi-select rows with similar profile (e.g., all "Infusion Pump"), and use the action menu to set both tier fields in one go.
6. Set up PM plans¶
Calendar-based preventive maintenance is the core day-to-day workload.
- Maintenance → Configuration → Maintenance Kinds — the
roots_hemms_pmmodule seeds three: Calibration, Safety Inspection, General PM. Add your own if needed (Sterilization Validation, Battery Replacement, etc.). - Maintenance → Equipment, open one piece of high-risk equipment.
- Open the Preventive Maintenance tab → Add a line.
- Pick a kind, interval (months), and start date.
- The daily cron will auto-create
maintenance.requestrecords in the PM Scheduled stage as the due date approaches.
Full walk-through: Preventive Maintenance — Get Started.
7. Bring vendor contracts in¶
If you have active warranties, extended warranties, or maintenance agreements (MA), capture them now so corrective requests auto-show the coverage banner.
- Maintenance → Service Contracts → New.
- Pick contract type (Warranty / Extended Warranty / MA / Spare-only / Labor-only), vendor partner, equipment (M2M), start + end dates.
- On the Coverage tab, mark each maintenance kind as Included / Billable.
- Activate when the start date is reached (a daily cron also auto-promotes draft → active → expired).
Full walk-through: Service Contracts — Get Started.
8. Run the first Annual Inspection (ปจป.)¶
When you're near the Thai fiscal year-end (September), each department's DPO runs an annual stock-check.
- Maintenance → Annual Inspections (ตรวจสอบพัสดุประจำปี) → New.
- Pick department + fiscal year (พ.ศ.).
- Fill the 3-person committee (chair + 2 members).
- Add Equipment — auto-selects every equipment in the department.
- Walk through each line, set condition (
in_use/broken/deteriorated/lost/unused). - Submit → Send for Signature → print.
Full walk-through: Asset Inspection — Get Started.
9. Create users and assign permissions¶
So far you've been logged in as the admin. Now bring in your real users.
- Settings → Users & Companies → Users → New.
- Pick the linked
hr.employee, set login email, send invitation. - Under Access Rights, set the Maintenance security group:
- User — own activities only
- Officer — all activities in their department
- Administrator — everything + configuration menus
Full walk-through: Administration — Users & Permissions.
You're done¶
You now have a working hospital sandbox. From here:
- Watch the Architecture section to understand how the layers compose.
- Browse the user guides for role-specific walk-throughs.
- Try the HA Annual PM Report to generate your first accreditation-grade PDF.
If a step in this page does not match what you see in your sandbox, something is off — open a GitHub issue and we'll fix the docs (or the bug).