FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3

7.7 7.5 Resource StructureMap - Content

Responsible Owner: FHIR Infrastructure icon Work Group   Normative Maturity Level : 2   Trial Use Security Category : Anonymous Compartments : Not linked to any No defined compartments

A Map of relationships between 2 structures that can be used to transform data.

The StructureMap resource defines a detailed set of rules that describe how one Structure is related to another, another and provides sufficient detail to allow for automated conversion of instances.

The intention of the structure map resource is to allow a specialist in formats and interoperability to specify the full relationships between two structures (e.g. a CDA document and a set of FHIR resources), and then many different systems - both testing and production clinical systems - can leverage that to automatically transform from one format to the other.

Maps are uni-directional: unidirectional: they map from the source structure to the target structure, and no reverse map is implied. Even if the mapping is simple, and loss-less, it cannot be assumed that there are no conditions that might additionally apply in the reverse direction.

The mapping language, along with a concrete syntax, is defined in detail in the FHIR Mapping Language . The StructureMap resource represents the abstract syntax, and the concrete syntax is the recommended narrative representation for a StructureMap. See also the Tutorial .

Note that many mappings between models only establish conceptual equivalence between the structures. These models are useful because they quickly convey how the structures are related to humans, whereas more maps with sufficient detail to support instance transformation are necessarily full of fine detail that can obscure the conceptual relationships. The ConceptMap resource is suitable for representing high level relationships between models, while this StructureMap resource is intended to describe the full details that need to be known in order to transform an instance of data from one structure to another.

The StructureMap resource assumes that both the source and the target models are fully defined using StructureDefinition resources - either resources, or logical models, and is described accordingly. However, there is no direct relationship between the mapping language contained in the StructureMap resource, and the existence of the appropriate structure definitions, so that this mapping language could be used to define a map from an HL7 v2 V2 message to a CDA document. Note, that various implementation contexts may introduce a direct relationship (e.g. see xxxxxxx op [op to defined). defined]).

It's possible to apply the mapping language to structures that do not even have (or cannot have) formally defined types, although the type-related parts of the mapping language cannot be used in these cases.

The Mapping Language and the StructureMap resource are built on top of FHIRPath , and a FHIRPath implementation is required in order to execute a StructureMap.

Each structure map contains, in addition to the standard metadata that all conformance resources contain, the following information:

  • A list of the structure definitions referenced by the map
  • A list of other structure maps that the map uses
  • One or more groups of rules that describe how content in the source is transformed to content in the target

Each group of rules defines a set of input and output variables that must be passed when the group is invoked in a particular context. When a group is invoked, all the rules in the group are checked to see whether they apply.

Each rule may have some or all of the following properties:

  • A name - used as the identity in internal references, and traces
  • Contexts in both source and target models that define where the rule applies
  • A set of source elements that provide data to be mapped
  • Conditions that specify if the rule is to apply
  • A set of target elements that will be created
  • Transform rules that describe how raw data is converted from the source format to the target format (e.g. string manipulation)
  • Flags for how instances that can repeat are handled
  • Additional rules that apply to the newly created elements (e.g. new contexts)

The mapping language is entirely declarative; there is no imperative or procedural aspects to the definitions.

This resource is referenced by ActivityDefinition

Structure

Logical URI to reference Context Intended jurisdiction for Use and/or publishing BackboneElement 1..1 none | 1..* 1..1 BackboneElement Type or variable Σ string Variable
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . StructureMap N DomainResource A Map of relationships between 2 structures that can be used to transform data
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 1..1 uri Canonical identifier for this structure map map, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the structure map

