PREFIX fhir:
PREFIX fhirvs:
PREFIX xsd:
BASE
start=@ AND {fhir:nodeRole [fhir:treeRoot]}
# A Map of relationships between 2 structures that can be used to transform data
CLOSED {
a [fhir:StructureMap];
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:StructureMap.url @; # Canonical identifier for this
# structure map, represented as a
# URI (globally unique)
fhir:StructureMap.identifier @*; # Additional identifier for the
# structure map
fhir:StructureMap.version @?; # Business version of the structure
# map
fhir:StructureMap.name @; # Name for this structure map
# (computer friendly)
fhir:StructureMap.title @?; # Name for this structure map (human
# friendly)
fhir:StructureMap.status @ AND
{fhir:value @fhirvs:publication-status}; # draft | active | retired | unknown
fhir:StructureMap.experimental @?; # For testing purposes, not real
# usage
fhir:StructureMap.date @?; # Date last changed
fhir:StructureMap.publisher @?; # Name of the publisher
# (organization or individual)
fhir:StructureMap.contact @*; # Contact details for the publisher
fhir:StructureMap.description @?; # Natural language description of
# the structure map
fhir:StructureMap.useContext @*; # The context that the content is
# intended to support
fhir:StructureMap.jurisdiction @*; # Intended jurisdiction for
# structure map (if applicable)
fhir:StructureMap.purpose @?; # Why this structure map is defined
fhir:StructureMap.copyright @?; # Use and/or publishing restrictions
fhir:StructureMap.structure @*; # Structure Definition used by this
# map
fhir:StructureMap.import @*; # Other maps used by this map
# (canonical URLs)
fhir:StructureMap.group @+; # Named sections for reader
# convenience
fhir:index xsd:integer? # Relative position in a list
}
# Structure Definition used by this map
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:StructureMap.structure.url @; # Canonical reference to structure
# definition
fhir:StructureMap.structure.mode @ AND
{fhir:value @fhirvs:map-model-mode}; # source | queried | target |
# produced
fhir:StructureMap.structure.alias @?; # Name for type in this map
fhir:StructureMap.structure.documentation @?; # Documentation on use of structure
fhir:index xsd:integer? # Relative position in a list
}
# Named sections for reader convenience
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:StructureMap.group.name @; # Human-readable label
fhir:StructureMap.group.extends @?; # Another group that this group adds
# rules to
fhir:StructureMap.group.typeMode @ AND
{fhir:value @fhirvs:map-group-type-mode}; # none | types | type-and-types
fhir:StructureMap.group.documentation @?; # Additional description/explanation
# for group
fhir:StructureMap.group.input @+; # Named instance provided when
# invoking the map
fhir:StructureMap.group.rule @+; # Transform Rule from source to
# target
fhir:index xsd:integer? # Relative position in a list
}
# Named instance provided when invoking the map
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:StructureMap.group.input.name @; # Name for this instance of data
fhir:StructureMap.group.input.type @?; # Type for this instance of data
fhir:StructureMap.group.input.mode @ AND
{fhir:value @fhirvs:map-input-mode}; # source | target
fhir:StructureMap.group.input.documentation @?; # Documentation for this instance of
# data
fhir:index xsd:integer? # Relative position in a list
}
# Transform Rule from source to target
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:StructureMap.group.rule.name @; # Name of the rule for internal
# references
fhir:StructureMap.group.rule.source @+; # Source inputs to the mapping
fhir:StructureMap.group.rule.target @*; # Content to create because of this
# mapping rule
fhir:StructureMap.group.rule.rule @*; # Rules contained in this rule
fhir:StructureMap.group.rule.dependent @*; # Which other rules to apply in the
# context of this rule
fhir:StructureMap.group.rule.documentation @?; # Documentation for this instance of
# data
fhir:index xsd:integer? # Relative position in a list
}
# Content to create because of this mapping rule
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:StructureMap.group.rule.target.context @?; # Type or variable this rule applies
# to
fhir:StructureMap.group.rule.target.contextType @ AND
{fhir:value @fhirvs:map-context-type}?; # type | variable
fhir:StructureMap.group.rule.target.element @?; # Field to create in the context
fhir:StructureMap.group.rule.target.variable @?; # Named context for field, if
# desired, and a field is specified
fhir:StructureMap.group.rule.target.listMode @ AND
{fhir:value @fhirvs:map-target-list-mode}*; # first | share | last | collate
fhir:StructureMap.group.rule.target.listRuleId @?; # Internal rule reference for shared
# list items
fhir:StructureMap.group.rule.target.transform @ AND
{fhir:value @fhirvs:map-transform}?; # create | copy +
fhir:StructureMap.group.rule.target.parameter @*; # Parameters to the transform
fhir:index xsd:integer? # Relative position in a list
}
# Which other rules to apply in the context of this rule
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:StructureMap.group.rule.dependent.name @; # Name of a rule or group to apply
fhir:StructureMap.group.rule.dependent.variable @+; # Variable to pass to the rule or
# group
fhir:index xsd:integer? # Relative position in a list
}
# Source inputs to the mapping
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:StructureMap.group.rule.source.context @; # Type or variable this rule applies
# to
fhir:StructureMap.group.rule.source.min @?; # Specified minimum cardinality
fhir:StructureMap.group.rule.source.max @?; # Specified maximum cardinality
# (number or *)
fhir:StructureMap.group.rule.source.type @?; # Rule only applies if source has
# this type
( # Default value if no value exists
fhir:StructureMap.group.rule.source.defaultValueBase64Binary @ |
fhir:StructureMap.group.rule.source.defaultValueBoolean @ |
fhir:StructureMap.group.rule.source.defaultValueCanonical @ |
fhir:StructureMap.group.rule.source.defaultValueCode @ |
fhir:StructureMap.group.rule.source.defaultValueDate @ |
fhir:StructureMap.group.rule.source.defaultValueDateTime @ |
fhir:StructureMap.group.rule.source.defaultValueDecimal @ |
fhir:StructureMap.group.rule.source.defaultValueId @ |
fhir:StructureMap.group.rule.source.defaultValueInstant @ |
fhir:StructureMap.group.rule.source.defaultValueInteger @ |
fhir:StructureMap.group.rule.source.defaultValueMarkdown @ |
fhir:StructureMap.group.rule.source.defaultValueOid @ |
fhir:StructureMap.group.rule.source.defaultValuePositiveInt @ |
fhir:StructureMap.group.rule.source.defaultValueString @ |
fhir:StructureMap.group.rule.source.defaultValueTime @