Skip to content
EHI Playground

Orders and Results: The Engine of Clinical Care

Purpose: To trace the complete data trail of all non-medication clinical orders—from provider request through fulfillment and results—covering labs, imaging, procedures, and referrals.

While medication orders are handled by ORDER_MED, nearly every other clinical action is initiated through the ORDER_PROC table. This powerful table orchestrates a vast range of clinical activities.

View the different types of non-medication orders

View SQL Query
SELECT 
    ORDER_TYPE_C_NAME as Order_Type,
    COUNT(*) as Count
FROM ORDER_PROC
WHERE PAT_ID = 'Z7004242'
GROUP BY ORDER_TYPE_C_NAME
ORDER BY Count DESC;
Order_TypeCount
Lab12
Outpatient Referral5
Imaging5
Microbiology2
Immunization/Injection1

This single table manages labs, imaging studies, referrals, procedures, and more, each with its own specific workflow and data model.

Laboratory testing is one of the most common workflows. It begins with an order in ORDER_PROC and is fulfilled with results in ORDER_RESULTS.

Examine a lab order and its status

View SQL Query
SELECT 
    ORDER_PROC_ID,
    DESCRIPTION as Test_Name,
    SUBSTR(ORDERING_DATE, 1, 10) as Order_Date,
    ORDER_STATUS_C_NAME as Status,
    ABNORMAL_YN as Has_Abnormal_Results
FROM ORDER_PROC
WHERE PAT_ID = 'Z7004242'
  AND ORDER_TYPE_C_NAME = 'Lab'
ORDER BY ORDERING_DATE DESC
LIMIT 5;
ORDER_PROC_IDTest_NameOrder_DateStatusHas_Abnormal_Results
945468372HEPATITIS C ANTIBODY9/28/2023 Completed
945468371LIPID PANEL9/28/2023 Completed
945468370HEMOGLOBIN A1C9/28/2023 Completed
945468368LIPID PANEL9/28/2023 Completed
945468369HEMOGLOBIN A1C9/28/2023 Completed

Once the lab is completed, the results are stored in ORDER_RESULTS. A single lab order (like a metabolic panel) can generate many result components.

Examine a complete metabolic panel with all its result components

View SQL Query
SELECT 
    o.DESCRIPTION as panel_name,
    r.LINE,
    r.COMPONENT_ID_NAME,
    r.ORD_VALUE,
    r.REFERENCE_LOW || '-' || r.REFERENCE_HIGH as reference_range,
    r.REFERENCE_UNIT,
    r.RESULT_FLAG_C_NAME
FROM ORDER_PROC o
JOIN ORDER_RESULTS r ON o.ORDER_PROC_ID = r.ORDER_PROC_ID
WHERE o.ORDER_PROC_ID = 772179262
ORDER BY r.LINE;
panel_nameLINECOMPONENT_ID_NAMEORD_VALUEreference_rangeREFERENCE_UNITRESULT_FLAG_C_NAME
BASIC METABOLIC PANEL1SODIUM142136-145mmol/L
BASIC METABOLIC PANEL2POTASSIUM5.03.5-5.1mmol/L
BASIC METABOLIC PANEL3CHLORIDE10298-107mmol/L
BASIC METABOLIC PANEL4CO23022-29mmol/LHigh
BASIC METABOLIC PANEL5GLUCOSE9774-100mg/dL
BASIC METABOLIC PANEL6BUN BLOOD147-20mg/dL
BASIC METABOLIC PANEL7CREATININE0.940.70-1.20mg/dL
BASIC METABOLIC PANEL8CALCIUM10.38.5-10.4mg/dL
BASIC METABOLIC PANEL9ANION GAP105-14mmol/L
BASIC METABOLIC PANEL10BUN / CREAT RATIO14.98.0-26.0
BASIC METABOLIC PANEL11OSMOLALITY CALCULATED294275-295mosm/kg
BASIC METABOLIC PANEL12EGFR NON-AFR/AMER>90-mL/min/[1.73_m2]

