How do you put tablets in PQ.units?

Sep 6, 2011

This is one of the top 3 questions about the data types:

PQ.units only supports UCUM units. UCUM doesn’t support customary units like “tablet”, “scoop”, etc, which are very common in healthcare - how are these supposed to be handled?

PQ.units is a CS type - a “simple code”, though simple is not the right word for UCUM codes, which are sophisticated and clever beasts. Some typical examples of UCUM units:

  • mg/mL
  • U/L
  • mmol/l

All these units - and all the others in UCUM - are derived from unambiguous measures of physical reality. There is no units that have any ambiguity about them, and therefore UCUM doesn’t have anything like “tablet”. What UCUM does have is a unit “1”, which means countable entities. So 3 “1”s of something is a count of 3. The PQ data type has a default unit of “1”. So

  <value xsi:type="PQ" value="3"/>

means that there is 3 individual countable units of whatever value is a measure of. The code defines that. This requires a mind shift about how the measure is conceived. Instead of 3 tablets of acetominaphen(value = 3, units = tablets, thing = acetominaphen),  it’s 3 units of acetominaphen tablets (value = 3, units = 1, thing = acetominaphen tablet).

This applies whether we are talking of a known specified does such as

  <substanceAdminstration>
    <code code="23628011000036109"
       codeSystem="1.2.36.1.2001.1004.100"
       displayName="paracetamol 500 mg tablet"/>
    <doseQuantity value="3"/>
  </substanceAdminstration>

or whether the dosage is specified as a range:

  <substanceAdminstration>
    <code code="23628011000036109"
       codeSystem="1.2.36.1.2001.1004.100"
       displayName="paracetamol 500 mg tablet"/>
    <doseQuantity xsi:type="URG_PQ">
      <low value="1"/>
      <high value="3"/>
    </doseQuantity>
  </substanceAdminstration>

In either case, the fact that we are talking about tablets comes from the code, not the doseQuantity. In my examples, I have used a code taken from AMT (The Australian Medicines Terminology). In other contexts, you’d have to use a different coding system that includes the dosage form as part of the code. I don’t know off the top of my head whether the major coding systems such as RxNorm have the dose form included. if they don’t, you could do this:

  <substanceAdminstration>
    <code code="acetominaphen"
       codeSystem="[my substances oid]"
       displayName="acetominaphen">
     <qualifier>
      <name code="form"
        codeSystem="[my expression syntax OID]"
        displayName="form of substance"/>
      <value code="tablet"
        codeSystem="[my forms OID]"
        displayname="given as a tablet"/>
     <qualifier>
    </code>
  </substanceAdminstration>

This CDA sample is still incomplete - where’s the 500mg? btw, in ISO 21090, we removed the qualifier syntax - it causes way more problems than it solves, and you’d have to  do:

  <substanceAdminstration>
    <code code="acetominaphen:form=tablet"
       codeSystem="[my adminstration expression oid]"
         displayName="acetominaphen as a tablet"/>
  </substanceAdminstration>

Substance Administration is a complex thing. Somehow pushing tablets into the measurement wouldn’t make it easier.


p.s. PQ includes a translation. So you could try for something like this:

  <value xsi:type="PQ" value="3">
   <translation value="3" code="tablets"
     codeSystem="[my custom dose units oid]"/>
  </value>

Don’t do this - it’s not valid, and it doesn’t solve your problem properly.