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

<StructureMap xmlns="http://hl7.org/fhir">
  <id value="Vpr2VAAppointment"/>
  <text>
    <status value="generated"/><div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap Vpr2VAAppointment</b></p><a name="Vpr2VAAppointment"> </a><a name="hcVpr2VAAppointment"> </a><pre class="fml">
<b>map</b><span style="color: navy"> &quot;</span>http://va.gov/fhir/StructureMap/Vpr2VAAppointment<span style="color: navy">&quot; = &quot;</span>Vpr2VAAppointment<span style="color: navy">&quot;

</span><b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-VprAppointment.html" title="VPR appointment">http://va.gov/fhir/StructureDefinition/VprAppointment</a><span style="color: navy">&quot; </span><b>alias </b>VprAppointment <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-VprDemographics.html" title="VPR demographics">http://va.gov/fhir/StructureDefinition/VprDemographics</a><span style="color: navy">&quot; </span><b>alias </b>VprDemographics <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-VAAppointment.html" title="VAAppointment">http://va.gov/fhir/StructureDefinition/VAAppointment</a><span style="color: navy">&quot; </span><b>alias </b>VAAppointment <b>as </b><b>target</b>

<b>group </b>map<span style="color: navy">(</span><b>source</b> <span style="color: maroon">appointment</span><span style="color: navy"> : </span>VprAppointment, <b>source</b> <span style="color: maroon">demographics</span><span style="color: navy"> : </span>VprDemographics, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>VAAppointment<span style="color: navy">)</span><b> &lt;&lt;type+&gt;&gt;</b><span style="color: navy"> {
</span>  appointment.apptStatus<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.patientClass<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.serviceCategory<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.apptStatus<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#booked'</span><span style="color: navy">;</span>
  appointment.patientClass<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#booked'</span><span style="color: navy">;</span>
  appointment.serviceCategory<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#booked'</span><span style="color: navy">;</span>
  appointment.apptStatus<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#arrived'</span><span style="color: navy">;</span>
  appointment.patientClass<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#arrived'</span><span style="color: navy">;</span>
  appointment.serviceCategory<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#arrived'</span><span style="color: navy">;</span>
  appointment.apptStatus<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#fulfilled'</span><span style="color: navy">;</span>
  appointment.patientClass<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#fulfilled'</span><span style="color: navy">;</span>
  appointment.serviceCategory<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.status = <span style="color: blue">'#fulfilled'</span><span style="color: navy">;</span>
  appointment.type<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span> tgt.extension<b> as </b><span style="color: maroon">e0</span><span style="color: navy">, </span> e0.url = <span style="color: blue">'http://va.gov/fhir/StructureDefinition/resource-serviceConnection'</span><span style="color: navy">, </span> e0.value = <span style="color: blue">'http://va.gov/fhir/CodeSystem/409.1#SC \&quot;Service Connected\&quot;'</span><span style="color: navy">, </span> e0.value = <span style="color: blue">'http://va.gov/fhir/CodeSystem/409.1#NSC \&quot;Not Service Connected\&quot;'</span><span style="color: navy">;</span>
  appointment.type<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span> tgt.appointmentType<b> as </b><span style="color: maroon">a0</span><span style="color: navy">, </span> a0.text = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.dateTime<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.start = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.id<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.start = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.visitString<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.start = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.clinicStop<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span> tgt.participant<b> as </b><span style="color: maroon">p0</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.actor = <span style="color: maroon">v</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">, </span> p0.status = <span style="color: blue">'#accepted'</span><span style="color: navy">;</span>
  appointment.clinicStop<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span> tgt.participant<b> as </b><span style="color: maroon">p0</span><span style="color: navy">, </span> p0.type<b> as </b><span style="color: maroon">t1</span><span style="color: navy">, </span> t1.coding<b> as </b><span style="color: maroon">c2</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">, </span> c2.code = <span style="color: blue">'#PART'</span><span style="color: navy">;</span>
  demographics.familyName<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span> tgt.participant<b> as </b><span style="color: maroon">p0</span><span style="color: navy">, </span> p0.actor<b> as </b><span style="color: maroon">a1</span><span style="color: navy">, </span> a1.display = <span style="color: maroon">v</span><span style="color: navy">, </span> a1.display = <span style="color: maroon">v</span><span style="color: navy">, </span> a1.display = <span style="color: maroon">v</span><span style="color: navy">;</span>
  appointment.type<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -&gt; </b></span>tgt.description = <span style="color: maroon">v</span><span style="color: navy">;</span>
<span style="color: navy">}

