-
Notifications
You must be signed in to change notification settings - Fork 135
Inventory and Stock Management Overview
HMIS provides comprehensive inventory management for pharmaceutical and non-pharmaceutical items across the hospital. Inventory tracking is built into both the Pharmacy and Stores modules, with a shared underlying data model.
Each item in stock is tracked by:
- Department — which store or pharmacy holds the stock
- Item — what the item is (linked to the item master)
- Batch — the batch/lot number from the supplier
- Expiry Date — for perishable items and drugs
- Quantity — current quantity on hand
- Cost Rate — purchase cost per unit (used for valuation)
| Entity | Purpose |
|---|---|
Stock |
Current inventory balance per item per department |
StockHistory |
Full transaction history of every stock movement |
ItemBatch |
Batch-level detail including expiry dates |
Every stock transaction creates a StockHistory record. Common movements include:
| Transaction | Direction |
|---|---|
| GRN / Direct Purchase | In (+) |
| GRN Return / Purchase Return | Out (−) |
| Stock Issue (Unit/BHT) | Out (−) |
| Issue Return | In (+) |
| Transfer Issue | Out (−) from source |
| Transfer Receive | In (+) to destination |
| Stock Adjustment (increase) | In (+) |
| Stock Adjustment (decrease) | Out (−) |
| Dispensing (Pharmacy) | Out (−) |
The system tracks batch numbers and expiry dates for all items that require them. During issuance and dispensing, items are consumed using FEFO (First Expiry, First Out) — the batch expiring soonest is used first.
For detailed pharmacy batch management, see Pharmacy Batch Management and Expiry Tracking.
Items can be configured with minimum and maximum stock levels. The system can highlight items below reorder level to prompt procurement action.
Under Development: Automated replenishment triggers and purchase order auto-generation from reorder alerts are planned features.
See also: Issue #19122 — Enable listing of items below reorder level during PO creation.
The Pharmacy module supports a structured stock-take process:
- Generate a stock count sheet
- Record physical counts
- System compares against recorded stock
- Discrepancies are recorded as adjustments
For stores, manual adjustments serve the same purpose (see Stores — Stock Adjustments).
Near-expiry alerts and expiry reports are available in both pharmacy and stores:
- Pharmacy: Near-expiry items are flagged during dispensing and in stock reports
- Stores: Expiry dates are recorded at GRN; adjustment page should also capture expiry (Issue #5600 — pending)
Items issued to patients via BHT Issue are linked to the patient's encounter record, enabling:
- Per-patient consumable cost tracking
- Implant traceability (for surgical items issued to a specific patient)
- Integration with inpatient billing
Note: Full implant traceability (device unique identification linked to patient record) is available through BHT issue linking, but a dedicated implant registry feature is under development.
Both Pharmacy and Stores provide a range of stock reports:
| Report | Module | Description |
|---|---|---|
| Department Stock | Both | Current stock by department |
| Stock by Batch | Both | Stock breakdown by batch/expiry |
| Near-Expiry Items | Both | Items expiring within a configurable window |
| Stock Movement | Both | All transactions for a period |
| Bin Card | Both | Item-level ledger showing all in/out movements |
| Stock Valuation | Both | Stock value by cost rate |
Navigation: Pharmacy → Reports → Stock Reports
Navigation: Stores → Reports → (select report)