AdroitOne / Product Wireframes V5
Wireframe — Not Final UI
Product Wireframe & UX Design Specification — V5

AI Pharmacy Refill Assistant

Staff application + patient AI refill experience. Every status shown on every screen carries a provenance tag — PMS, Staff, or Workflow — because this product never invents a pharmacy status.

Part 1 · Staff app (8 screens) Part 2 · Patient experience (8 screens) Design system MVP priority

Built on V1–V4 · wording = approved templates (TPL-nn) pending sign-off · click or use arrow keys to navigate

Design Principles

Seven rules every screen obeys

Truth & safety

U1 · Provenance everywhereevery status: PMS / Staff / Workflow tag
U3 · No Approve button existsapproval lives in the PMS, mirrored only
U4 · Pharmacist owns clinicalclinical content role-gated
U5 · Unknown is honestgrey badge + “team notified”, never a guess

Operations & scale

U2 · AI = communication + workflowAI contributions labeled as collection
U6 · API and manual look identicalonly the provenance tag changes
U7 · Multi-pharmacy readystore switcher + store-scoped views day one
The signature component: a status badge always paired with a small provenance chip — e.g. Waiting doctor STAFF · 10:15 — this pair appears on every screen in the product.
Part 3 · Design System

Healthcare SaaS — calm, semantic, accessible

Status badges (semantic, exclusive)

ReceivedProcessingWaiting doctor Ready pickupEscalatedUnavailable

Amber = waiting (normal, not alarming) · red rationed to “act now” only · never color-alone

Provenance chips

PMS · 10:05STAFF · 10:15WORKFLOW

Tooltip = timestamp + actor. T0 shows STAFF everywhere; T1/T2 shows PMS — same screens (U6)

Palette & type

Teal #0F6E8C primary · Inter/system sans · mono for IDs & timestamps · WCAG 2.1 AA · 44px touch targets

Timeline component

  • Request received
    10:03 · workflow
  • Pharmacy processing
    current
  • Ready for pickup

Degraded mode = normal operations

AI assistant PMS: manual mode SMS delivery

Manual mode is styled matter-of-factly — staff work the same queues, never an error screen (U6)

Part 1 · Screen 1

Staff Login

staff.pharmacyassist.app/login

Greenway Pharmacy

STAFF PORTAL

Email
j.diaz@greenwayrx.com
Password
••••••••••
Continue

Next: 6-digit code from your authenticator app

Select location

Greenway Pharmacy — Main StSelected
Greenway Pharmacy — Oakdalefuture multi-store
Per-user accounts, always. No shared logins (V3 §8). MFA via authenticator app, SMS fallback configurable.
Roles: TECHNICIAN PHARMACIST MANAGER — assigned in Settings; gates clinical queues (U4) and admin.
Shared counter workstation: fast user-switch + 15-min idle timeout (config). Store picker only for multi-store users (U7).
Audit: logins and failures logged; lockout after N failures.
Part 1 · Screen 2

Main Dashboard — “what needs attention right now?”

staff.pharmacyassist.app/dashboard
📍 Main St ▾
🔔3
JD J. Diaz TECHNICIAN
AI assistant · operating PMS: manual mode — requests queue to staff SMS delivery as of 10:42:05
12
New refill requests
▲ 2 vs. usual Fri
5
Waiting doctor responses
oldest: 2.1 days
8
Waiting pharmacist review
role-gated queue
32
Ready prescriptions
today
3
Escalations
1 OVERDUE
12
New requests
oldest: 42 min
5
Renewal waiting
oldest: 2.1 d
8
Staff review
oldest: 25 min
32
Ready today
 

Needs action first sorted by SLA urgency

⚠ RR-2081 · Controlled request routedOverdue 12m Open
RR-2094 · Submit refill in PMS — S. F••••qDue 18m Open
RN-114 · Renewal follow-up due — Dr. Chen’s officeDue today Open

Every KPI card clicks through to its filtered queue · pipeline shows oldest-item age = stuck-request detector made visible (V3 §10) · “PMS: manual mode” is calm fact, not an error (U6)

Part 1 · Screen 3

Refill Request Queue — the technician’s worklist

staff.pharmacyassist.app/requests
My itemsUnassignedOverdue Status ▾Priority ▾Channel ▾
RequestPatientMedicationTimeStatusPriorityAssignedAction
RR-2094S. F••••q 👁Lisinopril 10 mg10:03 (39m) Refill available PMS·10:05NormalJ. Diaz ViewUpdate
RR-2093M. K••••n 👁Metformin 500 mg09:51 Renewal required PMS·09:52Normal ViewAssign
RR-2092A. R••••z 👁Atorvastatin 20 mg09:47 Pharmacy processing STAFF·10:12NormalT. Okafor View
RR-2091L. H••••s 👁— routed —09:40 Escalated WORKFLOWUrgentPharmacist View
RR-2090P. N••••o 👁Amlodipine 5 mg09:22 Held — PMS offline WORKFLOWNormal ViewAssign
RR-2089D. W••••e 👁Levothyroxine 75 mcg08:58 Ready pickup STAFF·10:31NormalJ. Diaz View