Key aspects of lab results:

  • ORD_VALUE: The result, stored as text to accommodate values like “Positive” or “Not Detected”.
  • ORD_NUM_VALUE: A numeric version for calculations.
  • RESULT_FLAG_C_NAME: Flags results as ‘High’, ‘Low’, ‘Abnormal’, etc.
  • ABNORMAL_YN: A summary flag on the main ORDER_PROC record indicating if any component was abnormal.

Imaging studies like X-rays and MRIs are also managed as procedures.

View imaging orders and their status

View SQL Query
SELECT 
    ORDER_PROC_ID,
    DESCRIPTION as Study,
    SUBSTR(ORDERING_DATE, 1, 10) as Order_Date,
    ORDER_STATUS_C_NAME as Status,
    ORDER_PRIORITY_C_NAME as Priority
FROM ORDER_PROC
WHERE PAT_ID = 'Z7004242'
  AND ORDER_TYPE_C_NAME = 'Imaging'
ORDER BY ORDERING_DATE DESC
LIMIT 10;
ORDER_PROC_IDStudyOrder_DateStatusPriority
439060613MRI BRAIN WO CONTRAST7/31/2020 CompletedRoutine
439060612MRI BRAIN WO CONTRAST7/21/2020 CompletedRoutine
439060610CT HEAD OR BRAIN W WO CONTRAST7/15/2020 CanceledRoutine
439060609MRI BRAIN WO CONTRAST7/14/2020 CanceledRoutine
772179259XR ANKLE MIN 3 VIEWS2/8/2019 1CompletedRoutine

Orders are also used to manage referrals to specialists.

Track referrals to specialists

View SQL Query
SELECT 
    DESCRIPTION as Referral_To,
    SUBSTR(ORDERING_DATE, 1, 10) as Referred_Date,
    ORDER_STATUS_C_NAME as Status,
    REFERRING_PROV_ID_REFERRING_PROV_NAM as Referred_By
FROM ORDER_PROC
WHERE PAT_ID = 'Z7004242'
  AND ORDER_TYPE_C_NAME = 'Outpatient Referral'
ORDER BY ORDERING_DATE DESC;
Referral_ToReferred_DateStatusReferred_By
AMB REFERRAL TO OCCUPATIONAL THERAPY EVAL AND TREAT2/9/2022 1Sent
AMB REFERRAL TO NEUROLOGY12/22/2022Sent
AMB REFERRAL TO NEUROLOGY12/22/2022Sent
AMB REFERRAL TO NEUROLOGY12/1/2022 Sent
AMB REFERRAL TO GASTROENTEROLOGY1/9/2020 1Sent

All orders progress through a series of statuses, from creation to completion.

Analyze order status distribution

View SQL Query
SELECT 
    ORDER_STATUS_C_NAME,
    COUNT(*) as orders,
    SUM(CASE WHEN ORDER_PROC_ID IN (SELECT DISTINCT ORDER_PROC_ID FROM ORDER_RESULTS) 
             THEN 1 ELSE 0 END) as has_results
FROM ORDER_PROC
GROUP BY ORDER_STATUS_C_NAME
ORDER BY orders DESC;
ORDER_STATUS_C_NAMEordershas_results
Completed177
Sent50
Canceled30

Orders are always linked to the encounter where they were placed, providing critical context. An order record is linked to its encounter via the PAT_ENC_CSN_ID column.


  • ORDER_PROC is the central table for all non-medication orders, identified by ORDER_PROC_ID.
  • Order Types: The ORDER_TYPE_C_NAME field differentiates labs, imaging, referrals, and other procedures.
  • Lab Results: Lab results are stored in ORDER_RESULTS, with one row per component, linked back to ORDER_PROC.
  • Abnormality Flags: Epic uses a two-tier system: RESULT_FLAG_C_NAME at the component level and ABNORMAL_YN as an order-level summary.
  • Result Values: Results are stored as text (ORD_VALUE) for flexibility and as numbers (ORD_NUM_VALUE) for computation.
  • Context is Key: Orders are always linked to an encounter (PAT_ENC_CSN_ID).