FoundationThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| Clinical Genomics Work Group | Maturity Level: N/A | Standards Status: Informative | Compartments: No defined compartments |
ShEx statement for moleculardefinition
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
IMPORT <code.shex>
IMPORT <Range.shex>
IMPORT <string.shex>
IMPORT <integer.shex>
IMPORT <boolean.shex>
IMPORT <markdown.shex>
IMPORT <Quantity.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <DocumentReference.shex>
start=@<MolecularDefinition> AND {fhir:nodeRole [fhir:treeRoot]}
# Definitional content for a molecular entity
<MolecularDefinition> EXTENDS @<DomainResource> CLOSED {
a [fhir:MolecularDefinition]?;fhir:nodeRole [fhir:treeRoot]?;
fhir:identifier @<OneOrMore_Identifier>?; # Unique ID of an instance
fhir:description @<markdown>?; # Description of the Molecular
# Definition instance
fhir:moleculeType @<CodeableConcept>?; # The type of molecule (e.g., DNA,
# RNA, amino acid)
fhir:type @<OneOrMore_CodeableConcept>?; # Classification of the molecule
# into types other than those
# defined by moleculeType
fhir:topology @<OneOrMore_CodeableConcept>?; # The structural topology of the
# molecular entity (e.g., linear,
# circular)
fhir:member @<OneOrMore_Reference_MolecularDefinition>?; # Constituents of an aggregate
# molecular concept (e.g.,
# haplotype, genotype)
fhir:location @<OneOrMore_MolecularDefinition.location>?; # A defined location on a molecular
# entity
fhir:representation @<OneOrMore_MolecularDefinition.representation>?; # A representation of a molecular
# entity
}
# Reference Genome
<MolecularDefinition.location.cytobandLocation.genomeAssembly> EXTENDS @<BackboneElement> CLOSED {
fhir:organism @<CodeableConcept>?; # Species of the organism
fhir:build @<CodeableConcept>?; # Build number
fhir:accession @<CodeableConcept>?; # Accession
fhir:description @<markdown> OR
@<string> ?; # Genome assembly description
}
# A molecular entity represented as an ordered series of edits on a specified starting entity
<MolecularDefinition.representation.relative> EXTENDS @<BackboneElement> CLOSED {
fhir:startingMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The molecular entity on which
# edits will be applied
fhir:edit @<OneOrMore_MolecularDefinition.representation.relative.edit>?; # A defined edit (change) to be
# applied
}
# A molecular entity defined as a string literal
<MolecularDefinition.representation.literal> EXTENDS @<BackboneElement> CLOSED {
fhir:encoding @<CodeableConcept>?; # The encoding used in the value
fhir:value @<string>; # A string literal representation of
# the molecular entity, using the
# encoding specified in encoding
}
# A defined location on a molecular entity
<MolecularDefinition.location> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceLocation @<MolecularDefinition.location.sequenceLocation>?; # A coordinate-based location on a
# sequence
fhir:cytobandLocation @<MolecularDefinition.location.cytobandLocation>?; # A cytoband-based location on a
# sequence
}
# Start
<MolecularDefinition.location.cytobandLocation.cytobandInterval.startCytoband> EXTENDS @<BackboneElement> CLOSED {
fhir:arm @<code> OR
@<string> ?; # Arm
fhir:region @<code> OR
@<string> ?; # Region
fhir:band @<code> OR
@<string> ?; # Band
fhir:subBand @<code> OR
@<string> ?; # Sub-band
}
# End
<MolecularDefinition.location.cytobandLocation.cytobandInterval.endCytoband> EXTENDS @<BackboneElement> CLOSED {
fhir:arm @<code> OR
@<string> ?; # Arm
fhir:region @<code> OR
@<string> ?; # Region
fhir:band @<code> OR
@<string> ?; # Band
fhir:subBand @<code> OR
@<string> ?; # SuBand
}
# The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
<MolecularDefinition.representation.extracted.coordinateInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:coordinateSystem @<MolecularDefinition.representation.extracted.coordinateInterval.coordinateSystem>?; # The coordinate system used to
# define the location
fhir:start @<Quantity> OR
@<Range> ?; # The start location of the interval
fhir:end @<Quantity> OR
@<Range> ?; # The end location of the interval
}
# A defined edit (change) to be applied
<MolecularDefinition.representation.relative.edit> EXTENDS @<BackboneElement> CLOSED {
fhir:editOrder @<integer>?; # Defines the order of edits when
# multiple edits are to be applied
# to the startingMolecule
fhir:coordinateInterval @<MolecularDefinition.representation.relative.edit.coordinateInterval>?; # The interval on startingMolecule
# that defines the portion to be
# extracted to produce the intended
# entity
fhir:replacementMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The molecular entity that serves
# as the replacement in the edit
# operation
fhir:replacedMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }?; # The portion of the molecular
# entity that is replaced by the
# replacementMolecule
}
# An ordered concatenation of molecular entities
<MolecularDefinition.representation.concatenated> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceElement @<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement>; # One of the concatenated entities
}
# The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
<MolecularDefinition.representation.relative.edit.coordinateInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:coordinateSystem @<MolecularDefinition.representation.relative.edit.coordinateInterval.coordinateSystem>?; # The coordinate system used to
# define the location
fhir:start @<Quantity> OR
@<Range> ?; # The start location of the interval
fhir:end @<Quantity> OR
@<Range> ?; # The end location of the interval
}
# A cytoband-based location on a sequence
<MolecularDefinition.location.cytobandLocation> EXTENDS @<BackboneElement> CLOSED {
fhir:genomeAssembly @<MolecularDefinition.location.cytobandLocation.genomeAssembly>; # Reference Genome
fhir:cytobandInterval @<MolecularDefinition.location.cytobandLocation.cytobandInterval>; # Cytoband Interval
}
# Cytoband Interval
<MolecularDefinition.location.cytobandLocation.cytobandInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:chromosome @<CodeableConcept>; # Chromosome
fhir:startCytoband @<MolecularDefinition.location.cytobandLocation.cytobandInterval.startCytoband>?; # Start
fhir:endCytoband @<MolecularDefinition.location.cytobandLocation.cytobandInterval.endCytoband>?; # End
}
# The coordinate system used to define the location
<MolecularDefinition.representation.relative.edit.coordinateInterval.coordinateSystem> EXTENDS @<BackboneElement> CLOSED {
fhir:system @<CodeableConcept>?; # The type of coordinate system used
fhir:origin @<CodeableConcept>?; # The location of the origin of the
# coordinate system
fhir:normalizationMethod @<CodeableConcept>?; # The normalization method used for
# determining a location within the
# coordinate system
}
# A representation as a repeated motif
<MolecularDefinition.representation.repeated> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceMotif @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The motif that is repeated
fhir:copyCount @<integer>; # The number of copies of the motif
}
# A coordinate-based location on a sequence
<MolecularDefinition.location.sequenceLocation> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceContext @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The sequence on which the location
# is defined
fhir:coordinateInterval @<MolecularDefinition.location.sequenceLocation.coordinateInterval>?; # An interval on a sequence
fhir:strand @<CodeableConcept>?; # The strand at the
# coordinateInterval
}
# The coordinate system used to define the location
<MolecularDefinition.location.sequenceLocation.coordinateInterval.coordinateSystem> EXTENDS @<BackboneElement> CLOSED {
fhir:system @<CodeableConcept>?; # The type of coordinate system used
fhir:origin @<CodeableConcept>?; # The location of the origin of the
# coordinate system
fhir:normalizationMethod @<CodeableConcept>?; # The normalization method used for
# determining a location within the
# coordinate system
}
# One of the concatenated entities
<MolecularDefinition.representation.concatenated.sequenceElement> EXTENDS @<BackboneElement> CLOSED {
fhir:sequence @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # A reference to the sequence that
# defines this specific concatenated
# element
fhir:ordinalIndex @<integer>; # The ordinal index of the element
# within the concatenated
# representation
}
# A representation of a molecular entity
<MolecularDefinition.representation> EXTENDS @<BackboneElement> CLOSED {
fhir:focus @<CodeableConcept>?; # The domain concept that is the
# focus of a given instance of the
# representation
fhir:code @<OneOrMore_CodeableConcept>?; # A code (e.g., sequence accession
# number) used to represent a
# molecular entity
fhir:literal @<MolecularDefinition.representation.literal>?; # A molecular entity defined as a
# string literal
fhir:resolvable @<Reference> AND {fhir:link
@<DocumentReference> ? }?; # A resolvable representation of a
# molecular entity (e.g., URI,
# attached and formatted file)
fhir:extracted @<MolecularDefinition.representation.extracted>?; # A molecular entity that is
# represented as a portion of a
# different entity
fhir:repeated @<MolecularDefinition.representation.repeated>?; # A representation as a repeated
# motif
fhir:concatenated @<MolecularDefinition.representation.concatenated>?; # An ordered concatenation of
# molecular entities
fhir:relative @<MolecularDefinition.representation.relative>?; # A molecular entity represented as
# an ordered series of edits on a
# specified starting entity
}
# A molecular entity that is represented as a portion of a different entity
<MolecularDefinition.representation.extracted> EXTENDS @<BackboneElement> CLOSED {
fhir:startingMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The molecular entity that serves
# as the conceptual 'parent' from
# which the intended entity is
# derived
fhir:coordinateInterval @<MolecularDefinition.representation.extracted.coordinateInterval>?; # The interval on startingMolecule
# that defines the portion to be
# extracted to produce the intended
# entity
fhir:reverseComplement @<boolean>?; # A flag that indicates whether the
# extracted sequence should be
# reverse complemented
}
# An interval on a sequence
<MolecularDefinition.location.sequenceLocation.coordinateInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:coordinateSystem @<MolecularDefinition.location.sequenceLocation.coordinateInterval.coordinateSystem>?; # The coordinate system used to
# define the location
fhir:start @<Quantity> OR
@<Range> ?; # The start location of the interval
fhir:end @<Quantity> OR
@<Range> ?; # The end location of the interval
}
# The coordinate system used to define the location
<MolecularDefinition.representation.extracted.coordinateInterval.coordinateSystem> EXTENDS @<BackboneElement> CLOSED {
fhir:system @<CodeableConcept>?; # The type of coordinate system used
fhir:origin @<CodeableConcept>?; # The location of the origin of the
# coordinate system
fhir:normalizationMethod @<CodeableConcept>?; # The normalization method used for
# determining a location within the
# coordinate system
}
#---------------------- Cardinality Types (OneOrMore) -------------------
<OneOrMore_Identifier> CLOSED {
rdf:first @<Identifier> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Identifier>
}
<OneOrMore_CodeableConcept> CLOSED {
rdf:first @<CodeableConcept> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept>
}
<OneOrMore_Reference_MolecularDefinition> CLOSED {
rdf:first @<Reference> AND {fhir:link
@<MolecularDefinition> } ;
rdf:rest [rdf:nil] OR @<OneOrMore_Reference_MolecularDefinition>
}
<OneOrMore_MolecularDefinition.location> CLOSED {
rdf:first @<MolecularDefinition.location> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.location>
}
<OneOrMore_MolecularDefinition.representation> CLOSED {
rdf:first @<MolecularDefinition.representation> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation>
}
<OneOrMore_MolecularDefinition.representation.relative.edit> CLOSED {
rdf:first @<MolecularDefinition.representation.relative.edit> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation.relative.edit>
}
<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement> CLOSED {
rdf:first @<MolecularDefinition.representation.concatenated.sequenceElement> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement>
}
Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.core#6.0.0-ballot3 generated on Thu, Oct 23, 2025 19:46+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change