Genomics Reporting Implementation Guide
4.0.0-cibuild - CI Build

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.

Usages:

- Refer to this Profile: Genomic Base, Genomic Study Analysis Input and Genomic Study Reference
- Examples for this Profile: Procedure/PGXGenomicStudy, Procedure/genomicstudy-trio2, Procedure/lungMass and Procedure/somaticStudy

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
text |  | 0..1 | Narrative | GenomicStudy.description This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:genomic-study-analysis |  | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
extension:referrer |  | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following
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: laboratory
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
code | Σ | 0..1 | CodeableConcept | GenomicStudy.type Binding: Genomic Study Type ValueSet (example)
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason
note |  | 0..* | Annotation | GenomicStudy.note
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

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
id | Σ | 0..1 | id | 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): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | GenomicStudy.description This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:genomic-study-analysis |  | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
extension:referrer |  | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following
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: laboratory
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
code | Σ | 0..1 | CodeableConcept | GenomicStudy.type Binding: Genomic Study Type ValueSet (example)
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter
performer | Σ | 0..* | BackboneElement | The people who performed the procedure
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
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason
note |  | 0..* | Annotation | GenomicStudy.note
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

Summary

Mandatory: 2 elements
Prohibited: 13 elements

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
- http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
text |  | 0..1 | Narrative | GenomicStudy.description This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:genomic-study-analysis |  | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
extension:referrer |  | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following
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: laboratory
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
code | Σ | 0..1 | CodeableConcept | GenomicStudy.type Binding: Genomic Study Type ValueSet (example)
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason
note |  | 0..* | Annotation | GenomicStudy.note
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

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
id | Σ | 0..1 | id | 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): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | GenomicStudy.description This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:genomic-study-analysis |  | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
extension:referrer |  | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following
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: laboratory
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
code | Σ | 0..1 | CodeableConcept | GenomicStudy.type Binding: Genomic Study Type ValueSet (example)
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter
performer | Σ | 0..* | BackboneElement | The people who performed the procedure
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
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason
note |  | 0..* | Annotation | GenomicStudy.note
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

Summary

Mandatory: 2 elements
Prohibited: 13 elements

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext
- http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext

Maturity: 2

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.