Appointment Reminder

This is the second part of my Social Robotics and Crohn’s Disease project.


When things are going bad with Crohn’s Disease it is tough to stay on top of things. When my doctor asks me questions like “Did we sort out your vaccinations for the year?” I want to be able to answer that question. I think it’s very important to be aware of my treatment so I can make informed decisions and understand what’s going on. That’s easier said than done sometimes. If you’re reading this and you have Crohn’s I’m sure you know well what it’s like if you’re flaring, suffering side effects of your medication or life just gets in the way and you’re exhausted. You might have to go to an appointment first thing in the morning or you’re rushing to get through traffic to an afternoon appointment having left work.

There have been a few times where I couldn’t remember the answer when my doctor asked me about my treatment, and they’d have to look it up on the computer. Now I’ve never had a doctor give out to me or be disparaging if I didn’t know the answer but when appointment times are so short and hospital tech can often be slow I want to be able to get the most out of the limited appointment time we have.

So I updated the existing functionality in my PillBot project to help me with appointment preparation.

It’s much harder to ignore Vector than a calendar or app notification on my laptop or my phone. I’ve found it really useful to have the physical reminder in addition to the summary email. It can be tough in a packed and noisy waiting room to focus your thoughts even when the disease is not active. So this gives me a chance to do a little cram session before my appointment.

Shrinking Appointment Times

When I first started treatment after my initial diagnosis I saw my doctor very regularly. Every month they would drop by when I was in the hospital for an infusion and we’d have a chat about my treatment. As I started to get better and my infusion cycles were extended I saw them every 6 weeks and then every 8. I was still very up to speed about my condition and my treatment. Eventually, I only saw the doctor twice a year and I was totally fine with that because it meant I didn’t have to take extra days off work and what better sign that I was getting better than not being in the bloody hospital all the time?

Where it became an issue was when I couldn’t see the same doctor consistently. There was a period of roughly 3 to 4 years where I saw a different doctor every 6 months. Whatever was going on in the hospital resulted in there being a new doctor who clearly had very little time to read my file before they saw me. It’s not their fault. It was a really broken system and I had no alternatives. The waiting room was a conveyor belt. As soon as anyone stood up to go in to see a doctor their seat was taken by someone else.

It was really frustrating. I felt great and wanted to progress my treatment. The precious minutes of the appointment were wasted with me having to tell them about my condition and medication while my file sat right there on the desk between us. With such limited time I had to cram in my own questions: “Could I move on from 8 week infusions?”, “Could my dosage be lowered?” “What other options were available?” etc.

Their answer was always some variation of “If it ain’t broke, don’t fix it”, a shrug of their shoulders and an instruction to make an appointment for 6 months time. I spent probably 10 times longer waiting to see them than the appointment actually lasted.

I’ve been lucky to have been in remission since about 2012 and deep remission for the last 3 years. I’m really happy with my treatment but even still my doctor laments the brief appointment times that are available.

How it works

Exactly like the Medication Reminder this runs on a Raspberry Pi3 Model B+ as a cron job that pulls Appointment events from a Google Calendar. This time I use the free text search term as well as the timeMin and timeMax to find the doctor appointments within a short term range (2 days).

free text search
timeMax and timeMin date ranges

If an appointment date is found the Python script will query a SQLite database for my last appointment summary and how much of each of my medicines I have left. My appointment summaries are the notes I make myself and any test results I get from my doctor.

The summary email I receive

That information is compiled into a series of nested HTML lists and sent to me via email using Flask-Mail. In order to be able to send email I had to set up a gmail address for Vector first and configure the Flask Mail app to use it.

For the screen images that Vector displays I used the Python Imaging Library to open the image files and then a combination of Vector’s convert_image_to_screen_data and set_screen_with_image_data commands.

Get In Touch