PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.xver@r5.r4b-0.0.1-snapshot-2
    http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.virtualService
description: This cross-version extension represents Appointment.virtualService from http://hl7.org/fhir/StructureDefinition/Appointment|5.0.0 for use in FHIR R4B.
package_name: hl7.fhir.uv.xver
derivation: constraint
name: Ext_R5_Appointment_virtualService
type: Extension
elements:
  extension:
    base: {max: '*', min: 0, path: Extension.extension}
    array: true
    index: 0
    slicing:
      rules: closed
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 0
      slices:
        channelType:
          match: {url: channelType}
          schema:
            short: Channel Type
            base: {max: '*', min: 0, path: Extension.extension}
            index: 1
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: channelType}
                index: 2
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Channel Type
                choices: [valueCoding]
                index: 4
              valueCoding:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Coding
                short: Channel Type
                choiceOf: value
                index: 5
            required: [url]
        address[x]:
          match: {url: 'address[x]'}
          schema:
            short: Contact address/number
            base: {max: '*', min: 0, path: Extension.extension}
            index: 6
            extensions:
              purpose:
                url: purpose
                short: The type of contact
                base: {max: '*', min: 0, path: Extension.extension}
                index: 8
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: purpose}
                    index: 9
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of contact
                    choices: [valueCodeableConcept]
                    index: 11
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The type of contact
                    choiceOf: value
                    index: 12
                required: [url]
              name:
                url: name
                short: Name of an individual to contact
                array: true
                base: {max: '*', min: 0, path: Extension.extension}
                index: 13
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 14
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Name of an individual to contact
                    choices: [valueHumanName]
                    index: 16
                  valueHumanName:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: HumanName
                    short: Name of an individual to contact
                    choiceOf: value
                    index: 17
                required: [url]
              telecom:
                url: telecom
                short: Contact details (e.g.phone/fax/url)
                array: true
                base: {max: '*', min: 0, path: Extension.extension}
                index: 18
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: telecom}
                    index: 19
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Contact details (e.g.phone/fax/url)
                    choices: [valueContactPoint]
                    index: 21
                  valueContactPoint:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: ContactPoint
                    short: Contact details (e.g.phone/fax/url)
                    choiceOf: value
                    index: 22
                required: [url]
              address:
                url: address
                base: {max: '*', min: 0, path: Extension.extension}
                short: Address for the contact
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: address}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Address for the contact
                    choices: [valueAddress]
                    index: 26
                  valueAddress:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Address
                    short: Address for the contact
                    choiceOf: value
                    index: 27
                required: [url]
              organization:
                url: organization
                short: This contact detail is handled/monitored by a specific organization
                base: {max: '*', min: 0, path: Extension.extension}
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: organization}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: This contact detail is handled/monitored by a specific organization
                    choices: [valueReference]
                    index: 31
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: This contact detail is handled/monitored by a specific organization
                    choiceOf: value
                    index: 32
                required: [url]
              period:
                url: period
                base: {max: '*', min: 0, path: Extension.extension}
                short: Period that this contact was valid for usage
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: period}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Period that this contact was valid for usage
                    choices: [valuePeriod]
                    index: 36
                  valuePeriod:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Period
                    short: Period that this contact was valid for usage
                    choiceOf: value
                    index: 37
                required: [url]
              _datatype:
                url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                type: Extension
                short: Data type name for VirtualServiceDetail.address[x] from FHIR R5
                index: 38
                elements:
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    pattern: {type: String, value: ExtendedContactDetail}
                    choices: [valueString]
                    index: 40
                  valueString:
                    type: string
                    pattern: {type: String, value: ExtendedContactDetail}
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 41
                required: [valueString, value]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 7
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    purpose:
                      match: {url: purpose}
                      schema:
                        short: The type of contact
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 8
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: purpose}
                            index: 9
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The type of contact
                            choices: [valueCodeableConcept]
                            index: 11
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The type of contact
                            choiceOf: value
                            index: 12
                        required: [url]
                    name:
                      match: {url: name}
                      schema:
                        short: Name of an individual to contact
                        array: true
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 13
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: name}
                            index: 14
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Name of an individual to contact
                            choices: [valueHumanName]
                            index: 16
                          valueHumanName:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: HumanName
                            short: Name of an individual to contact
                            choiceOf: value
                            index: 17
                        required: [url]
                    telecom:
                      match: {url: telecom}
                      schema:
                        short: Contact details (e.g.phone/fax/url)
                        array: true
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 18
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: telecom}
                            index: 19
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Contact details (e.g.phone/fax/url)
                            choices: [valueContactPoint]
                            index: 21
                          valueContactPoint:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: ContactPoint
                            short: Contact details (e.g.phone/fax/url)
                            choiceOf: value
                            index: 22
                        required: [url]
                    address:
                      match: {url: address}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Address for the contact
                        index: 23
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: address}
                            index: 24
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Address for the contact
                            choices: [valueAddress]
                            index: 26
                          valueAddress:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Address
                            short: Address for the contact
                            choiceOf: value
                            index: 27
                        required: [url]
                    organization:
                      match: {url: organization}
                      schema:
                        short: This contact detail is handled/monitored by a specific organization
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 28
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: organization}
                            index: 29
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: This contact detail is handled/monitored by a specific organization
                            choices: [valueReference]
                            index: 31
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: This contact detail is handled/monitored by a specific organization
                            choiceOf: value
                            index: 32
                        required: [url]
                    period:
                      match: {url: period}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Period that this contact was valid for usage
                        index: 33
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: period}
                            index: 34
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Period that this contact was valid for usage
                            choices: [valuePeriod]
                            index: 36
                          valuePeriod:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Period
                            short: Period that this contact was valid for usage
                            choiceOf: value
                            index: 37
                        required: [url]
                    _datatype:
                      match: {url: null}
                      schema:
                        type: Extension
                        short: Data type name for VirtualServiceDetail.address[x] from FHIR R5
                        url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                        index: 38
                        elements:
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            pattern: {type: String, value: ExtendedContactDetail}
                            choices: [valueString]
                            index: 40
                          valueString:
                            type: string
                            pattern: {type: String, value: ExtendedContactDetail}
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 41
                        required: [valueString, value]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: 'address[x]'}
                index: 42
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Contact address/number
                choices: [valueUrl, valueString, valueContactPoint]
                index: 44
              valueUrl:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: url
                short: Contact address/number
                choiceOf: value
                index: 45
              valueString:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: string
                short: Contact address/number
                choiceOf: value
                index: 46
              valueContactPoint:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: ContactPoint
                short: Contact address/number
                choiceOf: value
                index: 47
            required: [url]
        additionalInfo:
          match: {url: additionalInfo}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Address to see alternative connection details
            array: true
            index: 48
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: additionalInfo}
                index: 49
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Address to see alternative connection details
                choices: [valueUrl]
                index: 51
              valueUrl:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: url
                short: Address to see alternative connection details
                choiceOf: value
                index: 52
            required: [url]
        maxParticipants:
          match: {url: maxParticipants}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Maximum number of participants supported by the virtual service
            index: 53
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: maxParticipants}
                index: 54
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Maximum number of participants supported by the virtual service
                choices: [valuePositiveInt]
                index: 56
              valuePositiveInt:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: positiveInt
                short: Maximum number of participants supported by the virtual service
                choiceOf: value
                index: 57
            required: [url]
        sessionKey:
          match: {url: sessionKey}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Session Key required by the virtual service
            index: 58
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: sessionKey}
                index: 59
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Session Key required by the virtual service
                choices: [valueString]
                index: 61
              valueString:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: string
                short: Session Key required by the virtual service
                choiceOf: value
                index: 62
            required: [url]
        _datatype:
          match: {url: null}
          schema:
            type: Extension
            short: Data type name for Appointment.virtualService from FHIR R5
            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
            index: 63
            elements:
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                pattern: {type: String, value: VirtualServiceDetail}
                choices: [valueString]
                index: 65
              valueString:
                type: string
                pattern: {type: String, value: VirtualServiceDetail}
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 66
            required: [valueString, value]
  url:
    base: {max: '1', min: 1, path: Extension.url}
    pattern: {type: Uri, value: 'http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.virtualService'}
    index: 67
