---
title: "Bed Management"
description: "How to manage hospital beds in NICE HMS — create wards and beds, allot beds to patients, release beds, and how bed status integrates with IPD encounters."
date: 2026-07-19
lastModified: 2026-07-26
category: "ipd"
author: "Dr. Umesh Bilagi"
beta: false
---

## Overview

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).

## Creating Wards and Locations

Before adding beds, create the wards or locations that contain them.

**Access:** Admin Dashboard > Bed Management > **Create Ward** (`/admin/admin/bed-management/ward/create`)

### Form Fields

| 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.

## Creating Beds and Rooms

Once wards exist, add beds or rooms inside them.

**Access:** Admin Dashboard > Bed Management > **Create Bed** (`/admin/admin/bed-management/bed/create`)

### Form Fields

| 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).

### How Locations are Stored

- Wards and beds are stored as FHIR Location resources.
- A ward has `type = "Ward"`. A bed has `type = "Bed"` and `partOfLocationId` pointing to its parent ward.
- Beds are searched by FHIR query: `type=Bed&organization={orgId}`.

## Allotting a Bed to a Patient

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}`)

### How Allotment Works

1. The patient must have an **active (open) encounter** — typically created at IPD admission.
2. Select a bed. The system checks that the bed is **Unoccupied** before the allotment proceeds.
3. If the patient already occupies another bed, the previous bed is released (marked Unoccupied) and its location entry in the encounter is marked "completed" with an end date.
4. The new bed is marked **Occupied** and added to the encounter as an active location.
5. The encounter's location entry records the bed as `{WardName}-{BedName}` in the physical type field.

### Roles Allowed

Bed allotment is not admin-only. The following roles can allot beds: admin, director, accountant, nurse, receptionist_accountant, receptionist, insurance_lead, insurance_executive.

## Releasing a Bed

Beds are released in two scenarios:
- **At discharge**: The bed is freed and returns to Unoccupied.
- **During transfer**: The old bed is released as part of the new allotment process (see above).

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.

## How Bed Status Connects to IPD

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](/docs/ipd-admission), [IPD Bed Transfer](/docs/ipd-bed-transfer), and [IPD Discharge](/docs/ipd-discharge) for the full IPD workflow.

## FAQ

**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."
