Designing support experience for onprem systems with no reliable internet

UX Design Product Design
Problem

qTrack is an AI-based chest X-ray screening platform used in TB screening camps across low-resource, low-connectivity environments. These camps are run day to day by healthcare workers - radiologists, radiographers, TB nurses and doctors.

Lead designer, working with Product, TechOps and CS

45–53%

Every quarter tickets were L1 - basic issues that users could resolve themselves.

Leadership raised concerns about the high number of support tickets being raised by clients. A significant share of CS and TechOps bandwidth was going into resolving these issues manually.

Illustration of a health worker overwhelmed by error alerts on the qTrack laptop and piling support tickets
Problem

Product and engineering framed this as a communication and knowledge gap: users did not fully understand how to use qTrack, so this was a training problem, not something going wrong in the product.

The approaches tried to close this gap:

Collaterals

User manuals, one-pagers and self-troubleshooting guides. They had the right information, but were too complex to actually be followed by end users.

Rule-based chatbot

It sent the same collaterals to users as a DIY solution. The success rate of issues being resolved by the bot was very low.

Discovery

The analysis shared by product and engineering did not show the full picture. All the data was technical and quantitative - there was no clear why behind any type of issue.

So I started going through the Jira tickets myself, one by one, to understand both the client and internal team perspectives.

With TechOps, I categorised the issues into a symptom versus cause framework: what the user experienced, versus what was actually going on underneath.

Table mapping each issue to the symptom the user experienced and its underlying cause
Core Insight

“The issues were not happening due to a communication or knowledge gap. Users were not getting any next-step information when something went wrong - qTrack was not communicating when something went wrong, or when an error was about to occur.”

The end users are frontline healthcare workers.
In their day to day, they are not expected to deal with such issues or resolve them.

Doctor with a stethoscope
Clinician
Lab worker at a microscope
Lab technician
Doctor reviewing a chest X-ray
Radiologist
Radiographer at an X-ray machine
Radiographer
Health worker in front of a dashboard
Program manager

These screening camps are high-stress environments. If the product stops working, screening has to stop, so users act from panic and immediately report the issue - which is a natural behaviour.

Illustration of a busy outdoor TB screening camp with people queueing under a tent
Generated by AI, for illustration purposes only.
Design solution

There was a need for an environment that supports users in their day-to-day tasks and gives them preventive measures to reduce the chance of errors.

That is how the 'Start Screening' button was added, to mimic the workflow of on-ground users and guide them. It is divided into two main sections: AI Screening Setup and Start Registering Patients.

The Start Screening button opens two sections: AI Screening Setup and Start Registering Patients
Design solution
Users start with the AI Screening Setup

1. Network name field

Users name the network once, at setup. That name becomes the reference point the connection check compares against.

AI Screening Setup step with an input field to save the network name
Users are ready to start registering patients

2. Network connection check

The app names exactly which network is missing, rather than a generic "not connected" message.

Connection check naming the network that isn't connected, with a Check again button
Design solution
Camp screening session has started

3. Running session bar

A green bar runs across the top of the screen for as long as a screening session is active. It appears as soon as a user taps "Start Screening" and completes setup, and stays on screen until the user stops the session at the end of the day.

Since screening at a camp runs for hours at a stretch, the bar gives users a constant confirmation that they are still "in session". It also triggers the background checks - like the session check-in prompt and network monitoring - which only make sense while screening is active.

Green session bar running across the top of qTrack during a screening session
Design solution
Checking in between the session

4. Session check-in prompt

If no scan comes in for 30 minutes straight, a check-in prompt appears for the user.

Checking in? prompt in qTrack after 30 minutes without a scan, with Need help, All good and Screening Complete options

5. Mid-session network change

If the network changes while a session is active, qTrack names the change and surfaces it immediately, so users can take action.

Choose Setup prompt in qTrack telling users setup is incomplete and to tap Start Screening

Background

Qure is a B2B AI healthcare company. Its product, qTrack, is an AI-based chest X-ray screening platform used in TB screening camps across low resource, low-connectivity environments. These camps are run day to day by a range of healthcare workers - radiologists, radiographers, TB nurses, doctors.

Problem

Leadership raised concerns about the high number of support tickets being raised by clients. It was creating a poor customer experience and client trust on the app, and a significant bandwidth of CS and TechOps was going into resolving these issues manually. Every quarter from 45 - 53% of the tickets were L1 category (basic issues which can be resolved by users themselves).

