appointment schedule workflows

I suspect that many implementers have a need to track appointment related metrics such as missed appointments, patients who show up early, late, etc.

As we (AMPATH) move towards using the Appointment Scheduler module (we’ve been just using obs which is a mess), we wanted to ensure we could track these metrics.

I’m curious how implementers are recording the following scenarios:

  1. A patient shows up early to clinic for a scheduled appointment
  2. A patient shows up late to clinic for a scheduled appointment

Specifically, where in the data model do you record the outcome. I would rather avoid having to run a scheduled job to update the table that a patient has arrived late. To me it seems more practical to default the status of an appointment to 0 (or some representation of the patient not having showed up) which is updated to 1 (or equivalent) once the patient has showed up.



@jecihjoy, @mogoodrich @nkimaina

This is a good question and something that we at PIH are not really doing well.

We have code that updates the Appointment Status to “checked-in” at point of care if a patient checks in at the same location and same day as the appointment. If a consult note is written during that appointment , we update the appointment status to “completed” in a scheduled task. If a patient is never checked-in that day and location, we update the status to “missed” (again, a scheduled job).

However, this doesn’t really work well for obvious reasons. (patients, don’t necessarily show up on that exact day, sometimes notes aren’t written or even required etc…).

But recently users at multiple sites have asked for better ways of tracking this. To satisfy their requests relatively soon, we were just going to write reports that include appointment and visit information (maybe last booked appointment and last visit) and let the users interpret which patients have missed appointments. We might put logic in the report to flag them as missed if they give us criteria (e.g. don’t show up within a week of the appointment). This will satisfy their need to identify missed appointments but will not be sufficient to monitor overall appointment adherence.

Would definitely be interested to hear if others are doing a better job at this.


@jdick was going to answer your post, but I see you withdrew it… did you get your answer? :slight_smile: “Providerless” appointment blocks are now supported, and in our case we just schedule a block that lasts the whole day when we only want to schedule by the day.

A “block” assumes only a single provider, I believe… would be good to handle multiple providers per block, but for now I think you could create multiple providerless blocks… or potentially hack around it by changing the length of a timeslot… ie if you have an service type that takes 30 minutes but have two doctors, you could half the service time to 15 and it should allow you schedule the appropriate number of appts in a block. I don’t remember how/if we handle this kind of situation, but @ddesimone might be able to add more.

Take care, Mark

Thanks @mogoodrich. (Had deleted because it seemed a bit off topic but still very relevant to us). We had come up with a similar goal.

@ddesimone, we were thinking of taking a slightly different approach. For the status, we would use something like Scheduled/Completed Early / Completed on Schedule / Completed Late. We would use the _status table to track the “location” of the patient once the visit began, e.g. in triage, waiting, in consultation, etc.

In order to avoid scheduled jobs, we would update the status upon submission of the encounter. It would be nice to have this server side but for now we were thinking that the client, upon receiving a successful encounter submission (via rest), would then update the status of the patient in the appropriate way.

concerning this

“We might put logic in the report to flag them as missed if they give us criteria (e.g. don’t show up within a week of the appointment).”

Could it be wise if instead of providing users with last booked appnt and visit for them to interpret missed appnts we handle it as follows::

Let the scheduled job update the appnt status to MSSED if patient didn’t show up as usual, and if the patient happens to show up on a later date we indicate to the clinician that the patient was late for the appnt for this number of days, The appnt status will then be updated to LATE. This days indication will best help clinician make even better decision.

The appnt status will however remain as MISSED if the patient never came for the visit

This also applies to cases where patients came earlier than the scheduled appointment date for the visit. We indicate to the clinician the patient is earlier by this number of days.

Also we need to handle for cases where a patient missed an appnt and came so much late eg after an year to the clinic. In this case I believe it shouldn’t be a LATE appnt but instead a WALKIN

Please advice, thank you