← Knowledge library

Pharmacy

Dispense a medication

Find a prescription in the pharmacy queue, review stock lots and quantities, generate and settle its invoice, then complete and verify the dispense.

Current source · source reviewed · 10 min read

Before you begin

1. Open the prescription queue

Open the Pharmacy service and its dispensing location, then View Prescriptions. In Prescription Queue → Billing Pending, identify the correct patient and encounter. Use View Rx to inspect the prescription before billing.

Find a prescription in the pharmacy queue. Actual MANSOQ application with explicitly synthetic local training data.
Find a prescription in the pharmacy queue · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

2. Open Bill Now

Choose Bill Now on that prescription. The observed Bill Medications screen shows product, original dose/frequency/duration, lot, expiry, quantity, price, All Given? and Mark Complete. Check the selected prescription and its note.

Review the dispensing batch and quantity. Actual MANSOQ application with explicitly synthetic local training data.
Review the dispensing batch and quantity · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

3. Review lot and quantity

Select the appropriate stock lot and verify expiry. Automatic quantity calculation is a starting point: the training schedule produces2 units. Enter the intended dispense quantity and review the estimated price; the final invoice can include rounding.

Review the dispensing batch and quantity. Actual MANSOQ application with explicitly synthetic local training data.
Review the dispensing batch and quantity · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

4. Resolve stock validation

A quantity above the lot’s stock displays Insufficient stock, and the numeric maximum blocks submission. In the example101 exceeds100; returning to2 clears the error. Select another suitable lot or resolve stock with inventory rather than forcing submission.

Quantity exceeds the stocked batch. Actual MANSOQ application with explicitly synthetic local training data.
Quantity exceeds the stocked batch · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

5. Bill the selected items

Select Bill Selected (Shift+Enter). In this current workflow, MANSOQ creates a preparation dispense and a Draft Invoice. Review the invoice’s final total. This differs from older documentation that described an immediate Confirm Dispense with no invoice.

Preparation dispense awaits invoice settlement. Actual MANSOQ application with explicitly synthetic local training data.
Preparation dispense awaits invoice settlement · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

6. Issue and record the payment

Select Issue Invoice, then Collect Payment when appropriate. Choose the actual method, issuer, authorized Location and amount; for cash, check amount received/change. In screenshots the cash receipt is explicitly simulated in a local database: no money was collected.

Record a clearly labelled simulated receipt. Actual MANSOQ application with explicitly synthetic local training data.
Record a clearly labelled simulated receipt · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.
Synthetic cash receipt recorded. Actual MANSOQ application with explicitly synthetic local training data.
Synthetic cash receipt recorded · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

7. Verify the invoice settlement prerequisite

A saved receipt can show Fully Paid and zero amount due while Complete Dispense remains disabled until the invoice is balanced. The audited UI’s Mark as balanced sends immutable invoice fields and is refused. In this training exercise, a separate normal API status-only update succeeded after independent verification that the full simulated payment equalled the invoice total. This is an API-supported continuation, not a successful UI balance action.

Complete the settled synthetic dispense. Actual MANSOQ application with explicitly synthetic local training data.
Complete the settled synthetic dispense · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data. Invoice balance used a separately labelled normal API workaround for the current UI failure.

8. Complete the dispense

When the invoice prerequisite is satisfied, select Complete Dispense (Shift+D). Wait for Status: Completed, item Completed, and Dispense Completed!. The training flow completes through this actual UI action.

Synthetic dispense completed. Actual MANSOQ application with explicitly synthetic local training data.
Synthetic dispense completed · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

9. Read back the result

Confirm the dispense order/item, authorizing request, inventory movement and invoice/payment records. The example’s independent readback shows2 units dispensed and stock100→98 before the subsequent return. A dispensing record is separate from the Nurse’s administration record.

Synthetic dispense completed. Actual MANSOQ application with explicitly synthetic local training data.
Synthetic dispense completed · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

An empty cashier Location picker

The observed payment picker initially returned No location found. Adding the correct direct Pharmacy organization membership and linking that organization to Main Pharmacy through normal configuration made the location selectable. Verify organizational ownership rather than choosing an unrelated location.

Cashier location needs organization setup. Actual MANSOQ application with explicitly synthetic local training data.
Cashier location needs organization setup · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

Current invoice balance limitation

The finalized invoice API refuses generic edits other than a status-only transition. The current payment success UI sends account/charge-items/note/payment-terms when marking balanced and is rejected. Preserve the saved receipt and use the authorized support/API procedure or a corrected application release. Do not collect payment twice.

Medication returns need separate inventory permission

The default Pharmacist can complete the dispense but Create Return is exposed even though delivery-order creation is refused with Cannot write delivery orders. Default external supply-delivery write permission belongs to Facility Admin/Admin. Hand off to the authorized inventory role.

Prepare a synthetic medication return. Actual MANSOQ application with explicitly synthetic local training data.
Prepare a synthetic medication return · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.
Default Pharmacist return permission refusal. Actual MANSOQ application with explicitly synthetic local training data.
Default Pharmacist return permission refusal · 2026-10-18. Production build of audited MANSOQ; isolated synthetic Pharmacist fixture; no real patient or production data.

Troubleshooting

Insufficient stock or browser maximum warning

Reduce the quantity or choose another appropriate stocked lot. Recheck the prescription and expiry.

Fully Paid but Complete Dispense is disabled

Check invoice balance status. A receipt alone does not satisfy this UI gate. If Mark as balanced is refused by finalized invoice immutability, preserve the payment and use the authorized status-only API support path; never repeat payment to clear the gate.

Cannot write delivery orders when returning medicine

The default Pharmacist role lacks external supply-delivery write permission. An authorized Facility Admin/Admin must process the return.

Source evidence

References are pinned to the private MANSOQ source repository. Repository access is required to open these links.