Last updated: 26 July 2026
The Bed Management module manages hospital locations — wards, operation theaters, beds, and rooms. Beds are created within wards, assigned to patients during IPD admission, and released at discharge or transfer. The entire system uses FHIR Location resources for interoperability with ABDM.
Bed status is tracked via operational status, which has two states: Unoccupied (available) and Occupied (patient assigned).
Before adding beds, create the wards or locations that contain them.
Access: Admin Dashboard > Bed Management > Create Ward (/admin/admin/bed-management/ward/create)
| Field | Required | Description |
|---|---|---|
| Location Type | Yes | Ward, Operation Theater, Radiology, Pharmacy, Blood Bank, Store, or IT |
| Location Name | Yes | Name of the ward or location, e.g., "General Ward - Floor 1", "Main OT" |
| Status | Yes | active, inactive, or suspended |
Location types are configured in the system and include all physical areas that can contain beds.
Once wards exist, add beds or rooms inside them.
Access: Admin Dashboard > Bed Management > Create Bed (/admin/admin/bed-management/bed/create)
| Field | Required | Description |
|---|---|---|
| Choose Ward | Yes | Select the parent ward. Only locations with type "Ward" are shown in this dropdown (not OT, Radiology, Pharmacy, etc.) |
| Name of Bed or Room | Yes | e.g., "Bed 1", "ICU Bed A", "Room 101" |
| Status | Yes | active, inactive, or suspended |
When a bed is created, its operational status defaults to Unoccupied (available for allotment).
type = "Ward". A bed has type = "Bed" and partOfLocationId pointing to its parent ward.type=Bed&organization={orgId}.Assigning a bed to a patient links the bed to their active encounter.
Access: Patient's record > Allot Bed (/admin/patient/bed/allot/{patientid}?bedid={bedid})
{WardName}-{BedName} in the physical type field.Bed allotment is not admin-only. The following roles can allot beds: admin, director, accountant, nurse, receptionist_accountant, receptionist, insurance_lead, insurance_executive.
Beds are released in two scenarios:
The release API sets the bed's operational status back to Unoccupied. This is called automatically during bed transfer and should be called manually or as part of the discharge workflow.
API: POST /api/admin/allot-bed/release-bed with the bed's location ID.
Bed status flows through the encounter lifecycle:
IPD Admission → Encounter created (in-progress)
↓
Allot Bed → Bed marked Occupied, linked to encounter
↓
Bed Transfer → Old bed Released, new bed Occupied
↓
IPD Discharge → Bed Released, Unoccupied
The encounter's location array tracks all beds occupied during the stay, with start and end timestamps for each.
See IPD Admission, IPD Bed Transfer, and IPD Discharge for the full IPD workflow.
Q: Can I bulk-create beds? A: Beds are created one at a time through the form. For bulk setup during implementation, contact support for data migration.
Q: What is the difference between bed status and operational status? A: The Location's status (active/inactive/suspended) controls whether the bed appears in dropdowns and search. Operational status (Unoccupied/Occupied) tracks whether a patient is currently assigned.
Q: Can a bed be reserved in advance? A: There is no reservation feature in the current version. Beds go directly from Unoccupied to Occupied at allotment time.
Q: How do I deactivate a bed? A: Only an admin can edit a bed. Go to the bed edit page and set its status to "inactive". It will not appear in bed selection dropdowns but stays in historical records.
Q: What happens if I try to allot an already occupied bed? A: The allotment API checks that the bed's operational status is Unoccupied before proceeding. If occupied, it returns an error: "One of the bed Chosen is not Unoccupied."