SDOH Clinical Care
2.1.0 - STU 2.1 United States of America flag

SDOH Clinical Care, published by HL7 International / Patient Care. This guide is not an authorized publication; it is the continuous build for version 2.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-sdoh-clinicalcare/ and changes regularly. See the Directory of published versions

Resource Profile: SDOHCC Observation Screening Response

Official URL: http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-ObservationScreeningResponse Version: 2.1.0
Standards status: Trial-use Computable Name: SDOHCCObservationScreeningResponse

Profile for observations that represent question and answer pairs from Social Determinants of Health (SDOH) screening instruments.

Purpose

SDOHCC Observation Screening Response (OSR) is intended to represent question-answer pairs from Social Determinants of Health (SDOH) assessment instruments. An OSR that identifies a social risk or need can be referenced as evidence for an SDOHCC Condition. Sometimes, instead of representing a question that was answered directly on an assessment instrument, an OSR may be derived from one or more other OSRs (see SDOHCC Observation Response Hunger Vital Sign Question 3 Example). Additionally, an OSR may be addressed by, or be the outcome of, an SDOHCC Goal, or be the reason for an SDOHCC ServiceRequest or an SDOHCC Procedure. See the Data Modeling Framework for more detail on the relationships between OSR and other profiles in this IG.

An OSR can also group a collection of OSRs using the hasMember field. A OSR grouping, that provides the LOINC code of the assessment instrument from which the member OSRs were created, is especially useful when there is no QuestionnaireReponse, Paper Form, or PDF to support the association of the individual OSRs with an assessment instrument. Although an OSR grouping can also be created for OSRs produced from a QuestionnaireResponse, the grouping will be somewhat redundant when the member OSRs already reference QuestionnaireResponse using the derivedFrom field.

This IG focuses on responses to assessment instruments that are captured using QuestionnaireResponse. To facilitate querying and searching, it is best that individual responses from a QuestionnaireResponse be converted into Observations. The decision as to which responses from a QuestionnaireResponse should be converted into Observations will generally be driven by the clinical utility of each Observation. While clinical utility is subjective, the question codes in the preferred value sets in the Notes section below provide the questions that Gravity has vetted as face-valid. For more information on this topic and Observation grouping see Options for Representing Assessment Instrument Responses in FHIR.

In the future, to promote interoperability by ensuring consistency in Observations generated from an assessment instrument, a single StructureMap instance should ideally be provided for each assessment instrument.

Usage

Rather than offer a separate SDOHCC Observation Screening Response profile for each SDOH category (also called domain – e.g., food insecurity, transportation insecurity), this profile can support any SDOH category. For Observation.code and Observation.value, the minimum value set bindings are specified in the profile. Additionally, based on the code selected for the optional Observation.category slice, the Table in the Notes section below provides the Gravity-vetted, preferred value sets for Observation.code and Observation.value. Where a preferred value set contains a code to describe a needed concept, servers SHOULD use that code.

The preferred value sets in the Table are hosted in the NIH Value Set Authority Center (VSAC). The Gravity Project plans to continue to work with the HL7 Vocabulary WG to determine how best to represent and validate these preferred, category-specific value sets.

Usage:

Formal Views of Profile Content

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

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationSDOH screening questionnaire observations
... status S1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
... Slices for category 2..*CodeableConceptClassification of type of observation
Slice: Unordered, Open by value:$this
.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
.... category:Survey S1..1CodeableConceptClassification of type of observation
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code S1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... effective[x] S1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer S0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] S0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual result
Slice: Unordered, Open by type:$this
.... value[x]:valueQuantity 0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept 0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason S0..1CodeableConceptWhy the result is missing
... bodySite 0..0
... specimen 0..0
... Slices for hasMember 0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember S0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom S0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom S0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationSDOH screening questionnaire observations
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
.... category:Survey S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... subject SΣ1..1Reference(US Core Patient Profile)Who and/or what the observation is about
... effective[x] SΣ1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer SΣ0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] SΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... value[x]:valueQuantity ΣC0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... Slices for hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember SΣ0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom SΣ0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom SΣ0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SocialHistorypreferredPattern: social-history
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SurveypreferredPattern: survey
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationSDOH screening questionnaire observations
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)Part of referenced event
... status ?!SΣ1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
... Slices for category 2..*CodeableConceptClassification of type of observation
Slice: Unordered, Open by value:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
.... category:Survey S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... subject SΣ1..1Reference(US Core Patient Profile)Who and/or what the observation is about
... focus Σ0..*Reference(Resource)What the observation is about, when it is not about the subject of record
... encounter Σ0..1Reference(Encounter)Healthcare event during which this observation is made
... effective[x] SΣ1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDate/Time this version was made available
... performer SΣ0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] SΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... value[x]:valueQuantity ΣC0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


