This page is part of the SDOH Clinical Care for Multiple Domains (v0.1.0: STU 1 Ballot 1) based on FHIR R4. The current version which supercedes this version is 2.0.0. For a full list of available versions, see the Directory of published versions
Defining URL: | http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Observation-ScreeningResponseBase-1 |
Version: | 0.1.0 |
Name: | SDOHCC_Observation_ScreeningResponseBase_1 |
Title: | SDOHCC Observation ScreeningResponseBase 1 |
Status: | Draft as of 2020-12-16T20:13:36+00:00 |
Definition: | This profile constrains Observations that represent individual Question and Answer (QA) pairs from SDOH screening instruments that are represented in LOINC. |
Publisher: | HL7 International - Patient Care WG |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://hl7.org/fhir/us/sdoh-clinicalcare/StructureDefinition/SDOHCC-Observation-ScreeningResponseBase-1
The SDOHCC_Observation_ScreeningResponseBase_1 profile allows the representation of individual Question and Answer pairs (QA pairs) from an SDOH screening questionnaire as Observations. The Question and Answer pairs from the screening questionnaire are also represented using SDC Questionnaire and SDC QuestionnaireResponse.
Many of the resources/profiles used for SDOH reference one another. The current flow is that QuestionnaireResponses result in Observations that are used as evidence for Conditions that are addressed by Goals that lead to ServiceRequests and Procedures.
The sections that follow provide additional guidance on some elements in the SDOHCC_Observation_ScreeningResponseBase_1 profile.
To facilitate searching for SDOH screening response observations, Observation.category is sliced. The required slices are bound to the "social-history" and "survey" codes from the FHIR "Observation Category Codes" value set.
Additionally, an optional Observation.category slice bound to the "SDOHCC ValueSet SDOHDomain 1" value set allows the categorization of an Observation into one or more of the SDOH domains (e.g., food-insecurity-domain, inadequate-housing-domain, etc.). It is recommended that this optional slice be used in order to facilitate searching for SDOH observations.
Observation.code is currently bound to codes from the FHIR "LOINC Codes" value set with binding strength: Required. LOINC codes are required because Gravity intends to use only LOINC encoded Questionnaires to generate QuestionnaireResponses which, in turn, will generate Screening Response Observations. As the Gravity Project continues to refine content for the SDOH domains (e.g., food, housing, transportation etc.), the value set for Observation.code will be refined to LOINC codes that pertain to SDOH domains.
Observation.subject is restricted to referencing Patient Resource.
Although the US Core Condition, CarePlan, Goal, and Procedure Profiles restrict Subject to US Core Patient Profile, US Core does not offer a generic Observation Profile. For this reason, SDOHCC_Observation_ScreeningResponseBase_1 does not restrict Observation.subject to US Core Patient Profile. However, if an implementer is creating US Core profiles (e.g., US Core Condition, US Core Procedure, etc.) that require US Core Patient for Subject, then US Core Patient should also be used for Subject in other profiles (e.g., Observation, ServiceRequest, etc.) which do not currently specify US Core Patient.
Some SDOH QA pairs on a screening questionnaire are not answered directly (e.g., asserted) by the individual completing the questionnaire. Rather, some QA pairs (e.g., the Hunger Vital Sign 88124-3 "Food insecurity risk") may be derived from other QA pairs. For a ScreeningResponse Observation that is not answered directly, but rather derived from other QA pairs on a screener, Observation.performer should not be specified and Observation.derivedFrom should reference the relevant ScreeningResponse Observation(s).
Example: 88121-9 Hunger Vital Signs [HVS]
For the LOINC Hunger Vital Sign™ Panel, an answer of "often true" or "sometimes true" to either or both of the Hunger Vital Sign questions (88122-7 or 88123-5) identifies a patient as at risk for food insecurity (i.e., the answer for 88124-3 is "At risk", LA19952-3).
Thus, 88124-3 "Food insecurity risk" is not explicitly answered by the individual completing the questionnaire. In this case, Observation.performer should be left empty and Observation.derivedFrom should reference the Observations that represent the QA pairs for Hunger Vital Sign questions 88122-7 and 88123-5.
Observation.value is currently bound to codes from the FHIR "LOINC Codes" value set. As the Gravity Project continues to refine content for the SDOH domains, the value set for Observation.value will be refined to the LOINC Normative Answer Lists for LOINC codes that address SDOH domains.
Of note, many LOINC Normative Answer Lists include codes that overlap with values in the FHIR value set for Observation.dataAbsentReason.
Example: LOINC code 82589-3
For LOINC code 82589-3 "What is the highest level of school that you have finished?", the Normative Answer List LL5351-3 includes "I choose not to answer this question". This LOINC answer code overlaps with "asked-declined" in the value set for Observation.dataAbsentReason.
However, some LOINC Normative Answer Lists do not include codes that overlap with values in the FHIR value set for Observation.dataAbsentReason.
Example: LOINC Code 76437-3
For LOINC Code 76437-3 "What is your main insurance?", the Normative Answer List does not include a code that overlaps with a code in the value set for Observation.dataAbsentReason (e.g., unknown, asked-declined, etc.).
If the LOINC Normative Answer List for a LOINC code offers an adequate code for why an Observation.value may not be known, it SHOULD be used as the value for Observation.value.
If the LOINC Normative Answer List for a LOINC code does not offer an adequate code for why an Observation.value may not be known, a code from Observation.dataAbsentReason SHOULD be used in lieu of Observation.value.
FHIR already has a rule that: dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty(). However, this means that Observation.value and Observation.dataAbsentReason are both optional elements since one or the other may be used. Therefore, a profile could validate without Observation.value and without Observation.dataAbsentReason. For this reason, the Gravity Observation profile has added the FHIRPath rule that: "either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided".
Observation.derivedFrom is sliced to allow the preferred option of referencing the SDC QuestionnaireResponse Profile and/or the SDOHCC-Observation-ScreeningResponseBase-1 Profile.
Observation.derivedFrom should reference the SDC QuestionnaireResponse Profile and/or the SDOHCC-Observation-ScreeningResponseBase-1 Profile if they exist.
Additionally, Observation.derivedFrom may reference DocumentReference, Observation and/or QuestionnaireResponse.
Generally, Observation.derivedFrom will reference the SDC QuestionnaireResponse which, in turn, will reference the Questionnaire from which a QA pair in an Observation is derived.
However, some SDOH QA pairs (e.g., HVS 88124-3 "Food insecurity risk") are not answered directly (e.g., asserted) by the individual completing the screening questionnaire but rather are derived from other QA pairs on the screener. In that case, Observation.derivedFrom SHOULD also reference any relevant Screening Response Observations (using SDOHCC_Observation_ScreeningResponseBase_1).
Example: 88121-9 Hunger Vital Signs [HVS]
For the LOINC Hunger Vital Sign™ Panel, an answer of "often true" or "sometimes true" to either or both of the Hunger Vital Sign questions (88122-7 or 88123-5) identifies a patient as at risk for food insecurity (i.e., the answer for 88124-3 is "At risk", LA19952-3).
Thus, 88124-3 "Food insecurity risk" is not explicitly answered by the individual completing the questionnaire. Observation.derivedFrom should be used to reference the Observations that represent the QA pairs for Hunger Vital Sign questions 88122-7 and 88123-5.
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Observation
Summary
Mandatory: 4 elements (2 nested mandatory elements)
Must-Support: 14 elements
Prohibited: 4 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Observation | Measurements and simple assertions SDOHCC-1: either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided |
status | S | 1..1 | code | registered | preliminary | final | amended + |
category | 2..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by pattern:$this | |
category:SocialHistory | S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: social-history | |
category:Survey | S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: survey | |
category:SDOHDomain | S | 0..* | CodeableConcept | e.g., food-insecurity-domain | transportation-insecurity-domain Binding: SDOHCC ValueSet SDOHDomain 1 (required) |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (required) |
subject | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
effective[x] | S | 1..1 | (Slice Definition) | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effective[x]:effectivePeriod | 0..1 | Period | Clinically relevant time/time-period for observation | |
start | S | 1..1 | dateTime | Starting time with inclusive boundary |
end | S | 1..1 | dateTime | End time with inclusive boundary, if not ongoing |
performer | S | 0..* | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | S | 0..1 | CodeableConcept | Actual result Binding: LOINCCodes (required) |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the result is missing |
interpretation | 0..0 | |||
bodySite | 0..0 | |||
specimen | 0..0 | |||
referenceRange | 0..0 | |||
derivedFrom | S | 0..* | (Slice Definition) | Related measurements the observation is made from Slice: Unordered, Open by profile:resolve() |
derivedFrom:SupportedDerivedFrom | S | 0..* | Reference(SDOHCC Observation ScreeningResponseBase 1 | SDC Questionnaire Response) | Related measurements the observation is made from |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Observation | Measurements and simple assertions SDOHCC-1: either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided |
id | ÎŁ | 0..1 | string | Logical id of this artifact |
meta | ÎŁ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ÎŁ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | ÎŁ | 0..* | Identifier | Business 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..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
category | 2..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | |
category:SocialHistory | S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: social-history | |
display | 0..1 | string | Representation defined by the system | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
category:Survey | S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: survey | |
display | 0..1 | string | Representation defined by the system | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
category:SDOHDomain | S | 0..* | CodeableConcept | e.g., food-insecurity-domain | transportation-insecurity-domain Binding: SDOHCC ValueSet SDOHDomain 1 (required) |
code | SÎŁ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (required) |
subject | SÎŁ | 1..1 | Reference(Patient) | 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..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | SÎŁ | 1..1 | (Slice Definition) | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effective[x]:effectivePeriod | ÎŁ | 0..1 | Period | Clinically relevant time/time-period for observation |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
start | SÎŁI | 1..1 | dateTime | Starting time with inclusive boundary |
end | SÎŁI | 1..1 | dateTime | End time with inclusive boundary, if not ongoing |
issued | ÎŁ | 0..1 | instant | Date/Time this version was made available |
performer | SÎŁ | 0..* | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | SÎŁI | 0..1 | CodeableConcept | Actual result Binding: LOINCCodes (required) |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
note | 0..* | Annotation | Comments about the observation | |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. | |
device | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |
hasMember | ÎŁ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group |
derivedFrom | SÎŁ | 0..* | (Slice Definition) | Related measurements the observation is made from Slice: Unordered, Open by profile:resolve() |
derivedFrom:SupportedDerivedFrom | SÎŁ | 0..* | Reference(SDOHCC Observation ScreeningResponseBase 1 | SDC Questionnaire Response) | Related measurements the observation is made from |
component | ÎŁ | 0..* | BackboneElement | Component results |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!ÎŁ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | ÎŁ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
value[x] | ÎŁ | 0..1 | Actual component result | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |
referenceRange | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Observation | Measurements and simple assertions SDOHCC-1: either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided |
status | ?!ÎŁ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
category:SocialHistory | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: social-history | |
category:Survey | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: survey | |
category:SDOHDomain | 0..* | CodeableConcept | e.g., food-insecurity-domain | transportation-insecurity-domain Binding: SDOHCC ValueSet SDOHDomain 1 (required) | |
code | ÎŁ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (required) |
subject | ÎŁ | 1..1 | Reference(Patient) | Who and/or what the observation is about |
effective[x] | ÎŁ | 1..1 | (Slice Definition) | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effective[x]:effectivePeriod | ÎŁ | 0..1 | Period | Clinically relevant time/time-period for observation |
start | ÎŁI | 1..1 | dateTime | Starting time with inclusive boundary |
end | ÎŁI | 1..1 | dateTime | End time with inclusive boundary, if not ongoing |
performer | ÎŁ | 0..* | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | ÎŁI | 0..1 | CodeableConcept | Actual result Binding: LOINCCodes (required) |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
derivedFrom | ÎŁ | 0..* | (Slice Definition) | Related measurements the observation is made from Slice: Unordered, Open by profile:resolve() |
derivedFrom:SupportedDerivedFrom | ÎŁ | 0..* | Reference(SDOHCC Observation ScreeningResponseBase 1 | SDC Questionnaire Response) | Related measurements the observation is made from |
Documentation for this format |
This structure is derived from Observation
Summary
Mandatory: 4 elements (2 nested mandatory elements)
Must-Support: 14 elements
Prohibited: 4 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Differential View
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Observation | Measurements and simple assertions SDOHCC-1: either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided |
status | S | 1..1 | code | registered | preliminary | final | amended + |
category | 2..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by pattern:$this | |
category:SocialHistory | S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: social-history | |
category:Survey | S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: survey | |
category:SDOHDomain | S | 0..* | CodeableConcept | e.g., food-insecurity-domain | transportation-insecurity-domain Binding: SDOHCC ValueSet SDOHDomain 1 (required) |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (required) |
subject | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
effective[x] | S | 1..1 | (Slice Definition) | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effective[x]:effectivePeriod | 0..1 | Period | Clinically relevant time/time-period for observation | |
start | S | 1..1 | dateTime | Starting time with inclusive boundary |
end | S | 1..1 | dateTime | End time with inclusive boundary, if not ongoing |
performer | S | 0..* | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | S | 0..1 | CodeableConcept | Actual result Binding: LOINCCodes (required) |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the result is missing |
interpretation | 0..0 | |||
bodySite | 0..0 | |||
specimen | 0..0 | |||
referenceRange | 0..0 | |||
derivedFrom | S | 0..* | (Slice Definition) | Related measurements the observation is made from Slice: Unordered, Open by profile:resolve() |
derivedFrom:SupportedDerivedFrom | S | 0..* | Reference(SDOHCC Observation ScreeningResponseBase 1 | SDC Questionnaire Response) | Related measurements the observation is made from |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Observation | Measurements and simple assertions SDOHCC-1: either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided |
id | ÎŁ | 0..1 | string | Logical id of this artifact |
meta | ÎŁ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ÎŁ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | ÎŁ | 0..* | Identifier | Business 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..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
category | 2..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | |
category:SocialHistory | S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: social-history | |
display | 0..1 | string | Representation defined by the system | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
category:Survey | S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: survey | |
display | 0..1 | string | Representation defined by the system | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
category:SDOHDomain | S | 0..* | CodeableConcept | e.g., food-insecurity-domain | transportation-insecurity-domain Binding: SDOHCC ValueSet SDOHDomain 1 (required) |
code | SÎŁ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (required) |
subject | SÎŁ | 1..1 | Reference(Patient) | 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..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | SÎŁ | 1..1 | (Slice Definition) | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effective[x]:effectivePeriod | ÎŁ | 0..1 | Period | Clinically relevant time/time-period for observation |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
start | SÎŁI | 1..1 | dateTime | Starting time with inclusive boundary |
end | SÎŁI | 1..1 | dateTime | End time with inclusive boundary, if not ongoing |
issued | ÎŁ | 0..1 | instant | Date/Time this version was made available |
performer | SÎŁ | 0..* | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | SÎŁI | 0..1 | CodeableConcept | Actual result Binding: LOINCCodes (required) |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
note | 0..* | Annotation | Comments about the observation | |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. | |
device | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |
hasMember | ÎŁ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group |
derivedFrom | SÎŁ | 0..* | (Slice Definition) | Related measurements the observation is made from Slice: Unordered, Open by profile:resolve() |
derivedFrom:SupportedDerivedFrom | SÎŁ | 0..* | Reference(SDOHCC Observation ScreeningResponseBase 1 | SDC Questionnaire Response) | Related measurements the observation is made from |
component | ÎŁ | 0..* | BackboneElement | Component results |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!ÎŁ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | ÎŁ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
value[x] | ÎŁ | 0..1 | Actual component result | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |
referenceRange | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |
Documentation for this format |
Other representations of profile: Schematron
Path | Conformance | ValueSet / Code |
Observation.language | preferred | CommonLanguages Max Binding: AllLanguages |
Observation.status | required | ObservationStatus |
Observation.category | preferred | ObservationCategoryCodes |
Observation.category:SocialHistory | preferred | Pattern: social-history |
Observation.category:Survey | preferred | Pattern: survey |
Observation.category:SDOHDomain | required | SDOHCC_ValueSet_SDOHDomain_1 |
Observation.code | required | LOINCCodes |
Observation.value[x] | required | LOINCCodes |
Observation.dataAbsentReason | extensible | DataAbsentReason |
Observation.method | example | ObservationMethods |
Observation.referenceRange.type | preferred | ObservationReferenceRangeMeaningCodes |
Observation.referenceRange.appliesTo | example | ObservationReferenceRangeAppliesToCodes |
Observation.component.code | example | LOINCCodes |
Observation.component.dataAbsentReason | extensible | DataAbsentReason |
Observation.component.interpretation | extensible | ObservationInterpretationCodes |
Id | Path | Details | Requirements |
dom-2 | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Observation | If 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-4 | Observation | If 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-5 | Observation | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Observation | A resource should have narrative for robust management : text.`div`.exists() | |
obs-6 | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present : dataAbsentReason.empty() or value.empty() | |
obs-7 | Observation | If 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() | |
SDOHCC-1 | Observation | either Observation.valueCodableConcept or Observation.dataAbsentReason MUST be provided : valueCodeableConcept.exists() or dataAbsentReason.exists() | |
ele-1 | Observation.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.partOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.category:SocialHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.category:Survey | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.category:SDOHDomain | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.focus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.effective[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.effective[x]:effectivePeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.effective[x]:effectivePeriod.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.effective[x]:effectivePeriod.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.effective[x]:effectivePeriod.start | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.effective[x]:effectivePeriod.end | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.issued | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.dataAbsentReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.method | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.device | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.referenceRange.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.referenceRange.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.referenceRange.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.referenceRange.low | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.high | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.appliesTo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.age | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.referenceRange.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.hasMember | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.derivedFrom | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.derivedFrom:SupportedDerivedFrom | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.component.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.component.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Observation.component.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Observation.component.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component.dataAbsentReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component.interpretation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Observation.component.referenceRange | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |