PackagesCanonicalsLogsProblems
    Packages
    synapxe.hsar@1.0.0
    http://ihis.sg/StructureDefinition/Parameters/PutContactConsentParameter
description: null
package_name: synapxe.hsar
derivation: constraint
name: parameters-Consent-put-contact-consent
type: Parameters
elements:
  parameter:
    array: true
    min: 5
    max: 5
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: name, type: value}
      min: 5
      max: 5
      slices:
        channelSmsParameter:
          match: {name: channel-sms}
          schema:
            _required: true
            index: 1
            elements:
              name:
                pattern: {type: String, value: channel-sms}
                index: 2
              part:
                array: true
                min: 2
                max: 2
                index: 3
                slicing:
                  rules: open
                  discriminator:
                  - {path: name, type: value}
                  min: 2
                  max: 2
                  slices:
                    type:
                      match: {name: type}
                      schema:
                        _required: true
                        index: 4
                        elements:
                          name:
                            pattern: {type: String, value: type}
                            index: 5
                          value:
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choices: [valueCode]
                            index: 7
                          valueCode:
                            type: code
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choiceOf: value
                            index: 8
                        required: [valueCode, value]
                    period:
                      match: {name: period}
                      schema:
                        _required: true
                        index: 9
                        elements:
                          name:
                            pattern: {type: String, value: period}
                            index: 10
                          value:
                            choices: [valuePeriod]
                            index: 12
                          valuePeriod: {type: Period, choiceOf: value, index: 13}
                          value[x]:
                            elements:
                              start: {short: 'The start of the period. The boundary is inclusive. Sample Value: "2022-09-09T09:44:32+08:00"', index: 14}
                            required: [start]
        channelPhoneParameter:
          match: {name: channel-phone}
          schema:
            _required: true
            index: 15
            elements:
              name:
                pattern: {type: String, value: channel-phone}
                index: 16
              part:
                array: true
                min: 2
                max: 2
                index: 17
                slicing:
                  rules: open
                  discriminator:
                  - {path: name, type: value}
                  min: 2
                  max: 2
                  slices:
                    type:
                      match: {name: type}
                      schema:
                        _required: true
                        index: 18
                        elements:
                          name:
                            pattern: {type: String, value: type}
                            index: 19
                          value:
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choices: [valueCode]
                            index: 21
                          valueCode:
                            type: code
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choiceOf: value
                            index: 22
                        required: [valueCode, value]
                    period:
                      match: {name: period}
                      schema:
                        _required: true
                        index: 23
                        elements:
                          name:
                            pattern: {type: String, value: period}
                            index: 24
                          value:
                            choices: [valuePeriod]
                            index: 26
                          valuePeriod: {type: Period, choiceOf: value, index: 27}
                          value[x]:
                            elements:
                              start: {short: 'The start of the period. The boundary is inclusive. Sample Value: "2022-09-09T09:44:32+08:00"', index: 28}
                            required: [start]
        channelEmailParameter:
          match: {name: channel-email}
          schema:
            _required: true
            index: 29
            elements:
              name:
                pattern: {type: String, value: channel-email}
                index: 30
              part:
                array: true
                min: 2
                max: 2
                index: 31
                slicing:
                  rules: open
                  discriminator:
                  - {path: name, type: value}
                  min: 2
                  max: 2
                  slices:
                    type:
                      match: {name: type}
                      schema:
                        _required: true
                        index: 32
                        elements:
                          name:
                            pattern: {type: String, value: type}
                            index: 33
                          value:
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choices: [valueCode]
                            index: 35
                          valueCode:
                            type: code
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choiceOf: value
                            index: 36
                        required: [valueCode, value]
                    period:
                      match: {name: period}
                      schema:
                        _required: true
                        index: 37
                        elements:
                          name:
                            pattern: {type: String, value: period}
                            index: 38
                          value:
                            choices: [valuePeriod]
                            index: 40
                          valuePeriod: {type: Period, choiceOf: value, index: 41}
                          value[x]:
                            elements:
                              start: {short: 'The start of the period. The boundary is inclusive. Sample Value: "2022-09-09T09:44:32+08:00"', index: 42}
                            required: [start]
        channelMailParameter:
          match: {name: channel-mail}
          schema:
            _required: true
            index: 43
            elements:
              name:
                pattern: {type: String, value: channel-mail}
                index: 44
              part:
                array: true
                min: 2
                max: 2
                index: 45
                slicing:
                  rules: open
                  discriminator:
                  - {path: name, type: value}
                  min: 2
                  max: 2
                  slices:
                    type:
                      match: {name: type}
                      schema:
                        _required: true
                        index: 46
                        elements:
                          name:
                            pattern: {type: String, value: type}
                            index: 47
                          value:
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choices: [valueCode]
                            index: 49
                          valueCode:
                            type: code
                            short: Either "permit" or "deny"
                            constraint:
                              type-value-constraint: {human: 'The ''valueCode'' under ''name: type'' must be either ''permit'' or ''deny''', severity: error, expression: $this.toString().matches('^(permit|deny)$')}
                            choiceOf: value
                            index: 50
                        required: [valueCode, value]
                    period:
                      match: {name: period}
                      schema:
                        _required: true
                        index: 51
                        elements:
                          name:
                            pattern: {type: String, value: period}
                            index: 52
                          value:
                            choices: [valuePeriod]
                            index: 54
                          valuePeriod: {type: Period, choiceOf: value, index: 55}
                          value[x]:
                            elements:
                              start: {short: 'The start of the period. The boundary is inclusive. Sample Value: "2022-09-09T09:44:32+08:00"', index: 56}
                            required: [start]
        contactConsentParameter:
          match: {name: contact-channel-consent}
          schema:
            _required: true
            index: 57
            elements:
              name:
                pattern: {type: String, value: contact-channel-consent}
                index: 58
              resource: {type: Resource, index: 59}
            required: [resource]
package_version: 1.0.0
class: profile
kind: resource
url: http://ihis.sg/StructureDefinition/Parameters/PutContactConsentParameter
base: http://hl7.org/fhir/StructureDefinition/Parameters
version: null