PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.xver-r5.r4b@0.0.1-snapshot-2
    http://hl7.org/fhir/5.0/StructureDefinition/extension-Permission
description: This cross-version extension represents Permission from http://hl7.org/fhir/StructureDefinition/Permission|5.0.0 for use in FHIR R4B.
package_name: hl7.fhir.uv.xver-r5.r4b
derivation: constraint
name: Ext_R5_Permission
type: Extension
elements:
  extension:
    base: {max: '*', min: 0, path: Extension.extension}
    array: true
    min: 2
    index: 0
    slicing:
      rules: closed
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 2
      slices:
        status:
          match: {url: status}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: active | entered-in-error | draft | rejected
            _required: true
            index: 1
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: status}
                index: 2
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: active | entered-in-error | draft | rejected
                choices: [valueCode]
                index: 4
              valueCode:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: code
                short: active | entered-in-error | draft | rejected
                choiceOf: value
                index: 5
            required: [url]
        asserter:
          match: {url: asserter}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: The person or entity that asserts the permission
            index: 6
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: asserter}
                index: 7
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The person or entity that asserts the permission
                choices: [valueReference]
                index: 9
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: The person or entity that asserts the permission
                choiceOf: value
                index: 10
            required: [url]
        date:
          match: {url: date}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: The date that permission was asserted
            array: true
            index: 11
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: date}
                index: 12
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The date that permission was asserted
                choices: [valueDateTime]
                index: 14
              valueDateTime:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: dateTime
                short: The date that permission was asserted
                choiceOf: value
                index: 15
            required: [url]
        validity:
          match: {url: validity}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: The period in which the permission is active
            index: 16
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: validity}
                index: 17
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The period in which the permission is active
                choices: [valuePeriod]
                index: 19
              valuePeriod:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Period
                short: The period in which the permission is active
                choiceOf: value
                index: 20
            required: [url]
        justification:
          match: {url: justification}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: The asserted justification for using the data
            index: 21
            extensions:
              basis:
                url: basis
                base: {max: '*', min: 0, path: Extension.extension}
                short: The regulatory grounds upon which this Permission builds
                array: true
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: basis}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The regulatory grounds upon which this Permission builds
                    choices: [valueCodeableConcept]
                    index: 26
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The regulatory grounds upon which this Permission builds
                    choiceOf: value
                    index: 27
                required: [url]
              evidence:
                url: evidence
                base: {max: '*', min: 0, path: Extension.extension}
                short: Justifing rational
                array: true
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: evidence}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Justifing rational
                    choices: [valueReference]
                    index: 31
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Justifing rational
                    choiceOf: value
                    index: 32
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 22
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    basis:
                      match: {url: basis}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The regulatory grounds upon which this Permission builds
                        array: true
                        index: 23
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: basis}
                            index: 24
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The regulatory grounds upon which this Permission builds
                            choices: [valueCodeableConcept]
                            index: 26
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The regulatory grounds upon which this Permission builds
                            choiceOf: value
                            index: 27
                        required: [url]
                    evidence:
                      match: {url: evidence}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Justifing rational
                        array: true
                        index: 28
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: evidence}
                            index: 29
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Justifing rational
                            choices: [valueReference]
                            index: 31
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: Justifing rational
                            choiceOf: value
                            index: 32
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: justification}
                index: 33
            required: [url]
        combining:
          match: {url: combining}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
            _required: true
            index: 34
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: combining}
                index: 35
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
                choices: [valueCode]
                index: 37
              valueCode:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: code
                short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
                choiceOf: value
                index: 38
            required: [url]
        rule:
          match: {url: rule}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Constraints to the Permission
            array: true
            index: 39
            extensions:
              type:
                url: type
                base: {max: '*', min: 0, path: Extension.extension}
                short: deny | permit
                index: 41
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 42
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: deny | permit
                    choices: [valueCode]
                    index: 44
                  valueCode:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: code
                    short: deny | permit
                    choiceOf: value
                    index: 45
                required: [url]
              data:
                url: data
                base: {max: '*', min: 0, path: Extension.extension}
                short: The selection criteria to identify data that is within scope of this provision
                array: true
                index: 46
                extensions:
                  resource:
                    url: resource
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Explicit FHIR Resource references
                    array: true
                    index: 48
                    extensions:
                      meaning:
                        url: meaning
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: instance | related | dependents | authoredby
                        _required: true
                        index: 50
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: meaning}
                            index: 51
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: instance | related | dependents | authoredby
                            choices: [valueCode]
                            index: 53
                          valueCode:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: code
                            short: instance | related | dependents | authoredby
                            choiceOf: value
                            index: 54
                        required: [url]
                      reference:
                        url: reference
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The actual data reference
                        _required: true
                        index: 55
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: reference}
                            index: 56
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The actual data reference
                            choices: [valueReference]
                            index: 58
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: The actual data reference
                            choiceOf: value
                            index: 59
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        min: 2
                        index: 49
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 2
                          slices:
                            meaning:
                              match: {url: meaning}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                            reference:
                              match: {url: reference}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: resource}
                        index: 60
                    required: [url]
                  security:
                    url: security
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Security tag code on .meta.security
                    array: true
                    index: 61
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: security}
                        index: 62
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Security tag code on .meta.security
                        choices: [valueCoding]
                        index: 64
                      valueCoding:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Coding
                        short: Security tag code on .meta.security
                        choiceOf: value
                        index: 65
                    required: [url]
                  period:
                    url: period
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Timeframe encompasing data create/update
                    array: true
                    index: 66
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: period}
                        index: 67
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Timeframe encompasing data create/update
                        choices: [valuePeriod]
                        index: 69
                      valuePeriod:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Period
                        short: Timeframe encompasing data create/update
                        choiceOf: value
                        index: 70
                    required: [url]
                  expression:
                    url: expression
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Expression identifying the data
                    index: 71
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: expression}
                        index: 72
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Expression identifying the data
                        choices: [valueExpression]
                        index: 74
                      valueExpression:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Expression
                        short: Expression identifying the data
                        choiceOf: value
                        index: 75
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 47
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        resource:
                          match: {url: resource}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Explicit FHIR Resource references
                            array: true
                            index: 48
                            extensions:
                              meaning:
                                url: meaning
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                              reference:
                                url: reference
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                min: 2
                                index: 49
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 2
                                  slices:
                                    meaning:
                                      match: {url: meaning}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: instance | related | dependents | authoredby
                                        _required: true
                                        index: 50
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: meaning}
                                            index: 51
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: instance | related | dependents | authoredby
                                            choices: [valueCode]
                                            index: 53
                                          valueCode:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: code
                                            short: instance | related | dependents | authoredby
                                            choiceOf: value
                                            index: 54
                                        required: [url]
                                    reference:
                                      match: {url: reference}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The actual data reference
                                        _required: true
                                        index: 55
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: reference}
                                            index: 56
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The actual data reference
                                            choices: [valueReference]
                                            index: 58
                                          valueReference:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: Reference
                                            short: The actual data reference
                                            choiceOf: value
                                            index: 59
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: resource}
                                index: 60
                            required: [url]
                        security:
                          match: {url: security}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Security tag code on .meta.security
                            array: true
                            index: 61
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: security}
                                index: 62
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Security tag code on .meta.security
                                choices: [valueCoding]
                                index: 64
                              valueCoding:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Coding
                                short: Security tag code on .meta.security
                                choiceOf: value
                                index: 65
                            required: [url]
                        period:
                          match: {url: period}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Timeframe encompasing data create/update
                            array: true
                            index: 66
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: period}
                                index: 67
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Timeframe encompasing data create/update
                                choices: [valuePeriod]
                                index: 69
                              valuePeriod:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Period
                                short: Timeframe encompasing data create/update
                                choiceOf: value
                                index: 70
                            required: [url]
                        expression:
                          match: {url: expression}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Expression identifying the data
                            index: 71
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: expression}
                                index: 72
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Expression identifying the data
                                choices: [valueExpression]
                                index: 74
                              valueExpression:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Expression
                                short: Expression identifying the data
                                choiceOf: value
                                index: 75
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: data}
                    index: 76
                required: [url]
              activity:
                url: activity
                base: {max: '*', min: 0, path: Extension.extension}
                short: A description or definition of which activities are allowed to be done on the data
                array: true
                index: 77
                extensions:
                  actor:
                    url: actor
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Authorized actor(s)
                    array: true
                    index: 79
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: actor}
                        index: 80
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Authorized actor(s)
                        choices: [valueReference]
                        index: 82
                      valueReference:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Reference
                        short: Authorized actor(s)
                        choiceOf: value
                        index: 83
                    required: [url]
                  action:
                    url: action
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Actions controlled by this rule
                    array: true
                    index: 84
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: action}
                        index: 85
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Actions controlled by this rule
                        choices: [valueCodeableConcept]
                        index: 87
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Actions controlled by this rule
                        choiceOf: value
                        index: 88
                    required: [url]
                  purpose:
                    url: purpose
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The purpose for which the permission is given
                    array: true
                    index: 89
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: purpose}
                        index: 90
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The purpose for which the permission is given
                        choices: [valueCodeableConcept]
                        index: 92
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The purpose for which the permission is given
                        choiceOf: value
                        index: 93
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 78
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        actor:
                          match: {url: actor}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Authorized actor(s)
                            array: true
                            index: 79
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: actor}
                                index: 80
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Authorized actor(s)
                                choices: [valueReference]
                                index: 82
                              valueReference:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Reference
                                short: Authorized actor(s)
                                choiceOf: value
                                index: 83
                            required: [url]
                        action:
                          match: {url: action}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Actions controlled by this rule
                            array: true
                            index: 84
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: action}
                                index: 85
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Actions controlled by this rule
                                choices: [valueCodeableConcept]
                                index: 87
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Actions controlled by this rule
                                choiceOf: value
                                index: 88
                            required: [url]
                        purpose:
                          match: {url: purpose}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The purpose for which the permission is given
                            array: true
                            index: 89
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: purpose}
                                index: 90
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The purpose for which the permission is given
                                choices: [valueCodeableConcept]
                                index: 92
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The purpose for which the permission is given
                                choiceOf: value
                                index: 93
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: activity}
                    index: 94
                required: [url]
              limit:
                url: limit
                base: {max: '*', min: 0, path: Extension.extension}
                short: What limits apply to the use of the data
                array: true
                index: 95
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: limit}
                    index: 96
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: What limits apply to the use of the data
                    choices: [valueCodeableConcept]
                    index: 98
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: What limits apply to the use of the data
                    choiceOf: value
                    index: 99
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 40
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    type:
                      match: {url: type}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: deny | permit
                        index: 41
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 42
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: deny | permit
                            choices: [valueCode]
                            index: 44
                          valueCode:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: code
                            short: deny | permit
                            choiceOf: value
                            index: 45
                        required: [url]
                    data:
                      match: {url: data}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The selection criteria to identify data that is within scope of this provision
                        array: true
                        index: 46
                        extensions:
                          resource:
                            url: resource
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Explicit FHIR Resource references
                            array: true
                            index: 48
                            extensions:
                              meaning:
                                url: meaning
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                              reference:
                                url: reference
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                min: 2
                                index: 49
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 2
                                  slices:
                                    meaning:
                                      match: {url: meaning}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: instance | related | dependents | authoredby
                                        _required: true
                                        index: 50
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: meaning}
                                            index: 51
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: instance | related | dependents | authoredby
                                            choices: [valueCode]
                                            index: 53
                                          valueCode:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: code
                                            short: instance | related | dependents | authoredby
                                            choiceOf: value
                                            index: 54
                                        required: [url]
                                    reference:
                                      match: {url: reference}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The actual data reference
                                        _required: true
                                        index: 55
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: reference}
                                            index: 56
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The actual data reference
                                            choices: [valueReference]
                                            index: 58
                                          valueReference:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: Reference
                                            short: The actual data reference
                                            choiceOf: value
                                            index: 59
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: resource}
                                index: 60
                            required: [url]
                          security:
                            url: security
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Security tag code on .meta.security
                            array: true
                            index: 61
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: security}
                                index: 62
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Security tag code on .meta.security
                                choices: [valueCoding]
                                index: 64
                              valueCoding:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Coding
                                short: Security tag code on .meta.security
                                choiceOf: value
                                index: 65
                            required: [url]
                          period:
                            url: period
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Timeframe encompasing data create/update
                            array: true
                            index: 66
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: period}
                                index: 67
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Timeframe encompasing data create/update
                                choices: [valuePeriod]
                                index: 69
                              valuePeriod:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Period
                                short: Timeframe encompasing data create/update
                                choiceOf: value
                                index: 70
                            required: [url]
                          expression:
                            url: expression
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Expression identifying the data
                            index: 71
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: expression}
                                index: 72
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Expression identifying the data
                                choices: [valueExpression]
                                index: 74
                              valueExpression:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Expression
                                short: Expression identifying the data
                                choiceOf: value
                                index: 75
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 47
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                resource:
                                  match: {url: resource}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Explicit FHIR Resource references
                                    array: true
                                    index: 48
                                    extensions:
                                      meaning:
                                        url: meaning
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: instance | related | dependents | authoredby
                                        _required: true
                                        index: 50
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: meaning}
                                            index: 51
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: instance | related | dependents | authoredby
                                            choices: [valueCode]
                                            index: 53
                                          valueCode:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: code
                                            short: instance | related | dependents | authoredby
                                            choiceOf: value
                                            index: 54
                                        required: [url]
                                      reference:
                                        url: reference
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The actual data reference
                                        _required: true
                                        index: 55
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: reference}
                                            index: 56
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The actual data reference
                                            choices: [valueReference]
                                            index: 58
                                          valueReference:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: Reference
                                            short: The actual data reference
                                            choiceOf: value
                                            index: 59
                                        required: [url]
                                    elements:
                                      extension:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        array: true
                                        min: 2
                                        index: 49
                                        slicing:
                                          rules: closed
                                          ordered: false
                                          discriminator:
                                          - {path: url, type: value}
                                          min: 2
                                          slices:
                                            meaning:
                                              match: {url: meaning}
                                              schema:
                                                base: {max: '*', min: 0, path: Extension.extension}
                                                short: instance | related | dependents | authoredby
                                                _required: true
                                                index: 50
                                                elements:
                                                  url:
                                                    base: {max: '1', min: 1, path: Extension.url}
                                                    pattern: {type: Uri, value: meaning}
                                                    index: 51
                                                  value:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    short: instance | related | dependents | authoredby
                                                    choices: [valueCode]
                                                    index: 53
                                                  valueCode:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    type: code
                                                    short: instance | related | dependents | authoredby
                                                    choiceOf: value
                                                    index: 54
                                                required: [url]
                                            reference:
                                              match: {url: reference}
                                              schema:
                                                base: {max: '*', min: 0, path: Extension.extension}
                                                short: The actual data reference
                                                _required: true
                                                index: 55
                                                elements:
                                                  url:
                                                    base: {max: '1', min: 1, path: Extension.url}
                                                    pattern: {type: Uri, value: reference}
                                                    index: 56
                                                  value:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    short: The actual data reference
                                                    choices: [valueReference]
                                                    index: 58
                                                  valueReference:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    type: Reference
                                                    short: The actual data reference
                                                    choiceOf: value
                                                    index: 59
                                                required: [url]
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: resource}
                                        index: 60
                                    required: [url]
                                security:
                                  match: {url: security}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Security tag code on .meta.security
                                    array: true
                                    index: 61
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: security}
                                        index: 62
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Security tag code on .meta.security
                                        choices: [valueCoding]
                                        index: 64
                                      valueCoding:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Coding
                                        short: Security tag code on .meta.security
                                        choiceOf: value
                                        index: 65
                                    required: [url]
                                period:
                                  match: {url: period}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Timeframe encompasing data create/update
                                    array: true
                                    index: 66
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: period}
                                        index: 67
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Timeframe encompasing data create/update
                                        choices: [valuePeriod]
                                        index: 69
                                      valuePeriod:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Period
                                        short: Timeframe encompasing data create/update
                                        choiceOf: value
                                        index: 70
                                    required: [url]
                                expression:
                                  match: {url: expression}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Expression identifying the data
                                    index: 71
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: expression}
                                        index: 72
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Expression identifying the data
                                        choices: [valueExpression]
                                        index: 74
                                      valueExpression:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Expression
                                        short: Expression identifying the data
                                        choiceOf: value
                                        index: 75
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: data}
                            index: 76
                        required: [url]
                    activity:
                      match: {url: activity}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: A description or definition of which activities are allowed to be done on the data
                        array: true
                        index: 77
                        extensions:
                          actor:
                            url: actor
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Authorized actor(s)
                            array: true
                            index: 79
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: actor}
                                index: 80
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Authorized actor(s)
                                choices: [valueReference]
                                index: 82
                              valueReference:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Reference
                                short: Authorized actor(s)
                                choiceOf: value
                                index: 83
                            required: [url]
                          action:
                            url: action
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Actions controlled by this rule
                            array: true
                            index: 84
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: action}
                                index: 85
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Actions controlled by this rule
                                choices: [valueCodeableConcept]
                                index: 87
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Actions controlled by this rule
                                choiceOf: value
                                index: 88
                            required: [url]
                          purpose:
                            url: purpose
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The purpose for which the permission is given
                            array: true
                            index: 89
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: purpose}
                                index: 90
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The purpose for which the permission is given
                                choices: [valueCodeableConcept]
                                index: 92
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The purpose for which the permission is given
                                choiceOf: value
                                index: 93
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 78
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                actor:
                                  match: {url: actor}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Authorized actor(s)
                                    array: true
                                    index: 79
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: actor}
                                        index: 80
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Authorized actor(s)
                                        choices: [valueReference]
                                        index: 82
                                      valueReference:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Reference
                                        short: Authorized actor(s)
                                        choiceOf: value
                                        index: 83
                                    required: [url]
                                action:
                                  match: {url: action}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Actions controlled by this rule
                                    array: true
                                    index: 84
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: action}
                                        index: 85
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Actions controlled by this rule
                                        choices: [valueCodeableConcept]
                                        index: 87
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: Actions controlled by this rule
                                        choiceOf: value
                                        index: 88
                                    required: [url]
                                purpose:
                                  match: {url: purpose}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The purpose for which the permission is given
                                    array: true
                                    index: 89
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: purpose}
                                        index: 90
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The purpose for which the permission is given
                                        choices: [valueCodeableConcept]
                                        index: 92
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The purpose for which the permission is given
                                        choiceOf: value
                                        index: 93
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: activity}
                            index: 94
                        required: [url]
                    limit:
                      match: {url: limit}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: What limits apply to the use of the data
                        array: true
                        index: 95
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: limit}
                            index: 96
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: What limits apply to the use of the data
                            choices: [valueCodeableConcept]
                            index: 98
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: What limits apply to the use of the data
                            choiceOf: value
                            index: 99
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: rule}
                index: 100
            required: [url]
  url:
    base: {max: '1', min: 1, path: Extension.url}
    pattern: {type: Uri, value: 'http://hl7.org/fhir/5.0/StructureDefinition/extension-Permission'}
    index: 101
