Features
Everything between the vendor and the patient
One record for each unit of stock: where it came from, which lot, when it expires, where it is now and who used it.
A catalogue that knows its packs
Each product has a base unit and the packs it comes in: a box of 20, a crate of 10 boxes. Orders are written in the pack the vendor sells; stock is counted in base units; the shelf shows both.
- GTIN on the product and on each pack, so any barcode on the packaging is recognised
- Reorder point, par level and reorder quantity per product
- Preferred vendor, vendor codes and prices per pack
- Lot, expiry and serial tracking switched on per product
| Pack | Holds | Base units |
|---|---|---|
| Each | One glove pair | 1 |
| Box | 20 × Each | 20 |
| Crate | 10 × Box | 200 |
Purchase orders that run themselves
Suggested orders gather everything at or under its reorder point into one draft per vendor, topped up to par. Orders over a threshold go to a manager first. Sending an order emails it to the vendor in their own codes.
- Draft, awaiting approval, approved, sent, partly received, received, closed
- Line totals, tax and currency per order
- Every delivery against the order is listed on it
| Line | Ordered | Received |
|---|---|---|
| Nitrile gloves M · Crate | 1 | 1 |
| Saline 500 mL · Carton | 4 | 2 |
| Suture 3-0 · Box | 6 | 0 |
Receiving by scanning the label
A GS1 DataMatrix or HIBC barcode carries the product, lot, expiry and serial. Scanning it fills the line in; the person only says where it was put. A day of 00 on the label is read as the end of the month, as the standard says.
- Receive against an order, or book in a delivery that had none
- Over-delivery held to a tolerance; the rest is refused
- Each line names the pack it arrived as, its unit cost and its location
| Product | Lot | Expiry | Put at |
|---|---|---|---|
| Nitrile gloves M | X-2411 | 30/06/2027 | Warehouse A · Receiving |
| Saline 500 mL | S-7731 | 31/03/2028 | Warehouse A · Fridge 1 |
Stock on hand, grouped your way
The same stock seen by product, by warehouse, by location, by purchase order, by lot, or by lot and location together. Click a line to see the units behind it and act on them.
- Move part of a unit to another shelf or site, keeping its pack or breaking it open
- Count a unit and record the reason it differed
- Hold a unit back from use, release it, or write it off
- Value at cost, with quarantined value shown apart
| Order | Product | On hand | Units |
|---|---|---|---|
| PO-000017 | Nitrile gloves M | 190 each | 3 |
| PO-000017 | Saline 500 mL | 24 each | 1 |
| No order | Suture 3-0 | 36 each | 2 |
Expiry, recalls and the cold chain
A nightly check raises alerts for lots inside the warning window and marks expired ones, quarantining them where the organisation asks. A recall notice, by product or GTIN and lot numbers, is matched to the stock on hand; actioning it quarantines every matching unit and tells your systems.
- Warning window per organisation, overridable per product
- Low stock emails to the people who order
- Temperature readings against each location's range
| Type | What |
|---|---|
| Expiring | Suture 3-0, lot S-11 expires in 21 days |
| Low stock | Saline 500 mL: 24 of 40 |
| Recall | Catheter 14F, lot C-9: 12 units quarantined |
| Temperature | Fridge 1 read 11.2 °C |
A ledger that cannot be edited
Every receipt, move, use, count, hold, release and write-off is a movement in a ledger that is only ever added to. Who did it, when, from where to where, against which order and reference.
- History per product, per lot, per location
- Activity, sign-in and refusal logs for the organisation
- Reports the auditor can read, not reconstruct
| When | Movement | Qty | Who |
|---|---|---|---|
| 08/10/2026 14:02 | Used · theatre 2 | −5 | J. Ng |
| 08/10/2026 11:30 | Moved · shelf 3 → theatre 2 | 10 | A. Patel |
| 07/10/2026 09:12 | Received · PO-000017 | 200 | A. Patel |
See it on your products
A short walk through receiving, the point-of-use screen and the alerts.