PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.extensions.r3@5.3.0-ballot-tc
    http://hl7.org/fhir/StructureDefinition/extended-contact-availability
description: The details provided in this contact may be used according to the attached availability guidelines.
package_name: hl7.fhir.uv.extensions.r3
derivation: constraint
name: ExtendedContactAvailability
type: Extension
elements:
  extension:
    array: true
    index: 0
    slicing:
      rules: open
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: null
      slices:
        _datatype:
          match: {url: null}
          schema:
            type: Extension
            short: DataType name 'Availability' from R5
            url: h
            index: 1
            elements:
              value:
                pattern: {type: String, value: Availability}
                choices: [valueString]
                index: 3
              valueString:
                type: string
                pattern: {type: String, value: Availability}
                choiceOf: value
                index: 4
            required: [valueString, value]
        availableTime:
          match: {url: availableTime}
          schema:
            short: Times the {item} is available
            array: true
            index: 5
            extensions:
              daysOfWeek:
                url: daysOfWeek
                short: mon | tue | wed | thu | fri | sat | sun
                array: true
                index: 7
                extensions: {}
                elements:
                  extension: {index: 8}
                  url:
                    pattern: {type: Uri, value: daysOfWeek}
                    index: 9
                  value:
                    choices: [valueCode]
                    index: 11
                  valueCode: {type: code, choiceOf: value, index: 12}
                required: [valueCode, value]
              allDay:
                url: allDay
                short: Always available? i.e. 24 hour service
                index: 13
                extensions: {}
                elements:
                  extension: {index: 14}
                  url:
                    pattern: {type: Uri, value: allDay}
                    index: 15
                  value:
                    choices: [valueBoolean]
                    index: 17
                  valueBoolean: {type: boolean, choiceOf: value, index: 18}
                required: [value, valueBoolean]
              availableStartTime:
                url: availableStartTime
                short: Opening time of day (ignored if allDay = true)
                index: 19
                extensions: {}
                elements:
                  extension: {index: 20}
                  url:
                    pattern: {type: Uri, value: availableStartTime}
                    index: 21
                  value:
                    choices: [valueTime]
                    index: 23
                  valueTime: {type: time, choiceOf: value, index: 24}
                required: [value, valueTime]
              availableEndTime:
                url: availableEndTime
                short: Closing time of day (ignored if allDay = true)
                index: 25
                extensions: {}
                elements:
                  extension: {index: 26}
                  url:
                    pattern: {type: Uri, value: availableEndTime}
                    index: 27
                  value:
                    choices: [valueTime]
                    index: 29
                  valueTime: {type: time, choiceOf: value, index: 30}
                required: [value, valueTime]
            elements:
              extension:
                array: true
                index: 6
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: null
                  slices:
                    daysOfWeek:
                      match: {url: daysOfWeek}
                      schema:
                        short: mon | tue | wed | thu | fri | sat | sun
                        array: true
                        index: 7
                        extensions: {}
                        elements:
                          extension: {index: 8}
                          url:
                            pattern: {type: Uri, value: daysOfWeek}
                            index: 9
                          value:
                            choices: [valueCode]
                            index: 11
                          valueCode: {type: code, choiceOf: value, index: 12}
                        required: [valueCode, value]
                    allDay:
                      match: {url: allDay}
                      schema:
                        short: Always available? i.e. 24 hour service
                        index: 13
                        extensions: {}
                        elements:
                          extension: {index: 14}
                          url:
                            pattern: {type: Uri, value: allDay}
                            index: 15
                          value:
                            choices: [valueBoolean]
                            index: 17
                          valueBoolean: {type: boolean, choiceOf: value, index: 18}
                        required: [value, valueBoolean]
                    availableStartTime:
                      match: {url: availableStartTime}
                      schema:
                        short: Opening time of day (ignored if allDay = true)
                        index: 19
                        extensions: {}
                        elements:
                          extension: {index: 20}
                          url:
                            pattern: {type: Uri, value: availableStartTime}
                            index: 21
                          value:
                            choices: [valueTime]
                            index: 23
                          valueTime: {type: time, choiceOf: value, index: 24}
                        required: [value, valueTime]
                    availableEndTime:
                      match: {url: availableEndTime}
                      schema:
                        short: Closing time of day (ignored if allDay = true)
                        index: 25
                        extensions: {}
                        elements:
                          extension: {index: 26}
                          url:
                            pattern: {type: Uri, value: availableEndTime}
                            index: 27
                          value:
                            choices: [valueTime]
                            index: 29
                          valueTime: {type: time, choiceOf: value, index: 30}
                        required: [value, valueTime]
              url:
                pattern: {type: Uri, value: availableTime}
                index: 31
              value:
                choices: []
                index: 33
        notAvailableTime:
          match: {url: notAvailableTime}
          schema:
            short: Not available during this time due to provided reason
            array: true
            index: 34
            extensions:
              description:
                url: description
                short: Reason presented to the user explaining why time not available
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: Uri, value: description}
                    index: 38
                  value:
                    choices: [valueString]
                    index: 40
                  valueString: {type: string, choiceOf: value, index: 41}
                required: [valueString, value]
              during:
                url: during
                short: Service not available during this period
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: Uri, value: during}
                    index: 44
                  value:
                    choices: [valuePeriod]
                    index: 46
                  valuePeriod: {type: Period, choiceOf: value, index: 47}
                required: [valuePeriod, value]
            elements:
              extension:
                array: true
                index: 35
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: null
                  slices:
                    description:
                      match: {url: description}
                      schema:
                        short: Reason presented to the user explaining why time not available
                        index: 36
                        extensions: {}
                        elements:
                          extension: {index: 37}
                          url:
                            pattern: {type: Uri, value: description}
                            index: 38
                          value:
                            choices: [valueString]
                            index: 40
                          valueString: {type: string, choiceOf: value, index: 41}
                        required: [valueString, value]
                    during:
                      match: {url: during}
                      schema:
                        short: Service not available during this period
                        index: 42
                        extensions: {}
                        elements:
                          extension: {index: 43}
                          url:
                            pattern: {type: Uri, value: during}
                            index: 44
                          value:
                            choices: [valuePeriod]
                            index: 46
                          valuePeriod: {type: Period, choiceOf: value, index: 47}
                        required: [valuePeriod, value]
              url:
                pattern: {type: Uri, value: notAvailableTime}
                index: 48
              value:
                choices: []
                index: 50
  url:
    pattern: {type: Uri, value: 'http://hl7.org/fhir/StructureDefinition/extended-contact-availability'}
    index: 51
  value:
    choices: []
    index: 53