... note 0..*AnnotationComments about the observation
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example): Methods for simple observations.

... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange C0..*BackboneElementProvides guide for interpretation
obs-3: Must have at least a low or a high or text
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low C0..1SimpleQuantityLow Range, if relevant
.... high C0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... Slices for hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember SΣ0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom SΣ0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom SΣ0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from
... component Σ0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason C0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SocialHistorypreferredPattern: social-history
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SurveypreferredPattern: survey
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
from the FHIR Standard
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
from the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
from the FHIR Standard
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

This structure is derived from Observation

Summary

Mandatory: 4 elements
Must-Support: 13 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Observation.category is sliced based on the value of value:$this
  • The element Observation.value[x] is sliced based on the value of type:$this
  • The element Observation.hasMember is sliced based on the value of profile:$this.resolve()
  • The element Observation.derivedFrom is sliced based on the value of profile:$this.resolve()

Differential View

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationSDOH screening questionnaire observations
... status S1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
... Slices for category 2..*CodeableConceptClassification of type of observation
Slice: Unordered, Open by value:$this
.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
.... category:Survey S1..1CodeableConceptClassification of type of observation
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code S1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... effective[x] S1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer S0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] S0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual result
Slice: Unordered, Open by type:$this
.... value[x]:valueQuantity 0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept 0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason S0..1CodeableConceptWhy the result is missing
... bodySite 0..0
... specimen 0..0
... Slices for hasMember 0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember S0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom S0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom S0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationSDOH screening questionnaire observations
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
.... category:Survey S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... subject SΣ1..1Reference(US Core Patient Profile)Who and/or what the observation is about
... effective[x] SΣ1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer SΣ0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] SΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... value[x]:valueQuantity ΣC0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... Slices for hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember SΣ0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom SΣ0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom SΣ0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SocialHistorypreferredPattern: social-history
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SurveypreferredPattern: survey
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationSDOH screening questionnaire observations
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)Part of referenced event
... status ?!SΣ1..1codefinal | corrected | entered-in-error | unknown
Binding: SDOHCC ValueSet Observation Status (required)
... Slices for category 2..*CodeableConceptClassification of type of observation
Slice: Unordered, Open by value:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


.... category:SocialHistory S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: social-history
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
.... category:Survey S1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: survey
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
.... category:SDOH S0..*CodeableConcepte.g., food-insecurity | transportation-insecurity
Binding: SDOHCC ValueSet SDOH Category (required): Codes for high-level SDOH categories.


... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (required): Codes identifying names of simple observations.

... subject SΣ1..1Reference(US Core Patient Profile)Who and/or what the observation is about
... focus Σ0..*Reference(Resource)What the observation is about, when it is not about the subject of record
... encounter Σ0..1Reference(Encounter)Healthcare event during which this observation is made
... effective[x] SΣ1..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDate/Time this version was made available
... performer SΣ0..*Reference(RelatedPerson | US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core CareTeam Profile)Who is responsible for the observation
... Slices for value[x] SΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... value[x]:valueQuantity ΣC0..1QuantityActual result
Binding: UnitsOfMeasureCaseSensitive (required): This is the entire UCUM code set.

.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: LOINCCodes (preferred): This value set includes all LOINC codes

... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


... note 0..*AnnotationComments about the observation
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example): Methods for simple observations.

... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange C0..*BackboneElementProvides guide for interpretation
obs-3: Must have at least a low or a high or text
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low C0..1SimpleQuantityLow Range, if relevant
.... high C0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... Slices for hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)References the child observations of a grouping observation
Slice: Unordered, Open by profile:$this.resolve()
.... hasMember:SupportedHasMember SΣ0..*Reference(SDOHCC Observation Screening Response)For an Observation Grouping, the Observations generated from an assessment instrument
... Slices for derivedFrom SΣ0..*Reference(DocumentReference | QuestionnaireResponse | Observation)Related measurements the observation is made from
Slice: Unordered, Open by profile:$this.resolve()
.... derivedFrom:SupportedDerivedFrom SΣ0..*Reference(SDOHCC Observation Screening Response | SDC Questionnaire Response)Related questionnaire responses or observations that the observation is made from
... component Σ0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason C0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.statusrequiredSDOHCCValueSetObservationStatus
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetObservationStatus
from this IG
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SocialHistorypreferredPattern: social-history
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SurveypreferredPattern: survey
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:SDOHrequiredSDOHCCValueSetSDOHCategory
http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory
from this IG
Observation.coderequiredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.value[x]:valueQuantityrequiredUnitsOfMeasureCaseSensitive (a valid code from UCUM)
http://terminology.hl7.org/ValueSet/v3-UnitsOfMeasureCaseSensitive
Observation.value[x]:valueCodeableConceptpreferredLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
from the FHIR Standard
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
from the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
from the FHIR Standard
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

