CPOE Workflows

CPOE Workflows

This document defines eight core workflows for the Computerized Provider Order Entry (CPOE) module. Each workflow includes process steps, actors, decision points, integration hooks, exception handling, and the paperless transformation achieved by the HIS.

Regulatory context: UAE Federal Decree-Law No. 30/2021 (controlled substances), MOH Unified Electronic Platform (UEP), NABIDH/Malaffi HIE connectivity, UAE PDPL data protection. See 05-integrations.md for technical detail.


WF-CPOE-001: Medication Order Entry

Process Flow

Actor: Physician (Attending, Resident, NP/PA) Trigger: Active encounter in progress — inpatient admission, ED visit, or outpatient appointment Pre-conditions: Patient identified (Emirates ID / MRN), encounter open, allergy list reviewed

  1. Physician opens CPOE from the patient chart and searches for medication by generic name, brand name, indication, or clinical problem.
  2. System displays results prioritised by: - Formulary status (preferred → non-preferred → not on formulary) - Provider's prescribing history - Evidence-based order sets for the patient's active diagnoses
  3. Physician selects medication and strength.
  4. System auto-populates a default dose based on: - Patient age: Paediatric dosing for patients < 18 years (mg/kg) - Patient weight: Weight-based dosing when available - Renal function: eGFR-adjusted dose if CrCl < 60 mL/min - Indication: Diagnosis-specific dosing ranges
  5. Clinical Decision Support (CDS) fires sequentially: - a. Drug–allergy interaction check → if alert, display severity-graded warning - b. Drug–drug interaction check → if alert, display interaction with recommended action - c. Dose-range validation → if out of range, require justification - d. Duplicate therapy check → if same class active, display active medication - e. Renal dosing check → if eGFR-adjusted dose differs, suggest adjustment - f. Formulary check → if non-formulary, display Tier 1 alternatives with cost comparison
  6. Physician enters / confirms order details: dose, route, frequency, duration, PRN indication (if applicable), priority (Routine / STAT / ASAP / Today), special instructions.
  7. System validates completeness and displays order summary.
  8. Physician signs order electronically (Tier 2 Advanced E-Signature per Federal Decree-Law No. 46/2021).
  9. If the medication is a controlled substance → route to WF-CPOE-008 for UEP submission before transmission.
  10. System transmits signed order to:
    • Pharmacy Information System (HL7 ORM^O01 or FHIR MedicationRequest)
    • Medication Administration Record (MAR)
    • Patient's active orders list
    • Billing / charge capture
  11. System receives pharmacy acknowledgement and updates order status.

Data Modified:

  • medication_orders — INSERT
  • clinical_alerts — INSERT (one row per CDS alert fired)
  • order_audit_log — INSERT
  • pending_pharmacy_queue — INSERT
flowchart TD A["Physician searches medication"] --> B["Display formulary-ranked results"] B --> C["Select medication & strength"] C --> D["Auto-populate dose based on age/weight/eGFR"] D --> E{"Drug-allergy check"} E -->|"Alert"| E1["Display allergy warning"] E -->|"Pass"| F E1 -->|"Override with reason"| F E1 -->|"Cancel"| Z["Order cancelled"] F{"Drug-drug interaction check"} F -->|"Alert"| F1["Display DDI warning + alternatives"] F -->|"Pass"| G F1 -->|"Override with reason"| G F1 -->|"Cancel"| Z G{"Dose-range check"} G -->|"Out of range"| G1["Require justification"] G -->|"Valid"| H G1 --> H H{"Duplicate therapy check"} H -->|"Duplicate"| H1["Show active medication"] H -->|"Pass"| I H1 --> I I{"Formulary check"} I -->|"Non-formulary"| I1["Show Tier 1 alternatives"] I -->|"Formulary"| J I1 --> J J["Enter order details"] J --> K["Review order summary"] K --> L{"Controlled substance?"} L -->|"Yes"| M["Route to WF-CPOE-008 UEP submission"] L -->|"No"| N["E-sign order"] M --> N N --> O["Transmit to Pharmacy via HL7/FHIR"] N --> P["Update MAR"] N --> Q["Charge capture"] O --> R["Receive pharmacy ACK"] R --> S["Order active"]

Integration Points

Target System Direction Trigger Protocol Reference
PIS (Pharmacy) Outbound Order signed HL7 ORM^O01 / FHIR MedicationRequest INT-CPOE-001
CDS Engine Internal Medication selected FHIR CDS Hooks INT-CPOE-004
MAR Internal Order signed DB update
Billing Outbound Order signed Charge message
MOH UEP Outbound Controlled substance REST API INT-CPOE-007

Exception Handling

  • Network failure during transmission: Order saved locally in retry queue; exponential backoff (30 s → 1 min → 2 min → 5 min); after 4 failures, alert user and flag for manual escalation to pharmacy.
  • Hard-stop CDS alert (contraindicated): Order cannot proceed; physician must select an alternative or obtain co-signature from a second attending.
  • Formulary restriction: Display preferred alternatives; allow non-formulary ordering with justification and prior-authorisation trigger if insured.
  • Patient allergy list incomplete: System displays warning — "Allergy review required" — and requires physician attestation before signing.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Handwritten prescription pad Electronic order entry with structured fields and e-signature Eliminates legibility errors; enables real-time CDS
Paper medication chart at bedside MAR on bedside terminal / mobile device Real-time updates; barcode verification at administration
Phone / fax to pharmacy HL7 ORM^O01 auto-transmitted on signing Sub-second delivery; eliminates lost or delayed orders
Paper override justification form In-app override reason capture in order_audit_log 100% audit trail; no missing forms
Physical signature on prescription Tier 2 advanced e-signature Non-repudiation; timestamped; linked to provider credential

Remaining Paper Touchpoints: Patient may receive printed discharge medication instructions if they opt out of portal access.

Inputs and Outputs

Inputs:

Source Data Element Format
EHR / Patient Chart Patient demographics (MRN, Emirates ID, age, weight) patients table
EHR / Patient Chart Active allergy list patient_allergies table (RxNorm coded)
EHR / Patient Chart Active medication list medication_orders WHERE status = 'active'
EHR / Patient Chart Recent lab results (eGFR, CrCl) lab_results table (LOINC coded)
Provider Medication selection, dose, route, frequency, duration, priority CPOE order entry form
CDS Engine Drug–allergy, DDI, dose-range, duplicate, formulary alerts FHIR CDS Hooks response
Policy & Contract Mgmt Formulary status, payer coverage rules formulary_items, payer_contracts tables

Outputs:

Destination Data Element Format
medication_orders Complete medication order record SQL INSERT
PIS (Pharmacy) Order transmission HL7 ORM^O01 / FHIR MedicationRequest
MAR Medication administration schedule DB INSERT into mar_schedule
Billing & Claims Charge capture record Charge message to billing queue
clinical_alerts CDS alert records (one per alert fired) SQL INSERT
order_audit_log Audit trail entry SQL INSERT
MOH UEP Controlled substance submission (if applicable) REST API (via WF-CPOE-008)

Post-conditions:

  • Medication order exists with order_status = 'active' and valid e-signature
  • Pharmacy queue contains pending order for pharmacist verification
  • MAR schedule generated with administration times
  • All CDS alerts logged with provider response (accepted/overridden)

SLA and Timing

Step Target Time Escalation Measurement Source
Medication search to order signing < 3 minutes (routine) None — provider workflow order_audit_log.created_at minus session start
CDS alert response time < 2 seconds per check If > 5s, degrade to async; alert IT clinical_alerts.response_time_ms
Order transmission to PIS < 1 second If > 10s, retry queue; alert after 4 failures pending_pharmacy_queue.transmitted_at
Pharmacy acknowledgement < 5 minutes (STAT), < 30 minutes (Routine) STAT: alert charge pharmacist at 5 min; Routine: alert at 30 min medication_orders.pharmacy_ack_datetime
Controlled substance UEP response < 10 seconds If > 30s, queue; alert compliance at 30 min medication_orders.uep_submission_datetime
Non-formulary prior-auth response < 2 minutes (real-time check) If pending > 24h, alert case manager prior_auth_requests.response_datetime

State Transition Diagram

stateDiagram-v2 [*] --> Draft : Provider begins order entry Draft --> Signed : Provider e-signs order Draft --> Cancelled : Provider cancels before signing Signed --> Transmitted : System sends to PIS Transmitted --> Acknowledged : Pharmacy ACK received Acknowledged --> Active : Pharmacist verifies Active --> Modified : Provider modifies (WF-CPOE-004) Active --> Discontinued : Provider discontinues (WF-CPOE-005) Active --> Completed : Duration expired / all doses administered Modified --> Active : Modified order re-verified Signed --> UEP_Pending : Controlled substance → UEP submission UEP_Pending --> Transmitted : UEP approved UEP_Pending --> Rejected : UEP rejected Rejected --> Draft : Provider revises order Cancelled --> [*] Completed --> [*] Discontinued --> [*]

WF-CPOE-002: Laboratory Order Entry

Process Flow

Actor: Physician (Attending, Resident, NP/PA) Trigger: Clinical need during active encounter Pre-conditions: Patient identified, encounter open

  1. Physician opens Lab Orders panel and searches by test name, LOINC code, CPT code, or clinical indication.
  2. System displays results grouped by: - Individual tests (Chemistry, Haematology, Microbiology, etc.) - Lab panels (BMP, CMP, CBC, Lipid Panel, LFTs) - Provider favourites and diagnosis-based order sets
  3. Physician selects one or more tests.
  4. CDS checks fire: - a. Duplicate test detection — alert if same test performed within look-back window (CBC: 24 h, HbA1c: 90 days, Lipid Panel: 30 days) - b. Pregnancy screening — for females of child-bearing age, alert if radiation-associated order or teratogenic medication context - c. Insurance / prior-authorisation check — display coverage status and required ICD-10-AM codes
  5. Physician enters order details: collection date/time, priority (STAT / Today / Routine), specimen type (auto-selected, overridable), clinical indication (ICD-10-AM), fasting requirement, special instructions.
  6. System validates and physician signs order electronically.
  7. System transmits to LIS via HL7 ORM^O01.
  8. LIS assigns specimen barcode and notifies nursing / phlebotomy.
  9. Specimen collected → scanned → transported → received in lab.
  10. Results transmitted back via HL7 ORU^R01 and displayed in patient chart.

Data Modified:

  • laboratory_orders — INSERT
  • clinical_alerts — INSERT (if CDS fired)
  • order_audit_log — INSERT
flowchart TD A["Physician searches lab test"] --> B["Display tests / panels / favourites"] B --> C["Select test(s)"] C --> D{"Duplicate test check"} D -->|"Duplicate within window"| D1["Show previous result + date"] D -->|"No duplicate"| E D1 -->|"Continue anyway"| E D1 -->|"Cancel"| Z["Order cancelled"] E{"Pregnancy screening"} E -->|"Alert"| E1["Display pregnancy caution"] E -->|"Not applicable"| F E1 --> F F{"Insurance / prior-auth check"} F -->|"Auth required"| F1["Submit prior-auth or document ICD-10-AM"] F -->|"Covered"| G F1 --> G G["Enter order details"] G --> H["Physician signs order"] H --> I["Transmit to LIS via HL7 ORM"] I --> J["LIS assigns barcode"] J --> K["Phlebotomy collects specimen"] K --> L["Lab processes specimen"] L --> M["Results via HL7 ORU^R01"] M --> N["Results in patient chart"]

Integration Points

Target System Direction Trigger Protocol Reference
LIS Outbound Order signed HL7 ORM^O01 INT-CPOE-002
LIS Inbound Result available HL7 ORU^R01 INT-CPOE-002
Insurance / eClaimLink Outbound Prior-auth needed eClaimLink API INT-CPOE-008
NABIDH / Malaffi Outbound Order placed / result available HL7 ORM^O01 / ORU^R01 INT-CPOE-005/006

Exception Handling

  • Duplicate test within window: Soft-stop alert; physician can override with documented clinical reason.
  • STAT lab not collected within 30 min: Escalation alert to charge nurse.
  • Critical result received: System flags result, sends push notification to ordering provider, requires acknowledgement within 30 minutes (DOH/DHA critical result policy).
  • Specimen rejected by lab: LIS sends rejection message; nursing re-collection triggered.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Paper lab requisition form Electronic order with auto-populated barcode Eliminates transcription errors
Handwritten specimen labels System-printed barcode labels from LIS Positive specimen identification
Paper result reports filed in chart Results auto-posted to patient chart via HL7 Immediate availability; trending
Phone call for critical results In-app notification with read-receipt Auditable critical result acknowledgement
Paper log for STAT lab tracking Real-time dashboard for specimen status Visible turnaround times

Remaining Paper Touchpoints: None — fully digital from order to result.

Inputs and Outputs

Inputs:

Source Data Element Format
EHR / Patient Chart Patient demographics (MRN, Emirates ID, sex, DOB) patients table
EHR / Patient Chart Active diagnoses patient_diagnoses table (ICD-10-AM)
EHR / Patient Chart Recent lab results (for duplicate detection) lab_results table (LOINC coded)
Provider Test selection, priority, specimen type, clinical indication, fasting status CPOE lab order form
CDS Engine Duplicate test detection, pregnancy screening, insurance check FHIR CDS Hooks response
Policy & Contract Mgmt Insurance coverage, prior-auth requirements payer_contracts, coverage_rules tables

Outputs:

Destination Data Element Format
laboratory_orders Complete lab order record SQL INSERT
LIS Order transmission with specimen requirements HL7 ORM^O01 / FHIR ServiceRequest
Billing & Claims Charge capture with CPT/ICD-10-AM codes Charge message
clinical_alerts CDS alert records SQL INSERT
order_audit_log Audit trail entry SQL INSERT
NABIDH / Malaffi Order notification to HIE HL7 ORM^O01

