Thursday, March 10, 2011

Medication Dosing Regimens in CDA Release 2 the IHE Way

This started as an e-mail response to a question, but I think others will benefit from it, so I'm posting it here, and will send the querant to this page.

The question revolves around the use of effectiveTime element in the IHE Medication entry (NOTE: The IHE wiki is non-normative content, but good enough for this discussion).

Questions are:  How many effectiveTime elements are required by IHE, and what data types must be used.

The answer is a bit complicated, but then, so are medication dosing regimens.  CDA can capture a dosing regimen as complex as “On Tuesday’s at 1:00pm and Thursday’s at 10:00 am between Memorial day and Labor Day”. [A dosing regimen I used to use for swimmer's ear medication].

IHE says:  If that's to hard to encode, just make it human readable.  So you needn't have any effectiveTime elements.

You can also say:  I took one dose of  acetaminophen at 2:00pm on March 9th [I had a massive headache].  So, that would go into a single effectiveTime element using the TS data type, and the value attribute would indicate the date (and time) of the dose given (or when it was intended to be given).

You can say that this IV drug was used for 8 hours.  That works similar to the single dose, but the effectiveTime is IVL_TS, with the start and stop of the dosing regimen recorded in the low and high elements respectively.

Then there's the case of take this drug once (or N times) a day for 10 days.
In that case, the first effectiveTime element records the intended or actual start and stop days (in a low and high element).  The second effectiveTime element records the frequency information using the PIVL_TS data type.

You could also say take Exedrin PM before bedtime for the next 10 days (which I had done for left shoulder pain due to a pinched nerve -- fortunately that is gone now).  In that case, the first effectiveTime still records the intended or actual start and stop days, and the second effectiveTime records the event driven dosing regimen using the EIVL_TS data type.

IHE also mentions the use the PPD_IVL_TS data type to represent "every 4 to 6 hours", but hardly anyone uses that.  It also mentions the use of SXPR_TS to represent more complex regimens, but again, hardly anyone ever uses that.

The point is, the first effectiveTime tells you when the medication regimen was active, the second tells you the frequency of administration.  There are no third or ... ones, and in some cases, there may be none.  If you want formal constraints:

effectiveTime shall appear at most two times [0..2]
If one or more effectiveTime elements appear, the first one shall contain either the time of a single dose in the value element using the TS data type, or the duration of the dosing regimen in an IVL_TS data type.
The second effectiveTime element should represent the frequency of the dose, using either the PIVL_TS or the EIVL_TS type.  The PPD_IVL_TS or SXPR_TS data types may be used to represent more complex dosing regiments.

I would note a couple of additional points:
HL7 V3 (and thus CDA) has four different ways to fully record an interval:  low + high, low + width, width + high, center + width.  IHE has only one:  low + high.  

The only cases I've ever seen where something else is needed are: 
  1. Where start and stop time are not know with great precision, but duration is:  e.g., this procedure was performed on 1/7/2011 for 15 minutes.  That would require one of the + width representations, and if IHE encounters it for a profile (we haven't yet), I'd recommend low + width.  In HL7 we encountered this in the Procedure note, and that's the way it was done there.
  2. There's also the case where duration is known, but days are not.  We encountered this in HL7 Claims Attachments:  Take this drug for 10 days, where it was asserted that there was insufficient context to determine the starting date.  In that case, Claims Attachments used width only for that case.


  1. Is there a way to represent frequencies like "At 4 PM", "q2-3h", "q4-6h" since the NIST validation and MDHT library does not support data types TS and PIVL_PPD_TS when used for the above frequencies. How can we represent these frequencies in the CDA document?

    Following fails validation for representing frequencies for "At 4 PM", "q4-6h":

  2. How to represent PRN (for the frequency) as coded element in the Medication section?