CONTENT WARNING: Medical – Mention of chemotherapy symptoms (no gory details, though).
I want to talk to you about a client project. As a reminder, this is what I do for work:
I take tech lead responsibilities for mobile, server, and machine learning projects. I work on projects that contribute to saving the planet, advancing basic scientific research, and providing resources to underserved communities. My current projects affect public safety, inform current environmental policy, and affect patient recovery.
Today we’ll talk about that third one: a mobile app to aid with cancer patient recovery.
This summer I have been adding some features to Nurse AMIE, an Android app proposed, developed, and tested by Dr. Kathryn Schmitz at the Penn State Cancer Institute. I’ll let Dr. Schmitz describe the app to you:
Goals…are to regularly assess psychosocial, functional, and symptom needs among metastatic breast cancer patients and to provide appropriate interventions via YouTube style videos, weekly Skype calls (face to face, tablet to tablet) with a patient navigator at Penn State, and appropriate referrals to phone or in person consultations as needed.
The…program will allow for the provision of resources (YouTube style videos, audio files, exercises) to intervene on many of the common symptoms and challenges experienced by metastatic patients. This is an identified need on the part of both metastatic patients and their medical care teams.
Finally, it will also allow patient navigators to check in with patients, reviewing responses to surveys, discerning whether new or different interventions are needed, and connecting women to palliative care and other services if additional care is warranted.
The app showed promising enough results among Dr. Schmitz’s metastatic breast cancer patients that it has attracted the interest of other cancer care programs. I have been working on some branding updates to prepare the app for wider use as well as some new functionality: a survey to assess patients’ experience with common chemotherapy symptoms on a weekly basis.
Checking on patients, of course, is not a new concept. The thing that differentiates Nurse AMIE is the primacy of empathy in its user experience design. The new survey needed to match this approach. But before I show you how we matched this approach, I want to show you why it’s important.
This is Nurse AMIE.
Patients not only see her face on every screen; they also hear her voice, reading the text on the right side. The app provides access to instruction videos, soothing music clips, guided meditations, and daily check-ins, but its key user interface innovation lies in the degree to which it leverages lessons we have learned from human-computer interaction research.
We’re familiar with the emotional response of comfort and reassurance when we interact with someone who cares about us. Here’s the part we might not anticipate: research demonstrates that people also experience comfort when they observe markers of empathetic concern from computer programs. Yes, even if they know it’s automated*.
We expect that response when patients see a picture of Nurse AMIE with a concerned face, or they hear her voice say she’s glad to see them, or they read a survey question that asks how they are doing, or they see a reaction message that expresses regret that they are not feeling well.

