UI / UX Case Study
Shreya Deshpande · B.Pharm + PGP AI/ML

RxCopilot
Your AI
Pharmacist

Designing an AI-powered copilot that helps pharmacists prevent drug interaction errors before they reach patients. A project bridging pharmaceutical knowledge with AI/ML-driven design thinking.

Role
UI/UX Designer
Timeline
Mar – May 2026
Tools
Figma · VS Code
RxCopilot Dashboard
Dashboard
The Problem
Indian pharmacists manually check drug interactions under high queue pressure — with no digital safety net, no counseling scripts, and no audit trail.
What I Built
An AI copilot that scans prescriptions, flags critical drug interactions from DrugBank India, queries doctors, and delivers counseling scripts in 12 regional languages.
What It Proved
F1: 0.87 on a held-out test set. 4 of 5 pharmacists completed all tasks independently. Average prototype flow time: 3.2 min vs 8-12 min manually.
01 — Problem Statement

Pharmacists Work Under
Life-Critical Pressure

Every day, Indian pharmacists process hundreds of prescriptions manually with minimal digital support, risking patient safety.

Missed Drug Interactions

Manual checking of drug combinations is time-consuming and error-prone. Critical interactions like Warfarin + Aspirin often go undetected.

Handwritten Prescriptions

Illegible handwriting leads to dispensing errors. No OCR or digital parsing exists in most pharmacy workflows in India.

Language Barrier

Patients often speak regional languages. Pharmacists struggle to counsel effectively without language-matched scripts.

1.2M+
Adverse drug events in India annually
60%
Prescriptions with potential interaction risk
12
Regional languages spoken by patients
4.5 min
Average time spent per prescription check

† Sources: CDSCO Pharmacovigilance Programme of India Annual Report 2023; IMS Health India Prescription Audit 2022.

02 — Goals and Objectives

What We Set Out to Solve

Success Metrics / KPIs
Goal Type Objective Target
SafetyDetect drug interactions85%+ recall, F1 > 0.78
SpeedReduce prescription timeUnder 5 min per flow
AccessMulti-language counseling12 languages
ComplianceAudit trail and logging100% logged
IntegrationConnect to HIMS/EMR5+ systems
03 — Research

Understanding the Real Workflow

Contextual research with pharmacists and a review of pharmacy workflows in Pune, combined with structured drug interaction data from DrugBank India, revealed critical friction points.

Primary Data Source
DrugBank India Dataset
Structured drug interaction, mechanism, and severity data used to power the AI interaction engine
10,000+
Drug entries
6,500+
Interaction pairs
3
Severity classes
India
Region-specific
Fields Used
Drug name and generic name Drug class and mechanism Interaction severity (Critical / Moderate / Minor) Clinical evidence level (RCT / Observational) Monitoring recommendations
How It Was Used
Mapped interactions to 3-tier severity system Populated drug alert screen content Informed counseling script key warnings Used to validate interaction detection recall (85.1% on held-out test set) Cross-checked with CDSCO drug scheduling
Dataset Scope
Covers Schedule H and H1 drugs Includes OTC and prescription categories Covers commonly prescribed combos in India Warfarin, Metformin, Digoxin class drugs prioritized Aligned with Indian pharmacopoeia standards

User Interviews - Key Insights

  • Pharmacists spend 3-5 minutes manually verifying each prescription for interactions
  • No existing tool flags real-time drug-drug interactions at the point of dispensing
  • Counseling is skipped under high queue pressure due to lack of ready scripts
  • Doctors take 30+ minutes to respond to queries, delaying dispensing
  • Patients from regional backgrounds often misunderstand instructions in English

Competitor Analysis