The analysis product and engineering team shared they attributed to client side mistakes rather than product faults. They framed this as a communication and knowledge gap: users did not fully understand how to use the qTrack, so this was a training problem, not something that is going wrong on the product. Whatever wrong is happening because users fully don't understand the product and it is leading to such errors.

Few approaches initially tried to solve this "communication and knowledge gap" as framed by product and engineering teams were to design collaterals (user manuals, one pagers, self troubleshooting guides) followed by a rule based chatbot.

Discovery

1. Learnings from previous approaches

Collaterals

An example of the technical, manual-style collateral used before the redesign - click any page to view it larger.

Rule based Chatbot

Flowchart of the rule-based WhatsApp chatbot workflow connecting customers, CS, and TechOps
Chatbot workflow - how it connects different teams.

2. Jira ticket analysis

The analysis shared by product and engineering team did not show the full picture. They often shared data from Jira by exporting the relevant fields. All the data was technical and quantitative there was no clear why for any type of issues. So, I started going through the Jira tickets myself one by one to simply understand both client and internal team side perspective.

I specifically started looking into how the issue was reported by the client, meaning how did they describe (Jira had client conversation SS). Then, how the CS team was describing the issue when raising the ticket in behalf of client and then techops engineering perspective. The techops team identifies the issue and provide RCA which was technically aligned and more accurate.

They fill the other jira field where they are supposed to categorise the issue level (L1, L2, L3) and issue type - not an issue, client side issue, issue. It further had categories like knowledge gap, communication gap, expected behaviour of product. These fields were little inconsistent throughout the tickets and was subjective to interpretation specially in L1 type issues.

3. Working with Techops

I collaborated with techops to understand what was the cause of these issues in simpler language. The purpose of this exercise was to break down technical issue in simpler language. I categorised these issues into symptom versus cause framework. What the user reported - what did they experience, versus what was actually going on underneath. Asking "why" for every issue showed different levels of each issue. What could really be understood by a non technical person and where will they need help. This gave a lot of clarity which was not possible to get by just looking at the jira tickets analysis.

Table mapping each issue to the symptom the user experienced and its underlying cause
Cause & Symptom Framework - separating what the user experienced from what was actually happening underneath.

How issues were added in jira was little open to interpretation the person who is assigned the ticket and resolving that issue.

Core Insight

The issues raised by end users were not happening due to communication / knowledge gap or poor understanding of the product. For users, they were not getting any next step information if something went wrong. The qTrack was not communicating if something went wrong or if any error was about to occur.

The end users of qTrack are front line healthcare workers in their day to day they are not expected to deal with such issues or resolve them. That is not what they do. When something did not work the product stopped working or should some technical message which is not something end users can understand. These screening camps are high stress environments the product not working any way means screening would have to be stopped so in such cases end users act from panic and immediately report the issue, which is a natural behaviour.

And even where training could technically close the gap, it was not a great experience for heath care workers to start learning about engineering errors.

Scoping the opportunity

The issues prioritized were technical in nature, but the reason they were prioritized was how often they occurred and how negatively they impacted users, whether they added friction to getting into qTrack, or stopped the on-ground workflow midway. In both cases, the product wasn't signaling anything to the user: not that something had gone wrong, not what to do about it, not even a way to tell if something was wrong at all.

Quadrant chart plotting issues by how often they occur against how much they impact users
Issues plotted by frequency and impact to decide what to prioritize.

Issues picked - Issues shortlisted to start the design work based on what can be controlled by Qure and effort required (engineering + design).

Technical Challenges

  1. No single issue on this list had one clean root cause. "qTrack not opening" could mean five different things underneath, so there was no single fix to jump straight to. Instead, users needed a way to work through possibilities one at a time - ruling things out until the actual cause was clear, with the app guiding them toward the next step at each point, telling the user what was happening, instead of solving the switch itself.
  2. The network disconnect or switching between saved network was the starting cause for so many issues. Engineering shared this cannot be automated - detected and fixed directly, without user getting involved. This is where things get complicated its difficult for non technical health care workers understand networking. And it was not even worth it because teaching this to end users was requiring more time than actually getting familiar the product qTrack. Not a great experience if users spend more time in learning about what type of issues can occur than engaging with the product.

Design solution

