{ "description": null, "_filename": "NHSDigital-PractitionerRole.StructureDefinition.json", "package_name": "uk.nhsdigital.r4.test", "date": null, "derivation": "constraint", "publisher": null, "fhirVersion": "4.0.1", "name": "NHSDigitalPractitionerRole", "abstract": false, "type": "PractitionerRole", "experimental": null, "resourceType": "StructureDefinition", "title": null, "package_version": "2.8.7-prerelease", "status": "draft", "id": "b8790cd6-1657-4f92-b36a-197b1b9c3821", "kind": "resource", "url": "https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole", "version": null, "differential": { "element": [ { "id": "PractitionerRole", "path": "PractitionerRole", "constraint": [ { "key": "role-spurious", "human": "Spurious Code format must be G6NNNNNN or G7NNNNNN", "severity": "warning", "expression": "identifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').value.matches('^[G]{1}[67]{1}[0-9]{6}$'))" }, { "key": "role-sds-role-profile", "human": "SDS Role Profile Id must be 12 digits", "severity": "error", "expression": "identifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').exists() and identifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').value.matches('^[0-9]{12}$'))" } ] }, { "id": "PractitionerRole.extension", "min": 0, "path": "PractitionerRole.extension", "slicing": { "rules": "open", "discriminator": [ { "path": "url", "type": "value" } ] } }, { "id": "PractitionerRole.extension:costCentre", "max": "1", "min": 0, "path": "PractitionerRole.extension", "type": [ { "code": "Extension", "profile": [ "https://fhir.nhs.uk/StructureDefinition/Extension-NHSDigital-Account-code" ] } ], "sliceName": "costCentre", "mustSupport": true }, { "id": "PractitionerRole.identifier", "path": "PractitionerRole.identifier", "slicing": { "rules": "open", "discriminator": [ { "path": "system", "type": "value" } ] }, "definition": "| FHIR identifier | OID/HL7v3 | HL7v2 ITK | Format | Description | Professional Code | Prescribing Code | \r\n|--|--|--|--|--|--|--|\r\n| https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code | | | G[67]NNNNNN | NHS BSA Spurious Code [GENERAL MEDICAL PRACTITIONER PPD CODE](https://datadictionary.nhs.uk/attributes/general_medical_practitioner_ppd_code.html) | No | Yes |\r\n| https://fhir.nhs.uk/Id/sds-role-profile-id | 1.2.826.0.1285.0.2.0.67 | | 12 digits | SDS Role Profile Code | No | No | \r\n\r\nThe *SDS Role Profile Code* should be sourced from NHS Identity (SmartCard), this is also held within the Spine Directory Service LDAP database.\r\n\r\nHolds *NHS BSA spurious codes* which are role specific *Doctor Index Number (DIN)*) codes. *NHS BSA spurious codes* are issued when a doctor issues medication outside of their normal role, normally at another organisation. In the example below, the doctor is working in a secondary role (with SDS Role Id of 100102238986), as this a has a spurious code of 2345213. If the doctor was prescribing in their primary role this *spurious code* would be absent.\r\n\r\n```json\r\n{\r\n \"resourceType\": \"PractitionerRole\",\r\n ...\r\n \"identifier\": [\r\n {\r\n \"system\": \"https://fhir.nhs.uk/Id/sds-role-profile-id\",\r\n \"value\": \"100102238986\"\r\n },\r\n {\r\n \"system\": \"https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code\",\r\n \"value\": \"2345213\"\r\n }\r\n ],\r\n ...\r\n}\r\n```", "mustSupport": true }, { "id": "PractitionerRole.identifier:sdsRoleProfileID", "max": "1", "path": "PractitionerRole.identifier", "sliceName": "sdsRoleProfileID", "mustSupport": true }, { "id": "PractitionerRole.identifier:sdsRoleProfileID.system", "path": "PractitionerRole.identifier.system", "fixedUri": "https://fhir.nhs.uk/Id/sds-role-profile-id" }, { "id": "PractitionerRole.identifier:nhsbsaSpuriousCode", "max": "1", "path": "PractitionerRole.identifier", "sliceName": "nhsbsaSpuriousCode", "mustSupport": true }, { "id": "PractitionerRole.identifier:nhsbsaSpuriousCode.system", "path": "PractitionerRole.identifier.system", "fixedUri": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code" }, { "id": "PractitionerRole.practitioner", "path": "PractitionerRole.practitioner", "type": [ { "code": "Reference", "targetProfile": [ "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner" ] } ], "constraint": [ { "key": "nhsd-2", "human": "An identifier reference or resource reference must be provided", "severity": "warning", "expression": "(reference.exists() or identifier.exists())" }, { "key": "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}$'))" }, { "key": "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}$'))" }, { "key": "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}$'))" }, { "key": "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}$'))" }, { "key": "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}$'))" }, { "key": "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}$'))" }, { "key": "role-sds-user-numeric", "human": "sds-user-id must be numeric", "source": "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner", "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]+$'))" }, { "key": "role-gmcreferencenumber", "human": "GMC Reference Number must be of the format NNNNNNN", "source": "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner", "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}$'))" }, { "key": "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).", "source": "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner", "severity": "warning", "expression": "identifier.where(system='https://fhir.hl7.org.uk/Id/professional-code').exists().not()" } ], "definition": "This **MUST** either be a reference to a Practitioner resource or an identifier reference plus a display. In both cases the referenced resource or identfier reference should contain a professional code. \r\n\r\nIt is recommended an *identifier reference* and *display* (practioner full name) is included. This identifier should be the Practitioner's primary professional code (see `NHSDigital-Practitioner` for details on professional codes). \r\n\r\n```json\r\n\"practitioner\": {\r\n \"display\": \"Dr Smith\",\r\n \"identifier\": {\r\n \"system\": \"https://fhir.hl7.org.uk/Id/gmc-number\",\r\n \"value\": \"C9876543\"\r\n }\r\n },\r\n```\r\n\r\nFor EPS, currently a *Resource reference* is required.\r\n\r\n```json\r\n\"practitioner\": {\r\n \"reference\": \"urn:uuid:1557E58E-3B1E-41DD-B3B5-D4D393DC5A3D\",\r\n \"display\": \"Dr Smith\"\r\n },\r\n```", "mustSupport": true }, { "id": "PractitionerRole.organization", "path": "PractitionerRole.organization", "type": [ { "code": "Reference", "targetProfile": [ "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization" ] } ], "constraint": [ { "key": "nhsd-1", "human": "PractitionerRole.organization - An identifier reference or resource reference should be provided", "severity": "warning", "expression": "(reference.exists() or identifier.exists())" } ], "definition": "This **MUST** either be a reference to a Organization resource or an identifier reference. In both cases the reference must contain an ANANA/ODS organisation code. \r\n\r\n\r\n#### organisation resource references\r\n\r\nIt is recommended an *identifier reference* is included. \r\n\r\n```json\r\n\"organization\": {\r\n \"identifier\": {\r\n \"system\": \"https://fhir.nhs.uk/Id/ods-organization-code\",\r\n \"value\": \"RBA\"\r\n },\r\n \"display\": \"TAUNTON AND SOMERSET NHS FOUNDATION TRUST\"\r\n }\r\n```\r\n\r\nOptionally *Resource reference* can be provided. This is required in the current version of EPS but this will be changed to supporting the *identifier reference* only.\r\n\r\n```json\r\n\"organization\": {\r\n \"reference\": \"urn:uuid:17c4270d-6966-4788-8cbc-1d1d63536b25\",\r\n \"identifier\": {\r\n \"system\": \"https://fhir.nhs.uk/Id/ods-organization-code\",\r\n \"value\": \"RBA\"\r\n },\r\n \"display\": \"TAUNTON AND SOMERSET NHS FOUNDATION TRUST\"\r\n }\r\n```", "mustSupport": true }, { "id": "PractitionerRole.organization.identifier.system", "min": 1, "path": "PractitionerRole.organization.identifier.system" }, { "id": "PractitionerRole.organization.identifier.value", "min": 1, "path": "PractitionerRole.organization.identifier.value" }, { "id": "PractitionerRole.code", "path": "PractitionerRole.code", "definition": "Only supply if this is known from SmartCard/CIS2 data.\r\n\r\n```json\r\n\"code\": [\r\n {\r\n \"coding\": [\r\n {\r\n \"system\": \"https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode\",\r\n \"code\": \"S0030:G0100:R0620\"\r\n }\r\n ]\r\n }\r\n ],\r\n```\r\n\r\nThe previous system for this entry was `https://fhir.hl7org.uk/CodeSystem/UKCore-SDSJobRoleName`, this has been retired and `https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode` should be used instead. Note: `https://fhir.hl7org.uk/CodeSystem/UKCore-SDSJobRoleName` is currently used by EPS but will be retired in a future release. Pending further guidance, both CodeSystems should be used for EPS interations", "mustSupport": true }, { "id": "PractitionerRole.code.coding", "min": 1, "path": "PractitionerRole.code.coding", "slicing": { "rules": "open", "discriminator": [ { "path": "system", "type": "value" } ] } }, { "id": "PractitionerRole.code.coding.system", "min": 1, "path": "PractitionerRole.code.coding.system" }, { "id": "PractitionerRole.code.coding.code", "min": 1, "path": "PractitionerRole.code.coding.code" }, { "id": "PractitionerRole.code.coding:sdsJobRoleCode", "max": "1", "path": "PractitionerRole.code.coding", "short": "SDS Job Role Code", "sliceName": "sdsJobRoleCode", "definition": "This value should be sourced from either APIM OAuth2 userinfo endpoint, SDS LDAP or CIS2/SmartCard details. \r\n\r\nThe CodeSystem is variable and is not present in this Implementation Guide.", "mustSupport": true }, { "id": "PractitionerRole.code.coding:sdsJobRoleCode.system", "path": "PractitionerRole.code.coding.system", "fixedUri": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode" }, { "id": "PractitionerRole.code.coding:SDSJobRoleName", "path": "PractitionerRole.code.coding", "sliceName": "SDSJobRoleName" }, { "id": "PractitionerRole.code.coding:SDSJobRoleName.system", "path": "PractitionerRole.code.coding.system", "fixedUri": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName" }, { "id": "PractitionerRole.code.coding:ukCoreSNOMEDCT", "path": "PractitionerRole.code.coding", "binding": { "strength": "preferred", "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode" }, "sliceName": "ukCoreSNOMEDCT" }, { "id": "PractitionerRole.code.coding:ukCoreSNOMEDCT.system", "path": "PractitionerRole.code.coding.system", "fixedUri": "http://snomed.info/sct" }, { "id": "PractitionerRole.specialty", "path": "PractitionerRole.specialty", "definition": "This is should be the specialty linked to the role and is not necessarily the practitioners main specialty. \r\n\r\n```json\r\n \"specialty\": [\r\n {\r\n \"coding\": [\r\n {\r\n \"system\": \"http://snomed.info/sct\",\r\n \"code\": \"394814009\",\r\n \"display\": \"General practice (specialty)\"\r\n }\r\n ]\r\n }\r\n ],\r\n```", "mustSupport": true }, { "id": "PractitionerRole.specialty.coding", "min": 1, "path": "PractitionerRole.specialty.coding", "slicing": { "rules": "open", "discriminator": [ { "path": "system", "type": "value" } ] } }, { "id": "PractitionerRole.specialty.coding.system", "min": 1, "path": "PractitionerRole.specialty.coding.system" }, { "id": "PractitionerRole.specialty.coding.code", "min": 1, "path": "PractitionerRole.specialty.coding.code" }, { "id": "PractitionerRole.specialty.coding.display", "min": 1, "path": "PractitionerRole.specialty.coding.display" }, { "id": "PractitionerRole.specialty.coding:SNOMEDSpecialty", "path": "PractitionerRole.specialty.coding", "binding": { "strength": "preferred", "valueSet": "http://hl7.org/fhir/ValueSet/c80-practice-codes", "description": "Specific specialty associated with the agency." }, "sliceName": "SNOMEDSpecialty", "mustSupport": true }, { "id": "PractitionerRole.specialty.coding:SNOMEDSpecialty.system", "path": "PractitionerRole.specialty.coding.system", "fixedUri": "http://snomed.info/sct" }, { "id": "PractitionerRole.location", "path": "PractitionerRole.location", "type": [ { "code": "Reference", "targetProfile": [ "https://fhir.nhs.uk/StructureDefinition/NHSDigital-Location" ] } ], "constraint": [ { "key": "nhsd-3", "human": "PractitionerRole.location - An identifier or resource reference must be provided", "severity": "error", "expression": "(reference.exists() or identifier.exists())" } ], "definition": "The contact address for the practitioner for the service they are providing in this role. This will often be the surgery address, clinic or service address. \r\n\r\nIf using ODS Codes, the address on ODS must be checked to ensure it is correct. If the address is not correct, then *Resource reference* **MUST** be supplied.\r\n\r\n```json\r\n\"location\": [\r\n {\r\n \"identifier\": {\r\n \"system\": \"https://fhir.nhs.uk/Id/ods-organization-code\",\r\n \"value\": \"RCB55\"\r\n }\r\n \"display\": \"YORK HOSPITAL\"\r\n }\r\n ]\r\n```\r\n\r\nFor EPS, currently a *Resource reference* is required.\r\n\r\n```json\r\n\"location\": [\r\n {\r\n \"reference\": \"urn:uuid:ecc2db8e-3757-4758-a4f1-7f4c7e06662f\",\r\n \"display\": \"YORK HOSPITAL\"\r\n }\r\n ]\r\n```", "mustSupport": false }, { "id": "PractitionerRole.location.identifier.system", "min": 1, "path": "PractitionerRole.location.identifier.system" }, { "id": "PractitionerRole.location.identifier.value", "min": 1, "path": "PractitionerRole.location.identifier.value" }, { "id": "PractitionerRole.healthcareService", "max": "1", "path": "PractitionerRole.healthcareService", "type": [ { "code": "Reference", "targetProfile": [ "https://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService" ] } ], "constraint": [ { "key": "nhsd-4", "human": "PractitionerRole.healthcareService - An identifier reference or resource reference must be provided", "severity": "error", "expression": "(reference.exists() or (identifier.exists()))" } ], "definition": "**SHOULD** be provided for a practitioner in secondary care and will be a reference to clinic or service. This referenced resource or the identifier reference **SHOULD** contain a ODS/ANANA identifier. In secondary care Electronic Prescription Service (EPS) this will also be called **prescribing cost centre**. This is used for reimbursements from NHS BSA. In secondary care the healthchare/service cost centre may also be the ODS code for the clinic.\r\n\r\n\r\n#### healthcareService Resource reference\r\n\r\nAn *identifier reference* **MUST** be included. For secondary care organisations this will be the ODS/ANANA Cost Centre code given to a clinic. \r\n\r\n```json\r\n\"healthcareService\": \r\n [\r\n {\r\n \"identifier\": {\r\n \"system\": \"https://fhir.nhs.uk/Id/ods-organization-code\",\r\n \"value\": \"A99968\"\r\n }\r\n \"display\": \"SOMERSET BOWEL CANCER SCREENING CENTRE\"\r\n }\r\n ]\r\n```\r\n\r\nOptionally *Resource reference* can be provided. This is required in the current version of EPS but this will be changed to supporting the *identifier reference* only.\r\n\r\n```json\r\n\"healthcareService\": \r\n [\r\n {\r\n \"reference\": \"urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e\",\r\n \"identifier\": {\r\n \"system\": \"https://fhir.nhs.uk/Id/ods-organization-code\",\r\n \"value\": \"A99968\"\r\n }\r\n \"display\": \"SOMERSET BOWEL CANCER SCREENING CENTRE\"\r\n }\r\n ]\r\n```", "mustSupport": true }, { "id": "PractitionerRole.healthcareService.identifier.system", "min": 1, "path": "PractitionerRole.healthcareService.identifier.system" }, { "id": "PractitionerRole.healthcareService.identifier.value", "min": 1, "path": "PractitionerRole.healthcareService.identifier.value" }, { "id": "PractitionerRole.telecom", "path": "PractitionerRole.telecom", "definition": "At least one **telecom** number **MUST** be provided. \r\nContact details that are specific to the role/location/service. Often practitioners have a dedicated line for each location (or service) that they work at and need to be able to define separate contact details for each of these. \r\n\r\nThis is not the personnel contact number of the Practitioner, it the contact number for the practitioner in this role and may be the phone number of the clinic, main or branch surgery. \r\n\r\n```json\r\n\"telecom\": [\r\n {\r\n \"system\": \"phone\",\r\n \"value\": \"01234567890\",\r\n \"use\": \"work\"\r\n }\r\n ]\r\n```", "mustSupport": true }, { "id": "PractitionerRole.telecom.value", "min": 1, "path": "PractitionerRole.telecom.value" }, { "id": "PractitionerRole.telecom.use", "min": 1, "path": "PractitionerRole.telecom.use" } ] }, "baseDefinition": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole" }