Inpatient Admit a Patient - hmislk/hmis GitHub Wiki
Inpatient — Admit a Patient
Admitting a patient creates a BHT (Bed Head Ticket) — the unique identifier for the admission episode. All subsequent clinical and financial records are linked to this BHT.
Page: Inpatient → Admissions → Patient Admit
XHTML: /inward/inward_admission.xhtml
Controller: AdmissionController.checkBeforeAdmit()
Privilege: InwardAdmissions
Before You Admit
The patient must already exist in the system. Use the Patient Lookup button on the admission page to search, or the Patient Profile button to review the patient before admitting. If the patient is new, register them first via the Patient Registration module.
Admission Form Fields
| Field | Required | Notes |
|---|---|---|
| Admission Type | Yes | Controls BHT number prefix and which items are auto-charged; see Admin — Inpatient Admission Types |
| BHT Number | Auto / Editable | Auto-generated from the admission type's numbering sequence. Editable if config key BHT Number can be edited at the time of admission is enabled |
| Room No | Yes | Auto-complete search of available rooms. Disabled if the admission type itself carries a fixed room assignment |
| Admission Time | Yes | Date-time picker, defaults to current time; can be backdated if required |
| Consultant | Yes | Referring consultant (the specialist in charge of care) |
| Medical Officer | Yes | OPD doctor or admitting medical officer |
| Referring Doctor | No | Doctor who referred the patient from outside the hospital |
| Referred From Institution | No | External institution that referred the patient |
| Payment Mode | Yes | Cash, Credit (insurance), or other configured payment modes |
| Credit Company | Conditional | Required when payment mode is Credit/Insurance |
| Claimable | Conditional | Whether the admission is claimable against insurance; controlled by config keys |
| Comments / Reference | No | Free-text field; often used for external reference numbers |
| Patient demographics | Reviewed | Patient's name, NIC, gender, age, mobile, phone, address are shown for confirmation |
Additional mandatory fields can be enabled per deployment via the Mandatory Fields Enabled configuration key (see Admin — Inpatient Module Behaviour Config Keys):
- Referred From (institution or ward)
- NIC / Passport
- Address, district, province
- Emergency contact name and phone
BHT Number Calculation
When an admission type is selected, the system calls AdmissionController.bhtNumberCalculation():
- Reads the admission type's BHT prefix and sequence settings
- Queries the last BHT in that series
- Proposes the next sequential number in the field
If the config key BHT Number can be edited at the time of admission is true, the generated number can be overridden.
Room Assignment at Admission
When the selected admission type does not carry a pre-assigned room, the user searches for an available room using the auto-complete field. The room list is filtered to show only rooms that are currently vacant.
If the hospital configures admission and room assignment as separate processes (config key: Patient admission and room assignment are simultaneous processes = false), room assignment appears as a separate Admit Room menu item and is not done on this form.
Simultaneous vs Separate Room Assignment
| Config Value | Behaviour |
|---|---|
true (default) |
Room is assigned on the same admission form |
false |
Admission is saved without a room; room is assigned later via Inpatient → Room → Admit Room |
Submitting the Admission
Click Admit. The controller runs checkBeforeAdmit(), which validates:
- All required fields are filled
- The selected room is not already occupied
On success, the BHT is created and the screen redirects to the Admission Profile Dashboard for the new admission.
Duplicate Active Admission Check
If the patient already has another active (undischarged) admission, behaviour depends on the config key Inward Admission - Enforce Hard Block on Duplicate Active Admission (boolean, default false):
| Config Value | Behaviour |
|---|---|
false (default) |
A Patient Already Admitted Warning dialog appears. Staff can click Cancel — Do Not Admit or override it with Yes, Proceed with Admission |
true |
The admission is rejected with an error message ("This patient already has an active (undischarged) admission...") and there is no way to override it from the UI |


This check also applies to Baby Admission and to converting an OPD/non-BHT encounter to a full admission — only the hard-block rejection applies there; those forms have no soft-warning dialog. Editing the patient's own already-active admission does not trigger this check against itself.
Automatic Admission Charges
If the hospital has configured them, a fixed set of routine charges — an admission charge, a resident M.O. charge, a nursing care charge, an ETU charge — is billed automatically the moment the admission is saved. The amount can differ by admission type and by whether the admission is Cash or Credit, so the payment method chosen on this form affects what is charged.
The charges appear as ordinary inward service bills on the BHT, exactly as if they had been added by hand on Add Services / Investigations to BHT, and show on the interim and final bill under their own charge types. Nothing is charged if the hospital has not configured any.
The price is fixed at the moment of admission. Converting the admission between cash and credit later does not re-price a charge that has already been billed — correct it with a cancellation or a return plus a re-bill.
See Admin — Inpatient Automatic Admission Charges.
Config Button
Administrators can reach the Inpatient Admission configuration screen directly from this page using the Config button (visible to users with the Admin privilege). This opens the application options filtered to "Admission" keys. See Admin — Inpatient Module Behaviour Config Keys.
Related Articles
- Inpatient — Baby Admission — admitting a newborn linked to the mother's BHT
- Inpatient Admission Profile (Dashboard) — what opens after a successful admission
- Inpatient — Edit Admission Details — correcting admission fields after the fact
- Inpatient — Cancel Admission — voiding an admission created in error
- Admin — Inpatient Admission Types — configuring admission types and BHT sequences
- Admin — Inpatient Automatic Admission Charges — routine charges billed automatically on admission
- Admin — Inpatient BHT Number Management — resetting a BHT/OPD-card counter via the UI, AI Assistant, or API