This structure is derived from Observation

Summary

Mandatory: 4 elements
Must-Support: 13 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Observation.category is sliced based on the value of value:$this
  • The element Observation.value[x] is sliced based on the value of type:$this
  • The element Observation.hasMember is sliced based on the value of profile:$this.resolve()
  • The element Observation.derivedFrom is sliced based on the value of profile:$this.resolve()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

General Guidance For Preferred Value Sets For SDOHCC Observation Screening Response

The minimum value set bindings for Observation.code and Observation.value are specified in the profile. However, for each SDOH category (domain) covered in this IG, there are also category-specific, preferred value sets. For an observation instance, selecting a category-specific code (e.g., food-insecurity, transportation-insecurity) from the SDOHCC ValueSet SDOH Category bound to Observation.category will determine the preferred, category-specific value sets for Observation.code and Observation.value. Where a preferred value set contains a code to describe a needed concept, servers SHOULD use that code.

Codes in the category-specific, preferred value sets are from LOINC-encoded assessment instruments that have been vetted as face-valid by the Gravity Project. For the list of assessment instruments from which Gravity has chosen questions, see the Social Determinants of Health Screening Assessments value set which is hosted in the NIH Value Set Authority Center (VSAC). For each Gravity-vetted assessment instrument, the questions are also vetted and only those that also meet Gravity criteria are included in the preferred value sets.

Guidance on Category-specific Preferred Value Set Naming Conventions, Content, and Usage

The table provides guidance on naming conventions, content, and usage for the category-specific, preferred value sets.

Note: For “Value Set Naming Pattern” below, is a placeholder for a specific SDOH category/domain (e.g., Food Insecurity).

Category-specific Preferred Value Set Naming Conventions, Content and Usage
Value Set Naming Pattern Value Set Contains Value Set Usage Guidance
<Category> Screening Assessments Questions LOINC codes for the preferred, category-specific questions selected from the Assessment Instruments. For an SDOHCC Observation Screening Response that represents a question and its coded answer, Observation.code SHOULD be a LOINC question code from this value set and Observation.value SHOULD be a LOINC answer code from the <Category> Screening Assessments Answers value set (described below).
<Category> Screening Assessments LOINC codes for the assessment instruments (LOINC panels) from which the preferred, category-specific questions have been selected. For an SDOHCC Observation Screening Response that is an Observation grouping of an entire assessment instrument, Observation.code SHOULD use the panel LOINC codes from this value set. This Observation grouping (via Observation.hasMember) will reference all Observations generated from a specific assessment instrument. See SDOHCC Observation Response Grouping Example
<Category> Screening Assessments And Questions All codes in <Category> Screening Assessments Questions value set (LOINC question codes) AND <Category> Screening Assessments value set (LOINC panel codes). For an SDOHCC Observation Screening Response that represents an individual question-answer pair or an Observation grouping of an entire assessment instrument, this is the complete set of preferred values allowed for Observation.code for a category-specific Observation and can be used to validate that Observation.code is from a preferred, category-specific value set.
<Category> Screening Assessments Answers LOINC answer codes for the preferred, category-specific questions. For an SDOHCC Observation Screening Response that represents a question and a coded answer, Observation.code SHOULD be a LOINC question code from the <Category> Screening Assessments Questions value set and Observation.value SHOULD be a LOINC answer code from the <Category> Screening Assessments Answers value set.

Key for the “ValueSet for” Column: For readability, the formal names of these value sets in VSAC are shortened in the Table as follows:

  • Panels and Questions = <Category-specific> Screening Assessments And Questions (Example: The formal name in VSAC for the Questions and Panels Value Set for Food insecurity is “Food Insecurity Screening Assessments And Questions”.)
  • Panels = <Category-specific> Screening Assessments
  • Questions = <Category-specific> Screening Assessments Questions
  • Answers = <Category-specific> Screening Assessments Answers Value Set
