Stream: Medication
Topic: Dealing with contradictory time indications in MedStatements
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:
dosage.timing
says that medication should be be taken for 30 days but theeffectivePeriod
is only three days longdosage.timing.event
gives a date that does not coincide with the date/interval given ineffective[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:
- Is my "basic understanding"/UI logic correct?
- If the information is patient reported (
MedicationStatement.informationSource
points to a Patient), I would interpret the information indosage.timing
as reflecting how the Patient had actually been taking the meds. If so, what would a contradiction witheffective[x]
mean then? - What would a contradiction mean if
MedicationStatement.status
is "intended" andeffective[x]
is in the future?
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:
- 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. - 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 indosage.timing
, and a second MedicationStatement stating that it wasactive
orcompleted
at a different timeeffective[x]
and/or with a differentdosage.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)
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