Daily Operations
The step-by-step routines for working the counter: sign a pharmacist on duty, capture and validate a prescription, dispense against it with a FEFO stock issue and the correct Senior/PWD statutory discount, print the label and BIR-shaped receipt, and — where enabled — keep the controlled register and cold-chain log up to date.
Each routine below is a short SOP you can follow at the counter. The two safety routines at the end (controlled register, cold chain) only appear when their sub-toggle is enabled.
Opening the branch
A quick start-of-day check keeps you inspection-ready and unblocked for the day's dispensing:
- Open Pharmacy → Overview. Confirm the compliance readiness looks healthy and note anything expiring soon (licenses, credentials) or any overdue renewal task.
- Check whether a pharmacist is already on duty. If not, start a session (below) before any prescription work.
- If you have Warehouse installed, glance at Near-Expiry & Lots for stock expiring in the next buckets so you can pull or prioritize it.
Start a pharmacist duty session
A credentialed pharmacist must be on duty before any regulated activity — validating a prescription or recording a fill both check this gate. Needs pharmacy_duty.
- Open Compliance Center → Pharmacist Duty and choose Start duty.
- Select the pharmacist, optionally the branch and counter, add a note if useful, and save.
- If the pharmacist has no non-expired PRC/PIC credential on file, the start is blocked with a "no valid credential" message — record or renew their credential in Pharmacist Credentials first.
- At the end of the shift, return to the tab and choose End duty on the active session.
Capture a prescription
Prescriptions are captured by transcription into an Rx header plus its prescribed items. Capturing needs pharmacy_prescription_create.
- Open Prescriptions and choose Capture. Pick the patient and (optionally) the prescriber, set the prescription date, and save. The Rx is created as a draft and gets an Rx number.
- On the Rx detail page, add each prescribed item: description, generic name, strength, dosage form, quantity prescribed, and the directions (Sig). Link it to a catalog product where possible so the fill can issue stock.
- When the items are complete, choose Submit. Submit requires at least one item; the Rx moves from draft to submitted, ready for a pharmacist to validate.
Items can be edited or removed only while the Rx is draft or submitted — once validated, the item list is locked.
Validate or reject (pharmacist)
Validation is the pharmacist's professional check and is the point the on-duty gate is enforced. Needs pharmacy_prescription_validate.
- Open the submitted Rx. Choose Validate to approve it or Reject (with a reason) to send it back.
- Validate is blocked unless a pharmacist is on duty at the branch — if you see a "pharmacist required" message, start a duty session first.
- A validated Rx records who validated it and when. Only a validated (or partially filled) Rx can be dispensed.
draft → submitted → validated → partially_filled → completed, with rejected and cancelled as exits. Illegal jumps are refused, so two staff can't drive the same Rx into an inconsistent state.Dispense against a prescription (FEFO + statutory discount)
Recording a fill is where stock leaves the shelf and the statutory discount is computed. Needs pharmacy_dispense, and a pharmacist must be on duty.
- On a validated Rx, choose Dispense. For each item, enter the quantity to fill (you may do a partial fill — up to the remaining quantity) and the selling price (VAT-inclusive).
- Choose the benefit type — none, Senior, or PWD — and, when a discount applies, the beneficiary name, ID type/number, and representative if someone is collecting on the patient's behalf.
- Save. Pharmacy records the dispense and, for each catalog-linked item with Warehouse present, issues stock FEFO (earliest-expiry active batch first), blocking expired batches and appending a batch-aware stock movement. The chosen batch is stamped on the dispensing item.
- The Rx status updates automatically: partially filled if anything remains, or completed when every item is fully dispensed.
How the Senior/PWD discount is calculated
For a covered transaction the lawful order (RA 9994 for seniors, RA 10754 for PWDs) is applied per line: first treat the sale as VAT-exempt by stripping the 12% VAT to a base, then apply the 20% discount to that VAT-exclusive base.
| Step | On a ₱112.00 covered item |
|---|---|
| Gross (VAT-inclusive) selling price | ₱112.00 |
| Strip 12% VAT → VAT-exempt base | ₱112.00 ÷ 1.12 = ₱100.00 |
| Apply 20% statutory discount to the base | ₱100.00 × 20% = ₱20.00 |
| Amount due | ₱80.00 |
Print the label and BIR receipt
Two print views are available from a dispensing record:
- Dispensing label — patient, medicine, directions (Sig), quantity, dispense number, pharmacist and date, in a print-ready page to attach to the medicine.
- Official Receipt (BIR-shaped) — the statutory breakdown: gross, less-VAT / VAT-exempt sales, statutory discount, and amount due, numbered with an OR reference. It is labelled "configured, not certified" — it presents the correct breakdown but does not replace your accredited BIR receipt series.
Over-the-counter sales & patient records
Not every sale needs a prescription. For OTC medicines you sell through the POS register as usual; Pharmacy's role is the drug catalog (classification, storage, Senior/PWD eligibility, price ceiling) and, where a Senior/PWD discount applies, the same statutory math.
Keep your regular customers as patients so their benefit type and medication history are on file:
- Open Patients & Prescribers → Patients and add a patient — name, benefit type (Senior/PWD/none), ID type and number. The ID is encrypted at rest and shown only as a masked last-4 in lists.
- On the patient's detail page you can add authorized representatives (who may collect on their behalf) and see their medication profile — the prescriptions captured for them.
- To read a full ID number you need
pharmacy_patient_view_sensitive; unmasking is a deliberate, audited action recorded against your user.
Controlled register (when enabled)
If the Controlled Drugs sub-toggle is on, keep the dangerous-drug register current. It is an append-only ledger — entries are never edited or deleted; a mistake is fixed with a reversing correction. Posting needs pharmacy_controlled_post; corrections need pharmacy_controlled_correct.
- Open Controlled Drugs and choose New entry. Pick the product and the entry type — opening or receipt adds to the balance; dispense, return or destruction removes from it — and the quantity. The running balance is recomputed from the product's previous entry.
- To fix an error, open the entry and choose Correct. Pharmacy posts a linked reversing entry that restores the pre-error balance and points back at the original. The original stays in the ledger — nothing is erased.
- Periodically run a physical count reconciliation: choose the product, enter the counted quantity, and Pharmacy records the system balance, your physical count, and the variance for the record.
Recalls, adverse events & cold chain (when enabled)
If the Quality & Safety sub-toggle is on, the Quality workspace covers three routines. Creating records needs pharmacy_quality_create; activating/closing a recall needs pharmacy_recall_manage.
Product recall / stop-sale
Log a recall (FDA, supplier or internal source) with the product and batch number. When you activate it, Pharmacy quarantines the matching Warehouse batch(es) — blocking them from being dispensed — and records how many were quarantined.
Adverse events / medication errors
Report an event with its type, severity and any FDA report reference, and track it to closure. Useful for pharmacovigilance record-keeping.
Cold-chain temperature log
Log a temperature reading for a storage zone (e.g. the 2–8 °C fridge). Readings are marked normal or excursion so out-of-range events stand out.
Closing the branch
At end of day:
- End the duty session for each pharmacist who has clocked off.
- Finish any partially filled prescriptions or leave them for the next fill — the running dispensed quantity is preserved.
- If the sub-toggles are on, make sure any controlled-drug movements and a closing cold-chain reading are logged.
- Glance at the Overview once more for anything expiring or overdue to action tomorrow.
Next: Administration → — the settings, permissions, sub-toggles, APIs and cron jobs behind these routines.