Clinical Genomics Resource Incubator
0.1.0-ci-build - CI Build International flag

Clinical Genomics Resource Incubator, published by HL7 International / Clinical Genomics. This guide is not an authorized publication; it is the continuous build for version 0.1.0-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/cg-incubator/ and changes regularly. See the Directory of published versions

Resource: Genomic Study ( Experimental )

Official URL: http://hl7.org/fhir/StructureDefinition/GenomicStudy Version: 0.1.0-ci-build
Standards status: Draft Draft as of 2021-01-02 Maturity Level: 1 Computable Name: GenomicStudy
Other Identifiers: OID:2.16.840.1.113883.4.642.5.1109

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

Scope and Usage

GenomicStudy resource aims at delineating relevant information of a 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 targeted.

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

A GenomicStudy 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.

The analysis.genomicRegion backbone element groups genomic regions by their relationship to the analysis outcome. Each repetition carries a type code (studied, called, or uncalled) alongside one or more locus entries. The locus sub-element uses the CodeableReference datatype, which allows each entry to be expressed either as a coded gene identifier (using the concept side, e.g., an HGNC gene code) or as a reference to a DocumentReference carrying a BED file (using the reference side). Both forms may appear within the same genomicRegion entry. An optional description sub-element allows free-text explanation, particularly for uncalled entries where documenting the reason (e.g., low coverage, repetitive sequence) is clinically valuable. Other types of files used in an analysis can be listed as input or output elements.

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

Boundaries and Relationships

A main function of GenomicStudy is to provide additional metadata for one or more clinical genomic analysis pipelines where DocumentReference instances are used to track inputs and outputs of those pipelines. Device is used to represent both hardware and software used in the sequencing and in the analyses.

It is intended that this resource be referenced by Observation and DiagnosticReport in the same way that ImagingStudy is currently referenced on those resources. Of note, the results of the study would be captured in Observations and referenced on a DiagnosticReport.

Important contextual references include Patient, Specimen, Encounter, ServiceRequest, Practitioner, and Organization.

Observation or Condition instances may also be referenced from genomic study to designate a given reason for performing the study.

GenomicStudy can support the event-definition workflow pattern by referencing PlanDefinition via the instantiatesCanonical relationship when implementers wish to describe more specifics of the pipelines and devices used in the analysis.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Resource Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. GenomicStudy 0..* DomainResource Genomic Study

Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Identifiers for this genomic study
... status ?!Σ 1..1 code registered | available | cancelled | entered-in-error | unknown
Binding: Genomic Study Status VS (required): The status of the GenomicStudy.
... type Σ 0..* CodeableConcept The type of the study (e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling)
Binding: Genomic Study Type VS (example): The type relevant to GenomicStudy.
... encounter Σ 0..1 Reference(Encounter) The healthcare event with which this genomics study is associated
... startDate 0..1 dateTime When the genomic study was started
... basedOn 0..* Reference(ServiceRequest | Task) Event resources that the genomic study is based on
... referrer 0..1 Reference(Practitioner | PractitionerRole) Healthcare professional who requested or referred the genomic study
... interpreter 0..* Reference(Practitioner | PractitionerRole) Healthcare professionals who interpreted the genomic study
... reason 0..* CodeableReference(Condition | Observation) Why the genomic study was performed
... instantiatesCanonical 0..1 canonical(PlanDefinition) The defined protocol that describes the study
... instantiatesUri 0..1 uri The URL pointing to an externally maintained protocol that describes the study
... note 0..* Annotation Comments related to the genomic study
... description 0..1 markdown Description of the genomic study
... analysis C 0..* BackboneElement Genomic Analysis Event
Constraints: gs-regions-1, gs-regions-2
.... identifier Σ 0..* Identifier Identifiers for the analysis event
.... methodType Σ 0..* CodeableConcept Type of the methods used in the analysis (e.g., FISH, Karyotyping, MSI)
Binding: Genomic Study Method Type VS (preferred): The method type of the GenomicStudy analysis.
.... changeType 0..* CodeableConcept Type of the genomic changes studied in the analysis (e.g., DNA, RNA, or AA change)
Binding: Genomic Study Change Type VS (preferred): The change type relevant to GenomicStudy analysis.
.... genomeBuild 0..1 CodeableConcept Genome build that is used in this analysis
Binding: LOINC Answer List LL1040-6 (extensible): Human reference sequence NCBI build ID
.... genomicSourceClass 0..1 CodeableConcept The genomic source class of the specimens used in the analysis (e.g., somatic, germline)
Binding: LOINC Answer List LL378-1 (extensible): The genomic source class (e.g., somatic, germline) of the specimens being analyzed.
.... instantiatesCanonical 0..1 canonical(PlanDefinition | ActivityDefinition) The defined protocol that describes the analysis
.... instantiatesUri 0..1 uri The URL pointing to an externally maintained protocol that describes the analysis
.... title Σ 0..1 string Name of the analysis event (human friendly)
.... focus Σ 0..* Reference(Resource) What the genomic analysis is about, when it is not about the subject of record
.... specimen Σ 0..* Reference(Specimen) The specimen used in the analysis event
.... date 0..1 dateTime The date of the analysis event
.... note 0..* Annotation Any notes capture with the analysis event
.... metrics 0..1 BackboneElement Quality metrics for the analysis
..... readDepth 0..1 SimpleQuantity Average read depth (e.g., 30x, 100x)
..... sequencingCoverage 0..1 SimpleQuantity Percentage of studied regions sequenced (e.g., 95%)
..... description 0..1 string Freetext coverage metrics description
.... protocolPerformed 0..1 Reference(Procedure | Task) The protocol that was performed for the analysis event
.... genomicRegion 0..* BackboneElement Genomic regions relevant to the analysis, grouped by type
..... type 1..1 CodeableConcept studied | called | uncalled
Binding: Genomic Study Region Type VS (extensible): The type of genomic region group. Use studied, called, or uncalled where applicable; other codes may be used for methodology-specific region classifications not covered by this value set.
..... locus 0..* CodeableReference(DocumentReference) Genomic regions in this group (coded genes or BED file)
Binding: HUGO Gene Nomenclature Committee Gene Names (HGNC) (extensible): HGNC gene names for coded gene lists.
..... description 0..1 string Additional details about this region group
.... input 0..* BackboneElement Inputs for the analysis event
..... file Σ 0..1 Reference(DocumentReference) File containing input data
..... type 0..1 CodeableConcept Type of input data (e.g., BAM, CRAM, or FASTA)
Binding: Genomic Study Data Format VS (example): The data format of the data file.
..... generatedBy[x] 0..1 The analysis event or other GenomicStudy that generated this input file
...... generatedByIdentifier Identifier
...... generatedByReference Reference(Genomic Study)
.... output 0..* BackboneElement Outputs for the analysis event
..... file Σ 0..1 Reference(DocumentReference) File containing output data
..... type Σ 0..1 CodeableConcept Type of output data (e.g., VCF, MAF, or BAM)
Binding: Genomic Study Data Format VS (example): The data format of the data file.
.... performer 0..* BackboneElement Performer for the analysis event
..... actor 0..1 Reference(Practitioner | PractitionerRole | Organization | Device) The organization, healthcare professional, or others who participated in performing this analysis
..... role 0..1 CodeableConcept Role of the actor for this analysis
.... device 0..* BackboneElement Devices used for the analysis (e.g., instruments, software), with settings and parameters
..... device 0..1 Reference(Device) Device used for the analysis
..... function 0..1 CodeableConcept Specific function for the device used for the analysis

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
GenomicStudy.status Base required Genomic Study Status VS 📦0.1.0-ci-build This IG
GenomicStudy.type Base example Genomic Study Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​methodType Base preferred Genomic Study Method Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​changeType Base preferred Genomic Study Change Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​genomeBuild Base extensible LOINC Answer Codes for LL1040-6 unknown?
GenomicStudy.analysis.​genomicSourceClass Base extensible LOINC Answer Codes for LL378-1 unknown?
GenomicStudy.analysis.​genomicRegion.type Base extensible Genomic Study Region Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​genomicRegion.locus Base extensible HUGO Gene Nomenclature Committee Gene Names (HGNC) 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​input.type Base example Genomic Study Data Format VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​output.type Base example Genomic Study Data Format VS 📦0.1.0-ci-build This IG