Post-conditions:

  • Lab order exists with order_status = 'active' and valid e-signature
  • LIS has received order and assigned specimen barcode
  • Nursing/phlebotomy notified for specimen collection
  • Charge captured for billing

SLA and Timing

Step Target Time Escalation Measurement Source
Order signing to LIS transmission < 1 second Retry queue if failed; alert after 4 attempts laboratory_orders.transmitted_at
STAT specimen collection < 30 minutes from order Alert charge nurse at 30 min specimen_tracking.collection_datetime
Routine specimen collection < 2 hours from order Alert charge nurse at 2 h specimen_tracking.collection_datetime
STAT result turnaround < 1 hour from specimen receipt Alert lab supervisor at 1 h lab_results.resulted_datetime
Routine result turnaround < 4 hours from specimen receipt Alert lab supervisor at 4 h lab_results.resulted_datetime
Critical result acknowledgement < 30 minutes from result Escalate to dept chair at 30 min (DOH/DHA policy) critical_result_acks.acknowledged_at

State Transition Diagram

stateDiagram-v2 [*] --> Draft : Provider begins lab order Draft --> Signed : Provider e-signs order Draft --> Cancelled : Provider cancels Signed --> Transmitted : System sends to LIS Transmitted --> SpecimenCollected : Barcode scanned at collection SpecimenCollected --> InProcess : Specimen received in lab InProcess --> ResultAvailable : Lab completes analysis ResultAvailable --> Acknowledged : Provider reviews result Acknowledged --> [*] Signed --> Modified : Provider modifies (WF-CPOE-004) Modified --> Transmitted : Modified order re-sent Transmitted --> Cancelled : Provider cancels (WF-CPOE-005) SpecimenCollected --> SpecimenRejected : Lab rejects specimen SpecimenRejected --> Transmitted : Re-collection ordered ResultAvailable --> CriticalAlert : Critical value detected CriticalAlert --> Acknowledged : Provider acknowledges within 30 min CriticalAlert --> Escalated : No ack within 30 min Escalated --> Acknowledged : Dept chair acknowledges Cancelled --> [*]

WF-CPOE-003: Imaging / Radiology Order Entry

Process Flow

Actor: Physician (Attending, Resident, NP/PA) Trigger: Clinical need during active encounter Pre-conditions: Patient identified, encounter open

  1. Physician searches by imaging modality + body part (e.g., "CT head without contrast").
  2. System displays matching exams with ACR Appropriateness Criteria scores where available.
  3. Physician selects exam.
  4. CDS checks fire: - a. Appropriateness criteria — if "usually not appropriate", display recommendation and evidence - b. Contrast safety — if contrast-enhanced: check eGFR (iodinated: CIN risk if < 60), check allergy list (iodine, gadolinium) - c. Pregnancy screening — for radiation-based studies in females of child-bearing age - d. Cumulative radiation dose — alert if projected annual dose exceeds threshold (> 50 mSv)
  5. Physician enters order details: exam protocol (with/without contrast, specific views), clinical indication (ICD-10-AM + free-text clinical question), priority, scheduled date/time, portable vs. department, pregnancy status attestation.
  6. System validates and physician signs order electronically.
  7. System transmits to RIS via HL7 ORM^O01; DICOM modality worklist updated.
  8. RIS schedules exam; patient transported or portable imaging arranged.
  9. Images acquired, stored in PACS.
  10. Radiologist interprets and signs report.
  11. Report transmitted back via HL7 ORU^R01 and displayed in patient chart.

Data Modified:

  • imaging_orders — INSERT
  • clinical_alerts — INSERT (if CDS fired)
  • order_audit_log — INSERT
flowchart TD A["Physician searches imaging exam"] --> B["Display exams with appropriateness scores"] B --> C["Select exam"] C --> D{"Appropriateness criteria"} D -->|"Not appropriate"| D1["Show recommendation + evidence"] D -->|"Appropriate"| E D1 -->|"Override with justification"| E D1 -->|"Cancel / change exam"| Z["Order cancelled or changed"] E{"Contrast required?"} E -->|"Yes"| E1{"Check eGFR"} E -->|"No"| G E1 -->|"eGFR < 60"| E2["CIN risk alert + preventive orders"] E1 -->|"eGFR >= 60"| F E2 --> F F{"Allergy check for contrast agent"} F -->|"Allergy"| F1["Premedication protocol or alternative"] F -->|"No allergy"| G F1 --> G G{"Pregnancy screening"} G -->|"Applicable"| G1["Require pregnancy status attestation"] G -->|"Not applicable"| H G1 --> H H{"Cumulative radiation dose"} H -->|"Exceeds threshold"| H1["Alert with dose history"] H -->|"Within limits"| I H1 --> I I["Enter order details"] I --> J["Physician signs order"] J --> K["Transmit to RIS via HL7 ORM"] K --> L["DICOM worklist updated"] L --> M["Exam performed — images to PACS"] M --> N["Radiologist interprets"] N --> O["Report via HL7 ORU^R01"] O --> P["Report in patient chart"]

Integration Points

Target System Direction Trigger Protocol Reference
RIS Outbound Order signed HL7 ORM^O01 INT-CPOE-003
DICOM Worklist Outbound Order signed DICOM MWL INT-CPOE-003
PACS Inbound Images acquired DICOM Store
RIS Inbound Report signed HL7 ORU^R01 INT-CPOE-003
NABIDH / Malaffi Outbound Order + Report HL7 ORM^O01 / ORU^R01 INT-CPOE-005/006

Exception Handling

  • Appropriateness criteria override: Require free-text justification; logged in order_audit_log.
  • eGFR unavailable: System flags "Renal function unknown — obtain serum creatinine before contrast study"; order held pending result.
  • STAT imaging not performed within target: Escalation to radiology charge technologist.
  • Critical finding on imaging: Radiologist sends critical result notification; ordering provider must acknowledge within 30 minutes.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Paper radiology requisition Electronic order with structured clinical question Machine-readable for protocol selection
Printed films viewed on lightbox PACS images viewable on any workstation / mobile Instant access across departments
Paper radiology report filed in chart Report auto-posted to patient chart Structured reporting with hyperlinks to images
Manual radiation dose log Automatic cumulative dose tracking per patient Enables threshold alerting
Phone call for critical findings In-app critical result notification with acknowledgement Auditable communication loop

Remaining Paper Touchpoints: Patients may receive printed imaging reports for external referral if the receiving facility is not on NABIDH/Malaffi.

Inputs and Outputs

Inputs:

