Order Sets in OpenMRS O3
Status: Requirements In Progress In Progress
Technical Complexity: Easy Medium Hard / Complex
Summary:
An Order Set allows a clinician to place a pre-defined bundle of orders (medications, labs, referrals) in a single action, rather than ordering each item individually.
The MVP targets the most basic, high-value clinical use case: Hypertension, where two drugs (Thiazide Diuretic Option) combined with a Calcium channel blocker or ACE inhibitor is the evidence-based standard of care.
The feature will be surfaced within the existing O3 Order Basket to avoid context switching and reuse familiar UI patterns.
Picture showing what this project is about (e.g. a key mockup, drawing; anything visual)
1. Problem
Clinicians routinely place the same combination of orders for common conditions (e.g., hypertension, surgical prep, ART initiation). Placing each order individually is repetitive, time-consuming, and prone to omission errors. There is no mechanism in OpenMRS O3 today to bundle and place a set of orders in a single action.
2. User Stories
As a clinician, I want to search for and select an Order Set (e.g., "Hypertension") so that a guided set of drug-group choices is presented to me in a single view, saving me time and reducing the risk of missed or incorrect orders.
As a clinician, I want to see the drug options within an Order Set grouped by drug class, so I can select the most appropriate drug from each group before placing the order.
As a clinician, I want each drug option to be pre-filled with standard dose, frequency, route, and duration metadata, so I don't have to enter these manually.
As a clinician, I want to be able to clear a drug group selection entirely if none of the options are appropriate for this patient, without being forced to pick one.
As an implementer, I want to configure Order Sets (define the bundle of orders and their default metadata) so that they reflect local clinical protocols and evidence-based guidelines.
3. Market Analysis
Based on the OpenMRS Talk discussion, the following real-world needs were surfaced:
Confirmed high-value use cases (from PIH implementation data):
Hypertension (MVP target)
Thiazide Diuretic Options: Chlorthalidone, Indapamide, Hydrochlorothiazide
Calcium channel blocker or ACE inhibitor: Amlodipine, Lisinopril
Sickle Cell: Hydroxycarbamide + Folic acid
Other use cases raised by the community:
Surgical Admission Profile (labs: CBC, LFTs, RFTs, viral screen, blood grouping, ECG, X-ray, etc.)
Myocardial Infarction protocol (Aspirin, Clopidogrel, Beta-blocker, Statin, ACE inhibitor/ARB)
Diabetic Ketoacidosis (IV Fluids, ABG, IV Potassium, IV Insulin, IV Dextrose, hourly monitoring)
ART initiation bundles
Pre-operative order sets
4. Technical Considerations & Dependencies
UI Integration:
Order Sets are surfaced as a dedicated tab within the existing O3 Order Basket panel, alongside the current Drugs tab. This avoids context switching and reuses familiar order-basket patterns that clinicians already know.
The Order Sets tab is accessible from the same search bar used for individual drugs.
Clinician flow:
Open the order basket and select the "Order sets" tab.
Instead of searching for individual drugs one by one, the clinician searches for the "Hypertension" Order Set.
The order set displays drug groups, each with selectable options. Each group has a default pre-selected, but the clinician can switch to another option or clear the selection entirely if none of the drugs in that group are appropriate for this patient. Selecting the Menu acts as a shortcut that pre-loads all relevant drug classes (ACE inhibitors, Diuretics, etc.) into the basket area simultaneously.
The clinician reviews the "Drug Options".
Optionally, the clinician clicks on any drug to edit dose, frequency, route, or duration. This opens the standard O3 drug order entry form, pre-filled with the order set defaults. After editing, clicking "Update order" returns to the order set view.
Clicking "Save orders" submits the selected drugs to the patient's active orders list.
Clicking "Discard" cancels the entire order set selection.
Data / Concepts Required (per MVP Hypertension use case)
Field | Details |
|---|---|
Order Set Name | e.g., "Hypertension Menu." |
Order Set Instructions | Optional free-text field for clinical guidance displayed above drug groups (e.g., “Prefer two drugs at lower doses over one drug at a higher dose”) |
Order Set Items | Thiazide Diuretic Options:
Calcium channel blocker or ACE inhibitor:
|
Order Type | Drug Order |
Per Item Metadata | Dose, dose units, frequency, route, duration, duration units |
Patient Eligibility Constraints | None for MVP. (Post- MVP → age/gender/LMP filters as raised by Dr. Andrew Kanter) |
Out of Scope (MVP)
Patient eligibility constraints (age/gender/LMP filtering)
Order sets for surgical profile, Myocardial Infarction (MI), Diabetic Ketoacidosis (DKA)
5. Sketches
1. Hypertension - New Diagnosis
2. Hypertension - Controlled (Routine Review)
3. Hypertension - Uncontrolled