Maybe this degree of simulated emotion in an automated app sounds hokey to you. But as programmers we tend to underestimate the degree to which markers of empathetic concern in human-computer interaction remain effective. And these markers prove especially effective for people who are in some kind of distress, which is especially true for cancer patients.
To say the least, being sick is not fun. Chemo is not fun. Regular interaction with an empathetic care team can help with this. And facilitating that interaction through an app with a deliberately empathetic interface design offers supplementary support for both the patient and the care team.
But isn’t the empathy fake?
Is it disingenuous to tug at patients’ heartstrings with a preselected photo and a prerecorded message? No, I don’t think so. First of all, if that’s unethical, then it’s also unethical to make tear-jerker movies. Those are prerecorded, aren’t they? Just because something isn’t happening live doesn’t make it wrong that you feel something when you see it.
Second of all, the empathy isn’t fake. Effective interface design requires subject matter experts, designers, and developers to place themselves in their clients’ positions, imagine what they’re going through, and care about their experience. When a care team’s case load reaches a size that prevents them from having the time to provide adequate attention to each patient, Nurse AMIE can supplement the team’s individualized attention by assisting patients with the care protocols that all of them need.
Creating the Weekly Survey
I’ve read several books and sketched out a few wireframes, but I’m not a professional designer. So to plan the weekly survey I enlisted the help of my colleague, Becky Rother. The survey has 25 questions on it, and all of them need to be answered once per week. So each week on Wednesday, Nurse AMIE will display this screen:
Let’s walk through some elements of this design.
1. The text at the top: no one likes to have their time monopolized, so we’re emphasizing from the beginning that this survey won’t take long. This introductory text is read aloud to the patient, just like the text on all the other screens.
The original plan was to have each of these questions appear on its own page in a wizard-style setup, but I opted instead to make it a single page that scrolls down so patients can see the length of the survey and gauge how close they are to being finished.
2. Divided into sections: Does 25 individual questions sounds like a lot? How about this:
- We need to ask questions about 13 symptoms: decreased appetite, nausea, vomiting, general pain, abdominal pain, diarrhea, constipation, shortness of breath, urination discomfort, hot flashes, fatigue, numbness, and coughing.
- For most symptoms, we need to know its severity at its worst. We also usually need to know either how frequently it happened or how much it interfered with the patient’s life.
That’s it. Thirteen symptoms, three categories. We usually don’t need all three categories for a given symptom. That’s a more manageable idea than 25 questions, so we reinforce it by adding dividers between each symptom section.
3. Use of emboldened text. This was all Becky. Prior to this, the survey emphasized the symptom and the type of question by putting those words in all caps. This accomplishes the goal of raising the likelihood that patients notice which question they’re answering, but in written text parlance, writing something in all caps is tantamount to yelling. It would be odd for an app that foregrounds an empathetic approach to suddenly yell at the patients, so we switched that out.
There are three more items I’d like to note about this design.
To show you two of them, here is a screenshot of the bottom (scrolled all the way down) of the form.
4. We thank people for taking the time. Once again, Becky’s idea. Small touches like help folks feel like we’re respecting their time, so doing the app surveys doesn’t feel so annoying.
5. We tell people why we’re collecting the data. Two things to note here. First of all, anytime we’re collecting data from people, it’s ethical to tell them what we plan to use it for. In fact, this is important enough that the General Data Protection Regulation (GDPR) mandates it.
The second piece is, again, a human interaction piece. Folks are happier to respond to requests when they’re given a reason. This is true even when it’s a really obvious reason. Furthermore, in this specific case, the reason has to do with caring about the patient’s progress, which reinforces our markers of empathetic concern.
All right, finally…
This form requires some validation because patients need to fill out all the questions each week. So, here’s what happens if a patient misses some questions:
First, we surface this dialog that informs the patient that some questions still need to be answered. Then, we highlight the missed questions in this salmon color:
I’m not a color theorist, but here’s why salmon:
- Folks typically associate warm colors with form validation markers, since a lot of credit card entry forms and similar outline form values that need to be corrected in red.
- However, red looks kind of “angry.” It also doesn’t match the color scheme of this app, which as you can see, ranges from a deep blue to a gold color. The salmon stands out without clashing with the theme.
- Also, the salmon shows up well against the background for fully colorblind patients. This is a common and overlooked problem with reds that happen to be very similar in shade to backgrounds of another color that some folks can’t distinguish.
If the patient answers some of the missed questions but not all, the now-answered questions go back to the original background color, and the still-missed ones remain highlighted.
There are a few more interesting things to talk about with respect to this form: first, how to efficiently construct an Android form with so many questions that are so similar, but not exactly the same. I’ll show you where I placed my seams, and you can choose whether you agree with my choices or not. I also plan to show you an implementation of a database access library for Android that this app uses to store its data.
But this post is getting long, so we’ll save those topics for future pieces 🙂
If you liked this piece, you might also like:
Confronting the role of white supremacy in tech (and broadly, professional) culture – Because it impacts everybody (yes, including the white people). By the way, if you’re interested in this, you might also appreciate this post about anti-racist pedagogy in a graduate computer science class.
Designing a Course: Group Work for Students, about the approach I take to make group work a universally (I hope) productive experience for computer science master’s students.
How does git detect renames?—This piece is about how git detects renames, but it’s also about how to approach questions and novel problems in programming in general.