With so many uncertainties there was a need of an environment which supports users in their day to day tasks and give them preventive measures to reduce the chances of errors. That is how the 'Start Screening' button was added to mimic the workflow of onground users and guide them. It is divided into 2 main sections -

  1. AI Screening Setup
  2. Start Registering Patients
The Start Screening button opens two sections: AI Screening Setup and Start Registering Patients
The "Start Screening" flow splits into two sections - AI Screening Setup, then Start Registering Patients.

Note: This case study covers "start registering patients" in more detail. To understand how section one was created, see the companion case study - Redesigning the Screening Camp Deployment and Setup Experience.

How workflow looks for the onground users

Users start with the AI screening Setup

While connecting their equipment during onboarding, the user names the network they're on, directly in the app. It's a small addition to a step they're already doing, not a separate task. That name gets saved, and becomes the reference point for everything that follows.

(Note: This onboarding flow, AI Screening Setup, is covered in full detail in the other case study. The network name field is the one addition made here, for this project.)

1. Network Name Field

(Addresses: Network disconnect between different machines/devices)

An addition to the first section, AI Screening Setup (onboarding flow) an input field where users can add the network name for easy recall instead of getting into technicalities. In the setup, users name the networks they are connecting to, directly in the app. Ideally this stays the same every time, but these are mobile camps, so the team packs up and sets up again regularly, which naturally leads to small errors. Devices (laptops, mobiles, tablets) can also hold onto multiple saved networks, and if one connects automatically to a different saved network instead of the intended one, the connection between the two software systems breaks and has to be reconnected by reconfiguring the IP address. That's not something a non-technical user should be expected to do, no matter how clearly the steps are written. This couldn't be automated from the backend either, since multiple networks can be involved, with no way for the system to know which one is meant for what.

How it works

Users name the network once, at setup. That name becomes the reference point the setup connection check compares against before a session starts, confirming the user is still on the network they originally intended before they move on to registering patients. Users can edit it any time something changes.

AI Screening Setup step for creating the offline network, with an input field to enter and save the network name
Network name field added to the setup step - users save the name of their offline network once, in the app.

Users are ready to start registering patients

2. Network Connection Check & Best practices reminder

(Addresses: Network disconnect between different machines/devices)

The next section in the Start Screening flow is "Start Registering Patients." This runs a few last minute checks before the user begins, and surfaces best practices for a smoother session.

Two states:

How it works

Once the user has named their networks, the app checks their current connection status against those names once, at setup, before they start registering patients. This catches a mismatch upfront, before the TB screening camp begins, rather than letting it surface later as a "scans not visible" issue mid-session.

Checking your connection screen confirming both saved networks, xraysoftware and qureoffline, are connected
Both networks connected - confirmed by name before the session starts.
Connection check screen saying one of your networks isn't connected, marking qureoffline in red with a Check again button
Mismatch - the app names the network that isn't connected; "Check again" rechecks without restarting setup.
Best practices screen with three tips: don't reset passwords or delete pre-installed apps, keep devices within range, use unique patient IDs
Best practices reminder - three things to watch out for before registering patients.

Camp Screening session has started

3. Running Session Bar

(Enables: background monitoring during a session)

A green bar runs across the top of the screen, just below the nav bar, for as long as a screening session is active. It does two things:

How it works

The bar appears as soon as a user taps "Start Screening" and completes setup. It stays on screen continuously until the user explicitly stops the session at the end of the day.

Animation of the green session bar running across the top of qTrack during an active screening session
The green session bar signals an active screening session and enables background checks.

Checking in between the session

4. Session check in prompt

(Addresses: Scans not visible on qTrack or any on ground issues)

Scans not appearing on qTrack once pushed from the X-Ray Viewing software is a common issue and can happen for various reasons. With this check, we check -

How it works

Checking in? prompt in qTrack after 30 minutes without a scan, with Need help, All good and Screening Complete options
The check-in prompt surfaces after 30 minutes of no scans, instead of leaving the user guessing.

5. Mid Session Network change / switch

(Addresses: Network disconnect between different machines/devices)

If the network changes while a session is already active, qTrack names the change directly and surfaces it immediately so users can take action.

How it works

Once a session is active, the app continues watching the network against the name saved at setup. If it detects a change, it alerts the user right away.

Choose Setup prompt in qTrack telling users setup is incomplete and to tap Start Screening
"Choose Setup" prompt: when setup is incomplete, qTrack points users back to Start Screening to finish it.