Posted
11/2025
Smartflow
Clinical UX
Interaction Design
Design Strategy
Field Research
Systems Design

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.
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.
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
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.
Dosage calculations of specific medications in an Excel sheet
Lo-fi sketch up of specifications for native cri calculator
iPad CRI calculator in Smartflow design system 2.0
02
I looked at what clinicians actually do on shift
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
03
The navigation reflected the database, not the clinician
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
Figma wires and components
Legacy side menu behaved unusually clunky and would jarringly displace the entire mainbody sideways
04
Color was one of the most visible fixes
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

05
The architecture assumed connectivity. The clinic did not.
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
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.
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
07
The design system could not keep up with the products.
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
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.
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.













