Profiles & Interactions > Structure Definition: Observation-HousingStatus Profile

Profile: Observation-HousingStatus

Canonical URL:http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-housing-status

Simplifier project page: MHA Observation-HousingStatus 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..1stringFixed Value
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
textS Σ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..1stringFixed Value
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
textS Σ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..1stringFixed Value
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
textS Σ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].coding..1
Observation.value[x].coding.system1..
Observation.value[x].coding.code1..
Observation.value[x].coding.display1..
Observation.value[x].text..
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:18:59.7604984+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-housing-status",
"version": "2.0.0",
"name": "ObservationHousingStatus",
"title": "MHA Observation-HousingStatus 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 housing status.",
"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-housing-status",
"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": "71802-3",
"mustSupport": true
},
{
"id": "Observation.code.coding.display",
"path": "Observation.code.coding.display",
"min": 1,
"fixedString": "Housing Status",
"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-housing-status-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
},
{
"id": "Observation.value[x].coding",
"path": "Observation.value[x].coding",
"max": "1",
"mustSupport": true,
"binding": {
"strength": "required",
"description": "The type of residential setting and arrangement where the client normally lives",
"valueSet": "http://ontariohealth.ca/fhir/ValueSet/housing-status|2.0.0"
}
},
{
"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.value[x].text",
"path": "Observation.value[x].text",
"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-HousingStatus Resource is used to collect data regarding a client's housing status as defined in MHA PDS 2.0. Housing status refers to whether an individual owns or rents their residence, lives in social or subsidized housing, or in a facility, or is underhoused or experiencing homelessness.

Notes

.meta.profile

  • Used to declare conformance to this profile
  • SHOULD populate with a fixed value: http://ontariohealth.ca/fhir/StructureDefinition/ca-on-profile-observation-housing-status|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 71802-3.
    • display SHALL contain a fixed value of Housing Status.

.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

  • If HSPs can send a code in the associated value set, it SHALL populate valueCodeableConcept.coding with the system, code and display, and skip valueCodableConcept.text
  • If HSPs captures a value outside of the codes in the value set, they SHALL provide it under valueCodeableConcept.text, and skip valueCodeableConcept.coding
  • 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.