Options for handing morning/noon/evening/night dosing

Hi all,

We have an implementation that currently using drug orders for storing what drugs a patient is being given - HIV medications, NCD medications, Oncology medications, etc. This is still on the 1.9 data model, so the older version of Orders.

A new version of our NCD form is now requiring capturing dosing information broken down for morning/noon/evening/bedtime doses. This is what part of the section looks like:

I am interested in recommendations for how we might best accomplish this. One idea I had been considering was to continue modeling each drug checked on this form as a Drug Order, but then recording each of the doses during the day as Observations that reference this Order (via obs.orderId). We could add some JS that automatically calculated the Drug Order dose information from these fields potentially.

I know that we have used the frequency field at times for this in 1.9 and earlier, but it is usually parsed out as “X / day x Y / week” (or something similar), and that there are aspects of the application (UI, etc) that rely on this. I assume that the best way to handle this in 1.10+ is to use a custom DosingInstructions implementation?

Thoughts on what might make the most sense here (@darius and @burke)? My Order + Obs idea about aims to stay compatible with pre-existing data that models the NCD medications as Drug Orders, and also adds minimal overhead for a possible migration to the 1.10+ Order Entry data model in the future.

Thanks, Mike

cc @toddandersonpih, @ball

I’ve always understood obs.orderId to signify “which order is this obs fulfilling” although I’m not sure if that’s strictly documented anywhere. So I would probably avoid linking that way.

You are correct that in the new Order Entry API the idea would be to create a custom implementation of DosingInstructions.

(The only time I’ve done this in practice was in the Ebola module, like this. The idea there is that we store a comma-separated list of “Morning”, “Afternoon”, “Evening”, “Night” in the dosingInstructions column, to indicate on which rounds a dose should be administered. I think the OpenMRS-intended design approach would be to store json or properties in that field.)

Thanks for the reply @darius. I suspected that was the case for the obs.orderId field, and that it wasn’t technically correct. But an alternative would just be to record these as Obs in the same Encounter as each Order, and then match them based on Drug/Concept. Would that be better? Do you have any recommendations on the approach we take on a 1.9-based data model, given the Ebola example uses the 1.10+ dosing instruction?

Thanks, Mike

Perhaps you can store it in Order.instructions? (That’s in 1.9.x, I don’t remember exactly what that becomes in 1.10+.)

Otherwise I guess you can use an obs in the same encounter for this, as you describe.