package_version: 5.3.0-ballot-tc
extensions:
  _datatype:
    url: h
    type: Extension
    short: DataType name 'Availability' from R5
    index: 1
    elements:
      value:
        pattern: {type: String, value: Availability}
        choices: [valueString]
        index: 3
      valueString:
        type: string
        pattern: {type: String, value: Availability}
        choiceOf: value
        index: 4
    required: [valueString, value]
  availableTime:
    url: availableTime
    short: Times the {item} is available
    array: true
    index: 5
    extensions:
      daysOfWeek:
        url: daysOfWeek
        short: mon | tue | wed | thu | fri | sat | sun
        array: true
        index: 7
        extensions: {}
        elements:
          extension: {index: 8}
          url:
            pattern: {type: Uri, value: daysOfWeek}
            index: 9
          value:
            choices: [valueCode]
            index: 11
          valueCode: {type: code, choiceOf: value, index: 12}
        required: [valueCode, value]
      allDay:
        url: allDay
        short: Always available? i.e. 24 hour service
        index: 13
        extensions: {}
        elements:
          extension: {index: 14}
          url:
            pattern: {type: Uri, value: allDay}
            index: 15
          value:
            choices: [valueBoolean]
            index: 17
          valueBoolean: {type: boolean, choiceOf: value, index: 18}
        required: [value, valueBoolean]
      availableStartTime:
        url: availableStartTime
        short: Opening time of day (ignored if allDay = true)
        index: 19
        extensions: {}
        elements:
          extension: {index: 20}
          url:
            pattern: {type: Uri, value: availableStartTime}
            index: 21
          value:
            choices: [valueTime]
            index: 23
          valueTime: {type: time, choiceOf: value, index: 24}
        required: [value, valueTime]
      availableEndTime:
        url: availableEndTime
        short: Closing time of day (ignored if allDay = true)
        index: 25
        extensions: {}
        elements:
          extension: {index: 26}
          url:
            pattern: {type: Uri, value: availableEndTime}
            index: 27
          value:
            choices: [valueTime]
            index: 29
          valueTime: {type: time, choiceOf: value, index: 30}
        required: [value, valueTime]
    elements:
      extension:
        array: true
        index: 6
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            daysOfWeek:
              match: {url: daysOfWeek}
              schema:
                short: mon | tue | wed | thu | fri | sat | sun
                array: true
                index: 7
                extensions: {}
                elements:
                  extension: {index: 8}
                  url:
                    pattern: {type: Uri, value: daysOfWeek}
                    index: 9
                  value:
                    choices: [valueCode]
                    index: 11
                  valueCode: {type: code, choiceOf: value, index: 12}
                required: [valueCode, value]
            allDay:
              match: {url: allDay}
              schema:
                short: Always available? i.e. 24 hour service
                index: 13
                extensions: {}
                elements:
                  extension: {index: 14}
                  url:
                    pattern: {type: Uri, value: allDay}
                    index: 15
                  value:
                    choices: [valueBoolean]
                    index: 17
                  valueBoolean: {type: boolean, choiceOf: value, index: 18}
                required: [value, valueBoolean]
            availableStartTime:
              match: {url: availableStartTime}
              schema:
                short: Opening time of day (ignored if allDay = true)
                index: 19
                extensions: {}
                elements:
                  extension: {index: 20}
                  url:
                    pattern: {type: Uri, value: availableStartTime}
                    index: 21
                  value:
                    choices: [valueTime]
                    index: 23
                  valueTime: {type: time, choiceOf: value, index: 24}
                required: [value, valueTime]
            availableEndTime:
              match: {url: availableEndTime}
              schema:
                short: Closing time of day (ignored if allDay = true)
                index: 25
                extensions: {}
                elements:
                  extension: {index: 26}
                  url:
                    pattern: {type: Uri, value: availableEndTime}
                    index: 27
                  value:
                    choices: [valueTime]
                    index: 29
                  valueTime: {type: time, choiceOf: value, index: 30}
                required: [value, valueTime]
      url:
        pattern: {type: Uri, value: availableTime}
        index: 31
      value:
        choices: []
        index: 33
  notAvailableTime:
    url: notAvailableTime
    short: Not available during this time due to provided reason
    array: true
    index: 34
    extensions:
      description:
        url: description
        short: Reason presented to the user explaining why time not available
        index: 36
        extensions: {}
        elements:
          extension: {index: 37}
          url:
            pattern: {type: Uri, value: description}
            index: 38
          value:
            choices: [valueString]
            index: 40
          valueString: {type: string, choiceOf: value, index: 41}
        required: [valueString, value]
      during:
        url: during
        short: Service not available during this period
        index: 42
        extensions: {}
        elements:
          extension: {index: 43}
          url:
            pattern: {type: Uri, value: during}
            index: 44
          value:
            choices: [valuePeriod]
            index: 46
          valuePeriod: {type: Period, choiceOf: value, index: 47}
        required: [valuePeriod, value]
    elements:
      extension:
        array: true
        index: 35
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            description:
              match: {url: description}
              schema:
                short: Reason presented to the user explaining why time not available
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: Uri, value: description}
                    index: 38
                  value:
                    choices: [valueString]
                    index: 40
                  valueString: {type: string, choiceOf: value, index: 41}
                required: [valueString, value]
            during:
              match: {url: during}
              schema:
                short: Service not available during this period
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: Uri, value: during}
                    index: 44
                  value:
                    choices: [valuePeriod]
                    index: 46
                  valuePeriod: {type: Period, choiceOf: value, index: 47}
                required: [valuePeriod, value]
      url:
        pattern: {type: Uri, value: notAvailableTime}
        index: 48
      value:
        choices: []
        index: 50
class: extension
kind: complex-type
url: http://hl7.org/fhir/StructureDefinition/extended-contact-availability
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 5.3.0-ballot-tc