Posted

11/2025

Smartflow

Three clinics across three countries. Each visit surfaced a constraint the roadmap had not planned for.

Three clinics across three countries. Each visit surfaced a constraint the roadmap had not planned for.

Clinical UX

Interaction Design

Design Strategy

Field Research

Systems Design

Moody portrait of a person's shaved head and shoulder in green side lighting.

Idexx

SmartFlow

2024 - 2025

Role

Software Interaction Designer II

Platform

iPad · iOS · Tablet-first clinical app

Scope

10k+ veterinary clinics worldwide

Team

Hybrid product, Agile, Scrum

The problem

A patient on fluids. Notes on paper.

Defining moment

The clearest signal came during a CRI (Constant Rate Infusion) procedure.

I watched a technician pull out a handwritten sheet to track dosage, intake, and timing in real time. Not because she preferred paper. Because SmartFlow, the app, required too many steps to log it.

Image 1 of 4
Image 1 of 4

Observations

Too many steps, in the wrong order

High-frequency workflows required multiple screens to log a single data point.

The app made them leave the app

SmartFlow had no calculator. Clinicians switched to Excel or paper mid-procedure.

Visual density with no hierarchy

Everything read at the same weight. Nothing scanned under pressure.

The strategy

alignment on what mattered most.

The method

RICE

Reach, Impact, Confidence, Effort. I introduced it to shift the conversation from gut feel to trade-offs.

The insight

Build the CRI calculator into the app

Remove the context switch entirely.

test

Reduce steps on high-frequency workflows

Fewer taps where it matters most.

test

Visual hierarchy that scans under pressure

Color and type as decision support.

test

The decisions

changes that earned the priority.

Every change I made had a direct line back to something I observed in the field. Here is how I worked through the biggest ones.

01

The context switch had to go

I designed the calculator into the app so clinicians never had to leave it.

I designed the calculator into the app so clinicians never had to leave it.

The CRI context switch was the highest-friction failure I found. I designed a native dosage calculator inside SmartFlow that computed rate, volume, and timing from inputs already in the patient record.

No Excel. No paper. No broken context. The calculator became the anchor of the entire redesign: the moment where SmartFlow finally kept its promise as the single source of truth for a procedure in progress.

The before state

Dosage calculations of specific medications in an Excel sheet

Lo-fi sketch up of specifications for native cri calculator

Design System 1.0

Design System 1.0

Desktop and iPad CRI calculator in Smartflow design system 1.0

desktop and ipad cri calculator in Smartflow design system 1.0

Design System 2.0

iPad CRI calculator in Smartflow design system 2.0

02

I looked at what clinicians actually do on shift

I cut the treatment sheet down to what clinicians actually needed mid-procedure.

I cut the treatment sheet down to what clinicians actually needed mid-procedure.

The old treatment sheet showed everything at once. I restructured it around the sequence of a real clinical moment: what a technician needs to see first, second, and only occasionally.

Fewer taps. Clearer scanning. Less room for error.

Dashboard before state

Patient list after redesign

Figma wires and components

Image 1 of 3
Image 1 of 3

03

The navigation reflected the database, not the clinician

I replaced the clipboard with a side menu built around how clinicians actually work.

I replaced the clipboard with a side menu built around how clinicians actually work.

Discovery Figjam board

The legacy interface used a literal clipboard as its primary navigation metaphor: dark, leather-textured, and organized around the system's data structure, not the clinical workflow. To start with I replaced the side menu holding search, sorting, and a Timeline/Workflow/Hybrid view switch.

The before/after here is the most visually dramatic shift in the entire project. From a legacy leather bound clipboard that emulated a stack of paper into a truly modern app.

Dashboard before and after redesign

Before
After

Figma wires and components

Legacy side menu behaved unusually clunky and would jarringly displace the entire mainbody sideways

New side menu behaves similar enough that it doesn't ask the user base to remodel their behaviour

New side menu behaves similar enough that it doesn't ask the user base to remodel their behaviour

04

Color was one of the most visible fixes

color as a clinical signal, not a styling choice.

color as a clinical signal, not a styling choice.

The old interface used color inconsistently. Everything read at the same urgency. I introduced a color system where different hues communicated status: stable, flagged, critical.

A clinician scanning under pressure could triage the screen without reading a word. The status tags (CAUTION, BLS, ALS) shipped consistently across the patient list, dropdowns, and calendar grid, not just in one view.

Figma wires and components

RECOVER diagram in easily skimmed color categorization

RECOVER diagram in easily skimmed color categorization

RECOVER diagram in easily skimmed color categorization

