PREFIX fhir:
PREFIX fhirvs:
PREFIX xsd:
BASE
start=@ AND {fhir:nodeRole [fhir:treeRoot]}
# The detailed description of a substance, typically at a level beyond what is used for prescribing
CLOSED {
a [fhir:SubstanceDefinition];
fhir:nodeRole [fhir:treeRoot]?;
fhir:Resource.id id?; # Logical id of this artifact
fhir:Resource.meta @?; # Metadata about the resource
fhir:Resource.implicitRules @?; # A set of rules under which this
# content was created
fhir:Resource.language @?; # Language of the resource content
fhir:DomainResource.text @?; # Text summary of the resource, for
# human interpretation
fhir:DomainResource.contained @*; # Contained, inline Resources
fhir:DomainResource.extension @*; # Additional content defined by
# implementations
fhir:DomainResource.modifierExtension @*; # Extensions that cannot be ignored
fhir:SubstanceDefinition.identifier @*; # Identifier by which this substance
# is known
fhir:SubstanceDefinition.version @?; # A business level version
# identifier of the substance
fhir:SubstanceDefinition.status @?; # Status of substance within the
# catalogue e.g. active, retired
fhir:SubstanceDefinition.classification @*; # A categorization, high level e.g.
# polymer or nucleic acid, or food,
# chemical, biological, or lower
# e.g. polymer linear or branch
# chain, or type of impurity
fhir:SubstanceDefinition.domain @?; # If the substance applies to human
# or veterinary use
fhir:SubstanceDefinition.grade @*; # The quality standard, established
# benchmark, to which substance
# complies (e.g. USP/NF, BP)
fhir:SubstanceDefinition.description @?; # Textual description of the
# substance
fhir:SubstanceDefinition.informationSource @*; # Supporting literature
fhir:SubstanceDefinition.note @*; # Textual comment about the
# substance's catalogue or registry
# record
fhir:SubstanceDefinition.manufacturer @*; # The entity that creates, makes,
# produces or fabricates the
# substance
fhir:SubstanceDefinition.supplier @*; # An entity that is the source for
# the substance. It may be different
# from the manufacturer
fhir:SubstanceDefinition.moiety @*; # Moiety, for structural
# modifications
fhir:SubstanceDefinition.property @*; # General specifications for this
# substance
fhir:SubstanceDefinition.molecularWeight @*; # The molecular weight or weight
# range
fhir:SubstanceDefinition.structure @?; # Structural information
fhir:SubstanceDefinition.code @*; # Codes associated with the substance
fhir:SubstanceDefinition.name @*; # Names applicable to this substance
fhir:SubstanceDefinition.relationship @*; # A link between this substance and
# another
fhir:SubstanceDefinition.sourceMaterial @?; # Material or taxonomic/anatomical
# source
fhir:index xsd:integer? # Relative position in a list
}
# Material or taxonomic/anatomical source
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.sourceMaterial.type @?; # Classification of the origin of
# the raw material. e.g. cat hair is
# an Animal source type
fhir:SubstanceDefinition.sourceMaterial.genus @?; # The genus of an organism e.g. the
# Latin epithet of the plant/animal
# scientific name
fhir:SubstanceDefinition.sourceMaterial.species @?; # The species of an organism e.g.
# the Latin epithet of the species
# of the plant/animal
fhir:SubstanceDefinition.sourceMaterial.part @?; # An anatomical origin of the source
# material within an organism
fhir:SubstanceDefinition.sourceMaterial.countryOfOrigin @*; # The country or countries where the
# material is harvested
fhir:index xsd:integer? # Relative position in a list
}
# Codes associated with the substance
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.code.code @?; # The specific code
fhir:SubstanceDefinition.code.status @?; # Status of the code assignment, for
# example 'provisional', 'approved'
fhir:SubstanceDefinition.code.statusDate @?; # The date at which the code status
# was changed
fhir:SubstanceDefinition.code.note @*; # Any comment can be provided in
# this field
fhir:SubstanceDefinition.code.source @*; # Supporting literature
fhir:index xsd:integer? # Relative position in a list
}
# Names applicable to this substance
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.name.name @; # The actual name
fhir:SubstanceDefinition.name.type @?; # Name type e.g. 'systematic',
# 'scientific, 'brand'
fhir:SubstanceDefinition.name.status @?; # The status of the name e.g.
# 'current', 'proposed'
fhir:SubstanceDefinition.name.preferred @?; # If this is the preferred name for
# this substance
fhir:SubstanceDefinition.name.language @*; # Human language that the name is
# written in
fhir:SubstanceDefinition.name.domain @*; # The use context of this name e.g.
# as an active ingredient or as a
# food colour additive
fhir:SubstanceDefinition.name.jurisdiction @*; # The jurisdiction where this name
# applies
fhir:SubstanceDefinition.name.synonym @*; # A synonym of this particular name,
# by which the substance is also
# known
fhir:SubstanceDefinition.name.translation @*; # A translation for this name into
# another human language
fhir:SubstanceDefinition.name.official @*; # Details of the official nature of
# this name
fhir:SubstanceDefinition.name.source @*; # Supporting literature
fhir:index xsd:integer? # Relative position in a list
}
# The molecular weight or weight range
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.molecularWeight.method @?; # The method by which the weight was
# determined
fhir:SubstanceDefinition.molecularWeight.type @?; # Type of molecular weight e.g.
# exact, average, weight average
fhir:SubstanceDefinition.molecularWeight.amount @; # Used to capture quantitative
# values for a variety of elements
fhir:index xsd:integer? # Relative position in a list
}
# Moiety, for structural modifications
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.moiety.role @?; # Role that the moiety is playing
fhir:SubstanceDefinition.moiety.identifier @?; # Identifier by which this moiety
# substance is known
fhir:SubstanceDefinition.moiety.name @?; # Textual name for this moiety
# substance
fhir:SubstanceDefinition.moiety.stereochemistry @?; # Stereochemistry type
fhir:SubstanceDefinition.moiety.opticalActivity @?; # Optical activity type
fhir:SubstanceDefinition.moiety.molecularFormula @?; # Molecular formula for this moiety
# (e.g. with the Hill system)
( # Quantitative value for this moiety
fhir:SubstanceDefinition.moiety.amountQuantity @ |
fhir:SubstanceDefinition.moiety.amountString @
)?;
fhir:SubstanceDefinition.moiety.measurementType @?; # The measurement type of the
# quantitative value
fhir:index xsd:integer? # Relative position in a list
}
# Structural information
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.structure.stereochemistry @?; # Stereochemistry type
fhir:SubstanceDefinition.structure.opticalActivity @?; # Optical activity type
fhir:SubstanceDefinition.structure.molecularFormula @?; # Molecular formula (e.g. using the
# Hill system)
fhir:SubstanceDefinition.structure.molecularFormulaByMoiety @?; # Specified per moiety according to
# the Hill system
fhir:SubstanceDefinition.structure.molecularWeight @?; # The molecular weight or weight
# range
fhir:SubstanceDefinition.structure.technique @*; # The method used to find the
# structure e.g. X-ray, NMR
fhir:SubstanceDefinition.structure.sourceDocument @*; # Source of information for the
# structure
fhir:SubstanceDefinition.structure.representation @*; # A depiction of the structure or
# characterization of the substance
fhir:index xsd:integer? # Relative position in a list
}
# A link between this substance and another
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
( # A pointer to another substance, as
# a resource or a representational
# code
fhir:SubstanceDefinition.relationship.substanceDefinitionReference @ |
fhir:SubstanceDefinition.relationship.substanceDefinitionCodeableConcept @
)?;
fhir:SubstanceDefinition.relationship.type @; # For example "salt to parent",
# "active moiety"
fhir:SubstanceDefinition.relationship.isDefining @?; # For example where an enzyme
# strongly bonds with a particular
# substance, this is a defining
# relationship for that enzyme, out
# of several possible relationships
( # A numeric factor for the
# relationship, e.g. that a
# substance salt has some percentage
# of active substance in relation to
# some other
fhir:SubstanceDefinition.relationship.amountQuantity @ |
fhir:SubstanceDefinition.relationship.amountRatio @ |
fhir:SubstanceDefinition.relationship.amountString @
)?;
fhir:SubstanceDefinition.relationship.ratioHighLimitAmount @?; # For use when the numeric has an
# uncertain range
fhir:SubstanceDefinition.relationship.comparator @?; # An operator for the amount, for
# example "average",
# "approximately", "less than"
fhir:SubstanceDefinition.relationship.source @*; # Supporting literature
fhir:index xsd:integer? # Relative position in a list
}
# General specifications for this substance
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.property.type @; # A code expressing the type of
# property
( # A value for the property
fhir:SubstanceDefinition.property.valueCodeableConcept @ |
fhir:SubstanceDefinition.property.valueQuantity @ |
fhir:SubstanceDefinition.property.valueDate @ |
fhir:SubstanceDefinition.property.valueBoolean @ |
fhir:SubstanceDefinition.property.valueAttachment @
)?;
fhir:index xsd:integer? # Relative position in a list
}
# A depiction of the structure or characterization of the substance
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.structure.representation.type @?; # The kind of structural
# representation (e.g. full,
# partial)
fhir:SubstanceDefinition.structure.representation.representation @?; # The structural representation or
# characterization as a text string
# in a standard format
fhir:SubstanceDefinition.structure.representation.format @?; # The format of the representation
# e.g. InChI, SMILES, MOLFILE (note:
# not the physical file format)
fhir:SubstanceDefinition.structure.representation.document @?; # An attachment with the structural
# representation e.g. a structure
# graphic or AnIML file
fhir:index xsd:integer? # Relative position in a list
}
# A translation for this name into another human language
CLOSED {
fhir:index xsd:integer? # Relative position in a list
}
# A synonym of this particular name, by which the substance is also known
CLOSED {
fhir:index xsd:integer? # Relative position in a list
}
# Details of the official nature of this name
CLOSED {
fhir:Element.id string?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored
# even if unrecognized
fhir:SubstanceDefinition.name.official.authority @?; # Which authority uses this official
# name
fhir:SubstanceDefinition.name.official.status @?; # The status of the official name,
# for example 'draft', 'active'
fhir:SubstanceDefinition.name.official.date @?; # Date of official name change
fhir:index xsd:integer? # Relative position in a list
}
# The molecular weight or weight range
CLOSED {
fhir:index xsd:integer? # Relative position in a list
}
#---------------------- Data Types -------------------
# Primitive Type dateTime
CLOSED {
fhir:Element.id string?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value dateTime?; # Primitive value for dateTime
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type date
CLOSED {
fhir:Element.id string?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value date?; # Primitive value for date
fhir:index xsd:integer? # Relative position in a list
}
# Metadata about a resource
CLOSED {
fhir:Element.id id?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Meta.versionId @?; # Version specific identifier
fhir:Meta.lastUpdated @?; # When the resource version last
# changed
fhir:Meta.source @?; # Identifies where the resource
# comes from
fhir:Meta.profile @*; # Profiles this resource claims to
# conform to
fhir:Meta.security @*; # Security Labels applied to this
# resource
fhir:Meta.tag @*; # Tags applied to this resource
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type code
CLOSED {
fhir:Element.id string?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value code?; # Primitive value for code
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type string
CLOSED {
fhir:Element.id string?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value string MAXLENGTH 1048576?; # Primitive value for string
fhir:index xsd:integer? # Relative position in a list
}
# A reference from one resource to another
CLOSED {
fhir:link IRI?;
fhir:Element.id id?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Reference.reference @?; # Literal reference, Relative,
# internal or absolute URL
fhir:Reference.type @?; # Type the reference refers to (e.g.
# "Patient")
fhir:Reference.identifier @?; # Logical reference, when literal
# reference is not known
fhir:Reference.display @?; # Text alternative for the resource
fhir:index xsd:integer? # Relative position in a list
}
# Base Resource
{a .+;
fhir:Resource.id id?; # Logical id of this artifact
fhir:Resource.meta @?; # Metadata about the resource
fhir:Resource.implicitRules @?; # A set of rules under which this
# content was created
fhir:Resource.language @?; # Language of the resource content
fhir:index xsd:integer?
}
# A measured or measurable amount
CLOSED {
fhir:Element.id id?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Quantity.value @?; # Numerical value (with implicit
# precision)
fhir:Quantity.comparator @ AND
{fhir:value @fhirvs:quantity-comparator}?; # < | <= | >= | > - how to
# understand the value
fhir:Quantity.unit @?; # Unit representation
fhir:Quantity.system @?; # System that defines coded unit form
fhir:Quantity.code @?; # Coded form of the unit
fhir:index xsd:integer? # Relative position in a list
}
# Content in a format defined elsewhere
CLOSED {
fhir:Element.id id?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:Attachment.contentType @ AND
{fhir:value @fhirvs:mimetypes}?; # Mime type of the content, with
# charset etc.
fhir:Attachment.language @?; # Human language of the content
# (BCP-47)
fhir:Attachment.data @?; # Data inline, base64ed
fhir:Attachment.url @?; # Uri where the data can be found
fhir:Attachment.size @?; # Number of bytes of content (if url
# provided)
fhir:Attachment.hash @?; # Hash of the data (sha-1, base64ed)
fhir:Attachment.title @?; # Label to display in place of the
# data
fhir:Attachment.creation @?; # Date attachment was first created
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type uri
CLOSED {
fhir:Element.id string?; # xml:id (or equivalent in JSON)
fhir:Element.extension @*; # Additional content defined by
# implementations
fhir:value uri?; # Primitive value for uri
fhir:index xsd:integer? # Relative position in a list
}
# Text node with attribution
CLOSED {
fhir:Element.id id?; # Unique id for inter-element
# referencing
fhir:Element.extension @*; # Additional content defined by
# implementations
( # Individual responsible for the
# annotation
fhir:Annotation.authorReference @ |
fhir:Annotation.authorString @
)?;
fhir:Annotation.time @?; # When the annotation was made
fhir:Annotation.text @; # The annotation - text content (as
# markdown)
fhir:index xsd:integer? # Relative position in a list
}
# Optional Extensions Element
CLOSED {
fhir:Element.id id?;
fhir:Element.extension @*;
fhir:Extension.url uri;
(
fhir:Extension.valueBase64Binary @ |
fhir:Extension.valueBoolean @ |
fhir:Extension.valueCanonical @ |
fhir:Extension.valueCode @ |
fhir:Extension.valueDate @ |
fhir:Extension.valueDateTime @ |
fhir:Extension.valueDecimal @ |
fhir:Extension.valueId @ |
fhir:Extension.valueInstant @ |
fhir:Extension.valueInteger @ |
fhir:Extension.valueMarkdown @ |
fhir:Extension.valueOid @ |
fhir:Extension.valuePositiveInt @ |
fhir:Extension.valueString @ |
fhir:Extension.valueTime @