This page is part of the Genetic Reporting Implementation Guide (v3.0.0: STU3) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study | Version: 3.0.0 | |||
Active as of 2024-12-12 | 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.
Genomic Study and Genomic Study Analysis profiles are backported from the FHIR R5 GenomicStudy resource.
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.
The following figure is based on the Procedure/lungMass example. Some things to note:
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Procedure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | Procedure | |||
text | 0..1 | Narrative | GenomicStudy.description | |
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext | |
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 | |||
status | 1..1 | code | GenomicStudy.status | |
statusReason | 0..0 | |||
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 | |||
asserter | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter | |
location | 0..0 | |||
reasonCode | 0..* | CodeableConcept | GenomicStudy.reason | |
reasonReference | 0..* | Reference(Condition | Observation) | GenomicStudy.reason | |
bodySite | 0..0 | |||
outcome | 0..0 | |||
report | 0..0 | |||
complication | 0..0 | |||
complicationDetail | 0..0 | |||
followUp | 0..0 | |||
note | 0..* | Annotation | GenomicStudy.note | |
focalDevice | 0..0 | |||
usedReference | 0..0 | |||
usedCode | 0..0 | |||
Documentation for this format |
Path | Conformance | ValueSet | URI |
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | 0..* | Procedure | An action that is being or was performed on a patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children |
text | 0..1 | Narrative | GenomicStudy.description ele-1: All FHIR elements must have a @value or children | |
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
referrer | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both |
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier ele-1: All FHIR elements must have a @value or children |
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical ele-1: All FHIR elements must have a @value or children |
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri ele-1: All FHIR elements must have a @value or children |
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn ele-1: All FHIR elements must have a @value or children |
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure. ele-1: All FHIR elements must have a @value or children |
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes. ele-1: All FHIR elements must have a @value or children |
coding | Σ | 1..1 | Coding | Code defined by a terminology system ele-1: All FHIR elements must have a @value or children 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) ele-1: All FHIR elements must have a @value or children |
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject ele-1: All FHIR elements must have a @value or children |
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter ele-1: All FHIR elements must have a @value or children |
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate ele-1: All FHIR elements must have a @value or children |
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter ele-1: All FHIR elements must have a @value or children |
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required. ele-1: All FHIR elements must have a @value or children |
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason ele-1: All FHIR elements must have a @value or children |
note | 0..* | Annotation | GenomicStudy.note ele-1: All FHIR elements must have a @value or children | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Procedure.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 from the FHIR Standard | |
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT)http://hl7.org/fhir/ValueSet/procedure-category from the FHIR Standard | |
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG | |
Procedure.reasonCode | example | ProcedureReasonCodeshttp://hl7.org/fhir/ValueSet/procedure-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
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.
| |||||
text | 0..1 | Narrative | GenomicStudy.description | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext | |||||
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 |
Path | Conformance | ValueSet | URI | |||
Procedure.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages from the FHIR Standard
| ||||
Procedure.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 from the FHIR Standard | ||||
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT)http://hl7.org/fhir/ValueSet/procedure-category from the FHIR Standard | ||||
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG | ||||
Procedure.performer.function | example | ProcedurePerformerRoleCodeshttp://hl7.org/fhir/ValueSet/performer-role from the FHIR Standard | ||||
Procedure.reasonCode | example | ProcedureReasonCodeshttp://hl7.org/fhir/ValueSet/procedure-reason from the FHIR Standard | ||||
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodeshttp://hl7.org/fhir/ValueSet/device-action from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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
Differential View
This structure is derived from Procedure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | Procedure | |||
text | 0..1 | Narrative | GenomicStudy.description | |
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext | |
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 | |||
status | 1..1 | code | GenomicStudy.status | |
statusReason | 0..0 | |||
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 | |||
asserter | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter | |
location | 0..0 | |||
reasonCode | 0..* | CodeableConcept | GenomicStudy.reason | |
reasonReference | 0..* | Reference(Condition | Observation) | GenomicStudy.reason | |
bodySite | 0..0 | |||
outcome | 0..0 | |||
report | 0..0 | |||
complication | 0..0 | |||
complicationDetail | 0..0 | |||
followUp | 0..0 | |||
note | 0..* | Annotation | GenomicStudy.note | |
focalDevice | 0..0 | |||
usedReference | 0..0 | |||
usedCode | 0..0 | |||
Documentation for this format |
Path | Conformance | ValueSet | URI |
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Procedure | 0..* | Procedure | An action that is being or was performed on a patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children |
text | 0..1 | Narrative | GenomicStudy.description ele-1: All FHIR elements must have a @value or children | |
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
referrer | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.referrer URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-referrer-ext ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both |
identifier | Σ | 0..* | Identifier | GenomicStudy.identifier ele-1: All FHIR elements must have a @value or children |
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition) | GenomicStudy.instantiatesCanonical ele-1: All FHIR elements must have a @value or children |
instantiatesUri | Σ | 0..* | uri | GenomicStudy.instantiatesUri ele-1: All FHIR elements must have a @value or children |
basedOn | Σ | 0..* | Reference(ServiceRequest) | GenomicStudy.basedOn ele-1: All FHIR elements must have a @value or children |
status | ?!Σ | 1..1 | code | GenomicStudy.status Binding: EventStatus (required): A code specifying the state of the procedure. ele-1: All FHIR elements must have a @value or children |
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes. ele-1: All FHIR elements must have a @value or children |
coding | Σ | 1..1 | Coding | Code defined by a terminology system ele-1: All FHIR elements must have a @value or children 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) ele-1: All FHIR elements must have a @value or children |
subject | Σ | 1..1 | Reference(Patient | Group) | GenomicStudy.subject ele-1: All FHIR elements must have a @value or children |
encounter | Σ | 0..1 | Reference(Encounter) | GenomicStudy.encounter ele-1: All FHIR elements must have a @value or children |
performed[x] | Σ | 0..1 | dateTime | GenomicStudy.startDate ele-1: All FHIR elements must have a @value or children |
asserter | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | GenomicStudy.interpreter ele-1: All FHIR elements must have a @value or children |
reasonCode | Σ | 0..* | CodeableConcept | GenomicStudy.reason Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required. ele-1: All FHIR elements must have a @value or children |
reasonReference | Σ | 0..* | Reference(Condition | Observation) | GenomicStudy.reason ele-1: All FHIR elements must have a @value or children |
note | 0..* | Annotation | GenomicStudy.note ele-1: All FHIR elements must have a @value or children | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Procedure.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 from the FHIR Standard | |
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT)http://hl7.org/fhir/ValueSet/procedure-category from the FHIR Standard | |
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG | |
Procedure.reasonCode | example | ProcedureReasonCodeshttp://hl7.org/fhir/ValueSet/procedure-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
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.
| |||||
text | 0..1 | Narrative | GenomicStudy.description | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
genomic-study-analysis | 0..* | Reference(Genomic Study Analysis) | GenomicStudy.analysis URL: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/genomic-study-analysis-ext | |||||
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 |
Path | Conformance | ValueSet | URI | |||
Procedure.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages from the FHIR Standard
| ||||
Procedure.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 from the FHIR Standard | ||||
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT)http://hl7.org/fhir/ValueSet/procedure-category from the FHIR Standard | ||||
Procedure.code | example | GenomicStudyTypeVS (a valid code from Genomic Study Type CodeSystem)http://hl7.org/fhir/uv/genomics-reporting/ValueSet/genomic-study-type-vs from this IG | ||||
Procedure.performer.function | example | ProcedurePerformerRoleCodeshttp://hl7.org/fhir/ValueSet/performer-role from the FHIR Standard | ||||
Procedure.reasonCode | example | ProcedureReasonCodeshttp://hl7.org/fhir/ValueSet/procedure-reason from the FHIR Standard | ||||
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodeshttp://hl7.org/fhir/ValueSet/device-action from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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
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:
When expressing the each of those elements, there are two approaches to consider:
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.