Skip to content

Pharmacy Formulary Management

Dr M H B Ariyaratne edited this page May 22, 2026 · 1 revision

Pharmacy Formulary Management

Introduction

HMIS implements a structured pharmaceutical formulary based on the SNOMED dm+d (Dictionary of Medicines and Devices) hierarchy. This model cleanly separates the active ingredient, the generic formulation, and the branded product — enabling generic/brand substitution at the point of dispensing, standardised prescribing by clinicians, and accurate formulary control by pharmacy administrators.

Navigation

Function Menu Path
Virtual Therapeutic Moiety (VTM) Main Menu → Pharmacy → Admin → VTM
Virtual Medicinal Product (VMP) Main Menu → Pharmacy → Admin → VMP
Actual Medicinal Product (AMP) Main Menu → Pharmacy → Admin → AMP
Item Master (Dispensable Items) Main Menu → Pharmacy → Admin → Items
Dosage Forms Main Menu → Pharmacy → Admin → Dosage Forms
Routes of Administration Main Menu → Pharmacy → Admin → Routes
Measurement Units Main Menu → Pharmacy → Admin → Measurement Units
Frequency Units Main Menu → Pharmacy → Admin → Frequency Units

Formulary Hierarchy

VTM  (Virtual Therapeutic Moiety)
 └── Active ingredient, e.g. "Amoxicillin"
      └── VMP  (Virtual Medicinal Product)
           └── Generic formulation, e.g. "Amoxicillin 500 mg Capsule"
                └── AMP  (Actual Medicinal Product)
                     └── Branded product, e.g. "Amoxil 500 mg Capsule (GSK)"

VTM — Virtual Therapeutic Moiety

The VTM represents the active substance independent of formulation or brand. Clinicians prescribe at VTM or VMP level for generic prescribing. Pharmacists dispense an available AMP.

Fields: Name, code, description, therapeutic class, retired flag.

VMP — Virtual Medicinal Product

The VMP defines the generic formulation: active ingredient + strength + dosage form + route. A VTM may have multiple VMPs (e.g., Amoxicillin 250 mg Capsule, Amoxicillin 500 mg Capsule, Amoxicillin 125 mg/5 ml Suspension).

Fields: Name, VTM link, dosage form, strength, route of administration, unit of measure.

AMP — Actual Medicinal Product

The AMP is the dispensable branded product. Each AMP links to a VMP. Multiple AMPs may exist for a single VMP (competing brands). The AMP is the level at which stock is held, batches are tracked, and pricing is set.

Fields: Name, VMP link, manufacturer, supplier, barcode (GS1/HIBC), formulary status, controlled substance flag, retail price, purchase price.

AMPP / VMPP — Packaged Variants

AMPP (Actual Medicinal Product Pack) and VMPP (Virtual Medicinal Product Pack) capture pack-size variants of AMPs and VMPs respectively — e.g., a 30-capsule pack vs a 100-capsule pack of the same AMP. Pricing, stock, and GRN tracking can be maintained at pack level.

Generic / Brand Substitution

At the point of dispensing, if the prescribed AMP is out of stock, the pharmacist can substitute with a therapeutically equivalent AMP under the same VMP:

  1. The dispense screen shows available AMPs linked to the same VMP as the prescribed drug.
  2. The pharmacist selects the substitute AMP.
  3. The substitution is recorded against the dispense transaction for audit.
  4. The prescription is fulfilled and marked dispensed.

This ensures formulary compliance while accommodating real-world stock availability.

Controlled Substance Tracking

AMPs classified as controlled substances (scheduled drugs, narcotics, psychotropics) are flagged in the item master (controlledSubstance flag on the AMP). For controlled items:

  • Dispense requires additional authorisation / dual-check in the workflow.
  • All transactions (issue, return, adjustment, disposal) are logged in the controlled substance register.
  • Reports are available to satisfy regulatory requirements for scheduled drug accounting.

Drug Master Maintenance

Adding a New Drug

  1. Navigate to AMP (Main Menu → Pharmacy → Admin → AMP).
  2. Click New AMP.
  3. Select or create the parent VMP (which in turn links to the VTM).
  4. Enter: Name, manufacturer, dosage form, strength, route, barcode, purchase price, retail price, formulary status.
  5. Set Controlled Substance flag if applicable.
  6. Save. The drug is now available for purchase orders, GRN, and dispensing.

Updating Prices

Price changes are applied at the AMP level. Historical pricing is preserved in purchase and sale records; the new price applies to future transactions.

Retiring Items

Items that are discontinued or no longer stocked are marked retired (not deleted). Retired items remain visible in historical reports and bills but are excluded from active formulary searches.

Compound Formulations

For compounded preparations, the VirtualProductIngredient entity captures the ingredient list (each ingredient is a VTM or VMP with quantity). The compound AMP can then be dispensed, stocked, and billed like any other pharmacy item.

Technical Reference

Item Detail
VTM controller VtmController
VMP controller VmpController
AMP controller AmpController
AMPP controller AmppController
VMPP controller VmppController
Dosage forms controller DosageFormController
Compound ingredient entity VirtualProductIngredient
Item master entity com.divudi.core.entity.Item (DTYPE = PharmacyItem)
Related Pharmacy Dispensing Workflows, Pharmacy Batch Management

Clone this wiki locally