Constraints

Id Grade Path(s) Description Expression
gs-regions-1 warning GenomicStudy.analysis When genomicRegion.studied entries use coded concepts, every code in genomicRegion.called and genomicRegion.uncalled entries should also appear in genomicRegion.studied. This constraint cannot be evaluated when BED file references (DocumentReference) are used instead of coded concepts. genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.exists() implies genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and (code = 'called' or code = 'uncalled')).exists()).locus.concept.coding.where(system.exists()).all((system & '|' & code) in %context.genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.coding.select(system & '|' & code))
gs-regions-2 error GenomicStudy.analysis If all studied genomicRegion entries use coded concepts (none use DocumentReference), then all called and uncalled genomicRegion entries must also use coded concepts and not DocumentReference. This ensures a consistent representation when the studied scope is fully expressed as coded identifiers. Note: this constraint is intentionally one-directional — when studied uses DocumentReference (e.g., a BED file), called and uncalled entries may legitimately use coded concepts to name specific genes, since enumerating a full BED file as coded genes is impractical. (genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.reference.exists().not() and genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.exists()) implies genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and (code = 'called' or code = 'uncalled')).exists()).locus.reference.exists().not()
<GenomicStudy xmlns="http://hl7.org/fhir"> doco
 <id value="[id]"/><!-- 0..1 * Logical id of this artifact  -->
 <meta><!-- I 0..1 * Metadata about the resource  --></meta>
 <implicitRules value="[uri]"/><!-- I 0..1 * A set of rules under which this content was created  -->
 <language value="[code]"/><!-- I 0..1 * Language of the resource content  -->
 <text><!-- I 0..1 * Text summary of the resource, for human interpretation  --></text>
 <contained><!-- 0..* * Contained, inline Resources  --></contained>
 <extension><!-- See Extensions  Additional content defined by implementations  --></extension>
 <modifierExtension><!-- I 0..* * Extensions that cannot be ignored  --></modifierExtension>
 <identifier><!-- 0..* * Identifiers for this genomic study  --></identifier>
 <status value="[code]"/><!-- 1..1 * registered | available | cancelled | entered-in-error | unknown  -->
 <type><!-- 0..* * The type of the study (e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling)  --></type>
 <subject><!-- 1..1 * The primary subject of the genomic study  --></subject>
 <encounter><!-- 0..1 * The healthcare event with which this genomics study is associated  --></encounter>
 <startDate value="[dateTime]"/><!-- 0..1 * When the genomic study was started  -->
 <basedOn><!-- 0..* * Event resources that the genomic study is based on  --></basedOn>
 <referrer><!-- 0..1 * Healthcare professional who requested or referred the genomic study  --></referrer>
 <interpreter><!-- 0..* * Healthcare professionals who interpreted the genomic study  --></interpreter>
 <reason><!-- 0..* * Why the genomic study was performed  --></reason>
 <instantiatesCanonical value="[canonical]"/><!-- 0..1 * The defined protocol that describes the study  -->
 <instantiatesUri value="[uri]"/><!-- 0..1 * The URL pointing to an externally maintained protocol that describes the study  -->
 <note><!-- 0..* * Comments related to the genomic study  --></note>
 <description value="[markdown]"/><!-- 0..1 * Description of the genomic study  -->
 <analysis> I 0..* *  <!-- I 0..* Genomic Analysis Event -->
  <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing   -->
  <extension><!-- See Extensions  Additional content defined by implementations   --></extension>
  <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized   --></modifierExtension>
  <identifier><!-- 0..* * Identifiers for the analysis event   --></identifier>
  <methodType><!-- 0..* * Type of the methods used in the analysis (e.g., FISH, Karyotyping, MSI)   --></methodType>
  <changeType><!-- 0..* * Type of the genomic changes studied in the analysis (e.g., DNA, RNA, or AA change)   --></changeType>
  <genomeBuild><!-- 0..1 * Genome build that is used in this analysis   --></genomeBuild>
  <genomicSourceClass><!-- 0..1 * The genomic source class of the specimens used in the analysis (e.g., somatic, germline)   --></genomicSourceClass>
  <instantiatesCanonical value="[canonical]"/><!-- 0..1 * The defined protocol that describes the analysis   -->
  <instantiatesUri value="[uri]"/><!-- 0..1 * The URL pointing to an externally maintained protocol that describes the analysis   -->
  <title value="[string]"/><!-- 0..1 * Name of the analysis event (human friendly)   -->
  <focus><!-- 0..* * What the genomic analysis is about, when it is not about the subject of record   --></focus>
  <specimen><!-- 0..* * The specimen used in the analysis event   --></specimen>
  <date value="[dateTime]"/><!-- 0..1 * The date of the analysis event   -->
  <note><!-- 0..* * Any notes capture with the analysis event   --></note>
  <metrics> I 0..1 *  <!-- I 0..1 Quality metrics for the analysis -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <readDepth><!-- 0..1 * Average read depth (e.g., 30x, 100x)    --></readDepth>
   <sequencingCoverage><!-- 0..1 * Percentage of studied regions sequenced (e.g., 95%)    --></sequencingCoverage>
   <description value="[string]"/><!-- 0..1 * Freetext coverage metrics description    -->
  </metrics>
  <protocolPerformed><!-- 0..1 * The protocol that was performed for the analysis event   --></protocolPerformed>
  <genomicRegion> I 0..* *  <!-- I 0..* Genomic regions relevant to the analysis, grouped by type -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <type><!-- 1..1 * studied | called | uncalled    --></type>
   <locus><!-- 0..* * Genomic regions in this group (coded genes or BED file)    --></locus>
   <description value="[string]"/><!-- 0..1 * Additional details about this region group    -->
  </genomicRegion>
  <input> I 0..* *  <!-- I 0..* Inputs for the analysis event -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <file><!-- 0..1 * File containing input data    --></file>
   <type><!-- 0..1 * Type of input data (e.g., BAM, CRAM, or FASTA)    --></type>
   <generatedBy[x]><!-- 0..1 Identifier|Reference(GenomicStudy) The analysis event or other GenomicStudy that generated this input file    --></generatedBy[x]>
  </input>
  <output> I 0..* *  <!-- I 0..* Outputs for the analysis event -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <file><!-- 0..1 * File containing output data    --></file>
   <type><!-- 0..1 * Type of output data (e.g., VCF, MAF, or BAM)    --></type>
  </output>
  <performer> I 0..* *  <!-- I 0..* Performer for the analysis event -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <actor><!-- 0..1 * The organization, healthcare professional, or others who participated in performing this analysis    --></actor>
   <role><!-- 0..1 * Role of the actor for this analysis    --></role>
  </performer>
  <device> I 0..* *  <!-- I 0..* Devices used for the analysis (e.g., instruments, software), with settings and parameters -->
   <id value="[id]"/><!-- 0..1 * Unique id for inter-element referencing    -->
   <extension><!-- See Extensions  Additional content defined by implementations    --></extension>
   <modifierExtension><!-- I 0..* * Extensions that cannot be ignored even if unrecognized    --></modifierExtension>
   <device><!-- 0..1 * Device used for the analysis    --></device>
   <function><!-- 0..1 * Specific function for the device used for the analysis    --></function>
  </device>
 </analysis>
