ReferenceRange
Reference range for clinical observations and laboratory results. Defines normal, therapeutic, or critical value boundaries with support for population-specific ranges by age and demographics. Follows FHIR Observation.referenceRange conventions.
Overview
ReferenceRange specifies acceptable value boundaries for clinical measurements. Ranges can be fully bounded (both low and high), semi-bounded (only low or only high), or open. Different range types serve different purposes: normal ranges define healthy values, therapeutic ranges define treatment targets, and critical ranges define dangerous thresholds. Population-specific customization allows age and demographic-appropriate interpretation.
Key Concepts
Range Structure
Each range can have:
| Field | Purpose | Example |
|---|---|---|
low | Lower bound with value and unit | 70 mg/dL |
high | Upper bound with value and unit | 100 mg/dL |
type | Clinical purpose of the range | normal, therapeutic, critical |
text | Human-readable description | "Normal fasting glucose" |
appliesTo | Population characteristics | ["adult", "female"] |
age | Age range in years | { low: 18, high: 65 } |
Range Types
| Type | Purpose | Example |
|---|---|---|
normal | Healthy/expected values | Fasting glucose 70-100 mg/dL |
recommended | Target values for health | LDL cholesterol < 100 mg/dL |
treatment | Goals during treatment | A1C < 7% for diabetics |
therapeutic | Drug level targets | Warfarin INR 2.0-3.0 |
critical | Dangerous thresholds | Potassium < 2.5 mEq/L |
Bounded vs Semi-Bounded
Fully Bounded - Both limits defined:
- Glucose: 70-100 mg/dL
- Heart rate: 60-100 bpm
Lower Bound Only - Minimum threshold:
- Hemoglobin: > 12 g/dL (anemia threshold)
- Potassium: > 2.5 mEq/L (critical low)
Upper Bound Only - Maximum threshold:
- Bilirubin: < 1.2 mg/dL
- TSH: < 4.0 mIU/L
Units of Measure
Values include UCUM-compatible units:
value- Numeric measurementunit- Human-readable unit (e.g., "mg/dL")system- Unit system URI (http://unitsofmeasure.org)code- UCUM code for interoperability
Population-Specific Ranges
Different populations have different normal values:
By Sex
- Hemoglobin: Male 14-18 g/dL, Female 12-16 g/dL
By Age
- Heart rate: Infant 100-160 bpm, Adult 60-100 bpm
By Condition
- A1C: Non-diabetic < 5.7%, Diabetic target < 7%
Use Cases
Laboratory Result Interpretation
When displaying lab results:
- Retrieve applicable reference ranges
- Match patient demographics (age, sex)
- Compare result to range boundaries
- Flag values outside normal range
- Highlight critical values
Clinical Decision Support
For automated alerting:
- Define critical ranges for dangerous values
- Trigger alerts when results exceed critical thresholds
- Notify appropriate care team
- Document alert and response
Drug Level Monitoring
For therapeutic drug monitoring:
- Define therapeutic ranges for medications
- Monitor trough/peak levels
- Alert if outside therapeutic window
- Guide dose adjustments
Quality Metrics
For clinical quality measures:
- Define recommended ranges for outcomes
- Track patient values vs targets
- Report percentage within range
- Identify improvement opportunities
Result Reporting
For patient-facing results:
- Show result with reference range
- Indicate normal/abnormal status
- Provide age/sex-appropriate comparison
- Include interpretive text
Related Entities
| Entity | Relationship | Description |
|---|---|---|
| LaboratoryResult | Used by | Lab results compared against reference ranges |
| VitalSign | Used by | Vital signs with normal ranges |
Calculated Fields
| Field | Type | Description |
|---|---|---|
hasLow | boolean | True if lower bound is defined |
hasHigh | boolean | True if upper bound is defined |
isBounded | boolean | True if both lower and upper bounds are defined |
Enums
type
| Value | Description |
|---|---|
normal | Normal/healthy reference range for general population |
recommended | Recommended target values for optimal health |
treatment | Target range during active treatment |
therapeutic | Therapeutic drug level range for medication monitoring |
critical | Critical thresholds indicating immediate clinical concern |
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| low | object | stored | Lower bound of the reference range, representing the minimum acceptable or normal value for the measurement Example: | Optional |
| high | object | stored | Upper bound of the reference range, representing the maximum acceptable or normal value for the measurement Example: | Optional |
| type | string | enum | Classification of the reference range indicating its clinical or contextual meaning Values: Example: | Optional |
| text | string | stored | Human-readable textual description or narrative of the reference range, useful for conveying context, conditions, or qualitative aspects not captured by numeric bounds Example: | Optional |
| appliesTo | array | stored | Population characteristics or demographic groups to which this reference range applies, enabling population-specific interpretations (e.g., gender, age category, pregnancy status, ethnicity) Example: | Optional |
| age | object | stored | Age range in years for which this reference range is valid, enabling age-specific clinical interpretations Example: | Optional |
| hasLow | boolean | computed | Calculated indicator of whether a lower bound is defined for this reference range Example: | Optional |
| hasHigh | boolean | computed | Calculated indicator of whether an upper bound is defined for this reference range Example: | Optional |
| isBounded | boolean | computed | Calculated indicator of whether both lower and upper bounds are defined, signifying a fully bounded reference range Example: | Optional |
Examples
Example 1
{
"@type": "ReferenceRange",
"low": {
"value": 70,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"high": {
"value": 100,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"type": "normal",
"text": "Normal fasting blood glucose for non-diabetic adults",
"appliesTo": [
"adult"
],
"age": {
"low": 18,
"high": 120
}
}Example 2
{
"@type": "ReferenceRange",
"low": {
"value": 12,
"unit": "g/dL",
"system": "http://unitsofmeasure.org",
"code": "g/dL"
},
"high": {
"value": 15.5,
"unit": "g/dL",
"system": "http://unitsofmeasure.org",
"code": "g/dL"
},
"type": "normal",
"text": "Normal hemoglobin levels for adult females",
"appliesTo": [
"adult",
"female"
],
"age": {
"low": 18,
"high": 120
}
}Example 3
{
"@type": "ReferenceRange",
"low": {
"value": 2.5,
"unit": "mEq/L",
"system": "http://unitsofmeasure.org",
"code": "meq/L"
},
"type": "critical",
"text": "Critical low potassium - below this threshold requires immediate intervention",
"appliesTo": [
"adult"
]
}Example 4
{
"@type": "ReferenceRange",
"high": {
"value": 15,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"type": "critical",
"text": "Critical high bilirubin for newborns - above this threshold may indicate severe jaundice",
"appliesTo": [
"newborn"
],
"age": {
"low": 0,
"high": 0.08
}
}Example 5
{
"@type": "ReferenceRange",
"low": {
"value": 2,
"unit": "ratio",
"system": "http://unitsofmeasure.org",
"code": "{ratio}"
},
"high": {
"value": 3,
"unit": "ratio",
"system": "http://unitsofmeasure.org",
"code": "{ratio}"
},
"type": "therapeutic",
"text": "Therapeutic INR range for patients on warfarin anticoagulation therapy",
"appliesTo": [
"adult"
]
}Example 6
{
"@type": "ReferenceRange",
"low": {
"value": 60,
"unit": "bpm",
"system": "http://unitsofmeasure.org",
"code": "/min"
},
"high": {
"value": 100,
"unit": "bpm",
"system": "http://unitsofmeasure.org",
"code": "/min"
},
"type": "normal",
"text": "Normal resting heart rate for pediatric patients aged 6-15 years",
"appliesTo": [
"pediatric"
],
"age": {
"low": 6,
"high": 15
}
}