Rina Okafor
Direct support professional · evening shift
“Show me the next urgent dose. I'm standing next to the person.”
- Uses
- A shared tablet, sometimes her own phone
- Gets stuck when
- Interrupted mid-entry, or unsure which outcome fits a refusal
A medication record that tells a busy shift what needs attention, what is planned, and what happened.


DisclosureIndependent concept project using fictional data. No patient information, confidential employer materials, or proprietary assets are included. Proposed improvements are design hypotheses unless marked as tested.
Evidence labels: ◇ Conceptdesigned, not tested ✓ Implementedbuilt and passing automated checks ○ Plannedscripted, needs people
A Medication Administration Record (MAR) is the legal record that each dose was given, refused, held, or missed. Legacy tools in home and community-based care often answer three different questions on one dense screen.
What happened feeds the next shift's worklist, so the loop closes at every handoff.
help care teams understand medication tasks and document outcomes clearly, across shifts and devices?
Proto-personas to check in interviews ○ Planned. Names and homes are fictional.
Direct support professional · evening shift
“Show me the next urgent dose. I'm standing next to the person.”
Visiting nurse · 6 homes
“Every exception across my homes, with the reason, in one place.”
Supervisor · 12 homes
“A record I can trust at audit time, on screen and on paper.”
Written as general patterns from experience with this category of tool: 21 system gaps (SG) and 11 UX and accessibility gaps (AG), each paired with a MedRx fix and mapped to WCAG 2.2 where it applies.
P0Level A failure or medication-safety riskP1Level AA failure or high risk of a documentation error
Recorded times may not match real care.
Batch only works for doses in the same window, and each dose keeps its own editable time.
Late documentation looks like on-time care.
An inline warning and a required reason. Care time and record time are stored separately.
Allergies and holds get missed at the point of giving.
Allergies, holds and order changes sit on the dose sheet as text, above “Mark given”.
Unreadable in greyscale.
A print-safe month: text codes, a legend, exception reasons and version history.
WCAG 2.2 · 1.4.1 Use of Color (A)
Every status is a word plus a distinct icon shape. Colour is the third cue.
WCAG 2.2 · 1.1.1 Non-text Content (A)
Alerts are text chips (“Allergy: penicillin”) with the icon marked decorative.
| ID | Gap | WCAG 2.2 or impact | MedRx fix |
|---|---|---|---|
| SG4 | Timestamps depend on the device clock | Wrong times | Server time is the source of truth |
| SG5 | Attribution relies on manual selection | Wrong person credited | Signed-in user recorded; witness for controlled substances |
| SG6 | Status vocabulary overlaps | Unclear next steps | Seven plain statuses, from Upcoming to Missed |
| SG7 | History mixes care time and record time | Audits can't tell when | Scheduled, Given at, Recorded at and By kept apart |
| SG8 | PRN views hide last-given time and daily max | Risk of exceeding limits | “Last given” and “2 of 4 today” before giving |
| SG15 | Vitals lack units, ranges and flags | Abnormal readings missed | Units, nurse-set ranges, text flags |
| SG16 | Vitals are disconnected from doses | Pre-dose checks skipped | Orders can require a pre-dose check |
| SG17 | Leave is set medication by medication | Missed medications | Person-level leave; doses show as LOA |
| SG18 | Corrections lack a reason and history | No trail | What and why asked; both versions kept |
| AG3 | Status pills likely fail contrast | 1.4.3 Contrast (Minimum) | Text tokens at 4.5:1 or higher |
| AG4 | Component edges hard to see | 1.4.11 Non-text Contrast | Borders and focus rings at 3:1 or higher |
| AG5 | Small, crowded targets | 2.5.8 Target Size (Minimum) | 44 × 44 px targets |
| AG6 | Dense rows won't reflow | 1.4.10 Reflow | Split view that stacks on mobile |
| AG7 | Required state and counters not announced | 3.3.2, 4.1.3 | “Required” in labels; polite live regions |
Each one is ◇ Concept until people test it.



61 screens built from Figma variables and components, in light and dark.










All ◇ Concept. Each answers a P0 or P1 gap.
When care time falls outside the dose window, a warning explains that both times are saved and a reason is required. History marks it “Recorded late”.

Only doses due in the same window can be recorded together. Each keeps its own time, and held doses are left out.

Count before and after, and a witness who confirms on their own device. No shared passwords.

Units in every header, nurse-set ranges, text flags. A systolic under 100 mmHg suggests holding the linked dose and notifies the nurse.








Exceptions across 6 homes

Monthly audit by home, fictional figures

Tokens carry the contrast, components carry the states, and the coded prototype is tested automatically. A manual screen reader pass is still ○ Planned.
#0B5F59#0A4B47#E3F1EF#F5F6F3

✓ Implemented20 of 20 fictional shifts pass the contract tests (rule-based draft).
○ PlannedAny real model must pass the same tests first.


No user testing has been done yet. Automated checks pass; every design claim stays a hypothesis until people use it.
React, built from the same tokens: worklist, dose panel, refusal validation, undo, history and the AI-drafted handoff, in web, tablet and mobile layouts.
Open the live demo (opens in a new tab) → ○ NextInterview guide, a 10-task usability script, and the NVDA and JAWS script for the next phase.
Open the kit (opens in a new tab) →The hardest problems in medication documentation are time, attribution and reason, not visual polish.
Designing web first made the split view, list beside dose, the core pattern; it held on tablet and stacked cleanly on mobile. Writing statuses as words before choosing colours removed a whole class of accessibility failures early.