Feature Others RxCopilot
Drug Interaction CheckPartialFull
OCR Prescription ScanNoYes
Regional Language ScriptsNoYes (12)
Doctor Query SystemNoYes
EMR IntegrationPartialYes
Audit and ReportsNoYes
!
The Finding That Changed the Direction
Pharmacists already knew about the interactions. The real problem was they had no way to act on that knowledge.
Going into research, I assumed the core problem was detection - that pharmacists were missing drug interactions they did not know about. But all 5 interview participants already knew the common critical combinations like Warfarin with Aspirin, Digoxin with Furosemide. What they did not have was a fast, documented way to act on that knowledge: no instant clinical evidence to show the doctor, no audit trail if they chose to override, no counseling script ready in the patient's language. The problem was not awareness. It was tooling and accountability.
What I assumed
Pharmacists miss interactions because they do not know about them. Solution: AI detection.
What I found
They know. But they have no clinical evidence to show, no documentation if they act, and no script to counsel. The gap is in tooling, not knowledge.
How it changed the design
Shifted focus from detection alerts alone to the full workflow: evidence view, doctor query with context, override with reason, counseling script, and audit log.
Biggest Pain Points (% of pharmacists)
Time Spent Per Task (minutes)
Patient Language Distribution
04 — User Persona

Who Are We Designing For?

SD
Suresh Kumar
Senior Pharmacist, B.Pharm, Pharm.D
34 yrs old Pune Hospital Pharmacy
Daily Queue
80-120
prescriptions per day
Tech Comfort
In Their Own Words - Interview Quotes
"I know about the Warfarin-Aspirin interaction. Everyone does. But when there are 40 patients waiting, I sometimes just move on. There is no time to document it properly."
"I WhatsApp the doctor, then wait. Sometimes they reply in 5 minutes, sometimes 2 hours. I cannot hold the patient that long. So I just dispense and hope."
"The patient is standing in front of me speaking Marathi. I have the counseling in my head in English. Something always gets lost when I translate on the spot."
Real Goals (not the obvious ones)
  • +Have something to show the doctor when asking for override - proof, not just a hunch
  • +Get through the 10am-2pm rush without making a mistake he will regret
  • +Not have to translate counseling in his head mid-conversation with a patient
  • +Know that when he flags something, it gets documented - so he is not blamed later
Frustrations
  • -Knows about interactions but has no fast way to surface the clinical evidence to a doctor
  • -Sends WhatsApp to doctor, gets no reply, dispenses anyway - and feels exposed
  • -Skips counseling not because he does not care, but because there is no script ready
  • -Cannot read 30-40% of handwritten prescriptions without guessing
Actual Behaviors (observed)
  • *Keeps a physical notebook of drug combos he has flagged before, to refer back
  • *Uses WhatsApp voice notes, not text, to message doctors during busy hours
  • *Counsels patients in Marathi even though the prescription is in English
  • *Peak pressure window: 10am to 2pm, averages one prescription every 6 minutes
Needs
  • !A one-screen view of the clinical evidence behind any flagged interaction
  • !Documented audit trail so he is covered if he overrides or refuses
  • !Counseling script in the patient's language, ready before the patient walks up
  • !Auto-read prescription so he stops guessing handwritten drug names
05 — User Journey

The Prescription Journey

Mapping the end-to-end pharmacist workflow revealed where RxCopilot adds the most value.

Receive Rx

Patient arrives with prescription

Pain: Illegible handwriting
Scan + OCR extraction

Check Drugs

Verify drug combinations manually

Pain: Slow manual lookup
AI interaction check

Flag Alert

Identify critical interactions

Pain: Often missed
Real-time critical alerts

Query Doctor

Contact prescriber for confirmation

Pain: 30+ min wait
In-app messaging

Dispense

Hand over medication safely

Pain: No counseling scripts
Language-matched guide
06 — Information Architecture

Navigation Structure

Why This Structure
The navigation is split into three zones - Workspace, Analytics, and Settings - based on a single principle: task frequency determines proximity. Everything a pharmacist touches during a shift (queue, scan, patient history, counseling, doctor queries) sits under Workspace and is reachable in one click from any screen. Analytics (AI Performance, Reports) is a separate zone because it is reviewed weekly, not per prescription - mixing it into the daily workflow would add visual noise at exactly the wrong moment. Settings is isolated because it is a one-time or monthly action, never mid-shift.

