Transactional Appointment Scheduling
I woke up early this morning to go to my semi-annual dentist appointment.
Midway through my shower, I realized that I didn't recall receiving any form of automated confirmation about my appointment. Sure enough, when I checked my phone the only confirmation email I had in my inbox was for my previous appointment.
I started to wonder if maybe I was mistaken about my appointment date. Had I entered it into my calendar incorrectly?
Not wanting to make the drive over there for nothing, I called the office right before it was time for me to head over.
There was a change in office staff since my last visit, so the receptionist who answered did not know me by name. After checking my records, she told me that I did not have an appointment scheduled for today. In fact, there was no future appointment scheduled for me at all!
Throughout this exchange, I was staring at the reminder card on the front of my fridge telling me I had an appointment in thirty minutes.
I'm sure this can be chalked up to a clerical error. The person who scheduled my appointment during my last visit probably wrote out the appointment date on the card, handed it to me, but then never finalized the record in the patient scheduling system.
This whole experience got me thinking about ways this process could be improved.
In software systems it's generally desirable for operations to be atomic.
That is, a group of related operations should either all pass or none should pass. If one operation fails, then the rest should fail as well.
This property is often enforced at the database layer through the use of database transactions. In fact, it's quite likely that my dentist's scheduling software makes use of transactions in some form to keep the system in a consistent state.
Unfortunately, these transactional guarantees don't extend to the physical artifacts: the appointment reminder card I receive after each visit. As I described above, on my last visit I received a reminder card that seemingly never had a backing appointment record.
One way to prevent situations like this would be to have the appointment reminder card be derived from the digital record. For instance, the reminder card could be printed out once the appointment itself has been created.
This is actually—as far as I can tell—true of how the digital reminders work. Looking back through my inbox, I can see for my past appointments I received a scheduling confirmation email shortly after the appointment was scheduled. That email is notably absent after my most recent visit.
While it would be nice if the card I can stick on my fridge had stronger guarantees that it corresponded to an actual appointment, I suspect that is unlikely to happen. More likely is that the physical cards get phased out in favor of solely digital reminders.
Until then, I suppose I'll have to keep a more watchful eye out for scheduling confirmations (or lack thereof).