Source Data Element Format
EHR / Patient Chart Patient demographics, sex, DOB, pregnancy status patients table
EHR / Patient Chart Active allergies (iodine, gadolinium) patient_allergies table
EHR / Patient Chart Recent lab results (eGFR for contrast safety) lab_results table (LOINC)
EHR / Patient Chart Cumulative radiation dose history radiation_dose_records table
Provider Exam selection, protocol, clinical indication, priority, pregnancy attestation CPOE imaging order form
CDS Engine Appropriateness criteria, contrast safety, pregnancy screening, dose alerts FHIR CDS Hooks response

Outputs:

Destination Data Element Format
imaging_orders Complete imaging order record SQL INSERT
RIS Order transmission HL7 ORM^O01
DICOM Worklist Modality worklist entry DICOM MWL
Billing & Claims Charge capture with CPT codes Charge message
clinical_alerts CDS alert records SQL INSERT
order_audit_log Audit trail entry SQL INSERT
NABIDH / Malaffi Order notification to HIE HL7 ORM^O01

Post-conditions:

  • Imaging order exists with order_status = 'active'
  • RIS has received order and added to scheduling worklist
  • DICOM modality worklist updated for imaging equipment
  • Radiation dose projection recorded if applicable

SLA and Timing

Step Target Time Escalation Measurement Source
Order signing to RIS transmission < 1 second Retry queue; alert after 4 attempts imaging_orders.transmitted_at
STAT portable imaging < 30 minutes from order Alert radiology charge tech at 30 min radiology_exams.exam_start_datetime
Urgent imaging scheduling < 4 hours from order Alert radiology scheduler at 4 h radiology_exams.scheduled_datetime
Routine imaging scheduling < 48 hours from order Alert at 48 h radiology_exams.scheduled_datetime
Preliminary report (STAT) < 1 hour from exam completion Alert radiologist supervisor radiology_reports.preliminary_datetime
Final report turnaround < 24 hours from exam completion Alert radiology chief at 24 h radiology_reports.final_sign_datetime
Critical finding acknowledgement < 30 minutes from report Escalate to dept chair (DOH/DHA policy) critical_result_acks.acknowledged_at

State Transition Diagram

stateDiagram-v2 [*] --> Draft : Provider begins imaging order Draft --> Signed : Provider e-signs order Draft --> Cancelled : Provider cancels Signed --> Transmitted : System sends to RIS Transmitted --> Scheduled : RIS schedules exam Scheduled --> InProgress : Patient arrives / exam begins InProgress --> ImagesAcquired : Images stored in PACS ImagesAcquired --> ReportPending : Radiologist assigned ReportPending --> Preliminary : Preliminary report signed Preliminary --> Final : Final report signed Final --> Acknowledged : Ordering provider reviews Acknowledged --> [*] Signed --> Modified : Provider modifies (WF-CPOE-004) Modified --> Transmitted : Modified order re-sent Transmitted --> Cancelled : Provider cancels (WF-CPOE-005) Scheduled --> Cancelled : Patient no-show / cancellation Final --> CriticalFinding : Critical finding detected CriticalFinding --> Acknowledged : Provider acknowledges within 30 min CriticalFinding --> Escalated : No ack within 30 min Final --> Addended : Radiologist adds addendum Addended --> Acknowledged : Provider reviews addendum Cancelled --> [*]

WF-CPOE-004: Order Modification

Process Flow

Actor: Ordering provider (original) or covering provider with appropriate privileges Trigger: Clinical reassessment, pharmacist clarification, or lab/imaging result prompting change Pre-conditions: Active order exists in medication_orders, laboratory_orders, or imaging_orders

  1. Provider opens the active order from the patient's orders list.
  2. Provider selects "Modify Order".
  3. System displays current order details and editable fields.
  4. Provider modifies field(s): dose, frequency, route, duration, priority, special instructions.
  5. System re-runs CDS checks on the modified values (drug–allergy, DDI, dose-range, renal dosing, formulary).
  6. If CDS alerts fire, provider responds (accept recommendation, override with reason, or cancel modification).
  7. Provider reviews modified order summary.
  8. Provider re-signs order electronically (new Tier 2 e-signature required for any dose/frequency/route change).
  9. System: - Updates the order record with modification details and new signature - Inserts an audit log entry capturing old values, new values, modifier, and timestamp - Transmits updated order to downstream systems (Pharmacy, LIS, RIS as applicable) - Updates MAR if medication order was modified
  10. Downstream system acknowledges modified order.

Data Modified:

  • medication_orders / laboratory_orders / imaging_orders — UPDATE
  • order_audit_log — INSERT (with action = 'Modified', old/new values captured)
  • pending_pharmacy_queue — UPDATE (if medication order)
flowchart TD A["Provider opens active order"] --> B["Select Modify Order"] B --> C["Display editable fields with current values"] C --> D["Provider changes field(s)"] D --> E{"Re-run CDS checks"} E -->|"Alert"| F["Display alert — override / cancel / accept"] E -->|"Pass"| G F --> G G["Review modified order summary"] G --> H["Provider re-signs electronically"] H --> I["Update order record + audit log"] I --> J["Transmit modified order downstream"] I --> K["Update MAR if medication"] J --> L["Downstream ACK received"]

Integration Points

Target System Direction Trigger Protocol
PIS / LIS / RIS Outbound Modification signed HL7 ORM^O01 (XO — change order)
CDS Engine Internal Modified values FHIR CDS Hooks
MAR Internal Med order modified DB update

Exception Handling

  • Order already dispensed/collected: Pharmacist / lab notified; may require new order instead of modification.
  • Modification by non-ordering provider: System checks covering-provider relationship; if not authorised, modification blocked with escalation to ordering provider.
  • Controlled substance modification: Any change to a CDa/CDb medication triggers re-submission to MOH UEP (WF-CPOE-008).

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Crossed-out and re-written order on paper chart Tracked modification with old/new values in audit log Full version history
Phone call to pharmacy to change order HL7 change-order message auto-sent Instant notification
Paper amendment form Digital modification with e-signature Non-repudiation

Remaining Paper Touchpoints: None.

Inputs and Outputs

Inputs:

Source Data Element Format
CPOE / Active Orders Existing order record (medication, lab, or imaging) medication_orders / laboratory_orders / imaging_orders
Provider Modified field values (dose, frequency, route, duration, priority) CPOE modification form
CDS Engine Re-evaluated alerts on modified values FHIR CDS Hooks response
EHR / Patient Chart Updated patient context (new labs, vitals) lab_results, vital_signs tables

Outputs:

Destination Data Element Format
Order table Updated order record with new values SQL UPDATE
order_audit_log Modification audit entry (old/new values, modifier, timestamp) SQL INSERT
PIS / LIS / RIS Updated order transmission HL7 ORM^O01 (ORC-1 = XO)
MAR Updated administration schedule (if medication) DB UPDATE
clinical_alerts CDS re-check alert records SQL INSERT

Post-conditions:

  • Order record updated with new field values and fresh e-signature
  • Audit log captures old values, new values, and modification reason
  • Downstream system has received and acknowledged the modified order
  • MAR schedule regenerated if medication timing changed

SLA and Timing

