Profiles & Interactions > Structure Definition: Observation-TotalHouseholdIncome Profile

Profile: Observation-TotalHouseholdIncome

Canonical URL:[http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-total-household-income]
(Observation)

Simplifier project page: MHA Observation-TotalHouseholdIncome Profile

Derived from: Observation(R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

Differential View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ C0..*Reference(ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure)
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
focusΣ C0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
effectiveDateTimedateTime
issuedΣ0..1instant
performerΣ C0..*Reference(CareTeam | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
interpretation0..*CodeableConceptBinding
note0..*Annotation
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimenC0..1Reference(Specimen)
deviceC0..1Reference(Device | DeviceMetric)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
lowC0..1SimpleQuantity
highC0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageC0..1Range
text0..1string
hasMemberΣ C0..*Reference(MolecularSequence | Observation | QuestionnaireResponse)
derivedFromΣ C0..*Reference(DocumentReference | ImagingStudy | Media | MolecularSequence | Observation | QuestionnaireResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ1..1CodeableConcept
valueBooleanboolean
valueCodeableConceptCodeableConcept
valueDateTimedateTime
valueIntegerinteger
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueStringstring
valueTimetime
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

Hybrid View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ C0..*Reference(ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure)
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
focusΣ C0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
effectiveDateTimedateTime
issuedΣ0..1instant
performerΣ C0..*Reference(CareTeam | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
interpretation0..*CodeableConceptBinding
note0..*Annotation
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimenC0..1Reference(Specimen)
deviceC0..1Reference(Device | DeviceMetric)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
lowC0..1SimpleQuantity
highC0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageC0..1Range
text0..1string
hasMemberΣ C0..*Reference(MolecularSequence | Observation | QuestionnaireResponse)
derivedFromΣ C0..*Reference(DocumentReference | ImagingStudy | Media | MolecularSequence | Observation | QuestionnaireResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ1..1CodeableConcept
valueBooleanboolean
valueCodeableConceptCodeableConcept
valueDateTimedateTime
valueIntegerinteger
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueStringstring
valueTimetime
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

Snapshot View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ C0..*Reference(ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure)
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
focusΣ C0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
effectiveDateTimedateTime
issuedΣ0..1instant
performerΣ C0..*Reference(CareTeam | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayS Σ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
interpretation0..*CodeableConceptBinding
note0..*Annotation
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimenC0..1Reference(Specimen)
deviceC0..1Reference(Device | DeviceMetric)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
lowC0..1SimpleQuantity
highC0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageC0..1Range
text0..1string
hasMemberΣ C0..*Reference(MolecularSequence | Observation | QuestionnaireResponse)
derivedFromΣ C0..*Reference(DocumentReference | ImagingStudy | Media | MolecularSequence | Observation | QuestionnaireResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ1..1CodeableConcept
valueBooleanboolean
valueCodeableConceptCodeableConcept
valueDateTimedateTime
valueIntegerinteger
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueStringstring
valueTimetime
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

Table View

Observation..
Observation.meta1..
Observation.meta.profile1..1
Observation.status..
Observation.category1..1
Observation.category.coding1..1
Observation.category.coding.system1..
Observation.category.coding.code1..
Observation.category.coding.display1..
Observation.code..
Observation.code.coding1..1
Observation.code.coding.system1..
Observation.code.coding.code1..
Observation.code.coding.display1..
Observation.subjectReference(Patient)1..
Observation.subject.reference1..
Observation.effective[x]dateTime1..
Observation.value[x]CodeableConcept..
Observation.value[x].coding1..1
Observation.value[x].coding.system1..
Observation.value[x].coding.code1..
Observation.value[x].coding.display1..
Observation.dataAbsentReason..
Observation.dataAbsentReason.coding1..1
Observation.dataAbsentReason.coding.system1..
Observation.dataAbsentReason.coding.code1..
Observation.dataAbsentReason.coding.display1..

JSON View

{
"resourceType": "StructureDefinition",
"id": "Observation",
"meta": {
"lastUpdated": "2026-03-04T19:23:38.7604231+00:00"
},
"text": {
"status": "extensions",
--- We have skipped the narrative for better readability of the resource ---
},
"url": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-total-household-income",
"version": "2.0.0",
"name": "ObservationIncomeAmount",
"title": "MHA Observation-TotalHouseholdIncome Profile",
"status": "active",
"date": "2022-08-22T20:17:06.3613088+00:00",
"publisher": "Ontario Health",
"description": "This profile constrains the Observation resource for use related to Social Determinants of Health observations that involve assessments conducted along the client journey.",
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "US"
}
]
}
],
"purpose": "This resource will capture information pertaining to the client's total household income.",
"fhirVersion": "4.0.1",
"mapping": [
{
"identity": "workflow",
"uri": "http://hl7.org/fhir/workflow",
"name": "Workflow Pattern"
},
{
"identity": "sct-concept",
"uri": "http://snomed.info/conceptdomain",
"name": "SNOMED CT Concept Domain Binding"
},
{
"identity": "v2",
"uri": "http://hl7.org/v2",
"name": "HL7 v2 Mapping"
},
{
"identity": "rim",
"uri": "http://hl7.org/v3",
"name": "RIM Mapping"
},
{
"identity": "w5",
"uri": "http://hl7.org/fhir/fivews",
"name": "FiveWs Pattern Mapping"
},
{
"identity": "sct-attr",
"uri": "http://snomed.org/attributebinding",
"name": "SNOMED CT Attribute Binding"
},
{
"identity": "MHA-PDS-Mapping",
"name": "MHA PDS Mapping"
}
],
"kind": "resource",
"abstract": false,
"type": "Observation",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
"derivation": "constraint",
"element": [
{
"id": "Observation",
"path": "Observation",
"short": "SDOH assessment observation",
"definition": "For SDOH observations derived from assessment of the client.",
"comment": "For representation of SDOH observations that involve assessments conducted along the client journey.",
{
"key": "mha-obs-inv-1",
"severity": "error",
"human": "Only one of value[x] and dataAbsentReason SHALL be present",
"expression": "value.empty() != dataAbsentReason.empty()"
}
],
"mustSupport": true
},
{
"id": "Observation.meta",
"path": "Observation.meta",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.meta.profile",
"path": "Observation.meta.profile",
"min": 1,
"max": "1",
"fixedCanonical": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-total-household-income",
"mustSupport": true
},
{
"id": "Observation.status",
"path": "Observation.status",
"mustSupport": true
},
{
"id": "Observation.category",
"path": "Observation.category",
"min": 1,
"max": "1",
"mustSupport": true,
"binding": {
"strength": "required"
}
},
{
"id": "Observation.category.coding",
"path": "Observation.category.coding",
"min": 1,
"max": "1",
"mustSupport": true
},
{
"id": "Observation.category.coding.system",
"path": "Observation.category.coding.system",
"min": 1,
"fixedUri": "http://terminology.hl7.org/CodeSystem/observation-category",
"mustSupport": true
},
{
"id": "Observation.category.coding.code",
"path": "Observation.category.coding.code",
"min": 1,
"fixedCode": "social-history",
"mustSupport": true
},
{
"id": "Observation.category.coding.display",
"path": "Observation.category.coding.display",
"min": 1,
"fixedString": "Social History",
"mustSupport": true
},
{
"id": "Observation.code",
"path": "Observation.code",
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://ontariohealth.ca/fhir/ValueSet/sdohObservationCode"
}
},
{
"id": "Observation.code.coding",
"path": "Observation.code.coding",
"min": 1,
"max": "1",
"mustSupport": true
},
{
"id": "Observation.code.coding.system",
"path": "Observation.code.coding.system",
"min": 1,
"fixedUri": "http://loinc.org",
"mustSupport": true
},
{
"id": "Observation.code.coding.code",
"path": "Observation.code.coding.code",
"min": 1,
"fixedCode": "77244-2",
"mustSupport": true
},
{
"id": "Observation.code.coding.display",
"path": "Observation.code.coding.display",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.subject",
"path": "Observation.subject",
"min": 1,
"type": [
{
"code": "Reference",
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient"
]
}
],
"mustSupport": true
},
{
"id": "Observation.subject.reference",
"path": "Observation.subject.reference",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.effective[x]",
"path": "Observation.effective[x]",
"min": 1,
"type": [
{
"code": "dateTime"
}
],
{
"key": "sdoh-income-inv-1",
"severity": "error",
"human": "Effective Date must be a full date (YYYY-MM-DD)",
"expression": "$this.toString().matches('^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$')"
}
],
"mustSupport": true
},
{
"id": "Observation.value[x]",
"path": "Observation.value[x]",
"type": [
{
"code": "CodeableConcept"
}
],
"mustSupport": true,
"binding": {
"strength": "required",
"description": "The combined annual income (before tax) of client's household from all sources, including wages, commissions, bonuses, social assistance and retirement income.",
"valueSet": "http://ontariohealth.ca/fhir/ValueSet/total-household-income|2.0.0"
}
},
{
"id": "Observation.value[x].coding",
"path": "Observation.value[x].coding",
"min": 1,
"max": "1",
"mustSupport": true
},
{
"id": "Observation.value[x].coding.system",
"path": "Observation.value[x].coding.system",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.value[x].coding.code",
"path": "Observation.value[x].coding.code",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.value[x].coding.display",
"path": "Observation.value[x].coding.display",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.dataAbsentReason",
"path": "Observation.dataAbsentReason",
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://ontariohealth.ca/fhir/ValueSet/mha-sdoh-data-absent-reason"
}
},
{
"id": "Observation.dataAbsentReason.coding",
"path": "Observation.dataAbsentReason.coding",
"min": 1,
"max": "1",
"mustSupport": true
},
{
"id": "Observation.dataAbsentReason.coding.system",
"path": "Observation.dataAbsentReason.coding.system",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.dataAbsentReason.coding.code",
"path": "Observation.dataAbsentReason.coding.code",
"min": 1,
"mustSupport": true
},
{
"id": "Observation.dataAbsentReason.coding.display",
"path": "Observation.dataAbsentReason.coding.display",
"min": 1,
"mustSupport": true
}
]
}
}

