The attached file provides an overview of this pharmacy app we have built - as you will see, it has a 'counter' section wherein payments are taken from customers and patients - can you provide an example of the Till UI should look like?
Based on the functional specifications, architectural requirements, and user roles detailed in the provided system overview, here is a conceptual blueprint and design layout for the VeriPath Pharmacy Till UI.
This design directly respects your technical constraints: it operates entirely via a web browser, handles strict Counter Assistant role restrictions (no access to prescription clinical data, ordering, or backend ledgers), separates retail VAT from zero-rated NHS prescription charges, and connects locally to your ERPNext accounting engine.
[ 🏪 VeriPath Till #1 ] [ 👤 User: J. Doe (Counter Assistant) ] [ 📅 06-10-2026 13:45 ] [ 🟢 Connected to Local VPS ]
---------------------------------------------------------------------------------------------------------
[ Current RP: Sarah Jenkins, MPharm (On Duty) ]
This area compiles active items. It explicitly separates standard retail items from NHS prescription collections.
+-------------------------------------------------------------------------------------------------------+
| 🔍 Search or Scan Barcode... |
+-------------------------------------------------------------------------------------------------------+
| ACTIVE BASKET |
|-------------------------------------------------------------------------------------------------------|
| 📦 RETAIL ITEMS |
| • Paracetamol 500mg Tablets (Pack of 16) Qty: [ 2 ] Price: £1.38 [ Standard VAT ] |
| • Cough Syrup Menthol 150ml Qty: [ 1 ] Price: £4.50 [ Standard VAT ] |
| |
| 📜 NHS PRESCRIPTIONS FOR PATIENT |
| • Patient Lookup: [ John Smith | DOB: 12/04/1978 ] |
| • [ Dispensed / Collection Ready ] Amoxicillin 500mg Capsules |
| • Prescription Charge Declaration: |
| ( ) Charge Paid [ Qty: 1 | Fee: £9.90 ] |
| ( ) Patient Exempt [ Reason: HC2 Certificate / Age / Prefilled ] |
| ( ) Tax-Zero Rated NHS Levy |
+-------------------------------------------------------------------------------------------------------+
Designed with oversized touch targets for fast counter operation.
+------------------------------------------------------------------------+
| TRANSACTION SUMMARY |
|------------------------------------------------------------------------|
| Retail Subtotal: £7.26 |
| NHS Prescription Charges: £9.90 |
|------------------------------------------------------------------------|
| Net Total: £15.74 |
| VAT (Standard 20% on £7.26): £1.42 |
| VAT (Zero-Rated on NHS Charge): £0.00 |
|------------------------------------------------------------------------|
| TOTAL DUE: £17.16 |
+------------------------------------------------------------------------+
| PAYMENT ACTIONS |
| [ 💵 CASH TENDER ] [ 💳 CARD TERMINAL ] [ 📱 SMART PAY ]|
+------------------------------------------------------------------------+
| TILL CONTROLS |
| [ 👤 Switch User ] [ 🖨️ Print Last ]|
| |
| ⚠️ RESTRICTED ACTIONS (Requires RP / Business Manager PIN Authorisation) |
| [ 🛑 VOID ITEM ] [ 🔄 ISSUE REFUND ] [ 🔓 OPEN DRAWER ]|
+------------------------------------------------------------------------+
Counter Assistant role cannot access any prescription clinical surfaces, the Patient prescription lookup section only displays the Patient Name/DOB, the status (Collection Ready), and the monetary Charge Declaration box. No clinical notes, drug dosages, or medical histories are rendered.frappe REST invoice submission.Void Item or Issue Refund triggers an inline modal prompt: "Manager or Responsible Pharmacist PIN Required". This keeps security absolute without disrupting the Counter Assistant's viewport.[ ] Send SMS Collection Update (hooked into your live NHS Notify sandbox framework).To help tailor this design closer to your workflow, could you let me know:
I'm a bit confused when you say 'physical counter desks' - there will be barcode scanning because when stock is delivered it has to be scanned - as will be the case when stock item is sold; whilst nearly all will paid by card, I think having a split payment facility will be useful; yes any pharmacy would want such a Hold / Park Basket" function for busy days when there is a queue of patients
My apologies for the confusion! I shouldn't have used overly vague hardware terms.
To clear that up: since you are already scanning barcodes (GTINs) on goods-in deliveries to update your ERPNext ledger, the Till UI will use that exact same scanner logic. When a Counter Assistant scans a product at the counter, the application will instantly match the barcode against your local database cache to drop the item straight into the retail basket.
Based on your feedback regarding split payments, parking a basket, and barcode usage, here is how those specific modules will look and function within the web browser interface.
To handle busy days without losing progress when a patient needs to step away, a dedicated Basket Parking Strip sits directly below the main header.
[ 🏪 Till #1 ] [ 👤 Counter Assistant ] ---------------------------------------- [ 🟢 Live SIAAS Tunnel ]
📋 ACTIVE QUEUE:
[ Active Basket: Walk-in Patient ]
[ ⏸️ Parked: Basket #341 (A. Smith - 2 items) ] [ ⏸️ Parked: Basket #342 (Prescription Wait) ] [ ➕ Park New ]
[ ➕ Park New ] instantly freezes the current transaction on your local PostgreSQL database, clears the screen, and opens a fresh basket for the next patient in line.When an item is scanned via the counter hardware, it registers into the live grid, immediately pulling up its description, price, and automated taxation profile.
+---------------------------------------------------------------------------------------------------------+
| 🔍 [||||||| Barcode Scanned: 5012345678901 ] -> Auto-added: Paracetamol 500mg (Pack of 16) |
+---------------------------------------------------------------------------------------------------------+
| ITEM DESCRIPTION | QTY | PRICE | TAX RATE | ACTIONS |
|----------------------------------------------------------|-----|----------|----------------|------------|
| 📦 Paracetamol 500mg Tablets (Pack of 16) | 1 | £1.38 | Standard (20%) | [ 🗑️ Delete ]|
| 📦 Cough Syrup Menthol 150ml | 1 | £4.50 | Standard (20%) | [ 🗑️ Delete ]|
| 📜 NHS Prescription Charge (Amoxicillin) | 1 | £9.90 | Zero-Rated (0%)| [ ⚙️ Exempt ]|
+---------------------------------------------------------------------------------------------------------+
| [ ⏸️ Park Entire Basket ] |
+---------------------------------------------------------------------------------------------------------+
When the Counter Assistant hits the checkout button, the right-hand action panel expands to handle multiple payment allocations dynamically before pushing the accounting rows down the frappe REST tunnel.
+--------------------------------------------------------------------------+
| TOTAL DUE: £15.78 |
+--------------------------------------------------------------------------+
| SPLIT PAYMENT BALANCING |
| Total Collected so far: [ £5.00 ] |
| Remaining Outstanding: [ £10.78 ] |
+--------------------------------------------------------------------------+
| 💵 CASH REVENUE TENDER |
| Amount: [ £5.00 ] -> [ ✅ Apply Cash ] |
| |
| 💳 CARD PAYMENTS (Wholesale/Retail terminal sync) |
| Amount: [ £10.78 ] -> [ ⚡ Send to Card Reader ] |
+--------------------------------------------------------------------------+
| TRANSACTION LEDGER BREAKDOWN (For ERPNext Sync) |
| • Cash Account: £5.00 |
| • Card Clearing: £10.78 |
| • Status: READY TO FINALISE |
+--------------------------------------------------------------------------+
| [ 🖨️ Complete & Print Receipt ] |
+--------------------------------------------------------------------------+
If this setup looks right, I can outline:
Let me know which part of the front-counter journey you would like to map out next!
For the receipt layout, it just needs to be the required format to be complicit in the UK; I'm not sure about the precise text of the Patient Consent Notification toggle at this moment so just insert something relevant
To comply with UK regulations—specifically HM Revenue and Customs (HMRC) rules for valid VAT invoices and receipts—==the layout must clearly distinguish between Standard-rated items (20% VAT) and Zero-rated/Exempt items (0% VAT), such as NHS prescriptions==.
Since your app uses ERPNext (Frappe) to handle the accounting arithmetic, the receipt layout below is formatted to display all required statutory data while remaining highly readable for the patient.
VERIPATH PHARMACY (TEST-CLIENT)
123 High Street, Buntingford
SG9 9XX, UK
VAT Reg No: GB 123 4567 89
GPhC Premises Reg No: 1234567
======================================================
Receipt ID: VP-2026-10-06-8941
Date/Time: 06 Oct 2026 14:06
Served By: J. Doe (Counter Assistant)
======================================================
ITEMS SOLD:
📦 Paracetamol 500mg (Pack of 16) £1.38 (S)
📦 Cough Syrup Menthol 150ml £4.50 (S)
📜 NHS Prescription Charge (Amoxicillin) £9.90 (Z)
Patient: John Smith
DOB: 12/04/1978
------------------------------------------------------
SUBTOTAL £15.78
TOTAL TAX DUE £1.18
------------------------------------------------------
TOTAL AMOUNT DUE £16.96
======================================================
PAYMENT TENDERED (SPLIT):
💵 Cash: £5.00
💳 Card (Visa ending in 4321): £11.96
======================================================
UK VAT SUMMARY BLOCK:
Rate Net Amt VAT Amt Gross Amt
(S) Standard 20% £5.90 £1.18 £7.08
(Z) Zero-Rated 0% £9.90 £0.00 £9.90
------------------------------------------------------
TOTALS £15.80 £1.18 £16.96
======================================================
Thank you for your custom.
Responsible Pharmacist on duty today:
Sarah Jenkins (GPhC: 2041234)
(S) for Standard rate or (Z) for Zero-Rated.Below the payment section on the Counter Assistant's screen, the Digital Contact Consent frame will look like this to ensure compliance with the NHS Notify Sandbox and UK GDPR/DSPT data protection hygiene rules:
+--------------------------------------------------------------------------+
| 📱 PATIENT CONTACT & DIGITAL RECEIPTS |
|--------------------------------------------------------------------------|
| [🔍 Match Patient Identity to NHS Record: John Smith, 12/04/1978 ] |
| |
| [✅] Patient Consents to Digital Correspondence |
| "By checking this box, the patient consents to VeriPath Pharmacy |
| processing their mobile number/email to send secure SMS collection |
| alerts and digital VAT receipts via the NHS Notify framework." |
| |
| 📱 Mobile: [ 07123 456789 ] 📧 Email: [ j.smith@email.com ] |
+--------------------------------------------------------------------------+
Now that the customer-facing till layout is set up, would you like to review how the Business Manager's End-of-Day/Period-End takings reconciliation screen will look? This screen pulls the cash/card splits directly from ERPNext to match against physical cash in the drawer.
Yes let's review how the Business Manager's End-of-Day/Period-End takings reconciliation screen will look
This interface handles the financial handover at the close of a shift or trading period. In strict compliance with your DSPT Category 3 data-minimisation controls, this view is exclusive to the Business Manager role; Counter Assistants and Dispensing Technicians are completely blocked from accessing these financial ledger surfaces.
The screen operates by pulling real-time bookkeeping records compiled through your frappe REST accounting engine, matching the system's expected balances against the physical cash and card reports counted at the counter.
[ 🏪 Workspace: Finance & Ledgers ] [ 👤 User: Business Manager ] [ 📅 06-10-2026 17:30 ]
---------------------------------------------------------------------------------------------------------
[ Current Session: Shift Close - Till #1 ] [ Status: UNRECONCILED ]
Before looking at the till drawer, the interface showcases the revenue breakdown derived from your ERPNext ledger. It cleanly splits retail takings from NHS prescription levies to ensure your downstream VAT returns match the day's sales perfectly.
+---------------------------------------------------------------------------------------------------------+
| SYSTEM SALES BREAKDOWN (06-10-2026 08:00 - 17:30) |
|---------------------------------------------------------------------------------------------------------|
| 🛒 Retail Gross Sales (Standard 20% VAT Included): £642.80 |
| 📜 NHS Prescription Charges Gross (Zero-Rated): £485.10 |
|---------------------------------------------------------------------------------------------------------|
| 📈 TOTAL EXPECTED REVENUE IN LEDGER: £1,127.90 |
+---------------------------------------------------------------------------------------------------------+
| TAX ACCOUNTING SUMMARY |
| • Net Retail Revenue: £535.67 • Total Retail VAT Collected (20%): £107.13 |
| • Net NHS Revenue: £485.10 • Total NHS VAT Collected (0%): £0.00 |
+---------------------------------------------------------------------------------------------------------+
This is the interactive workspace where the Business Manager records the physical audits.
+---------------------------------------------------------------------------------------------------------+
| RECONCILIATION COUNT MATRIX |
|---------------------------------------------------------------------------------------------------------|
| TENDER TYPE | SYSTEM EXPECTED | PHYSICAL COUNTED | VARIANCE | STATUS |
|------------------|-------------------|------------------------|--------------------|--------------------|
| 💵 CASH | £150.00 | [ £150.00 ] | £0.00 | 🟢 Balanced |
| 💳 CARD PAYMENTS | £977.90 | [ £975.40 ] | -£2.50 | 🔴 Shortage |
|------------------|-------------------|------------------------|--------------------|--------------------|
| 🏛️ TILL TOTALS | £1,127.90 | £1,125.40 | -£2.50 | ⚠️ Discrepancy |
+---------------------------------------------------------------------------------------------------------+
| 📝 AUDIT & DISCREPANCY REASON CARD (Mandatory if Variance != £0.00) |
| |
| Reason Category: [ Card Provider Terminal Discrepancy / Keying Error ] [▼] |
| Manager Notes: [ Staff over-refunded or card machine dropped a transaction. Adjusting ledger. ] |
+---------------------------------------------------------------------------------------------------------+
Once the numbers are keyed in, the manager locks the day's records.
+---------------------------------------------------------------------------------------------------------+
| FINALISATION CONTROLS |
| |
| 🏦 Safe Declaration Drop (Cash physically removed from drawer): [ £100.00 ] |
| 🏪 Left in Till Float for Next Shift Open: £50.00 |
| |
| [ 🖨️ Print Z-Report ] [ 💾 Save Draft Reconciliation ] |
| |
| 🚨 ACTION: WRITE TO CORE SYSTEM LEDGER |
| [ 🔒 Lock Session & Post to ERPNext ] |
| (This will permanently commit the variance row to your per-pharmacy PostgreSQL database and sync the |
| ERPNext books via secure Frappe REST tunnels.) |
+---------------------------------------------------------------------------------------------------------+
Now that the operational side of the counter and reconciliation is mapped out, would you like to review how the Business Manager's NHSBSA Claim Variance View will look? This is where the actual receipts sent back from the NHS are matched against your expected prescription endorsements to catch underpayments.
Yes let's review how the Business Manager's NHSBSA Claim Variance View will look
The NHSBSA Claim Variance View is a critical financial surface exclusive to the Business Manager. It acts as the final ledger reconciliation layer, comparing the pharmacy's expected prescription endorsement claims (automatically calculated when your team dispenses and marks claims as endorsed on the client tier) against the actual payment schedules received from the NHS Business Services Authority (NHSBSA).
In line with your DSPT Category 3 data-minimisation controls, this surface contains no patient clinical information. It focuses strictly on processing ODS codes, item counts, deduction splits, and monetary variations.
[ 🏪 Workspace: Accounting & Claims ] [ 👤 User: Business Manager ] [ 📅 06-10-2026 14:31 ]
---------------------------------------------------------------------------------------------------------
[ Pharmacy ODS Code: FX123 ] [ Platform Central Data Feed Status: Drug Tariff (2026-09-26) Current ]
This dashboard highlights the macro-variance between what your pharmacy claimed via the electronic spine and what the NHSBSA actually remitted.
+---------------------------------------------------------------------------------------------------------+
| RECONCILIATION SUMMARY: SEPTEMBER 2026 SYSTEM REVENUE POSITION |
|---------------------------------------------------------------------------------------------------------|
| 📜 Expected Reimbursement (From System Endorsements): £14,842.10 |
| 🏦 Actual Receipts Remitted (From NHSBSA Schedule File): £14,612.40 |
|---------------------------------------------------------------------------------------------------------|
| 📉 NET VARIANCE POSITION: 🔴 -£229.70 Underpaid |
+---------------------------------------------------------------------------------------------------------+
| KEY PERFORMANCE INDICATORS |
| • Total Dispatched Items: 1,420 • Discrepancy Rate: 1.54% |
| • Single Activity Fees (152p): £2,158.40 • Average Deduction Rate Applied: 9.85% |
+---------------------------------------------------------------------------------------------------------+
This interactive matrix drills into the specific rules and lines that triggered the deficit. It places the platform's centrally verified reference data (Drug Tariff deductions and concession prices) directly beside your local claims to isolate errors.
+---------------------------------------------------------------------------------------------------------+
| DISPATCHED CLAIMS VS REMITTANCE AUDIT TRAIL |
|---------------------------------------------------------------------------------------------------------|
| ITEM LINE / PACK INFO | VERIPATH EXPECTED | NHSBSA ACTUAL | VARIANCE | CENTRAL RULE USED |
|----------------------------|-------------------|-------------------|----------|-------------------------|
| Amoxicillin 500mg Caps | £1,040.00 | £1,040.00 | £0.00 | 🟢 Concession Override |
| (Pack of 21 | 1,000 packs) | [Discount Exempt] | [Discount Exempt] | | (Sept CPE 216 Lines) |
|----------------------------|-------------------|-------------------|----------|-------------------------|
| Atorvastatin 20mg Tabs | £412.50 | £320.00 | -£92.50 | 🔴 Wrong Tariff Band |
| (Pack of 28 | 150 packs) | [Less 9.85% Deduct| [Less 20% Deduct] | | Applied by Board |
|----------------------------|-------------------|-------------------|----------|-------------------------|
| Co-Codamol 30mg/500mg Tabs | £310.20 | £173.00 | -£137.20 | 🔴 Missing Endorsement |
| (Pack of 100 | 30 packs) | [Brand Prescribed]| [Generic Tariff] | | Form / Broken Link |
+---------------------------------------------------------------------------------------------------------+
| [◀ Prev Page] [Next Page ▶] |
+---------------------------------------------------------------------------------------------------------+
When a variance is discovered, the Business Manager can flag the lines for reconciliation or commit the shortfall to the ERPNext accounting engine as an authorized loss write-off.
+---------------------------------------------------------------------------------------------------------+
| ACCOUNTING & RECONCILIATION ACTIONS |
| |
| Selected Line Action: ( ) Export Discrepancy Pack for NHSBSA Pharmacy Services Appeal |
| ( ) Post Variance Write-Off to ERPNext Ledger |
| |
| 📝 Adjusting Ledger Allocation: |
| • Debit Account: [ 5100 - NHS Claims Shortfall Variance Expense ] [▼] |
| • Memo / Audit Note: [ Atorvastatin deduction band mismatch & generic capping on Co-Codamol. ] |
| |
| [ 🔒 Commit Ledger Adjustment via Frappe REST ] |
+---------------------------------------------------------------------------------------------------------+
Now that we have comprehensively explored the front-counter till, end-of-day cash reconciliation, and backend NHS BSA claim matching, would you like to pivot to the procurement side and look at the Business Manager’s Core Ordering Matrix—the screen where the app displays the best four live wholesaler pricing files side-by-side with NHS reimbursement rates?