Admin Timed Service Charging Units - hmislk/hmis GitHub Wiki
Admin — Timed Service Charging Units (One Time, Per Minute, Per Hour, Per Day)
Every timed service fee says how elapsed time turns into money. A nebulisation billed by the minute, a ventilator billed by the hour, a room billed by the day and a physiotherapy visit charged once regardless of how long it took are all configured the same way — by picking a Charged By unit on the fee, then giving the length of one charged block in that unit.
Pages:
Administration → Manage Inpatient Services → Services → Manage Service Fees(/inward/inward_timed_item_fee.xhtml) — timed service feesAdministration → Manage Inpatient Services → Rooms → Manage Room Charges(/inward/inward_room_facility.xhtml) — room charge blocks
Privilege: InwardAdministration
The four units
| Charged By | What "Duration" means | Typical use |
|---|---|---|
| One Time Fee | Nothing — the field is disabled | A visit, a procedure, a set-up charge billed once no matter how long it ran |
| Per Minute | Length of one charged block, in minutes | Nebulisation, short procedures, theatre time |
| Per Hour | Length of one charged block, in hours | Oxygen, ventilator, special nursing |
| Per Day | Length of one charged block, in days | Room rent, daily care charges |

Per Hour is the default, and it is also what every fee configured before charging units existed is read as. Existing services keep billing exactly as they always have — nothing needs re-entering. The unit only changes behaviour where somebody picks a different one.
Setting up a per-minute service
The classic example: Rs. 10 per minute.
- Open Manage Service Fees and pick the service under Select Service
- Fee Name — a label for this fee block, e.g.
Per Minute Charge - Fee —
10(and Foreigner Fee if the service is priced differently for foreign patients) - Charged By —
Per Minute - Duration —
1(one charged block is one minute) - Slot Order —
1 - Tick Repeating so the same rate applies to every following minute
- Click Add

A 30-minute service then bills Rs. 300.
Order matters when entering: pick Charged By before typing the Duration and Over Shoot values. Changing the unit refreshes those two fields, which clears anything already typed into them.
Charging in blocks larger than one unit
Duration does not have to be 1. Charged By = Per Minute with Duration = 15 bills in
quarter-hour blocks — 50 minutes of use is charged as 3 blocks.
Setting up a one-time charge
- Charged By —
One Time Fee - Duration and Over Shoot grey out — a one-time charge has no block length
- Enter the Fee and Slot Order, then Add

The fee is charged exactly once for the service, whether it ran for five minutes or a week.
Over Shoot follows the unit
Over Shoot is the grace period before a partly-used block is charged as a whole block, and it is counted in the same unit as Duration:
Per Day, Duration1, Over Shoot0.5→ a stay of 36 hours leaves a 12-hour remainder, which reaches the half-day grace, so 2 days are charged- The same config with Over Shoot
0charges 1 day, and the leftover 12 hours are free
Duration is required for time-based fees
A time-based fee with a Duration of 0 can only ever price at zero, so it is rejected
on save:

If what you want is a flat charge, use One Time Fee rather than a zero duration.
What staff see when the service is billed
The configured unit is applied everywhere a timed service is priced — the timed service consume screen, the room management pages, the interim bill and the final bill all read the same setting, so a service cannot be charged one way on one screen and another way on another.
On Manage Inward Timed Services, the Total Charges column reflects the unit directly:

Reading that table row by row:
| Service | Charged By | Rate | Time used | Charged |
|---|---|---|---|---|
| Nebulisation | Per Minute, block 1 | Rs. 10 | 30 minutes | Rs. 300 |
| Physiotherapy Visit | One Time Fee | Rs. 2,000 | 7 days | Rs. 2,000 |
| Nebulisation | Per Minute, block 1 | Rs. 10 | 46 minutes | Rs. 460 |
| Oxygen Therapy | Per Hour, block 1 | Rs. 500 | 2 h 30 min | Rs. 1,000 |
The Oxygen Therapy row shows the whole-block rule: two complete hours are charged, and the leftover 30 minutes are not, because that fee has no Over Shoot grace configured.
The same amounts carry through to the bill:

Start Time and Stopped Time
A timed service is priced from its Start Time to its Stopped Time. Both are editable on the consume screen — correct either one and press Update, and the charge is recalculated against the new window. A service that has not been stopped yet is priced up to the current time, and is closed automatically at discharge.
Room charges use the same units
Room charges are timed charges too, so Manage Room Charges has the same Fee Calculation Block Unit selector next to its block duration:

Rooms have conventionally been set up as Per Hour with a block duration of 24.
That still works and is unchanged. Per Day with a duration of 1 is the same thing
expressed more plainly, and produces identical charges — pick whichever reads better to
the people maintaining the configuration.
The Over Shoot for the last Block value follows the unit here too, so a room
converted from Per Hour / 24 / Over Shoot 1 to Per Day / 1 needs its Over Shoot
re-expressed in days (1 hour = 0.0417 days) if that grace period is to be preserved.
Related Articles
- Admin — Inpatient Timed Services — categories, services and fees, and how timed services attach to a BHT
- Admin — Room Categories, Rooms, and Room Fees
- Admin — Inpatient Module Configuration Overview