Usage

The Observation-TotalHouseholdIncome Resource is used to collect data regarding a client's total household income, as defined by MHA PDS 2.0. It identifies the client's total family income before taxes last year among adults 16 and older. Family income refers to the total income of all adult family members and how many people the family income supports (separate profile).

Notes

.meta.profile

  • Used to declare conformance to this profile
  • Populate with a fixed value: http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-total-household-income|2.0.0

.status

  • SHALL send an applicable value defined in FHIR. If vendor system does not support this field, use “unknown”.

.category

  • SHALL contain one coding element with system, code and display
    • system SHALL contain a fixed URI value of http://terminology.hl7.org/CodeSystem/observation-category
    • code SHALLcontain a fixed value of social-history.
    • display SHALL contain a fixed value of Social History.

.code

  • SHALL contain one coding element with system, code and display
    • system SHALL contain a fixed URI value of http://loinc.org
    • code SHALLcontain a fixed value of 77244-2.
    • display SHALL contain a fixed value of Total Household Income.

.subject

  • SHALL contain a reference to the Patient resource to which this Observation resource applies

.effectiveDateTime

  • SHALL contain an effective date if the SDOH attribute is effective only from a specific date, and that date is known.

.valueCodeableConcept

  • SHALL populate valueCodeableConcept.coding with the system, code and display.
  • If this is populated, dataAbsentReason field SHALL not be populated

.dataAbsentReason

  • SHALL contain a code in the value set if value[x] cannot be provided
  • If populated, value[x] SHALL not be populated.