Genomics Reporting Implementation Guide
4.0.0-cibuild - CI Build International flag

Genomics Reporting Implementation Guide, published by HL7 International / Clinical Genomics. This guide is not an authorized publication; it is the continuous build for version 4.0.0-cibuild built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/genomics-reporting/ and changes regularly. See the Directory of published versions

Resource Profile: Genomic Study

Official URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study Version: 4.0.0-cibuild
Standards status: Trial-use Maturity Level: 2 Computable Name: GenomicStudy

A genomic study is a set of analyses performed to analyze and generate genomic data.

The details of a performed genomic study are captured as genomic study analysis instances, referenced via the genomic study's genomic-study-analysis-ext extension.

STU Note: Genomic Study and Genomic Study Analysis profiles are backported from the FHIR R5 GenomicStudy resource.

Scope and Usage

A genomic study instance aims at delineating relevant information of a performed genomic study. A genomic study might comprise one or more analyses, each serving a specific purpose. These analyses may vary in method (e.g., karyotyping, CNV, or SNV detection), performer, software, devices used, or regions studied.

A genomic study instance describes relevant information including the reasons, purpose, and performers of the study. It also provides technical endpoints to access these data. It serves as a logical aggregator for complex genomic analyses.

A genomic study instance might be based on one or more service requests or care plans. The reasons for performing a genomic study might be driven by specific Conditions or Observations. Although the genomic study subject is the focus of the study, the analysis-level focus could be used to specify other relevant subjects or specimens. For example, trio testing may involve three subjects: the proband, and both parents. The proband would be the subject listed directly under the genomic study, while each of the analyses could represent proband, mother, and father genomic analyses.

In clinical use, the study interpreters use all the results of these various analyses to provide diagnostic and therapeutic insights for the patient, where performers are listed according to their participation in each genomic analysis. Each analysis may be based on a set of defined protocols that may differ from the performed protocols.

Detailed information about the results of the analyses may be represented by Observations and gathered in a Genomic Report. Both resources may refer back to the originating genomic study to allow navigation.

Example Walkthrough

The following figure is based on the Procedure/lungMass example. Some things to note:

  • A genomics report can reference 0..* genomic studies.
  • A genomic study's code codifies the overall test that was performed.
  • A genomic study can reference genomic study analyses.
  • A genomic study analysis' method characterizes the technique(s) used to perform the particular analysis.
  • A genomic study analysis' change type characterizes the type(s) of molecular alterations detectable by the analysis.
  • A genomic study analysis can reference BED files that provide precise sequencing coverage regions.
  • A genomic study analysis can reference a VCF file generated via the analysis.
  • Variant and other observations can explicitly reference the genomic study from which the observation was derived.
