ClinicalObservation
A generic clinical observation representing any measurable, observable, or assessable finding about a patient. Supports quantitative measurements, qualitative assessments, coded results, and boolean outcomes with interpretation flags.
Overview
ClinicalObservation is a flexible entity for capturing any clinical finding about a patient. It supports multiple value types: numeric measurements with units, coded values from terminologies, free-text descriptions, and boolean (yes/no) results. Each observation is coded (typically LOINC), categorized, timestamped, and can include clinical interpretation. This entity forms the foundation for vital signs, lab results, exam findings, and social history.
Key Concepts
Observation Categories
The category field classifies observations:
| Category | Description | Examples |
|---|---|---|
vital-signs | Basic physiological measurements | BP, HR, temp, SpO2 |
laboratory | Lab test results | CBC, chemistry, urinalysis |
imaging | Imaging findings | X-ray results, CT findings |
exam | Physical examination findings | Heart murmur, rash |
survey | Patient-reported assessments | PHQ-9, pain scale |
social-history | Social and behavioral factors | Smoking status, alcohol use |
activity | Physical activity data | Steps, exercise minutes |
Value Types
Observations support multiple value types:
| Field | Type | Use Case |
|---|---|---|
valueQuantity + valueUnit | Number with unit | BP: 120 mmHg |
valueCode | Coded value | Smoking: Former smoker |
valueString | Free text | "Mild tenderness on palpation" |
valueBoolean | Yes/No | Heart murmur: true |
Observation Coding
The code field defines what is being observed:
- LOINC for measurements and tests
- SNOMED-CT for clinical findings
- Enables standardized data exchange
- Supports analytics and research
Interpretation Flags
The interpretation field provides clinical context:
| Interpretation | Meaning | Alert Level |
|---|---|---|
normal | Within reference range | None |
abnormal | Outside reference range | Low |
high | Above high limit | Medium |
low | Below low limit | Medium |
critical-high | Dangerously elevated | High |
critical-low | Dangerously decreased | High |
positive | Present (qualitative) | Varies |
negative | Absent (qualitative) | None |
Observation Status
Lifecycle from collection to verification:
| Status | Description |
|---|---|
registered | Initial entry |
preliminary | Pending verification |
final | Verified and complete |
amended | Modified after final |
corrected | Error corrected |
cancelled | Voided |
entered-in-error | Invalid |
Temporal Context
Two time fields capture different moments:
effectiveDateTime- When observation was madeissued- When result was releasedeffectivePeriod- For observations over time
Use Cases
Recording Vital Signs
When measuring patient vitals:
- Create observation with
category: "vital-signs" - Code with appropriate LOINC (e.g., 8867-4 for heart rate)
- Record value in
valueQuantityandvalueUnit - Set interpretation if abnormal
- Document performer and time
Laboratory Results
When reporting lab values:
- Create observation with
category: "laboratory" - Code with LOINC test code
- Record numeric result with units
- Set interpretation based on reference range
- Note method if clinically relevant
- Flag critical values
Physical Exam Finding
When documenting exam:
- Create observation with
category: "exam" - Code finding with SNOMED-CT
- Use
valueBooleanfor presence/absence - Or
valueStringfor description - Document
bodySiteif localized - Note method (auscultation, palpation)
Social History
When documenting social factors:
- Create observation with
category: "social-history" - Code the factor (smoking, alcohol)
- Use
valueCodefor standardized answer - Add narrative context in
note - Document effective period if applicable
Critical Value Alert
When result is critical:
- Set
interpretation: "critical-high"or"critical-low" - Document notification in
note - Calculated
isCriticalflag triggers alerts - Ensure rapid provider notification
- Document acknowledgment
Related Entities
| Entity | Relationship | Description |
|---|---|---|
| Patient | References | Subject of observation |
| Encounter | References | Visit context |
| Practitioner | References many | Performer(s) |
| Coding | Contains | Observation code, method, valueCode |
| HealthReferenceBodySite | References | Anatomical location |
Calculated Fields
| Field | Type | Description |
|---|---|---|
hasNumericValue | boolean | True when valueQuantity is present |
isCritical | boolean | True when interpretation is critical-high or critical-low |
Enums
status
| Value | Description |
|---|---|
registered | Observation recorded but not yet verified |
preliminary | Initial results available, pending final verification |
final | Observation verified and complete |
amended | Observation modified after being finalized |
corrected | Observation corrected due to error |
cancelled | Observation cancelled and not valid |
entered-in-error | Observation created in error |
category
| Value | Description |
|---|---|
vital-signs | Basic physiological measurements (BP, HR, temp, SpO2) |
laboratory | Laboratory test results and analyses |
imaging | Findings from imaging studies |
exam | Physical examination findings |
survey | Patient-reported outcomes and assessments |
social-history | Social, behavioral, and lifestyle factors |
activity | Physical activity and exercise data |
interpretation
| Value | Description |
|---|---|
normal | Result within normal reference range |
abnormal | Result outside normal limits (unspecified direction) |
high | Result above upper reference limit |
low | Result below lower reference limit |
critical-high | Result dangerously elevated, requires immediate attention |
critical-low | Result dangerously decreased, requires immediate attention |
positive | Finding is present (for qualitative tests) |
negative | Finding is absent (for qualitative tests) |
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| patient | Patient | stored | The patient who is the subject of this observation - the individual about whom the finding, measurement, or assessment was made Example: | Required |
| encounter | Encounter | stored | The healthcare encounter or episode of care during which this observation was made, providing context for when and where the observation occurred Example: | Optional |
| status | string | stored | The lifecycle status of the observation indicating the degree of validation and finality, from initial registration through final verification or potential cancellation Values: Example: | Required |
| category | string | stored | High-level classification of the type of observation being made, enabling filtering and organization of observations by clinical domain or data source Values: Example: | Optional |
| code | Coding | stored | The standardized code that defines what was observed - the question being answered or the parameter being measured, typically from LOINC for observations and measurements or SNOMED-CT for clinical findings Example: | Required |
| effectiveDateTime | DateTime | stored | The specific date and time when the observation was made or the specimen was collected - represents the clinically relevant time for point-in-time observations Example: | Optional |
| effectivePeriod | Period | stored | The time interval during which the observation applies when the observation represents a state or finding that persists over time rather than a single point measurement Example: | Optional |
| issued | DateTime | stored | The date and time when the observation result was published, verified, or made available - typically later than the effective time for laboratory or imaging results Example: | Optional |
| performer | Practitioner[] | stored | The healthcare professional(s) responsible for making the observation, performing the measurement, or validating the result - can include multiple performers for complex procedures Example: | Optional |
| valueQuantity | number | stored | The numeric result value for quantitative observations and measurements - must be accompanied by valueUnit to provide complete semantic meaning Example: | Optional |
| valueUnit | string | stored | The unit of measurement for valueQuantity expressed using standardized units (UCUM preferred) - examples include beats/min, mg/dL, mmHg, kg, cm Example: | Optional |
| valueString | string | stored | A textual result value used for free-text observations, descriptive findings, or when the result cannot be adequately expressed in structured form Example: | Optional |
| valueBoolean | boolean | stored | A yes/no or true/false result for binary observations such as presence/absence of a finding, positive/negative test results, or boolean assessments Example: | Optional |
| valueCode | Coding | stored | A result expressed as a standardized coded value from a controlled terminology - used when the observation result itself is a coded concept rather than a number or text Example: | Optional |
| interpretation | string | stored | Clinical interpretation or assessment of the observation result indicating whether the finding is within normal limits, abnormal, or critically abnormal - critical for alerting and clinical decision support Values: Example: | Optional |
| bodySite | HealthReferenceBodySite | stored | The anatomical location or body site where the observation was made, particularly relevant for physical examination findings, imaging studies, and localized assessments Example: | Optional |
| method | Coding | stored | The technique, methodology, or protocol used to obtain the observation - important for interpreting results when multiple measurement methods exist with different reference ranges Example: | Optional |
| note | string | stored | Additional comments, annotations, or contextual information about the observation that doesn't fit into structured fields - may include clinical context, caveats, or explanatory notes Example: | Optional |
| hasNumericValue | boolean | calculated | Computed indicator showing whether this observation contains a numeric result (valueQuantity is not null) - useful for filtering quantitative observations for trending and analytics | Optional |
| isCritical | boolean | calculated | Computed flag indicating whether the observation interpretation is critical-high or critical-low, requiring immediate clinical attention - triggers alerts and escalation workflows | Optional |
Examples
Example 1
{
"@type": "ClinicalObservation",
"patient": "patient-12345",
"encounter": "encounter-67890",
"status": "final",
"category": "vital-signs",
"code": {
"code": "8867-4",
"system": "LOINC",
"display": "Heart rate"
},
"effectiveDateTime": "2024-03-15T10:30:00Z",
"issued": "2024-03-15T10:31:00Z",
"performer": [
"practitioner-11111"
],
"valueQuantity": 72,
"valueUnit": "beats/min",
"interpretation": "normal",
"note": "Patient at rest, regular rhythm",
"_comment": "hasNumericValue: true, isCritical: false"
}Example 2
{
"@type": "ClinicalObservation",
"patient": "patient-54321",
"encounter": "encounter-98765",
"status": "final",
"category": "social-history",
"code": {
"code": "72166-2",
"system": "LOINC",
"display": "Tobacco smoking status"
},
"effectiveDateTime": "2024-03-15T14:00:00Z",
"performer": [
"practitioner-22222"
],
"valueCode": {
"code": "LA18632-2",
"system": "LOINC",
"display": "Former smoker"
},
"note": "Patient quit smoking 5 years ago, previously 1 pack per day for 20 years",
"_comment": "hasNumericValue: false, isCritical: false"
}Example 3
{
"@type": "ClinicalObservation",
"patient": "patient-99999",
"encounter": "encounter-11111",
"status": "final",
"category": "laboratory",
"code": {
"code": "2345-7",
"system": "LOINC",
"display": "Glucose [Mass/volume] in Serum or Plasma"
},
"effectiveDateTime": "2024-03-14T08:00:00Z",
"issued": "2024-03-14T10:45:00Z",
"performer": [
"practitioner-33333"
],
"valueQuantity": 450,
"valueUnit": "mg/dL",
"interpretation": "critical-high",
"method": {
"code": "702873001",
"system": "SNOMED-CT",
"display": "Enzymatic method"
},
"note": "Critical value notified to ordering physician",
"_comment": "hasNumericValue: true, isCritical: true"
}Example 4
{
"@type": "ClinicalObservation",
"patient": "patient-77777",
"encounter": "encounter-22222",
"status": "final",
"category": "exam",
"code": {
"code": "301284009",
"system": "SNOMED-CT",
"display": "Heart murmur"
},
"effectiveDateTime": "2024-03-15T11:15:00Z",
"performer": [
"practitioner-44444"
],
"valueBoolean": true,
"interpretation": "abnormal",
"bodySite": {
"code": "HEART",
"label": "Heart",
"system": "cardiovascular",
"laterality": "not-applicable"
},
"method": {
"code": "113011001",
"system": "SNOMED-CT",
"display": "Auscultation"
},
"note": "Grade 2/6 systolic murmur heard best at left sternal border, referral to cardiology recommended",
"_comment": "hasNumericValue: false, isCritical: false"
}