This page is part of the Genetic Reporting Implementation Guide (v0.3.0: STU 1 Ballot 2) 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

StructureDefinition: Computable Genetic Finding

The official URL for this profile is:

http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/obs-comp-gen-finding

Formal Views of Profile Content

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

This structure is derived from Genetic Observation Common Properties

Summary

Mandatory: 1 element (6 nested mandatory elements)
Must-Support: 11 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Observation.component is sliced based on the value of pattern:code

This structure is derived from Genetic Observation Common Properties

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*Computable Genetic Finding
... specimen S1..1Reference(Specimen)Specimen examined
... device 0..*Reference(Device FISH Probe | Device Microarray Platform | Device | DeviceMetric)
... component SBackboneElementSlice: Unordered, Open by pattern:code
... component S0..*BackboneElementGene studied ID
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"48018-6"}]}
.... valueCodeableConcept S1..1CodeableConceptIf no HGNC code issued for this gene yet, NCBI gene IDs SHALL be used.
Binding: HGNC (extensible)
... component S0..*BackboneElementCytogenetic (chromosome) location
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"48001-2"}]}
.... valueCodeableConcept S1..1CodeableConceptBinding: (unbound) (example)
... component S0..*BackboneElementHuman reference sequence assembly version
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"62374-4"}]}
.... valueCodeableConcept S1..1CodeableConceptBinding: LOINC Answer List LL1040-6 (preferred)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*Computable Genetic Finding
... 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)
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... bodySite I0..1Reference(BodyStructure)Target anatomic location or structure
URL: http://hl7.org/fhir/StructureDefinition/bodySite
... observation-secondaryFinding I0..1CodeableConceptSecondary findings are genetic test results that provide information about variants in a gene unrelated to the primary purpose for the testing, most often discovered when [Whole Exome Sequencing (WES)](https://en.wikipedia.org/wiki/Exome_sequencing) or [Whole Genome Sequencing (WGS)](https://en.wikipedia.org/wiki/Whole_genome_sequencing) is performed. This extension should be used to denote when a genetic finding is being shared as a secondary finding, and ideally refer to a corresponding guideline or policy statement. For more detail, please see: https://ghr.nlm.nih.gov/primer/testing/secondaryfindings
URL: http://hl7.org/fhir/StructureDefinition/observation-secondaryFinding
Binding: ObservationCategoryCodes (extensible)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn SΣ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..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required)
... category S1..*CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred)

Required Pattern: {"coding":[{"system":"http://terminology.hl7.org/CodeSystem/observation-category","code":"laboratory"}]}
... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example)
... subject SΣ0..1Reference(Patient | Group | Location)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Σ0..1dateTime, Period, Timing, instantClinically relevant time/time-period for observation
... issued SΣ0..1instantDate/Time this version was made available
... performer SΣ0..1Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... value[x] ΣI0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual result
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible)
... note 0..*AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: SNOMEDCTBodyStructures (example)
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example)
... specimen S1..1Reference(Specimen)Specimen examined
... device 0..*Reference(Device FISH Probe | Device Microarray Platform | Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*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 I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred)
.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)Related measurements the observation is made from
... component SΣIBackboneElementComponent results
Slice: Unordered, Open by pattern:code
.... 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)
.... value[x] Σ0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual component result
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementGene studied ID
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"48018-6"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptIf no HGNC code issued for this gene yet, NCBI gene IDs SHALL be used.
Binding: HGNC (extensible)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementCytogenetic (chromosome) location
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"48001-2"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptActual component result
Binding: (unbound) (example)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementHuman reference sequence assembly version
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"62374-4"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptActual component result
Binding: LOINC Answer List LL1040-6 (preferred)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result

doco Documentation for this format

This structure is derived from Genetic Observation Common Properties

Summary

Mandatory: 1 element (6 nested mandatory elements)
Must-Support: 11 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Observation.component is sliced based on the value of pattern:code

Differential View

