· Jan 6, 2022

Normalizing Height and Weight in HealthShare UCR?

I'm looking for guidance on how best to normalize Height and Weight values to standard units. For example, to accept height as Feet/Inches, Inches, and Centimeters from various sources, but always display Feet/Inches in Clinical Viewer, etc.

If anyone has done this before, please share details of how it was implemented. Things I'd be specifically interested in:

  1. Did you normalize on ingestion into the Edge Gateway, or on consumption by an Access Gateway or API?
  2. Using what configuration settings, code hooks, callbacks, etc.?
  3. How did you implement recognition of the source coding system? That is, to account for weight as lb, lbs, pounds, etc., and possibly not labeled.
  4. How did you preserve the original values in UCR and Health Insight?
Product version: HealthShare 2019.1
Discussion (2)3
Log in or sign up to continue

Hi Clayton, I don't know how you would map from one set of units to another in the data in UCR (that would probably need to be done prior to ingestion into HealthShare), but there is a mechanism in the HS Clinical Viewer that enables you to define a "calculated" observation, the value of which is calculated from other observations. The value of this observation is calculated as the patient's data is loaded into the Viewer Cache and only exists in the Viewer Cache, not in the patient's data in UCR.  If you look at <install-dir>\distlib\trak\misc\HS-Default-ObservationItem.txt, you'll see an example of how this can be done:

3141-9^Weight Measured^^^^N
// Body mass index calulations
// BMI = Weight (lb) / (Height (in) x Height (in)) x 703
39156-5^Body mass index^^^^C^([3141-9]/([8302-2]*[8302-2]))*703^2^
// Metric Calculation
// BMI = Weight (kg) / (Height (cm) / 100 x Height (cm) / 100) 
// 39156-5^Body mass index^^^^C^([3141-9]/([8302-2]/100*[8302-2]/100)) 

This file is used to pre-populate the "observation item" code table in the Viewer Cache when the Viewer namespace is reset.  What the file is doing here is creating a couple of standard observation items for weight and height.  Then it defines a "calculated" item for BMI that is defined as "(weight / height2)*703", where the "height" and "weight" inputs are references to items the appear elsewhere in this file.

So you should be able to use this to convert from one set of units to another, however - it sounds like your use case is to be able to normalize multiple input formats into a single output format, which I'm not sure if you can do with this mechanism.  That is, while it should be possible to define an item that converts inches to feet/inches and another that converts centimeters into feet/inches, I don't know if there is a way to define a single item that can convert both inches and centimeters into feet/inches.

I haven't used this feature extensively, though, so maybe it can do some things (like conditional logic) that I'm not aware of.  Someone from Trak might now.  The HS-Default-ObservationItem.txt file is a uniquely HealthShare concept, but the code table that it populates (User.MRCObservationItem) belongs to Trak.

Thanks Jorge, this is helpful.  Your example of computing BMI is actually what the customer is trying to do, although they want to do it in Health Insight.  That allows them to report BMI and use it in analytics, such as to compute a risk score.  After discussing with them we agreed that converting on consumption is safer than on ingestion, which is consistent with what you showed for the CV.