Step Target Time Escalation Measurement Source
Modification to re-signing < 2 minutes None — provider workflow order_audit_log.modified_at
Modified order transmission to downstream < 1 second Retry queue; alert after 4 failures order_audit_log.transmitted_at
Downstream acknowledgement < 5 minutes (STAT) Alert if no ACK within 5 min ACK timestamp in integration_message_log
MAR schedule update < 30 seconds Alert nursing if > 1 min mar_schedule.updated_at

Note: Order Modification transitions the parent order through the Modified → Active path in the state diagrams defined in WF-CPOE-001 (Medication), WF-CPOE-002 (Lab), and WF-CPOE-003 (Imaging). No separate state diagram is required.


WF-CPOE-005: Order Cancellation / Discontinuation

Process Flow

Actor: Ordering provider or pharmacist (for safety-related cancellation) Trigger: Clinical reassessment, adverse reaction, patient discharge, or duplicate order identified Pre-conditions: Active order exists

  1. Provider opens the active order and selects "Cancel" or "Discontinue". - Cancel: Order has not yet been acted upon (not dispensed, not collected, not performed). - Discontinue: Order is active and doses have been administered or tests performed; stop future actions.
  2. System prompts for: - Reason for cancellation / discontinuation (required — dropdown + free text) - Effective date/time (immediate or future)
  3. Provider confirms and signs electronically.
  4. System updates order status: - Cancel → order_status = 'cancelled' - Discontinue → order_status = 'discontinued', discontinue_datetime set
  5. Downstream notifications: - Pharmacy: cancel pending dispense / update MAR to stop future doses - LIS: cancel pending collection - RIS: cancel scheduled exam - NABIDH / Malaffi: send cancellation message
  6. MAR updated: future scheduled administrations removed.
  7. Audit log entry captured.

Data Modified:

  • medication_orders / laboratory_orders / imaging_orders — UPDATE (status)
  • order_audit_log — INSERT (action = 'Cancelled' or 'Discontinued')
  • pending_pharmacy_queue — UPDATE (status = 'Cancelled')
flowchart TD A["Provider opens active order"] --> B{"Cancel or Discontinue?"} B -->|"Cancel — not yet acted upon"| C["Set status to Cancelled"] B -->|"Discontinue — active order"| D["Set status to Discontinued"] C --> E["Prompt for reason"] D --> E E --> F["Provider signs electronically"] F --> G["Notify Pharmacy / LIS / RIS"] F --> H["Update MAR — remove future doses"] F --> I["Send cancellation to NABIDH/Malaffi"] F --> J["Audit log entry"]

Exception Handling

  • Medication already administered: Cannot cancel; only discontinue to stop future doses.
  • Specimen already collected: LIS notified to cancel processing if not yet started; if in-process, result will be delivered normally.
  • Controlled substance cancellation: Cancellation reported to MOH UEP; inventory adjustment triggered in PIS.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Verbal "cancel that order" with manual chart strike-through Digital cancellation with reason, e-signature, and audit trail Eliminates ambiguity about whether order is active
Phone call to pharmacy / lab / radiology Automated HL7 cancellation messages Instant multi-system notification
Paper discontinuation order Structured discontinuation record with effective date/time Prevents missed discontinuations

Remaining Paper Touchpoints: None.

Inputs and Outputs

Inputs:

Source Data Element Format
CPOE / Active Orders Existing active order record medication_orders / laboratory_orders / imaging_orders
Provider Cancellation/discontinuation reason, effective date/time CPOE cancellation form (dropdown + free text)
EHR / Patient Context Order fulfilment status (dispensed? collected? performed?) Order status fields

Outputs:

Destination Data Element Format
Order table Updated order status (cancelled or discontinued) SQL UPDATE
order_audit_log Cancellation audit entry with reason SQL INSERT
PIS / LIS / RIS Cancellation notification HL7 ORM^O01 (ORC-1 = CA)
MAR Removal of future scheduled administrations DB UPDATE/DELETE
NABIDH / Malaffi Cancellation message to HIE HL7 cancellation
MOH UEP Controlled substance cancellation report (if applicable) REST API

Post-conditions:

  • Order status set to cancelled or discontinued with reason and e-signature
  • No future actions scheduled for this order (MAR cleared, collection cancelled, exam cancelled)
  • Downstream systems notified and acknowledged
  • Audit trail complete with cancellation reason

SLA and Timing

Step Target Time Escalation Measurement Source
Cancellation signing to downstream notification < 1 second Retry queue; alert after 4 failures order_audit_log.cancelled_at
MAR schedule clearance < 30 seconds Alert nursing if > 1 min mar_schedule.updated_at
Pharmacy acknowledgement of cancellation < 5 minutes Alert charge pharmacist at 5 min ACK in integration_message_log
HIE notification (NABIDH/Malaffi) < 5 minutes Retry with backoff; alert interface admin integration_message_log.sent_at

Note: Cancellation and discontinuation transition the parent order to terminal states (Cancelled, Discontinued) in the state diagrams defined in WF-CPOE-001, WF-CPOE-002, and WF-CPOE-003. No separate state diagram is required.


WF-CPOE-006: Verbal / Telephone Order Entry

Process Flow

Actor: Nurse or Unit Clerk (enters order), Physician (authorises verbally, co-signs within 24 hours) Trigger: Physician verbally communicates an order during an emergency, procedure, or telephone call Pre-conditions: Active encounter; receiving person has verbal-order entry privilege

  1. Nurse / clerk opens CPOE and selects "Verbal Order" or "Telephone Order" mode.
  2. System displays a prominent banner: "VERBAL ORDER — requires co-signature within 24 hours".
  3. Nurse / clerk enters the order details as dictated by the physician, using read-back verification: - Medication/test/imaging details - Dose, route, frequency (for medications) - Priority - Clinical indication
  4. System runs CDS checks (same as WF-CPOE-001/002/003).
  5. Nurse / clerk enters: - Name of ordering physician (selected from provider list) - Read-back verification attestation checkbox
  6. Nurse / clerk signs the order entry (Tier 1 Simple E-Signature).
  7. System creates the order with order_source = 'verbal' or 'telephone' and cosign_required = TRUE.
  8. Order is transmitted to downstream systems immediately (same as regular order).
  9. System generates a co-signature task assigned to the ordering physician.
  10. Physician must open and co-sign the order within 24 hours (Tier 2 Advanced E-Signature).
  11. If not co-signed within 24 hours → escalation: notification to department chair and compliance.

Restrictions:

  • Controlled substances (CDa): Verbal orders not permitted for CDa medications (Federal Decree-Law 30/2021). CDb verbal orders permitted in emergencies with 24 h co-signature.
  • High-risk medications (chemotherapy, anticoagulants): Verbal orders discouraged; system displays strong advisory.

Data Modified:

  • medication_orders / laboratory_orders / imaging_orders — INSERT (with order_source, cosign_required, entered_by)
  • order_audit_log — INSERT
  • cosign_tasks — INSERT