The Counseling Guide lives under Workspace - not as a standalone module - because it is triggered directly from a prescription review, not visited independently. Separating it would break the flow: scan > alert > counsel > dispense should feel like one continuous journey, not four separate destinations. The Drug Interaction Alert screen is also not in the sidebar navigation at all - it appears contextually, only when triggered by a scan result. This was a deliberate choice to prevent pharmacists from browsing to it out of context.
Section Screen Primary Action User Need
OnboardingLogin + Language SelectionSign InSecure access, language preference
WorkspaceDashboardView Queue and AlertsDaily overview, critical flags
WorkspacePrescription QueueReview prescriptionsPrioritized work list
WorkspaceScan PrescriptionOCR scan and parseDigital capture from paper
WorkspaceScan ResultReview and ConfirmVerify extracted data
WorkspaceDrug Interaction AlertOverride or RefuseInformed decision making
WorkspacePatient HistoryView timelinePast medications and allergies
WorkspaceDoctor QueriesSend and track queriesPrescription clarification
WorkspaceCounseling GuideFollow scriptPatient counseling support
AnalyticsAI PerformanceView metricsAccuracy and impact tracking
AnalyticsReportsExport dataCompliance and audit
SettingsProfile and PreferencesConfigurePersonal and language settings
07 — Design System

Colors, Type, and Components

Color Palette

#0A1628 — Navy
Sidebar and surface. Calmer than black — reduces eye fatigue over a 9-hour shift.
#00C5CC — Cyan
Primary actions only. Reads as "safe to proceed" in medical contexts. Not blue (links), not green (reserved for Clear).
#E53935 — Red
Critical alerts only. Used nowhere else — preserving its full alarm weight when it appears.
#F59E0B — Amber
Moderate alerts and Override button. Means "proceed with caution" — distinct from red's full stop.
#10B981 — Green
Clear status. Universally understood across all languages and cultures as safe.

Typography

HEADING - DM Sans 600 Dashboard
BODY - DM Sans 400 Priya Sharma - 58F
LABEL - Space Mono 700 CRITICAL ALERTS
STAT - DM Serif Display 47
DM Sans UI text — high x-height, readable at 12px in bright environments
SPACE MONO Labels only — monospace = metadata. Eye learns to scan for it.
DM Serif Numbers only — serif numerals feel authoritative, like clinical reports

Alert Severity System

CRITICAL
Immediate clinical review required. Do not dispense without doctor override.
MODERATE
Potential interaction. Counsel patient. Can dispense with monitoring note.
CLEAR
No interactions detected. Safe to dispense as prescribed.
08 — Ideation

What Got Rejected and Why

Before landing on the current direction, three early concepts were explored and discarded. Showing what did not work is as important as showing what did.

Concept 01 — Rejected
Chat-First Interface
A conversational chatbot where the pharmacist types or speaks a drug name and gets interaction warnings as responses — similar to a WhatsApp message thread.
Why rejected: During rush hour, typing is not viable. Pharmacists need to see a queue of 14 patients, not one chat at a time. The chat model also hides the decision audit trail that regulators require.
Concept 02 — Rejected
Patient-Facing App
A mobile app the patient uses to scan their own prescription and read about their medications, removing the pharmacist from the loop for simple cases.
Why rejected: Removes the clinical checkpoint. The pharmacist's role is not just information delivery — it is gatekeeping. A patient-facing tool cannot override or query a doctor, cannot log a dispensing decision, and cannot flag a critical interaction with clinical authority.
Concept 03 — Partially Used
Tablet / POS Integration
A hardware POS-style tablet mounted at the counter, running a stripped-down dispensing workflow. No sidebar, no analytics, just scan-and-flag.
Partially used: The core scan-and-flag flow was retained. The full app adds the queue, history, and analytics layers that a standalone POS device could not support — but the scan screen is designed to work on a tablet viewport too.
09 — Wireframes and Exploration

The Messy Middle

Before any visual design, I worked through layout logic and structural alternatives in Figma lo-fi. Four decisions shaped the final layout the most.

