Inpatient Patient Room Details - hmislk/hmis GitHub Wiki
Inpatient — Patient Room Details
The Patient Room Details page shows the complete room stay history for a single admission (BHT). It lists every room the patient has occupied, with charges broken down by charge type, and provides a visual timeline so staff can immediately spot any room overlaps or gaps.
Page: Inpatient → Admission Profile → Room Management → Room Details
XHTML: /inward/inward_patient_room_details.xhtml
Privilege: InwardRoomDetails
Overview

The page is divided into two sections:
| Section | Purpose |
|---|---|
| Room Stay History | Table of all room assignments with charge totals for each stay |
| Room Stay Timeline | Colour-coded timeline bar for each room, showing the time each room was active |
Room Stay History
Each row in the table represents one room assignment. The columns show:
| Column | Description |
|---|---|
| Room | Room name and current status (Active / Left) |
| Admitted At | Date and time the patient was moved into this room |
| Discharged At | Date and time the patient left this room (blank if still active) |
| Room | Room rent charge |
| Maintain | Maintenance charge |
| MO | Medical Officer charge |
| Nursing | Nursing charge |
| Linen | Linen charge |
| Admin | Administrative charge |
| Medical Care | Medical care / ROA charge |
| Discount | Any discount applied (shown in red if non-zero) |
| Net | Total net charge for this room stay |
Action Buttons
Each row has five action buttons:
| Button | Action |
|---|---|
| Save Changes | Save any edits made to the room or timestamps in this row |
| Update Charges from Room Rates | Recalculate the bundled charges using the current room rate configuration |
| Discharge from Room | Formally end this room stay and record a discharge timestamp |
| Cancel Room Discharge | Reverse a room discharge (re-open the room stay) |
| Remove Room | Remove this room assignment entirely |
Expanded Row — Bundled Charge Details
Clicking the expand arrow (›) on any row opens the charge breakdown for that room stay.

The expanded section shows:
- Stay summary: Total stay duration, one-stay flag, one-day flag, complete-stay indicator, discharment limit, extra limit, and allied slots
- Charge type table: Each charge type (Room, Maintenance, Medical Officer, Nursing, Linen, Administration, Medical Care/ROA) listed with its Rate/Unit, Calculated amount, Discount, and Net value
This allows staff to verify exactly how each component of the room charge was calculated.
Room Stay Timeline
The Room Stay Timeline at the bottom shows a horizontal bar for each room, spanning from the admission time to the discharge time (or "Now" if still active).
Colour Legend
| Colour | Meaning |
|---|---|
| Green | Active — patient is currently in this room |
| Blue | Left room — patient has moved out |
| Purple | Guardian room stay |
Identifying Room Overlaps
If two bars overlap horizontally, the patient was billed for two rooms at the same time. This indicates a data error — for example, the previous room was not properly discharged before the new room was opened. Staff should investigate and correct the timestamps using the Discharge from Room and Save Changes actions on the relevant rows.
Room Time Overlap Warnings
The page also checks each room stay against the others and flags conflicts directly on the row, so a problem does not have to be spotted by eye on the timeline.
- A red Room Time Overlap Detected tag appears beside the page title whenever any row on the page is in conflict.
- The conflicting row itself carries a red Overlap tag. Hover it to see exactly what the conflict is.
There are two different kinds of conflict, and the hover text tells them apart:
| Conflict | What it means | Hover text |
|---|---|---|
| Same patient, two rooms | This admission has two room stays whose times run into each other | Overlaps with Room 511 wm (Active) |
| Two patients, same room | Another admission is recorded in this same room over the same period | Overlaps with Room 103 wm — held by BHT/…, dd Mmm yyyy HH:mm to still in room |

The Overlap tag on the room row. The hover text names the other admission holding the room, so staff can go to that BHT and correct it. (Patient identifiers replaced in this screenshot.)
The second kind is the one that needs care: the room is not free, and nothing on this patient's screen is wrong. The fix belongs on the other admission — usually its room stay was never closed when that patient actually moved or went home. Open that BHT's own Room Details page and set the correct discharge time there.
Withdrawn (removed) room records are ignored by this check, so correcting a room stay by removing a wrong row and adding a fresh one does not leave a permanent warning behind.
Saving a row that is in conflict
Pressing Save Changes on a conflicting row asks for confirmation first and repeats the same explanation:

The confirmation shown before saving a conflicting room stay.
The warning does not block the save — choosing Yes, Save Anyway stores the row as entered. It is there so a genuine double-booking is noticed rather than saved silently. Only override it when the overlap is intentional and understood.
Navigation
- Inpatient Dashboard — return to the Admission Profile for this BHT
- Interim Bill — view the running total of all charges for this admission
Related Articles
- Inpatient Admission Profile (Dashboard) — the hub from which Room Details is accessed
- Inpatient — Room Change and Guardian Room Change — move a patient between rooms
- Inpatient — Room Discharge — discharge a patient from a room
- Admin — Room Categories, Rooms, and Room Fees — set up rooms and bundled charge rates