FHIR Cross-Version Mapping Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-cross-version/ and changes regularly. See the Directory of published versions
Page standards status: Draft | Maturity Level: 1 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="ElementDefinition3to2"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><pre class="fml">
<span style="color: #cc00cc">/// <b>url</b> = </span><span style="color: blue">'http://hl7.org/fhir/StructureMap/ElementDefinition3to2'</span>
<span style="color: #cc00cc">/// <b>name</b> = </span><span style="color: blue">'ElementDefinition3to2'</span>
<span style="color: #cc00cc">/// <b>title</b> = </span><span style="color: blue">'ElementDefinition Transforms: R3 to R2'</span>
<span style="color: #cc00cc">/// <b>status</b> = </span><span style="color: blue">'active'</span>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/3.0/ElementDefinition<span style="color: navy">" </span><b>alias </b>ElementDefinition <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/1.0/ElementDefinition<span style="color: navy">" </span><b>alias </b>ElementDefinitionR2 <b>as </b><b>target</b>
<b>imports</b><span style="color: navy"> "</span>http://hl7.org/fhir/StructureMap/*3to2<span style="color: navy">"
</span>
<b>group </b>ElementDefinition<span style="color: navy">(</span><b>source</b> <span style="color: maroon">srcR</span><span style="color: navy"> : </span>Resource, <b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>ElementDefinition, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>ElementDefinitionR2<span style="color: navy">)</span><b> <<type+>></b><span style="color: navy"> {
</span> src.extension<span style="color: navy"><b> -> </b></span>tgt.extension <i>"ElementDefinition-extensions"</i><span style="color: navy">;</span>
src.path<span style="color: navy"><b> -> </b></span>tgt.path <i>"ElementDefinition-path"</i><span style="color: navy">;</span>
src.sliceName<span style="color: navy"><b> -> </b></span>tgt.name <i>"ElementDefinition-name"</i><span style="color: navy">;</span>
src.representation<b> where </b>$this = 'xmlAttr'<span style="color: navy"><b> -> </b></span>tgt.representation <i>"ElementDefinition-representation"</i><span style="color: navy">;</span>
src.label<span style="color: navy"><b> -> </b></span>tgt.label <i>"ElementDefinition-label"</i><span style="color: navy">;</span>
src.code<span style="color: navy"><b> -> </b></span>tgt.code <i>"ElementDefinition-code"</i><span style="color: navy">;</span>
src.slicing<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.slicing<b> as </b><span style="color: maroon">vt0</span><b> then</b><span style="color: navy"> {
</span> vs0.discriminator<b> as </b><span style="color: maroon">vd1</span><b> then </b>edDiscriminator<span style="color: navy">(</span><span style="color: maroon">vd1</span><span style="color: navy">, </span><span style="color: maroon">vt0</span><span style="color: navy">)</span> <i>"slicing-discriminator"</i><span style="color: navy">;</span>
vs0.description<span style="color: navy"><b> -> </b></span>vt0.description <i>"slicing-description"</i><span style="color: navy">;</span>
vs0.ordered<span style="color: navy"><b> -> </b></span>vt0.ordered <i>"slicing-ordered"</i><span style="color: navy">;</span>
vs0.rules<span style="color: navy"><b> -> </b></span>vt0.rules <i>"slicing-rules"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ElementDefinition-slicing"</i><span style="color: navy">;</span>
src.short<span style="color: navy"><b> -> </b></span>tgt.short <i>"ElementDefinition-short"</i><span style="color: navy">;</span>
src.definition<span style="color: navy"><b> -> </b></span>tgt.definition <i>"ElementDefinition-definition"</i><span style="color: navy">;</span>
src.comment<span style="color: navy"><b> -> </b></span>tgt.comments <i>"ElementDefinition-comments"</i><span style="color: navy">;</span>
src.requirements<span style="color: navy"><b> -> </b></span>tgt.requirements <i>"ElementDefinition-requirements"</i><span style="color: navy">;</span>
src.alias<span style="color: navy"><b> -> </b></span>tgt.alias <i>"ElementDefinition-alias"</i><span style="color: navy">;</span>
src.min<span style="color: navy"><b> -> </b></span>tgt.min <i>"ElementDefinition-min"</i><span style="color: navy">;</span>
src.max<span style="color: navy"><b> -> </b></span>tgt.max <i>"ElementDefinition-max"</i><span style="color: navy">;</span>
src.base<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.base<b> as </b><span style="color: maroon">vt0</span><b> then</b><span style="color: navy"> {
</span> vs0.path<span style="color: navy"><b> -> </b></span>vt0.path <i>"base-path"</i><span style="color: navy">;</span>
vs0.min<span style="color: navy"><b> -> </b></span>vt0.min <i>"base-min"</i><span style="color: navy">;</span>
vs0.max<span style="color: navy"><b> -> </b></span>vt0.max <i>"base-max"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ElementDefinition-base"</i><span style="color: navy">;</span>
src.type<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.type<b> as </b><span style="color: maroon">vt0</span><b> then </b>type<span style="color: navy">(</span><span style="color: maroon">vs0</span><span style="color: navy">, </span><span style="color: maroon">vt0</span><span style="color: navy">)</span> <i>"ElementDefinition-type"</i><span style="color: navy">;</span>
src<b> where </b>path.contains('.').not() and src.type.empty() and src.contentReference.empty() and srcR.is(StructureDefinition)<span style="color: navy"><b> -> </b></span>tgt.type<b> as </b><span style="color: maroon">vt0</span><b> then</b><span style="color: navy"> {
</span> srcR.baseDefinition<b> as </b><span style="color: maroon">base</span><span style="color: navy"><b> -> </b></span>vt0.code = <span style="color: navy">(</span>base.substring(40)<span style="color: navy">)</span> <i>"type-code"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ElementDefinition-type-1st"</i><span style="color: navy">;</span>
src.contentReference<span style="color: navy"><b> -> </b></span>tgt.nameReference <i>"ElementDefinition-contentReference"</i><span style="color: navy">;</span>
src.defaultValue<span style="color: navy"><b> -> </b></span>tgt.defaultValue <i>"ElementDefinition-defaultValue"</i><span style="color: navy">;</span>
src.meaningWhenMissing<span style="color: navy"><b> -> </b></span>tgt.meaningWhenMissing <i>"ElementDefinition-meaningWhenMissing"</i><span style="color: navy">;</span>
src.example first<b> as </b><span style="color: maroon">exv</span><b> then</b><span style="color: navy"> {
</span> exv.value<span style="color: navy"><b> -> </b></span>tgt.example <i>"ElementDefinition-example-v"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ElementDefinition-example"</i><span style="color: navy">;</span>
src.fixed<span style="color: navy"><b> -> </b></span>tgt.fixed <i>"ElementDefinition-fixed"</i><span style="color: navy">;</span>
src.pattern<span style="color: navy"><b> -> </b></span>tgt.pattern <i>"ElementDefinition-pattern"</i><span style="color: navy">;</span>
src.minValue<span style="color: navy"><b> -> </b></span>tgt.minValue <i>"ElementDefinition-minValue"</i><span style="color: navy">;</span>
src.maxValue<span style="color: navy"><b> -> </b></span>tgt.maxValue <i>"ElementDefinition-maxValue"</i><span style="color: navy">;</span>
src.maxLength<span style="color: navy"><b> -> </b></span>tgt.maxLength <i>"ElementDefinition-maxLength"</i><span style="color: navy">;</span>
src.condition<span style="color: navy"><b> -> </b></span>tgt.condition <i>"ElementDefinition-condition"</i><span style="color: navy">;</span>
src.constraint<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.constraint<b> as </b><span style="color: maroon">vt0</span><b> then </b>constraint<span style="color: navy">(</span><span style="color: maroon">vs0</span><span style="color: navy">, </span><span style="color: maroon">vt0</span><span style="color: navy">)</span> <i>"ElementDefinition-constraint"</i><span style="color: navy">;</span>
src.mustSupport<span style="color: navy"><b> -> </b></span>tgt.mustSupport <i>"ElementDefinition-mustSupport"</i><span style="color: navy">;</span>
src.isModifier<span style="color: navy"><b> -> </b></span>tgt.isModifier <i>"ElementDefinition-isModifier"</i><span style="color: navy">;</span>
src.isSummary<span style="color: navy"><b> -> </b></span>tgt.isSummary <i>"ElementDefinition-isSummary"</i><span style="color: navy">;</span>
src.binding<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.binding<b> as </b><span style="color: maroon">vt0</span><b> then </b>binding<span style="color: navy">(</span><span style="color: maroon">vs0</span><span style="color: navy">, </span><span style="color: maroon">vt0</span><span style="color: navy">)</span> <i>"ElementDefinition-binding"</i><span style="color: navy">;</span>
src.mapping<b> as </b><span style="color: maroon">vs0</span><span style="color: navy"><b> -> </b></span>tgt.mapping<b> as </b><span style="color: maroon">vt0</span><b> then </b>mapping<span style="color: navy">(</span><span style="color: maroon">vs0</span><span style="color: navy">, </span><span style="color: maroon">vt0</span><span style="color: navy">)</span> <i>"ElementDefinition-mapping"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>edDiscriminator<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span>, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy">)</span><b> extends </b>Element<span style="color: navy"> {
</span> src.path<b> where </b>type = 'value'<span style="color: navy"><b> -> </b></span>tgt.discriminator <i>"binding-strength"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>binding<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span>, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy">)</span><b> extends </b>Element<span style="color: navy"> {
</span> src.strength<span style="color: navy"><b> -> </b></span>tgt.strength <i>"binding-strength"</i><span style="color: navy">;</span>
src.description<span style="color: navy"><b> -> </b></span>tgt.description <i>"binding-description"</i><span style="color: navy">;</span>
src.valueSet<span style="color: navy"><b> -> </b></span>tgt.valueSet <i>"binding-valueSet"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>type<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span>, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy">)</span><b> extends </b>Element<span style="color: navy"> {
</span> src.code<span style="color: navy"><b> -> </b></span>tgt.code <i>"type-code"</i><span style="color: navy">;</span>
src.profile<b> where </b>src.targetProfile.empty()<span style="color: navy"><b> -> </b></span>tgt.profile <i>"type-profile1"</i><span style="color: navy">;</span>
src.targetProfile<span style="color: navy"><b> -> </b></span>tgt.profile <i>"type-profile2"</i><span style="color: navy">;</span>
src.aggregation<span style="color: navy"><b> -> </b></span>tgt.aggregation <i>"type-aggregation"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>constraint<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span>, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy">)</span><b> extends </b>Element<span style="color: navy"> {
</span> src.key<span style="color: navy"><b> -> </b></span>tgt.key <i>"constraint-key"</i><span style="color: navy">;</span>
src.requirements<span style="color: navy"><b> -> </b></span>tgt.requirements <i>"constraint-requirements"</i><span style="color: navy">;</span>
src.severity<span style="color: navy"><b> -> </b></span>tgt.severity <i>"constraint-severity"</i><span style="color: navy">;</span>
src.human<span style="color: navy"><b> -> </b></span>tgt.human <i>"constraint-human"</i><span style="color: navy">;</span>
src.xpath<span style="color: navy"><b> -> </b></span>tgt.xpath <i>"constraint-xpath"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>mapping<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span>, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy">)</span><b> extends </b>Element<span style="color: navy"> {
</span> src.identity<span style="color: navy"><b> -> </b></span>tgt.identity <i>"mapping-identity"</i><span style="color: navy">;</span>
src.language<span style="color: navy"><b> -> </b></span>tgt.language <i>"mapping-language"</i><span style="color: navy">;</span>
src.map<span style="color: navy"><b> -> </b></span>tgt.map <i>"mapping-map"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="fhir"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
<valueInteger value="1">
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom">
<valueCanonical
value="http://hl7.org/fhir/extensions/ImplementationGuide/hl7.fhir.uv.xver"/>
</extension>
</valueInteger>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
<valueCode value="draft">
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom">
<valueCanonical
value="http://hl7.org/fhir/extensions/ImplementationGuide/hl7.fhir.uv.xver"/>
</extension>
</valueCode>
</extension>
<url value="http://hl7.org/fhir/StructureMap/ElementDefinition3to2"/>
<version value="0.1.0"/>
<name value="ElementDefinition3to2"/>
<title value="ElementDefinition Transforms: R3 to R2"/>
<status value="active"/>
<date value="2024-02-22T03:16:50+00:00"/>
<publisher value="HL7 International / FHIR Infrastructure"/>
<contact>
<telecom>
<system value="url"/>
<value value="http://www.hl7.org/Special/committees/fiwg"/>
</telecom>
</contact>
<description value="ElementDefinitionTransformsR3toR2"/>
<jurisdiction>
<coding>
<system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
<code value="001"/>
</coding>
</jurisdiction>
<structure>
<url value="http://hl7.org/fhir/3.0/ElementDefinition"/>
<mode value="source"/>
<alias value="ElementDefinition"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/1.0/ElementDefinition"/>
<mode value="target"/>
<alias value="ElementDefinitionR2"/>
</structure>
<import value="http://hl7.org/fhir/StructureMap/*3to2"/>
<group>
<name value="ElementDefinition"/>
<typeMode value="type-and-types"/>
<input>
<name value="srcR"/>
<type value="Resource"/>
<mode value="source"/>
</input>
<input>
<name value="src"/>
<type value="ElementDefinition"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="ElementDefinitionR2"/>
<mode value="target"/>
</input>
<rule>
<name value="ElementDefinition-extensions"/>
<source>
<context value="src"/>
<element value="extension"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="extension"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-path"/>
<source>
<context value="src"/>
<element value="path"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="path"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-name"/>
<source>
<context value="src"/>
<element value="sliceName"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="name"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-representation"/>
<source>
<context value="src"/>
<element value="representation"/>
<variable value="vvv"/>
<condition value="$this = 'xmlAttr'"/>
</source>
<target>
<context value="tgt"/>
<element value="representation"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-label"/>
<source>
<context value="src"/>
<element value="label"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="label"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="code"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-slicing"/>
<source>
<context value="src"/>
<element value="slicing"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="slicing"/>
<variable value="vt0"/>
</target>
<rule>
<name value="slicing-discriminator"/>
<source>
<context value="vs0"/>
<element value="discriminator"/>
<variable value="vd1"/>
</source>
<dependent>
<name value="edDiscriminator"/>
<parameter>
<valueId value="vd1"/>
</parameter>
<parameter>
<valueId value="vt0"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="slicing-description"/>
<source>
<context value="vs0"/>
<element value="description"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="description"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="slicing-ordered"/>
<source>
<context value="vs0"/>
<element value="ordered"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="ordered"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="slicing-rules"/>
<source>
<context value="vs0"/>
<element value="rules"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="rules"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</rule>
<rule>
<name value="ElementDefinition-short"/>
<source>
<context value="src"/>
<element value="short"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="short"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-definition"/>
<source>
<context value="src"/>
<element value="definition"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="definition"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-comments"/>
<source>
<context value="src"/>
<element value="comment"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="comments"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-requirements"/>
<source>
<context value="src"/>
<element value="requirements"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="requirements"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-alias"/>
<source>
<context value="src"/>
<element value="alias"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="alias"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-min"/>
<source>
<context value="src"/>
<element value="min"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="min"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-max"/>
<source>
<context value="src"/>
<element value="max"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="max"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-base"/>
<source>
<context value="src"/>
<element value="base"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="base"/>
<variable value="vt0"/>
</target>
<rule>
<name value="base-path"/>
<source>
<context value="vs0"/>
<element value="path"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="path"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="base-min"/>
<source>
<context value="vs0"/>
<element value="min"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="min"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="base-max"/>
<source>
<context value="vs0"/>
<element value="max"/>
<variable value="vvv"/>
</source>
<target>
<context value="vt0"/>
<element value="max"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</rule>
<rule>
<name value="ElementDefinition-type"/>
<source>
<context value="src"/>
<element value="type"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="type"/>
<variable value="vt0"/>
</target>
<dependent>
<name value="type"/>
<parameter>
<valueId value="vs0"/>
</parameter>
<parameter>
<valueId value="vt0"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-type-1st"/>
<source>
<context value="src"/>
<condition
value="path.contains('.').not() and src.type.empty() and src.contentReference.empty() and srcR.is(StructureDefinition)"/>
</source>
<target>
<context value="tgt"/>
<element value="type"/>
<variable value="vt0"/>
</target>
<rule>
<name value="type-code"/>
<source>
<context value="srcR"/>
<element value="baseDefinition"/>
<variable value="base"/>
</source>
<target>
<context value="vt0"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString value="base.substring(40)"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="ElementDefinition-contentReference"/>
<source>
<context value="src"/>
<element value="contentReference"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="nameReference"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-defaultValue"/>
<source>
<context value="src"/>
<element value="defaultValue"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="defaultValue"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-meaningWhenMissing"/>
<source>
<context value="src"/>
<element value="meaningWhenMissing"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="meaningWhenMissing"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-example"/>
<source>
<context value="src"/>
<element value="example"/>
<listMode value="first"/>
<variable value="exv"/>
</source>
<rule>
<name value="ElementDefinition-example-v"/>
<source>
<context value="exv"/>
<element value="value"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="example"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</rule>
<rule>
<name value="ElementDefinition-fixed"/>
<source>
<context value="src"/>
<element value="fixed"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="fixed"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-pattern"/>
<source>
<context value="src"/>
<element value="pattern"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="pattern"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-minValue"/>
<source>
<context value="src"/>
<element value="minValue"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="minValue"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-maxValue"/>
<source>
<context value="src"/>
<element value="maxValue"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="maxValue"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-maxLength"/>
<source>
<context value="src"/>
<element value="maxLength"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="maxLength"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-condition"/>
<source>
<context value="src"/>
<element value="condition"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="condition"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-constraint"/>
<source>
<context value="src"/>
<element value="constraint"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="constraint"/>
<variable value="vt0"/>
</target>
<dependent>
<name value="constraint"/>
<parameter>
<valueId value="vs0"/>
</parameter>
<parameter>
<valueId value="vt0"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-mustSupport"/>
<source>
<context value="src"/>
<element value="mustSupport"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="mustSupport"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-isModifier"/>
<source>
<context value="src"/>
<element value="isModifier"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="isModifier"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-isSummary"/>
<source>
<context value="src"/>
<element value="isSummary"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="isSummary"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-binding"/>
<source>
<context value="src"/>
<element value="binding"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="binding"/>
<variable value="vt0"/>
</target>
<dependent>
<name value="binding"/>
<parameter>
<valueId value="vs0"/>
</parameter>
<parameter>
<valueId value="vt0"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="ElementDefinition-mapping"/>
<source>
<context value="src"/>
<element value="mapping"/>
<variable value="vs0"/>
</source>
<target>
<context value="tgt"/>
<element value="mapping"/>
<variable value="vt0"/>
</target>
<dependent>
<name value="mapping"/>
<parameter>
<valueId value="vs0"/>
</parameter>
<parameter>
<valueId value="vt0"/>
</parameter>
</dependent>
</rule>
</group>
<group>
<name value="edDiscriminator"/>
<extends value="Element"/>
<input>
<name value="src"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<rule>
<name value="binding-strength"/>
<source>
<context value="src"/>
<element value="path"/>
<variable value="vvv"/>
<condition value="type = 'value'"/>
</source>
<target>
<context value="tgt"/>
<element value="discriminator"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</group>
<group>
<name value="binding"/>
<extends value="Element"/>
<input>
<name value="src"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<rule>
<name value="binding-strength"/>
<source>
<context value="src"/>
<element value="strength"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="strength"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="binding-description"/>
<source>
<context value="src"/>
<element value="description"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="description"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="binding-valueSet"/>
<source>
<context value="src"/>
<element value="valueSet"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="valueSet"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</group>
<group>
<name value="type"/>
<extends value="Element"/>
<input>
<name value="src"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<rule>
<name value="type-code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="code"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="type-profile1"/>
<source>
<context value="src"/>
<element value="profile"/>
<variable value="vvv"/>
<condition value="src.targetProfile.empty()"/>
</source>
<target>
<context value="tgt"/>
<element value="profile"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="type-profile2"/>
<source>
<context value="src"/>
<element value="targetProfile"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="profile"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="type-aggregation"/>
<source>
<context value="src"/>
<element value="aggregation"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="aggregation"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</group>
<group>
<name value="constraint"/>
<extends value="Element"/>
<input>
<name value="src"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<rule>
<name value="constraint-key"/>
<source>
<context value="src"/>
<element value="key"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="key"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="constraint-requirements"/>
<source>
<context value="src"/>
<element value="requirements"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="requirements"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="constraint-severity"/>
<source>
<context value="src"/>
<element value="severity"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="severity"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="constraint-human"/>
<source>
<context value="src"/>
<element value="human"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="human"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="constraint-xpath"/>
<source>
<context value="src"/>
<element value="xpath"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="xpath"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</group>
<group>
<name value="mapping"/>
<extends value="Element"/>
<input>
<name value="src"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<rule>
<name value="mapping-identity"/>
<source>
<context value="src"/>
<element value="identity"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="identity"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="mapping-language"/>
<source>
<context value="src"/>
<element value="language"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="language"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
<rule>
<name value="mapping-map"/>
<source>
<context value="src"/>
<element value="map"/>
<variable value="vvv"/>
</source>
<target>
<context value="tgt"/>
<element value="map"/>
<variable value="vvv"/>
<transform value="create"/>
</target>
<dependent>
<name value="DefaultMappingGroupAnonymousAlias"/>
<parameter>
<valueId value="vvv"/>
</parameter>
<parameter>
<valueId value="vvv"/>
</parameter>
</dependent>
</rule>
</group>
</StructureMap>