Pharmacy Reference Public

FAQ & Troubleshooting

Answers to common ERPat Pharmacy questions and fixes: a hidden menu, greyed-out buttons, a pharmacist who won't go on duty, why a prescription won't validate, why patient IDs are masked, why Controlled Drugs is hidden, and the configured-vs-certified distinction, plus a glossary and support notes.

Guide version: r1 Module version: 1.0.0 Updated: 2026-07-23 Estimated time: 7 min
ERPat · Pharmacy Guide

FAQ & Troubleshooting

The quick fixes for the questions branch teams ask most — a hidden menu, a greyed-out add button, a pharmacist who won't go on duty, a prescription that won't validate, a masked patient ID, a missing Controlled Drugs page — plus a plain-language glossary and the configured-vs-certified distinction.

Applies to: Pharmacy 0.5.0 (Phases 1–5, plus the read-only API and DPA privacy hardening).

Troubleshooting Q&A

The Pharmacy menu doesn't appear in the sidebar

Two things must both be true before the Pharmacy group shows up:

  • The module is enabled for your company — an admin turns it on in Settings → Manage Modules (the underlying flag is module_pharmacy = 1).
  • Your account holds the base pharmacy permission (or you are an admin, who bypasses all checks).

If the module was only just installed, an admin also needs to have run php erpat migrate:modules so the pharmacy tables exist. Log out and back in after a permission change so the sidebar rebuilds.

I can't see or add records (the add button is missing / greyed out)

Viewing a workspace and changing it are separate permissions. Each area has a base view permission plus _create / _update / _delete sub-permissions — for example the Compliance Center uses pharmacy_compliance to view and pharmacy_compliance_create / _update / _delete to change. The same shape applies to the catalog (pharmacy_product*), prescriptions (pharmacy_prescription*), patients (pharmacy_patient*) and quality (pharmacy_quality*). If you can open the tabs but the action buttons are hidden, ask an admin to grant the matching sub-permission to your role. Admins always have all of them.

A pharmacist can't be put on duty

Going on duty is gated on purpose. Check, in order:

  • Permission — you need pharmacy_duty to start or end a duty session.
  • Credential on file — the pharmacist must have a non-expired PRC / Pharmacist-in-Charge credential recorded under Compliance Center → Pharmacist Credentials, linked to their staff user.
  • Expiry — if the credential shows expired, record the renewed PRC ID (or update the expiry date) first, then start the session.

A prescription won't validate or dispense ("pharmacist required")

Validation and recording a fill both enforce the pharmacist-on-duty gate: a credentialed pharmacist must be on duty at the branch. If you see a "pharmacist required" message, open Compliance Center → Pharmacist Duty and start a session, then retry. Also confirm you hold pharmacy_prescription_validate (to validate) or pharmacy_dispense (to record a fill), and that the Rx is in the right state — you can only validate a submitted Rx, and only dispense a validated or partially filled one.

Why is the patient's ID number masked? Can I see the full number?

Patient government IDs are personal data under the Data Privacy Act (RA 10173), so Pharmacy stores them encrypted at rest and shows only the last 4 digits in lists and on the patient page. To read the full number you need the pharmacy_patient_view_sensitive permission; revealing it is a deliberate, audited action recorded against your user. This is by design — grant that permission only to the pharmacist/PIC roles that genuinely need it.

Why isn't there a Controlled Drugs (or Quality & Safety) menu?

Both are advanced sub-modules kept off by default. They only appear once an admin turns them on in Pharmacy → Settings → Advanced Modules (settings module_pharmacy_controlled and module_pharmacy_quality). While a sub-toggle is off, its menu item is hidden and even a direct URL is redirected — so the area can never be reached half-configured. Enable each only after your tenant validates the relevant procedure (PDEA / DDB for the controlled register; your pharmacovigilance and cold-chain SOPs for Quality & Safety). You'll also need the matching permissions (pharmacy_controlled_*, pharmacy_quality*).

Why isn't the Senior Citizen purchase booklet required?

The Senior Citizen booklet requirement is off by default, following FDA Circular 2025-005. You do not need to enable it to be compliant. The separate PWD booklet requirement is configurable per branch in Settings, so enable that one only if your operating profile calls for it. Neither booklet flag affects the discount math — the Senior/PWD discount is always computed the same way.

Is the discount calculated correctly? Why did a ₱112 item become ₱80?

