The pharmacy runs as a separate environment with its own login and role layer, sharing only patient and prescription data with the main clinic application. It can be operated independently by pharmacists who have no access to clinical notes or broader billing.
Every medicine is tracked at the batch and lot level, including batch number, expiry date, purchase price, MRP, and quantity remaining. Multiple batches of the same drug can coexist; when dispensing, the system defaults to the batch expiring soonest (FEFO, First Expiry, First Out) to minimise wastage.
Stock quantities are deducted at the moment of dispensing, not at end of day. This ensures the live stock count is always accurate, even across multiple pharmacists working simultaneously.
A background job scans stock daily and raises notifications for batches approaching expiry within the configured lead time (default 30 days). Notifications go to pharmacist accounts via the platform's notification system.
Any manual stock change, breakage, physical count correction, wastage, is recorded with a reason, quantity, and the identity of the staff member who made the adjustment. This creates an unbroken audit trail for stock reconciliation.
When a clinician finalises a prescription, it appears automatically in the pharmacist's queue. The pharmacist sees all pending prescriptions, selects items to dispense, confirms quantities, and completes the dispense, all from a single screen.
Before dispensing is completed, the system cross-checks all drugs being dispensed against the patient's full active medication list. Any known interaction, at any severity level, is surfaced as a warning. The pharmacist must explicitly acknowledge the warning before proceeding.
Walk-in patients with prescriptions from outside doctors can be served. External prescriptions are entered or scanned manually and handled through a separate workflow, keeping them distinct from the clinic's own prescription records while still applying the interaction check.
Medicine returns are logged against the original dispense. Approved returns update stock quantities and trigger a credit to the patient's account or a cash refund, both of which are recorded in the payment log.
Pharmacists open and close shifts with a physical cash count. The declared cash is automatically compared to payment records for the shift period, generating a reconciliation variance report.
Every dispense of a controlled medicine is recorded in a dedicated register with the drug, batch, quantity, patient, prescriber, and date, in the format required by India's Pharmacy Act for narcotics and Schedule H1 drugs. This register is automatically populated from dispense records, no separate entry is needed.
For de-addiction facilities dispensing controlled substances under the NDPS Act 1985, a separate register is maintained at the ward level. Each OST (opioid substitution therapy) dispense creates an entry automatically, with all required fields for drug inspector review.
Each supplier is stored with their GST number, contact details, and payment terms. Purchase orders are raised against suppliers with line-item detail, expected delivery date, and received-quantity tracking.
When a purchase order is received, the receiving workflow creates new stock batch entries automatically, including batch number, expiry, and purchase price. The purchase order status updates from "sent" to "received" as items are confirmed.
When a patient orders a product from the online store that corresponds to a pharmacy item, a dispense queue entry is created automatically on order confirmation, connecting the store and pharmacy workflows without manual intervention.
Physical orders that require delivery are shipped via Shiprocket. When an order is confirmed, a shipment is created through the Shiprocket API, an AWB number is assigned, and tracking status updates are received via webhook and shown to the patient in their portal.
The demo comes pre-loaded with real sample data, so you can click through actual appointments, patients and prescriptions.