PHI masked in lists — 👁 unmask is an audited event · controlled rows show “— routed —”, content pharmacist-only (U4) · “Update status” offers only transitions valid from the current state (the state machine constrains the UI) · statuses map 1:1 to V2 §7.1

Part 1 · Screen 4 — the most important screen in the product

Refill Request Detail — the human end of the Manual Adapter

staff.pharmacyassist.app/requests/RR-2094
RR-2094 Refill availablePMS · 10:05 Priority: Normal · Assigned: J. Diaz Task SLA: 18m remaining

Patient

Sami Farooqverified ✓
DOB••/••/1975 👁
Phone•••-••34
Verifiedname+DOB+OTP · 10:04

Prescription

Lisinopril 10 mg tabRx #7401882
StatusActive PMS·10:05
Refills remaining2 PMS·10:05
Last filledJun 20
Renewal requiredNo

AI conversation summary

Patient asked: “I need my refill.”

✓ Identity verifiedOTP
✓ Medication identifiedRx #7401882
✓ Confirmed by patientread-back
Open full transcript →

Workflow timeline

  • Received
    10:03 · chat
  • Identity verified
    10:04 · OTP to number on file
  • Prescription checked — 2 refills
    10:05 · PMS read
  • Waiting action: submit refill in PMS
    staff task · SLA 18m

Staff actions

✓ Confirm — submitted in PMS Request information from patient Escalate ▾ Add internal note

Confirm = StaffTaskResolved → workflow resumes → TPL-03 sent. There is no Approve button in this product (U3).

Patient was told

TPL-02 · OTPSMS · delivered 10:04
— awaiting TPL-03 on confirm — 
Part 1 · Screen 5

Patient Conversation Review — compliance-grade transcript

staff.pharmacyassist.app/requests/RR-2094/conversation

Correlation ID: c-8f2e-2094 · Channel: web chat · 10:03–10:07

Patient · 10:03:12
I need my blood pressure medicine.
AI Assistant · 10:03:14 TPL-01 v2
I can help with your refill request. First I need to verify your identity. What’s your first and last name?
10:04:12 · SYSTEM — Identity verified (name+DOB+OTP) · audit ev-55271
10:05:02 · SYSTEM — FactSet: Rx#7401882, refills=2, status=active · source=PMS
AI Assistant · 10:05:04 LLM · FactSet-validated
I found lisinopril 10 mg tablets, Rx #7401882, last filled June 20. Is that the one?
Patient · 10:05:21
Yes.
AI Assistant · 10:05:23 TPL-03 v2
Your refill request for lisinopril 10 mg has been sent to Greenway Pharmacy. Requests before 2 pm are usually ready after 5 pm…
Template evidence on every AI turn: TPL-03 v2 = locked, manager-approved wording; LLM · FactSet-validated = composed turn that passed the output validator (V3 §7.3). Enforcement made visible.
System event rows interleave the facts the AI was given — reviewers see exactly what backed each statement.
Role gating: clinical exchanges render as “— clinical content, pharmacist access only —” for technicians (U4). OTP codes auto-masked.
Actions: Escalate from here · Flag turn for QA (feeds AI-quality sampling, V3 §10). Every view = audited PHI access.
Part 1 · Screen 6

Renewal Management — day-scale work, aging first

staff.pharmacyassist.app/renewals
PatientMedicationDoctorSentWaitingStatusAction
M. K••••n 👁Metformin 500 mgDr. Chen · (555) 010-2200Jul 15 3.1 days Follow up due Waiting response STAFF·Jul 15 Follow upEscalate
R. T••••a 👁Losartan 50 mgDr. PatelJul 171.8 days Waiting response STAFF·Jul 17 Follow upNotify patient ▾
B. C••••k 👁Sertraline 50 mgDr. OseiJul 180.9 days Approved PMS·10:20 Open fulfillment →
E. S••••h 👁— pharmacist review —Dr. ChenJul 16 Denied — pharmacist PMS·09:41 In pharmacist queue
K. J••••s 👁Omeprazole 20 mgDr. PatelJul 10 Expired / timeout WORKFLOW Escalate