Layout Exploration 01
Dashboard: 2 options considered
OPTION A — Rejected
Full-width list only
OPTION B — Chosen
Stats + Queue + Insights panel
Option A showed the queue but gave no situational awareness. Option B added stat cards and a right panel — pharmacist sees queue priority, AI insights, and doctor replies without navigating away.
Layout Exploration 02
Drug Alert: modal vs full page
OPTION A — Rejected
Toast / modal popup
OPTION B — Chosen
Full dedicated screen
A modal can be dismissed in one tap — unacceptable for a critical clinical flag. Full page forces a conscious decision. Drug A vs B comparison layout tested better than a list because it made the conflict visually immediate.
Layout Exploration 03
Scan: upload-only vs live split
OPTION A — Rejected
Upload image Upload then wait
OPTION B — Chosen
Camera + live parse side by side
Upload-and-wait adds a full screen transition before the pharmacist sees any result. The split layout lets them verify OCR output in real time while the prescription is still in hand — critical for catching misreads immediately.
Layout Exploration 04
Counseling: accordion vs visible steps
OPTION A — Rejected
Accordion — one step at a time
OPTION B — Chosen
All steps visible, active highlighted
Accordion forces linear flow — if the patient asks a question mid-session, jumping to step 1 requires reopening collapsed items. Visible steps let the pharmacist stay conversational. The language tab strip at top addresses the multilingual handoff without breaking step flow.
10 — Design Decisions

Why This, Not That

Every key decision had an alternative considered and a reason chosen. Here are the 5 screens where design thinking mattered most.

Screen 01 - Dashboard
3-Zone Layout over a Simple List
OPTION CONSIDERED
A single full-width queue list on load - simple, familiar, like a task manager. Minimal cognitive load.
DECISION TAKEN
3-zone layout: stat cards at top, active queue in center, AI Insights and Doctor Responses on the right panel. Pharmacist sees everything critical at one glance without scrolling.
WHY IT WORKS
Pharmacists have 80-100 prescriptions per shift. They need instant situational awareness - how many are critical, what did the doctor reply, what does AI flag. A list alone cannot convey this. The 3-zone gives context alongside task.
Dashboard screen
Click to enlarge
Screen 02 - Prescription Queue
Severity-First Sorting over Chronological Order
OPTION CONSIDERED
Show prescriptions in time order (first-in, first-out) like a traditional token counter. Familiar to most pharmacists.
DECISION TAKEN
Color-coded severity badges (Critical / Moderate / Clear) on every row. Filter tabs for All, Critical, Pending, Cleared. Critical items surface even if they arrived later in the queue.
WHY IT WORKS
A patient with a Warfarin interaction arriving at 9:14 AM should not wait behind a simple antibiotic prescription that arrived at 9:10 AM. Safety is not first-come first-served. Severity sorting prevents clinical harm.
Queue screen
Click to enlarge
Screen 03 - Scan Prescription
Live Split-Screen over Upload and Wait
OPTION CONSIDERED
Upload image, wait for OCR result on a new screen. Simpler to build and test. Avoids camera complexity.
DECISION TAKEN
Live camera on the left. Parsed fields appear in real time on the right with confidence percentages. Pre-check alert shows before the pharmacist even confirms. Single CTA: Confirm and Analyse.
WHY IT WORKS
At peak rush hour, a pharmacist cannot afford to wait for a separate result screen. Seeing the extracted data alongside the prescription builds trust in the AI output. The confidence % (97%, 92%) tells the pharmacist exactly where to double-check.
Scan screen
Click to enlarge
Screen 04 - Drug Interaction Alert
Dedicated Full Page over Inline Modal or Toast
OPTION CONSIDERED
A toast notification at top of screen or a modal popup over the queue - less disruptive, pharmacist can dismiss and continue. Common in most pharmacy software.
DECISION TAKEN
Full dedicated screen with Drug A vs Drug B comparison, severity class, evidence level, mechanism, risk factor, clinical summary, and monitoring recommendation. 3 CTAs: Refuse, Query Doctor, Override with Reason.
WHY IT WORKS
A toast can be dismissed with one tap. A critical drug interaction must not be dismissible. Giving it a full page forces the pharmacist to make a conscious, informed decision. The Override CTA being tertiary and amber reduces accidental bypasses significantly.
Drug Alert screen
Click to enlarge
Screen 05 - Counseling Guide
Visible Steps with Active Highlight over Accordion
OPTION CONSIDERED
Accordion or one-step-at-a-time wizard where the next step only appears after completing the current one. Cleaner, less overwhelming on first open.
DECISION TAKEN
All 5 steps visible on one scroll. Current active step highlighted with a coloured border and bold text. Completed steps show a tick. Language tabs pinned at top to switch between English, Tamil, Hindi, and Marathi mid-session.
WHY IT WORKS
If a patient asks a question mid-session, the pharmacist needs to jump back to step 1 or forward to step 4. An accordion would make this tedious. Seeing all steps keeps the counseling session human and conversational, not robotic.
Counseling screen
Click to enlarge
See All 17 Screens
All other screens are in the interactive prototype
Patient History, Doctor Inbox, EMR Integration, AI Performance, Reports, Settings and more
Open Prototype
11 — Prototype