package_version: r5.r4b-0.0.1-snapshot-2
extensions:
  channelType:
    url: channelType
    short: Channel Type
    base: {max: '*', min: 0, path: Extension.extension}
    index: 1
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: channelType}
        index: 2
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Channel Type
        choices: [valueCoding]
        index: 4
      valueCoding:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Coding
        short: Channel Type
        choiceOf: value
        index: 5
    required: [url]
  address[x]:
    url: address[x]
    short: Contact address/number
    base: {max: '*', min: 0, path: Extension.extension}
    index: 6
    extensions:
      purpose:
        url: purpose
        short: The type of contact
        base: {max: '*', min: 0, path: Extension.extension}
        index: 8
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: purpose}
            index: 9
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The type of contact
            choices: [valueCodeableConcept]
            index: 11
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The type of contact
            choiceOf: value
            index: 12
        required: [url]
      name:
        url: name
        short: Name of an individual to contact
        array: true
        base: {max: '*', min: 0, path: Extension.extension}
        index: 13
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: name}
            index: 14
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Name of an individual to contact
            choices: [valueHumanName]
            index: 16
          valueHumanName:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: HumanName
            short: Name of an individual to contact
            choiceOf: value
            index: 17
        required: [url]
      telecom:
        url: telecom
        short: Contact details (e.g.phone/fax/url)
        array: true
        base: {max: '*', min: 0, path: Extension.extension}
        index: 18
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: telecom}
            index: 19
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Contact details (e.g.phone/fax/url)
            choices: [valueContactPoint]
            index: 21
          valueContactPoint:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: ContactPoint
            short: Contact details (e.g.phone/fax/url)
            choiceOf: value
            index: 22
        required: [url]
      address:
        url: address
        base: {max: '*', min: 0, path: Extension.extension}
        short: Address for the contact
        index: 23
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: address}
            index: 24
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Address for the contact
            choices: [valueAddress]
            index: 26
          valueAddress:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Address
            short: Address for the contact
            choiceOf: value
            index: 27
        required: [url]
      organization:
        url: organization
        short: This contact detail is handled/monitored by a specific organization
        base: {max: '*', min: 0, path: Extension.extension}
        index: 28
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: organization}
            index: 29
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: This contact detail is handled/monitored by a specific organization
            choices: [valueReference]
            index: 31
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: This contact detail is handled/monitored by a specific organization
            choiceOf: value
            index: 32
        required: [url]
      period:
        url: period
        base: {max: '*', min: 0, path: Extension.extension}
        short: Period that this contact was valid for usage
        index: 33
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: period}
            index: 34
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Period that this contact was valid for usage
            choices: [valuePeriod]
            index: 36
          valuePeriod:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Period
            short: Period that this contact was valid for usage
            choiceOf: value
            index: 37
        required: [url]
      _datatype:
        url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
        type: Extension
        short: Data type name for VirtualServiceDetail.address[x] from FHIR R5
        index: 38
        elements:
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            pattern: {type: String, value: ExtendedContactDetail}
            choices: [valueString]
            index: 40
          valueString:
            type: string
            pattern: {type: String, value: ExtendedContactDetail}
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 41
        required: [valueString, value]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 7
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            purpose:
              match: {url: purpose}
              schema:
                short: The type of contact
                base: {max: '*', min: 0, path: Extension.extension}
                index: 8
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: purpose}
                    index: 9
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of contact
                    choices: [valueCodeableConcept]
                    index: 11
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The type of contact
                    choiceOf: value
                    index: 12
                required: [url]
            name:
              match: {url: name}
              schema:
                short: Name of an individual to contact
                array: true
                base: {max: '*', min: 0, path: Extension.extension}
                index: 13
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 14
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Name of an individual to contact
                    choices: [valueHumanName]
                    index: 16
                  valueHumanName:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: HumanName
                    short: Name of an individual to contact
                    choiceOf: value
                    index: 17
                required: [url]
            telecom:
              match: {url: telecom}
              schema:
                short: Contact details (e.g.phone/fax/url)
                array: true
                base: {max: '*', min: 0, path: Extension.extension}
                index: 18
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: telecom}
                    index: 19
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Contact details (e.g.phone/fax/url)
                    choices: [valueContactPoint]
                    index: 21
                  valueContactPoint:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: ContactPoint
                    short: Contact details (e.g.phone/fax/url)
                    choiceOf: value
                    index: 22
                required: [url]
            address:
              match: {url: address}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Address for the contact
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: address}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Address for the contact
                    choices: [valueAddress]
                    index: 26
                  valueAddress:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Address
                    short: Address for the contact
                    choiceOf: value
                    index: 27
                required: [url]
            organization:
              match: {url: organization}
              schema:
                short: This contact detail is handled/monitored by a specific organization
                base: {max: '*', min: 0, path: Extension.extension}
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: organization}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: This contact detail is handled/monitored by a specific organization
                    choices: [valueReference]
                    index: 31
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: This contact detail is handled/monitored by a specific organization
                    choiceOf: value
                    index: 32
                required: [url]
            period:
              match: {url: period}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Period that this contact was valid for usage
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: period}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Period that this contact was valid for usage
                    choices: [valuePeriod]
                    index: 36
                  valuePeriod:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Period
                    short: Period that this contact was valid for usage
                    choiceOf: value
                    index: 37
                required: [url]
            _datatype:
              match: {url: null}
              schema:
                type: Extension
                short: Data type name for VirtualServiceDetail.address[x] from FHIR R5
                url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                index: 38
                elements:
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    pattern: {type: String, value: ExtendedContactDetail}
                    choices: [valueString]
                    index: 40
                  valueString:
                    type: string
                    pattern: {type: String, value: ExtendedContactDetail}
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 41
                required: [valueString, value]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: 'address[x]'}
        index: 42
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Contact address/number
        choices: [valueUrl, valueString, valueContactPoint]
        index: 44
      valueUrl:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: url
        short: Contact address/number
        choiceOf: value
        index: 45
      valueString:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: string
        short: Contact address/number
        choiceOf: value
        index: 46
      valueContactPoint:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: ContactPoint
        short: Contact address/number
        choiceOf: value
        index: 47
    required: [url]
  additionalInfo:
    url: additionalInfo
    base: {max: '*', min: 0, path: Extension.extension}
    short: Address to see alternative connection details
    array: true
    index: 48
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: additionalInfo}
        index: 49
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Address to see alternative connection details
        choices: [valueUrl]
        index: 51
      valueUrl:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: url
        short: Address to see alternative connection details
        choiceOf: value
        index: 52
    required: [url]
  maxParticipants:
    url: maxParticipants
    base: {max: '*', min: 0, path: Extension.extension}
    short: Maximum number of participants supported by the virtual service
    index: 53
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: maxParticipants}
        index: 54
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Maximum number of participants supported by the virtual service
        choices: [valuePositiveInt]
        index: 56
      valuePositiveInt:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: positiveInt
        short: Maximum number of participants supported by the virtual service
        choiceOf: value
        index: 57
    required: [url]
  sessionKey:
    url: sessionKey
    base: {max: '*', min: 0, path: Extension.extension}
    short: Session Key required by the virtual service
    index: 58
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: sessionKey}
        index: 59
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Session Key required by the virtual service
        choices: [valueString]
        index: 61
      valueString:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: string
        short: Session Key required by the virtual service
        choiceOf: value
        index: 62
    required: [url]
  _datatype:
    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
    type: Extension
    short: Data type name for Appointment.virtualService from FHIR R5
    index: 63
    elements:
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        pattern: {type: String, value: VirtualServiceDetail}
        choices: [valueString]
        index: 65
      valueString:
        type: string
        pattern: {type: String, value: VirtualServiceDetail}
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 66
    required: [valueString, value]
class: extension
kind: complex-type
url: http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.virtualService
base: http://hl7.org/fhir/StructureDefinition/Extension|4.3.0
version: 0.0.1-snapshot-2
required: [url]