<?xml version="1.0" encoding="UTF-8"?>

<StructureMap xmlns="http://hl7.org/fhir" resourceDefinition="http://hl7.org/fhir/StructureDefinition/StructureMap|0.1.0">
  <text>
    <status value="generated"/><div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap TargetListModes</b></p><a name="TargetListModes"> </a><a name="hcTargetListModes"> </a><pre class="fml">
<span style="color: #cc00cc">/// <b>url</b> = </span><span style="color: blue">'http://hl7.org/fhir/uv/mapping-language/StructureMap/TargetListModes'</span>
<span style="color: #cc00cc">/// <b>name</b> = </span><span style="color: blue">'TargetListModes'</span>
<span style="color: #cc00cc">/// <b>status</b> = </span><span style="color: blue">'active'</span>
<span style="color: #cc00cc">/// <b>description</b> = </span><span style="color: blue">'Example demonstrating target list mode: share'</span>

<b>uses</b><span style="color: navy"> &quot;</span><a href="http://hl7.org/fhir/6.0.0-ballot5/patient.html" title="Patient">http://hl7.org/fhir/StructureDefinition/Patient</a><span style="color: navy">&quot; </span><b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> &quot;</span><a href="http://hl7.org/fhir/6.0.0-ballot5/patient.html" title="Patient">http://hl7.org/fhir/StructureDefinition/Patient</a><span style="color: navy">&quot; </span><b>as </b><b>target</b>

<b>group </b>TargetListModes<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Patient<span style="color: navy">)</span><span style="color: navy"> {
</span>  src.id<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.id = <span style="color: maroon">v</span> <i>&quot;r0&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Create or reuse the HumanName shared under the label &quot;firstName&quot;.</span>
  src.name<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.name<b> as </b><span style="color: maroon">tn</span> <b>share</b> <b>firstName</b><b> then</b><span style="color: navy"> {
</span>    v.family<b> as </b><span style="color: maroon">f</span><span style="color: navy"><b> -&gt; </b></span>tn.family = <span style="color: maroon">f</span> <i>&quot;r1&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">}</span> <i>&quot;r2&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">share a single target element across multiple rule applications</span>
  src.identifier<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.name<b> as </b><span style="color: maroon">tn</span> <b>share</b> <b>firstName</b><b> then</b><span style="color: navy"> {
</span>    v.value<b> as </b><span style="color: maroon">val</span><span style="color: navy"><b> -&gt; </b></span>tn.text = <span style="color: maroon">val</span> <i>&quot;r3&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">}</span> <i>&quot;r4&quot;</i><span style="color: navy">;</span>
<span style="color: navy">}

</span></pre></div>
  </text>
  <url value="http://hl7.org/fhir/uv/mapping-language/StructureMap/TargetListModes"/>
  <name value="TargetListModes"/>
  <status value="active"/>
  <description value="Example demonstrating target list mode: share"/>
  <structure>
    <url value="http://hl7.org/fhir/StructureDefinition/Patient"/>
    <mode value="source"/>
  </structure>
  <structure>
    <url value="http://hl7.org/fhir/StructureDefinition/Patient"/>
    <mode value="target"/>
  </structure>
  <group>
    <name value="TargetListModes"/>
    <input>
      <mode value="source"/>
      <name value="src"/>
      <type value="Patient"/>
    </input>
    <input>
      <mode value="target"/>
      <name value="tgt"/>
      <type value="Patient"/>
    </input>
    <rule>
      <source>
        <context value="src"/>
        <element value="id"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <element value="id"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <name value="r0"/>
    </rule>
    <rule>
      <source>
        <context value="src"/>
        <element value="name"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <element value="name"/>
        <variable value="tn"/>
        <listMode value="share"/>
        <listRuleId value="firstName"/>
      </target>
      <rule>
        <source>
          <context value="v"/>
          <element value="family"/>
          <variable value="f"/>
        </source>
        <target>
          <context value="tn"/>
          <element value="family"/>
          <transform value="copy"/>
          <parameter>
            <valueId value="f"/>
          </parameter>
        </target>
        <name value="r1"/>
      </rule>
      <documentation value="Create or reuse the HumanName shared under the label &quot;firstName&quot;."/>
      <name value="r2"/>
    </rule>
    <rule>
      <source>
        <context value="src"/>
        <element value="identifier"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <element value="name"/>
        <variable value="tn"/>
        <listMode value="share"/>
        <listRuleId value="firstName"/>
      </target>
      <rule>
        <source>
          <context value="v"/>
          <element value="value"/>
          <variable value="val"/>
        </source>
        <target>
          <context value="tn"/>
          <element value="text"/>
          <transform value="copy"/>
          <parameter>
            <valueId value="val"/>
          </parameter>
        </target>
        <name value="r3"/>
      </rule>
      <documentation value="share a single target element across multiple rule applications"/>
      <name value="r4"/>
    </rule>
  </group>
  <id value="TargetListModes"/>
  <language value="en"/>
</StructureMap>