</GenomicStudy>
{doco
  "resourceType" : "GenomicStudy",
  "id" : "<id>", // 0..1 Logical id of this artifact
  "meta" : { Meta }, // I 0..1 Metadata about the resource
  "implicitRules" : "<uri>", // I 0..1 A set of rules under which this content was created
  "language" : "<code>", // I 0..1 Language of the resource content
  "text" : { Narrative }, // I 0..1 Text summary of the resource, for human interpretation
  "contained" : [{ Resource }], // 0..* Contained, inline Resources
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
  "identifier" : [{ Identifier }], // 0..* Identifiers for this genomic study
  "status" : "<code>", // 1..1 registered | available | cancelled | entered-in-error | unknown
  "type" : [{ CodeableConcept }], // 0..* The type of the study (e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling)
  "subject" : { Reference(BiologicallyDerivedProduct|Group|NutritionProduct|
   Patient|Substance) }, // 1..1 The primary subject of the genomic study
  "encounter" : { Reference(Encounter) }, // 0..1 The healthcare event with which this genomics study is associated
  "startDate" : "<dateTime>", // 0..1 When the genomic study was started
  "basedOn" : [{ Reference(ServiceRequest|Task) }], // 0..* Event resources that the genomic study is based on
  "referrer" : { Reference(Practitioner|PractitionerRole) }, // 0..1 Healthcare professional who requested or referred the genomic study
  "interpreter" : [{ Reference(Practitioner|PractitionerRole) }], // 0..* Healthcare professionals who interpreted the genomic study
  "reason" : [{ CodeableReference(Condition|Observation) }], // 0..* Why the genomic study was performed
  "instantiatesCanonical" : "<canonical(PlanDefinition)>", // 0..1 The defined protocol that describes the study
  "instantiatesUri" : "<uri>", // 0..1 The URL pointing to an externally maintained protocol that describes the study
  "note" : [{ Annotation }], // 0..* Comments related to the genomic study
  "description" : "<markdown>", // 0..1 Description of the genomic study
  "analysis" : [{ BackboneElement }] // I 0..* Genomic Analysis Event
    "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
    "identifier" : [{ Identifier }], // 0..* Identifiers for the analysis event
    "methodType" : [{ CodeableConcept }], // 0..* Type of the methods used in the analysis (e.g., FISH, Karyotyping, MSI)
    "changeType" : [{ CodeableConcept }], // 0..* Type of the genomic changes studied in the analysis (e.g., DNA, RNA, or AA change)
    "genomeBuild" : { CodeableConcept }, // 0..1 Genome build that is used in this analysis
    "genomicSourceClass" : { CodeableConcept }, // 0..1 The genomic source class of the specimens used in the analysis (e.g., somatic, germline)
    "instantiatesCanonical" : "<canonical(PlanDefinition|ActivityDefinition)>", // 0..1 The defined protocol that describes the analysis
    "instantiatesUri" : "<uri>", // 0..1 The URL pointing to an externally maintained protocol that describes the analysis
    "title" : "<string>", // 0..1 Name of the analysis event (human friendly)
    "focus" : [{ Reference(Resource) }], // 0..* What the genomic analysis is about, when it is not about the subject of record
    "specimen" : [{ Reference(Specimen) }], // 0..* The specimen used in the analysis event
    "date" : "<dateTime>", // 0..1 The date of the analysis event
    "note" : [{ Annotation }], // 0..* Any notes capture with the analysis event
    "metrics" : { BackboneElement }, // I 0..1 Quality metrics for the analysis
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "readDepth" : { Quantity }, // 0..1 Average read depth (e.g., 30x, 100x)
      "sequencingCoverage" : { Quantity }, // 0..1 Percentage of studied regions sequenced (e.g., 95%)
      "description" : "<string>" // 0..1 Freetext coverage metrics description
    }
    "protocolPerformed" : { Reference(Procedure|Task) }, // 0..1 The protocol that was performed for the analysis event
    "genomicRegion" : [{ BackboneElement }], // I 0..* Genomic regions relevant to the analysis, grouped by type
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "type" : { CodeableConcept }, // 1..1 studied | called | uncalled
      "locus" : [{ CodeableReference(DocumentReference) }], // 0..* Genomic regions in this group (coded genes or BED file)
      "description" : "<string>" // 0..1 Additional details about this region group
    }
    "input" : [{ BackboneElement }], // I 0..* Inputs for the analysis event
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "file" : { Reference(DocumentReference) }, // 0..1 File containing input data
      "type" : { CodeableConcept }, // 0..1 Type of input data (e.g., BAM, CRAM, or FASTA)
      // generatedBy[x]: The analysis event or other GenomicStudy that generated this input file. One of these 2:
      "generatedByIdentifier" : { Identifier },
      "generatedByReference" : { Reference(GenomicStudy) }
    }
    "output" : [{ BackboneElement }], // I 0..* Outputs for the analysis event
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "file" : { Reference(DocumentReference) }, // 0..1 File containing output data
      "type" : { CodeableConcept } // 0..1 Type of output data (e.g., VCF, MAF, or BAM)
    }
    "performer" : [{ BackboneElement }], // I 0..* Performer for the analysis event
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "actor" : { Reference(Device|Organization|Practitioner|PractitionerRole) }, // 0..1 The organization, healthcare professional, or others who participated in performing this analysis
      "role" : { CodeableConcept } // 0..1 Role of the actor for this analysis
    }
    "device" : [{ BackboneElement }] // I 0..* Devices used for the analysis (e.g., instruments, software), with settings and parameters
      "id" : "<id>", // 0..1 Unique id for inter-element referencing
  (Extensions - see JSON page)
  (Modifier Extensions - see JSON page)
      "device" : { Reference(Device) }, // 0..1 Device used for the analysis
      "function" : { CodeableConcept } // 0..1 Specific function for the device used for the analysis
    }
  }
}
@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:GenomicStudy;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  fhir:id [ id ] ; # 0..1 Logical id of this artifact
  fhir:meta [ Meta ] ; # 0..1 I Metadata about the resource
  fhir:implicitRules [ uri ] ; # 0..1 I A set of rules under which this content was created
  fhir:language [ code ] ; # 0..1 I Language of the resource content
  fhir:text [ Narrative ] ; # 0..1 I Text summary of the resource, for human interpretation
  fhir:contained  ( [ Resource ] ... ) ; # 0..* Contained, inline Resources
  fhir:extension  ( [ Extension ] ... ) ; # 0..* I Additional content defined by implementations
  fhir:modifierExtension  ( [ Extension ] ... ) ; # 0..* I Extensions that cannot be ignored
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Identifiers for this genomic study
  fhir:status [ code ] ; # 1..1 registered | available | cancelled | entered-in-error | unknown
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* The type of the study (e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling)
  fhir:subject [ Reference(BiologicallyDerivedProduct|Group|NutritionProduct|Patient|Substance) ] ; # 1..1 The primary subject of the genomic study
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 The healthcare event with which this genomics study is associated
  fhir:startDate [ dateTime ] ; # 0..1 When the genomic study was started
  fhir:basedOn  ( [ Reference(ServiceRequest|Task) ] ... ) ; # 0..* Event resources that the genomic study is based on
  fhir:referrer [ Reference(Practitioner|PractitionerRole) ] ; # 0..1 Healthcare professional who requested or referred the genomic study
  fhir:interpreter  ( [ Reference(Practitioner|PractitionerRole) ] ... ) ; # 0..* Healthcare professionals who interpreted the genomic study
  fhir:reason  ( [ CodeableReference(Condition|Observation) ] ... ) ; # 0..* Why the genomic study was performed
  fhir:instantiatesCanonical [ canonical(PlanDefinition) ] ; # 0..1 The defined protocol that describes the study
  fhir:instantiatesUri [ uri ] ; # 0..1 The URL pointing to an externally maintained protocol that describes the study
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Comments related to the genomic study
  fhir:description [ markdown ] ; # 0..1 Description of the genomic study
  fhir:analysis  ( [ BackboneElement ] ... ) ; # 0..* I Genomic Analysis Event
]

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. GenomicStudy 0..* DomainResource Genomic Study

Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Identifiers for this genomic study
... status ?!Σ 1..1 code registered | available | cancelled | entered-in-error | unknown
Binding: Genomic Study Status VS (required): The status of the GenomicStudy.
... type Σ 0..* CodeableConcept The type of the study (e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling)
Binding: Genomic Study Type VS (example): The type relevant to GenomicStudy.
... encounter Σ 0..1 Reference(Encounter) The healthcare event with which this genomics study is associated
... startDate 0..1 dateTime When the genomic study was started
... basedOn 0..* Reference(ServiceRequest | Task) Event resources that the genomic study is based on
... referrer 0..1 Reference(Practitioner | PractitionerRole) Healthcare professional who requested or referred the genomic study
... interpreter 0..* Reference(Practitioner | PractitionerRole) Healthcare professionals who interpreted the genomic study
... reason 0..* CodeableReference(Condition | Observation) Why the genomic study was performed
... instantiatesCanonical 0..1 canonical(PlanDefinition) The defined protocol that describes the study
... instantiatesUri 0..1 uri The URL pointing to an externally maintained protocol that describes the study
... note 0..* Annotation Comments related to the genomic study
... description 0..1 markdown Description of the genomic study
... analysis C 0..* BackboneElement Genomic Analysis Event
Constraints: gs-regions-1, gs-regions-2
.... identifier Σ 0..* Identifier Identifiers for the analysis event
.... methodType Σ 0..* CodeableConcept Type of the methods used in the analysis (e.g., FISH, Karyotyping, MSI)
Binding: Genomic Study Method Type VS (preferred): The method type of the GenomicStudy analysis.
.... changeType 0..* CodeableConcept Type of the genomic changes studied in the analysis (e.g., DNA, RNA, or AA change)
Binding: Genomic Study Change Type VS (preferred): The change type relevant to GenomicStudy analysis.
.... genomeBuild 0..1 CodeableConcept Genome build that is used in this analysis
Binding: LOINC Answer List LL1040-6 (extensible): Human reference sequence NCBI build ID
.... genomicSourceClass 0..1 CodeableConcept The genomic source class of the specimens used in the analysis (e.g., somatic, germline)
Binding: LOINC Answer List LL378-1 (extensible): The genomic source class (e.g., somatic, germline) of the specimens being analyzed.
.... instantiatesCanonical 0..1 canonical(PlanDefinition | ActivityDefinition) The defined protocol that describes the analysis
.... instantiatesUri 0..1 uri The URL pointing to an externally maintained protocol that describes the analysis
.... title Σ 0..1 string Name of the analysis event (human friendly)
.... focus Σ 0..* Reference(Resource) What the genomic analysis is about, when it is not about the subject of record
.... specimen Σ 0..* Reference(Specimen) The specimen used in the analysis event
.... date 0..1 dateTime The date of the analysis event
.... note 0..* Annotation Any notes capture with the analysis event
.... metrics 0..1 BackboneElement Quality metrics for the analysis
..... readDepth 0..1 SimpleQuantity Average read depth (e.g., 30x, 100x)
..... sequencingCoverage 0..1 SimpleQuantity Percentage of studied regions sequenced (e.g., 95%)
..... description 0..1 string Freetext coverage metrics description
.... protocolPerformed 0..1 Reference(Procedure | Task) The protocol that was performed for the analysis event
.... genomicRegion 0..* BackboneElement Genomic regions relevant to the analysis, grouped by type
..... type 1..1 CodeableConcept studied | called | uncalled
Binding: Genomic Study Region Type VS (extensible): The type of genomic region group. Use studied, called, or uncalled where applicable; other codes may be used for methodology-specific region classifications not covered by this value set.
..... locus 0..* CodeableReference(DocumentReference) Genomic regions in this group (coded genes or BED file)
Binding: HUGO Gene Nomenclature Committee Gene Names (HGNC) (extensible): HGNC gene names for coded gene lists.
..... description 0..1 string Additional details about this region group
.... input 0..* BackboneElement Inputs for the analysis event
..... file Σ 0..1 Reference(DocumentReference) File containing input data
..... type 0..1 CodeableConcept Type of input data (e.g., BAM, CRAM, or FASTA)
Binding: Genomic Study Data Format VS (example): The data format of the data file.
..... generatedBy[x] 0..1 The analysis event or other GenomicStudy that generated this input file
...... generatedByIdentifier Identifier
...... generatedByReference Reference(Genomic Study)
.... output 0..* BackboneElement Outputs for the analysis event
..... file Σ 0..1 Reference(DocumentReference) File containing output data
..... type Σ 0..1 CodeableConcept Type of output data (e.g., VCF, MAF, or BAM)
Binding: Genomic Study Data Format VS (example): The data format of the data file.
.... performer 0..* BackboneElement Performer for the analysis event
..... actor 0..1 Reference(Practitioner | PractitionerRole | Organization | Device) The organization, healthcare professional, or others who participated in performing this analysis
..... role 0..1 CodeableConcept Role of the actor for this analysis
.... device 0..* BackboneElement Devices used for the analysis (e.g., instruments, software), with settings and parameters
..... device 0..1 Reference(Device) Device used for the analysis
..... function 0..1 CodeableConcept Specific function for the device used for the analysis

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
GenomicStudy.status Base required Genomic Study Status VS 📦0.1.0-ci-build This IG
GenomicStudy.type Base example Genomic Study Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​methodType Base preferred Genomic Study Method Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​changeType Base preferred Genomic Study Change Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​genomeBuild Base extensible LOINC Answer Codes for LL1040-6 unknown?
GenomicStudy.analysis.​genomicSourceClass Base extensible LOINC Answer Codes for LL378-1 unknown?
GenomicStudy.analysis.​genomicRegion.type Base extensible Genomic Study Region Type VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​genomicRegion.locus Base extensible HUGO Gene Nomenclature Committee Gene Names (HGNC) 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​input.type Base example Genomic Study Data Format VS 📦0.1.0-ci-build This IG
GenomicStudy.analysis.​output.type Base example Genomic Study Data Format VS 📦0.1.0-ci-build This IG