flowchart TD A["Nurse/Clerk selects Verbal Order mode"] --> B["Banner: Co-signature required within 24h"] B --> C["Enter order details as dictated"] C --> D{"CDS checks"} D -->|"Alert"| D1["Display alert — nurse relays to physician"] D -->|"Pass"| E D1 --> E E{"Controlled substance?"} E -->|"CDa"| E1["BLOCKED — verbal order not permitted"] E -->|"CDb or non-controlled"| F F["Enter ordering physician name"] F --> G["Read-back verification attestation"] G --> H["Nurse/Clerk signs entry"] H --> I["Order transmitted to downstream systems"] I --> J["Co-signature task created for physician"] J --> K{"Physician co-signs within 24h?"} K -->|"Yes"| L["Order fully authorised"] K -->|"No"| M["Escalation to department chair + compliance"]

Exception Handling

  • CDa verbal order attempt: Hard block — system does not allow verbal order entry for CDa medications.
  • Co-signature overdue: Automated reminders at 12 h, 18 h, 23 h; escalation at 24 h.
  • Order entered incorrectly: Physician modifies or cancels during co-signature review (triggers WF-CPOE-004 or WF-CPOE-005).

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Nurse writes verbal order on paper chart; physician signs on next round Digital verbal order entry with 24 h co-signature workflow Automated tracking and escalation
Paper read-back verification log In-app attestation checkbox with audit trail Documented compliance
Manual tracking of unsigned verbal orders System-generated co-signature task queue Zero missed co-signatures

Remaining Paper Touchpoints: None.

Inputs and Outputs

Inputs:

Source Data Element Format
Nurse / Unit Clerk Verbal/telephone order details as dictated by physician CPOE verbal order form
Provider (verbal) Medication/test/imaging details, dose, route, frequency, priority Verbal communication (read-back verified)
Nurse / Unit Clerk Ordering physician identity, read-back attestation Provider selection + checkbox
CDS Engine Same CDS checks as standalone orders FHIR CDS Hooks response
EHR / Patient Chart Patient context (demographics, allergies, active meds) patients, patient_allergies tables

Outputs:

Destination Data Element Format
Order table Order record with order_source = 'verbal'/'telephone', cosign_required = TRUE SQL INSERT
PIS / LIS / RIS Order transmission (same as regular order) HL7 ORM^O01
cosign_tasks Co-signature task assigned to ordering physician SQL INSERT
order_audit_log Audit entry with entered_by (nurse) and ordering provider SQL INSERT
Physician notification Co-signature reminder In-app notification

Post-conditions:

  • Order is active and transmitted to downstream systems immediately
  • Co-signature task exists with 24-hour deadline assigned to ordering physician
  • Read-back verification attestation recorded in audit log
  • CDa verbal orders blocked; CDb verbal orders flagged with emergency documentation

SLA and Timing

Step Target Time Escalation Measurement Source
Verbal order entry to transmission < 2 minutes None — nurse workflow order_audit_log.created_at
Physician co-signature < 24 hours Reminders at 12h, 18h, 23h; escalation to dept chair at 24h cosign_tasks.cosigned_at
STAT verbal order transmission < 30 seconds from entry Alert if delayed > 1 min order_audit_log.transmitted_at

State Transition Diagram

stateDiagram-v2 [*] --> PendingCoSignature : Nurse enters verbal order PendingCoSignature --> Reminder12h : 12 hours elapsed Reminder12h --> Reminder18h : 18 hours elapsed Reminder18h --> Reminder23h : 23 hours elapsed Reminder23h --> Escalated : 24 hours elapsed without co-signature PendingCoSignature --> CoSigned : Physician co-signs within 24h Reminder12h --> CoSigned : Physician co-signs Reminder18h --> CoSigned : Physician co-signs Reminder23h --> CoSigned : Physician co-signs Escalated --> CoSigned : Dept chair resolves CoSigned --> [*] PendingCoSignature --> ModifiedAtCoSign : Physician modifies during review ModifiedAtCoSign --> CoSigned : Physician signs modified order

WF-CPOE-007: Order Set Execution

Process Flow

Actor: Physician (Attending, Resident, NP/PA) Trigger: Diagnosis or clinical scenario matching a pre-built order set (e.g., "Sepsis Workup", "Chest Pain Admission", "Post-Op Total Knee Replacement") Pre-conditions: Active encounter; order set active in order_sets master data

  1. Physician opens Order Sets and searches by diagnosis, clinical problem, or order set name.
  2. System displays matching order sets with: - Description and clinical rationale - Date last reviewed / approved by P&T committee - List of included orders (medications, labs, imaging, nursing, dietary)
  3. Physician selects an order set.
  4. System expands the order set into individual order lines, each pre-populated with default values.
  5. Physician reviews and customises: - Deselect items not needed (checkbox per item) - Modify doses, frequencies, or timing for individual items - Conditional items activate based on patient criteria (e.g., "If eGFR < 30, add dose adjustment")
  6. CDS checks fire per individual order item (same rules as standalone orders).
  7. Physician reviews the composite order summary.
  8. Physician signs all orders with a single electronic signature (batch signing).
  9. System creates individual order records for each selected item.
  10. Orders transmitted to respective downstream systems (PIS, LIS, RIS) as individual messages.
  11. Time-sequenced orders scheduled according to order set timing rules (e.g., "Lab at T+4h", "Imaging at T+24h").

Data Modified:

  • medication_orders / laboratory_orders / imaging_orders — INSERT (multiple)
  • order_set_executions — INSERT (linking execution to order set template)
  • clinical_alerts — INSERT (per-item CDS alerts)
  • order_audit_log — INSERT (per order, referencing order set)
flowchart TD A["Physician searches order sets"] --> B["Display matching order sets"] B --> C["Select order set"] C --> D["Expand into individual order lines"] D --> E["Physician customises: deselect / modify items"] E --> F{"Conditional items?"} F -->|"Yes"| F1["Evaluate patient criteria — activate/deactivate"] F -->|"No"| G F1 --> G G["CDS checks per individual item"] G --> H["Review composite order summary"] H --> I["Physician batch-signs all orders"] I --> J["Create individual order records"] J --> K["Transmit to PIS / LIS / RIS"] K --> L["Schedule time-sequenced orders"]

Exception Handling

  • CDS alert on one item in set: Alert displayed inline; physician can override, modify, or deselect that item without affecting other orders.
  • All items deselected: System warns "No orders selected" — order set not executed.
  • Outdated order set: If order set has not been reviewed within 12 months, system displays advisory; clinical pharmacist notification triggered.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Pre-printed paper order sets (triplicate) Digital order sets with per-item customisation Eliminates outdated paper forms; auto-updates when formulary changes
Manual checking of each item against patient data Automated per-item CDS checking Catches interactions across set items
Paper time-sequencing notes (e.g., "Lab at 0600 tomorrow") System-scheduled orders with automated timing No missed or late orders

Remaining Paper Touchpoints: None.