Yes. For a covered Senior/PWD line the lawful order is: strip the 12% VAT to a VAT-exempt base first, then apply the 20% discount to that base. So ₱112 ÷ 1.12 = ₱100 base, minus 20% (₱20) = ₱80 payable. Senior and PWD are mutually exclusive (never both on one line), and a line that isn't eligible pays the full VAT-inclusive price. Every dispense stores the decision and per-line evidence.

The drug catalog / near-expiry page says Warehouse is required

The Drug Catalog extends Warehouse stock items and the Near-Expiry dashboard reads the Warehouse batch ledger, so both need the Warehouse (WMS) module installed. Without it they degrade gracefully to a "Warehouse required" notice rather than erroring. Supplier licensing similarly extends Procurement vendors. Install those modules to unlock the full catalog, FEFO dispensing and expiry dashboards.

What does the readiness score actually mean — is it a government certification?

No. The compliance readiness score reflects how complete your configured evidence is (current licenses, valid credentials, a pharmacist on duty, tasks not overdue). A green score means your records look inspection-ready inside ERPat — it is not an FDA, PRC or BIR certification and does not replace their validation. Treat it as your own readiness checklist, not an official pass.

Configured, not certified. The readiness score, inspection packs, the BIR-shaped Official Receipt, and the controlled register are all "configured for the tenant's registered setup." They help you stay inspection-ready and keep good records — they carry no regulatory authority on their own, and final validation rests with the FDA / PRC / BIR.

Glossary

The terms used across the module, in plain language.

TermWhat it means in Pharmacy
FDA LTOFDA License to Operate — the national permit that lets a drugstore operate. Recorded under Licenses & Permits with issued/expiry dates and an expiry-derived status.
PRC / PICProfessional Regulation Commission ID (proves a person is a registered pharmacist) and Pharmacist-in-Charge (the responsible pharmacist for the branch). Held under Pharmacist Credentials.
On-duty gateThe rule that a credentialed pharmacist must be on duty before regulated activity. Duty needs a valid credential; prescription validation and dispensing both enforce it.
FEFOFirst-Expiry-First-Out — issue the nearest-to-expiry stock first. The dispensing checkout issues stock FEFO through the Warehouse batch ledger and blocks expired batches.
Rx workflowThe prescription lifecycle: draft → submitted → validated → partially_filled → completed, with rejected / cancelled exits.
Senior / PWD statutory discountThe RA 9994 (senior) / RA 10754 (PWD) benefit: treat the sale as VAT-exempt, then take 20% off the VAT-exclusive base. Senior and PWD are mutually exclusive.
Controlled registerAn append-only dangerous-drug (RA 9165) ledger with a running balance. Entries are never edited; a mistake is fixed by a linked reversing correction. Off until the sub-toggle is enabled.
Recall / stop-saleA quality case that, when activated, quarantines the matching Warehouse batch so it can't be dispensed.
Cold chainTemperature logging for refrigerated storage (e.g. 2–8 °C), with readings marked normal or excursion.
DPA maskingPatient ID numbers are encrypted at rest and shown as a masked last-4; unmasking is permission-gated and audited (Data Privacy Act, RA 10173).
Inspection pack / readiness scoreA point-in-time evidence snapshot and a summary of evidence completeness. Internal indicators — not a certification.

Getting support

Before raising a ticket, confirm the basics that resolve most issues:

  • The module is enabled (module_pharmacy = 1) and module migrations have been run (php erpat migrate:modules).
  • Your role has the right permission for the action (see Administration for the full list).
  • The pharmacist you're trying to put on duty has a non-expired credential on file.
  • For the catalog / near-expiry / FEFO features, the Warehouse module is installed (and Procurement for supplier licensing).
  • For Controlled Drugs / Quality & Safety, the matching sub-toggle is enabled in Settings → Advanced Modules.

Every change in the module is written to the audit trail (system_logs, category "Pharmacy"), so an admin can trace exactly what was recorded, by whom, and when — useful when a record looks wrong or missing. Want to try things safely first? Load sample data with php erpat db:seed PharmacyDemo (remove it later with php erpat db:seed PharmacyDemo --remove).

If none of the above resolves it, contact the ERPat Team with the branch, the exact page/tab, and what you expected to happen.

Back to: ← Overview

Was this guide helpful?

Report a content problem