<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fr-availability-time" />
  <url value="http://interopsante.org/fhir/StructureDefinition/FrScheduleAvailabiltyTime" />
  <version value="1.0.1" />
  <name value="FrScheduleAvailabiltyTime" />
  <status value="active" />
  <date value="2022-10-20" />
  <publisher value="InteropSanté" />
  <contact>
    <name value="InteropSanté" />
    <telecom>
      <system value="email" />
      <value value="fhir@interopsante.org" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="This extension specifies a list of periods of time (recurrent or not). It specifies the type of Schedule (busy-unavailable|free), the identifier of the period, the period with a possibly recurrence rule, the date of creation of the period and the priority of this period | Cette extension permet de préciser une liste de période de temps (récurrentes ou non). Elle spécifie le type de Schedule (busy-unavailable|free), l'identifiant de la période, la période (récurrente ou non avec une règle de récurrence dans le cas d'une période récurrente, la date de création de la période et une priorité." />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <context>
    <type value="element" />
    <expression value="Schedule" />
  </context>
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <differential>
    <element id="Extension.extension">
      <path value="Extension.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Extension.extension:type">
      <path value="Extension.extension" />
      <sliceName value="type" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://interopsante.org/fhir/ValueSet/fr-schedule-type" />
      </binding>
    </element>
    <element id="Extension.extension:type.url">
      <path value="Extension.extension.url" />
      <fixedUri value="type" />
    </element>
    <element id="Extension.extension:type.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="extensible" />
        <valueSet value="http://interopsante.org/fhir/ValueSet/fr-schedule-type" />
      </binding>
    </element>
    <element id="Extension.extension:type.value[x].system">
      <path value="Extension.extension.value[x].system" />
      <fixedUri value="http://interopsante.org/fhir/CodeSystem/fr-schedule-type" />
    </element>
    <element id="Extension.extension:rrule">
      <path value="Extension.extension" />
      <sliceName value="rrule" />
      <short value="Recurrent caracteristic of the Schedule | Caractère récurrent du Schedule" />
      <definition value="Specification of the recurrent periods | Spécifications des périodes récurrentes&#xD;&#xA;the element's value sets come from iCalendar | les Jdv des éléments de rrule proviennent de iCalendar" />
      <max value="1" />
    </element>
    <element id="Extension.extension:rrule.extension">
      <path value="Extension.extension.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Extension.extension:rrule.extension:freq">
      <path value="Extension.extension.extension" />
      <sliceName value="freq" />
      <short value="The value set comes from iCalendar | Le jeu de valeur est issu de iCalendar" />
      <definition value="Identifies the type of recurrence rule (year, month, day, hour, minute, seconde) | Identifie le type de récurrence&#xD;&#xA;The value set comes from iCalendar | Le jeu de valeur est issu de iCalendar" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://interopsante.org/fhir/ValueSet/fr-availability-time-rule" />
      </binding>
    </element>
    <element id="Extension.extension:rrule.extension:freq.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="freq" />
    </element>
    <element id="Extension.extension:rrule.extension:freq.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="http://interopsante.org/fhir/ValueSet/fr-availability-time-rule" />
      </binding>
    </element>
    <element id="Extension.extension:rrule.extension:freq.value[x].system">
      <path value="Extension.extension.extension.value[x].system" />
      <fixedUri value="https://www.ietf.org/rfc/rfc2445" />
    </element>
    <element id="Extension.extension:rrule.extension:until">
      <path value="Extension.extension.extension" />
      <sliceName value="until" />
      <definition value="Defines a date-time value which bounds the recurrence rule in an inclusive manner | Defini une Date/Time de fin de la récurrence" />
      <max value="1" />
    </element>
    <element id="Extension.extension:rrule.extension:until.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="until" />
    </element>
    <element id="Extension.extension:rrule.extension:until.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:count">
      <path value="Extension.extension.extension" />
      <sliceName value="count" />
      <short value="Number of occurrences | Nombre d'occurences" />
      <definition value="Defines the number of occurrences at which to range-bound the recurrence | Nombre d'occurences lié au type de récurrence (freq)" />
      <max value="1" />
    </element>
    <element id="Extension.extension:rrule.extension:count.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="count" />
    </element>
    <element id="Extension.extension:rrule.extension:count.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:interval">
      <path value="Extension.extension.extension" />
      <sliceName value="interval" />
      <short value="How often the recurrence rule repeats | répétition de la règle de récurrence" />
      <definition value="Contains a positive integer representing how often the recurrence rule repeats. The default value is &quot;1&quot;, meaning every second for a SECONDLY rule, or every minute for a MINUTELY rule, every hour for an HOURLY rule, every day for a DAILY rule, every week for a WEEKLY rule, every month for a MONTHLY rule and every year for a YEARLY rule. | Contient un entier positif qui indique le nombre de fois que la règle de récurrence se répète. La valeur par défaut &quot;1&quot; signifie que la règle se répète une fois toutes les secondes, minute, heure, etc.. en fonction de la fréquence définie (secondly, minutely, etc..)" />
      <max value="1" />
    </element>
    <element id="Extension.extension:rrule.extension:interval.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="interval" />
    </element>
    <element id="Extension.extension:rrule.extension:interval.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:bySecond">
      <path value="Extension.extension.extension" />
      <sliceName value="bySecond" />
      <short value="List of seconds within a minute | Liste de secondes dans une minute" />
    </element>
    <element id="Extension.extension:rrule.extension:bySecond.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="bySecond" />
    </element>
    <element id="Extension.extension:rrule.extension:bySecond.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="positiveInt" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byMinute">
      <path value="Extension.extension.extension" />
      <sliceName value="byMinute" />
      <short value="List of minutes within an hour | Liste de minutes dans une heure" />
    </element>
    <element id="Extension.extension:rrule.extension:byMinute.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byMinute" />
    </element>
    <element id="Extension.extension:rrule.extension:byMinute.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="positiveInt" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byHour">
      <path value="Extension.extension.extension" />
      <sliceName value="byHour" />
      <short value="List of hours of the day | Liste des heures du jour" />
    </element>
    <element id="Extension.extension:rrule.extension:byHour.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byHour" />
    </element>
    <element id="Extension.extension:rrule.extension:byHour.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="positiveInt" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byDay">
      <path value="Extension.extension.extension" />
      <sliceName value="byDay" />
      <short value="List of days of the week | Liste des jours de la semaine" />
    </element>
    <element id="Extension.extension:rrule.extension:byDay.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byDay" />
    </element>
    <element id="Extension.extension:rrule.extension:byDay.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byMonthDay">
      <path value="Extension.extension.extension" />
      <sliceName value="byMonthDay" />
      <short value="List of days of the month | Liste des jours dans le mois" />
      <definition value="list of days of the month. Valid values are 1 to 31 or -31 to -1. For example, -10 represents the tenth to the last day of    the month. | Liste des jours dans le mois. Les valeurs acceptées sont de 1 à 31 ou de -31 à -1. Par exemple, -10 représente le 10° jour avant la fin du mois." />
    </element>
    <element id="Extension.extension:rrule.extension:byMonthDay.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byMonthDay" />
    </element>
    <element id="Extension.extension:rrule.extension:byMonthDay.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byYearDay">
      <path value="Extension.extension.extension" />
      <sliceName value="byYearDay" />
      <short value="List of days of the year | liste des jours de l'année (1 à 366)" />
      <definition value="List of days of the year. Valid values are 1 to 366 or -366 to -1. For example, -1 represents the last day of the year   (December 31st) and -306 represents the 306th to the last day of the year (March 1st). | Liste des jours de l'année. Les valeurs acceptées vont de 1 à 366 ou -366 à -1. Par exemple, -1 représente le dernier jour de l'année (31 Décembre). et -306 représente le 306° jour avant la fin de l'année (le 1° mars)." />
    </element>
    <element id="Extension.extension:rrule.extension:byYearDay.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byYearDay" />
    </element>
    <element id="Extension.extension:rrule.extension:byYearDay.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byWeekNo">
      <path value="Extension.extension.extension" />
      <sliceName value="byWeekNo" />
      <short value="List of weeks of the year | Liste des semaines de l'année" />
      <definition value="List of ordinals specifying weeks of the year. Valid values are 1 to 53 or -53 to -1 | Liste des semaines de l'année, valeurs de 1 à 53 ou de -53 à -1" />
    </element>
    <element id="Extension.extension:rrule.extension:byWeekNo.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byWeekNo" />
    </element>
    <element id="Extension.extension:rrule.extension:byWeekNo.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:byMonth">
      <path value="Extension.extension.extension" />
      <sliceName value="byMonth" />
      <short value="List of months of the year | Liste des mois de l'année" />
      <definition value="List of months of the year. Valid values are 1 to 12. | Liste des mois de l'année (valeurs de 1 à 12)." />
    </element>
    <element id="Extension.extension:rrule.extension:byMonth.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="byMonth" />
    </element>
    <element id="Extension.extension:rrule.extension:byMonth.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="positiveInt" />
      </type>
    </element>
    <element id="Extension.extension:rrule.extension:wkst">
      <path value="Extension.extension.extension" />
      <sliceName value="wkst" />
      <short value="First day of the workweek | Premier jour de la semaine de travail" />
      <binding>
        <strength value="required" />
        <description value="The value set comes from iCalendar | Le jeu de valeur est issu de iCalendar" />
        <valueSet value="http://hl7.org/fhir/ValueSet/days-of-week" />
      </binding>
    </element>
    <element id="Extension.extension:rrule.extension:wkst.url">
      <path value="Extension.extension.extension.url" />
      <fixedUri value="wkst" />
    </element>
    <element id="Extension.extension:rrule.extension:wkst.value[x]">
      <path value="Extension.extension.extension.value[x]" />
      <type>
        <code value="code" />
      </type>
    </element>
    <element id="Extension.extension:rrule.url">
      <path value="Extension.extension.url" />
      <fixedUri value="rrule" />
    </element>
    <element id="Extension.extension:rrule.value[x]">
      <path value="Extension.extension.value[x]" />
      <max value="0" />
    </element>
    <element id="Extension.extension:start">
      <path value="Extension.extension" />
      <sliceName value="start" />
      <short value="Start of the period | Début de la période" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Extension.extension:start.url">
      <path value="Extension.extension.url" />
      <fixedUri value="start" />
    </element>
    <element id="Extension.extension:start.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Extension.extension:end">
      <path value="Extension.extension" />
      <sliceName value="end" />
      <short value="End of the period | Fin de la période" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Extension.extension:end.url">
      <path value="Extension.extension.url" />
      <fixedUri value="end" />
    </element>
    <element id="Extension.extension:end.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Extension.extension:identifier">
      <path value="Extension.extension" />
      <sliceName value="identifier" />
      <short value="Availability/non-availabilty identifier | Identifiant des disponibilités/non disponibilités" />
      <definition value="non-availabilty identifier used to update this information | Identifiant des non disponibilités, permettant de modifier cette information par la suite" />
      <min value="1" />
    </element>
    <element id="Extension.extension:identifier.url">
      <path value="Extension.extension.url" />
      <fixedUri value="identifier" />
    </element>
    <element id="Extension.extension:identifier.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="Identifier" />
      </type>
    </element>
    <element id="Extension.extension:unavailabilityReason">
      <path value="Extension.extension" />
      <sliceName value="unavailabilityReason" />
      <short value="Non-availability resaon | Raison de l'indisponibilité" />
      <max value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://interopsante.org/fhir/valueset/fr-schedule-unavailability-reason" />
      </binding>
    </element>
    <element id="Extension.extension:unavailabilityReason.url">
      <path value="Extension.extension.url" />
      <fixedUri value="unavailabilityReason" />
    </element>
    <element id="Extension.extension:unavailabilityReason.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="extensible" />
        <valueSet value="http://interopsante.org/fhir/valueset/fr-schedule-unavailability-reason" />
      </binding>
    </element>
    <element id="Extension.extension:created">
      <path value="Extension.extension" />
      <sliceName value="created" />
      <short value="The date/time the period was created | Date de création de la période" />
      <definition value="Date/time of the availabibility/non-availlabilty period was created | Date/time à laquelle la période de disponibilité/indisponibilité a été crée" />
      <max value="1" />
    </element>
    <element id="Extension.extension:created.url">
      <path value="Extension.extension.url" />
      <fixedUri value="created" />
    </element>
    <element id="Extension.extension:created.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Extension.extension:priority">
      <path value="Extension.extension" />
      <sliceName value="priority" />
      <max value="1" />
    </element>
    <element id="Extension.extension:priority.url">
      <path value="Extension.extension.url" />
      <fixedUri value="priority" />
    </element>
    <element id="Extension.extension:priority.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Extension.url">
      <path value="Extension.url" />
      <fixedUri value="http://interopsante.org/fhir/StructureDefinition/FrScheduleAvailabiltyTime" />
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>