Constraints

Id Grade Path(s) Description Expression
gs-regions-1 warning GenomicStudy.analysis When genomicRegion.studied entries use coded concepts, every code in genomicRegion.called and genomicRegion.uncalled entries should also appear in genomicRegion.studied. This constraint cannot be evaluated when BED file references (DocumentReference) are used instead of coded concepts. genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.exists() implies genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and (code = 'called' or code = 'uncalled')).exists()).locus.concept.coding.where(system.exists()).all((system & '|' & code) in %context.genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.coding.select(system & '|' & code))
gs-regions-2 error GenomicStudy.analysis If all studied genomicRegion entries use coded concepts (none use DocumentReference), then all called and uncalled genomicRegion entries must also use coded concepts and not DocumentReference. This ensures a consistent representation when the studied scope is fully expressed as coded identifiers. Note: this constraint is intentionally one-directional — when studied uses DocumentReference (e.g., a BED file), called and uncalled entries may legitimately use coded concepts to name specific genes, since enumerating a full BED file as coded genes is impractical. (genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.reference.exists().not() and genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and code = 'studied').exists()).locus.concept.exists()) implies genomicRegion.where(type.coding.where(system = 'http://hl7.org/fhir/uv/cg-incubator/CodeSystem/genomicstudy-regiontype' and (code = 'called' or code = 'uncalled')).exists()).locus.reference.exists().not()

 