This structure is derived from Genetic Observation Common Properties

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*Computable Genetic Finding
... specimen S1..1Reference(Specimen)Specimen examined
... device 0..*Reference(Device FISH Probe | Device Microarray Platform | Device | DeviceMetric)
... component SBackboneElementSlice: Unordered, Open by pattern:code
... component S0..*BackboneElementGene studied ID
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"48018-6"}]}
.... valueCodeableConcept S1..1CodeableConceptIf no HGNC code issued for this gene yet, NCBI gene IDs SHALL be used.
Binding: HGNC (extensible)
... component S0..*BackboneElementCytogenetic (chromosome) location
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"48001-2"}]}
.... valueCodeableConcept S1..1CodeableConceptBinding: (unbound) (example)
... component S0..*BackboneElementHuman reference sequence assembly version
.... code S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://loinc.org","code":"62374-4"}]}
.... valueCodeableConcept S1..1CodeableConceptBinding: LOINC Answer List LL1040-6 (preferred)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*Computable Genetic Finding
... 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)
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... bodySite I0..1Reference(BodyStructure)Target anatomic location or structure
URL: http://hl7.org/fhir/StructureDefinition/bodySite
... observation-secondaryFinding I0..1CodeableConceptSecondary findings are genetic test results that provide information about variants in a gene unrelated to the primary purpose for the testing, most often discovered when [Whole Exome Sequencing (WES)](https://en.wikipedia.org/wiki/Exome_sequencing) or [Whole Genome Sequencing (WGS)](https://en.wikipedia.org/wiki/Whole_genome_sequencing) is performed. This extension should be used to denote when a genetic finding is being shared as a secondary finding, and ideally refer to a corresponding guideline or policy statement. For more detail, please see: https://ghr.nlm.nih.gov/primer/testing/secondaryfindings
URL: http://hl7.org/fhir/StructureDefinition/observation-secondaryFinding
Binding: ObservationCategoryCodes (extensible)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn SΣ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..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required)
... category S1..*CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred)

Required Pattern: {"coding":[{"system":"http://terminology.hl7.org/CodeSystem/observation-category","code":"laboratory"}]}
... code SΣ1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example)
... subject SΣ0..1Reference(Patient | Group | Location)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Σ0..1dateTime, Period, Timing, instantClinically relevant time/time-period for observation
... issued SΣ0..1instantDate/Time this version was made available
... performer SΣ0..1Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... value[x] ΣI0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual result
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible)
... note 0..*AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: SNOMEDCTBodyStructures (example)
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example)
... specimen S1..1Reference(Specimen)Specimen examined
... device 0..*Reference(Device FISH Probe | Device Microarray Platform | Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*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 I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred)
.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)Related measurements the observation is made from
... component SΣIBackboneElementComponent results
Slice: Unordered, Open by pattern:code
.... 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)
.... value[x] Σ0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodActual component result
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementGene studied ID
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"48018-6"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptIf no HGNC code issued for this gene yet, NCBI gene IDs SHALL be used.
Binding: HGNC (extensible)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementCytogenetic (chromosome) location
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"48001-2"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptActual component result
Binding: (unbound) (example)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result
... component SΣI0..*BackboneElementHuman reference sequence assembly version
.... 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 SΣ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example)
Required Pattern: {"coding":[{"system":"http://loinc.org","code":"62374-4"}]}
.... valueCodeableConcept SΣ1..1CodeableConceptActual component result
Binding: LOINC Answer List LL1040-6 (preferred)
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible)
.... referenceRange 0..*Unknown reference to #Observation.referenceRange
Provides guide for interpretation of component result

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathNameConformanceValueSet
Observation.languageCommon LanguagespreferredCommonLanguages
Observation.statusObservationStatusrequiredObservationStatus
Observation.categoryObservation Category CodespreferredObservationCategoryCodes
Observation.codeLOINC CodesexampleLOINCCodes
Observation.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason
Observation.bodySiteSNOMED CT Body StructuresexampleSNOMEDCTBodyStructures
Observation.methodObservation MethodsexampleObservationMethods
Observation.referenceRange.typeObservation Reference Range Meaning CodespreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToObservation Reference Range Applies To CodesexampleObservationReferenceRangeAppliesToCodes
Observation.component.codeLOINC CodesexampleLOINCCodes
Observation.component.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason
Observation.component.codeLOINC CodesexampleLOINCCodes
Observation.component.valueCodeableConceptLOINC LL1040-6preferredLOINC LL1040-6
Observation.component.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason
Observation.component.codeLOINC CodesexampleLOINCCodes
Observation.component.valueCodeableConceptLOINC LL1040-6preferredLOINC LL1040-6
Observation.component.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason
Observation.component.codeLOINC CodesexampleLOINCCodes
Observation.component.valueCodeableConceptLOINC LL1040-6preferredLOINC LL1040-6
Observation.component.dataAbsentReasonDataAbsentReasonextensibleDataAbsentReason

Constraints

IdPathDetailsRequirements
dom-2ObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.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 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-6ObservationA resource should have narrative for robust management
: text.div.exists()
dom-5ObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
obs-7ObservationIf 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.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()
obs-6ObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
ele-1Observation.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Observation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Observation.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Observation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Observation.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Observation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Observation.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (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.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Observation.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Observation.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Observation.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())