FHIR Chat · Dealing with contradictory time indications in MedStatements · Medication

Stream: Medication

Topic: Dealing with contradictory time indications in MedStatements


view this post on Zulip Morten Ernebjerg (Mar 17 2021 at 16:22):

I am looking at displaying med dosing information in a UI based on MedicationStatement/-Usage instances. In such resources, one can indicate times or time intervals in both MedicationStatement.effective[x] and in the Medication.dosage.timing element. The formers is defined as (R4) "The date/time or interval when the medication is/was/will be taken" whereas the Timing data type is for "[a] timing schedule that specifies an event that may occur multiple times". Since dosage.timing can also specify durations or specific dates, the information in these two elements can clearly (apparently) contradict each other. For instance:

  1. dosage.timing says that medication should be be taken for 30 days but the effectivePeriod is only three days long
  2. dosage.timing.event gives a date that does not coincide with the date/interval given in effective[x].

My basic interpretation would be that dosage.timing describes what was supposed to happen whereas effective[x] is about what actually happened. Hence, in the two examples above, I would take it to mean that the Patient deviated from the instructions and (1) stoped the meds prematurely and (2) took the meds on at the wrong time. In terms of UI display, I would use effective[x] to indicate the time/interval the meds were taken, but probably still be very defensive about the display if there was a contradiction with dosage.timing.

Still, several things are unclear to me:

  1. Is my "basic understanding"/UI logic correct?
  2. If the information is patient reported (MedicationStatement.informationSource points to a Patient), I would interpret the information in dosage.timing as reflecting how the Patient had actually been taking the meds. If so, what would a contradiction with effective[x] mean then?
  3. What would a contradiction mean if MedicationStatement.status is "intended" and effective[x] is in the future?

view this post on Zulip Christof Gessner (Mar 17 2021 at 19:51):

As I understand the specs, MedicationStatement.effective[x] is closely related to the MedicationStatement.status, it tells us when this status applies. When the status is not-taken, stopped or on-hold, the effective[x]would be the time (or period) when this Medication was not-taken/stopped/on-hold. In those cases it is pretty clear that the dosage.timing speaks about what was supposed to happen_. As to your examples:

  1. is probably better expressed using status=stopped, otherwise it could also mean: Med was ordered for 30 days, but all we know is that it was taken for three days.
  2. this contradiction could probably be avoided, by splitting the MedicationStatement in two: One MedicationStatement reporting that the Med was not-taken as it was suggested in dosage.timing, and a second MedicationStatement stating that it was activeor completed at a different time effective[x] and/or with a different dosage.timing.

So my recommendation: If the "supposed" dosage.timing was changed, use a status of stopped/on-hold/not-taken (possibly also providing a statusReason). For the other statusCodes, I would derive the actual dosage from a kind of "constructive" combination of MedicationStatement.effective[x] and dosage.timing, where typically the effective[x] gives a time window, and dosage.timing says what happened during this time window.
(just my interpretation of the specs)

view this post on Zulip Morten Ernebjerg (Mar 18 2021 at 14:24):

Thanks for the thorough answer @Christof Gessner! - I had not taken the relation to status into consideration. I suppose one could say that status and effective combine to give a temporal-contextual "lens" through which the dosage data must be read. Unfortunately, I usually cannot directly decide how to coordinate status and effective[x] since I 'm mainly at the "receiving end" & get resources others have constructed - but I can certainly take it into account in our IG.

In line with your analysis, my conclusion is also that for the typical status values (active or completed), the cases that can be handled without uncertainty are those where Dosage.timing does not refer to to absolute dates or intervals, but only given a "rhythm" (twice a day, every 8 hours...). Then the combined schedule is simply that rhythm within the period indicated by effective[x]. Whenever Dosage.timing involves dates or intervals, I think the generic arithmetic for combining it with effective[x] becomes so complicated that I'm not sure I'd trust a machine with it :smile: .


Last updated: Apr 12 2022 at 19:14 UTC