Category-specific Preferred Value Sets and Assessment Instrument Spreadsheets
Observation.category Element binding VSAC ValueSet for VSAC OID Assessment Instrument Spreadsheets (explained here)
educational-attainment Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.199 Educational Attainment Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.132
Questions 2.16.840.1.113762.1.4.1196.3488
Observation.value Answers 2.16.840.1.113762.1.4.1247.179
elder-abuse Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.191 Elder Abuse Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.144
Questions 2.16.840.1.113762.1.4.1247.189
Observation.value Answers 2.16.840.1.113762.1.4.1247.190
employment-status Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.205 Employment Status Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.133
Questions 2.16.840.1.113762.1.4.1247.171
Observation.value Answers 2.16.840.1.113762.1.4.1247.183
financial-insecurity Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.193 Financial Insecurity Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.138
Questions 2.16.840.1.113762.1.4.1196.3483
Observation.value Answers 2.16.840.1.113762.1.4.1247.173
food-insecurity Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.194 Food Insecurity Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.127
Questions 2.16.840.1.113762.1.4.1196.3484
Observation.value Answers 2.16.840.1.113762.1.4.1247.174
health-insurance-coverage-status Observation.code Panels and Questions 2.16.840.1.113762.1.4.1196.3519 Health Insurance Coverage Status Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.143
Questions 2.16.840.1.113762.1.4.1247.186
Observation.value Answers 2.16.840.1.113762.1.4.1247.185
personal-health-literacy Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.195 Health Literacy Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.141
Questions 2.16.840.1.113762.1.4.1196.3485
Observation.value Answers 2.16.840.1.113762.1.4.1247.175
homelessness Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.196 Homelessness Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.129
Questions 2.16.840.1.113762.1.4.1196.3486
Observation.value Answers 2.16.840.1.113762.1.4.1247.176
housing-instability Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.197 Housing Instability Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.130
Questions 2.16.840.1.113762.1.4.1196.3487
Observation.value Answers 2.16.840.1.113762.1.4.1247.177
inadequate-housing Observation.code Panels and Questions 2.16.840.1.113762.1.4.1196.3520 Inadequate Housing Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.131
Questions 2.16.840.1.113762.1.4.1247.167
Observation.value Answers 2.16.840.1.113762.1.4.1247.178
intimate-partner-violence Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.198 Intimate Partner Violence Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.140
Questions 2.16.840.1.113762.1.4.1247.211
Observation.value Answers 2.16.840.1.113762.1.4.1247.209
material-hardship Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.200 Material Hardship Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.139
Questions 2.16.840.1.113762.1.4.1247.168
Observation.value Answers 2.16.840.1.113762.1.4.1247.180
medical-cost-burden Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.201 Medical Cost Burden Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.142
Questions 2.16.840.1.113762.1.4.1247.188
Observation.value Answers 2.16.840.1.113762.1.4.1247.187
social-connection Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.202 Social Connection Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.135
Questions 2.16.840.1.113762.1.4.1247.212
Observation.value Answers 2.16.840.1.113762.1.4.1247.210
stress Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.203 Stress Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.136
Questions 2.16.840.1.113762.1.4.1247.169
Observation.value Answers 2.16.840.1.113762.1.4.1247.181
transportation-insecurity Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.204 Transportation Insecurity Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.128
Questions 2.16.840.1.113762.1.4.1247.170
Observation.value Answers 2.16.840.1.113762.1.4.1247.182
veteran-status Observation.code Panels and Questions 2.16.840.1.113762.1.4.1247.192 Veteran Status Assessment Instruments Codes
Panels 2.16.840.1.113762.1.4.1247.134
Questions 2.16.840.1.113762.1.4.1247.172
Observation.value Answers 2.16.840.1.113762.1.4.1247.184
sdoh-category-unspecified Category-specific value sets not applicable

Of note, Grouper VSAC value sets containing the members of all the category-specific value sets for Observation.code and Observation.value are available here:

Guidance on Category-specific Assessment Instrument Spreadsheets

Each question (Observation.code) on an assessment instrument has a set of allowed answers (Observation.value). The allowed answers for a specific question may vary depending on the assessment instrument (LOINC panel) on which the question is presented (e.g., 88122-7 “Within the past 12 months we worried whether our food would run out before we got money to buy more [U.S. FSS]” has 4 possible answers on the Hunger Vital Sign (HVS) panel versus three possible answers on the American Academy of Family Physicians Social Needs Screening Tool). For this reason, the category-specific Assessment Instrument Spreadsheets provide additional information to link specific assessment instruments to questions and their allowed LOINC Answer Lists. LOINC also provides Answers Lists for questions from specific assessment instruments (panels).

​For additional information on fields in the Assessment Instrument Spreadsheets, see Assessment Instrument Spreadsheet Guidance on the Gravity Project Confluence site.