Other representations of resource: CSV, Excel

Notes:

Terminology Bindings

GenomicStudy uses several terminology bindings across its elements. Reviewers and implementers are strongly encouraged to provide their comments and feedback about the bound value sets and code systems.

The attributes and their bindings are listed below. Links are included to indicate where the example codes were pulled from.

GenomicStudy.type

The type example codes were based on discussions by Clinical Genomics Workgroup.

GenomicStudy.analysis.methodType

The methodType element has a preferred binding to a value set of testing method codes. The codes were pulled from National Library of Medicine-Genetic Testing Registry (NCBI-GTR) and describe testing methods on various levels: major method category, method category, and primary methodology. Implementers should use the bound codes where applicable and only deviate with a local code when a suitable match is not available.

GenomicStudy.analysis.input.type and GenomicStudy.analysis.output.type

The input and output type example codes were pulled from Integrative Genomics Viewer Documentation by Broad Institute.

GenomicStudy.analysis.changeType

The changeType element has a preferred binding. The codes were based on discussions by Clinical Genomics Workgroup and draw from Sequence Ontology (SO) terms such as SO:0001483 (SNV), SO:0002007 (MNV), SO:1000032 (delins), SO:0001019 (copy_number_variation), SO:0001565 (gene_fusion), and SO:0001576 (transcript_variant). Implementers should use the bound codes where applicable.

