Case Study

Designing a multi-role ophthalmology platform - one interface, four user types

Optiwell connects patients, pharmacists, wholesalers, and retailers in a single platform built around eye care. The challenge: make four different roles feel like one coherent product.

ClientOptiwell
PlatformMobile App (iOS & Android)
RoleUI Designer
Screens~15 screens
ToolFigma
Rating★★★★★ 5.0 Upwork
Optiwell ophthalmology EMR app - multi-screen showcase showing product catalogue, home screen, and product detail views
01 - Context

What is Optiwell?

Optiwell is a mobile platform purpose-built for the ophthalmology supply chain. It has two core divisions working in parallel: a patient-facing side where users can upload prescriptions from their eye doctor and order medicines directly through linked pharmacists, and a B2B side that connects pharmacies with wholesalers and retailers for medical product sourcing.

The complexity of the product wasn't in any single feature - it was in the fact that four completely different user types (patients, pharmacists, wholesalers, and retailers) all needed to use the same app without confusion or role bleed.

02 - The Challenge

One app, four different user realities

The UX research was handled by the client's team. My role was to translate that research into a UI that felt coherent and trustworthy - especially important in a medical context where confusion can cost users trust immediately.

The underlying design problem wasn't making a good interface for any one of these users. It was making four completely different experiences feel like they belong to the same product. A pharmacist looking at a product catalogue cannot encounter a prescription upload flow, and a patient cannot see wholesale pricing. Confusion in a medical app doesn't just frustrate - it breaks trust permanently.

🔀

Multi-role interface

Four distinct user types - patients, pharmacists, wholesalers, retailers - each with different needs, permissions, and workflows within the same application.

🏗️

Two parallel divisions

The patient-to-pharmacist flow and the wholesale-retail B2B flow had to coexist without creating confusion between the two very different use cases.

🏥

Medical context demands clarity

Eye care products and prescriptions require precise, unambiguous UI. Errors or confusion in a medical app erodes trust immediately and permanently.

📱

Mobile-first usability

All four user types needed to navigate complex product catalogues, prescription uploads, and order management on small mobile screens.

03 - Approach

Role-first entry, shared design language

The key decision was a role-selection screen at entry - patients and B2B users are routed into entirely separate flows from the moment they open the app, eliminating the risk of wrong-role confusion. Within each flow, the UI language stays consistent so the product feels unified rather than fragmented.

1

Role-based entry screen

Designed a clear role-selection screen (Wholesaler / Retailer / Patient) that routes users into their specific flow immediately, preventing cross-role confusion from the first tap.

2

Consistent visual language across roles

Despite different flows, all screens share the same component library - cards, navigation, typography, and colour - so the product feels like one coherent app regardless of which role you're using.

3

Medical-grade clarity in catalogue UI

Product listings show clear categorisation (Ostomy, Wound Care, etc.), ratings, pricing behind login for B2B, and size selectors - designed to reduce ordering errors.

4

Prescription upload flow

Designed a simple step-by-step prescription upload experience for patients - removing friction from what is typically an intimidating medical process.

The most important decision across all four roles was making role selection irreversible until a deliberate switch. Once a pharmacist logs in as a pharmacist, every menu, label, and action speaks to their job - not to a patient's. This reduces cognitive load significantly because users never encounter screens or options that don't apply to them.

The shared component library made this scalable. Rather than designing four separate apps, we designed four role contexts sitting on a single visual and functional foundation. Every card, button, and form followed the same spacing and interaction rules - making the experience feel like one coherent product even when the content and permissions were completely different.

04 - Key Design Decisions

Why it was built this way

The deliverables tell you what was built. These are the decisions that shaped why it was built that way.

Decision 1: Role selection is the first UX decision, not an afterthought. Most multi-user apps detect role through account settings or a dropdown buried in the UI. For Optiwell, role selection is the first screen - before any other interface is shown. In a medical context, showing a patient a wholesaler's pricing catalogue, even briefly, could create real confusion about what the app is for and whether they are in the right place.

Decision 2: One design system, four role contexts. The alternative would have been four separate visual experiences - different colours, different components, different spacing. That makes each role feel tailored but makes the product feel like four different apps. All roles in Optiwell share the same cards, typography, and interaction patterns. The differentiation is in content and permissions, not visual identity. This is what makes scaling to additional roles feasible without rebuilding the interface.

Decision 3: Medical catalogue UI prioritises precision over discovery. Product listings in a medical catalogue require a different hierarchy than a consumer e-commerce app. The first thing a pharmacist needs to see is category and product name - not recommendations or reviews. Every listing was designed to surface the information a professional needs to make a sourcing decision quickly, without scrolling or hunting.

05 - Screens

Selected screens

Key screens from the Figma delivery - splash screen, welcome/role selection, and the product catalogue interface.

Optiwell splash screen - clean launch screen with logo and tagline

Splash screen

Optiwell welcome screen - role selection between wholesaler and retailer with clear CTA buttons

Role selection - welcome screen

06 - Outcomes

What was delivered

15
Screens designed end-to-end
4
User roles handled in one app
5.0★
Client rating on Upwork

"Quick service, trustworthy, and the product was better than expected. Highly satisfied with the outcome."

- Client, Optiwell · Upwork · ★★★★★ 5.0
07 - Deliverables

What was handed off

15 High-Fidelity Screens Role-Based UI Flows Component Library Mobile-First Design Product Catalogue UI Prescription Upload Flow Dev-Ready Figma Handoff

Frequently Asked Questions

How do you design a mobile app for multiple user roles?

The key is role-based entry routing - users select their role at login and are taken into a flow built entirely around their job. All roles share the same design system and component library for visual consistency, but navigation, content, and available actions differ per role. This prevents cognitive overload from showing users options that don't apply to them.

What makes a good medical app UI design?

Medical app UI must prioritise clarity above all else. Good medical UI uses unambiguous labels, clear categorisation for products and prescriptions, visual hierarchy that surfaces the most critical information first, and simple step-by-step flows for complex tasks like uploading a prescription or placing a medical order. Errors or confusion in a healthcare context erode trust immediately.

What does a mobile UI design project typically include?

A mobile UI design engagement typically includes high-fidelity screen designs for all key user flows, a component library for developer handoff, role-based navigation architecture, and a dev-ready Figma file. For Optiwell this included 15 screens covering role selection, product catalogue, prescription upload, and order management across four user types.

Working on something similar?

I design multi-role SaaS and app interfaces that feel coherent and trustworthy regardless of user type.

View all work Hire me on Upwork ↗