PackagesCanonicalsLogsProblems
    Packages
    se.electronichealth.fhir.nppr.r5@0.1.0-alpha
    http://electronichealth.se/fhir/NPPR/StructureDefinition/NPPRPractitioner
description: Profile for representing basic data pertaining to the professional qualities of an individual working in the healthcare sector or with the competence to do so.
package_name: se.electronichealth.fhir.nppr.r5
derivation: constraint
name: NPPRPractitioner
type: Practitioner
elements:
  identifier:
    mustSupport: true
    index: 0
    elements:
      system: {mustSupport: true, index: 1}
      value: {mustSupport: true, index: 2}
    required: [value, system]
    slicing:
      rules: open
      ordered: false
      description: Slice identifier based on the system value
      discriminator:
      - {path: system, type: value}
      min: 1
      max: 1
      slices:
        personalIdentityNumber:
          match: {system: 'http://electronichealth.se/identifier/personnummer'}
          schema:
            mustSupport: true
            index: 3
            elements:
              system:
                pattern: {type: Uri, value: 'http://electronichealth.se/identifier/personnummer'}
                mustSupport: true
                index: 4
              value: {mustSupport: true, index: 5}
            required: [value, system]
  name:
    type: HumanName
    mustSupport: true
    index: 6
    elements:
      family: {index: 7}
      given: {index: 8}
    required: [given, family]
  telecom:
    type: ContactPoint
    constraint:
      nppr-telecom-phone-1: {human: 'If telecom.system = #phone, value should follow format +46123456789', source: 'http://electronichealth.se/fhir/NPPR/StructureDefinition/NPPRPractitioner', severity: warning, expression: 'value.matches(''^\\+[1-9][0-9]+$'') or system != ''phone'''}
      nppr-telecom-url-1: {human: 'If telecom.system = #url, value should follow valid format. Example: https://example.com', source: 'http://electronichealth.se/fhir/NPPR/StructureDefinition/NPPRPractitioner', severity: warning, expression: 'value.matches(''(https?|ftp)://(-\\.)?([^\\s/?\\.#-]+\\.?)+(/[^\\s]*)?$'') or system != ''url'''}
      nppr-telecom-email-1: {human: 'If telecom.system = #email, value should follow valid format Example: test@test.com', source: 'http://electronichealth.se/fhir/NPPR/StructureDefinition/NPPRPractitioner', severity: warning, expression: 'value.matches(''^[\\w.-]{1,64}@(?!.{254})[\\w.-]+\\.[A-Za-z]{2,4}$'') or system != ''email'''}
    mustSupport: true
    index: 9
  address:
    type: Address
    mustSupport: true
    index: 10
    extensions:
      officialAddressType: {url: null, min: 1, _required: true, index: 12}
    elements:
      extension:
        index: 11
        slicing:
          slices:
            officialAddressType:
              match: {}
              schema: {_required: true, index: 12}
              min: 1
    required: [extension]
  qualification:
    mustSupport: true
    index: 13
    elements:
      identifier:
        mustSupport: true
        index: 14
        elements:
          system: {mustSupport: true, index: 15}
          value: {mustSupport: true, index: 16}
        required: [value, system]
        slicing:
          rules: open
          ordered: false
          description: Slice qualification.identifier based on the system value
          discriminator:
          - {path: system, type: value}
          min: null
          slices:
            prescriber:
              match: {system: 'urn:oid:1.2.752.116.3.1.2'}
              schema:
                mustSupport: true
                index: 17
                elements:
                  system:
                    pattern: {type: Uri, value: 'urn:oid:1.2.752.116.3.1.2'}
                    mustSupport: true
                    index: 18
                  value: {mustSupport: true, index: 19}
                required: [value, system]
            legitimation:
              match: {system: 'urn:oid:1.2.752.116.3.1.1'}
              schema:
                mustSupport: true
                index: 20
                elements:
                  system:
                    pattern: {type: Uri, value: 'urn:oid:1.2.752.116.3.1.1'}
                    index: 21
                  value: {mustSupport: true, index: 22}
                required: [value]
      code:
        mustSupport: true
        index: 23
        elements:
          coding:
            mustSupport: true
            index: 24
            elements:
              system: {mustSupport: true, index: 25}
              code: {mustSupport: true, index: 26}
            required: [system, code]
            slicing:
              rules: open
              ordered: false
              description: Slice qualification.code based on the system value
              discriminator:
              - {path: system, type: value}
              min: 1
              max: 1
              slices:
                healthcareProfessionalLicense:
                  match: {system: 'urn:oid:1.2.752.116.3.1.3'}
                  schema:
                    binding: {strength: required, valueSet: 'http://electronichealth.se/fhir/NPPR/ValueSet/nppr-certified-occupation'}
                    mustSupport: true
                    index: 27
                    elements:
                      system:
                        pattern: {type: Uri, value: 'urn:oid:1.2.752.116.3.1.3'}
                        index: 28
        required: [coding]
      period:
        mustSupport: true
        index: 29
        elements:
          start: {mustSupport: true, index: 30}
          end: {mustSupport: true, index: 31}
        required: [start]
    required: [period]
package_version: 0.1.0-alpha
class: profile
kind: resource
url: http://electronichealth.se/fhir/NPPR/StructureDefinition/NPPRPractitioner
base: http://hl7.org/fhir/StructureDefinition/Practitioner
version: '0.1'
required: [name, identifier]