GenomicStudy.analysis.genomicSourceClass

The genomicSourceClass element records whether the genomic material analyzed originates from the germline or is somatic in origin. It has an extensible binding to LOINC answer list LL378-1. Commonly used codes include LA6683-2 (Germline) and LA6684-0 (Somatic). This element is particularly important in cancer genomics workflows where paired tumor/normal analyses are performed, and in clinical reporting where the origin of a variant affects its interpretation.

GenomicStudy.analysis.genomicRegion

The genomicRegion backbone element (0..*) groups genomic regions by their role in the analysis outcome. Each repetition has three child elements:

  • genomicRegion.type — a CodeableConcept with an extensible binding to the GenomicStudy Region Type ValueSet. The defined codes are studied (the full intended scope of the analysis), called (regions where sufficient data quality enabled variant calling), and uncalled (regions within the studied scope where calls could not be produced). Other codes may be used for methodology-specific classifications not covered by these three values. See the terminology considerations page for full rationale.
  • genomicRegion.locus0..* CodeableReference entries bound to HGNC gene identifiers (extensible). The binding uses the hgnc-vs ValueSet from the genomics-reporting IG — implementations must therefore include the genomics-reporting package as a dependency. Each entry may be expressed as:
    • A coded gene identifier using the concept side (e.g., HGNC:76 for ABL1), appropriate for targeted gene panels and pharmacogenomics studies.
    • A reference to a DocumentReference using the reference side, pointing to a BED file, appropriate for whole-exome, whole-genome, or large panel studies. Both forms may appear within the same genomicRegion entry.
  • genomicRegion.description0..1 string. Free-text explanation, most useful for uncalled entries where documenting the reason (e.g., low coverage <20x, poor mapping due to repetitive sequence) helps clinical consumers distinguish a data quality limitation from a true negative result.