RECOVER diagram in easily skimmed color categorization

05

The architecture assumed connectivity. The clinic did not.

I designed for the gap between connectivity states.

I designed for the gap between connectivity states.

Many rooms housing sensitive medical equipment are constructed as Faraday cages to block external electromagnetic interference. Because of this veterinary clinics do not have guaranteed WiFi. Procedure rooms lose signal. Handoffs happen mid-sync. SmartFlow was built assuming an always-live connection, but the environments I visited could not promise one.

I designed a local storage layer and a set of icons that told clinicians exactly where their data was: saved to the device, syncing, or confirmed in the cloud. A clinician who can see the state of their data does not need to write it down as a backup.

Signal states

Image 1 of 4: Local stored vs cloud sync'ed
Local stored vs cloud sync'ed
Local stored vs cloud sync'ed
Image 1 of 4: Local stored vs cloud sync'ed
Local stored vs cloud sync'ed
Local stored vs cloud sync'ed

Local, syncing, and cloud-confirmed states, alongside the signal strength and power level

06

Chart was dense so were the abbreviations. Together they were difficult to parse.

I built a tooltip system into the dental chart to make it legible under real clinical conditions.

I built a tooltip system into the dental chart to make it legible under real clinical conditions.

Our UX team held a WCAG standard across every project. Dental was where I applied it against the hardest version of the problem: a dense chart of tooth positions, each labeled with a two or three letter abbreviation (FX for fracture, RCT for root canal, others), read by clinicians in a hurry and by staff still learning the shorthand.

The failure was compounded. The visual load of the chart made scanning slow. Unfamiliar abbreviations forced a cognitive pause. And on iPad, the default text size did not scale up cleanly for anyone who needed larger type.

Two other approaches were considered before landing on tooltips. Both got scrapped for reasons that turned out to sharpen the final call.

Scrapped idea

Dev proposed a faster build: one tooltip per section, not per abbreviation. I pushed back. A section-level tooltip still forces the clinician to scan for the term they are looking for. That is the exact failure the tooltips were meant to fix.

A different dev proposal was an iOS alert modal that popped up with the full term when a clinician tapped an abbreviation. I pushed back. It blocked the chart and separated the term from the abbreviation they tapped. The tooltip's whole job is to connect those two pieces of information, and the modal broke that learning-by-proximity connection.

Final abbreviation design proposal

The shipped version is a tap-and-hold tooltip on each tooth position that surfaces the full term, the diagnosis if one is entered, and any related notes. It preserved the chart at its clean scale. It let staff learning the shorthand decode any label in one gesture. And it worked with iPad's dynamic text sizing without breaking the chart.

I built it as a native iOS pattern because WalkMe, the third-party tool we used for in-app guidance elsewhere, did not support this on iOS. Every dental abbreviation was documented, so the tooltip content stayed consistent across the app.

Figma wires and components

I prototyped clean figma logic gates and applied variables on multiple sub-options within each Furcation toggles

Image 1 of 3
Image 1 of 3

I prototyped clean figma logic gates and applied variables on multiple sub-options within each Furcation toggles

07

The design system could not keep up with the products.

I fed SmartFlow’s needs back into SPOT 2.0 so the system could grow with real work.

I fed SmartFlow’s needs back into SPOT 2.0 so the system could grow with real work.

SPOT 2.0 was the shared design system across IDEXX, but it could not grow fast enough on its own. The product designers fed it. For SmartFlow, that meant applying SPOT 2.0 where it already fit (CRI calculator form patterns, side menu list and link styles, dropdown and toggle components) and surfacing the gaps where it did not.

I was doing this across three IDEXX products at the same time. SmartFlow, Enterprise, and Telemedicine all fed the same system. SPOT 2.0 grew because the product work kept pushing it forward.

Design System components

Image 1 of 3: Patient Signalment
Patient Signalment
Patient Signalment
Image 1 of 3: Patient Signalment
Patient Signalment
Patient Signalment

The closing

The stakes were higher than I expected.

I went into this project thinking about workflows. I left thinking about the people inside them. Veterinarians are up to 4x more likely to die by suicide than the general population. Technicians, 5x. Friction compounds stress, and I was in a position to reduce it. Better tools will not solve everything, but they can make a hard job feel a little more human.

Resource

Visit Not One More Vet for more information regarding mental health in the veterinary industry

what I moved

Zero

Support tickets for workflows I touched, previously generating consistent volume.

Fewer

Taps to complete across all high-frequency workflows.

3/3

Clinical subject matter experts approved the final direction.

10k+

Veterinary clinics using the platform worldwide.