Inputs and Outputs

Inputs:

Source Data Element Format
Provider Order set selection (by diagnosis, clinical problem, or name) CPOE order set search
order_sets Order set template with pre-populated items and defaults Master data table
EHR / Patient Chart Patient criteria for conditional items (eGFR, weight, diagnoses) patients, lab_results, patient_diagnoses tables
CDS Engine Per-item CDS checks (same as standalone) FHIR CDS Hooks response
Provider Item-level customisations (deselect, modify dose/frequency/timing) CPOE order set form

Outputs:

Destination Data Element Format
Order tables Individual order records per selected item SQL INSERT (multiple)
order_set_executions Execution record linking to template SQL INSERT
PIS / LIS / RIS Individual order transmissions HL7 ORM^O01 per item
clinical_alerts Per-item CDS alert records SQL INSERT
order_audit_log Per-order audit entries referencing order set SQL INSERT
Scheduling engine Time-sequenced orders with trigger times order_schedule table

Post-conditions:

  • Individual order records created for each selected item
  • Order set execution logged with template reference and customisation details
  • All items transmitted to appropriate downstream systems
  • Time-sequenced orders scheduled according to timing rules

SLA and Timing

Step Target Time Escalation Measurement Source
Order set expansion and customisation < 5 minutes None — provider workflow order_set_executions.signed_at minus initiated_at
Batch signing to transmission (all items) < 5 seconds Alert if any item fails transmission order_audit_log.transmitted_at
CDS check per item < 2 seconds each Degrade to async if > 5s per item clinical_alerts.response_time_ms
Time-sequenced order activation Within 5 minutes of scheduled time Alert nursing if > 10 min late order_schedule.activated_at

State Transition Diagram

stateDiagram-v2 [*] --> Initiated : Provider selects order set Initiated --> ItemsExpanded : System expands template into items ItemsExpanded --> Customising : Provider reviews and modifies items Customising --> CDSChecking : CDS checks fire per item CDSChecking --> ReadyToSign : All CDS checks resolved ReadyToSign --> BatchSigned : Provider batch-signs all items BatchSigned --> Transmitting : System sends individual orders Transmitting --> PartiallyComplete : Some items transmitted PartiallyComplete --> Complete : All items transmitted and ACKd Transmitting --> Complete : All items transmitted and ACKd PartiallyComplete --> Errors : Some items failed transmission Errors --> Complete : Failed items retransmitted Complete --> [*] Customising --> Abandoned : Provider deselects all / cancels Abandoned --> [*]

WF-CPOE-008: Controlled Substance Ordering (UAE-Specific)

Process Flow

Actor: Physician with MOH Controlled Substance Authorisation Trigger: Order for a medication classified as CDa (Narcotic or Psychotropic) or CDb per Federal Decree-Law No. 30/2021 Pre-conditions: Active encounter; physician's controlled substance prescribing privilege verified; patient Emirates ID on file

UAE Regulatory Authority: Federal Decree-Law No. 30/2021; Ministerial Decree No. 379/2019 (UEP mandate). See reference-data/compliance/uae-regulations.md §Controlled Substances for full schedule mapping.

  1. Physician initiates medication order (enters WF-CPOE-001 steps 1–6).
  2. System detects the selected medication's controlled_class (CDa-Narcotic, CDa-Psychotropic, or CDb) from medication_master.
  3. Pre-checks: - a. Verify physician has MOH controlled substance authorisation → if not, hard block. - b. Check encounter type: if telehealth → hard block (telehealth prescribing of controlled substances prohibited in UAE). - c. Self-prescribing check: if ordering_provider_id matches patient → hard block (Art. 82). - d. Enforce maximum supply duration: CDa ≤ 30 days; CDb ≤ 90 days.
  4. UEP Integration (Unified Electronic Platform): - System submits prescription to MOH UEP via REST API. - UEP performs:
    • Patient eligibility verification (Emirates ID)
    • Prescriber authorisation verification
    • Duplicate prescription detection across all UAE facilities
    • Quantity limit validation
    • UEP returns: uep_prescription_id + approval status.
  5. CDa-specific requirements (Schedules 1–6): - System generates a serialised special prescription number (special_prescription_number). - Qualified e-signature required (Tier 3 per Federal Decree-Law 46/2021). - Dual verification by pharmacist required before dispensing.
  6. CDb-specific requirements (Schedules 7–8): - Standard prescription form with controlled substance notation. - Advanced e-signature (Tier 2) required. - Pharmacist verification required.
  7. System records uep_prescription_id, uep_submission_status, and uep_submission_datetime on the order.
  8. Order transmitted to Pharmacy with controlled substance metadata.
  9. Pharmacist performs independent dual verification (CDa) or standard verification (CDb).
  10. Dispensing confirmation reported back to UEP.
  11. All transactions logged in controlled_substance_inventory for MOH reporting.

Data Modified:

  • medication_orders — INSERT (with controlled substance columns: controlled_class, uae_legal_schedule, uep_prescription_id, special_prescription_number, dual_verification_by)
  • controlled_substance_inventory — INSERT (transaction_type = 'dispensing')
  • order_audit_log — INSERT
  • clinical_alerts — INSERT (if duplicate detected by UEP)
flowchart TD A["Physician selects controlled substance"] --> B{"MOH CS authorisation?"} B -->|"No"| B1["HARD BLOCK — not authorised"] B -->|"Yes"| C{"Telehealth encounter?"} C -->|"Yes"| C1["HARD BLOCK — CS via telehealth prohibited"] C -->|"No"| D{"Self-prescribing?"} D -->|"Yes"| D1["HARD BLOCK — Art. 82 violation"] D -->|"No"| E{"CDa or CDb?"} E -->|"CDa Schedules 1-6"| F["Submit to UEP via REST API"] E -->|"CDb Schedules 7-8"| G["Submit to UEP via REST API"] F --> H{"UEP approval?"} G --> H H -->|"Approved"| I["Generate special prescription number - CDa"] H -->|"Duplicate detected"| H1["Alert: active CS prescription exists"] H -->|"Rejected"| H2["Display rejection reason"] H1 -->|"Override with justification"| I H1 -->|"Cancel"| Z["Order cancelled"] H2 --> Z I --> J{"CDa?"} J -->|"Yes"| K["Tier 3 qualified e-signature"] J -->|"No - CDb"| L["Tier 2 advanced e-signature"] K --> M["Transmit to Pharmacy with CS metadata"] L --> M M --> N{"CDa dual verification?"} N -->|"CDa"| O["Pharmacist independent verification required"] N -->|"CDb"| P["Pharmacist standard verification"] O --> Q["Dispense medication"] P --> Q Q --> R["Report dispensing to UEP"] R --> S["Update controlled substance inventory"] S --> T["Audit log complete"]

Integration Points