Important: an uncalled entry does not imply that a pathogenic variant is present or was missed. It records only that the data quality was insufficient to produce calls in those regions.

Invariant gs-regions-1 (warning): When genomicRegion entries with type = studied use coded concepts (locus.concept), every coded concept in called and uncalled entries should also appear in at least one studied entry. This documents the intended subset relationship between the region groups. The invariant fires only as a warning because it cannot be evaluated when BED file references are used for studied entries, and mixed representations (a BED file covering the full panel alongside coded gene entries for a subset) are valid and common in practice.

Invariant gs-regions-2 (error): If all studied genomicRegion entries use coded concepts and none use DocumentReference, then all called and uncalled genomicRegion entries must also use coded concepts only. This ensures representation consistency within an analysis when the studied scope is fully expressed as coded identifiers — mixing coded studied regions with DocRef-based called/uncalled entries would make gs-regions-1 uncomputable and would indicate a structural inconsistency.

This constraint is intentionally one-directional: when studied uses DocumentReference (e.g., a BED file for a large panel), called and uncalled entries may legitimately use coded concepts to name specific genes of interest. Requiring a DocumentReference for every individual uncalled gene would be impractical — it would necessitate creating a separate BED file or DocumentReference for each gene. This mixed pattern (BED file for studied scope, coded HGNC genes for specific called/uncalled genes) is a common and valid clinical practice and is demonstrated in the somatic and lung mass examples in this IG.

GenomicStudy.analysis.metrics

The metrics backbone element captures quality metrics from the sequencing run at the analysis level. It contains:

  • metrics.readDepth — the average read depth (e.g., 120x) as a SimpleQuantity.
  • metrics.sequencingCoverage — the percentage of the target region covered at a defined threshold (e.g., 98%) as a SimpleQuantity.
  • metrics.description — a free-text field for additional quality information not captured by the structured fields.

These metrics are informational and help interpreters and downstream consumers assess the quality and completeness of the sequencing data.

GenomicStudy.analysis.performer.role and analysis.device.function

