Pharmacy Information System Workflows
This document defines eight core workflows for the Pharmacy Information System (PIS) module. Each workflow includes process steps, decision points, integration hooks, exception handling, and the paperless transformation achieved by the HIS.
Regulatory context (UAE):
- UAE Federal Decree-Law No. 45/2021 on Personal Data Protection (UAE PDPL) — governs patient data processing, consent, and access logging.
- UAE MOH controlled substance regulations (Federal Law No. 14 of 1995 and amendments) — schedule checks, vault management, reporting.
- DOH (Abu Dhabi) ADHICS and DHA security standards — logging, access control, encryption.
- NABIDH (Dubai) and Malaffi (Abu Dhabi) HIE requirements — timely, accurate medication and dispensing data submission.
All workflows must ensure role-based access control, full audit trails, and minimal necessary data exposure in line with UAE PDPL.
WF-PIS-001: Medication Order Verification
Process Flow
Actor: Clinical Pharmacist
Trigger: Medication order received from CPOE (HL7 RDE^O11 or FHIR MedicationRequest)
Pre-conditions:
- Patient exists in
patientsand active encounter inencounters - Order received into
pharmacy_orderswith status =PENDING_VERIFICATION - Patient allergies and current medications available from
patient_allergiesand EHR medication list - Formulary and CDS master data loaded (
formulary,formulary_items,drug_interactions, dose rules)
- System receives medication order from CPOE and inserts into
pharmacy_orderswithorder_status = 'PENDING_VERIFICATION', linking topatients,encounters, andproviders. - System retrieves patient context (age, weight, height, renal/hepatic labs, allergies, active meds) from EHR and displays in the verification queue (SCR-PIS-001).
- System runs CDS checks in sequence using
drug_interactionsand dose rules:
a. Drug–allergy check (againstpatient_allergies)
b. Drug–drug interaction check (against active meds)
c. Dose range check (age/weight/renal-based)
d. Duplicate therapy check (same drug/class)
e. Renal/hepatic adjustment suggestions. - System logs each CDS alert (including severity, recommendation, and whether it is hard/soft stop) in a PIS CDS log table (not owned entity but assumed, e.g.,
pharmacy_cds_alerts). - Pharmacist opens the order from the queue and reviews: patient context, CDS alerts, order details (dose, route, frequency, duration, PRN indication, priority).
- Pharmacist checks formulary status via
formulary_items(on-formulary, non-formulary, restricted) and sees suggested therapeutic alternatives if applicable. - Pharmacist checks payer coverage (via Billing & Claims integration) and prior-authorization flags; if non-covered, pharmacist may propose an alternative.
- Decision 1 – Clinical appropriateness:
- If dose/route/frequency inappropriate or contraindicated → pharmacist initiates intervention (go to step 9).
- If appropriate → proceed to step 11. - Pharmacist creates a record in
pharmacy_interventions(type: dose adjustment, therapy change, clarification, etc.), documents recommendation, and contacts prescriber (phone/secure messaging). - Decision 2 – Prescriber response:
- If prescriber accepts recommendation → pharmacist updates
pharmacy_orders(e.g., new dose, route) and marks intervention outcome asACCEPTED. - If prescriber rejects → pharmacist documents reason and marks outcome as
REJECTED; order may still be verified if safe, or cancelled if unsafe.
- If prescriber accepts recommendation → pharmacist updates
- Decision 3 – Formulary compliance:
- If non-formulary and no justified exception → pharmacist requests change to formulary alternative; if prescriber agrees, update order; if not, require supervisor approval per policy.
- If formulary-compliant or approved exception → continue.
- Pharmacist sets
order_status = 'VERIFIED'inpharmacy_orders, recordsverified_by,verified_datetime, and any override justifications. - System releases order to dispensing queue (SCR-PIS-002) and creates corresponding entry in
pharmacy_dispensingwith statusPENDING_PICK(or a separate queue table). - System generates medication label data (patient name, MRN, Emirates ID, drug, dose, route, frequency, barcode) and stores label metadata in
pharmacy_dispensing. - System sends status update back to CPOE/EHR (order verified) and, if applicable, triggers billing pre-charge logic.
Data Modified:
pharmacy_orders— INSERT (on receipt), UPDATE (status, verified_by, verified_datetime, modified details)pharmacy_interventions— INSERT (when intervention created), UPDATE (outcome, prescriber_response)pharmacy_dispensing— INSERT (queue entry for dispensing)pharmacy_cds_alerts(or equivalent) — INSERT (one per alert fired)order_audit_log(shared/audit table) — INSERT (verification and overrides; referenced, not owned)
Mermaid Flowchart
Decision Points
-
Clinical appropriateness
- If CDS alerts indicate contraindication or unsafe dose → pharmacist must intervene.
- If only minor alerts or acceptable risk with justification → pharmacist may override with documented reason. -
Prescriber acceptance of intervention
- If accepted → order updated and verified.
- If rejected → pharmacist must decide if order is still safe; unsafe orders are cancelled or escalated. -
Formulary compliance
- If non-formulary and no exception → require change to alternative or supervisor approval.
- If formulary-compliant or exception approved → proceed.
Integration Points
- CPOE (
cpoemodule) - Inbound: HL7
RDE^O11/ FHIRMedicationRequestwith order details. -
Outbound: Order status updates (verified/cancelled) via HL7 ACK or internal API.
-
EHR Patient Management (
ehr-patient-mgmt) - Read:
patients,patient_demographics,patient_allergies, active medication list, labs (renal/hepatic). -
Write: Order status and pharmacist notes visible in patient chart.
-
Billing & Claims (
billing-claims) -
Outbound: Pre-charge data (drug, quantity, RxNorm, cost) for verified orders.
-
CDS Engine / Drug Database
- Internal: Use
drug_interactions, dose rules, formulary master data.
Exception Handling
- Missing patient data (e.g., weight, creatinine):
-
System flags missing data; pharmacist may request updated measurements or use conservative dosing; must document assumption in
pharmacy_interventions. -
CDS engine timeout or error:
-
System displays banner “CDS unavailable”; pharmacist can proceed with manual checks but must document in intervention log; system logs outage for IT.
-
Integration failure with CPOE:
-
Order stored locally; status updates queued with retry; if not delivered after threshold, alert pharmacy supervisor and CPOE support.
-
PDPL-related access violation:
- If user lacks permission to view certain data (e.g., restricted diagnoses), system masks fields and logs access attempt; pharmacist must proceed with available data or escalate.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Handwritten medication orders and faxed prescriptions | Electronic orders via CPOE with structured fields | Eliminates legibility errors and transcription mistakes |
| Manual drug interaction checking using printed references | Automated CDS checks using drug_interactions and dose rules |
Real-time safety alerts; consistent application of guidelines |
| Handwritten pharmacist intervention notes | Structured pharmacy_interventions records linked to orders |
Enables reporting on intervention types, acceptance rates, and impact |
| Paper formulary binders | Electronic formulary / formulary_items with real-time status |
Ensures prescribers and pharmacists use current formulary data |
Remaining Paper Touchpoints: Optional printed pharmacist notes for external providers if electronic channels are unavailable.
Inputs and Outputs
Inputs:
| Source | Data Element | Format |
|---|---|---|
| CPOE | Medication order (drug RxNorm, dose, route, frequency, duration, priority, indication, PRN details) | HL7 RDE^O11 / FHIR MedicationRequest (INT-PIS-001) |
| EHR / Patient Chart | Patient demographics, age, weight, height, renal/hepatic labs, allergies, active medications | patients, patient_allergies, lab_results, medication_orders tables |
| EHR / Patient Chart | Encounter details, ordering provider | encounters, providers tables |
| Master Data | Formulary status, drug interactions, dose rules, therapeutic alternatives | formulary, formulary_items, drug_interactions tables |
| Billing & Claims | Payer coverage and prior-authorization flags | payer_contracts, coverage_rules tables |
| Clinical Pharmacist | Verification decision, intervention details, override justification | Manual entry via SCR-PIS-001 |
Outputs:
| Destination | Data Element | Format |
|---|---|---|
pharmacy_orders |
Updated order with status VERIFIED, verified_by, verified_datetime, any modifications |
SQL UPDATE |
pharmacy_interventions |
Intervention record (type, recommendation, prescriber response, outcome) | SQL INSERT/UPDATE |
pharmacy_dispensing |
New dispensing queue entry with status PENDING_PICK and label metadata |
SQL INSERT |
pharmacy_cds_alerts |
CDS alert records (one per alert fired, with severity and provider response) | SQL INSERT |
| CPOE / EHR | Order status update (verified/cancelled/modified) | HL7 ACK / internal API |
| Billing & Claims | Pre-charge data (drug, quantity, RxNorm, cost) | Internal API |
order_audit_log |
Audit trail for verification and any overrides | SQL INSERT |
Post-conditions:
- Medication order verified with pharmacist sign-off and documented clinical review
- All CDS alerts logged with pharmacist response (accepted/overridden with reason)
- Dispensing queue entry created for pharmacy technician pickup
- Label data generated for patient-specific medication labels
- CPOE/EHR updated with verification status
- Any interventions documented with prescriber response and outcome
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Order receipt to pharmacist queue display | < 2 seconds | Alert IT if > 10s | pharmacy_orders.order_received_datetime |
| STAT order verification | < 15 minutes from receipt | Alert charge pharmacist at 15 min | pharmacy_orders.verified_datetime |
| First-dose verification | < 30 minutes from receipt | Alert at 30 min | pharmacy_orders.verified_datetime |
| Routine order verification | < 2 hours from receipt | Alert at 2 h | pharmacy_orders.verified_datetime |
| CDS check response time | < 2 seconds per check | If > 5s, degrade to async; alert IT | pharmacy_cds_alerts.response_time_ms |
| Intervention resolution (prescriber response) | < 1 hour | Alert pharmacy supervisor at 1 h | pharmacy_interventions.prescriber_response_datetime |
State Transition Diagram
WF-PIS-002: Inpatient Dispensing (Unit-Dose)
Process Flow
Actor: Pharmacy Technician, Clinical Pharmacist
Trigger: Medication order verified and released to dispensing queue
Pre-conditions:
pharmacy_orders.order_status = 'VERIFIED'- Corresponding dispensing task exists in
pharmacy_dispensingwith statusPENDING_PICK - Inventory available in
pharmacy_inventoryfor required drug/location - For controlled substances, controlled schedule and vault location defined
- System displays dispensing worklist (SCR-PIS-002) filtered by facility, pharmacy location, and priority (STAT, first-dose, routine).
- Technician selects a task; system shows patient details, drug, dose, quantity, location, and any special instructions.
- System checks
pharmacy_inventoryfor stock at the assigned location; if insufficient, suggests alternate locations or triggers replenishment. - Technician retrieves medication from shelf or Automated Dispensing Cabinet (ADC) and scans the product barcode.
- System validates scanned barcode against
pharmacy_dispensingandpharmacy_inventory(drug, strength, form, lot, expiry). - Decision 1 – Barcode match:
- If mismatch (wrong drug/strength/lot/expired) → system blocks progress and prompts technician to correct (step 3–5).
- If match → proceed. - Technician repackages into unit-dose if necessary and prints patient-specific label with barcode; system updates
pharmacy_dispensing.label_printed = TRUE. - For controlled substances, system checks
pharmacy_orders.is_controlled = TRUEand routes to controlled workflow (WF-PIS-006) for dual-signature and logging. - Pharmacist performs final check (visual or barcode re-scan) and sets
pharmacy_dispensing.verified_byanddispensing_status = 'VERIFIED_READY'. - System decrements
pharmacy_inventory.quantity_on_handand inserts a record intoinventory_transactions(type: DISPENSE_TO_PATIENT or DISPENSE_TO_UNIT). - Technician delivers medication to nursing unit (cart, tube, or ADC restock) and records delivery method/time in
pharmacy_dispensing. - System updates
pharmacy_dispensing.dispensing_status = 'DISPENSED'anddispensing_datetime. - System sends dispensing event to EHR (for eMAR scheduling), Billing & Claims (charges), and NABIDH/Malaffi if applicable (for Abu Dhabi/Dubai encounters).
- For failed picks (e.g., stockout), technician marks task as
ON_HOLD_STOCKOUT; system alerts inventory manager.
Data Modified:
pharmacy_dispensing— UPDATE (pick status, label_printed, verified_by, dispensing_status, dispensing_datetime, location)pharmacy_inventory— UPDATE (quantity_on_hand, last_count_date)inventory_transactions— INSERT (dispensing transaction)controlled_substance_log— INSERT/UPDATE (if controlled; see WF-PIS-006)integration_message_log(shared) — INSERT (for HIE and billing messages)
Mermaid Flowchart
Decision Points
-
Stock availability
- If insufficient stock → task put on hold, inventory manager notified; urgent STAT items may trigger emergency procurement or borrowing. -
Barcode validation
- If mismatch or expired → system prevents dispensing and logs near-miss; technician must re-pick. -
Controlled substance flag
- If controlled → additional steps (dual-signature, controlled log) enforced; if not → standard workflow.
Integration Points
- Scheduling / Patient Location (
scheduling) -
Read:
encounters,locationsto determine delivery location and ward. -
EHR (eMAR) (
ehr-patient-mgmt) -
Outbound: Dispensing events to update medication administration schedule.
-
Billing & Claims (
billing-claims) -
Outbound: HL7
DFT^P03or internal charge messages with drug, quantity, RxNorm/NDC, cost. -
NABIDH / Malaffi
-
Outbound: HL7 v2.5.1 dispensing messages for Dubai/Abu Dhabi encounters (INT-PIS-005/006).
-
ADC / Automation Systems (if present)
- Internal/External: Stock levels, pick confirmations, restock tasks.
Exception Handling
- Inventory mismatch (negative stock):
-
System prevents dispensing if
quantity_on_handwould go negative; flags discrepancy for investigation; inventory manager must adjust viainventory_transactions. -
Label printer failure:
-
System allows reprint; logs reprint count; if printer offline, technician may redirect to another printer; no manual labels allowed without supervisor override.
-
Integration failure to HIE or Billing:
- Dispensing recorded locally; messages queued with retry; if persistent failure, alert IT and pharmacy supervisor; PDPL-compliant logging of failed transmissions.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Printed pick lists and cart-fill sheets | Dynamic dispensing worklist (SCR-PIS-002) | Real-time prioritisation; no manual updates |
| Handwritten unit-dose labels | System-generated barcode labels linked to pharmacy_dispensing |
Improves identification and supports eMAR scanning |
| Manual stock cards and tally sheets | pharmacy_inventory and inventory_transactions with real-time updates |
Accurate perpetual inventory and audit trail |
| Paper delivery logs to wards | Electronic delivery timestamps and status in pharmacy_dispensing |
Traceability for every dose |
Remaining Paper Touchpoints: None — fully digital for standard inpatient dispensing.
Inputs and Outputs
Inputs:
| Source | Data Element | Format |
|---|---|---|
pharmacy_orders |
Verified order with drug, dose, quantity, priority, special instructions | SQL SELECT |
pharmacy_dispensing |
Dispensing task with status PENDING_PICK |
SQL SELECT via SCR-PIS-002 |
pharmacy_inventory |
Stock levels at assigned location (drug, strength, form, lot, expiry) | SQL SELECT |
| Pharmacy Technician | Medication pick, barcode scan, repackaging, delivery details | Manual action / barcode scan |
| Clinical Pharmacist | Final verification check | Manual action / barcode re-scan |
| Master Data | Controlled substance flags, ADC configuration | formulary_items, system configuration |
Outputs:
| Destination | Data Element | Format |
|---|---|---|
pharmacy_dispensing |
Updated dispensing record (pick status, label_printed, verified_by, dispensing_status, dispensing_datetime) | SQL UPDATE |
pharmacy_inventory |
Decremented quantity_on_hand | SQL UPDATE |
inventory_transactions |
Dispensing transaction record | SQL INSERT |
controlled_substance_log |
Controlled substance transaction (if applicable) | SQL INSERT (via WF-PIS-006) |
| EHR / eMAR | Dispensing event for medication administration scheduling | Internal API / FHIR MedicationDispense (INT-PIS-002) |
| Billing & Claims | Charge details (drug, quantity, RxNorm/NDC, cost) | HL7 DFT^P03 / Internal API (INT-PIS-004) |
| NABIDH / Malaffi | Dispensing event for HIE | HL7 v2.5.1 (INT-PIS-005/006) |
| Label Printers | Patient-specific medication label with barcode | Print job |
Post-conditions:
- Medication dispensed to patient/ward with barcode-verified pick
- Inventory decremented and transaction logged
- eMAR schedule updated with dispensed dose availability
- Billing charge captured
- HIE notified (for Dubai/Abu Dhabi encounters)
- For controlled substances, additional logging completed per WF-PIS-006
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| STAT first-dose dispensing | < 15 minutes from verification | Alert charge pharmacist at 15 min | pharmacy_dispensing.dispensing_datetime minus pharmacy_orders.verified_datetime |
| Routine dispensing (cart fill) | < 2 hours from verification | Alert at 2 h | Same as above |
| Barcode scan validation | < 5 seconds per scan | Alert IT if scanner offline | Scan event timestamp |
| Pharmacist final check | < 5 minutes per order | Alert if queue backlog > 15 min | pharmacy_dispensing.verified_datetime |
| Delivery to ward | < 30 minutes after dispensing (routine), < 10 minutes (STAT) | Alert if delivery not confirmed | Delivery timestamp |
| Stockout resolution | < 4 hours | Alert inventory manager and pharmacy supervisor | pharmacy_dispensing.stockout_datetime |
State Transition Diagram
WF-PIS-003: Outpatient Dispensing
Process Flow
Actor: Pharmacist, Pharmacy Technician
Trigger: Patient presents with prescription (electronic from CPOE or scanned paper)
Pre-conditions:
- Patient identified and linked to
patients(Emirates ID / MRN) - Prescription captured as
pharmacy_orders(for outpatient context) withorder_status = 'PENDING_VERIFICATION'or already verified - Insurance details available via
payersand insurance plan tables - Formulary and pricing data configured
- Patient arrives at outpatient pharmacy; technician searches or registers patient using Emirates ID (e.g., 784-1990-1234567-1) and MRN.
- For electronic prescriptions, system retrieves orders from CPOE; for paper prescriptions, technician scans and enters structured data into
pharmacy_orders. - System checks for duplicate prescriptions and active refills for the same drug; flags potential duplication to pharmacist.
- System verifies insurance eligibility and coverage (via Billing & Claims integration) and calculates estimated co-pay based on payer and plan.
- Pharmacist reviews order(s) in outpatient queue (similar to WF-PIS-001) including CDS checks and formulary status; updates
pharmacy_orderstoVERIFIEDwhen appropriate. - Technician picks medication, scans barcode, and verifies against order; system checks
pharmacy_inventoryfor outpatient location. - Decision 1 – Stock availability:
- If out of stock → system offers partial fill or alternative pharmacy; marks order asON_HOLD_STOCKOUT.
- If in stock → proceed. - Technician counts and packages medication; system prints bilingual (EN/AR) patient label with directions, and updates
pharmacy_dispensing(quantity_dispensed, label_printed). - Pharmacist performs final check, including label accuracy and counseling needs; sets
pharmacy_dispensing.dispensing_status = 'READY_FOR_PICKUP'. - Pharmacist counsels patient (indication, dose, side effects, storage, missed dose instructions) and records counseling completion in
pharmacy_dispensingor a counseling log. - Cashier collects co-payment; Billing & Claims receives charge details (drug, quantity, cost, payer, patient share).
- At pickup, staff verifies patient identity (Emirates ID) and marks
pharmacy_dispensing.dispensing_status = 'DISPENSED'withdispensing_datetime. - System updates patient’s active medication list in EHR and exposes data to Patient Portal via FHIR
MedicationRequest/MedicationDispense.
Data Modified:
pharmacy_orders— INSERT (for scanned prescriptions), UPDATE (status, verification)pharmacy_dispensing— INSERT (dispensing record), UPDATE (quantity_dispensed, label_printed, status, dispensing_datetime)pharmacy_inventory— UPDATE (quantity_on_hand)inventory_transactions— INSERT (outpatient dispense)- Counseling log table (e.g.,
pharmacy_counseling) — INSERT - Billing/charge tables — INSERT (via integration)
Mermaid Flowchart
Decision Points
-
Prescription source
- Electronic vs paper; paper requires manual entry and scanning for legal record. -
Stock and barcode validation
- If stock unavailable or barcode mismatch → no dispensing; alternative options discussed. -
Insurance coverage
- If not covered or high co-pay → pharmacist may suggest lower-cost alternative; requires prescriber approval.
Integration Points
- CPOE
-
Inbound: Outpatient electronic prescriptions.
-
EHR Patient Management
- Read: Patient demographics, allergies.
-
Write: Outpatient medication list and dispensing events.
-
Billing & Claims
-
Outbound: Charges and co-pay details; eClaimLink formats for Dubai when applicable.
-
Patient Portal
- Outbound: FHIR
MedicationRequestandMedicationDispensefor active meds and refill status.
Exception Handling
- Unreadable paper prescription:
-
System requires pharmacist to contact prescriber; order remains
PENDING_CLARIFICATION; no dispensing until resolved. -
Insurance system timeout:
-
System allows “cash sale” option with patient consent; marks transaction for later insurance submission if policy allows.
-
Patient declines counseling:
- System records “counseling offered, declined” to maintain documentation.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper prescriptions and manual transcription | Electronic prescriptions or scanned images with structured pharmacy_orders |
Reduces transcription errors; preserves legal image |
| Manual price lookups and handwritten bills | Automated insurance eligibility and co-pay calculation | Faster service; fewer billing errors |
| Paper counseling forms | Electronic counseling documentation linked to dispensing record | Supports quality audits and patient safety metrics |
| Handwritten outpatient dispensing logbooks | pharmacy_dispensing and inventory_transactions |
Complete, searchable audit trail |
Remaining Paper Touchpoints: Scanned image of original paper prescription retained for legal compliance; optional printed medication information leaflets.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| CPOE / Paper Rx scan | Prescription order (drug, dose, route, frequency, quantity, refills) | HL7 RDE^O11 / FHIR MedicationRequest / scanned image |
| EHR | Patient demographics, allergies, active medications, weight | FHIR Patient, AllergyIntolerance, MedicationStatement |
| Policy & Contract Mgmt | Insurance eligibility, co-pay schedule, coverage limits | Internal API / FHIR Coverage, CoverageEligibilityResponse |
| Formulary | Drug formulary status, pricing, therapeutic alternatives | formulary_items lookup |
| Inventory | Stock availability, lot, expiry, shelf location | pharmacy_inventory query |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| Patient | Dispensed medication, label, printed receipt, counseling notes | Physical handoff + printed label |
| Billing & Claims | Dispensing charge (drug, quantity, price, co-pay, payer) | HL7 DFT^P03 / Internal API |
| EHR | Updated medication list, dispensing event | FHIR MedicationDispense, MedicationStatement |
| NABIDH / Malaffi | Outpatient dispensing event | HL7 v2.5.1 (HIE pharmacy profile) |
| Inventory | Stock decrement, lot consumption | inventory_transactions INSERT |
Post-conditions
pharmacy_dispensingrecord created with statusDISPENSEDand patient signature captured electronicallypharmacy_inventorydecremented;inventory_transactionslogged- Billing charge generated and sent to Billing & Claims
- Patient counseling documented in
pharmacy_dispensing.counseling_notes - Dispensing event submitted to NABIDH/Malaffi within SLA
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Prescription receipt to pharmacist review | < 5 min | Alert pharmacy supervisor if queue > 15 min | pharmacy_orders.received_datetime to pharmacy_orders.verified_datetime |
| Insurance eligibility check | < 10 sec | Offer cash-sale path if timeout > 30 sec | API response time in integration_message_log |
| Dispensing (pick, label, verify) | < 10 min (routine), < 5 min (urgent) | Escalate to senior pharmacist if > 15 min | pharmacy_dispensing.pick_datetime to pharmacy_dispensing.dispensed_datetime |
| Patient counseling | < 3 min | Log if declined; no escalation | pharmacy_dispensing.counseling_datetime |
| End-to-end (Rx receipt to patient handoff) | < 20 min (routine) | Pharmacy manager alert if > 30 min | pharmacy_orders.received_datetime to pharmacy_dispensing.dispensed_datetime |
| NABIDH/Malaffi submission | < 15 min post-dispense | Alert compliance if > 60 min | integration_message_log.created_at to .acknowledged_at |
WF-PIS-004: Medication Administration (eMAR)
Process Flow
Actor: Nurse (eMAR role)
Trigger: Scheduled administration time or PRN medication request
Pre-conditions:
- Verified medication orders exist in
pharmacy_orders - Dispensed doses recorded in
pharmacy_dispensing(where applicable) - Patient wristband with barcode present and linked to
patients - Nurse authenticated and authorised (
users,roles) - eMAR schedule generated in
medication_administration(planned rows or on-demand creation)
- Nurse opens eMAR (SCR-PIS-003) for assigned patients and views scheduled and PRN medications.
- At administration time, nurse authenticates (badge/username/password) and system logs user context.
- Nurse scans own ID badge; system verifies role and permissions (e.g., can administer IV meds).
- Nurse scans patient wristband; system confirms correct patient and loads that patient’s eMAR.
- Nurse selects the due medication; system prompts to scan medication barcode.
- Nurse scans medication barcode; system matches to
pharmacy_dispensingandpharmacy_orders. - System performs “five rights” check (right patient, drug, dose, route, time) plus allergy and duplicate dose checks.
- Decision 1 – Five rights check:
- If any mismatch (e.g., wrong patient, wrong drug, early/late beyond allowed window) → system displays hard/soft stop alert and blocks or warns accordingly.
- If all checks pass → proceed. - Nurse administers medication and records actual administration details (time, dose, route, site, comments) in
medication_administration. - For PRN medications, nurse documents indication and later records patient response (pain score, symptom relief).
- If dose is held/refused/omitted, nurse selects reason (e.g., patient refused, NPO, clinical decision) and system records status and reason.
- For high-risk or controlled medications, system may require witness scan; witness user ID stored in
medication_administration.witness_id. - System updates patient’s medication timeline in EHR and marks dose as completed/held in eMAR.
- System updates barcode verification flag (
barcode_verified = TRUE) for successfully scanned administrations to support KPI tracking.
Data Modified:
medication_administration— INSERT (each administration event), UPDATE (PRN response, status changes)pharmacy_dispensing— UPDATE (optional link to mark dose used)order_audit_log— INSERT (administration and exceptions)
Mermaid Flowchart
Decision Points
-
Five rights validation
- If mismatch → system may enforce hard stop (e.g., wrong patient) or soft stop (slightly early/late within policy). -
Override capability
- For certain alerts (e.g., early dose), nurse may override with reason; for critical mismatches, override not allowed. -
PRN vs scheduled
- PRN requires indication and response; scheduled does not.
Integration Points
- EHR Patient Chart
-
Outbound: Administration records and status updates to patient timeline.
-
CPOE
-
Read: Order details (dose, route, frequency, special instructions).
-
PIS Dispensing
- Read:
pharmacy_dispensingto validate that dose was dispensed (for unit-dose workflows).
Exception Handling
- Barcode scanner failure:
-
System allows manual entry with mandatory reason; flags administration as
barcode_verified = FALSEfor audit. -
Patient not found or wristband unreadable:
-
System prevents administration until patient identity confirmed; nurse must request new wristband.
-
Network outage at bedside:
- Offline mode may allow local caching and later sync; all offline administrations logged for reconciliation.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper MAR sheets at bedside | eMAR with real-time updates and barcode scanning | Reduces omission and wrong-patient errors |
| Manual five-rights checks | Automated five-rights validation with alerts | Standardises safety checks |
| Handwritten notes for PRN response | Structured PRN indication/response in medication_administration |
Enables outcome tracking and audit |
| Paper witness signatures for high-risk meds | Electronic witness capture via user ID | Stronger audit trail and easier reporting |
Remaining Paper Touchpoints: None — fully digital for standard eMAR workflow.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| PIS / eMAR schedule | Scheduled administration times, drug, dose, route | medication_administration planned rows |
| Pharmacy dispensing | Dispensed unit-dose with barcode, lot, expiry | pharmacy_dispensing linked to pharmacy_orders |
| Patient wristband | Patient identity barcode | Barcode scan (Code 128 / GS1) |
| Medication barcode | Drug identity, lot, expiry | Barcode scan (GS1 DataMatrix / NDC) |
| EHR | Patient allergies, vitals (for hold/assess rules) | FHIR AllergyIntolerance, Observation |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| EHR (Patient Chart) | Administration record (drug, dose, route, site, time, nurse) | FHIR MedicationAdministration |
| eMAR display | Updated administration status (given, held, refused, omitted) | medication_administration UPDATE |
| PIS Inventory | Dose consumption confirmation (for ADC restock triggers) | inventory_transactions / ADC interface |
| Billing & Claims | Billable administration event (if applicable, e.g., IV infusions) | Internal API / HL7 DFT^P03 |
| Audit trail | Five-rights verification result, barcode scan log, witness ID | medication_administration_audit INSERT |
Post-conditions
medication_administrationrecord updated withstatus = 'GIVEN'(orHELD,REFUSED,OMITTED) andadministered_datetime- Five-rights verification result recorded (barcode match = TRUE/FALSE with override reason if FALSE)
- For high-alert medications, witness user ID captured
- PRN effectiveness assessment scheduled if applicable (
prn_assessment_due_datetime) - EHR medication timeline updated in real time
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Medication available at bedside before scheduled time | Ready at least 30 min before scheduled time | ADC restock alert if not available | pharmacy_dispensing.dispensed_datetime vs. medication_administration.scheduled_datetime |
| Administration within scheduled window | +/- 30 min of scheduled time (routine); immediate (STAT) | Overdue alert at +30 min; escalate to charge nurse at +60 min | medication_administration.scheduled_datetime vs. .administered_datetime |
| Barcode scanning (five-rights check) | < 30 sec per scan | N/A (immediate feedback) | Scan event timestamps |
| Documentation of administration | < 2 min post-administration | Undocumented alert at +15 min | medication_administration.administered_datetime to .documented_datetime |
| PRN effectiveness reassessment | Per protocol (e.g., 30–60 min post-admin) | Reminder alert at due time; escalate if not completed within 30 min | medication_administration.prn_assessment_due_datetime |
| Held/refused/omitted documentation | Immediate (at scheduled time) | Alert if scheduled dose has no status within +60 min | medication_administration.scheduled_datetime vs. status update |
WF-PIS-005: IV Admixture Preparation
Process Flow
Actor: IV Pharmacist, Pharmacy Technician
Trigger: IV medication order requiring compounding appears on IV admixture worklist
Pre-conditions:
- IV order exists in
pharmacy_orderswith route indicating IV infusion/bolus and flagged as requiring compounding - Order verified by pharmacist (
order_status = 'VERIFIED') - IV base products and recipes defined in master data (IV Solution Base Products, compounding rules)
- Cleanroom and laminar airflow hood available and within environmental specs
- System identifies IV orders requiring compounding and lists them in IV Admixture Preparation screen (SCR-PIS-005).
- IV pharmacist reviews each order: base solution, additives, concentration, total volume, infusion rate, stability, and patient-specific factors (weight, renal function).
- System generates a compounding worksheet from
iv_admixture_ordersincluding ingredient list, quantities, sequence of addition, and safety checks. - Technician prepares in the cleanroom; before starting, scans own ID and the order barcode to ensure correct patient and product.
- Technician scans each ingredient barcode (base solution, vials, ampoules); system validates against worksheet and
pharmacy_inventory. - Decision 1 – Ingredient validation:
- If ingredient mismatch or expired lot → system blocks and requires correction.
- If all ingredients valid → proceed. - If gravimetric verification is enabled, technician places bag on scale; system compares expected vs actual weight and prompts for adjustment if out of tolerance.
- Technician completes compounding following on-screen steps; system records preparation steps and timestamps in
iv_admixture_orders. - IV pharmacist performs final visual check and, if required, re-scans bag barcode; sets
iv_admixture_orders.status = 'PREPARED_VERIFIED'. - System calculates beyond-use date/time (BUD) based on product type and stability rules; stores in
iv_admixture_orders.beyond_use_datetime. - System prints IV label (patient name, MRN, drug, concentration, volume, rate, BUD, barcode) and attaches to bag.
- System updates
pharmacy_inventory(deducts used ingredients) and insertsinventory_transactionsfor each component. - Prepared IV is delivered to nursing unit; delivery details recorded in
iv_admixture_ordersand linkedpharmacy_dispensingrecord. - System updates EHR/eMAR with IV preparation status and BUD to support administration scheduling.
Data Modified:
iv_admixture_orders— INSERT (order-level record), UPDATE (preparation details, status, BUD, prepared_by, verified_by)pharmacy_inventory— UPDATE (quantity_on_hand for each ingredient)inventory_transactions— INSERT (component usage)pharmacy_dispensing— UPDATE (link to admixture_id, dispensing_status)
Mermaid Flowchart
Decision Points
-
Ingredient validation
- If wrong or expired ingredient scanned → compounding blocked; prevents contamination or incorrect therapy. -
Gravimetric verification
- If enabled and weight out of tolerance → technician must adjust; ensures accurate concentration. -
Final pharmacist verification
- If pharmacist identifies issue (e.g., incompatibility) → admixture rejected, new order or preparation required.
Integration Points
- CPOE
-
Read: IV order details and special instructions.
-
EHR/eMAR
-
Outbound: IV preparation status, BUD, and administration instructions.
-
Inventory Management
- Internal:
pharmacy_inventoryandinventory_transactionsfor component usage.
Exception Handling
- Cleanroom environmental failure (e.g., pressure out of range):
-
System may block new compounding tasks and display warning; tasks deferred until environment restored.
-
Missing IV recipe:
-
If no standard recipe found, pharmacist must manually define compounding parameters; system logs as non-standard preparation.
-
Printer failure for IV labels:
- System allows reprint; if persistent, labels may be printed at alternate device; manual labels require supervisor override and documentation.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper compounding worksheets | Electronic iv_admixture_orders with stepwise guidance |
Reduces calculation errors and improves traceability |
| Handwritten IV labels | System-generated labels with barcodes and BUD | Supports eMAR scanning and stability tracking |
| Manual logs of ingredient usage | Automated inventory_transactions per component |
Enables precise cost and waste analysis |
| Paper cleanroom logs for each batch | Electronic timestamps and user IDs for each step | Stronger compliance evidence for inspections |
Remaining Paper Touchpoints: Environmental monitoring logs may remain partially paper-based depending on facility equipment.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| PIS (verified order) | IV order details: drug, dose, base solution, volume, rate, duration | pharmacy_orders with route = IV and compounding flag |
| EHR | Patient weight, renal function, fluid balance | FHIR Observation (weight, creatinine, fluid I/O) |
| IV Recipe Master | Standard compounding recipe: base solution, additives, concentrations, stability data, BUD | iv_recipes / iv_recipe_components |
| Inventory | Base solutions, additives, diluents — lot, expiry, NDC | pharmacy_inventory query |
| Environmental monitoring | Cleanroom temperature, humidity, particle count, hood certification status | Environmental monitoring system / manual log |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| Dispensing queue | Prepared IV bag/syringe with barcode label (drug, dose, volume, rate, BUD, lot) | iv_admixture_orders status = READY, label printed |
| eMAR / Nursing | IV medication available for administration with preparation details | pharmacy_dispensing linked to iv_admixture_orders |
| Inventory | Component deductions (base, additive, diluent quantities consumed) | inventory_transactions INSERT per component |
| Quality log | Compounding record: preparer, verifier, components used, BUD, environmental conditions | iv_admixture_orders compounding audit fields |
| Waste tracking | Partial-use vial waste, expired components discarded | inventory_transactions (waste type) |
Post-conditions
iv_admixture_ordersrecord created with statusCOMPOUNDEDand pharmacist verification- Each component lot tracked in
inventory_transactionsfor recall traceability - Beyond-use date (BUD) calculated and printed on label
- Compounding steps timestamped with preparer and verifier user IDs
- Prepared product added to dispensing queue for nursing pickup or pneumatic tube delivery
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| IV order to compounding start | < 30 min (routine), < 15 min (urgent), immediate (STAT) | Alert IV pharmacist if unstarted > 45 min (routine) | pharmacy_orders.verified_datetime to iv_admixture_orders.prep_start_datetime |
| Compounding (preparation + verification) | < 20 min per bag (standard), < 30 min (complex TPN) | Alert pharmacy supervisor if > 40 min | iv_admixture_orders.prep_start_datetime to .prep_complete_datetime |
| Pharmacist final check | < 5 min | Alert if pharmacist queue > 10 unchecked items | iv_admixture_orders.prep_complete_datetime to .verified_datetime |
| Delivery to nursing unit | < 15 min post-verification | Alert charge nurse and pharmacy if > 30 min | iv_admixture_orders.verified_datetime to .delivered_datetime |
| End-to-end (order to bedside-ready) | < 60 min (routine), < 30 min (urgent), < 15 min (STAT) | Escalate to pharmacy manager and attending physician | pharmacy_orders.verified_datetime to iv_admixture_orders.delivered_datetime |
| Cleanroom environmental check | Continuous monitoring; out-of-spec alert immediate | Stop compounding; alert pharmacy director | Environmental monitoring system timestamps |
WF-PIS-006: Controlled Substance Management
Process Flow
Actor: Pharmacist, Pharmacy Technician, Nurse
Trigger: Controlled substance ordered, dispensed, administered, or wasted
Pre-conditions:
- Medication flagged as controlled in
formulary_items.is_controlled = TRUEwithcontrolled_scheduleper UAE MOH schedules - Prescriber authorised for controlled substances
- Controlled substance vault/ADC configured and mapped to
pharmacy_inventorylocations - Dual-signature policy configured for specified schedules
- During order verification (WF-PIS-001), system checks
formulary_items.controlled_scheduleand flags order as controlled;pharmacy_orders.is_controlled = TRUE. - System verifies prescriber authorisation (e.g., MOH/DOH/DHA license attributes) and logs check in audit trail.
- For dispensing, system requires pharmacist login and a witness (pharmacist or nurse) for vault access; both users authenticated.
- Pharmacist selects controlled substance transaction (dispense to patient, return, waste, inventory count) in Controlled Substance Register screen (SCR-PIS-006).
- Pharmacist scans medication from vault; system validates drug, strength, lot, and quantity against
pharmacy_inventory. - Decision 1 – Transaction type:
- Dispense to patient → link topharmacy_ordersandpharmacy_dispensing.
- Return from ward → increase inventory.
- Waste → record waste amount and witness.
- Inventory adjustment → require supervisor approval. - For dispense to patient, system records transaction in
controlled_substance_logwith from_user, to_user, patient_id, quantity, and witness_id; updatespharmacy_inventoryandinventory_transactions. - Medication is delivered to ward; nurse administers via eMAR (WF-PIS-004), scanning patient and medication; system links administration to
controlled_substance_log. - For partial doses or unused portions, nurse initiates waste transaction; system requires witness scan and records
waste_amountandwaste_witnessed_by. - System supports daily reconciliation: compares
controlled_substance_logbalances withpharmacy_inventoryfor each controlled item and location. - Decision 2 – Reconciliation result:
- If balances match → mark reconciliation_status =
BALANCED. - If discrepancy → flag discrepancy, create investigation record, and alert supervisor.
- If balances match → mark reconciliation_status =
- Monthly, system generates MOH-compliant controlled substance reports (dispensing, returns, wastes, discrepancies) and exports via secure file transfer or portal upload.
- All controlled substance actions are logged with user IDs, timestamps, and workstation IDs for ADHICS/DHA security compliance.
Data Modified:
pharmacy_orders— UPDATE (is_controlled, controlled_schedule)pharmacy_dispensing— INSERT/UPDATE (controlled-related dispensing)pharmacy_inventory— UPDATE (controlled stock levels)inventory_transactions— INSERT (controlled movements)controlled_substance_log— INSERT (each transaction), UPDATE (balance_after, reconciliation_status)controlled_discrepancy_investigations(assumed) — INSERT (for discrepancies)
Mermaid Flowchart
Decision Points
-
Transaction type
- Different logic for dispense, return, waste, and adjustment; each with specific documentation requirements. -
Reconciliation outcome
- Balanced vs discrepancy; discrepancies trigger investigation and potential MOH reporting. -
Prescriber authorisation
- If prescriber not authorised → order cannot proceed; pharmacist must contact prescriber or supervisor.
Integration Points
- EHR / CPOE
- Read: Controlled order details and prescriber credentials.
-
Write: Notes about controlled substance status and any restrictions.
-
UAE MOH Reporting
-
Outbound: Monthly controlled substance dispensing and discrepancy reports via secure file transfer or portal (INT-PIS-007).
-
Security / IAM
- Internal: Role-based access and dual-authentication for vault access; logging per ADHICS/DHA standards.
Exception Handling
- Witness not available:
-
System may allow temporary override only for emergency administration with supervisor approval; all such events flagged for audit.
-
Vault inventory mismatch:
-
System prevents further dispensing of affected item until discrepancy investigated or temporary override authorised.
-
MOH report transmission failure:
- System retries; if still failing, alerts Chief Pharmacist; report can be manually downloaded and uploaded via MOH portal.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper controlled substance registers | controlled_substance_log with real-time updates |
Eliminates illegible entries and missing pages |
| Manual daily count sheets | Automated reconciliation against pharmacy_inventory |
Faster detection of discrepancies |
| Handwritten witness signatures | Electronic witness capture with user IDs | Stronger non-repudiation and auditability |
| Paper MOH reporting forms | System-generated electronic reports | Reduces administrative burden and errors |
Remaining Paper Touchpoints: Printed copies of MOH reports may be kept in physical binders per facility policy.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| CPOE | Controlled substance order (drug, schedule, dose, quantity, prescriber authority) | HL7 RDE^O11 / FHIR MedicationRequest with isControlledSubstance extension |
| Formulary | Controlled schedule classification (UAE MOH schedules), dual-signature rules | formulary_items.controlled_schedule, policy rules |
| Provider credentials | MOH/DOH/DHA prescriber controlled substance authority | provider_credentials lookup |
| Inventory (vault/ADC) | Current vault/ADC stock count, lot, expiry, shelf position | pharmacy_inventory filtered by is_controlled = TRUE |
| Nursing (eMAR) | Administration record, waste documentation, witness ID | medication_administration with controlled substance fields |
| Prior count | Previous reconciliation count, expected balance | controlled_substance_log (last reconciliation entry) |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| Controlled substance register | Dispensing record: drug, quantity, patient, prescriber, pharmacist, witness, timestamp | controlled_substance_log INSERT |
| Inventory | Stock adjustment (decrement on dispense, increment on return/receipt) | inventory_transactions with transaction_type = controlled |
| Reconciliation report | Expected vs. actual count, discrepancy flag, investigator, resolution | controlled_substance_reconciliation |
| UAE MOH | Monthly controlled substance report; event-driven discrepancy reports | SFTP batch (CSV/XML) / MOH portal upload |
| Audit trail | Every access, dispense, waste, return, count — with dual-witness where required | controlled_substance_audit INSERT |
Post-conditions
- Each controlled substance movement is double-documented (system + witness confirmation)
- Vault/ADC counts reconciled at shift change; discrepancies flagged immediately
- MOH monthly report generated with all transactions for the period
- Any discrepancy triggers investigation workflow with resolution documented
- Full chain of custody maintained from receipt to patient administration or waste
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Order verification (controlled substance) | < 15 min | Alert pharmacy supervisor if > 20 min | pharmacy_orders.received_datetime to .verified_datetime |
| Vault dispensing (dual-witness) | < 10 min | Alert if witness unavailable > 10 min | controlled_substance_log.requested_datetime to .dispensed_datetime |
| Shift-change reconciliation | < 30 min per vault/ADC | Alert pharmacy director if not completed within 1 hour of shift change | controlled_substance_reconciliation.started_datetime to .completed_datetime |
| Discrepancy investigation initiation | < 1 hour from detection | Alert pharmacy director and facility security | controlled_substance_reconciliation.discrepancy_detected_datetime to .investigation_started_datetime |
| Discrepancy resolution | < 24 hours | Escalate to Chief Pharmacist and compliance officer | controlled_substance_reconciliation.investigation_started_datetime to .resolved_datetime |
| MOH monthly report submission | By 10th of following month | Alert compliance team 5 days before deadline; escalate to Chief Pharmacist at 3 days | moh_report_submissions.due_date vs. .submitted_datetime |
| Waste documentation (dual-witness) | Immediate (at time of waste) | Alert if waste not documented within 15 min of administration | controlled_substance_log.waste_datetime vs. medication_administration.administered_datetime |
State Transition Diagram
The following state diagram tracks the controlled substance inventory adjustment lifecycle — from receipt into the facility vault through dispensing, administration, waste, and reconciliation.
WF-PIS-007: Medication Reconciliation
Process Flow
Actor: Pharmacist, Physician, Nurse
Trigger: Patient admission, transfer, or discharge
Pre-conditions:
- Active encounter in
encounters - Access to external medication history sources (NABIDH/Malaffi, community pharmacy records) where available
- Reconciliation task created for the encounter (admission/transfer/discharge)
- At admission/transition, system creates a medication reconciliation task and displays it in Medication Reconciliation screen (SCR-PIS-009).
- Pharmacist or nurse collects Best Possible Medication History (BPMH) via patient/caregiver interview, medication bottles, and external sources (NABIDH/Malaffi, community pharmacy).
- System imports available external medication lists and merges them with patient-reported medications; user confirms and edits entries.
- Home medications are recorded in
medication_reconciliationwith typeHOMEand source (patient, HIE, pharmacy). - System displays side-by-side comparison of home medications vs current inpatient orders from
pharmacy_orders. - User identifies discrepancies (omissions, duplications, dose differences, new meds) and flags each in
medication_reconciliation.discrepancy_type. - Decision 1 – Discrepancy type:
- Intentional (e.g., medication appropriately discontinued) → document rationale.
- Unintentional → requires prescriber review. - Pharmacist proposes actions (continue, hold, modify, discontinue, new order) and records
action_takenandnew_order_id(if order created). - Physician reviews reconciliation summary, confirms or adjusts actions, and signs electronically.
- At discharge, system compares discharge medication list to admission and inpatient meds; user finalises discharge list and prints or sends to Patient Portal.
- Discharge medications are recorded as
reconciliation_type = 'DISCHARGE'inmedication_reconciliationand linked to new outpatientpharmacy_orderswhere applicable. - System updates EHR medication list and sends discharge medications to NABIDH/Malaffi if required by local policy.
- System marks reconciliation task as complete and records
reconciled_by,reconciled_datetime.
Data Modified:
medication_reconciliation— INSERT (home, inpatient, discharge reconciliation entries), UPDATE (actions, discrepancy_type, reconciled_by, reconciled_datetime)pharmacy_orders— INSERT (new orders resulting from reconciliation), UPDATE (discontinued/modified orders)- EHR medication list tables — UPDATE (active meds)
Mermaid Flowchart
Decision Points
-
Discrepancy classification
- Intentional vs unintentional; unintentional discrepancies must be resolved. -
Action selection
- Continue, hold, modify, discontinue, or new order; each has different downstream effects. -
Discharge list finalisation
- Physician may choose to stop certain chronic meds or add new ones; system must clearly show changes from admission.
Integration Points
- NABIDH / Malaffi
- Inbound: External medication history where available.
-
Outbound: Updated medication lists at discharge.
-
EHR Patient Chart
- Read: Current inpatient orders and historical meds.
-
Write: Updated active medication list and reconciliation notes.
-
CPOE
- Outbound: New or modified orders generated during reconciliation.
Exception Handling
- Patient unable to provide history:
-
System records limitation (e.g., unconscious, language barrier) and source of any partial data; prompts for follow-up when caregiver available.
-
HIE unavailable:
-
System logs failure and prompts user to rely on other sources; can schedule later reconciliation update when HIE access restored.
-
Reconciliation not completed within SLA (e.g., 24h):
- System escalates task to pharmacist supervisor and notifies attending physician.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper medication reconciliation forms | medication_reconciliation with structured discrepancy tracking |
Improves completeness and legibility |
| Handwritten discharge medication lists | Electronic discharge list with EN/AR formatting and Portal delivery | Enhances patient understanding and access |
| Manual comparison of home vs inpatient meds | Side-by-side digital comparison with discrepancy flags | Reduces oversight and speeds workflow |
| Verbal-only communication of changes | Electronic summary for physician sign-off and audit | Supports PDPL-compliant documentation and accountability |
Remaining Paper Touchpoints: Printed discharge medication lists for patients who prefer paper or lack portal access.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| EHR / Scheduling | Encounter event (admission, transfer, discharge) triggering reconciliation | FHIR Encounter status change / ADT A01/A02/A03 |
| Patient / Caregiver | Self-reported home medications, OTC, supplements, herbals | Structured interview → medication_reconciliation entries |
| NABIDH / Malaffi | External medication history (community pharmacy dispensing records) | HL7 query/response or FHIR MedicationStatement |
| EHR | Current inpatient medication orders | pharmacy_orders active list for encounter |
| Pharmacy (PIS) | Formulary mapping, therapeutic equivalences, dose conversion data | formulary_items, dose conversion tables |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| EHR (Patient Chart) | Reconciled medication list with discrepancy annotations | FHIR MedicationStatement (reconciled), DetectedIssue |
| CPOE | New orders, modified orders, or discontinuation requests based on reconciliation | FHIR MedicationRequest / HL7 RDE^O11 |
| Physician | Reconciliation summary for review and sign-off | In-app notification + reconciliation report |
| Patient Portal | Discharge medication list (EN/AR) with instructions | FHIR MedicationStatement, CarePlan |
| Audit trail | Reconciliation completion record: pharmacist, physician sign-off, timestamp | medication_reconciliation.completed_datetime, signed_off_by |
Post-conditions
medication_reconciliationrecord completed with all home medications compared against inpatient orders- Each discrepancy (omission, addition, dose change, therapeutic substitution) documented with clinical rationale
- Physician has reviewed and signed off on reconciled list
- At discharge: patient receives printed and/or portal-accessible medication list in preferred language
- Reconciliation task marked complete; KPI timer stopped
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Reconciliation task creation | Automatic at admission/transfer/discharge event | Alert if not created within 30 min of ADT event | medication_reconciliation.created_datetime vs. encounters.admit_datetime |
| BPMH collection (admission) | < 24 hours from admission | Alert pharmacist supervisor at 18 hours; escalate to pharmacy director at 24 hours | medication_reconciliation.bpmh_completed_datetime |
| Reconciliation completion (admission) | < 24 hours from admission | Same escalation as BPMH | medication_reconciliation.completed_datetime |
| Reconciliation completion (transfer) | < 4 hours from transfer | Alert receiving unit pharmacist at 3 hours | medication_reconciliation.completed_datetime vs. transfer event |
| Reconciliation completion (discharge) | Before discharge order is finalized | Block discharge if not completed (soft stop with override) | medication_reconciliation.completed_datetime vs. encounters.discharge_datetime |
| Physician sign-off | < 2 hours after pharmacist completion | Notify attending physician; escalate to department head at 4 hours | medication_reconciliation.completed_datetime to .signed_off_datetime |
| HIE medication history retrieval | < 15 sec (NABIDH/Malaffi query) | Proceed without HIE data if timeout > 30 sec; schedule retry | integration_message_log response time |
WF-PIS-008: Antimicrobial Stewardship Review
Process Flow
Actor: Antimicrobial Stewardship Pharmacist, Infectious Disease Physician
Trigger: Antimicrobial order placed, culture results available, or therapy exceeds defined duration (e.g., 72 hours)
Pre-conditions:
- Antimicrobial orders recorded in
pharmacy_orderswith antibiotic RxNorm codes - Stewardship rules configured (restricted antibiotics, duration thresholds)
- LIS integration available for culture and sensitivity results
- Patient clinical data accessible (diagnosis, vitals, labs)
- System continuously monitors
pharmacy_ordersfor antimicrobial agents and applies stewardship rules (e.g., restricted drugs, broad-spectrum, prolonged therapy). - Orders meeting criteria are added to Antimicrobial Stewardship worklist and
antimicrobial_stewardship_reviewsentries are created with statusPENDING_REVIEW. - When LIS finalises culture/sensitivity results, system links results to relevant orders via
culture_result_idand updates review records. - Stewardship pharmacist opens a case from the worklist and reviews: indication, diagnosis, current antibiotics, culture/sensitivity, renal/hepatic function, and previous antimicrobial history.
- System suggests potential actions based on rules and antibiogram data (e.g., de-escalate from broad-spectrum to narrow-spectrum, IV-to-oral switch, stop if no infection).
- Decision 1 – Recommendation type:
- De-escalation, escalation, IV-to-oral switch, duration adjustment, or discontinuation. - Pharmacist documents recommendation and rationale in
antimicrobial_stewardship_reviews.recommendationand setsreview_type(prospective, retrospective, day-3 review). - Pharmacist communicates recommendation to prescriber (secure messaging, phone, or EHR note).
- Decision 2 – Prescriber acceptance:
- If accepted → prescriber updates orders in CPOE; system setsaccepted = TRUEand recordsprescriber_response.
- If rejected →accepted = FALSEwith documented reason. - System tracks outcome (e.g., therapy changed, dose adjusted) and updates
antimicrobial_stewardship_reviews.outcome. - Aggregated data (DDD per 1000 patient-days, acceptance rates, use of restricted antibiotics) is available for reporting and quality improvement.
- Annually, system supports generation of facility antibiogram using LIS data and stewardship review outcomes.
Data Modified:
antimicrobial_stewardship_reviews— INSERT (new reviews), UPDATE (recommendation, accepted flag, reviewed_by, reviewed_datetime, prescriber_response, outcome)pharmacy_orders— UPDATE (if orders changed following recommendation)- LIS result tables — referenced only
Mermaid Flowchart
Decision Points
-
Review criteria
- Restricted drug, broad-spectrum use, prolonged duration, or high-risk indication; configurable per facility. -
Recommendation type
- De-escalation vs escalation vs IV-to-oral vs stop; depends on culture results and clinical status. -
Prescriber acceptance
- Acceptance indicates alignment with stewardship; rejection requires documented rationale and may prompt further discussion.
Integration Points
- LIS (Laboratory Information System)
-
Inbound: Culture and sensitivity results for microbiology tests.
-
CPOE / EHR
- Read: Orders, diagnoses, vitals, labs.
-
Write: Stewardship notes and order changes (via prescriber).
-
Analytics / Quality Reporting
- Internal: Use
antimicrobial_stewardship_reviewsand LIS data to compute utilisation metrics and antibiograms.
Exception Handling
- Missing culture results:
-
System may prompt for de-escalation based on clinical improvement even without culture; pharmacist documents uncertainty.
-
LIS integration failure:
-
System flags cases where culture results are delayed; pharmacist may contact lab directly and manually enter key results.
-
High alert resistance patterns:
- If antibiogram shows high resistance to chosen agent, system may escalate alert severity and require ID physician review.
Paperless Transformation
| Previously Paper-Based | Now Digital In-System | Notes |
|---|---|---|
| Paper stewardship tracking forms and spreadsheets | antimicrobial_stewardship_reviews with structured fields |
Enables robust analytics and KPI tracking |
| Manual antibiogram compilation | Automated aggregation of LIS data with stewardship outcomes | Faster, more accurate annual reports |
| Informal phone-only recommendations | Documented recommendations and responses in system | Supports accountability and quality improvement |
| Paper-based utilisation reports | Dashboards and exportable reports | Easier sharing with MOH/DOH/DHA if requested |
Remaining Paper Touchpoints: None — stewardship workflow is fully digital, though printed summary reports may be produced for committee meetings.
Inputs and Outputs
Inputs
| Source | Data Element | Format / Standard |
|---|---|---|
| PIS (pharmacy orders) | Antimicrobial orders: drug (RxNorm), dose, route, frequency, start date, duration | pharmacy_orders filtered by antimicrobial RxNorm codes |
| LIS | Culture and sensitivity results: organism, MIC values, susceptibility interpretation | Internal API / FHIR DiagnosticReport, Observation (LOINC-coded) |
| EHR | Patient clinical data: diagnosis (ICD-10-AM), vitals, inflammatory markers (CRP, procalcitonin), WBC | FHIR Condition, Observation |
| Stewardship rules engine | Restricted drug list, duration thresholds, de-escalation rules, antibiogram data | antimicrobial_stewardship_rules, facility_antibiogram |
| Pharmacy (formulary) | Antibiotic cost, formulary tier, IV-to-PO conversion eligibility | formulary_items |
Outputs
| Destination | Data Element | Format / Standard |
|---|---|---|
| Prescriber | Stewardship recommendation: de-escalate, switch IV→PO, stop, adjust dose, change agent | In-app alert + antimicrobial_stewardship_reviews |
| CPOE | Modified medication order (if prescriber accepts recommendation) | FHIR MedicationRequest update / HL7 RDE^O11 (XO) |
| Stewardship dashboard | Review status, recommendation type, prescriber response, outcome | antimicrobial_stewardship_reviews aggregated |
| Infection control | Resistance patterns, antibiogram updates, outbreak alerts | Internal report / dashboard feed |
| MOH / DOH / DHA | Antimicrobial utilization reports (if requested by regulatory bodies) | Export (CSV/PDF) per regulatory template |
Post-conditions
antimicrobial_stewardship_reviewsrecord completed with recommendation and prescriber response- If recommendation accepted: medication order updated in
pharmacy_orders(de-escalated, switched, or stopped) - Stewardship KPIs updated (DOT, DDD, de-escalation rate, IV-to-PO conversion rate)
- Facility antibiogram data enriched with new culture/sensitivity results
- 72-hour review compliance documented for accreditation and quality reporting
SLA and Timing
| Step | Target Time | Escalation | Measurement Source |
|---|---|---|---|
| Restricted antibiotic pre-authorization | < 30 min from order placement | Alert ID physician if no response in 30 min; escalate to department head at 60 min | antimicrobial_stewardship_reviews.created_datetime to .authorization_datetime |
| 72-hour therapy review | At 72 hours from antimicrobial start | Auto-alert stewardship pharmacist at 66 hours; overdue alert at 72 hours | pharmacy_orders.start_datetime + 72h vs. antimicrobial_stewardship_reviews.review_datetime |
| Culture result review | < 4 hours after culture finalized | Alert stewardship pharmacist when culture result available | LIS result effective_datetime to stewardship review created_datetime |
| De-escalation recommendation | < 8 hours after susceptibility available | Alert ID physician if not reviewed by 12 hours | Culture sensitivity reported_datetime to recommendation created_datetime |
| Prescriber response to recommendation | < 24 hours | Reminder at 12 hours; escalate to department head at 24 hours | antimicrobial_stewardship_reviews.recommendation_datetime to .prescriber_response_datetime |
| IV-to-PO conversion assessment | Daily for all IV antimicrobials > 48 hours | Auto-flag on stewardship worklist | pharmacy_orders.start_datetime + 48h; daily worklist generation |