Modelling patient's schedule of treatment

One of the endTB requirements is to define a schedule of treatment for each patient when s/he enrols into a program. These are more than just appointments for the follow up visits and should also be able to capture investigation schedule (e.g. perform x-ray every six months). Against this schedule there is expectation that:

  • it can display which events have completed or missed
  • ability to create reports and view across patients for the state like above

This is essentially a program management requirement and not so much EMR (or it might be an EMR requirement too, i don’t know).

Does anyone have any suggestions on whether and which existing data model of OpenMRS would work for this?

  • Program workflow state don’t fit nicely in it because the schedule spans in future.
  • Using future orders was also suggested during the discussion, but this don’t seem like real orders.
  • Another suggestion was to do calculate this on the fly wherever required. I feel this is not scaleable for reporting purposes and introduces complexity in code which could be managed easily by data.

I agree that this is similar-but-different to clinical EMR functionality.

“X-ray every 6 months” is a good example:

  • clinically you’d care “have they had a CXR in the last 6 months?” and I would calculate this on the fly
  • in a study, the need is for CXR every 6 months, within a particular time window, and this makes sense to precompute so you can easily do dashboards

Nothing in the core data model covers this. (E.g. it’s an inappropriate use of Orders to say “fill out a monthly followup form.”)

I think we’d want to have a study management module with the idea of “scheduled/expected events” that are computed at study enrollment. (I wonder if there’s some existing library that implements this idea, and isn’t too heavyweight to tie into an OpenMRS event feed.)