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.
- 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.
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.