<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ca-on-seris-profile-Appointment" />
  <url value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-profile-Appointment" />
  <version value="1.0.1" />
  <name value="Appointment" />
  <title value="Appointment" />
  <status value="draft" />
  <date value="2023-03-06" />
  <publisher value="Ontario Health" />
  <contact>
    <name value="Ontario Health" />
    <telecom>
      <system value="url" />
      <value value="http://ontariohealth.ca/fhir/" />
    </telecom>
    <telecom>
      <system value="email" />
      <value value="some.email@ontariohealth.ca" />
    </telecom>
  </contact>
  <description value="A booking of a surgical healthcare procedure for a specific date/time." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="SERIS-MDS-Mapping" />
    <name value="SERIS MDS Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Appointment" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Appointment" />
  <derivation value="constraint" />
  <differential>
    <element id="Appointment.meta">
      <path value="Appointment.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.meta.profile">
      <path value="Appointment.meta.profile" />
      <comment value="#### **_` FOR SERIS USAGE: The meta.profile = http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-profile-Appointment|1.0.1 `_**&#xD;&#xA;&#xD;&#xA;It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.extension:cancellationDate">
      <path value="Appointment.extension" />
      <sliceName value="cancellationDate" />
      <short value="Cancellation Date" />
      <type>
        <code value="Extension" />
        <profile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-ext-cancellation-date" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Cancellation Date" />
      </mapping>
    </element>
    <element id="Appointment.extension:cancellationDate.url">
      <path value="Appointment.extension.url" />
      <fixedUri value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-ext-cancellation-date" />
    </element>
    <element id="Appointment.extension:reschedule">
      <path value="Appointment.extension" />
      <sliceName value="reschedule" />
      <type>
        <code value="Extension" />
        <profile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-ext-reschedule" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Appointment.extension:reschedule.url">
      <path value="Appointment.extension.url" />
      <fixedUri value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-ext-reschedule" />
    </element>
    <element id="Appointment.extension:reschedule.extension:rescheduleFlag">
      <path value="Appointment.extension.extension" />
      <sliceName value="rescheduleFlag" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Reschedule Flag" />
      </mapping>
    </element>
    <element id="Appointment.extension:reschedule.extension:rescheduleDate">
      <path value="Appointment.extension.extension" />
      <sliceName value="rescheduleDate" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Reschedule Date" />
      </mapping>
    </element>
    <element id="Appointment.identifier">
      <path value="Appointment.identifier" />
      <short value="Case Number" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Case Number" />
      </mapping>
    </element>
    <element id="Appointment.identifier.system">
      <path value="Appointment.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.identifier.value">
      <path value="Appointment.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.status">
      <path value="Appointment.status" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason">
      <path value="Appointment.cancelationReason" />
      <short value="Cancellation reason" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/surgery-cancellation-reason" />
      </binding>
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Cancellation Reason" />
      </mapping>
    </element>
    <element id="Appointment.cancelationReason.coding">
      <path value="Appointment.cancelationReason.coding" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/surgery-cancellation-reason" />
      </binding>
    </element>
    <element id="Appointment.cancelationReason.coding.system">
      <path value="Appointment.cancelationReason.coding.system" />
      <fixedUri value="http://ontariohealth.ca/fhir/CodeSystem/surgery-cancellation-reason" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.coding.code">
      <path value="Appointment.cancelationReason.coding.code" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/surgery-cancellation-reason" />
      </binding>
    </element>
    <element id="Appointment.cancelationReason.coding.display">
      <path value="Appointment.cancelationReason.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.text">
      <path value="Appointment.cancelationReason.text" />
      <short value="Cancellation reason description" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceCategory">
      <path value="Appointment.serviceCategory" />
      <short value="Surgeon service" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/hospital-service" />
      </binding>
    </element>
    <element id="Appointment.serviceCategory.coding">
      <path value="Appointment.serviceCategory.coding" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/hospital-service" />
      </binding>
    </element>
    <element id="Appointment.serviceCategory.coding.code">
      <path value="Appointment.serviceCategory.coding.code" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/hospital-service" />
      </binding>
    </element>
    <element id="Appointment.appointmentType">
      <path value="Appointment.appointmentType" />
      <short value="Patient type" />
    </element>
    <element id="Appointment.reasonReference">
      <path value="Appointment.reasonReference" />
      <short value="The surgical procedure for this appointment" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-profile-Procedure" />
        <aggregation value="bundled" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.reasonReference.reference">
      <path value="Appointment.reasonReference.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.supportingInformation">
      <path value="Appointment.supportingInformation" />
      <short value="supporting Observations" />
      <max value="1" />
    </element>
    <element id="Appointment.start">
      <path value="Appointment.start" />
      <mustSupport value="true" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Scheduled Start Time" />
      </mapping>
    </element>
    <element id="Appointment.end">
      <path value="Appointment.end" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.minutesDuration">
      <path value="Appointment.minutesDuration" />
      <short value="Estimated Case Duration" />
      <mustSupport value="true" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Estimated Case Duration" />
      </mapping>
    </element>
    <element id="Appointment.created">
      <path value="Appointment.created" />
      <short value="Booking Date" />
      <mustSupport value="true" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Booking Date" />
      </mapping>
    </element>
    <element id="Appointment.comment">
      <path value="Appointment.comment" />
      <short value="Notes on initial case scheduling" />
      <max value="0" />
      <mapping>
        <identity value="SERIS-MDS-Mapping" />
        <map value="Notes" />
      </mapping>
    </element>
    <element id="Appointment.participant">
      <path value="Appointment.participant" />
      <max value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.actor">
      <path value="Appointment.participant.actor" />
      <short value="the surgical patient or OR Room" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-seris-profile-Patient" />
      </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>