description: null package_name: uk.nhsdigital.r4.test derivation: constraint name: NHSDigitalPractitionerRole type: PractitionerRole elements: specialty: mustSupport: true index: 21 elements: coding: index: 22 elements: system: {index: 23} code: {index: 24} display: {index: 25} required: [display, system, code] slicing: rules: open discriminator: - {path: system, type: value} min: 1 slices: SNOMEDSpecialty: match: {system: 'http://snomed.info/sct'} schema: binding: {strength: preferred, valueSet: 'http://hl7.org/fhir/ValueSet/c80-practice-codes'} mustSupport: true index: 26 elements: system: pattern: {type: Uri, value: 'http://snomed.info/sct'} index: 27 required: [coding] organization: type: Reference constraint: nhsd-1: {human: PractitionerRole.organization - An identifier reference or resource reference should be provided, severity: warning, expression: (reference.exists() or identifier.exists())} mustSupport: true refers: ['https://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization'] index: 8 elements: identifier: elements: system: {index: 9} value: {index: 10} required: [value, system] extension: index: 0 slicing: rules: open discriminator: - {path: url, type: value} min: 0 slices: costCentre: match: {url: null} schema: {type: Extension, mustSupport: true, url: 'https://fhir.nhs.uk/StructureDefinition/Extension-NHSDigital-Account-code', index: 1} min: 0 max: 1 code: mustSupport: true index: 11 elements: coding: index: 12 elements: system: {index: 13} code: {index: 14} required: [system, code] slicing: rules: open discriminator: - {path: system, type: value} min: 1 slices: sdsJobRoleCode: match: {system: 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode'} schema: short: SDS Job Role Code mustSupport: true index: 15 elements: system: pattern: {type: Uri, value: 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode'} index: 16 SDSJobRoleName: match: {system: 'https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName'} schema: index: 17 elements: system: pattern: {type: Uri, value: 'https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName'} index: 18 ukCoreSNOMEDCT: match: {system: 'http://snomed.info/sct'} schema: binding: {strength: preferred, valueSet: 'https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode'} index: 19 elements: system: pattern: {type: Uri, value: 'http://snomed.info/sct'} index: 20 required: [coding] identifier: mustSupport: true index: 2 slicing: rules: open discriminator: - {path: system, type: value} min: null slices: sdsRoleProfileID: match: {system: 'https://fhir.nhs.uk/Id/sds-role-profile-id'} schema: mustSupport: true index: 3 elements: system: pattern: {type: Uri, value: 'https://fhir.nhs.uk/Id/sds-role-profile-id'} index: 4 nhsbsaSpuriousCode: match: {system: 'https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code'} schema: mustSupport: true index: 5 elements: system: pattern: {type: Uri, value: 'https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code'} index: 6 practitioner: type: Reference constraint: role-din: {human: DIN format must be NNNNNN, severity: warning, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/din-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/din-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/din-number'').value.matches(''^[0-9]{6}$''))'} role-gmp: {human: GMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7), severity: error, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/gmp-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/gmp-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/gmp-number'').value.matches(''^[G]{1}[01234589]{1}[0-9]{6}$''))'} role-nmc: {human: NMC must be of the format NNANNNNA, severity: warning, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/nmc-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/nmc-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/nmc-number'').value.matches(''^[0-9]{2}[A-Z]{1}[0-9]{4}[A-Z]{1}$''))'} role-sds-user-numeric: {human: sds-user-id must be numeric, severity: error, expression: 'identifier.where(system=''https://fhir.nhs.uk/Id/sds-user-id'').exists().not() or (identifier.where(system=''https://fhir.nhs.uk/Id/sds-user-id'').exists() and identifier.where(system=''https://fhir.nhs.uk/Id/sds-user-id'').value.matches(''^[0-9]+$''))'} role-gmcreferencenumber: {human: GMC Reference Number must be of the format NNNNNNN, severity: error, expression: 'identifier.where(system=''https://fhir.hl7.org.uk/Id/gmc-reference-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/gphc-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/gmc-reference-number'').value.matches(''^[0-9]{7}$''))'} role-gphc: {human: GPHC must be of the format NNNNNNN, severity: warning, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/gphc-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/gphc-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/gphc-number'').value.matches(''^[0-9]{7}$''))'} nacs-code-retired: {human: 'NACS (/ODS) Practitioner Identifier is retired in NHS FHIR and should not be used. Please use the actual naming system instead (e,g, https://fhir.hl7.org.uk/Id/gmc-number, https://fhir.hl7.org.uk/Id/gmp-number, etc).', severity: warning, expression: 'identifier.where(system=''https://fhir.hl7.org.uk/Id/professional-code'').exists().not()'} role-gmc: {human: GMC must be of the format CNNNNNNN, severity: error, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/gmc-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/gmc-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/gmc-number'').value.matches(''^[C]{1}[0-9]{7}$''))'} nhsd-2: {human: An identifier reference or resource reference must be provided, severity: warning, expression: (reference.exists() or identifier.exists())} role-hcpc: {human: HCPC must be of the format AANNNNNN, severity: warning, expression: 'identifier.exists().not() or identifier.where(system=''https://fhir.hl7.org.uk/Id/hcpc-number'').exists().not() or (identifier.where(system=''https://fhir.hl7.org.uk/Id/hcpc-number'').exists() and identifier.where(system=''https://fhir.hl7.org.uk/Id/hcpc-number'').value.matches(''^[A-Z]{2}[0-9]{6}$''))'} mustSupport: true refers: ['https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner'] index: 7 telecom: mustSupport: true index: 34 elements: value: {index: 35} use: {index: 36} required: [value, use] location: type: Reference constraint: nhsd-3: {human: PractitionerRole.location - An identifier or resource reference must be provided, severity: error, expression: (reference.exists() or identifier.exists())} mustSupport: false refers: ['https://fhir.nhs.uk/StructureDefinition/NHSDigital-Location'] index: 28 elements: identifier: elements: system: {index: 29} value: {index: 30} required: [value, system] healthcareService: type: Reference constraint: nhsd-4: {human: PractitionerRole.healthcareService - An identifier reference or resource reference must be provided, severity: error, expression: (reference.exists() or (identifier.exists()))} mustSupport: true refers: ['https://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService'] index: 31 elements: identifier: elements: system: {index: 32} value: {index: 33} required: [value, system] package_version: 2.9.0-prerelease extensions: costCentre: {url: 'https://fhir.nhs.uk/StructureDefinition/Extension-NHSDigital-Account-code', min: 0, max: 1, type: Extension, mustSupport: true, index: 1} class: profile kind: resource url: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole base: https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole version: 1.0.1