Assessed 2026-10-01 — a research answer, now superseded by a build spec; this page is kept verbatim as the
record of what was asked. Matthew's design answer below was read against the live app and turned into the brief:
The Ordering Views — the Business Manager's Decision Screen,
written, rendered as a mockup and approved 2026-10-01 (with the supplier offers capped at four). Kept from
this page: the unified procurement grid; the NHS reimbursement column beside a margin column (both columns, his
ruling); the dm+d guardrail for an item that maps to no pack; the minimum-order threshold monitor as an
always-visible basket bar rather than a floating widget; and the supplier comparison on the row itself. Ruled out
here, with the reason: real-time per-supplier stock — the platform holds wholesaler prices, not stock, and a
supplier's imported file is the only availability signal there is ("we can only use the data that we have");
"Owed" quantities — owed belongs to dispensing, not stock, so the row shows the alert level and what is already on
order instead; and any column computed from a price we do not hold (the margin here is real only because the
derived reimbursement and the imported purchase price now both exist). The closing questions on this page are
answered on the spec page, which is the live document; this page is not amended further.
okay getting back to ordering supplies, we need to design our UI's accordingly so that the business manager can see clearly what is needed and how the relevant stock compares with the other suppliers the pharmacy uses - is there any particular design for this?
To make your procurement engine a definitive reason for pharmacies to switch to VeriPath, the screen design must present information like a financial trading desk. Independent pharmacy staff do not have time to switch between multiple tabs; they need a single, unified workspace that combines inventory status, wholesaler price comparison, and live compliance metrics.
Building directly on top of your live application engine capabilities—where your per-pack derived reimbursement arithmetic is completely active—here is the definitive wireframe layout for your Order Build & Procurement Screen.
Divide the interface into a master horizontal workspace. The critical design rule here is direct tabular alignment: a user should never have to move their eyes away from the row to compare real purchase prices against the official NHS tariff.
Your data grid must map out columns in this exact left-to-right order to mirror a manager's logical processing flow:
| 💊 Product Line | 📊 Stock Status | 🎯 Best Pick Supplier | 🏷 Your Contract Price | 🏛 NHS Reimbursement | 📉 Net Margin |
|---|---|---|---|---|---|
Amoxicillin 250mg 500mg capsules (21 pack) AMPP: 112233 |
Owed: 4 Low Stock: Yes Last sync: 12m ago |
Sigma (Selected) ⚡ Out of Stock at AAH |
£1.04 (Per Pack) Basis: CSV 28/09 |
£2.10 • 20% Deducted • Part II Rule Active |
+£1.06 (Advisory Only) Verified 64/64 |
Atorvastatin 20mg 20mg tablets (28 pack) AMPP: 445566 |
Owed: 0 Low Stock: No Last sync: 2m ago |
Alliance (Selected) 💡 AAH is £0.40 cheaper |
£1.80 (Per Pack) Basis: CSV 25/09 |
£1.30 ⚠️ Concession line • No Disc. Deducted |
-£0.50 ⚠️ Buy at Loss Advisory Alert |
To avoid option paralysis while maintaining high data density, embed these three functional modules directly on the dashboard page:
When a user clicks on any product row in the grid, slide open an inline drawer underneath that item. This panel isolates the specific suppliers configured by that pharmacy during setup using your parsed MHRA registry file:
[▼] Compare Real-Time Stock & Imported Price Files for: Atorvastatin 20mg
─────────────────────────────────────────────────────────────────────────────
• (Selected) Alliance Healthcare ─── Price: £1.80/pack ─── Stock: Available
• [Switch] AAH Pharmaceuticals ─── Price: £1.40/pack ─── Stock: Short Supply ⚠️
• [Switch] Sigma Pharmaceuticals ─── Price: £1.95/pack ─── Stock: Available
Community pharmacy order pads drop lines continuously throughout the day. To manage your minimum order thresholds cleanly without blocking operations, stick a live contractual summary bar to the bottom of the workspace:
📦 CURRENT ORDER BASKETS SUMMARY:
─────────────────────────────────────────────────────────────────────────────
• AAH: £182.40 / £150.00 Min ─── [✓ Surcharge Clear] ─── [Ready to Export]
• Sigma: £25.28 / £150.00 Min ─── [⚠️ £124.72 Short] ─── [Review Bulk Lines]
• Alliance: £0.00 / £150.00 Min ─── [Empty]
As specified in your platform rules, if an item in the inventory cannot be mapped to an actual dm+d pack record, your grid row must completely suppress all financial values. Display a distinct, grayed-out status label instead:
🚫 Not linked to a dm+d pack yet — no code that matches a pack. No supplier price on file.
Because the client data cannot leave the pharmacy's box, this complete interface runs entirely inside the local browser application layer engine (VPS2).
The webpage loads the read-only NHS tariffs and concession lines centrally, pulls the pharmacy's private cost profiles and supplier account numbers locally from their independent PostgreSQL instance, and compiles the comparison entirely client-side. Your platform provides maximum transactional intelligence while maintaining zero visibility over their private trade relationships.
Quick questions if you have time:
How is the information density?
What should we map next?