Target System Direction Trigger Protocol Reference
MOH UEP Outbound CS order initiated REST API INT-CPOE-007
MOH UEP Inbound Approval / rejection REST API INT-CPOE-007
PIS (Pharmacy) Outbound UEP approved HL7 ORM^O01 + CS metadata INT-CPOE-001
MOH UEP Outbound Dispensed REST API (dispensing confirmation) INT-CPOE-007
NABIDH Outbound CS order HL7 RDE^O11 INT-CPOE-005

Exception Handling

  • UEP unavailable: Order queued; system retries with exponential backoff. If unavailable > 30 min, alert compliance officer. CDa orders cannot be dispensed without UEP approval. CDb 72 h emergency supply permitted with documented follow-up.
  • UEP duplicate detection: Provider reviews existing prescription details; if clinically justified, override with documented reason.
  • Pharmacist dual verification denied: Order returned to prescriber with pharmacist notes; prescriber must modify or cancel.
  • Inventory discrepancy: Auto-alert to pharmacy director and compliance; investigation workflow triggered.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Serialised paper controlled substance prescription forms (triplicate) Electronic UEP submission with digital serial number Complete digital chain of custody
Manual MOH controlled substance logbook Automated controlled_substance_inventory with perpetual balance Real-time inventory; eliminates counting errors
Paper-based dual verification signature Digital dual verification with independent pharmacist e-signature Timestamped; non-repudiable
Monthly paper MOH reports of CS transactions Automated report generation from inventory table Accurate; timely; auditable
Physical locked cabinet log Digital inventory with receipt/dispensing/disposal tracking Perpetual balance with transaction audit trail

Remaining Paper Touchpoints: MOH-witnessed destruction of expired controlled substances may still require a paper destruction certificate with physical witness signatures (pending digital destruction workflow in UEP).

Inputs and Outputs

Inputs:

Source Data Element Format
WF-CPOE-001 Medication order details (drug, dose, route, frequency, duration) CPOE order entry (steps 1–6)
medication_master Controlled substance classification (CDa/CDb, UAE legal schedule) controlled_class, uae_legal_schedule columns
Provider credentials MOH controlled substance authorisation status provider_credentials table
Encounter context Encounter type (inpatient/outpatient/telehealth), patient Emirates ID encounters, patients tables
MOH UEP Prescription validation (eligibility, duplicate check, quantity limits) REST API response

Outputs:

Destination Data Element Format
medication_orders Order record with CS metadata (controlled_class, uep_prescription_id, special_prescription_number) SQL INSERT
MOH UEP Prescription submission REST API POST
PIS (Pharmacy) Order with controlled substance metadata HL7 ORM^O01 + CS metadata
controlled_substance_inventory Dispensing transaction record SQL INSERT
NABIDH Controlled substance order notification HL7 RDE^O11
order_audit_log Full audit trail with UEP interaction details SQL INSERT
clinical_alerts UEP duplicate detection alerts SQL INSERT

Post-conditions:

  • UEP prescription ID recorded on order
  • CDa orders have serialised special prescription number and Tier 3 e-signature
  • Pharmacy notified with all controlled substance metadata for dual verification (CDa) or standard verification (CDb)
  • Dispensing confirmation reported back to UEP
  • Inventory transaction logged for MOH reporting

SLA and Timing

Step Target Time Escalation Measurement Source
Pre-checks (authorisation, telehealth, self-prescribing) < 1 second Hard block on failure clinical_alerts.check_datetime
UEP submission and response < 10 seconds Queue if > 30s; alert compliance at 30 min medication_orders.uep_submission_datetime
CDa pharmacist dual verification < 15 minutes from order receipt Alert pharmacy director at 15 min medication_orders.dual_verification_datetime
CDb pharmacist verification < 30 minutes from order receipt Alert charge pharmacist at 30 min medication_orders.pharmacist_verification_datetime
Dispensing confirmation to UEP < 5 minutes from dispensing Retry with backoff; alert compliance controlled_substance_inventory.uep_reported_at
UEP unavailability threshold 30 minutes max CDa: cannot dispense; CDb: 72h emergency supply with follow-up integration_message_log.failure_duration

State Transition Diagram

stateDiagram-v2 [*] --> Initiated : Controlled substance detected in order Initiated --> PreChecks : System verifies prescriber authorisation PreChecks --> Blocked : Authorisation / telehealth / self-prescribing failure PreChecks --> UEP_Submitted : Pre-checks passed → submit to UEP UEP_Submitted --> UEP_Approved : UEP returns approval + prescription ID UEP_Submitted --> UEP_Rejected : UEP rejects (duplicate, limit exceeded) UEP_Submitted --> UEP_Queued : UEP unavailable → queued for retry UEP_Queued --> UEP_Submitted : Retry attempt UEP_Queued --> ComplianceAlert : Unavailable > 30 min UEP_Approved --> Signed : Provider applies qualified e-signature Signed --> TransmittedToPharmacy : Order sent to PIS with CS metadata TransmittedToPharmacy --> DualVerification : CDa → pharmacist dual verification TransmittedToPharmacy --> StandardVerification : CDb → pharmacist standard verification DualVerification --> Dispensed : Pharmacist verifies and dispenses StandardVerification --> Dispensed : Pharmacist verifies and dispenses Dispensed --> UEP_Reported : Dispensing confirmation sent to UEP UEP_Reported --> [*] UEP_Rejected --> [*] Blocked --> [*]

Cross-Workflow Reference

Workflow ID Name Triggers Other Workflows
WF-CPOE-001 Medication Order Entry WF-CPOE-008 (if controlled), WF-CPOE-004 (if modified), WF-CPOE-005 (if cancelled)
WF-CPOE-002 Laboratory Order Entry WF-CPOE-004 (if modified), WF-CPOE-005 (if cancelled)
WF-CPOE-003 Imaging/Radiology Order Entry WF-CPOE-004 (if modified), WF-CPOE-005 (if cancelled)
WF-CPOE-004 Order Modification WF-CPOE-008 (if controlled substance modified)
WF-CPOE-005 Order Cancellation/Discontinuation WF-CPOE-008 (if controlled substance cancelled)
WF-CPOE-006 Verbal/Telephone Order Entry WF-CPOE-001/002/003 (order type), WF-CPOE-008 (if CDb)
WF-CPOE-007 Order Set Execution WF-CPOE-001/002/003 (per item), WF-CPOE-008 (if item is controlled)
WF-CPOE-008 Controlled Substance Ordering None — terminal workflow; returns result to calling workflow
  • PIS (Pharmacy Information System): Receives all medication orders; manages dispensing and MAR
  • LIS (Laboratory Information System): Receives lab orders; returns results
  • RIS (Radiology Information System): Receives imaging orders; returns reports
  • EHR & Patient Management: Patient demographics, allergy list, problem list, encounter context
  • Scheduling: Encounter management; bed/OR scheduling
  • Billing & Claims: Charge capture triggered by signed orders
  • Policy & Contract Management: Formulary and coverage data for CDS checks
content/clinical/cpoe/01-workflows.md Generated 2026-02-20 22:54