Order Sets in OpenMRS O3
Status: Requirements In Progress In Progress
Technical Complexity: Hard / Complex
Summary:
An order set lets a clinician place a pre-defined bundle of orders - medications, labs, referrals - in a single action, instead of ordering each item one at a time.
The MVP targets a high-value clinical use case: Hypertension, where a thiazide diuretic combined with a calcium channel blocker or ACE inhibitor is the evidence-based standard of care.
The feature is surfaced within the existing O3 order basket, reusing familiar UI patterns and avoiding any new context switch for the clinician.
1. Problem
Clinicians routinely place the same combination of orders for common conditions (e.g., hypertension, surgical prep, ART initiation). Placing each order one at a time is repetitive, slow, and creates room for omission errors. OpenMRS O3 has no mechanism 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 orders is presented to me in a single view - saving time and reducing the risk of missed or incorrect orders.
As a clinician, I want the orders within an order set grouped by clinical intent (e.g., first-line therapy, baseline workup), so I can choose the most appropriate option from each group.
As a clinician, I want each drug to be pre-filled with a standard default dose, frequency, route, and duration - and to be able to edit any of these in the basket if the patient's situation calls for it.
As a clinician, I want to deselect or clear any item the menu pre-selects if it isn't right for this patient, without being forced to keep it.
As an implementer, I want to configure order sets so that they reflect local clinical protocols and evidence-based guidelines.
3. Market Analysis
The OpenMRS Talk discussion surfaced the following real-world needs:
Confirmed high-value use cases (from PIH implementation data):
Hypertension (MVP target)
Thiazide diuretic: chlorthalidone, indapamide, or hydrochlorothiazide
Calcium channel blocker or ACE inhibitor: amlodipine, lisinopril
Sickle cell disease: hydroxycarbamide + folic acid
Other use cases raised by the community:
Surgical admission profile (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 inside the existing O3 order basket, alongside the existing Drug orders and Lab orders entry points. This avoids any context switch and reuses order-basket patterns clinicians already know.
The order set entry point opens the same search panel used for individual drugs - one input, results adapt to what the clinician types.
Clinician flow:
The clinician opens the patient's chart. The order basket (right-hand panel) shows three empty entry points: Order set, Drug orders, and Lab orders, each with an "Add +" link.
The clinician clicks Add + next to Order set. A search panel titled "Add orders" opens, with a "Back to order basket" link, the patient's allergies row, and a search input.
The clinician types into the search input. The same input handles three patterns:
Typing
menulists every order set in the system (e.g., Hypertension New diagnosis, Hypertension Controlled, Hypertension Uncontrolled, Sepsis Admission, Sickle Cell Initiation).Typing
hyreturns a mixed list: the three Hypertension menus, a Hyperthyroid lab panel, and the drug Hydroxyzine - menus, labs, and drugs whose names contain "hy" all surface in one combined list.Typing
amfilters to drug names only (Amlodipine, Amoxicillin, Ambroxol).
The clinician selects Hypertension - New diagnosis. The menu detail panel opens as a single flat list:
Inline guidance: "Start single-agent therapy. Add a second agent only if BP remains ≥ 140/90 after 4 weeks at maximum tolerated dose."
A radio group titled First-line antihypertensive (choose one), with Amlodipine pre-selected (preferred-first-line note shown), and Hydrochlorothiazide and Enalapril (pregnancy-warning note) as alternatives.
A Clear selection link below the radio group.
An optional Atorvastatin checkbox (unticked by default) with a CV-risk hint.
Inline guidance: "Baseline workup to screen for secondary causes and end-organ damage."
Five labs: Renal function panel (pre-ticked), Lipid profile, Fasting blood glucose, Urinalysis, and ECG - all visible, only Renal function panel pre-ticked.
The clinician reviews the pre-selected items and adjusts as needed: switch the radio to a different drug, deselect it via "Clear selection," tick optional items, or leave the menu's defaults as-is.
The clinician clicks Add to basket. Selected items flow into the basket - Amlodipine appears in the Drug orders group, Renal function panel appears in the Lab orders group.
(Optional) The clinician clicks a basket row - say, the Amlodipine row - to review or edit. The standard O3 Add drug order form opens, pre-filled with the menu's defaults (Amlodipine 5mg, 1 tablet, oral, once daily, 30 days, quantity 30, indication Hypertension). The clinician can adjust dose, frequency, route, duration, quantity, patient instructions, or any other field. Clicking Save order returns to the basket with the row showing the edited values (e.g., quantity highlighted in amber if changed). Clicking Discard abandons the edits and returns to the basket with the menu's defaults preserved.
The clinician clicks Sign and close. The basket closes, and the Orders app on the main pane refreshes - Amlodipine appears as
(NEW) Amlodipine 5mg: 1.0 Tablet Oral Once daily 60 Daysunder Order type Drug order; Renal function panel appears under Order type Test order.The clinician can dismiss any single item before signing by clicking the trash icon on its row. To abandon everything in the basket, the clinician clicks Cancel in the basket foot.
Order Set Items
Out of Scope (MVP)
Order sets for surgical profile, Myocardial Infarction (MI), Diabetic Ketoacidosis (DKA)
5. Mockups: Hypertension - New Diagnosis
- ENTRY VIA DRUG ORDERS
- entry via lab orders
2. Hypertension - Controlled (Routine Review)
3. Hypertension - Uncontrolled