. . . version Σ 0..1 string Business version of the structure map
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this structure map (computer friendly)
. . . title Σ T 0..1 string Name for this structure map (human friendly)
. . . status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description T 0..1 markdown Natural language description of the structure map
. . . useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ 0..* CodeableConcept Jurisdiction of the authority that maintains the structure map (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this structure map is defined
. . . copyright T 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . copyrightLabel T 0..1 string Copyright holder and year(s)
.. . structure Σ 0..* BackboneElement Structure Definition used by this map

. . . . url Σ 1..1 uri canonical ( StructureDefinition ) Canonical URL for reference to structure definition
. . . . mode Σ 1..1 code source | queried | target | produced
StructureMapModelMode Binding: Structure Map Model Mode ( Required )
. . . . alias Σ 0..1 string Name for type in this map
. . . . documentation 0..1 string Documentation on use of structure
. . . import Σ 0..* uri canonical ( StructureMap ) Other maps used by this map (canonical URLs)

. . . group const Σ 0..* BackboneElement Definition of the constant value used in the map rules

.... name Σ 0..1 id Constant name
1..*
. . . . value Σ 0..1 string FHIRPath exression - value of the constant
... group Σ 1..* BackboneElement Named sections for reader convenience

. . . . name Σ 1..1 id Human-readable label
. . . . extends Σ 0..1 id Another group that this group adds rules to
. . . . typeMode Σ 0..1 code types | type-and-types
StructureMapGroupTypeMode Binding: Structure Map Group Type Mode ( Required )
. . . . documentation Σ 0..1 string Additional description/explaination description/explanation for group
. . . . input Σ 1..* BackboneElement Named instance provided when invoking the map

. . . . . name Σ 1..1 id Name for this instance of data
. . . . . type Σ 0..1 string Type for this instance of data
. . . . . mode Σ 1..1 code source | target
StructureMapInputMode Binding: Structure Map Input Mode ( Required )
. . . . . documentation 0..1 string Documentation for this instance of data
. . . . rule Σ 0..* BackboneElement Transform Rule from source to target

. . . . . name Σ 0..1 id Name of the rule for internal references
. . . . . source Σ C 1..* BackboneElement Source inputs to the mapping
+ Rule: Min <= Max

. . . . . . context Σ 1..1 id Type or variable this rule applies to
. . . . . . min Σ 0..1 integer unsignedInt Specified minimum cardinality
. . . . . . max Σ C 0..1 string Specified maximum cardinality (number or *)
+ Rule: Max SHALL be a number or "*"
. . . . . . type Σ 0..1 string Rule only applies if source has this type
. . . . . defaultValue[x] . defaultValue Σ 0..1 * string Default value if no value exists
. . . . . . element Σ 0..1 string Optional field for this source
. . . . . . listMode Σ 0..1 code first | not_first | last | not_last | only_one
StructureMapSourceListMode Binding: Structure Map Source List Mode ( Required )
. . . . . . variable Σ 0..1 id Named context for field, if a field is specified
. . . . . . condition Σ 0..1 string FHIRPath expression - must be true or the rule does not apply
. . . . . . check Σ 0..1 string FHIRPath expression - must be true or the mapping engine throws an error instead of completing
. . . . target . . logMessage Σ I 0..1 string Message to put in log if source exists (FHIRPath)
0..*
. . . . . target Σ C 0..* BackboneElement Content to create because of this mapping rule
+ Must have a contextType if you have a context + Rule: Can only have a an element if you have a context

. . . . . . context Σ C 0..1 id string Variable this rule applies to contextType Σ 0..1 code type | variable
StructureMapContextType ( Required )
. . . . . . element Σ C 0..1 string Field to create in the context
. . . . . . variable Σ 0..1 id Named context for field, if desired, and a field is specified
. . . . . . listMode Σ 0..* code first | share | last | collate single
StructureMapTargetListMode Binding: Structure Map Target List Mode ( Required )

. . . . . . listRuleId Σ 0..1 id Internal rule reference for shared list items
. . . . . . transform Σ 0..1 code create | copy +
StructureMapTransform Binding: Structure Map Transform ( Required )
. . . . . . parameter Σ 0..* BackboneElement Parameters to the transform

. . . . . . . value[x] Σ 1..1 Parameter value - variable or literal
. . . . . . . . valueId id
. . . . . . . . valueString string
. . . . . . . . valueBoolean boolean
. . . . . . . . valueInteger integer
. . . . . . . . valueDecimal decimal
. . . . . . . rule . valueDate date
. . . . . . . . valueTime time
. . . . . . . . valueDateTime 0..* see dateTime
..... rule Σ 0..* see rule Rules contained in this rule

. . . . . dependent Σ 0..* BackboneElement Which other rules to apply in the context of this rule

. . . . . . name Σ 1..1 id Name of a rule or group to apply
. . . . . variable . parameter Σ 1..* see parameter Parameter to pass to the rule or group

. . . . . documentation 0..1 string Documentation for this instance of data

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

StructureMap ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this structure map is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the structure map. For more information see [Technical and Business Versions](resource.html#versions) map is stored on different servers url : uri [1..1] A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the structure map title : string [0..1] The status of this structure map. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » A boolean Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the structure map was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the structure map publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the structure map from a consumer's perspective description : markdown [0..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances useContext : UsageContext [0..*] A legal or geographic region in which the structure map authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this structure map is needed and why it has been designed as it has purpose : markdown [0..1] A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal notices of intellectual property ownership and can include restrictions on the use and publishing of the structure map copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] Other maps used by this map (canonical URLs) import : uri canonical [0..*] « StructureMap » Structure The canonical URL that identifies reference to the structure url : uri canonical [1..1] « StructureDefinition » How the referenced structure is used in this mapping mode : code [1..1] « How the referenced structure is used in this mapping null (Strength=Required) StructureMapModelMode ! » The name used for this type in the map alias : string [0..1] Documentation that describes how the structure is used in the mapping documentation : string [0..1] Const Other maps used by this map (canonical URLs) name : id [0..1] A FHIRPath expression that is the value of this variable value : string [0..1] Group A unique name for the group for the convenience of human readers name : id [1..1] Another group that this group adds rules to extends : id [0..1] If this is the default rule set to apply for thie the source type, type or this combination of types typeMode : code [1..1] [0..1] « If this is the default rule set to apply for the source type, or this combination of types null (Strength=Required) StructureMapGroupTypeMode ! » Additional supporting documentation that explains the purpose of the group and the types of mappings within it documentation : string [0..1] Input Name for this instance of data name : id [1..1] Type for this instance of data type : string [0..1] Mode for this instance of data mode : code [1..1] « Mode for this instance of data null (Strength=Required) StructureMapInputMode ! » Documentation for this instance of data documentation : string [0..1] Rule Name of the rule for internal references name : id [1..1] [0..1] Documentation for this instance of data documentation : string [0..1] Source Type or variable this rule applies to context : id [1..1] Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content min : integer unsignedInt [0..1] Specified maximum cardinality for the element - a number or a "*". "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value) max : string [0..1] Specified type for the element. This works as a condition on the mapping - use for polymorphic elements type : string [0..1] A value to use if there is no existing value in the source object defaultValue[x] defaultValue : * string [0..1] Optional field for this source element : string [0..1] How to handle the list mode for this element listMode : code [0..1] « If field is a list, how to manage the source null (Strength=Required) StructureMapSourceListMode ! » Named context for field, if a field is specified variable : id [0..1] FHIRPath expression - must be true or the rule does not apply condition : string [0..1] FHIRPath expression - must be true or the mapping engine throws an error instead of completing check : string [0..1] A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found logMessage : string [0..1] Target Type or variable Variable this rule applies to context : id string [0..1] « How to interpret the context This element has or is affected by some invariants contextType : code C [0..1] How to interpret the context (Strength=Required) StructureMapContextType ! » Field to create in the context element : string [0..1] « This element has or is affected by some invariants C » Named context for field, if desired, and a field is specified variable : id [0..1] If field is a list, how to manage the list listMode : code [0..*] « If field is a list, how to manage the production null (Strength=Required) StructureMapTargetListMode ! » Internal rule reference for shared list items listRuleId : id [0..1] How the data is copied / created transform : code [0..1] « How data is copied/created null (Strength=Required) StructureMapTransform ! » Parameter Parameter value - variable or literal value[x] : Type PrimitiveType [1..1] « id | string | boolean | integer | decimal | date | time | dateTime » Dependent Name of a rule or group to apply name : id [1..1] Variable to pass to the rule or group variable : string [1..*] A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced structure [0..*] Definition of a constant value used in the map rules const [0..*] A name assigned to an instance of data. The instance must be provided when the mapping is invoked input [1..*] Source inputs to the mapping source [1..*] Parameters to the transform parameter [0..*] Content to create because of this mapping rule target [0..*] Rules contained in this rule rule [0..*] Parameter to pass to the rule or group parameter [1..*] Which other rules to apply in the context of this rule dependent [0..*] Transform Rule from source to target rule [1..*] [0..*] Organizes the mapping into managable chunks for human review/ease of maintenance group [1..*]

XML Template

<

<StructureMap xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 1..1 Canonical identifier for this structure map, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the structure map --></identifier>
 <
 <
 <
 <
 <
 <
 <

 <version value="[string]"/><!-- 0..1 Business version of the structure map -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 1..1 Name for this structure map (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this structure map (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <
 <</useContext>
 <</jurisdiction>
 <
 <

 <description value="[markdown]"/><!-- 0..1 Natural language description of the structure map -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the structure map (if applicable) icon --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this structure map is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->

 <structure>  <!-- 0..* Structure Definition used by this map -->
  <
  <
  <
  <

  <url><!-- 1..1 canonical(StructureDefinition) Canonical reference to structure definition --></url>
  <mode value="[code]"/><!-- 1..1 source | queried | target | produced -->
  <alias value="[string]"/><!-- 0..1 Name for type in this map -->
  <documentation value="[string]"/><!-- 0..1 Documentation on use of structure -->

 </structure>
 <

 <import><!-- 0..* canonical(StructureMap) Other maps used by this map (canonical URLs) --></import>
 <const>  <!-- 0..* Definition of the constant value used in the map rules -->
  <name value="[id]"/><!-- 0..1 Constant name -->
  <value value="[string]"/><!-- 0..1 FHIRPath exression - value of the constant -->
 </const>

 <group>  <!-- 1..* Named sections for reader convenience -->
  <
  <
  <
  <

  <name value="[id]"/><!-- 1..1 Human-readable label -->
  <extends value="[id]"/><!-- 0..1 Another group that this group adds rules to -->
  <typeMode value="[code]"/><!-- 0..1 types | type-and-types -->
  <documentation value="[string]"/><!-- 0..1 Additional description/explanation for group -->

  <input>  <!-- 1..* Named instance provided when invoking the map -->
   <
   <
   <
   <

   <name value="[id]"/><!-- 1..1 Name for this instance of data -->
   <type value="[string]"/><!-- 0..1 Type for this instance of data -->
   <mode value="[code]"/><!-- 1..1 source | target -->
   <documentation value="[string]"/><!-- 0..1 Documentation for this instance of data -->

  </input>
  <
   <

  <rule>  <!-- 0..* Transform Rule from source to target -->
   <name value="[id]"/><!-- 0..1 Name of the rule for internal references -->

   <source>  <!-- 1..* Source inputs to the mapping -->
    <
    <
    <
    <
    <</defaultValue[x]>
    <
    <
    <
    <
    <

    <context value="[id]"/><!-- 1..1 Type or variable this rule applies to -->
    <min value="[unsignedInt]"/><!-- 0..1 Specified minimum cardinality -->
    <max value="[string]"/><!-- 0..1 Specified maximum cardinality (number or *) -->
    <type value="[string]"/><!-- 0..1 Rule only applies if source has this type -->
    <defaultValue value="[string]"/><!-- 0..1 Default value if no value exists -->
    <element value="[string]"/><!-- 0..1 Optional field for this source -->
    <listMode value="[code]"/><!-- 0..1 first | not_first | last | not_last | only_one -->
    <variable value="[id]"/><!-- 0..1 Named context for field, if a field is specified -->
    <condition value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the rule does not apply -->
    <check value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing -->
    <logMessage value="[string]"/><!-- 0..1 Message to put in log if source exists (FHIRPath) -->

   </source>
   <target>  <!-- 0..* Content to create because of this mapping rule -->
    <
    <
    <
    <
    <
    <
    <

    <context value="[string]"/><!-- I 0..1 Variable this rule applies to -->
    <element value="[string]"/><!-- I 0..1 Field to create in the context -->
    <variable value="[id]"/><!-- 0..1 Named context for field, if desired, and a field is specified -->
    <listMode value="[code]"/><!-- 0..* first | share | last | single -->
    <listRuleId value="[id]"/><!-- 0..1 Internal rule reference for shared list items -->
    <transform value="[code]"/><!-- 0..1 create | copy + -->

    <parameter>  <!-- 0..* Parameters to the transform -->
     <</value[x]>

     <value[x]><!-- 1..1 id|string|boolean|integer|decimal|date|time|dateTime Parameter value - variable or literal --></value[x]>

    </parameter>
   </target>
   <rule><!-- 0..* Content as for StructureMap.group.rule Rules contained in this rule --></rule>
   <dependent>  <!-- 0..* Which other rules to apply in the context of this rule -->
    <
    <

    <name value="[id]"/><!-- 1..1 Name of a rule or group to apply -->
    <parameter><!-- 1..* Content as for StructureMap.group.rule.target.parameter Parameter to pass to the rule or group --></parameter>

   </dependent>
   <

   <documentation value="[string]"/><!-- 0..1 Documentation for this instance of data -->

  </rule>
 </group>
</StructureMap>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "StructureMap",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "

  "url" : "<uri>", // R!  Canonical identifier for this structure map, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the structure map
  "version" : "<string>", // Business version of the structure map
  // versionAlgorithm[x]: How to compare versions. One of these 2:

  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I R!  Name for this structure map (computer friendly)
  "title" : "<string>", // Name for this structure map (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing only - never for real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the structure map
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the structure map (if applicable) icon
  "purpose" : "<markdown>", // Why this structure map is defined
  "copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "structure" : [{ // Structure Definition used by this map
    "url" : "<canonical(StructureDefinition)>", // R!  Canonical reference to structure definition
    "mode" : "<code>", // R!  source | queried | target | produced
    "alias" : "<string>", // Name for type in this map
    "documentation" : "<string>" // Documentation on use of structure

  }],
  "
  "
    "
    "
    "
    "
    "
      "
      "
      "
      "

  "import" : ["<canonical(StructureMap)>"], // Other maps used by this map (canonical URLs)
  "const" : [{ // Definition of the constant value used in the map rules
    "name" : "<id>", // Constant name
    "value" : "<string>" // FHIRPath exression - value of the constant
  }],
  "group" : [{ // R!  Named sections for reader convenience
    "name" : "<id>", // R!  Human-readable label
    "extends" : "<id>", // Another group that this group adds rules to
    "typeMode" : "<code>", // types | type-and-types
    "documentation" : "<string>", // Additional description/explanation for group
    "input" : [{ // R!  Named instance provided when invoking the map
      "name" : "<id>", // R!  Name for this instance of data
      "type" : "<string>", // Type for this instance of data
      "mode" : "<code>", // R!  source | target
      "documentation" : "<string>" // Documentation for this instance of data

    }],
    "
      "
      "
        "
        "
        "
        "
        
        ">,
        ">,
        ">",
        ">",
        ">",
        ">",
        ">",
        ">,
        ">",
        ">",
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        "
        "
        "
        "
        "

    "rule" : [{ // Transform Rule from source to target
      "name" : "<id>", // Name of the rule for internal references
      "source" : [{ // R!  Source inputs to the mapping
        "context" : "<id>", // R!  Type or variable this rule applies to
        "min" : "<unsignedInt>", // Specified minimum cardinality
        "max" : "<string>", // Specified maximum cardinality (number or *)
        "type" : "<string>", // Rule only applies if source has this type
        "defaultValue" : "<string>", // Default value if no value exists
        "element" : "<string>", // Optional field for this source
        "listMode" : "<code>", // first | not_first | last | not_last | only_one
        "variable" : "<id>", // Named context for field, if a field is specified
        "condition" : "<string>", // FHIRPath expression  - must be true or the rule does not apply
        "check" : "<string>", // FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        "logMessage" : "<string>" // Message to put in log if source exists (FHIRPath)

      }],
      "
        "
        "
        "
        "
        "
        "
        "
        "
          
          ">"
          ">"
          ">
          ">
          ">

      "target" : [{ // Content to create because of this mapping rule
        "context" : "<string>", // I Variable this rule applies to
        "element" : "<string>", // I Field to create in the context
        "variable" : "<id>", // Named context for field, if desired, and a field is specified
        "listMode" : ["<code>"], // first | share | last | single
        "listRuleId" : "<id>", // Internal rule reference for shared list items
        "transform" : "<code>", // create | copy +
        "parameter" : [{ // Parameters to the transform
          // value[x]: Parameter value - variable or literal. One of these 8:

          "valueId" : "<id>",
          "valueString" : "<string>",
          "valueBoolean" : <boolean>,
          "valueInteger" : <integer>,
          "valueDecimal" : <decimal>,
          "valueDate" : "<date>",
          "valueTime" : "<time>",
          "valueDateTime" : "<dateTime>"

        }]
      }],
      "
      "
        "
        "

      "rule" : [{ Content as for StructureMap.group.rule }], // Rules contained in this rule
      "dependent" : [{ // Which other rules to apply in the context of this rule
        "name" : "<id>", // R!  Name of a rule or group to apply
        "parameter" : [{ Content as for StructureMap.group.rule.target.parameter }] // R!  Parameter to pass to the rule or group

      }],
      "

      "documentation" : "<string>" // Documentation for this instance of data

    }]
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:StructureMap;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
      fhir:
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        # . One of these 38
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
      ], ...;
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
          # . One of these 5
            fhir: ]
            fhir: ]
            fhir: ]
            fhir: ]
            fhir: ]
        ], ...;
      ], ...;
      fhir:
      fhir:
        fhir:
        fhir:
      ], ...;
      fhir:
    ], ...;
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:url [ uri ] ; # 1..1 Canonical identifier for this structure map, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the structure map
  fhir:version [ string ] ; # 0..1 Business version of the structure map
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:String ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 1..1 I Name for this structure map (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this structure map (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the structure map
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the structure map (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this structure map is defined
  fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:structure ( [ # 0..* Structure Definition used by this map
    fhir:url [ canonical(StructureDefinition) ] ; # 1..1 Canonical reference to structure definition
    fhir:mode [ code ] ; # 1..1 source | queried | target | produced
    fhir:alias [ string ] ; # 0..1 Name for type in this map
    fhir:documentation [ string ] ; # 0..1 Documentation on use of structure
  ] ... ) ;
  fhir:import  ( [ canonical(StructureMap) ] ... ) ; # 0..* Other maps used by this map (canonical URLs)
  fhir:const ( [ # 0..* Definition of the constant value used in the map rules
    fhir:name [ id ] ; # 0..1 Constant name
    fhir:value [ string ] ; # 0..1 FHIRPath exression - value of the constant
  ] ... ) ;
  fhir:group ( [ # 1..* Named sections for reader convenience
    fhir:name [ id ] ; # 1..1 Human-readable label
    fhir:extends [ id ] ; # 0..1 Another group that this group adds rules to
    fhir:typeMode [ code ] ; # 0..1 types | type-and-types
    fhir:documentation [ string ] ; # 0..1 Additional description/explanation for group
    fhir:input ( [ # 1..* Named instance provided when invoking the map
      fhir:name [ id ] ; # 1..1 Name for this instance of data
      fhir:type [ string ] ; # 0..1 Type for this instance of data
      fhir:mode [ code ] ; # 1..1 source | target
      fhir:documentation [ string ] ; # 0..1 Documentation for this instance of data
    ] ... ) ;
    fhir:rule ( [ # 0..* Transform Rule from source to target
      fhir:name [ id ] ; # 0..1 Name of the rule for internal references
      fhir:source ( [ # 1..* Source inputs to the mapping
        fhir:context [ id ] ; # 1..1 Type or variable this rule applies to
        fhir:min [ unsignedInt ] ; # 0..1 Specified minimum cardinality
        fhir:max [ string ] ; # 0..1 Specified maximum cardinality (number or *)
        fhir:type [ string ] ; # 0..1 Rule only applies if source has this type
        fhir:defaultValue [ string ] ; # 0..1 Default value if no value exists
        fhir:element [ string ] ; # 0..1 Optional field for this source
        fhir:listMode [ code ] ; # 0..1 first | not_first | last | not_last | only_one
        fhir:variable [ id ] ; # 0..1 Named context for field, if a field is specified
        fhir:condition [ string ] ; # 0..1 FHIRPath expression  - must be true or the rule does not apply
        fhir:check [ string ] ; # 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        fhir:logMessage [ string ] ; # 0..1 Message to put in log if source exists (FHIRPath)
      ] ... ) ;
      fhir:target ( [ # 0..* Content to create because of this mapping rule
        fhir:context [ string ] ; # 0..1 I Variable this rule applies to
        fhir:element [ string ] ; # 0..1 I Field to create in the context
        fhir:variable [ id ] ; # 0..1 Named context for field, if desired, and a field is specified
        fhir:listMode  ( [ code ] ... ) ; # 0..* first | share | last | single
        fhir:listRuleId [ id ] ; # 0..1 Internal rule reference for shared list items
        fhir:transform [ code ] ; # 0..1 create | copy +
        fhir:parameter ( [ # 0..* Parameters to the transform
          # value[x] : 1..1 Parameter value - variable or literal. One of these 8
            fhir:value [  a fhir:Id ; id ]
            fhir:value [  a fhir:String ; string ]
            fhir:value [  a fhir:Boolean ; boolean ]
            fhir:value [  a fhir:Integer ; integer ]
            fhir:value [  a fhir:Decimal ; decimal ]
            fhir:value [  a fhir:Date ; date ]
            fhir:value [  a fhir:Time ; time ]
            fhir:value [  a fhir:DateTime ; dateTime ]
        ] ... ) ;
      ] ... ) ;
      fhir:rule  ( [ See StructureMap.group.rule ] ... ) ; # 0..* Rules contained in this rule
      fhir:dependent ( [ # 0..* Which other rules to apply in the context of this rule
        fhir:name [ id ] ; # 1..1 Name of a rule or group to apply
        fhir:parameter  ( [ See StructureMap.group.rule.target.parameter ] ... ) ; # 1..* Parameter to pass to the rule or group
      ] ... ) ;
      fhir:documentation [ string ] ; # 0..1 Documentation for this instance of data
    ] ... ) ;
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

StructureMap
StructureMap.versionAlgorithm[x]
  • Added Element
StructureMap.jurisdiction
StructureMap.copyrightLabel
  • Added Element
StructureMap.const
  • Added Element
StructureMap.const.name
  • Added Element
StructureMap.const.value
  • Added Element
StructureMap.group.typeMode
  • Min Cardinality changed from 1 to 0
  • Remove code none
StructureMap.group.rule
  • Min Cardinality changed from 1 to 0
StructureMap.group.rule.name
  • Min Cardinality changed from 1 to 0
StructureMap.group.rule.source.min
  • Type changed from integer to unsignedInt
StructureMap.group.rule.source.defaultValue
  • Renamed from defaultValue[x] to defaultValue
  • Remove Types base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
StructureMap.group.rule.target.context
  • Type changed from id to string
StructureMap.group.rule.target.listMode
  • Remove code collate
  • Add code single
StructureMap.group.rule.target.parameter.value[x]
  • Add Types date, time, dateTime
StructureMap.group.rule.dependent.parameter
  • Renamed from variable to parameter
  • Remove Type string
StructureMap.group.rule.target.contextType
  • Deleted (now implied by context)

This resource did not exist in Release 2 See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

Structure

Logical URI to reference Context Intended jurisdiction for Use and/or publishing BackboneElement 1..1 none | 1..* 1..1 BackboneElement Type or variable Σ string Variable
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . StructureMap N DomainResource A Map of relationships between 2 structures that can be used to transform data
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 1..1 uri Canonical identifier for this structure map map, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the structure map

. . . version Σ 0..1 string Business version of the structure map
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this structure map (computer friendly)
. . . title Σ T 0..1 string Name for this structure map (human friendly)
. . . status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description T 0..1 markdown Natural language description of the structure map
. . . useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ 0..* CodeableConcept Jurisdiction of the authority that maintains the structure map (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this structure map is defined
. . . copyright T 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . copyrightLabel T 0..1 string Copyright holder and year(s)
.. . structure Σ 0..* BackboneElement Structure Definition used by this map

. . . . url Σ 1..1 uri canonical ( StructureDefinition ) Canonical URL for reference to structure definition
. . . . mode Σ 1..1 code source | queried | target | produced
StructureMapModelMode Binding: Structure Map Model Mode ( Required )
. . . . alias Σ 0..1 string Name for type in this map
. . . . documentation 0..1 string Documentation on use of structure
. . . import Σ 0..* uri canonical ( StructureMap ) Other maps used by this map (canonical URLs)

. . . group const Σ 0..* BackboneElement Definition of the constant value used in the map rules

.... name Σ 0..1 id 1..* Constant name
. . . . value Σ 0..1 string FHIRPath exression - value of the constant
... group Σ 1..* BackboneElement Named sections for reader convenience

. . . . name Σ 1..1 id Human-readable label
. . . . extends Σ 0..1 id Another group that this group adds rules to
. . . . typeMode Σ 0..1 code types | type-and-types
StructureMapGroupTypeMode Binding: Structure Map Group Type Mode ( Required )
. . . . documentation Σ 0..1 string Additional description/explaination description/explanation for group
. . . . input Σ 1..* BackboneElement Named instance provided when invoking the map

. . . . . name Σ 1..1 id Name for this instance of data
. . . . . type Σ 0..1 string Type for this instance of data
. . . . . mode Σ 1..1 code source | target
StructureMapInputMode Binding: Structure Map Input Mode ( Required )
. . . . . documentation 0..1 string Documentation for this instance of data
. . . . rule Σ 0..* BackboneElement Transform Rule from source to target

. . . . . name Σ 0..1 id Name of the rule for internal references
. . . . . source Σ C 1..* BackboneElement Source inputs to the mapping
+ Rule: Min <= Max

. . . . . . context Σ 1..1 id Type or variable this rule applies to
. . . . . . min Σ 0..1 integer unsignedInt Specified minimum cardinality
. . . . . . max Σ C 0..1 string Specified maximum cardinality (number or *)
+ Rule: Max SHALL be a number or "*"
. . . . . . type Σ 0..1 string Rule only applies if source has this type
. . . . . defaultValue[x] . defaultValue Σ 0..1 * string Default value if no value exists
. . . . . . element Σ 0..1 string Optional field for this source
. . . . . . listMode Σ 0..1 code first | not_first | last | not_last | only_one
StructureMapSourceListMode Binding: Structure Map Source List Mode ( Required )
. . . . . . variable Σ 0..1 id Named context for field, if a field is specified
. . . . . . condition Σ 0..1 string FHIRPath expression - must be true or the rule does not apply
. . . . . . check Σ 0..1 string FHIRPath expression - must be true or the mapping engine throws an error instead of completing
. . . . target . . logMessage Σ I 0..1 string Message to put in log if source exists (FHIRPath)
0..*
. . . . . target Σ C 0..* BackboneElement Content to create because of this mapping rule
+ Must have a contextType if you have a context + Rule: Can only have a an element if you have a context

. . . . . . context Σ C 0..1 id string Variable this rule applies to contextType Σ 0..1 code type | variable
StructureMapContextType ( Required )
. . . . . . element Σ C 0..1 string Field to create in the context
. . . . . . variable Σ 0..1 id Named context for field, if desired, and a field is specified
. . . . . . listMode Σ 0..* code first | share | last | collate single
StructureMapTargetListMode Binding: Structure Map Target List Mode ( Required )

. . . . . . listRuleId Σ 0..1 id Internal rule reference for shared list items
. . . . . . transform Σ 0..1 code create | copy +
StructureMapTransform Binding: Structure Map Transform ( Required )
. . . . . . parameter Σ 0..* BackboneElement Parameters to the transform

. . . . . . . value[x] Σ 1..1 Parameter value - variable or literal
. . . . . . . . valueId id
. . . . . . . . valueString string
. . . . . . . . valueBoolean boolean
. . . . . . . . valueInteger integer
. . . . . . . . valueDecimal decimal
. . . . . . . rule . valueDate date
. . . . . . . . valueTime time
. . . . . . . . valueDateTime 0..* see dateTime
..... rule Σ 0..* see rule Rules contained in this rule

. . . . . dependent Σ 0..* BackboneElement Which other rules to apply in the context of this rule

. . . . . . name Σ 1..1 id Name of a rule or group to apply
. . . . . variable . parameter Σ 1..* see parameter Parameter to pass to the rule or group

. . . . . documentation 0..1 string Documentation for this instance of data

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

StructureMap ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this structure map is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the structure map. For more information see [Technical and Business Versions](resource.html#versions) map is stored on different servers url : uri [1..1] A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the structure map title : string [0..1] The status of this structure map. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » A boolean Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the structure map was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the structure map publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the structure map from a consumer's perspective description : markdown [0..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances useContext : UsageContext [0..*] A legal or geographic region in which the structure map authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this structure map is needed and why it has been designed as it has purpose : markdown [0..1] A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal notices of intellectual property ownership and can include restrictions on the use and publishing of the structure map copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] Other maps used by this map (canonical URLs) import : uri canonical [0..*] « StructureMap » Structure The canonical URL that identifies reference to the structure url : uri canonical [1..1] « StructureDefinition » How the referenced structure is used in this mapping mode : code [1..1] « How the referenced structure is used in this mapping null (Strength=Required) StructureMapModelMode ! » The name used for this type in the map alias : string [0..1] Documentation that describes how the structure is used in the mapping documentation : string [0..1] Const Other maps used by this map (canonical URLs) name : id [0..1] A FHIRPath expression that is the value of this variable value : string [0..1] Group A unique name for the group for the convenience of human readers name : id [1..1] Another group that this group adds rules to extends : id [0..1] If this is the default rule set to apply for thie the source type, type or this combination of types typeMode : code [1..1] [0..1] « If this is the default rule set to apply for the source type, or this combination of types null (Strength=Required) StructureMapGroupTypeMode ! » Additional supporting documentation that explains the purpose of the group and the types of mappings within it documentation : string [0..1] Input Name for this instance of data name : id [1..1] Type for this instance of data type : string [0..1] Mode for this instance of data mode : code [1..1] « Mode for this instance of data null (Strength=Required) StructureMapInputMode ! » Documentation for this instance of data documentation : string [0..1] Rule Name of the rule for internal references name : id [1..1] [0..1] Documentation for this instance of data documentation : string [0..1] Source Type or variable this rule applies to context : id [1..1] Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content min : integer unsignedInt [0..1] Specified maximum cardinality for the element - a number or a "*". "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value) max : string [0..1] Specified type for the element. This works as a condition on the mapping - use for polymorphic elements type : string [0..1] A value to use if there is no existing value in the source object defaultValue[x] defaultValue : * string [0..1] Optional field for this source element : string [0..1] How to handle the list mode for this element listMode : code [0..1] « If field is a list, how to manage the source null (Strength=Required) StructureMapSourceListMode ! » Named context for field, if a field is specified variable : id [0..1] FHIRPath expression - must be true or the rule does not apply condition : string [0..1] FHIRPath expression - must be true or the mapping engine throws an error instead of completing check : string [0..1] A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found logMessage : string [0..1] Target Type or variable Variable this rule applies to context : id string [0..1] « How to interpret the context This element has or is affected by some invariants contextType : code C [0..1] How to interpret the context (Strength=Required) StructureMapContextType ! » Field to create in the context element : string [0..1] « This element has or is affected by some invariants C » Named context for field, if desired, and a field is specified variable : id [0..1] If field is a list, how to manage the list listMode : code [0..*] « If field is a list, how to manage the production null (Strength=Required) StructureMapTargetListMode ! » Internal rule reference for shared list items listRuleId : id [0..1] How the data is copied / created transform : code [0..1] « How data is copied/created null (Strength=Required) StructureMapTransform ! » Parameter Parameter value - variable or literal value[x] : Type PrimitiveType [1..1] « id | string | boolean | integer | decimal | date | time | dateTime » Dependent Name of a rule or group to apply name : id [1..1] Variable to pass to the rule or group variable : string [1..*] A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced structure [0..*] Definition of a constant value used in the map rules const [0..*] A name assigned to an instance of data. The instance must be provided when the mapping is invoked input [1..*] Source inputs to the mapping source [1..*] Parameters to the transform parameter [0..*] Content to create because of this mapping rule target [0..*] Rules contained in this rule rule [0..*] Parameter to pass to the rule or group parameter [1..*] Which other rules to apply in the context of this rule dependent [0..*] Transform Rule from source to target rule [1..*] [0..*] Organizes the mapping into managable chunks for human review/ease of maintenance group [1..*]

XML Template

<

<StructureMap xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 1..1 Canonical identifier for this structure map, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the structure map --></identifier>
 <
 <
 <
 <
 <
 <
 <

 <version value="[string]"/><!-- 0..1 Business version of the structure map -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 1..1 Name for this structure map (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this structure map (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <
 <</useContext>
 <</jurisdiction>
 <
 <

 <description value="[markdown]"/><!-- 0..1 Natural language description of the structure map -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the structure map (if applicable) icon --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this structure map is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->

 <structure>  <!-- 0..* Structure Definition used by this map -->
  <
  <
  <
  <

  <url><!-- 1..1 canonical(StructureDefinition) Canonical reference to structure definition --></url>
  <mode value="[code]"/><!-- 1..1 source | queried | target | produced -->
  <alias value="[string]"/><!-- 0..1 Name for type in this map -->
  <documentation value="[string]"/><!-- 0..1 Documentation on use of structure -->

 </structure>
 <

 <import><!-- 0..* canonical(StructureMap) Other maps used by this map (canonical URLs) --></import>
 <const>  <!-- 0..* Definition of the constant value used in the map rules -->
  <name value="[id]"/><!-- 0..1 Constant name -->
  <value value="[string]"/><!-- 0..1 FHIRPath exression - value of the constant -->
 </const>

 <group>  <!-- 1..* Named sections for reader convenience -->
  <
  <
  <
  <

  <name value="[id]"/><!-- 1..1 Human-readable label -->
  <extends value="[id]"/><!-- 0..1 Another group that this group adds rules to -->
  <typeMode value="[code]"/><!-- 0..1 types | type-and-types -->
  <documentation value="[string]"/><!-- 0..1 Additional description/explanation for group -->

  <input>  <!-- 1..* Named instance provided when invoking the map -->
   <
   <
   <
   <

   <name value="[id]"/><!-- 1..1 Name for this instance of data -->
   <type value="[string]"/><!-- 0..1 Type for this instance of data -->
   <mode value="[code]"/><!-- 1..1 source | target -->
   <documentation value="[string]"/><!-- 0..1 Documentation for this instance of data -->

  </input>
  <
   <

  <rule>  <!-- 0..* Transform Rule from source to target -->
   <name value="[id]"/><!-- 0..1 Name of the rule for internal references -->

   <source>  <!-- 1..* Source inputs to the mapping -->
    <
    <
    <
    <
    <</defaultValue[x]>
    <
    <
    <
    <
    <

    <context value="[id]"/><!-- 1..1 Type or variable this rule applies to -->
    <min value="[unsignedInt]"/><!-- 0..1 Specified minimum cardinality -->
    <max value="[string]"/><!-- 0..1 Specified maximum cardinality (number or *) -->
    <type value="[string]"/><!-- 0..1 Rule only applies if source has this type -->
    <defaultValue value="[string]"/><!-- 0..1 Default value if no value exists -->
    <element value="[string]"/><!-- 0..1 Optional field for this source -->
    <listMode value="[code]"/><!-- 0..1 first | not_first | last | not_last | only_one -->
    <variable value="[id]"/><!-- 0..1 Named context for field, if a field is specified -->
    <condition value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the rule does not apply -->
    <check value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing -->
    <logMessage value="[string]"/><!-- 0..1 Message to put in log if source exists (FHIRPath) -->

   </source>
   <target>  <!-- 0..* Content to create because of this mapping rule -->
    <
    <
    <
    <
    <
    <
    <

    <context value="[string]"/><!-- I 0..1 Variable this rule applies to -->
    <element value="[string]"/><!-- I 0..1 Field to create in the context -->
    <variable value="[id]"/><!-- 0..1 Named context for field, if desired, and a field is specified -->
    <listMode value="[code]"/><!-- 0..* first | share | last | single -->
    <listRuleId value="[id]"/><!-- 0..1 Internal rule reference for shared list items -->
    <transform value="[code]"/><!-- 0..1 create | copy + -->

    <parameter>  <!-- 0..* Parameters to the transform -->
     <</value[x]>

     <value[x]><!-- 1..1 id|string|boolean|integer|decimal|date|time|dateTime Parameter value - variable or literal --></value[x]>

    </parameter>
   </target>
   <rule><!-- 0..* Content as for StructureMap.group.rule Rules contained in this rule --></rule>
   <dependent>  <!-- 0..* Which other rules to apply in the context of this rule -->
    <
    <

    <name value="[id]"/><!-- 1..1 Name of a rule or group to apply -->
    <parameter><!-- 1..* Content as for StructureMap.group.rule.target.parameter Parameter to pass to the rule or group --></parameter>

   </dependent>
   <

   <documentation value="[string]"/><!-- 0..1 Documentation for this instance of data -->

  </rule>
 </group>
</StructureMap>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "StructureMap",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "

  "url" : "<uri>", // R!  Canonical identifier for this structure map, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the structure map
  "version" : "<string>", // Business version of the structure map
  // versionAlgorithm[x]: How to compare versions. One of these 2:

  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I R!  Name for this structure map (computer friendly)
  "title" : "<string>", // Name for this structure map (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing only - never for real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the structure map
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the structure map (if applicable) icon
  "purpose" : "<markdown>", // Why this structure map is defined
  "copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "structure" : [{ // Structure Definition used by this map
    "url" : "<canonical(StructureDefinition)>", // R!  Canonical reference to structure definition
    "mode" : "<code>", // R!  source | queried | target | produced
    "alias" : "<string>", // Name for type in this map
    "documentation" : "<string>" // Documentation on use of structure

  }],
  "
  "
    "
    "
    "
    "
    "
      "
      "
      "
      "

  "import" : ["<canonical(StructureMap)>"], // Other maps used by this map (canonical URLs)
  "const" : [{ // Definition of the constant value used in the map rules
    "name" : "<id>", // Constant name
    "value" : "<string>" // FHIRPath exression - value of the constant
  }],
  "group" : [{ // R!  Named sections for reader convenience
    "name" : "<id>", // R!  Human-readable label
    "extends" : "<id>", // Another group that this group adds rules to
    "typeMode" : "<code>", // types | type-and-types
    "documentation" : "<string>", // Additional description/explanation for group
    "input" : [{ // R!  Named instance provided when invoking the map
      "name" : "<id>", // R!  Name for this instance of data
      "type" : "<string>", // Type for this instance of data
      "mode" : "<code>", // R!  source | target
      "documentation" : "<string>" // Documentation for this instance of data

    }],
    "
      "
      "
        "
        "
        "
        "
        
        ">,
        ">,
        ">",
        ">",
        ">",
        ">",
        ">",
        ">,
        ">",
        ">",
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        " },
        "
        "
        "
        "
        "

    "rule" : [{ // Transform Rule from source to target
      "name" : "<id>", // Name of the rule for internal references
      "source" : [{ // R!  Source inputs to the mapping
        "context" : "<id>", // R!  Type or variable this rule applies to
        "min" : "<unsignedInt>", // Specified minimum cardinality
        "max" : "<string>", // Specified maximum cardinality (number or *)
        "type" : "<string>", // Rule only applies if source has this type
        "defaultValue" : "<string>", // Default value if no value exists
        "element" : "<string>", // Optional field for this source
        "listMode" : "<code>", // first | not_first | last | not_last | only_one
        "variable" : "<id>", // Named context for field, if a field is specified
        "condition" : "<string>", // FHIRPath expression  - must be true or the rule does not apply
        "check" : "<string>", // FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        "logMessage" : "<string>" // Message to put in log if source exists (FHIRPath)

      }],
      "
        "
        "
        "
        "
        "
        "
        "
        "
          
          ">"
          ">"
          ">
          ">
          ">

      "target" : [{ // Content to create because of this mapping rule
        "context" : "<string>", // I Variable this rule applies to
        "element" : "<string>", // I Field to create in the context
        "variable" : "<id>", // Named context for field, if desired, and a field is specified
        "listMode" : ["<code>"], // first | share | last | single
        "listRuleId" : "<id>", // Internal rule reference for shared list items
        "transform" : "<code>", // create | copy +
        "parameter" : [{ // Parameters to the transform
          // value[x]: Parameter value - variable or literal. One of these 8:

          "valueId" : "<id>",
          "valueString" : "<string>",
          "valueBoolean" : <boolean>,
          "valueInteger" : <integer>,
          "valueDecimal" : <decimal>,
          "valueDate" : "<date>",
          "valueTime" : "<time>",
          "valueDateTime" : "<dateTime>"

        }]
      }],
      "
      "
        "
        "

      "rule" : [{ Content as for StructureMap.group.rule }], // Rules contained in this rule
      "dependent" : [{ // Which other rules to apply in the context of this rule
        "name" : "<id>", // R!  Name of a rule or group to apply
        "parameter" : [{ Content as for StructureMap.group.rule.target.parameter }] // R!  Parameter to pass to the rule or group

      }],
      "

      "documentation" : "<string>" // Documentation for this instance of data

    }]
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:StructureMap;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
      fhir:
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        # . One of these 38
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
          fhir: ]
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
      ], ...;
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
          # . One of these 5
            fhir: ]
            fhir: ]
            fhir: ]
            fhir: ]
            fhir: ]
        ], ...;
      ], ...;
      fhir:
      fhir:
        fhir:
        fhir:
      ], ...;
      fhir:
    ], ...;
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:url [ uri ] ; # 1..1 Canonical identifier for this structure map, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the structure map
  fhir:version [ string ] ; # 0..1 Business version of the structure map
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:String ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 1..1 I Name for this structure map (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this structure map (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the structure map
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the structure map (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this structure map is defined
  fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:structure ( [ # 0..* Structure Definition used by this map
    fhir:url [ canonical(StructureDefinition) ] ; # 1..1 Canonical reference to structure definition
    fhir:mode [ code ] ; # 1..1 source | queried | target | produced
    fhir:alias [ string ] ; # 0..1 Name for type in this map
    fhir:documentation [ string ] ; # 0..1 Documentation on use of structure
  ] ... ) ;
  fhir:import  ( [ canonical(StructureMap) ] ... ) ; # 0..* Other maps used by this map (canonical URLs)
  fhir:const ( [ # 0..* Definition of the constant value used in the map rules
    fhir:name [ id ] ; # 0..1 Constant name
    fhir:value [ string ] ; # 0..1 FHIRPath exression - value of the constant
  ] ... ) ;
  fhir:group ( [ # 1..* Named sections for reader convenience
    fhir:name [ id ] ; # 1..1 Human-readable label
    fhir:extends [ id ] ; # 0..1 Another group that this group adds rules to
    fhir:typeMode [ code ] ; # 0..1 types | type-and-types
    fhir:documentation [ string ] ; # 0..1 Additional description/explanation for group
    fhir:input ( [ # 1..* Named instance provided when invoking the map
      fhir:name [ id ] ; # 1..1 Name for this instance of data
      fhir:type [ string ] ; # 0..1 Type for this instance of data
      fhir:mode [ code ] ; # 1..1 source | target
      fhir:documentation [ string ] ; # 0..1 Documentation for this instance of data
    ] ... ) ;
    fhir:rule ( [ # 0..* Transform Rule from source to target
      fhir:name [ id ] ; # 0..1 Name of the rule for internal references
      fhir:source ( [ # 1..* Source inputs to the mapping
        fhir:context [ id ] ; # 1..1 Type or variable this rule applies to
        fhir:min [ unsignedInt ] ; # 0..1 Specified minimum cardinality
        fhir:max [ string ] ; # 0..1 Specified maximum cardinality (number or *)
        fhir:type [ string ] ; # 0..1 Rule only applies if source has this type
        fhir:defaultValue [ string ] ; # 0..1 Default value if no value exists
        fhir:element [ string ] ; # 0..1 Optional field for this source
        fhir:listMode [ code ] ; # 0..1 first | not_first | last | not_last | only_one
        fhir:variable [ id ] ; # 0..1 Named context for field, if a field is specified
        fhir:condition [ string ] ; # 0..1 FHIRPath expression  - must be true or the rule does not apply
        fhir:check [ string ] ; # 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        fhir:logMessage [ string ] ; # 0..1 Message to put in log if source exists (FHIRPath)
      ] ... ) ;
      fhir:target ( [ # 0..* Content to create because of this mapping rule
        fhir:context [ string ] ; # 0..1 I Variable this rule applies to
        fhir:element [ string ] ; # 0..1 I Field to create in the context
        fhir:variable [ id ] ; # 0..1 Named context for field, if desired, and a field is specified
        fhir:listMode  ( [ code ] ... ) ; # 0..* first | share | last | single
        fhir:listRuleId [ id ] ; # 0..1 Internal rule reference for shared list items
        fhir:transform [ code ] ; # 0..1 create | copy +
        fhir:parameter ( [ # 0..* Parameters to the transform
          # value[x] : 1..1 Parameter value - variable or literal. One of these 8
            fhir:value [  a fhir:Id ; id ]
            fhir:value [  a fhir:String ; string ]
            fhir:value [  a fhir:Boolean ; boolean ]
            fhir:value [  a fhir:Integer ; integer ]
            fhir:value [  a fhir:Decimal ; decimal ]
            fhir:value [  a fhir:Date ; date ]
            fhir:value [  a fhir:Time ; time ]
            fhir:value [  a fhir:DateTime ; dateTime ]
        ] ... ) ;
      ] ... ) ;
      fhir:rule  ( [ See StructureMap.group.rule ] ... ) ; # 0..* Rules contained in this rule
      fhir:dependent ( [ # 0..* Which other rules to apply in the context of this rule
        fhir:name [ id ] ; # 1..1 Name of a rule or group to apply
        fhir:parameter  ( [ See StructureMap.group.rule.target.parameter ] ... ) ; # 1..* Parameter to pass to the rule or group
      ] ... ) ;
      fhir:documentation [ string ] ; # 0..1 Documentation for this instance of data
    ] ... ) ;
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

StructureMap
StructureMap.versionAlgorithm[x]
  • Added Element
StructureMap.jurisdiction
StructureMap.copyrightLabel
  • Added Element
StructureMap.const
  • Added Element
StructureMap.const.name
  • Added Element
StructureMap.const.value
  • Added Element
StructureMap.group.typeMode
  • Min Cardinality changed from 1 to 0
  • Remove code none
StructureMap.group.rule
  • Min Cardinality changed from 1 to 0
StructureMap.group.rule.name
  • Min Cardinality changed from 1 to 0
StructureMap.group.rule.source.min
  • Type changed from integer to unsignedInt
StructureMap.group.rule.source.defaultValue
  • Renamed from defaultValue[x] to defaultValue
  • Remove Types base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
StructureMap.group.rule.target.context
  • Type changed from id to string
StructureMap.group.rule.target.listMode
  • Remove code collate
  • Add code single
StructureMap.group.rule.target.parameter.value[x]
  • Add Types date, time, dateTime
StructureMap.group.rule.dependent.parameter
  • Renamed from variable to parameter
  • Remove Type string
StructureMap.group.rule.target.contextType
  • Deleted (now implied by context)

This resource did not exist in Release 2 See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

 

Alternate Additional definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) , the spreadsheet version & the dependency analysis

StructureMap.status StructureMap.group.rule.source.listMode
Path Definition ValueSet Type Reference Documentation
StructureMap.versionAlgorithm[x] The lifecycle status of a Value Set or Concept Map. VersionAlgorithm Required Extensible

Indicates the mechanism used to compare versions to determine which is more current.

StructureMap.status PublicationStatus Required

The lifecycle status of an artifact.

StructureMap.jurisdiction Countries and regions within which this artifact is targeted for use JurisdictionValueSet icon Extensible Jurisdiction ValueSet

This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.

Note: The codes for countries and country subdivisions are taken from ISO 3166 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

StructureMap.structure.mode StructureMapModelMode Required

How the referenced structure is used in this mapping mapping.

StructureMap.group.typeMode StructureMapGroupTypeMode Required StructureMapModelMode StructureMap.group.typeMode

If this is the default rule set to apply for the source type, or this combination of types types.

StructureMap.group.input.mode StructureMapInputMode Required StructureMapGroupTypeMode StructureMap.group.input.mode

Mode for this instance of data data.

StructureMap.group.rule.source.listMode StructureMapSourceListMode Required StructureMapInputMode

If field is a list, how to manage the source.

StructureMap.group.rule.target.listMode StructureMapTargetListMode Required

If field is a list, how to manage the source production.

StructureMap.group.rule.target.transform StructureMapTransform Required StructureMapSourceListMode

How data is copied/created.

StructureMap.group.rule.target.contextType How to interpret the context StructureMap.group.rule.target.listMode StructureMap.group.rule.target.transform 7.7.4.2 Constraints
UniqueKey Level Required Location StructureMapContextType Description Expression
img  cnl-0 If field is a list, how to manage the production Required Warning (base) Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') StructureMapTargetListMode
img  cnl-1 How data is copied/created Required Warning StructureMap.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$') StructureMapTransform
img  smp-1 smp-1 : On StructureMap.group.rule.target: Rule StructureMap.group.rule.target Can only have a an element if you have a context ( expression on StructureMap.group.rule.target: element.exists() implies context.exists() )
smp-2 : On StructureMap.group.rule.target: Must have a contextType if you have a context ( expression img  smp-2 Rule on StructureMap.group.rule.target: StructureMap.group.rule.source Min <= Max context.exists() implies contextType.exists() min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger()) )
img  smp-3 Rule StructureMap.group.rule.source.max Max SHALL be a number or "*" empty() or ($this = '*') or (toInteger() >= 0)

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
context token A use context assigned to the structure map (StructureMap.useContext.value.ofType(CodeableConcept)) 24 Resources
context-quantity quantity A quantity- or range-valued use context assigned to the structure map (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) 24 Resources
context-type token A type of use context assigned to the structure map StructureMap.useContext.code 24 Resources
context-type-quantity composite A use context type and quantity- or range-based value assigned to the structure map On StructureMap.useContext:
  context-type: code
  context-quantity: value.ofType(Quantity) | value.ofType(Range)
24 Resources
context-type-value composite A use context type and value assigned to the structure map On StructureMap.useContext:
  context-type: code
  context: value.ofType(CodeableConcept)
24 Resources
date date The structure map publication date StructureMap.date 25 Resources
description string The description of the structure map StructureMap.description 23 Resources
experimental token Whether the StructureMap is experimental StructureMap.experimental
identifier token External identifier for the structure map StructureMap.identifier 28 Resources
jurisdiction token Intended jurisdiction for Jurisdiction of the authority that maintains the the structure map StructureMap.jurisdiction 21 Resources
name string Computationally friendly name of the structure map StructureMap.name 23 Resources
produced uri A produced StructureDefinition for the map StructureMap.structure.where(mode = 'produced').url
publisher string Name of the publisher of the structure map StructureMap.publisher 25 Resources
queried uri A queried StructureDefinition for the map StructureMap.structure.where(mode = 'queried').url
source uri A source StructureDefinition for the map StructureMap.structure.where(mode = 'source').url
status token The current status of the structure map StructureMap.status 28 Resources
target uri A target StructureDefinition for the map StructureMap.structure.where(mode = 'target').url
title string The human-friendly name of the structure map StructureMap.title 23 Resources
url uri The uri that identifies the structure map StructureMap.url 29 Resources
version token The business version of the structure map StructureMap.version 26 Resources