Medication expiry tracking

Track per-medication expiry dates, auto-archive on expiry, and email alerts before things expire.

Each medication can carry a single expiry date. When it passes, the medication is automatically blocked from being recorded — and (optionally) auto-archived. A separate notification fires in the lead-up so you can reorder in time.

Setting expiry

  1. Open the medication.

  2. Tick Has expiry.

  3. Set the expiry date.

  4. Optionally add an expiry message that's shown to staff if they try to record against the medication after expiry (e.g. "Discontinued by GP, return stock to pharmacy").

  5. Set notification emails for the expiry warning (optional).

  6. Save.

What happens at expiry

  • The auto_expired flag flips when the date passes.

  • Recordings against the medication are blocked with a MEDICATION_EXPIRED error.

  • An override is possible (with reason + senior approval) but rare — typically you should be using fresh stock by then.

  • An auto-archive cron tidies expired medications after a configurable delay.

Heads up — Expiry is per-medication, not per-batch. If you have two batches with different expiry dates, the medication's expiry date should be the earlier of the two — handle batch-specific differences by physically counting stock when the earlier batch hits its date.

Last updated 21 May 2026 · by eMAR migration · Suggest a feature or change to this article
Still stuck or want something new?

Suggest a new help article — or a brand-new feature. Every note lands in our inbox and we reply.

Suggest a feature or article