These two elements carry CodeableConcept values but have no formal ValueSet binding in the current StructureDefinition. Until a binding is established:

  • For performer.role, use HL7 v3 ParticipationType (http://terminology.hl7.org/CodeSystem/v3-ParticipationType), e.g., PRF (Performer).
  • For device.function, use LOINC where applicable, e.g., LA26398-0 (Sequencing).

See the terminology considerations page for further notes on these elements.

Implementation Notes

Handling markdown

The description is a markdown datatype, and implementers should carefully consider how to appropriately handle this attribute. The characters in markdown formatting can conflict with those commonly used in descriptions of genomic data. In particular, descriptions that contain mentions of "star alleles" (widely used in the pharmacogenomics and HLA domains) could be munged in a way that prevents accurate interpretation. For example, consider this text:

This genomic study analyzes CYP2D6*1 and CYP2D6*2

If the system producing this data treats this as a simple text string with no special processing, but a receiving system processes this via a markdown rendering engine, the two '' characters would be processed as markdown formatting characters. This would italicize the text between '' characters, and not display '*' characters. This could cause an inaccurate interpretation of the study description.

There are several ways data producers can ensure content is appropriately rendered by receiving systems without requiring the content to be formatted as markdown prior to sending. Here are three basic approaches to consider:

  • Escaping individual characters (with a ) that act as markdown formatting characters:
    This genomic study analyzes CYP2D6\*1 and CYP2D6\*2
    
  • Escape words (with a `) that contain markdown formatting characters:
    This genomic study analyzes `CYP2D6*1` and `CYP2D6*2`
    
  • Escape full text blocks (with a ```) that contain markdown formatting characters:
    This genomic study analyzes CYP2D6*1 and CYP2D6*2
    

Use Cases

The attributes subject and analysis.focus can reference many resource types besides Patient such as Group, BiologicallyDerivedProduct, or Substance. In addition, it can provide more details about involved genomic files as inputs or outputs. These various options allow the GenomicStudy resource to cover many use cases besides direct patient care, e.g., research studies that involve multiple patients or environmental samples. Through the following subsections, some of these use cases are described.

Trio studies

Trio studies involve a proband and two more subjects such as proband's mother and father for a de novo mutation detection study. GenomicStudy would list the proband as subject because it is the main subject of the study. Each of the study participants, i.e., proband, mother, and father, may have their own analysis entry. When an analysis was performed on an entity other than the subject, the analysis.focus attribute would reference that entity. If a analysis entry documented the analysis of all participants of the trio, each participant would be referenced by analysis.focus.

The analysis.input lists various files that may be used for each individual analysis, their types, and their generation context. analysis.input.file may link these files to DocumentReference resources to provide details about each individual file. One of the main details is the subject of a file. If a file is linked to a specific patient, the corresponding DocumentReference.subject may reference this Patient Resource. If the file contains data from multiple persons, the corresponding DocumentReference.subject may reference a Group resource that lists these persons, and their relationship to each other if available.

Somatic mutation detection studies

Somatic mutation studies may use multiple samples from the patient to support mutation detection, e.g., tumor-normal sample pair. analysis.genomicSourceClass should be coded as LA6684-0 (Somatic) for any analysis performed on tumor-derived material. A single analysis entry may reference multiple specimen elements to represent paired tumor and germline samples within one analysis. In addition, analysis.input can list relevant input files, where the DocumentReference referenced by analysis.input.file can list the specific specimen this input file is related to using DocumentReference.subject as a Specimen resource instance.

Where certain genomic regions cannot be reliably called — for example, due to the segmental duplication structure of a gene, low tumor cellularity, or poor coverage — these should be recorded using an analysis.genomicRegion entry with type = uncalled. The locus sub-element supports both coded gene identifiers (HGNC codes) and references to BED files. Use the description sub-element to document the specific reason. Recording uncallable regions explicitly helps downstream consumers distinguish a data quality limitation from a true negative result.

RNA sequencing for fusion detection should be represented as a separate analysis entry within the same GenomicStudy, using methodType codes such as rna-analysis and changeType codes from Sequence Ontology (e.g., SO:0001565 for gene_fusion). The RNA analysis typically uses only the tumor specimen.

Pharmacogenomics (PGX) studies

PGX studies analyze a patient's germline variants in drug-metabolizing enzyme genes (e.g., CYP2C19, CYP2C9, VKORC1) to inform drug selection and dosing. analysis.genomicSourceClass should be coded as LA6683-2 (Germline). Because PGX panels target a discrete set of well-characterized genes, genomicRegion entries with type = studied and type = called should preferably use HGNC gene codes as the concept side of locus entries (via CodeableReference.concept) rather than BED file references — this makes the coverage scope explicit and computable without reference to external files. The metrics.sequencingCoverage field is particularly meaningful here, as 100% coverage of all target genes is typically required for a reportable result.

EHR access to genomic studies

EHR systems can use GenomicStudy to navigate to genomic data for a given patient. By querying for GenomicStudy resources associated with a patient, a system can discover what analyses were performed, what specimens were used, what genomic files are available, and what quality metrics were achieved. The study can then serve as an anchor for retrieving related DiagnosticReport and Observation resources that contain the interpretive findings.

Name Type Description Expression
focus reference

What the genomic study analysis is about, when it is not about the subject of record

GenomicStudy.analysis.focus
identifier token

Identifiers for the Study

GenomicStudy.identifier
patient reference

Who the study is about

GenomicStudy.subject.where(resolve() is Patient)
status token

The status of the study

GenomicStudy.status
subject reference

Who the study is about

GenomicStudy.subject