<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="CA-eReC-Appointment" />
  <url value="http://fhir.infoway-inforoute.ca/io/CA-pipeline-test/StructureDefinition/CA-eReC-Appointment" />
  <name value="Appointment" />
  <status value="draft" />
  <description value="The resource involves booking one (or a series) of appointment(s) between the patient and the practitioner(s) for a specific date/time. The encounter may be a scheduled referral or an econsult." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Appointment" />
  <baseDefinition value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/appointment-ca-core" />
  <derivation value="constraint" />
  <differential>
    <element id="Appointment.text">
      <path value="Appointment.text" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.status">
      <path value="Appointment.status" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.description">
      <path value="Appointment.description" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.start">
      <path value="Appointment.start" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.end">
      <path value="Appointment.end" />
      <comment value="𝗦𝗨𝗣𝗣𝗢𝗥𝗧: One of end or minutesDuration must be supported." />
    </element>
    <element id="Appointment.minutesDuration">
      <path value="Appointment.minutesDuration" />
      <comment value="𝗦𝗨𝗣𝗣𝗢𝗥𝗧: One of end or minutesDuration must be supported." />
    </element>
    <element id="Appointment.created">
      <path value="Appointment.created" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.comment">
      <path value="Appointment.comment" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.patientInstruction">
      <path value="Appointment.patientInstruction" />
      <comment value="If systems are capturing instructions to a patient independently from other comments, they SHOULD use the patientInstruction field." />
    </element>
    <element id="Appointment.basedOn">
      <path value="Appointment.basedOn" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.reference">
      <path value="Appointment.basedOn.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier">
      <path value="Appointment.basedOn.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier.use">
      <path value="Appointment.basedOn.identifier.use" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier.system">
      <path value="Appointment.basedOn.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier.value">
      <path value="Appointment.basedOn.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant">
      <path value="Appointment.participant" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.type">
      <path value="Appointment.participant.type" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor">
      <path value="Appointment.participant.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Location" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor.identifier">
      <path value="Appointment.participant.actor.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor.identifier.system">
      <path value="Appointment.participant.actor.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor.identifier.value">
      <path value="Appointment.participant.actor.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>