Admin Inpatient Room Categories Rooms Fees - hmislk/hmis GitHub Wiki
Admin — Room Categories, Rooms, and Room Fees
Three layered admin pages that define the hospital's physical room inventory and how it is charged.
| Page | URL | Controller | What it defines |
|---|---|---|---|
| Facility Categories | /inward/inward_room_category.xhtml |
RoomCategoryController |
Room categories: Private, Semi-Private, General Ward, ICU, Theatre, etc. |
| Rooms | /inward/inward_room.xhtml |
RoomController |
Individual physical rooms / beds, each linked to a category. |
| Room Fees | /inward/inward_room_facility.xhtml |
RoomFacilityChargeController |
RoomFacilityCharge records — one per room per fee plan. |
Reached from: Admin — Manage Inpatient Services → Rooms tab.
Privilege: InwardAdministration.
Why three layers
Picking just a room and charging it is not enough — different patients pay different amounts for the same room:
- Cash patient vs. credit-company patient.
- Local patient vs. foreigner.
- Different schemes / corporate plans.
The model is therefore:
Room Category (1) ──< (n) Room (1) ──< (n) RoomFacilityCharge
↑
one fee record per fee plan
(cash / credit / foreigner / scheme)
The Admit page autocompletes against RoomFacilityCharge records, so the user sees the fee plan in the dropdown choice.
1. Facility Categories
A short list of room classifications. Each category has:
- Name — Private, Semi-private, General Ward, ICU, HDU, Theatre Recovery, Day Care, etc.
- Description.
- Optional default fee components that inherit down to rooms in this category.
Categories exist mainly for grouping and reporting.
2. Rooms
Individual physical rooms — every bed your hospital has. Each room has:
- Name — typically the room number ("101A", "ICU-2"). This appears on the room autocomplete.
- Category — see above.
- Department — which department owns / staffs the room. Drives reports filtered by department.
- Institution / Site — for multi-site deployments.
- Retired flag — for rooms decommissioned permanently.
Rooms with no RoomFacilityCharge cannot be admitted into. Make sure every active room has at least one charge record below.
3. Room Fees (Room Facility Charge)
The chargeable record. One row per (room, fee plan).
Per row you set:
| Field | Meaning |
|---|---|
| Name | The label shown in the room autocomplete on the admit page. Often the same as the room name + plan suffix. |
| Room | Which physical room this fee applies to. |
| Fee Plan / Payment Method | Cash, Credit, Foreigner, or one of the named schemes. |
| Room Charge | The room rent, per 3 hours. (×8 = a 24-hour figure on the Room Vacancy report.) |
| MO Charge | Medical Officer charge, per 3 hours. |
| Nursing Charge | Per 3 hours. |
| Medical Care Charge | Per 3 hours. |
| Administration Charge | Per 3 hours. |
| Maintenance Charge | Per 3 hours. |
| Linen Charge | A flat per-day linen charge, not per 3 hours. |
| Active From / To | Optional validity window for the fee. |
How the timed engine uses these
When the room is occupied, the timed services engine creates per-3-hour bill items for each of the components above (except linen, which is per-day). The composite charge on the interim bill is built from these. Each component carries its own line so the patient and the credit company can see exactly what was charged.
The 3-hour granularity is a deliberate choice — fine enough to track partial days, coarse enough to keep the bill compact.
Updating fees mid-month
Best practice: enter the new fee with Active From = the start of the new period. The old fee continues to apply to admissions that started before that date; new admissions pick up the new fee.
If you need an emergency change retroactively, the existing bill items already accrued are not auto-updated; an admin must adjust them through the inward bill edit pages.
Cross-deployment notes
- Some deployments configure Inward Bill Fees are the same for all departments, institutions and sites (default true) — one fee plan per room, applied everywhere.
- Others set Inward Bill Fees are based on the site = true — site-specific fee variations. See Admin — Module Behaviour.