Concept Numeric Ranges: Should "High" mean n+1...?

@burke @akanter @ball there is something confusing me here.

In the example below, I am trying to set up Viral Load lab results to be flagged as “critical” if the numeric value is >100.

  • I expected that writing “100” here would mean than anything “100 AND UP” would be flagged criticial.
  • However: the system is operating as “100+1 AND UP”, as you can see in the screenshot below, where the system does not flag 100 as critical, but it does flag 101 as critical.

What is the expected logic here? Shouldn’t it be “100 AND UP”? (In fact our concept editing form even says “range values are inclusive”…so is this a bug?)

image

image

Certainly would appear that hitting the threshold should be included… so 100 is critical high.

1 Like

You’re right, @grace @akanter . In this example, ‘100’ should be included as a critical value.

1 Like

Unfortunately, there’s no javadoc guidance in our API docs, but I believe these ranges were intended to be inclusive, so testing for values outside of those ranges would treat the bounds as exclusive.

In other words, these values define the inclusive bounds for normal, abnormal, and absolute. For example, consider an imaginary test with these bounds:

Absolute High 50
Critical High 40
Normal High 30
Normal Low 20
Critical Low 10
Absolute Low 0

This translates into:

Range More precisely
Normal range 20 - 30 Any value ≥ 20 and ≤ 30
Abnormal range 10 - 40 Any value ≥ 10 - < 20 or >30 - ≤ 40
Absolute range 0 - 50 All values must be ≥ 0 and ≤ 50

I think the confusion comes from the labels being changed from their original “Abnormal High” and “Abnormal Low” to “Critical High” and “Critical Low”. But seeing @akanter and @ball’s responses…

So, are we saying that normal range is inclusive and abnormal range is exclusive?

In other words, using my example, the normal range is 20 - 30 and the abnormal range is 9.9̅9̅ - 39.9̅9̅?

Thanks for the detailed discussion, Burke. I think we can define this how we want, but it does seem like normal range is inclusive. I think the challenge with your example is the following:

Absolute High | 50 |

  • | - | Critical High | 40 | Normal High | 30 | Normal Low | 20 | Critical Low | 10 | Absolute Low | 0 |

This translates into:


| Range | More precisely |

  • | - | - | Normal range
    | 20 - 30 | Any value ≥ 20 and ≤ 30 |
    Abnormal range
    Critical

    |
    10 - 40
    0 -10 40-50

    |
    Any value > 10 - < 20 or >30 - < 40
    Any value >=0 and <=10 or >=40 and <=50

    | Absolute range | 0 - 50 |
    All values must be ≥ 0 and ≤ 50
    |

Normal seems intuitive, and the absolute range also seems intuitive. The problem is that when I am tagging something as HIGH, VERY HIGH, etc, that the number seems to intuitively be the included in that designation (threshold).