Follow up = logs a staff call to the prescriber (outcome: reached / left message / resend) · Notify patient offers approved templates only (TPL-13/15/16) — free-text to patients does not exist · Denied rows auto-route to pharmacist, patient gets neutral TPL-16 · “Mark sent” (T0) records staff-initiated renewals and upgrades the patient message TPL-13a → TPL-13

Part 1 · Screen 7

Exception Management — nothing falls on the floor

staff.pharmacyassist.app/exceptions
PMS unavailable since 09:58 — 4 requests queued · batched banner, not per-request spam

⚠ Controlled medication request OVERDUE 12m

SeverityHigh
ReasonEarly-fill ask · routed neutral (TPL-31)
PatientL. H••••s
AssignedPharmacist queue
Waiting1h 42m / SLA 1h 30m
ClaimResolve ▾

Clinical question PHARMACIST ONLY

SeverityHigh
Reason— content role-gated —
PatientA. R••••z
Assigned
Waiting22m / SLA same-day callback
Visible to pharmacist

Identity failed ×3

SeverityMedium
ReasonOTP mismatch — patient told TPL-05
Patient claim“S. K•••” (unverified)
AssignedT. Okafor
Waiting31m / SLA next business day
ClaimResolve ▾

Categories: identity · prescription unclear · PMS unavailable · clinical (pharmacist lane) · controlled · insurance · complaint · suspicious — Resolve outcomes feed StaffTaskResolved and resume the parent workflow · overdue = red + bell + manager digest (staff signals ≠ platform incidents, V3 §10)

Part 1 · Screen 8

Audit Timeline — append-only compliance view

staff.pharmacyassist.app/audit?corr=c-8f2e-2094
Date ▾Actor ▾Action type ▾ corr: c-8f2e-2094 ✕Export ▾
TimeActorActionSourceEvent
10:03:12AI AssistantConversation started (web chat)workflowev-55268
10:04:12SystemIdentity verified (name+DOB+OTP)workflowev-55271
10:05:02SystemPrescription lookup completedpms_apiev-55274
10:05:04AI AssistantCreated refill request RR-2094workflowev-55275
10:15:40Technician J. DiazUpdated status → Submitted in PMSstaff_entryev-55290
10:15:41SystemPatient notified — ready expectationtemplate TPL-03 v2 · SMS · deliveredev-55291
Append-only: entries cannot be edited or deleted; banner states it; exports are themselves logged.
Actor chips color-coded: AI teal · System grey · Staff blue · Patient green. Filter by correlation ID reconstructs one patient journey end-to-end.
Access: Manager + Auditor roles only; every audit query is itself audited.
Source column = the provenance architecture (V3 §5) surfaced verbatim: pms_api / staff_entry / workflow / template+version.
Part 2 · Screens 9–10

Patient Landing & Identity Verification

Greenway Pharmacy
Open until 7 pm · 📞 (555) 010-4400
How can we help you today?
I can help with refills and status. I can’t answer medication or health questions — our pharmacist handles those.
💊 Refill medication 🔍 Check prescription status 💬 Ask the pharmacy a question 👤 Talk to staff

S9 · Landing

Verify it’s you
Step 2 of 3
Enter your code
We sent a 6-digit code to the mobile number the pharmacy has on file (ending ••34).
482
Didn’t get it? Resend · Number changed?
Verify
🔒 Nothing about your prescriptions is shown until verification succeeds. “Number changed?” explains the staff update path — never a bypass.

S10 · Verification (3-step)

Boundary before input: the greeting states what the AI can’t do (TPL-01) before the patient types anything.
Zero-PHI steps 1–2: no confirmation the patient even exists (V4 §2.4); OTP goes only to the number on file, display-masked, never editable.
Failure: 3 attempts → TPL-05 screen (no reason detail): try later / call / visit with ID. Caregiver link → TPL-07 flow.
Part 2 · Screens 11–12

Prescription Selection & Refill Confirmation

Your medications
✅ Verified · Sami
Lisinopril 10 mg
Rx #7401882 · Last filled Jun 20
2 refills Active
Atorvastatin 20 mg
Rx #7400012 · Last filled Jul 2
1 refill Active
Metformin 500 mg
Rx #7399801 · Last filled Jun 28
No refills — renewal available
Refill selected (1) Refill all eligible

S11 · Selection (T1 — needs profile read)

Confirm your request
Nothing is sent until you confirm
Lisinopril 10 mg tablets
Rx #7401882
📍 Greenway Pharmacy — Main St
🛍 In-store pickup (delivery not yet available)
Confirm request Back
✅ Request submitted
Requests before 2 pm are usually ready after 5 pm. We’ll text you when it’s ready — no need to check back.
Ref: RR-2094

S12 · Confirmation (read-back = TPL-03)

