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 @