HL7 FHIR Profile: Occupational Data for Health (ODH), Release 1 (Standard for Trial Use)

This page is part of the Occupational Data for Health (ODH) FHIR IG (v0.1.0: STU 1 Ballot 1) based on FHIR R3. The current version which supercedes this version is 1.2.0. For a full list of available versions, see the Directory of published versions

CodedSocialHistoryObservationProfile

 

The official URL for this profile is:

http://hl7.org/fhir/us/odh/StructureDefinition/odh-CodedSocialHistoryObservation

The result of social history questions, whose answer is expressed as a code.

This profile builds on Observation.

This profile was published on Fri Aug 17 00:00:00 AEST 2018 as a draft by HL7.

View the corresponding CodedSocialHistoryObservationModel logical model.

Summary

Mandatory: 0 element (4 nested mandatory elements)
Must-Support: 1 element
Fixed Value: 2 elements
Prohibited: 3 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Observation.category.coding is sliced based on the value of value:code

ODH Mapping Source

This structure represents the following ODH mapping definition:

odh.CodedSocialHistoryObservation maps to Observation:
  PersonOfRecord maps to subject
  TopicCode maps to code
  Category maps to category
  EvaluationComponent maps to component (slice on = coding.code; slice strategy = includes)
  EvaluationComponent._Concept maps to component.code
  EvaluationComponent.Quantity maps to component.value[x]
  EvaluationComponent.CodeableConcept maps to component.value[x]
  EvaluationComponent.string maps to component.value[x]
  EvaluationComponent.Range maps to component.value[x]
  EvaluationComponent.Ratio maps to component.value[x]
  EvaluationComponent.Media maps to component.value[x]
  EvaluationComponent.time maps to component.value[x]
  EvaluationComponent.dateTime maps to component.value[x]
  EvaluationComponent.TimePeriod maps to component.value[x]
  EvaluationComponent.IntegerQuantity maps to component.value[x]
  EvaluationComponent.ExceptionValue maps to component.dataAbsentReason
  EvaluationComponent.Interpretation maps to component.interpretation
  EvaluationComponent.ReferenceRange maps to component.referenceRange
  ResultValue maps to value[x]
  RelevantTime maps to effective[x]
  constrain bodySite to 0..0
  constrain specimen to 0..0
  constrain device to 0..0

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation ODH CodedSocialHistoryObservation Profile
... modifierExtension ?!S0..1FocalSubjectModifierExtension
... category 1..*
.... coding Slice: Unordered, Open by value:code
.... coding Σ1..1Coding
..... system Fixed Value: http://hl7.org/fhir/observation-category
..... code Fixed Value: social-history
... subject 1..1Reference(US Core Patient Profile)
... valueCodeableConcept CodeableConcept
... bodySite 0..0
... specimen 0..0
... device 0..0
... component
.... value[x] Quantity, CodeableConcept, string, Range, Ratio, Attachment, time, dateTime, Period
.... dataAbsentReason Binding: DataAbsentReason (extensible)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*ODH CodedSocialHistoryObservation Profile
obs-7: If code is the same as a component code then the value element associated with the code SHALL NOT be present
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not 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: Common Languages (extensible)
... text I0..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
Slice: Unordered, Open by value:url
... modifierExtension ?!S0..1FocalSubjectModifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required)
... category 1..*CodeableConceptClassification of type of observation
Binding: Observation Category Codes (preferred)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣCodingCode defined by a terminology system
Slice: Unordered, Open by value:code
.... coding Σ1..1Coding
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ0..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/observation-category
..... version Σ0..1stringVersion of the system - if relevant
..... code Σ0..1codeSymbol in syntax defined by the system
Fixed Value: social-history
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... code Σ1..1CodeableConceptType of observation (code / type)
Binding: LOINC Codes (example)
... subject Σ1..1Reference(US Core Patient Profile)Who and/or what this is about
... context 0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this observation is made
... effective[x] Σ0..1dateTime, PeriodClinically relevant time/time-period for observation
... issued Σ0..1instantDate/Time this was made available
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... valueCodeableConcept ΣI0..1CodeableConceptActual result
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: Observation Value Absent Reason (extensible)
... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible)
... comment 0..1stringComments about result
... method 0..1CodeableConceptHow it was done
Binding: Observation Methods (example)
... referenceRange I0..*BackboneElementProvides guide for interpretation
obs-3: Must have at least a low or a high or text
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... low I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible)
.... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related ΣI0..*BackboneElementResource related to this observation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
Binding: ObservationRelationshipType (required)
.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Resource that is related to this one
... component ΣI0..*BackboneElementComponent results
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINC Codes (example)
.... value[x] Σ0..1Quantity, CodeableConcept, string, Range, Ratio, Attachment, time, dateTime, PeriodActual component result
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible)
.... referenceRange 0..*BackboneElementProvides guide for interpretation of component result
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
..... low I0..1SimpleQuantityLow Range, if relevant
..... high I0..1SimpleQuantityHigh Range, if relevant
..... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible)
..... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example)
..... age 0..1RangeApplicable age range, if relevant
..... text 0..1stringText based reference range in an observation

doco Documentation for this format

Summary

Mandatory: 0 element (4 nested mandatory elements)
Must-Support: 1 element
Fixed Value: 2 elements
Prohibited: 3 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Observation.category.coding is sliced based on the value of value:code

ODH Mapping Source

This structure represents the following ODH mapping definition:

odh.CodedSocialHistoryObservation maps to Observation:
  PersonOfRecord maps to subject
  TopicCode maps to code
  Category maps to category
  EvaluationComponent maps to component (slice on = coding.code; slice strategy = includes)
  EvaluationComponent._Concept maps to component.code
  EvaluationComponent.Quantity maps to component.value[x]
  EvaluationComponent.CodeableConcept maps to component.value[x]
  EvaluationComponent.string maps to component.value[x]
  EvaluationComponent.Range maps to component.value[x]
  EvaluationComponent.Ratio maps to component.value[x]
  EvaluationComponent.Media maps to component.value[x]
  EvaluationComponent.time maps to component.value[x]
  EvaluationComponent.dateTime maps to component.value[x]
  EvaluationComponent.TimePeriod maps to component.value[x]
  EvaluationComponent.IntegerQuantity maps to component.value[x]
  EvaluationComponent.ExceptionValue maps to component.dataAbsentReason
  EvaluationComponent.Interpretation maps to component.interpretation
  EvaluationComponent.ReferenceRange maps to component.referenceRange
  ResultValue maps to value[x]
  RelevantTime maps to effective[x]
  constrain bodySite to 0..0
  constrain specimen to 0..0
  constrain device to 0..0

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation ODH CodedSocialHistoryObservation Profile
... modifierExtension ?!S0..1FocalSubjectModifierExtension
... category 1..*
.... coding Slice: Unordered, Open by value:code
.... coding Σ1..1Coding
..... system Fixed Value: http://hl7.org/fhir/observation-category
..... code Fixed Value: social-history
... subject 1..1Reference(US Core Patient Profile)
... valueCodeableConcept CodeableConcept
... bodySite 0..0
... specimen 0..0
... device 0..0
... component
.... value[x] Quantity, CodeableConcept, string, Range, Ratio, Attachment, time, dateTime, Period
.... dataAbsentReason Binding: DataAbsentReason (extensible)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*ODH CodedSocialHistoryObservation Profile
obs-7: If code is the same as a component code then the value element associated with the code SHALL NOT be present
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not 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: Common Languages (extensible)
... text I0..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
Slice: Unordered, Open by value:url
... modifierExtension ?!S0..1FocalSubjectModifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required)
... category 1..*CodeableConceptClassification of type of observation
Binding: Observation Category Codes (preferred)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣCodingCode defined by a terminology system
Slice: Unordered, Open by value:code
.... coding Σ1..1Coding
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ0..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/observation-category
..... version Σ0..1stringVersion of the system - if relevant
..... code Σ0..1codeSymbol in syntax defined by the system
Fixed Value: social-history
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... code Σ1..1CodeableConceptType of observation (code / type)
Binding: LOINC Codes (example)
... subject Σ1..1Reference(US Core Patient Profile)Who and/or what this is about
... context 0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this observation is made
... effective[x] Σ0..1dateTime, PeriodClinically relevant time/time-period for observation
... issued Σ0..1instantDate/Time this was made available
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... valueCodeableConcept ΣI0..1CodeableConceptActual result
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: Observation Value Absent Reason (extensible)
... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible)
... comment 0..1stringComments about result
... method 0..1CodeableConceptHow it was done
Binding: Observation Methods (example)
... referenceRange I0..*BackboneElementProvides guide for interpretation
obs-3: Must have at least a low or a high or text
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... low I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible)
.... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related ΣI0..*BackboneElementResource related to this observation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
Binding: ObservationRelationshipType (required)
.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Resource that is related to this one
... component ΣI0..*BackboneElementComponent results
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINC Codes (example)
.... value[x] Σ0..1Quantity, CodeableConcept, string, Range, Ratio, Attachment, time, dateTime, PeriodActual component result
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible)
.... referenceRange 0..*BackboneElementProvides guide for interpretation of component result
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
..... low I0..1SimpleQuantityLow Range, if relevant
..... high I0..1SimpleQuantityHigh Range, if relevant
..... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible)
..... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example)
..... age 0..1RangeApplicable age range, if relevant
..... text 0..1stringText based reference range in an observation

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, TTL), Schema: XML Schematron

 

Terminology Bindings

PathNameConformanceValueSet
Observation.languageCommon LanguagesextensibleCommon Languages
Observation.statusObservationStatusrequiredObservationStatus
Observation.categoryObservation Category CodespreferredObservation Category Codes
Observation.codeLOINC CodesexampleLOINC Codes
Observation.dataAbsentReasonObservation Value Absent ReasonextensibleObservation Value Absent Reason
Observation.interpretationObservation Interpretation CodesextensibleObservation Interpretation Codes
Observation.methodObservation MethodsexampleObservation Methods
Observation.referenceRange.typeObservation Reference Range Meaning CodesextensibleObservation Reference Range Meaning Codes
Observation.referenceRange.appliesToObservation Reference Range Applies To CodesexampleObservation Reference Range Applies To Codes
Observation.related.typeObservationRelationshipTyperequiredObservationRelationshipType
Observation.component.codeLOINC CodesexampleLOINC Codes
Observation.component.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationObservation Interpretation CodesextensibleObservation Interpretation Codes
Observation.component.referenceRange.typeObservation Reference Range Meaning CodesextensibleObservation Reference Range Meaning Codes
Observation.component.referenceRange.appliesToObservation Reference Range Applies To CodesexampleObservation Reference Range Applies To Codes

 

Constraints

IdPathDetailsRequirements
dom-2ObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1ObservationIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4ObservationIf 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-3ObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
obs-7ObservationIf code is the same as a component code then the value element associated with the code SHALL NOT be present
: value.empty() or code!=component.code
obs-6ObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
ele-1Observation.referenceRangeAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
obs-3Observation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
ele-1Observation.relatedAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Observation.componentAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())