Pharmacy Configuration and Privileges - hmislk/hmis GitHub Wiki

Pharmacy Configuration and Privileges

This section describes the configuration options and privileges required for managing pharmacy-related pages. It is intended for System Administrators.


Inpatient Medication Management

Direct Issue to BHTs

Page: /inward/pharmacy_bill_issue_bht.xhtml Navigation: Menu ▸ Pharmacy ▸ Inpatient Medication Management ▸ Direct Issue to BHTs

Configuration Options:

  • Display Total Stock when listing medicines for Inpatients
  • Medicine Identification Codes Used
  • Nursing IP Billing – Show Rate and Value
  • Pharmacy Bill Support for Native Printers
  • Pharmacy Inward Direct Issue Bill is FiveFiveCustom3
  • Pharmacy Inward Direct Issue Bill is PosHeaderPaper

Privileges Required:

  • PharmacyDirectIssueToBht
  • NursingIPBillingViewRates

Reprint Inpatient Direct Issues

Page: /inward/pharmacy_reprint_bill_sale_bht.xhtml Navigation: Menu ▸ Pharmacy ▸ Inpatient Medication Management ▸ Search Inpatient Direct Issues by Item ▸ Reprint

Configuration Options:

  • Nursing IP Billing – Show Rate and Value
  • Pharmacy Inward Direct Issue Bill is FiveFiveCustom3
  • Pharmacy Inward Direct Issue Bill is PosHeaderPaper

Privileges Required:

  • InwardCheck / InwardUnCheck
  • ShowInwardFee
  • NursingIPBillingViewRates

Issue Medicines for Ward Requests (BHT Issue Requests)

Pages: /ward/ward_pharmacy_bht_issue_request_list_for_issue.xhtml, /ward/ward_pharmacy_bht_issue.xhtml, /ward/ward_pharmacy_reprint_bht_issue_request.xhtml Navigation: Menu ▸ Pharmacy ▸ Inpatient Medication Management ▸ BHT Issue Requests

Configuration Options:

  • Manage Costing
  • Nursing IP Billing – Show Rate and Value

Privileges Required:

  • PharmacyBhtIssueRequest
  • PharmacyBhtRequestForceComplete (optional — see below)
  • NursingIPBillingViewRates — required (together with the Nursing IP Billing – Show Rate and Value config option) to see net rate/net value: the item table's Net Total column, the Sale Rate/Cost Rate row-expansion fields, and the header summary's Net Total field. Item name and quantity are always visible regardless of privilege.
  • IPBillingViewDiscount — required to see the header summary's Discount field and the row-expansion's Matrix Value (margin/service-charge-equivalent) field. Independent of NursingIPBillingViewRates — a user can hold either, both, or neither.
  • Admin — shows the Config button in the page header, linking to this page's configuration in the admin interface.

Behavior:

  • Each request line shows how much remains to be issued (requested quantity minus quantities already issued, net of any cancellations/returns of earlier issues against the same request). Entering a quantity greater than what remains is automatically capped to the remaining amount, with a warning message.
  • When every line on a request has been fully issued, the request is automatically marked both fully issued and completed (with a timestamp and the issuing user recorded), and it no longer appears in the list of requests awaiting issue. There is no manual checkbox for this — it happens automatically as soon as the last item is issued.
  • A pharmacist holding the PharmacyBhtRequestForceComplete privilege can force a request straight to Completed status even when it has only been partially issued. This is done from the request's View Request page (/ward/ward_pharmacy_reprint_bht_issue_request.xhtml, reached via View Pharmacy Requests or BHT Issue Request List) using the "Mark as Complete" button — typically used to let a patient's discharge proceed when the remaining requested items are no longer needed. Users without the privilege see the button disabled (greyed out). Once a request is completed — whether automatically or by force-complete — the button stays disabled and a "Completed" tag appears next to the page title, and no further issuing is allowed against the request.

Reprint BHT Issue Bill

Page: /ward/ward_pharmacy_reprint_bht_issue_bill_reprint.xhtml Navigation: Reached via View Bill from the BHT Issue Requests list, or from an inpatient pharmacy request report, against an already-issued bill.

Configuration Options:

  • (none directly — the print-format choice comes from the department's paper-type preference and the on-page Rate radio, not a config key)

Privileges Required:

  • NursingIPBillingViewRates — required to see the item table's Gross Value/Net Value columns and Total/Net Total footer, the Rate radio selector (Without Rate / With Rate), and — when "With Rate" is selected — the rate/value lines on every print format (POS, Prabodha, Five-Five, A4, POS-Header). Item name and quantity always print with no privilege check.
  • IPBillingViewDiscount — required to see the item table's Matrix Value column and — when "With Rate" is also selected — the Discount/Discount Percent lines on every print format. Independent of NursingIPBillingViewRates.
  • Admin — shows the Config button in the page header.

Behavior:

  • Both privileges above are checked together with the on-page Rate radio: a user must hold the relevant privilege and have "With Rate" selected to see that privilege's fields on the printed preview. The on-screen item/total table (left panel) is gated by privilege alone, independent of the radio.
  • The two privileges are independent — a user can be granted rate/value visibility without discount visibility, or vice versa, matching the split enforced on the BHT Issue page above.

Example — item table without IPBillingViewDiscount (Gross Value/Net Value visible via NursingIPBillingViewRates, no Matrix Value column):

Reprint item table with rate/value visible but Matrix Value column absent

Example — item table with IPBillingViewDiscount granted (Matrix Value column now appears):

Reprint item table with Matrix Value column visible after granting IPBillingViewDiscount

The same split applies to the printed preview itself (patient details redacted below; "With Rate" selected in both):

Without IPBillingViewDiscount — no Discount line printed:

Five-Five print preview with rate visible but no Discount line

With IPBillingViewDiscount granted — Discount line now prints:

Five-Five print preview with Discount line visible after granting IPBillingViewDiscount


Disposal

Note: As of July 2026, the main menu item and page labels for this feature show "Consumption" instead of "Disposal", though the underlying feature/URL and privilege names are unchanged.

Issue

Page: /pharmacy/pharmacy_issue.xhtml Navigation: Menu ▸ Pharmacy ▸ Consumption ▸ Issue

Configuration Options:

  • Consumption – Show Rate and Value

Privileges Required:

  • PharmacyDisposalIssue
  • ConsumptionViewRates
  • ChangeReceiptPrintingPaperTypes

Disbursement

Request

Page: /pharmacy/pharmacy_transfer_request.xhtml Navigation: Menu ▸ Pharmacy ▸ Disbursement ▸ Request

Configuration Options:

  • Stock Request – Show Rate and Value

Privileges Required:

  • PharmacyDisbursementRequest
  • StockRequestViewRates
  • Developers

Direct Issue

Page: /pharmacy/pharmacy_transfer_issue.xhtml Navigation: Menu ▸ Pharmacy ▸ Disbursement ▸ Direct Issue

Configuration Options:

  • Stock Transaction – Show Rate and Value
  • Pharmacy Transfer Issue Bill is POS Paper with details
  • Pharmacy Transfer Issue Bill is POS Paper with header
  • Pharmacy Transfer Issue Bill is Template

Privileges Required:

  • PharmacyDisbursementDirectIssue
  • StockTransactionViewRates
  • Developers

Issued List

Page: /pharmacy/pharmacy_transfer_issued_list.xhtml Navigation: Menu ▸ Pharmacy ▸ Disbursement ▸ Receive

Configuration Options:

  • (none)

Privileges Required:

  • PharmacyDisbursementRecieve

Receive from List

Page: /pharmacy/pharmacy_transfer_receive.xhtml Navigation: Menu ▸ Pharmacy ▸ Disbursement ▸ Receive ▸ Receive (from list)

Configuration Options:

  • Report Font Size of Item List in Pharmacy Disbursement Reports
  • Pharmacy Transfer Receive Bill is Template

Privileges Required:

  • PharmacyTransferViewRates
  • ChangeReceiptPrintingPaperTypes
  • Developers

Retail Transactions

Sale by Batch

Page: /pharmacy/pharmacy_bill_retail_sale.xhtml Navigation: Menu ▸ Pharmacy ▸ Retail Transactions ▸ Sale by Batch

Configuration Options:

  • Find Last Sale Rate of Medicines in Retail Sale
  • Display Total Stock when listing medicines for Retail Sale
  • Medicine Identification Codes Used
  • Enable label printing for pharmacy medicines
  • Pharmacy Bill Support for Native Printers
  • Pharmacy Retail Sale Bill formats: PosPaper / PosPaper with items / PosPaper (prabodha) / FiveFivePaper / PosHeaderPaper / FiveFiveCustom3

Privileges Required:

  • PharmacySale
  • ChangeReceiptPrintingPaperTypes

Sale for Cashier

Page: /pharmacy/pharmacy_bill_retail_sale_for_cashier.xhtml Navigation:

  • Menu ▸ Pharmacy ▸ Retail Transactions ▸ Sale for cashier
  • Menu ▸ Opd Issue ▸ Opd Issue For Cashier

Configuration Options:

  • Create Token At Pharmacy Sale For Cashier
  • Allow Tendered Amount for pharmacy sale for cashier
  • Pharmacy Bill Support for Native Printers
  • Enable token system in sale for cashier
  • Pharmacy Sale for Cashier Token Bill is Pos paper
  • Pharmacy Sale for Cashier Bill is Pos paper
  • Pharmacy Retail Sale Bill is PosHeaderPaper
  • Pharmacy Sale for cashier Bill is FiveFiveCustom3

Privileges Required:

  • PharmacySaleForCashier
  • ChangeReceiptPrintingPaperTypes
  • PharmacySale

Recent Fixes (July 2026)

Server-side privilege guards were added across the GRN/GRN-Return, Purchase Order, Disbursement/Transfer, and Discard/Disposal workflows — previously several of these controllers had no hasPrivilege checks at all, so a user without the page-level privilege could still trigger the underlying save/finalize/approve/cancel action directly. New privileges introduced: PharmacyReceiveSave, PharmacyTransferIssueCancel, PharmacyTransferReceiveCancel, InwardPharmacyBhtReceive, InwardPharmacyReturnSubmit. A user without the Finalize privilege on the Disbursement/Transfer request page can no longer finalize a save-only draft. (Issue #21994 and children #22019–#22022, Issue #14869; PRs #22024, #22025, #22026, #22027)


← Back to Pharmacy Administration