</span></pre></div>
  </text>
  <url value="http://va.gov/fhir/StructureMap/Vpr2VAAppointment"/>
  <version value="2.5.0"/>
  <name value="Vpr2VAAppointment"/>
  <status value="draft"/>
  <date value="2026-03-31T16:09:38+00:00"/>
  <publisher value="VA"/>
  <contact>
    <name value="VA"/>
    <telecom>
      <system value="url"/>
      <value value="https://www.va.gov"/>
    </telecom>
  </contact>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <structure>
    <url value="http://va.gov/fhir/StructureDefinition/VprAppointment"/>
    <mode value="source"/>
    <alias value="VprAppointment"/>
  </structure>
  <structure>
    <url value="http://va.gov/fhir/StructureDefinition/VprDemographics"/>
    <mode value="source"/>
    <alias value="VprDemographics"/>
  </structure>
  <structure>
    <url value="http://va.gov/fhir/StructureDefinition/VAAppointment"/>
    <mode value="target"/>
    <alias value="VAAppointment"/>
  </structure>
  <group>
    <name value="map"/>
    <typeMode value="type-and-types"/>
    <input>
      <name value="appointment"/>
      <type value="VprAppointment"/>
      <mode value="source"/>
    </input>
    <input>
      <name value="demographics"/>
      <type value="VprDemographics"/>
      <mode value="source"/>
    </input>
    <input>
      <name value="tgt"/>
      <type value="VAAppointment"/>
      <mode value="target"/>
    </input>
    <rule>
      <name value="apptStatus"/>
      <source>
        <context value="appointment"/>
        <element value="apptStatus"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="patientClass"/>
      <source>
        <context value="appointment"/>
        <element value="patientClass"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="serviceCategory"/>
      <source>
        <context value="appointment"/>
        <element value="serviceCategory"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="apptStatus"/>
      <source>
        <context value="appointment"/>
        <element value="apptStatus"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#booked"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="patientClass"/>
      <source>
        <context value="appointment"/>
        <element value="patientClass"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#booked"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="serviceCategory"/>
      <source>
        <context value="appointment"/>
        <element value="serviceCategory"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#booked"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="apptStatus"/>
      <source>
        <context value="appointment"/>
        <element value="apptStatus"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#arrived"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="patientClass"/>
      <source>
        <context value="appointment"/>
        <element value="patientClass"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#arrived"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="serviceCategory"/>
      <source>
        <context value="appointment"/>
        <element value="serviceCategory"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#arrived"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="apptStatus"/>
      <source>
        <context value="appointment"/>
        <element value="apptStatus"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#fulfilled"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="patientClass"/>
      <source>
        <context value="appointment"/>
        <element value="patientClass"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#fulfilled"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="serviceCategory"/>
      <source>
        <context value="appointment"/>
        <element value="serviceCategory"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#fulfilled"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="type"/>
      <source>
        <context value="appointment"/>
        <element value="type"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="extension"/>
        <variable value="e0"/>
      </target>
      <target>
        <context value="e0"/>
        <contextType value="variable"/>
        <element value="url"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="http://va.gov/fhir/StructureDefinition/resource-serviceConnection"/>
        </parameter>
      </target>
      <target>
        <context value="e0"/>
        <contextType value="variable"/>
        <element value="value"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="http://va.gov/fhir/CodeSystem/409.1#SC &quot;Service Connected&quot;"/>
        </parameter>
      </target>
      <target>
        <context value="e0"/>
        <contextType value="variable"/>
        <element value="value"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="http://va.gov/fhir/CodeSystem/409.1#NSC &quot;Not Service Connected&quot;"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="type"/>
      <source>
        <context value="appointment"/>
        <element value="type"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="appointmentType"/>
        <variable value="a0"/>
      </target>
      <target>
        <context value="a0"/>
        <contextType value="variable"/>
        <element value="text"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="dateTime"/>
      <source>
        <context value="appointment"/>
        <element value="dateTime"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="start"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="id"/>
      <source>
        <context value="appointment"/>
        <element value="id"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="start"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="visitString"/>
      <source>
        <context value="appointment"/>
        <element value="visitString"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="start"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="clinicStop"/>
      <source>
        <context value="appointment"/>
        <element value="clinicStop"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="participant"/>
        <variable value="p0"/>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="status"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#accepted"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="clinicStop"/>
      <source>
        <context value="appointment"/>
        <element value="clinicStop"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="participant"/>
        <variable value="p0"/>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="type"/>
        <variable value="t1"/>
      </target>
      <target>
        <context value="t1"/>
        <contextType value="variable"/>
        <element value="coding"/>
        <variable value="c2"/>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
      <target>
        <context value="c2"/>
        <contextType value="variable"/>
        <element value="code"/>
        <transform value="copy"/>
        <parameter>
          <valueString value="#PART"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="familyName"/>
      <source>
        <context value="demographics"/>
        <element value="familyName"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="participant"/>
        <variable value="p0"/>
      </target>
      <target>
        <context value="p0"/>
        <contextType value="variable"/>
        <element value="actor"/>
        <variable value="a1"/>
      </target>
      <target>
        <context value="a1"/>
        <contextType value="variable"/>
        <element value="display"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="a1"/>
        <contextType value="variable"/>
        <element value="display"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
      <target>
        <context value="a1"/>
        <contextType value="variable"/>
        <element value="display"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
    <rule>
      <name value="type"/>
      <source>
        <context value="appointment"/>
        <element value="type"/>
        <variable value="v"/>
      </source>
      <target>
        <context value="tgt"/>
        <contextType value="variable"/>
        <element value="description"/>
        <transform value="copy"/>
        <parameter>
          <valueId value="v"/>
        </parameter>
      </target>
    </rule>
  </group>
</StructureMap>