<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="timerbeeappointment-profile" />
  <url value="http://fhir.xt.dev/StructureDefinition/TimerbeeAppointment" />
  <version value="1.0.1" />
  <name value="TimerbeeAppointment" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2024-10-31T09:26:38.5213874+00:00" />
  <publisher value="x-tention Informationstechnologie GmbH" />
  <contact>
    <telecom>
      <system value="email" />
      <value value="fhir.profiling@x-tention.com" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="An appointment that was booked online in the patient portal with Timerbee as middleware." />
  <copyright value="x-tention Informationstechnologie GmbH" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Appointment" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Appointment" />
  <derivation value="constraint" />
  <differential>
    <element id="Appointment.id">
      <path value="Appointment.id" />
      <max value="0" />
    </element>
    <element id="Appointment.meta">
      <path value="Appointment.meta" />
      <max value="0" />
    </element>
    <element id="Appointment.implicitRules">
      <path value="Appointment.implicitRules" />
      <max value="0" />
    </element>
    <element id="Appointment.language">
      <path value="Appointment.language" />
      <max value="0" />
    </element>
    <element id="Appointment.text">
      <path value="Appointment.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained">
      <path value="Appointment.contained" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="id" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Appointment.contained:timerbeePurpose">
      <path value="Appointment.contained" />
      <sliceName value="timerbeePurpose" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Resource" />
        <profile value="http://hl7.org/fhir/StructureDefinition/Procedure" />
      </type>
    </element>
    <element id="Appointment.contained:timerbeePurpose.id">
      <path value="Appointment.contained.id" />
      <definition value="There should be always a fix value &quot;1&quot; in the id for this resource." />
      <min value="1" />
      <fixedString value="1" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.meta">
      <path value="Appointment.contained.meta" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.implicitRules">
      <path value="Appointment.contained.implicitRules" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.language">
      <path value="Appointment.contained.language" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.text">
      <path value="Appointment.contained.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.contained">
      <path value="Appointment.contained.contained" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.identifier">
      <path value="Appointment.contained.identifier" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.instantiatesCanonical">
      <path value="Appointment.contained.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.instantiatesUri">
      <path value="Appointment.contained.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.basedOn">
      <path value="Appointment.contained.basedOn" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.partOf">
      <path value="Appointment.contained.partOf" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.status">
      <path value="Appointment.contained.status" />
      <short value="unknown" />
      <definition value="A code specifying the state of the procedure. Only use &quot;unknown&quot;. Other statuses are not supported." />
    </element>
    <element id="Appointment.contained:timerbeePurpose.statusReason">
      <path value="Appointment.contained.statusReason" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category">
      <path value="Appointment.contained.category" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://snomed.info/sct" />
      </binding>
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.id">
      <path value="Appointment.contained.category.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding">
      <path value="Appointment.contained.category.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.id">
      <path value="Appointment.contained.category.coding.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.system">
      <path value="Appointment.contained.category.coding.system" />
      <definition value="Use http://snomed.info/sct" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.version">
      <path value="Appointment.contained.category.coding.version" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.code">
      <path value="Appointment.contained.category.coding.code" />
      <min value="1" />
      <fixedCode value="11429006" />
      <binding>
        <strength value="required" />
        <valueSet value="http://snomed.info/sct" />
      </binding>
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.display">
      <path value="Appointment.contained.category.coding.display" />
      <definition value="A type of the appointment. Use &quot;Consultation&quot; for contained &quot;Procedure&quot; in tis resource." />
      <min value="1" />
      <fixedString value="Consultation" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.coding.userSelected">
      <path value="Appointment.contained.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.category.text">
      <path value="Appointment.contained.category.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code">
      <path value="Appointment.contained.code" />
      <min value="1" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.id">
      <path value="Appointment.contained.code.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding">
      <path value="Appointment.contained.code.coding" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.id">
      <path value="Appointment.contained.code.coding.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.system">
      <path value="Appointment.contained.code.coding.system" />
      <short value="Primary system URI" />
      <definition value="The URI of the external system where the appointment came from." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.version">
      <path value="Appointment.contained.code.coding.version" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.code">
      <path value="Appointment.contained.code.coding.code" />
      <short value="Timerbee Purpose System ID" />
      <definition value="In Timerbee it will be used as purpose System-ID preceeded by the Resource Manager name. Example: T1|ANOT40" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.display">
      <path value="Appointment.contained.code.coding.display" />
      <short value="Timerbee purpose name" />
      <definition value="The nema of purpose in Timerbee that displayed to the patient as appointment type/procedure." />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.coding.userSelected">
      <path value="Appointment.contained.code.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.code.text">
      <path value="Appointment.contained.code.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject">
      <path value="Appointment.contained.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <aggregation value="referenced" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.id">
      <path value="Appointment.contained.subject.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.reference">
      <path value="Appointment.contained.subject.reference" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.type">
      <path value="Appointment.contained.subject.type" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier">
      <path value="Appointment.contained.subject.identifier" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.id">
      <path value="Appointment.contained.subject.identifier.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.use">
      <path value="Appointment.contained.subject.identifier.use" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.type">
      <path value="Appointment.contained.subject.identifier.type" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.system">
      <path value="Appointment.contained.subject.identifier.system" />
      <short value="OehS account patient namespace" />
      <definition value="Account patient namespace. The format is in urn:oid." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.value">
      <path value="Appointment.contained.subject.identifier.value" />
      <short value="Account patient id" />
      <definition value="Account patient id from the patient portal." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.period">
      <path value="Appointment.contained.subject.identifier.period" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.identifier.assigner">
      <path value="Appointment.contained.subject.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.subject.display">
      <path value="Appointment.contained.subject.display" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.encounter">
      <path value="Appointment.contained.encounter" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.performed[x]">
      <path value="Appointment.contained.performed[x]" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.recorder">
      <path value="Appointment.contained.recorder" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.asserter">
      <path value="Appointment.contained.asserter" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.performer">
      <path value="Appointment.contained.performer" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.location">
      <path value="Appointment.contained.location" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.reasonCode">
      <path value="Appointment.contained.reasonCode" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.reasonReference">
      <path value="Appointment.contained.reasonReference" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.bodySite">
      <path value="Appointment.contained.bodySite" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.outcome">
      <path value="Appointment.contained.outcome" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.report">
      <path value="Appointment.contained.report" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.complication">
      <path value="Appointment.contained.complication" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.complicationDetail">
      <path value="Appointment.contained.complicationDetail" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.followUp">
      <path value="Appointment.contained.followUp" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.note">
      <path value="Appointment.contained.note" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.focalDevice">
      <path value="Appointment.contained.focalDevice" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.usedReference">
      <path value="Appointment.contained.usedReference" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeePurpose.usedCode">
      <path value="Appointment.contained.usedCode" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization">
      <path value="Appointment.contained" />
      <sliceName value="timerbeeResourceOrganization" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Resource" />
        <profile value="http://hl7.org/fhir/StructureDefinition/Location" />
      </type>
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.id">
      <path value="Appointment.contained.id" />
      <min value="1" />
      <fixedString value="2" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.meta">
      <path value="Appointment.contained.meta" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.implicitRules">
      <path value="Appointment.contained.implicitRules" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.language">
      <path value="Appointment.contained.language" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.text">
      <path value="Appointment.contained.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.contained">
      <path value="Appointment.contained.contained" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier">
      <path value="Appointment.contained.identifier" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.id">
      <path value="Appointment.contained.identifier.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.use">
      <path value="Appointment.contained.identifier.use" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.type">
      <path value="Appointment.contained.identifier.type" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.system">
      <path value="Appointment.contained.identifier.system" />
      <short value="ID System URI of Resource Manager" />
      <definition value="ID System URI defined in Timerbee Resource Manager." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.value">
      <path value="Appointment.contained.identifier.value" />
      <short value="Timerbee Resource System ID" />
      <definition value="In Timerbee it will be used as resource System-ID preceeded by the Resource Manager name. Example: T1|0000000142" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.period">
      <path value="Appointment.contained.identifier.period" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.identifier.assigner">
      <path value="Appointment.contained.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.status">
      <path value="Appointment.contained.status" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.operationalStatus">
      <path value="Appointment.contained.operationalStatus" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.name">
      <path value="Appointment.contained.name" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.alias">
      <path value="Appointment.contained.alias" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.description">
      <path value="Appointment.contained.description" />
      <short value="Timerbee resource name" />
      <definition value="The name of the resource in Timerbee, which is booked for this appointment." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.mode">
      <path value="Appointment.contained.mode" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.type">
      <path value="Appointment.contained.type" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.telecom">
      <path value="Appointment.contained.telecom" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.address">
      <path value="Appointment.contained.address" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.physicalType">
      <path value="Appointment.contained.physicalType" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.position">
      <path value="Appointment.contained.position" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.managingOrganization">
      <path value="Appointment.contained.managingOrganization" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.partOf">
      <path value="Appointment.contained.partOf" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.hoursOfOperation">
      <path value="Appointment.contained.hoursOfOperation" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.availabilityExceptions">
      <path value="Appointment.contained.availabilityExceptions" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourceOrganization.endpoint">
      <path value="Appointment.contained.endpoint" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson">
      <path value="Appointment.contained" />
      <sliceName value="timerbeeResourcePerson" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Resource" />
        <profile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
      </type>
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.id">
      <path value="Appointment.contained.id" />
      <min value="1" />
      <fixedString value="2" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.meta">
      <path value="Appointment.contained.meta" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.implicitRules">
      <path value="Appointment.contained.implicitRules" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.language">
      <path value="Appointment.contained.language" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.text">
      <path value="Appointment.contained.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.contained">
      <path value="Appointment.contained.contained" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier">
      <path value="Appointment.contained.identifier" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.id">
      <path value="Appointment.contained.identifier.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.use">
      <path value="Appointment.contained.identifier.use" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.type">
      <path value="Appointment.contained.identifier.type" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.type.id">
      <path value="Appointment.contained.identifier.type.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.type.coding">
      <path value="Appointment.contained.identifier.type.coding" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.system">
      <path value="Appointment.contained.identifier.system" />
      <short value="ID System URI of Resource Manager" />
      <definition value="ID System URI defined in Timerbee Resource Manager." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.value">
      <path value="Appointment.contained.identifier.value" />
      <short value="Timerbee Resource System ID" />
      <definition value="In Timerbee it will be used as resource System-ID preceeded by the Resource Manager name. Example: T1|0000000142" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.period">
      <path value="Appointment.contained.identifier.period" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.identifier.assigner">
      <path value="Appointment.contained.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.active">
      <path value="Appointment.contained.active" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name">
      <path value="Appointment.contained.name" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.id">
      <path value="Appointment.contained.name.id" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.use">
      <path value="Appointment.contained.name.use" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.text">
      <path value="Appointment.contained.name.text" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.family">
      <path value="Appointment.contained.name.family" />
      <short value="Timerbee resource name" />
      <definition value="The name of the resource in Timerbee, which would be displayed to the patient." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.given">
      <path value="Appointment.contained.name.given" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.prefix">
      <path value="Appointment.contained.name.prefix" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.name.suffix">
      <path value="Appointment.contained.name.suffix" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.telecom">
      <path value="Appointment.contained.telecom" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.address">
      <path value="Appointment.contained.address" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.gender">
      <path value="Appointment.contained.gender" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.birthDate">
      <path value="Appointment.contained.birthDate" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.photo">
      <path value="Appointment.contained.photo" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.qualification">
      <path value="Appointment.contained.qualification" />
      <max value="0" />
    </element>
    <element id="Appointment.contained:timerbeeResourcePerson.communication">
      <path value="Appointment.contained.communication" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier">
      <path value="Appointment.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="use" />
        </discriminator>
        <ordered value="false" />
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID">
      <path value="Appointment.identifier" />
      <sliceName value="timerbeeAppointmentID" />
      <short value="Ids created by Timerbee" />
      <max value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.id">
      <path value="Appointment.identifier.id" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.use">
      <path value="Appointment.identifier.use" />
      <definition value="This is the Appointment ID, which is given by Timerbee. Use &quot;official&quot; in &quot;use&quot;." />
      <min value="1" />
      <fixedCode value="official" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.type">
      <path value="Appointment.identifier.type" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.system">
      <path value="Appointment.identifier.system" />
      <short value="Timerbee's namespace for the identifier value" />
      <definition value="The namespace is in urn:oid format." />
      <min value="1" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.value">
      <path value="Appointment.identifier.value" />
      <min value="1" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.period">
      <path value="Appointment.identifier.period" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:timerbeeAppointmentID.assigner">
      <path value="Appointment.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID">
      <path value="Appointment.identifier" />
      <sliceName value="otherAppointmentID" />
      <short value="Other Appointment IDs" />
      <definition value="Appointment IDs issued by other primary systems, e.g. such as HIS-System, and not by Orcherstra eHealth Suite" />
      <max value="1" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.use">
      <path value="Appointment.identifier.use" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.type">
      <path value="Appointment.identifier.type" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.system">
      <path value="Appointment.identifier.system" />
      <definition value="The namespace is in urn:oid format." />
      <min value="1" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.value">
      <path value="Appointment.identifier.value" />
      <min value="1" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.period">
      <path value="Appointment.identifier.period" />
      <max value="0" />
    </element>
    <element id="Appointment.identifier:otherAppointmentID.assigner">
      <path value="Appointment.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Appointment.status">
      <path value="Appointment.status" />
      <short value="proposed | booked | cancelled" />
      <definition value="The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. Only use &quot;proposed&quot;,&quot;booked&quot; and &quot;cancelled&quot;. Other statuses are not supported." />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason">
      <path value="Appointment.cancelationReason" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceCategory">
      <path value="Appointment.serviceCategory" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceType">
      <path value="Appointment.serviceType" />
      <definition value="The specific service that is to be performed during this appointment. This is the appointment type that was booked by the patient/portal user/doctor." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.id">
      <path value="Appointment.serviceType.id" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceType.coding">
      <path value="Appointment.serviceType.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.serviceType.coding.id">
      <path value="Appointment.serviceType.coding.id" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceType.coding.system">
      <path value="Appointment.serviceType.coding.system" />
      <short value="Primary system URI" />
      <definition value="The URI of the external system where the appointment came from." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.version">
      <path value="Appointment.serviceType.coding.version" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceType.coding.code">
      <path value="Appointment.serviceType.coding.code" />
      <short value="Appointment name in external system" />
      <definition value="This is the name of the appointment type that is used in the external system, e.g. in HIS-system such as SAP this is the Dispotyp name." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.display">
      <path value="Appointment.serviceType.coding.display" />
      <definition value="A representation of the appointment type that would be displayed to the patient." />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.serviceType.coding.userSelected">
      <path value="Appointment.serviceType.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Appointment.serviceType.text">
      <path value="Appointment.serviceType.text" />
      <max value="0" />
    </element>
    <element id="Appointment.specialty">
      <path value="Appointment.specialty" />
      <max value="0" />
    </element>
    <element id="Appointment.appointmentType">
      <path value="Appointment.appointmentType" />
      <max value="0" />
    </element>
    <element id="Appointment.reasonCode">
      <path value="Appointment.reasonCode" />
      <max value="0" />
    </element>
    <element id="Appointment.reasonReference">
      <path value="Appointment.reasonReference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Procedure" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Appointment.priority">
      <path value="Appointment.priority" />
      <max value="0" />
    </element>
    <element id="Appointment.description">
      <path value="Appointment.description" />
      <short value="Appointment type" />
      <definition value="Description shows the appointment type, which was booked and displayed to the patient/portal user." />
      <min value="1" />
    </element>
    <element id="Appointment.supportingInformation">
      <path value="Appointment.supportingInformation" />
      <max value="0" />
    </element>
    <element id="Appointment.start">
      <path value="Appointment.start" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.end">
      <path value="Appointment.end" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.minutesDuration">
      <path value="Appointment.minutesDuration" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.slot">
      <path value="Appointment.slot" />
      <max value="0" />
    </element>
    <element id="Appointment.created">
      <path value="Appointment.created" />
      <max value="0" />
    </element>
    <element id="Appointment.comment">
      <path value="Appointment.comment" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.patientInstruction">
      <path value="Appointment.patientInstruction" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.basedOn">
      <path value="Appointment.basedOn" />
      <max value="0" />
    </element>
    <element id="Appointment.participant">
      <path value="Appointment.participant" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.coding.system" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="type.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.type.coding">
      <path value="Appointment.participant.type.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant.type.coding.system">
      <path value="Appointment.participant.type.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" />
      </binding>
    </element>
    <element id="Appointment.participant.type.coding.code">
      <path value="Appointment.participant.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" />
      </binding>
    </element>
    <element id="Appointment.participant.actor">
      <path value="Appointment.participant.actor" />
      <max value="0" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.participant.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.participant.status">
      <path value="Appointment.participant.status" />
      <definition value="Participation status of the actor. The status schould be either &quot;accepted&quot; or &quot;declined&quot;. Other statuses are not supported." />
      <mustSupport value="false" />
    </element>
    <element id="Appointment.participant:patientParticipant">
      <path value="Appointment.participant" />
      <sliceName value="patientParticipant" />
      <short value="Patients involved in appointment" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.participant:patientParticipant.id">
      <path value="Appointment.participant.id" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type">
      <path value="Appointment.participant.type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.id">
      <path value="Appointment.participant.type.id" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding">
      <path value="Appointment.participant.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.id">
      <path value="Appointment.participant.type.coding.id" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.system">
      <path value="Appointment.participant.type.coding.system" />
      <comment value="Only use the fixed value for this system, defined above." />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.version">
      <path value="Appointment.participant.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.code">
      <path value="Appointment.participant.type.coding.code" />
      <min value="1" />
      <fixedCode value="PART" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.display">
      <path value="Appointment.participant.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.coding.userSelected">
      <path value="Appointment.participant.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.type.text">
      <path value="Appointment.participant.type.text" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.actor">
      <path value="Appointment.participant.actor" />
      <short value="Patient/PatientID from CDS" />
      <definition value="This is a reference for the patient, participating in the appointment, and his patient ID from Orchestra eHealth Suite Clinical Data Service." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
    </element>
    <element id="Appointment.participant:patientParticipant.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <min value="1" />
    </element>
    <element id="Appointment.participant:patientParticipant.actor.type">
      <path value="Appointment.participant.actor.type" />
      <fixedUri value="Patient" />
    </element>
    <element id="Appointment.participant:patientParticipant.required">
      <path value="Appointment.participant.required" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:patientParticipant.status">
      <path value="Appointment.participant.status" />
      <definition value="Participation status of the actor. The status schould be either &quot;accepted&quot; or &quot;declined&quot;. Other statuses are not supported." />
    </element>
    <element id="Appointment.participant:patientParticipant.period">
      <path value="Appointment.participant.period" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant">
      <path value="Appointment.participant" />
      <sliceName value="healthcareServiceParticipant" />
      <short value="HealthcareService involved in appointment" />
      <definition value="This is the reference of healthcare service, involved in the appointment." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.coding.system">
      <path value="Appointment.participant.type.coding.system" />
      <comment value="Only use the fixed value for this system, defined above." />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.coding.version">
      <path value="Appointment.participant.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.coding.code">
      <path value="Appointment.participant.type.coding.code" />
      <comment value="Only use the fixed value for this code, defined above." />
      <min value="1" />
      <fixedCode value="SPRF" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.coding.display">
      <path value="Appointment.participant.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.coding.userSelected">
      <path value="Appointment.participant.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.type.text">
      <path value="Appointment.participant.type.text" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.actor">
      <path value="Appointment.participant.actor" />
      <short value="Person/Location/HealthcareService or Device" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/HealthcareService" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Location" />
      </type>
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <min value="1" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.required">
      <path value="Appointment.participant.required" />
      <max value="0" />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.status">
      <path value="Appointment.participant.status" />
      <definition value="Participation status of the actor. The status schould be either &quot;accepted&quot; or &quot;declined&quot;. Other statuses are not supported." />
    </element>
    <element id="Appointment.participant:healthcareServiceParticipant.period">
      <path value="Appointment.participant.period" />
      <max value="0" />
    </element>
    <element id="Appointment.requestedPeriod">
      <path value="Appointment.requestedPeriod" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>