Controlled meds never render in the list; asked by name → neutral routing (TPL-30).
The confirm card is the V4 read-back — submission is impossible without it (safety rule 7).
Expectation, not promise: a policy window (“usually after 5 pm”), never a clock guarantee. SMS consent prompt appears here if not on file (TCPA).
T0 fallback: without a profile read, S11 is replaced by chat capture of name/Rx number — the card UI renders only when a FactSet backs it (U5).
Part 2 · Screens 13–14

Status Tracking & Renewal Waiting

Lisinopril 10 mg
Ref RR-2094
  • Request received
    10:03 am
  • Prescription checked
    10:05 am
  • Pharmacy processing
    in progress
  • Ready for pickup
    we’ll text you
Branch states swap in honestly: Waiting on your doctor Insurance review Being ordered Status unavailable — team notified

S13 · Tracking timeline

Metformin 500 mg
Renewal in progress
No refills remain
Nothing is wrong — prescriptions come with a set number of refills, then your doctor authorizes more.
Renewal requested
The pharmacy has submitted a renewal request through the authorized process.
Sent Jul 15 · Doctor response pending
Offices usually reply within 1–3 business days. If there’s no reply by Jul 18, the pharmacy will follow up with your doctor’s office.
📞 Call my doctor’s office 💬 Ask the pharmacy a question

S14 · Renewal waiting (TPL-13 verbatim)

The timeline never lies: steps render from real events with provenance on tap; unknown = grey + “team notified” (only when the task truly exists).
Forbidden on S14: approval predictions, doctor ETAs, any “approved” not sourced from DoctorResponseReceived. Denied → neutral TPL-16 “please call the pharmacy” — reason never shown.
T0 variant: until staff confirm initiation, the card reads future-tense (TPL-13a) — “submitted” never shows before the fact (U5).
Part 2 · Screens 15–16

Medication Delay & Human Escalation

Update on your order
Amlodipine 5 mg
Your medication needs to be ordered
The pharmacy is working on your request. We will notify you when there is an update.

The pharmacy will confirm timing.
I’m out of medication now 📞 Call the pharmacy
Calm amber, not red. No window shown unless the SME-confirmed config exists. No stock counts, no “back in stock” promises, no alternative-med suggestions (clinical).

S15 · Delay (TPL-17/19)

Pharmacy team
Handoff in progress
The pharmacy team will take it from here
Why: this needs the pharmacist.
Expected response: someone will call you today before 6 pm at the number ending ••34.

We’ve shared your conversation with the team so you won’t have to repeat yourself.
Change preferred time Continue with something else
🚨 If this is a medical emergency, call 911.

S16 · Escalation (TPL-36/37)

“I’m out now” → urgent staff task + tap-to-call — same-day handling (V4 §6).
The SLA promise is mechanically true: “before 6 pm” renders from the created task’s SLA field only (truth rule 9).
Controlled reason line is identical whether or not internal flags fired — no accusation ever reaches the patient (V4 §8.3).
Chat stays usable for other business while waiting (global-interrupt return rule).
Part 5 · MVP Screen Priority

What ships in the T0 pilot

Must have — T0

S1 Login · S2 Dashboardstaff shell
S3 Queue · S4 Detailthe manual-adapter loop
S5 Conversation · S7 Exceptionsreview + safety net
S9 · S10 · S12 · S13 · S14 · S16patient loop
S6 · S8 · S15 reducedfunction over finish

Conditional (vendor-dependent)

S11 Prescription card listneeds PMS profile read (T1)
Automated “Ready” statusesfill-status read, else staff tap
Refill-allwith profile read

Future — Phase 2/3

Analytics & advanced reportingpromise-vs-actual, deflection
Multi-location consolegroups, config inheritance
Voice UI · Delivery · Patient accountsper V3 phases
Build order: S4 → S3 → S7 → S2 (staff loop, co-designed with pilot technicians, <30s per routine action) → then S9/S10/S12/S13 (patient loop) → rest. The staff loop is validated with real technicians before any patient sees the product.
Review

What we need from this walkthrough

Pharmacy owner & pharmacist

Is the staff workflow right?S3/S4/S7 match how you actually work?
Is the patient wording right?every message is a template you approve
ETA windows“usually ready after 5 pm” — what’s true for you?
What’s missing or wrong? 

Then

Technician co-design sessionS3/S4/S7 task-time target <30s
Template sign-offV4 catalog → locked
Accessibility reviewWCAG 2.1 AA
Production design + buildonly after the above

Full specification: Product_Wireframe_UX_Design_Specification.md · V1–V4 documents in the same folder · wireframe, not final UI — all wording pending compliance sign-off