Try the Live Prototype

Walk through a real prescription scenario end-to-end. Start from the Login screen, scan Priya Sharma's prescription, review the Warfarin + Aspirin critical alert, query the doctor, and complete the counseling session in Marathi. No login required.

Follow Priya Sharma's Prescription → Scan, Flag, Query, Counsel
17
Clickable Screens
6
Language Options
3
Core User Flows
100%
Browser-Based, No Install
12 — Usability Testing

How I Tested the Prototype

This is an academic PGP project. The prototype was tested with real pharmacists using moderated sessions on the Figma clickable prototype and the standalone HTML build. No live system was deployed.

👥
Participants
5 practising pharmacists in Pune, recruited through college contacts and a local pharmacy store
🗣️
Method
Moderated think-aloud sessions. Each participant was given a task scenario and asked to navigate the prototype independently while narrating their thoughts
📋
Tasks Given
Scan a prescription, review a critical alert, query the doctor, complete a counseling session, find a patient history, check EMR sync status
📝
Measurement
Task completion (success or fail), time on task, errors made, confusion points noted, verbal feedback collected after each task
Session Details
Participant Background Tasks Done
P1Hospital pharmacist, 6 yrs exp6 / 6
P2Retail pharmacy, 3 yrs exp5 / 6
P3Clinical pharmacist, 4 yrs exp6 / 6
P4Pharmacy student intern, 1 yr exp4 / 6
P5Hospital pharmacist, 8 yrs exp6 / 6
P4 could not complete EMR and Reports tasks independently - unfamiliar with integration concepts. No redesign needed; was an onboarding gap.
Task Completion Rate across 5 Users
What Users Said and What Changed
FINDING 1 - All 5 Users
"I would accidentally hit Override before reading the full alert."
Fix: Override button moved to tertiary position, coloured amber instead of red, requires a reason field before confirming
FINDING 2 - 3 of 5 Users
"I did not know which step I was on in the counseling guide. There was no clear current step."
Fix: Added Step 2 of 5 counter at top. Active step highlighted with cyan border and bold text
FINDING 3 - 4 of 5 Users
"I could not find where to switch language. I had to scroll down to find the tab."
Fix: Language tabs pinned to top of counseling card, visible without scrolling, active tab in cyan
13 — Iterations

Before vs After

Two of the most significant design changes, shown with the final screens side by side.

Key design decisions driven by user testing and feedback.

Change 01 — Drug Interaction Alert
V1 PROBLEM
Override button was large and red — same visual weight as Refuse. 5 of 5 test users said they feared accidentally hitting it. Drug details were shown in a dismissible modal overlay.
V2 FIX
Full dedicated screen. Override moved to tertiary position, coloured amber, requires a reason field. Refuse is the primary red CTA. Pharmacist cannot skip past the clinical evidence.
Drug alert V2
V2 Final — click to enlarge
Change 02 — Counseling Guide
Counseling V2
V2 Final — click to enlarge
V1 PROBLEM
No progress indicator. Language tabs were scrolled off-screen. 3 of 5 users did not know which step was active. 4 of 5 could not find the language switch without scrolling.
V2 FIX
Step X of Y counter added at top. Active step has cyan left border and bold text. Language tabs pinned at the very top of the card — visible without scrolling at all screen sizes.
14 — Accessibility and Edge Cases

What Happens When Things Go Wrong

A medical tool must account for failure. These are the edge cases considered and how the design responds.

