PackagesCanonicalsLogsProblems
    Packages
    se.electronichealth.fhir.ppdr.r5@0.1.4-alpha
    http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps
description: null
package_name: se.electronichealth.fhir.ppdr.r5
derivation: constraint
name: ProxyPermissionPs
type: Permission
elements:
  status:
    short: active | rejected
    binding: {strength: required, valueSet: 'http://electronichealth.se/fhir/NDI/ValueSet/ps-proxy-permission-statuses'}
    mustSupport: true
    index: 0
  asserter:
    type: Reference
    mustSupport: true
    refers: ['http://electronichealth.se/fhir/NDI/StructureDefinition/patient-data-access']
    index: 1
    elements:
      identifier:
        constraint:
          ndi-personal-identity-number-value-1: {human: 'A Swedish personal identity number (sv: personnummer) should follow format 198001032385', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\d{4}$'') or system != ''http://electronichealth.se/identifier/personnummer'''}
          ndi-coordination-number-value-1: {human: 'A Swedish coordination number (sv: samordningsnummer) should follow format 201903682399', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])([6-9][1-9])\\d{4}$'') or system != ''http://electronichealth.se/identifier/samordningsnummer'''}
        mustSupport: true
        index: 2
        elements:
          system: {mustSupport: true, index: 3}
          value: {mustSupport: true, index: 4}
        required: [value, system]
    required: [identifier]
  date:
    constraint:
      ndi-dateTime-1: {human: DateTime must be without timestamp, source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: $this.toString().contains('T') = false}
    mustSupport: true
    index: 5
  validity:
    mustSupport: true
    index: 6
    elements:
      start:
        constraint:
          ndi-dateTime-1: {human: DateTime must be without timestamp, source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: $this.toString().contains('T') = false}
        mustSupport: true
        index: 7
      end:
        constraint:
          ndi-dateTime-1: {human: DateTime must be without timestamp, source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: $this.toString().contains('T') = false}
        mustSupport: true
        index: 8
    required: [start]
  justification:
    mustSupport: true
    index: 9
    elements:
      evidence:
        type: Reference
        mustSupport: true
        refers: ['http://electronichealth.se/fhir/NDI/StructureDefinition/power-of-attorney-poa', 'http://hl7.org/fhir/StructureDefinition/RelatedPerson']
        index: 10
        elements:
          reference: {mustSupport: true, index: 11}
        required: [reference]
    required: [evidence]
  combining:
    pattern: {type: Code, value: deny-unless-permit}
    mustSupport: true
    index: 12
  rule:
    mustSupport: true
    index: 13
    elements:
      type:
        pattern: {type: Code, value: permit}
        mustSupport: true
        index: 14
      data:
        mustSupport: true
        index: 15
        extensions:
          documentType:
            url: http://electronichealth.se/fhir/NDI/StructureDefinition/permission-data-document-type-ps
            type: Extension
            mustSupport: true
            index: 16
            elements:
              value:
                mustSupport: true
                choices: []
                index: 18
              value[x]:
                elements:
                  coding:
                    mustSupport: true
                    index: 19
                    elements:
                      system: {mustSupport: true, index: 20}
                      code: {mustSupport: true, index: 21}
                    required: [system, code]
                required: [coding]
            required: [value]
        elements:
          extension:
            type: Extension
            mustSupport: true
            url: http://electronichealth.se/fhir/NDI/StructureDefinition/permission-data-document-type-ps
            index: 16
            slicing:
              slices:
                documentType:
                  match: {}
                  schema:
                    type: Extension
                    mustSupport: true
                    url: http://electronichealth.se/fhir/NDI/StructureDefinition/permission-data-document-type-ps
                    index: 16
                    elements:
                      value:
                        mustSupport: true
                        choices: []
                        index: 18
                      value[x]:
                        elements:
                          coding:
                            mustSupport: true
                            index: 19
                            elements:
                              system: {mustSupport: true, index: 20}
                              code: {mustSupport: true, index: 21}
                            required: [system, code]
                        required: [coding]
                    required: [value]
          resource:
            mustSupport: true
            index: 22
            elements:
              meaning: {mustSupport: true, index: 23}
              reference: {mustSupport: true, index: 24}
            slicing:
              rules: open
              ordered: false
              description: Slice data based on meaning
              discriminator:
              - {path: meaning, type: value}
              min: null
              slices:
                fromCaregiverOrUnit:
                  match: {meaning: authoredby}
                  schema:
                    mustSupport: true
                    array: true
                    index: 25
                    elements:
                      meaning:
                        pattern: {type: Code, value: authoredby}
                        index: 26
                      reference:
                        type: Reference
                        refers: ['http://electronichealth.se/fhir/NDI/StructureDefinition/organization-data-access']
                        index: 27
                        elements:
                          reference: {mustSupport: true, index: 28}
                          identifier:
                            constraint:
                              ndi-organization-identifier-value-1: {human: 'A Swedish organization identifier (sv: organisationsnummer) should follow format 7999000057', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^\\d{6}\\d{4}$'') or system != ''urn:oid:2.5.4.97'''}
                              ndi-personal-identity-number-value-1: {human: 'A Swedish personal identity number (sv: personnummer) should follow format 198001032385', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\d{4}$'') or system != ''http://electronichealth.se/identifier/personnummer'''}
                              ndi-coordination-number-value-1: {human: 'A Swedish coordination number (sv: samordningsnummer) should follow format 201903682399', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])([6-9][1-9])\\d{4}$'') or system != ''http://electronichealth.se/identifier/samordningsnummer'''}
                            mustSupport: true
                            index: 29
                            elements:
                              system: {mustSupport: true, index: 30}
                              value: {mustSupport: true, index: 31}
                            required: [value, system]
          period:
            mustSupport: true
            index: 32
            elements:
              start:
                constraint:
                  ndi-dateTime-1: {human: DateTime must be without timestamp, source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: $this.toString().contains('T') = false}
                mustSupport: true
                index: 33
              end:
                constraint:
                  ndi-dateTime-1: {human: DateTime must be without timestamp, source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: $this.toString().contains('T') = false}
                mustSupport: true
                index: 34
      activity:
        mustSupport: true
        index: 35
        elements:
          actor:
            type: Reference
            mustSupport: true
            refers: ['http://hl7.org/fhir/StructureDefinition/RelatedPerson']
            index: 36
            elements:
              identifier:
                constraint:
                  ndi-personal-identity-number-value-1: {human: 'A Swedish personal identity number (sv: personnummer) should follow format 198001032385', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\d{4}$'') or system != ''http://electronichealth.se/identifier/personnummer'''}
                  ndi-coordination-number-value-1: {human: 'A Swedish coordination number (sv: samordningsnummer) should follow format 201903682399', source: 'http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps', severity: error, expression: 'value.matches(''^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(0[1-9]|1[0-2])([6-9][1-9])\\d{4}$'') or system != ''http://electronichealth.se/identifier/samordningsnummer'''}
                mustSupport: true
                index: 37
                elements:
                  system: {mustSupport: true, index: 38}
                  value: {mustSupport: true, index: 39}
                required: [value, system]
            required: [identifier]
          action:
            binding: {strength: required, valueSet: 'http://electronichealth.se/fhir/NDI/ValueSet/ps-permission-actions'}
            mustSupport: true
            index: 40
            elements:
              coding:
                mustSupport: true
                index: 41
                elements:
                  system: {mustSupport: true, index: 42}
                  code: {mustSupport: true, index: 43}
                required: [system, code]
            required: [coding]
        required: [action, actor]
    required: [activity, type]
package_version: 0.1.4-alpha
class: profile
kind: resource
url: http://electronichealth.se/fhir/NDI/StructureDefinition/proxy-permission-ps
base: http://hl7.org/fhir/StructureDefinition/Permission
version: 0.1.0
required: [rule, validity, asserter, date]