Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree
Skip to end of metadata
Go to start of metadata


The Pharmacy Module will provide interfaces for entering patient prescriptions, tracking orders to be filled in the pharmacy, and for dispensing drugs.  It will also interact with the OpenHMIS Inventory module if that module is being used.

High-Level Requirements

The features that will be included in the version 1 release are:

  • Prescription Entry

  • Prescription Fulfillment (Dispensing)

Version 1 if time:

  • Label Printing

  • Simplified Regimen Management

  • Drug management screen ? (improving upon existing admin screens)

  • Templates (i.e. standard frequency, duration, and instructions for a drug)

External Modules

OpenHMIS Commons Module

OpenHMIS Backboneforms Module

OpenHMIS Inventory Module

OpenHMIS Work Order Module

User Roles 

  • Pharmacist 

UI Pages

  • Prescription Entry
  • Pending Pharmacy Work Orders
  • Pharmacy Module Configuration

Functional Areas

Prescription Entry

A patient will come to a clerk in the pharmacy with handwritten prescriptions from a doctor, though later versions may support reviewing existing drug orders created by clinicians.  The clerk will access the Enter Prescription screen (via the Pharmacy menu in top gutter) and enter prescriptions for drugs into OpenMRS, one per line.  Once all of a patient’s prescriptions have been entered and validated, the clerk will save them.  The save operation will create Drug Orders associated with the patient, a group of Work Orders (one per drug) for the pharmacy to fulfill, and the inventory operations required to fulfill the request (if the OpenHMIS Inventory module is loaded); all based on the entered prescriptions.  An option will be available to mark the group of tasks urgent, in which case it will be displayed first in the list of tasks.


  • Patient identifier

  • Prescriptions:

    • Drugs names/identifiers: Concept Drugs will be looked up based on name or identifier.  Concept drugs include formulations which are concept drugs that specify the drug concept, the dosage form, the dose strength and dose unit, as well as if the drug is a combination.

    • Frequency: free text

    • Start & end date

    • Quantity: number of (drug-dependant) units to dispense (e.g. 30 tablets,  1 bottle)

    • Instructions: extra instructions about taking the drug

  • Urgent?


Prescriptions are validated, ensuring that all information necessary (i.e. dose, units, etc.) is given in either the concept drug or the input form.  Any drug-dependent fields (e.g. quantity type) are dynamically updated based on the currently selected drug. A work order is created in the work order module, with sub-orders for each drug to be filled.  Each sub-order will have the related DrugOrder as an attribute.  If an inventory module is available, inventory is checked to ensure that the entered prescriptions can be filled; a warning is shown if not.  If the Inventory module is loaded a stock operation is created and associated with the appropriate work order.


Drug orders are created and associated with the specified patient and the pharmacist work orders for filling the prescriptions are created.

Prescription Fulfillment

Once prescriptions have been entered into the system by a clerk, there will be pharmacy work orders for pharmacy staff to fulfill in order to prepare drugs for the patient (one work order per drug).  The list of pending pharmacy work orders will be available to authorized pharmacy users from the Pharmacy menu at the top of the screen.  This list will be ordered with oldest entries first and with urgent entries pushed to the top, but this sorting and optional groupings can be customized to support institution-specific workflows.  For example, some institutions require that patients pay for medications before they are dispensed and so grouping the work orders into Paid and Unpaid and then sorting by age would be very helpful. It will also be possible to filter the list by status (i.e. show completed/non-completed items).

The pharmacist will start with the highest-priority work order and complete the work of preparing the medication for the patient.  Once finished, the pharmacist will mark the work order as complete which may trigger other inventory and drug order actions, depending on the configuration.  Alternatively, if the work order can/should not be completed (e.g., the particular prescription will be filled by a third-party), the pharmacy tech can mark the work order as cancelled and give a reason.  Also, once completed, the pharmacist or clerk will be able to print a label for the prescription. When the work order is completed it is considered to be done from the perspective of the pharmacy; this may or may not indicate that the patient has actually received their medications, depending on the institution workflow.


  • Drug Order(s)

  • Pharmacy Work Order Task(s)


As the status of the pharmacy work order task is changed the associated actions such as inventory operations and updates to the drug order details will be executed. 


Pharmacy work orders will be completed or cancelled, the prescription label can be printed, the patient regimen may be updated with the prescription details, the patient drug order updated, and any inventory operations completed.

  • No labels


  1. I am interested to develop this module, Could some one guide me the process to get involved? Thanks!

  2. Datta G Thanks for your message! We are finally starting to get back to this pharmacy module after focusing on our inventory module for much of the last year. Please feel free to contact me via email at and we can chat about how we can get you involved!

  3.  Wesley Brown I am also interested in developing this pharmacy module,can i get involved in this module .Iam in the Pharmacy side? thanks


  4. Sridhar Rao Gona I'll suggest the same to you as I did Datta G, contact me and we can figure out how you can get involved. Thanks for your interest!

  5. user-3d2bc

    Hi, i'm a volunteer looking to invest my time and talents in the openmrs - openHMIS.

  6. user-3d2bc Sridhar Rao Gona Datta G Thank you all for your interest! We would welcome your assistance in whatever way you can provide. We are currently evaluating what we actually want to provide in the area of a Pharmacy module (that goes beyond what is already covered by our Inventory module) but we have not yet started the development work on it. If you are interested in helping in other areas you could check out our issue tracker and look at the 'starter' issues; feel free to take on any unassigned issue. If you've got any questions you can email me at or jump into our chatroom.

  7. where can i find this module ? i have been looking at pharmacy modules 


    1. We are not actively developing this module at this time as most of the features that we needed we moved into the OpenHMIS Inventory Module. If we come decide to start actively developing the pharmacy module we will let you know!