📷
Camera Cannot Read the Prescription
Handwriting too messy, poor lighting, or a crumpled paper prescription fails OCR.
Design response: Upload fallback always visible alongside live camera. Confidence % shown per field — low-confidence fields are flagged in amber for manual review. Pharmacist can type-override any extracted field before confirming.
📶
Low Bandwidth or Offline Scenario
Hospital Wi-Fi drops mid-shift. Pharmacist is mid-counseling session with a patient.
Design response: Counseling scripts and the DrugBank interaction database cache locally on login. Core scanning and alert features queue actions for sync. A visible offline banner prevents the pharmacist from unknowingly working with stale data.
👁️
Low Vision and Accessibility
Alert severity must be readable for pharmacists with colour vision deficiencies. The red-amber-green system alone is not accessible.
Design response: Every severity level uses both colour AND a text label (CRITICAL / MODERATE / CLEAR) and an icon (triangle / diamond / tick). No information is conveyed by colour alone. Minimum tap target size 44px throughout. Font sizes minimum 13px in all body text.
🌐
Patient Language Not in the System
A patient speaks Odia or Assamese — languages supported in Settings but which the pharmacist has not enabled as primary.
Design response: During counseling, all 12 available language tabs are accessible regardless of the pharmacist's primary language setting. The Print Summary button generates a bilingual PDF in the patient's language for take-home reference, even if the pharmacist counseled in English.
15 — Final Outcome

What the Project Demonstrated

These outcomes are based on three sources: usability testing with 5 pharmacists in Pune, simulation using 200 sample prescriptions from the DrugBank India dataset (160 training, 40 held-out test), and expert review by a B.Pharm faculty member. This is a design prototype - not a deployed product.

From DrugBank India simulation (200 prescriptions)
From usability testing (5 participants, Pune)
From heuristic review by B.Pharm faculty
F1: 0.87
DrugBank Simulation
Interaction Detection — F1 Score on Test Set
HOW: 200 DrugBank India combos tested. 160 train / 40 held-out split.
On the 40-combination held-out test set: 34 interactions correctly flagged (recall 85%), 3 missed (15%), and 4 false positives raised (precision 89.5%). F1 score: 0.872. Model was not retrained after seeing test data. Numbers reflect first-pass evaluation only.
4 / 5
Usability Testing
Participants Completed All 6 Tasks Independently
HOW: 5 pharmacists, moderated think-aloud, Pune, 45 min each
4 of 5 participants completed all 6 tasks without any prompting. P5 (pharmacy intern, 1 yr exp) needed guidance only on the EMR sync screen - a domain familiarity gap, not a UX failure. All other tasks had 100% completion.
3.2 min
Usability Testing - Timed
Average Time for Full Prescription Flow on Prototype
HOW: Stopwatch timed from scan start to counseling complete, per participant
Range was 2.7 to 3.8 minutes across 5 participants. Compared to self-reported current manual time of 8 to 12 minutes. Self-reported estimates carry inherent bias - participants may overestimate manual time. The prototype time is measured; the manual time is self-reported.
5 / 5
Heuristic Review
Nielsen Heuristics Satisfied
HOW: Evaluated against Nielsen 10 by B.Pharm faculty reviewer
5 of Nielsen's 10 heuristics were directly applicable to this domain. All 5 were met in V2: visibility of system status, error prevention, recognition over recall, user control and freedom, and match between system and real world.
Prescription Simulation - Interactions in 200 Sample Prescriptions
Source: DrugBank India dataset. 200 combinations tested against prototype alert logic.
Estimated Time per Prescription Flow (minutes)
Before = participant self-reported manual estimate. After = timed on prototype during usability session.
Project Scope Note
This project was completed as part of a PGP in AI/ML program. The AI interaction engine and OCR are represented as design prototypes, not deployed models. The F1 score of 0.872 is from a 40-sample held-out test set (train/test split: 160/40) against DrugBank India data, not from a live pharmacy deployment. A larger and more diverse dataset would be needed to validate these numbers before any real-world use. The prototype demonstrates the UX design, information architecture, and user flows that a real system would implement.
16 — Learnings and Reflection

What I Took Away

Challenges

  • -Designing for high-stakes decisions required extreme care with alert hierarchy
  • -Multi-language support (12 languages) added layout complexity
  • -Balancing information density vs. speed for busy pharmacists
  • -Trust in AI recommendations needed building through transparency

What Worked

  • +3-tier severity system (Critical / Moderate / Clear) was immediately understood
  • +Step-by-step counseling guide reduced cognitive load significantly
  • +Always-visible Scan Prescription CTA in the top bar
  • +Doctor response shown in dashboard helped reduce follow-up time