Wednesday, November 18, 2009

ISO+ to UCUM Mapping Table


Several years ago I was the editor of the HL7 Claims attachments specifications.  As a result of that effort, I created a mapping table from ISO+ Units to UCUM units.  ISO+ units are commonly used in HL7 Version 2 lab messages, while UCUM is a newer standard developed by the Regenstrief Institute that is required for use in CDA Release 2 and in other HL7 Version 3 standards, and was selected by ANSI/HITSP for the communication of unit information.  A much shorter list was eventually used in the claims attachment guides, but I ran across the data I generated the other day and thought I would share it here.

Please note the disclaimer:  I am not an expert on ISO+, UCUM or laboratory units in general.  Therefore, you should validate this data before using it in any clinical applications.

ISO+ Units needing a Mapping
ISO+UCUMISO+UCUMISO+UCUMISO+UCUM
(arb_u)[arb'U]10.un.s/(cm5.m2)dyn.s/(cm5.m2)iu/mL[iU]/mLmL/hrmL/h
(bdsk_u)[bdsk'U]10.un.s/cm5dyn.s/cm5k/wattK/Wmm(hg)mm[Hg]
(bsa){bsa}cm_h20cm[H20]kg(body_wt)kg{body_wt}mm/hrmm/h
(cal)calcm_h20.s/Lcm[H20].s/Lkg/mskg/m2mmol/(8.hr.kg)mmol/(8.h.kg)
(cfu){cfu}cm_h20/(s.m)cm[H20]/(s.m)kh/hkg/hmmol/(8hr)mmol/(8.h)
(drop)[drp]dbadB[SPL]L/(8.hr)L/(8.h)mmol/(kg.hr)mmol/(kg.h)
(ka_u)[ka'U]dm2/s2REML/hrL/hmmol/hrmmol/h
(kcal)kcalg(creat)g{creat}lb[lb_av]ng/(8.hr)ng/(8.h)
(kcal)/(8.hr)kcal/(8.h)g(hgb)g{hgb}

ng/(8.hr.kg)ng/(8.h.kg)
(kcal)/dkcal/dg(tot_nit)g{tit_nit}m/sms/sng/(kg.hr)ng/(kg.h)
(kcal)/hrkcal/hg(tot_prot)g{tot_prot}masMsng/hrng/h
(knk_u)[knk'U]g(wet_tis)g{wet_tis}meq/(8.hr)meq/(8.h)osmolosm
(mclg_u)[mclg'U]g.m/((hb).m2)g.m/{hb}m2meq/(8.hr.kg)meq/(8.h.kg)osmol/kgosm/kg
(od){od}g.m/(hb)g.m/{hb}meq/(kg.hr)meq/(kg.h)osmol/Losm/L
(ph)pHg/(8.hr)g/(8.h)meq/hrmeq/hpapA
(ppb)[ppb]g/(8.kg.hr)g/(8.kg.h)mg/(8.hr)mg/(8.h)palPa
(ppm)[ppm]g/(kg.hr)g/(kg.h)mg/(8.hr.kg)mg/(8.h.kg)sec''
(ppt)[pptr]g/hrg/hmg/(kg.hr)mg/(kg.h)sieS
(ppth)[ppth]in[in_us]mg/hrmg/hug(8hr)ug(8.h)
(th_u)[todd'U]in_hg[in_i'Hg]miu/mLm[iU]/mLug/(8.hr.kg)ug/(8.h.kg)
/(arb_u)/[arb'U]iu[iU]mL/((hb).m2)mL/{hb}.m2ug/(kg.hr)ug/(kg.h)
/(hpf)[HPF]iu/d[iU]/dmL/(8.hr)mL/(8.h)ug/hrug/h
/(tot)/{tot}iu/hr[iU]/hmL/(8.hr.kg)mL/(8.h.kg)uiuu[iU]
/iu/[iU]iu/kg[iU]/kgmL/(hb)mL/{hb}
10*3(rbc)10*3{rbc}iu/L[iU]/LmL/(kg.hr)mL/(kg.h)
10.L10.L/(min.m2)iu/min[iU]/minmL/cm_h20mL/cm[H20]


Units that are the same in ISO+ and UCUM
%barg/LL.smgmmol/(kg.d)ng/Lueq
/kgBqg/m2L/(min.m2)mg/(kg.d)mmol/(kg.min)ng/m2ug
/Lcelg/minL/dmg/(kg.min)mmol/kgng/minug/(kg.d)
/m3CmGyL/kgmg/dmmol/Lng/mLug/(kg.min)
/mincm2/shL/minmg/dLmmol/m2ng/sug/d
/m3dhLL/smg/kgmmol/minnkatug/dL
/mindBJ/Llmmg/Lmol/(kg.s)nmug/g
/mLdegkatmmg/m2mol/kgnmol/sug/kg
1/mLeqkat/kgm/s2mg/m3mol/Lnsug/L
10*12/LeVkat/Lm2mg/minmol/m3Ohmug/m2
10*3/L
kgm2/smLmol/sOhm.mug/min
10*3/mLfgkg.m/sm3/smL/(kg.d)mosm/Lpgukat
10*3/mm3fLkg/(s.m2)mbarmL/(kg.min)mspg/Lum
10*6/Lfmolkg/Lmbar.s/LmL/(min.m2)mVpg/mLumol
10*6/mLgkg/m3meqmL/d
pkatumol/d
10*6/mm3g.mkg/minmeq/(kg.d)mL/kg
pmumol/L
10*9/Lg/(kg.d)kg/molmeq/(kg.min)mL/m2ngpmolumol/min
10*9/mLg/(kg.min)kg/smeq/dmL/mbarng/(kg.d)psus
10*9/mm3g/dkPameq/kgmL/minng/(kg.min)ptuV
10.L/ming/dLksmeq/LmL/sng/dSvV
a/mg/kgLmeq/minmmng/kgtWb

If you have corrections or comments, please post a response below.  I will make every attempt to keep these tables up to date and accurate.


Updated November 19, 2009:
Deleted mapping from ISO+ mm to UCUM to (transformation error)
Corrected mapping from ISO+ sec to UCUM '' (was ')
Updated October 20, 2010
Corrected mm(hg) to mm[Hg]
Changed oms/kg to osm/kg
verified mapping for mas (Megasecond according to HL7 V2) to Ms
deleted mapping from lm/m2 to lm
Still trying to resolve issues around (hb)
verified dm2/s2 = REM
Updated October 23, 2020
Fixed a number of problems with capitalization: Changed wb to Wb, v to V, uv to uV, sv to Sv, pAmp to pA, ohm to Ohm, mv to mV, kpa to kPa, gy to Gy, cel to Cel, bq to Bq and 8h to 8.h
Removed f, n because while these prefixes are the same, they aren't units by themselves
Removed n.s because the proper form is ns


8 comments:

  1. I had to chuckle about your disclaimer. You might not be a clinician, but you are an engineer and this excellent table demonstates the value of your engineering background in the crossover with clinical activities. Thanks.

    ReplyDelete
  2. hi Keith

    I have to query these mappings:

    mm(hg) = mm(hg) (copy paste error?)
    osmol/kg = oms/kg (typo?)
    mas = Ms (uh?)
    lm/m2 = lm (typo?)
    mL/((hb).m2) =mL/{hb}.m2 (syntax error in UCUM?)
    g.m/((hb).m2)= g.m/{hb}m2 (is this actually a meaningful ISO unit?)
    dm2/s2 = REM

    nice list otherwise, thanks

    ReplyDelete
  3. Updated but would you care to give me the right mappings for (hb)? I know in ISO it's supposed to be heartbeat, which is unitless in UCUM.

    ReplyDelete
  4. I suggest looking at the DICOM Context Groups in PS 3.16 ftp://medical.nema.org/medical/dicom/2009/09_16pu.pdf

    You will find that for Cardiology measurement systems the UCUM notation {H.B.}/min is used for Heart beat per minute. The UCUM {beats} is recommended for a simple count of beats, e.g., the number of ectopic beats detected during a stress test measurement (TID 3304). There are other standard codes set for area, linear, volume, etc.

    Using these terms will help keep later records consistent with the measurement systems.

    For those concerned about licenses, etc. The DICOM standard is free to download and free to use. The only real copyright restriction is the request that it not be publicly mirrored, so that updates can be managed.

    The codes of most interest are those in the context groups. Context groups are a kind of value set. They identify the standard list of codes to be used for a particular purpose in a particular context. Some contexts are extremely broad, like the list of animal breeds, CID 7480. Some are very narrow, like the list of OB Fetal Body Weight Equations CID 12014 used to estimate fetal body mass from biometric measurements.

    ReplyDelete
  5. In mapping from ISO to UCUM I used {hb} to maintain consistency with ISO+ (hb) for heartbeat. Those of you who understand UCUM will realize that this is a unitary comment, not really a unit of measure.

    The use of {beats} previously in DICOM though is a sound reason to use {beats} elsewhere.

    ReplyDelete
  6. Iso+ units are normally utilized as a part of Hl7 Version 2 lab messages, while UCUM is a more current standard improved by the Regenstrief Institute that is needed for use in CDA Release 2 and in other Hl7 Version 3 models, and was chosen by Ansi/hitsp for the correspondence of unit data.

    ReplyDelete
  7. As a cross-check that each unit of measure is consistent (across all versions) it might be good to add an additional column for base dimensional version:

    https://en.wikipedia.org/wiki/Dimensional_analysis

    ReplyDelete