Admin Inpatient Timed Services - hmislk/hmis GitHub Wiki

Admin — Inpatient Timed Services

Three pages that define services charged by time-of-use (e.g., oxygen therapy by the hour, monitoring by the day, ventilator support per hour). Reached from Admin — Manage Inpatient ServicesServices tab.

Page URL Controller What it defines
Time-based Service Categories /inward/inward_timed_item_category.xhtml TimedItemCategoryController Grouping for timed services (Respiratory, Monitoring, etc.).
Time-based Services /inward/inward_timed_item.xhtml TimedItemController Individual timed services (Oxygen Therapy, Pulse Oximeter Monitoring, …).
Time-based Service Charges /inward/inward_timed_item_fee.xhtml TimedItemFeeController Per-service fee records per fee plan.

Privilege: InwardAdministration.

How a timed service charges

A timed service has:

  • A start time (when the patient is put on the service).
  • An end time (when it is stopped).
  • A rate unit (per minute, per hour, per 3 hours, per day).
  • A rate (amount per unit).

When the user adds a timed service from Add Timed Services, they set start and end. The billing engine then computes units × rate and writes one bill item.

1. Time-based Service Categories

A small list — Respiratory, Monitoring, Nursing Care, Equipment, etc. Each timed service belongs to one category. Used purely for grouping in the bill and on reports.

Per row: Name, Description, Retired flag.

2. Time-based Services

The actual service records. For each service:

Field Notes
Name "Oxygen Therapy", "Pulse Oximeter Monitoring", "Mechanical Ventilation", "Cardiac Monitor".
Category From the categories page.
Unit Per minute / hour / 3 hours / day. Drives how units are computed from the start/end timestamps.
Theatre Only If true, the service is only available inside the theatre workbench, not on general inward timed services. See inward_timed_item_theatre_only.xhtml.
Active From / To Optional.
Retired Soft delete.

Most timed services are per-hour or per-3-hours. Per-minute is used for short procedures; per-day for things like daily monitoring rounds.

3. Time-based Service Charges

For each service, one charge row per fee plan (cash / credit / foreigner / scheme). Per row:

  • Service (link back to a Time-based Service).
  • Fee plan.
  • Rate — amount per unit. (If the service's unit is "per hour", rate is per hour. The engine uses the service's unit.)
  • Fee components — split the rate across staff / hospital / consultant if needed.
  • Active From / To.

The billing engine multiplies (end − start, in the service's unit) × rate and writes a BillItem.

Department / institution / site filtering

The timed-service report uses the patient encounter's institution / department / site to filter. This was firmed up in #19715 — see the developer guide developer_docs/navigation/inward_navigation.md for the JPQL filter pattern.

Operational pattern — daily room rent

Room rent itself is not a timed-service entry on this page. Room rent is computed from the RoomFacilityCharge (see Admin — Room Categories, Rooms and Fees) on a fixed 3-hour granularity. Timed services here are the additional time-of-use charges layered on top.

See also