package_version: 0.0.1-snapshot-2
extensions:
  status:
    url: status
    base: {max: '*', min: 0, path: Extension.extension}
    short: active | entered-in-error | draft | rejected
    _required: true
    index: 1
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: status}
        index: 2
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: active | entered-in-error | draft | rejected
        choices: [valueCode]
        index: 4
      valueCode:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: code
        short: active | entered-in-error | draft | rejected
        choiceOf: value
        index: 5
    required: [url]
  asserter:
    url: asserter
    base: {max: '*', min: 0, path: Extension.extension}
    short: The person or entity that asserts the permission
    index: 6
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: asserter}
        index: 7
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: The person or entity that asserts the permission
        choices: [valueReference]
        index: 9
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: The person or entity that asserts the permission
        choiceOf: value
        index: 10
    required: [url]
  date:
    url: date
    base: {max: '*', min: 0, path: Extension.extension}
    short: The date that permission was asserted
    array: true
    index: 11
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: date}
        index: 12
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: The date that permission was asserted
        choices: [valueDateTime]
        index: 14
      valueDateTime:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: dateTime
        short: The date that permission was asserted
        choiceOf: value
        index: 15
    required: [url]
  validity:
    url: validity
    base: {max: '*', min: 0, path: Extension.extension}
    short: The period in which the permission is active
    index: 16
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: validity}
        index: 17
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: The period in which the permission is active
        choices: [valuePeriod]
        index: 19
      valuePeriod:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Period
        short: The period in which the permission is active
        choiceOf: value
        index: 20
    required: [url]
  justification:
    url: justification
    base: {max: '*', min: 0, path: Extension.extension}
    short: The asserted justification for using the data
    index: 21
    extensions:
      basis:
        url: basis
        base: {max: '*', min: 0, path: Extension.extension}
        short: The regulatory grounds upon which this Permission builds
        array: true
        index: 23
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: basis}
            index: 24
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The regulatory grounds upon which this Permission builds
            choices: [valueCodeableConcept]
            index: 26
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The regulatory grounds upon which this Permission builds
            choiceOf: value
            index: 27
        required: [url]
      evidence:
        url: evidence
        base: {max: '*', min: 0, path: Extension.extension}
        short: Justifing rational
        array: true
        index: 28
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: evidence}
            index: 29
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Justifing rational
            choices: [valueReference]
            index: 31
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: Justifing rational
            choiceOf: value
            index: 32
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 22
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            basis:
              match: {url: basis}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The regulatory grounds upon which this Permission builds
                array: true
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: basis}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The regulatory grounds upon which this Permission builds
                    choices: [valueCodeableConcept]
                    index: 26
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The regulatory grounds upon which this Permission builds
                    choiceOf: value
                    index: 27
                required: [url]
            evidence:
              match: {url: evidence}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Justifing rational
                array: true
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: evidence}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Justifing rational
                    choices: [valueReference]
                    index: 31
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Justifing rational
                    choiceOf: value
                    index: 32
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: justification}
        index: 33
    required: [url]
  combining:
    url: combining
    base: {max: '*', min: 0, path: Extension.extension}
    short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
    _required: true
    index: 34
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: combining}
        index: 35
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
        choices: [valueCode]
        index: 37
      valueCode:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: code
        short: deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
        choiceOf: value
        index: 38
    required: [url]
  rule:
    url: rule
    base: {max: '*', min: 0, path: Extension.extension}
    short: Constraints to the Permission
    array: true
    index: 39
    extensions:
      type:
        url: type
        base: {max: '*', min: 0, path: Extension.extension}
        short: deny | permit
        index: 41
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: type}
            index: 42
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: deny | permit
            choices: [valueCode]
            index: 44
          valueCode:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: code
            short: deny | permit
            choiceOf: value
            index: 45
        required: [url]
      data:
        url: data
        base: {max: '*', min: 0, path: Extension.extension}
        short: The selection criteria to identify data that is within scope of this provision
        array: true
        index: 46
        extensions:
          resource:
            url: resource
            base: {max: '*', min: 0, path: Extension.extension}
            short: Explicit FHIR Resource references
            array: true
            index: 48
            extensions:
              meaning:
                url: meaning
                base: {max: '*', min: 0, path: Extension.extension}
                short: instance | related | dependents | authoredby
                _required: true
                index: 50
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: meaning}
                    index: 51
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: instance | related | dependents | authoredby
                    choices: [valueCode]
                    index: 53
                  valueCode:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: code
                    short: instance | related | dependents | authoredby
                    choiceOf: value
                    index: 54
                required: [url]
              reference:
                url: reference
                base: {max: '*', min: 0, path: Extension.extension}
                short: The actual data reference
                _required: true
                index: 55
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: reference}
                    index: 56
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The actual data reference
                    choices: [valueReference]
                    index: 58
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: The actual data reference
                    choiceOf: value
                    index: 59
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                min: 2
                index: 49
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 2
                  slices:
                    meaning:
                      match: {url: meaning}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: instance | related | dependents | authoredby
                        _required: true
                        index: 50
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: meaning}
                            index: 51
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: instance | related | dependents | authoredby
                            choices: [valueCode]
                            index: 53
                          valueCode:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: code
                            short: instance | related | dependents | authoredby
                            choiceOf: value
                            index: 54
                        required: [url]
                    reference:
                      match: {url: reference}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The actual data reference
                        _required: true
                        index: 55
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: reference}
                            index: 56
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The actual data reference
                            choices: [valueReference]
                            index: 58
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: The actual data reference
                            choiceOf: value
                            index: 59
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: resource}
                index: 60
            required: [url]
          security:
            url: security
            base: {max: '*', min: 0, path: Extension.extension}
            short: Security tag code on .meta.security
            array: true
            index: 61
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: security}
                index: 62
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Security tag code on .meta.security
                choices: [valueCoding]
                index: 64
              valueCoding:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Coding
                short: Security tag code on .meta.security
                choiceOf: value
                index: 65
            required: [url]
          period:
            url: period
            base: {max: '*', min: 0, path: Extension.extension}
            short: Timeframe encompasing data create/update
            array: true
            index: 66
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: period}
                index: 67
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Timeframe encompasing data create/update
                choices: [valuePeriod]
                index: 69
              valuePeriod:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Period
                short: Timeframe encompasing data create/update
                choiceOf: value
                index: 70
            required: [url]
          expression:
            url: expression
            base: {max: '*', min: 0, path: Extension.extension}
            short: Expression identifying the data
            index: 71
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: expression}
                index: 72
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Expression identifying the data
                choices: [valueExpression]
                index: 74
              valueExpression:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Expression
                short: Expression identifying the data
                choiceOf: value
                index: 75
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 47
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                resource:
                  match: {url: resource}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Explicit FHIR Resource references
                    array: true
                    index: 48
                    extensions:
                      meaning:
                        url: meaning
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: instance | related | dependents | authoredby
                        _required: true
                        index: 50
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: meaning}
                            index: 51
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: instance | related | dependents | authoredby
                            choices: [valueCode]
                            index: 53
                          valueCode:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: code
                            short: instance | related | dependents | authoredby
                            choiceOf: value
                            index: 54
                        required: [url]
                      reference:
                        url: reference
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The actual data reference
                        _required: true
                        index: 55
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: reference}
                            index: 56
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The actual data reference
                            choices: [valueReference]
                            index: 58
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: The actual data reference
                            choiceOf: value
                            index: 59
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        min: 2
                        index: 49
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 2
                          slices:
                            meaning:
                              match: {url: meaning}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                            reference:
                              match: {url: reference}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: resource}
                        index: 60
                    required: [url]
                security:
                  match: {url: security}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Security tag code on .meta.security
                    array: true
                    index: 61
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: security}
                        index: 62
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Security tag code on .meta.security
                        choices: [valueCoding]
                        index: 64
                      valueCoding:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Coding
                        short: Security tag code on .meta.security
                        choiceOf: value
                        index: 65
                    required: [url]
                period:
                  match: {url: period}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Timeframe encompasing data create/update
                    array: true
                    index: 66
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: period}
                        index: 67
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Timeframe encompasing data create/update
                        choices: [valuePeriod]
                        index: 69
                      valuePeriod:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Period
                        short: Timeframe encompasing data create/update
                        choiceOf: value
                        index: 70
                    required: [url]
                expression:
                  match: {url: expression}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Expression identifying the data
                    index: 71
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: expression}
                        index: 72
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Expression identifying the data
                        choices: [valueExpression]
                        index: 74
                      valueExpression:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Expression
                        short: Expression identifying the data
                        choiceOf: value
                        index: 75
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: data}
            index: 76
        required: [url]
      activity:
        url: activity
        base: {max: '*', min: 0, path: Extension.extension}
        short: A description or definition of which activities are allowed to be done on the data
        array: true
        index: 77
        extensions:
          actor:
            url: actor
            base: {max: '*', min: 0, path: Extension.extension}
            short: Authorized actor(s)
            array: true
            index: 79
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: actor}
                index: 80
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Authorized actor(s)
                choices: [valueReference]
                index: 82
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Authorized actor(s)
                choiceOf: value
                index: 83
            required: [url]
          action:
            url: action
            base: {max: '*', min: 0, path: Extension.extension}
            short: Actions controlled by this rule
            array: true
            index: 84
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: action}
                index: 85
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Actions controlled by this rule
                choices: [valueCodeableConcept]
                index: 87
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Actions controlled by this rule
                choiceOf: value
                index: 88
            required: [url]
          purpose:
            url: purpose
            base: {max: '*', min: 0, path: Extension.extension}
            short: The purpose for which the permission is given
            array: true
            index: 89
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: purpose}
                index: 90
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The purpose for which the permission is given
                choices: [valueCodeableConcept]
                index: 92
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The purpose for which the permission is given
                choiceOf: value
                index: 93
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 78
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                actor:
                  match: {url: actor}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Authorized actor(s)
                    array: true
                    index: 79
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: actor}
                        index: 80
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Authorized actor(s)
                        choices: [valueReference]
                        index: 82
                      valueReference:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Reference
                        short: Authorized actor(s)
                        choiceOf: value
                        index: 83
                    required: [url]
                action:
                  match: {url: action}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Actions controlled by this rule
                    array: true
                    index: 84
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: action}
                        index: 85
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Actions controlled by this rule
                        choices: [valueCodeableConcept]
                        index: 87
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Actions controlled by this rule
                        choiceOf: value
                        index: 88
                    required: [url]
                purpose:
                  match: {url: purpose}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The purpose for which the permission is given
                    array: true
                    index: 89
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: purpose}
                        index: 90
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The purpose for which the permission is given
                        choices: [valueCodeableConcept]
                        index: 92
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The purpose for which the permission is given
                        choiceOf: value
                        index: 93
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: activity}
            index: 94
        required: [url]
      limit:
        url: limit
        base: {max: '*', min: 0, path: Extension.extension}
        short: What limits apply to the use of the data
        array: true
        index: 95
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: limit}
            index: 96
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: What limits apply to the use of the data
            choices: [valueCodeableConcept]
            index: 98
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: What limits apply to the use of the data
            choiceOf: value
            index: 99
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 40
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            type:
              match: {url: type}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: deny | permit
                index: 41
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 42
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: deny | permit
                    choices: [valueCode]
                    index: 44
                  valueCode:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: code
                    short: deny | permit
                    choiceOf: value
                    index: 45
                required: [url]
            data:
              match: {url: data}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The selection criteria to identify data that is within scope of this provision
                array: true
                index: 46
                extensions:
                  resource:
                    url: resource
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Explicit FHIR Resource references
                    array: true
                    index: 48
                    extensions:
                      meaning:
                        url: meaning
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: instance | related | dependents | authoredby
                        _required: true
                        index: 50
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: meaning}
                            index: 51
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: instance | related | dependents | authoredby
                            choices: [valueCode]
                            index: 53
                          valueCode:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: code
                            short: instance | related | dependents | authoredby
                            choiceOf: value
                            index: 54
                        required: [url]
                      reference:
                        url: reference
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The actual data reference
                        _required: true
                        index: 55
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: reference}
                            index: 56
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The actual data reference
                            choices: [valueReference]
                            index: 58
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: The actual data reference
                            choiceOf: value
                            index: 59
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        min: 2
                        index: 49
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 2
                          slices:
                            meaning:
                              match: {url: meaning}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                            reference:
                              match: {url: reference}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: resource}
                        index: 60
                    required: [url]
                  security:
                    url: security
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Security tag code on .meta.security
                    array: true
                    index: 61
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: security}
                        index: 62
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Security tag code on .meta.security
                        choices: [valueCoding]
                        index: 64
                      valueCoding:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Coding
                        short: Security tag code on .meta.security
                        choiceOf: value
                        index: 65
                    required: [url]
                  period:
                    url: period
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Timeframe encompasing data create/update
                    array: true
                    index: 66
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: period}
                        index: 67
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Timeframe encompasing data create/update
                        choices: [valuePeriod]
                        index: 69
                      valuePeriod:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Period
                        short: Timeframe encompasing data create/update
                        choiceOf: value
                        index: 70
                    required: [url]
                  expression:
                    url: expression
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Expression identifying the data
                    index: 71
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: expression}
                        index: 72
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Expression identifying the data
                        choices: [valueExpression]
                        index: 74
                      valueExpression:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Expression
                        short: Expression identifying the data
                        choiceOf: value
                        index: 75
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 47
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        resource:
                          match: {url: resource}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Explicit FHIR Resource references
                            array: true
                            index: 48
                            extensions:
                              meaning:
                                url: meaning
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: instance | related | dependents | authoredby
                                _required: true
                                index: 50
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: meaning}
                                    index: 51
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: instance | related | dependents | authoredby
                                    choices: [valueCode]
                                    index: 53
                                  valueCode:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: code
                                    short: instance | related | dependents | authoredby
                                    choiceOf: value
                                    index: 54
                                required: [url]
                              reference:
                                url: reference
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The actual data reference
                                _required: true
                                index: 55
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: reference}
                                    index: 56
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The actual data reference
                                    choices: [valueReference]
                                    index: 58
                                  valueReference:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: Reference
                                    short: The actual data reference
                                    choiceOf: value
                                    index: 59
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                min: 2
                                index: 49
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 2
                                  slices:
                                    meaning:
                                      match: {url: meaning}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: instance | related | dependents | authoredby
                                        _required: true
                                        index: 50
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: meaning}
                                            index: 51
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: instance | related | dependents | authoredby
                                            choices: [valueCode]
                                            index: 53
                                          valueCode:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: code
                                            short: instance | related | dependents | authoredby
                                            choiceOf: value
                                            index: 54
                                        required: [url]
                                    reference:
                                      match: {url: reference}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The actual data reference
                                        _required: true
                                        index: 55
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: reference}
                                            index: 56
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The actual data reference
                                            choices: [valueReference]
                                            index: 58
                                          valueReference:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: Reference
                                            short: The actual data reference
                                            choiceOf: value
                                            index: 59
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: resource}
                                index: 60
                            required: [url]
                        security:
                          match: {url: security}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Security tag code on .meta.security
                            array: true
                            index: 61
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: security}
                                index: 62
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Security tag code on .meta.security
                                choices: [valueCoding]
                                index: 64
                              valueCoding:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Coding
                                short: Security tag code on .meta.security
                                choiceOf: value
                                index: 65
                            required: [url]
                        period:
                          match: {url: period}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Timeframe encompasing data create/update
                            array: true
                            index: 66
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: period}
                                index: 67
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Timeframe encompasing data create/update
                                choices: [valuePeriod]
                                index: 69
                              valuePeriod:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Period
                                short: Timeframe encompasing data create/update
                                choiceOf: value
                                index: 70
                            required: [url]
                        expression:
                          match: {url: expression}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Expression identifying the data
                            index: 71
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: expression}
                                index: 72
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Expression identifying the data
                                choices: [valueExpression]
                                index: 74
                              valueExpression:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Expression
                                short: Expression identifying the data
                                choiceOf: value
                                index: 75
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: data}
                    index: 76
                required: [url]
            activity:
              match: {url: activity}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: A description or definition of which activities are allowed to be done on the data
                array: true
                index: 77
                extensions:
                  actor:
                    url: actor
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Authorized actor(s)
                    array: true
                    index: 79
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: actor}
                        index: 80
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Authorized actor(s)
                        choices: [valueReference]
                        index: 82
                      valueReference:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Reference
                        short: Authorized actor(s)
                        choiceOf: value
                        index: 83
                    required: [url]
                  action:
                    url: action
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Actions controlled by this rule
                    array: true
                    index: 84
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: action}
                        index: 85
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Actions controlled by this rule
                        choices: [valueCodeableConcept]
                        index: 87
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Actions controlled by this rule
                        choiceOf: value
                        index: 88
                    required: [url]
                  purpose:
                    url: purpose
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The purpose for which the permission is given
                    array: true
                    index: 89
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: purpose}
                        index: 90
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The purpose for which the permission is given
                        choices: [valueCodeableConcept]
                        index: 92
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The purpose for which the permission is given
                        choiceOf: value
                        index: 93
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 78
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        actor:
                          match: {url: actor}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Authorized actor(s)
                            array: true
                            index: 79
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: actor}
                                index: 80
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Authorized actor(s)
                                choices: [valueReference]
                                index: 82
                              valueReference:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Reference
                                short: Authorized actor(s)
                                choiceOf: value
                                index: 83
                            required: [url]
                        action:
                          match: {url: action}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Actions controlled by this rule
                            array: true
                            index: 84
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: action}
                                index: 85
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Actions controlled by this rule
                                choices: [valueCodeableConcept]
                                index: 87
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Actions controlled by this rule
                                choiceOf: value
                                index: 88
                            required: [url]
                        purpose:
                          match: {url: purpose}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The purpose for which the permission is given
                            array: true
                            index: 89
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: purpose}
                                index: 90
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The purpose for which the permission is given
                                choices: [valueCodeableConcept]
                                index: 92
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The purpose for which the permission is given
                                choiceOf: value
                                index: 93
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: activity}
                    index: 94
                required: [url]
            limit:
              match: {url: limit}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: What limits apply to the use of the data
                array: true
                index: 95
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: limit}
                    index: 96
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: What limits apply to the use of the data
                    choices: [valueCodeableConcept]
                    index: 98
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: What limits apply to the use of the data
                    choiceOf: value
                    index: 99
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: rule}
        index: 100
    required: [url]
class: extension
kind: complex-type
url: http://hl7.org/fhir/5.0/StructureDefinition/extension-Permission
base: http://hl7.org/fhir/StructureDefinition/Extension|4.3.0
version: 0.0.1-snapshot-2
required: [url]