MR call-cycle, chemist orders, batch traceability - one platform.
Pharma doesn't fit FMCG software. The visit is to a doctor, the buyer is a chemist, the regulator is everyone. Vendix MRIS - the Medical Rep Information System - runs the whole loop natively: tour plans, doctor appointments, sample tracking, chemist and stockist orders, expense and leave, all on the same multi-tenant platform with batch-level recall and near-expiry alerts built in.
- 6
- MRIS pipelines
- FEFO
- Batch picking
- 211
- MRIS tests green
Pharma call cycle · MR's day
07:00 · Tour plan
Pre-approved tour for the week. 4 doctors, 2 chemists, 1 stockist.
09:30 · Doctor visit
Appointment kept · samples logged · CME notes · GPS verified.
12:00 · Chemist order
Script-driven demand. Prescriber linkage captured.
15:30 · Stockist order
Wholesaler bulk order. Batch + expiry pinned. Cold-chain SKUs flagged.
17:00 · Expense + DCR
Daily Call Report submitted. Expense voucher uploaded for ASM approval.
Six pipelines. Sixteen sync endpoints. One audit trail.
MRIS is built on the same Pipeline Engine and the same offline-first Android stack as the FMCG side. New pharma-specific steps drop in as DB rows; tested against 211 unit tests as of the latest wave.
Tour plan
Weekly/monthly tour plan with manager approval. ASM signs off, MR works against the approved plan, deviations flagged.
Doctor appointment
Fixed-time appointments with auto-link to actual visit. GPS + duration verification. Sample tracking per visit.
Chemist order
Script-anchored demand. Prescriber linkage captured. Inventory deducted FEFO with batch + expiry stamping.
Stockist order
Wholesaler bulk orders with cold-chain enforcement and pre-shipment QC hold capability.
Expense voucher
Per-trip expense capture with attachment upload. Manager-ladder approval via MrisApprovalRouter.
Leave request
Leave application with auto-routing to the line manager. Tour plan auto-adjusted on approval.
DCR (Daily Call Report)
Structured call summary at end-of-day. Auto-pulls visits, samples, prescription notes, orders.
Sample tracking
Every sample handed to a doctor is logged against the visit. Stock deducted from MR's sample inventory.
Hierarchy approvals
MrisApprovalRouter walks TenantUser.ManagerId - same approval ladder as the rest of the platform.
Batch-level traceability.
Recalls in minutes, not days.
Every GRN binds stock to a Batch - manufacturer, mfg date, expiry, shelf-life. Every sale
deducts inventory FEFO. When something has to come off the market, one
RecallBatchCommand
quarantines warehouse stock, generates retrieval tasks per outlet that has the batch,
and flips the Batch master to Recalled. The GetBatchTraceQuery
gives you the full lifecycle in one read.
- Quarantine warehouse auto-created per distributor / sales-manager / direct outlet - recalls land here, not back in saleable stock.
- Near-expiry alerts at Information / Warning / High / Critical thresholds. Daily Hangfire scan at 06:00 UTC; tenant-tunable thresholds.
- BlockExpiredStock + AutoQuarantineOnExpiry tenant params keep expired stock off the shelf at the source.
- Sales return → quarantine via
ReturnReason.RoutesToQuarantine- outlet-returned stock can\'t accidentally re-sell.
06:00
UTC daily scan
Near-expiry alert orchestrator. Hits every tenant. Threshold-tunable.
5 statuses
Batch lifecycle
Active → NearExpiry → Expired → Recalled → Quarantine. Auditable.
SI · TA · EN
Native languages
MR app + chatbot speak the language of your local territory.
A regulator-friendly demo.
Bring your batch master, a recall scenario, and a tour plan. We'll show you the trace query, the recall propagation, and the audit row before the demo ends.