genomic study

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.text 0..1 Narrative GenomicStudy.description
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri This element is included in summaries. 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn This element is included in summaries. 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.status This element is a modifier element. This element is included in summaries. 1..1 code GenomicStudy.status
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.category This element is included in summaries. 1..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.category.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system

Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.code This element is included in summaries. 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject This element is included in summaries. 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter This element is included in summaries. 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] This element is included in summaries. 0..1 dateTime GenomicStudy.startDate
Procedure.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept GenomicStudy.reason
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.note 0..* Annotation GenomicStudy.note

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 error Procedure 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 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.text 0..1 Narrative GenomicStudy.description
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.identifier 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.partOf 0..0 Part of referenced event
Procedure.status 1..1 code GenomicStudy.status
Procedure.statusReason 0..0 Reason for current status
Procedure.category 1..1 CodeableConcept Classification of the procedure
Procedure.category.coding 1..1 Coding Code defined by a terminology system
Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.code 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] 0..1 dateTime GenomicStudy.startDate
Procedure.recorder 0..0 Who recorded the procedure
Procedure.asserter 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.location 0..0 Where the procedure happened
Procedure.reasonCode 0..* CodeableConcept GenomicStudy.reason
Procedure.reasonReference 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.bodySite 0..0 Target body sites
Procedure.outcome 0..0 The result of procedure
Procedure.report 0..0 Any report resulting from the procedure
Procedure.complication 0..0 Complication following the procedure
Procedure.complicationDetail 0..0 A condition that is a result of the procedure
Procedure.followUp 0..0 Instructions for follow up
Procedure.note 0..* Annotation GenomicStudy.note
Procedure.focalDevice 0..0 Manipulated, implanted, or removed device
Procedure.usedReference 0..0 Items used during procedure
Procedure.usedCode 0..0 Coded items used during the procedure

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.id This element is included in summaries. 0..1 id Logical id of this artifact
Procedure.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Procedure.text 0..1 Narrative GenomicStudy.description
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Procedure.contained 0..* Resource Contained, inline Resources
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri This element is included in summaries. 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn This element is included in summaries. 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.status This element is a modifier element. This element is included in summaries. 1..1 code GenomicStudy.status
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.category This element is included in summaries. 1..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.category.id 0..1 string Unique id for inter-element referencing
Procedure.category.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.category.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system

Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.category.text This element is included in summaries. 0..1 string Plain text representation of the concept
Procedure.code This element is included in summaries. 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject This element is included in summaries. 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter This element is included in summaries. 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] This element is included in summaries. 0..1 dateTime GenomicStudy.startDate
Procedure.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.performer This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.id 0..1 string Unique id for inter-element referencing
Procedure.performer.extension 0..* Extension Additional content defined by implementations
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.performer.onBehalfOf 0..1 Reference(Organization) Organization the device or practitioner was acting for
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept GenomicStudy.reason
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.note 0..* Annotation GenomicStudy.note

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG
Procedure.performer.​function Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 error Procedure 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 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.text 0..1 Narrative GenomicStudy.description
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri This element is included in summaries. 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn This element is included in summaries. 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.status This element is a modifier element. This element is included in summaries. 1..1 code GenomicStudy.status
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.category This element is included in summaries. 1..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.category.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system

Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.code This element is included in summaries. 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject This element is included in summaries. 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter This element is included in summaries. 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] This element is included in summaries. 0..1 dateTime GenomicStudy.startDate
Procedure.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept GenomicStudy.reason
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.note 0..* Annotation GenomicStudy.note

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 error Procedure 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 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.text 0..1 Narrative GenomicStudy.description
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.identifier 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.partOf 0..0 Part of referenced event
Procedure.status 1..1 code GenomicStudy.status
Procedure.statusReason 0..0 Reason for current status
Procedure.category 1..1 CodeableConcept Classification of the procedure
Procedure.category.coding 1..1 Coding Code defined by a terminology system
Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.code 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] 0..1 dateTime GenomicStudy.startDate
Procedure.recorder 0..0 Who recorded the procedure
Procedure.asserter 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.location 0..0 Where the procedure happened
Procedure.reasonCode 0..* CodeableConcept GenomicStudy.reason
Procedure.reasonReference 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.bodySite 0..0 Target body sites
Procedure.outcome 0..0 The result of procedure
Procedure.report 0..0 Any report resulting from the procedure
Procedure.complication 0..0 Complication following the procedure
Procedure.complicationDetail 0..0 A condition that is a result of the procedure
Procedure.followUp 0..0 Instructions for follow up
Procedure.note 0..* Annotation GenomicStudy.note
Procedure.focalDevice 0..0 Manipulated, implanted, or removed device
Procedure.usedReference 0..0 Items used during procedure
Procedure.usedCode 0..0 Coded items used during the procedure

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure An action that is being or was performed on a patient
Procedure.id This element is included in summaries. 0..1 id Logical id of this artifact
Procedure.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Procedure.text 0..1 Narrative GenomicStudy.description
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Procedure.contained 0..* Resource Contained, inline Resources
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:genomic-study-analysis 0..* Reference(Genomic Study Analysis) GenomicStudy.analysis
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
Procedure.Slices for extension.extension:referrer 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.referrer
URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier GenomicStudy.identifier
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition) GenomicStudy.instantiatesCanonical
Procedure.instantiatesUri This element is included in summaries. 0..* uri GenomicStudy.instantiatesUri
Procedure.basedOn This element is included in summaries. 0..* Reference(ServiceRequest) GenomicStudy.basedOn
Procedure.status This element is a modifier element. This element is included in summaries. 1..1 code GenomicStudy.status
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.category This element is included in summaries. 1..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.category.id 0..1 string Unique id for inter-element referencing
Procedure.category.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.category.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system

Required Pattern:
{
  "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
  "code" : "laboratory"
}
Procedure.category.text This element is included in summaries. 0..1 string Plain text representation of the concept
Procedure.code This element is included in summaries. 0..1 CodeableConcept GenomicStudy.type
Binding: Genomic Study Type ValueSet (example)
Procedure.subject This element is included in summaries. 1..1 Reference(Patient | Group) GenomicStudy.subject
Procedure.encounter This element is included in summaries. 0..1 Reference(Encounter) GenomicStudy.encounter
Procedure.performed[x] This element is included in summaries. 0..1 dateTime GenomicStudy.startDate
Procedure.asserter This element is included in summaries. 0..1 Reference(Practitioner | PractitionerRole) GenomicStudy.interpreter
Procedure.performer This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.id 0..1 string Unique id for inter-element referencing
Procedure.performer.extension 0..* Extension Additional content defined by implementations
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.performer.onBehalfOf 0..1 Reference(Organization) Organization the device or practitioner was acting for
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept GenomicStudy.reason
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation) GenomicStudy.reason
Procedure.note 0..* Annotation GenomicStudy.note

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Genomic Study Type ValueSet 📦4.0.0-cibuild This IG
Procedure.performer.​function Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 error Procedure 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 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Metrics and Region Details

Since the release of R5 included the GenomicStudy resource, some concepts are being added and others are being slightly reframed. The Metrics extension is used to assert high level quality metrics. The Regions extension is used to assert details about the scope of the analysis. There are options to express detail about genes and regions in the analysis. These include:

  • all genes or regions that were studied for analysis
  • genes or regions that had sufficient quality and coverage and are deemed to be called
  • genes or regions that were deemed uncallable, typically due to low coverage, but could be due to other quality issues

When expressing the each of those elements, there are two approaches to consider:

  • genes may be listed as coded values (HGNC)
  • region details may be shared via a BED file (the exact specification of the BED file is beyond the scope of this IG)

Attaching Genomic Files

STU Note: The guidance below for file attachments needs to be carefully reviewed and considered. There are potential issues, and the Work Group welcomes feedback.

While this implementation guide strives to provide structured genomic data via a variety of observations, there are use cases that warrant a deeper level of data than this guide allows. These use cases might be best served by sending commonly used files (VCF, BAM, CRAM, MAF, BED to name a few) with the genomic study. To promote a consistent approach to sharing these files, we provide the guidance in this section. Even with this guidance, note that best practices in exchanging these files along with the metadata necessary to make use of them through a FHIR API, remains a complicated and open issue. See operations for a description of an experimental alternative workflow.

When sending these genomic files, implementers should first utilize this Genomic Study profile. Each study has one or more analyses, each of which can define input and output elements. From there, the GenomicDataFile can be used to send the file content along with meaningful metadata. This approach allows the files to have their own existence and enables queries to find them via the DocumentReference resource. To enable linking from the report to files, the Genomic Study Reference extension can be used to reference the study, corresponding analyses, and then the files. This can be helpful for those processing the report to easily identify the files that were sent along with the report.

When sending genomic files there are many considerations. For example, it is not unusual for files to be gigabytes in size. The DocumentReference resource has different options to evaluate for your use case. If embedded directly using DocumentReference.content.attachment.data, servers receiving the files may have size constraints per resource or per transaction which may limit your options. Instead of sending a large data file, the file can be referenced by a URL and title using the DocumentReference.content.attachment.url element. This can point to an online resource that hosts the file or from where the file can be accessed. For genomic files, the host is likely not the FHIR server providing the DocumentReference data instance. Be aware that use of DocumentReference to provide access to files through URLs introduces authorization requirements that are out of scope of this Implementation Guide. With either of these approaches, it is important to note the files might be compressed. Also, the mime types for these genomic files will vary, or possibly be missing. The senders of the data should include as much metadata as possible to enable the receiver to appropriately handle the files.

For receivers to make use of these files, many facets of the generation of the files will be needed, such as what pipelines, tools, and settings were used. The intended downstream use cases must be carefully evaluated to ensure appropriate file preparation. The GenomicStudyAnalysis defines a number of attributes that can be used to better understand the file. Also, the DocumentReference.description might be helpful for a sending system to provide guidance on how the file was generated. A fully computable approach for this issue has yet to be defined.

It should be noted that this GenomicStudy profile is not an appropriate way to send a copy of the report (e.g., PDF or other document containing the written report). Instead, use Genomic Report and the presentedForm attribute.

A full, detailed implementation discussion is outside the scope of this IG. In a future release, this IG may include other profiles or artifacts along with more specific guidance.