Uploaded image for project: 'OpenMRS Core'
  1. OpenMRS Core
  2. TRUNK-4535

Support formulary status for drugs



    • Type: New Feature
    • Status: Ready for Work
    • Priority: Should
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
    • Complexity:


      A "formulary" represents a specific list of drugs formulations. Formularies are used by hospitals, clinics, insurance companies, pharmacies, etc. to define a specific list of drugs – e.g., the list of drug formulations within inventory or the drug formulations covered by insurance.

      Since OpenMRS lacks any way to distinguish between formulary and non-formulary drugs, implementations end up limiting entries in the drug table to formulary items or find ways (outside of OpenMRS) to inform users of which drugs are formulary.

      The goal of this ticket is to introduce support for specifying the formulary status of entries in the drug table. Since it is common to have more than one formulary source (e.g., different formularies based on care setting, local hospital system, payor, etc.), we need a design that allows for drugs to be in 0-to-n formularies.

      Acceptance Criteria for API

      • Clients should be able to get a list of available formularies.
      • Clients should be able to check if a drug is on a particular formulary.
      • Clients should be able to get the list of formularies for a particular drug.
      • Clients should be able to search for a drug within a specified list of formularies.
      • Clients should be able to ask the API for a (paginated) list of all drugs within a given formulary.
      • Privileged clients should be able to manage the list of formularies and assignment of drugs to formularies.

      Tips for development


      DrugFormulary as metadata defining a formulary – i.e., a set of drugs in an inventory, preferred by a payor, etc. At a minimum, this should provide a name and description.

      Drug.formularies as a new property of Drug to specify the formularies to which the drug belongs.

      The tables to support formularies should look something like this:
      CREATE TABLE drug_formulary (drug_formulary_id PRIMARY KEY, name VARCHAR, ...);
      CREATE TABLE drug_formulary_map (drug_formulary_map_id, drug_formulary_id, drug_id;

        Gliffy Diagrams


            Issue Links



                lstanisic Lauren Stanisic
                2 Vote for this issue
                16 Start watching this issue