NHS England FHIR Implementation Guide (deprecated)

Important Announcement regarding this Implementation Guide
  • As of 04/10/2023, this implementation guide has been deprecated and all development on the legacy NHS England FHIR Implementation Guide assets has ceased.
  • Therefore, vendors looking to start new implementations or looking to update existing implementations should use the new NHS England Implementation Guide. Vendors continuing to implement legacy NHS England FHIR Implementation Guide based solutions do so at their own risk and on the understanding that no maintenance or support will be available.

NHSDigital-PractitionerRole

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole Administration normative


UK Core PractitionerRole

costCentreS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

from UK Core PractitionerRole
costCentreS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

keyhumanseverityexpression
role-spuriousSpurious Code format must be G6NNNNNN or G7NNNNNNwarningidentifier.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}$'))
role-sds-role-profileSDS Role Profile Id must be 12 digitserroridentifier.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}$'))
nhsd-2An identifier reference or resource reference must be providedwarning(reference.exists() or identifier.exists())
role-nmcNMC must be of the format NNANNNNAwarningidentifier.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-gmpGMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)erroridentifier.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-gmcGMC must be of the format CNNNNNNNerroridentifier.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}$'))
role-gphcGPHC must be of the format NNNNNNNwarningidentifier.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}$'))
role-hcpcHCPC must be of the format AANNNNNNwarningidentifier.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}$'))
role-dinDIN format must be NNNNNNwarningidentifier.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-sds-user-numericsds-user-id must be numericerroridentifier.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-gmcreferencenumberGMC Reference Number must be of the format NNNNNNNerroridentifier.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}$'))
nacs-code-retiredNACS (/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).warningidentifier.where(system='https://fhir.hl7.org.uk/Id/professional-code').exists().not()
nhsd-1PractitionerRole.organization - An identifier reference or resource reference should be providedwarning(reference.exists() or identifier.exists())
nhsd-3PractitionerRole.location - An identifier or resource reference must be providederror(reference.exists() or identifier.exists())
nhsd-4PractitionerRole.healthcareService - An identifier reference or resource reference must be providederror(reference.exists() or (identifier.exists()))

Constraint Profiles

nameprofilepurpose
NHSDigitalPractitionerRoleEPSLegalhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal

Constraint profile for EPS MedicationRequest which enforces the legal requirement for prescriptions

NHSDigitalPractitionerRoleMinimalhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-Minimal

Constraint profile for which enforces practitioner and organization elements in contained resources,

NHSDigitalPractitionerRoleSDShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-SDS

Constraint profile for Electronic Prescription System which enforces practitioner, organization, sds role code, sds user profile id and telecom elements in contained resources,



Definition

A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.

Constraints

extension:costCentre

Element Id PractitionerRole.extension:costCentre
Cardinality 0..1
Slice Name costCentre
type Extension(ExtensionNHSDigitalAccountCode)

Definition

Optional Extension Element - found in all resources.

identifier

Element Id PractitionerRole.identifier
Cardinality 0..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

FHIR identifier OID/HL7v3 HL7v2 ITK Format Description Professional Code Prescribing Code
https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code G[67]NNNNNN NHS BSA Spurious Code GENERAL MEDICAL PRACTITIONER PPD CODE No Yes
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

The SDS Role Profile Code should be sourced from NHS Identity (SmartCard), this is also held within the Spine Directory Service LDAP database.

Holds 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.

{
  "resourceType": "PractitionerRole",
  ...
  "identifier": [
          {
            "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
            "value": "100102238986"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code",
            "value": "2345213"
          }
        ],
  ...
}

Requirements

Often, specific identities are assigned for the agent.

identifier:sdsRoleProfileID

Element Id PractitionerRole.identifier:sdsRoleProfileID
Cardinality 0..1
Slice Name sdsRoleProfileID
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:sdsRoleProfileID.system

Element Id PractitionerRole.identifier:sdsRoleProfileID.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/sds-role-profile-id
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:nhsbsaSpuriousCode

Element Id PractitionerRole.identifier:nhsbsaSpuriousCode
Cardinality 0..1
Slice Name nhsbsaSpuriousCode
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:nhsbsaSpuriousCode.system

Element Id PractitionerRole.identifier:nhsbsaSpuriousCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

practitioner

Element Id PractitionerRole.practitioner
Cardinality 0..1
type Reference(NHSDigitalPractitioner)

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 identifier reference should contain a professional code.

It is recommended an identifier reference and display (practitioner full name) is included. This identifier should be the Practitioner's primary professional code (see NHSDigital-Practitioner for details on professional codes).

"practitioner": {
        "display": "Dr Smith",
        "identifier": {
            "system": "https://fhir.hl7.org.uk/Id/gmc-number",
            "value": "C9876543"
          }
    },

For EPS, currently a Resource reference is required.

"practitioner": {
        "reference": "urn:uuid:1557E58E-3B1E-41DD-B3B5-D4D393DC5A3D",
        "display": "Dr Smith"
    },

Constraints

  • nhsd-2 (WARNING) An identifier reference or resource reference must be provided
  • role-nmc (WARNING) NMC must be of the format NNANNNNA
  • role-gmp (ERROR) GMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)
  • role-gmc (ERROR) GMC must be of the format CNNNNNNN
  • role-gphc (WARNING) GPHC must be of the format NNNNNNN
  • role-hcpc (WARNING) HCPC must be of the format AANNNNNN
  • role-din (WARNING) DIN format must be NNNNNN
  • role-sds-user-numeric (ERROR) sds-user-id must be numeric
  • role-gmcreferencenumber (ERROR) GMC Reference Number must be of the format NNNNNNN
  • nacs-code-retired (WARNING) 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).

organization

Element Id PractitionerRole.organization
Cardinality 0..1
type Reference(NHSDigitalOrganization)

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.

organisation resource references

It is recommended an identifier reference is included.

"organization": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
          },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    }

Optionally 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.

"organization": {
        "reference": "urn:uuid:17c4270d-6966-4788-8cbc-1d1d63536b25",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
          },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    }

Constraints

  • nhsd-1 (WARNING) PractitionerRole.organization - An identifier reference or resource reference should be provided

code

Element Id PractitionerRole.code
Cardinality 0..*
Terminology Binding NHSDigitalPractitionerRoleCode (Extensible)
type CodeableConcept

Definition

Only supply if this is known from SmartCard/CIS2 data.

"code":  [
        {
            "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode",
                    "code": "S0030:G0100:R0620"
                  }
            ]
        }
    ],

The 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.

Requirements

Need to know what authority the practitioner has - what can they do?

Comment

A person may have more than one role.

code.coding:sdsJobRoleCode

Element Id PractitionerRole.code.coding:sdsJobRoleCode
Cardinality 0..1
Slice Name sdsJobRoleCode
type Coding

Definition

This value should be sourced from either APIM OAuth2 userinfo endpoint, SDS LDAP or CIS2/SmartCard details.

The CodeSystem is variable and is not present in this Implementation Guide.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

code.coding:sdsJobRoleCode.system

Element Id PractitionerRole.code.coding:sdsJobRoleCode.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty

Element Id PractitionerRole.specialty
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
Specific specialty associated with the agency.
type CodeableConcept

Definition

This is should be the specialty linked to the role and is not necessarily the practitioners main specialty.

This can be supplemented by SNOMED CT codes from PracticeSettingCodeValueSet, no ConceptMap currently exists for mapping between the two.

 "specialty": [
        {
            "coding": [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty",
                    "code": "100",
                    "display": "GENERAL SURGERY"
                }
            ]
        }
    ],

specialty.coding:NHSDataDictionarySpecialty

Element Id PractitionerRole.specialty.coding:NHSDataDictionarySpecialty
Cardinality 0..*
Terminology Binding NHSDataDictionaryMainClinicalSpecialty (Required)
NHS Data Dictionary Specialty
Slice Name NHSDataDictionarySpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

specialty.coding:NHSDataDictionarySpecialty.system

Element Id PractitionerRole.specialty.coding:NHSDataDictionarySpecialty.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty.coding:SNOMEDSpecialty

Element Id PractitionerRole.specialty.coding:SNOMEDSpecialty
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
Specific specialty associated with the agency.
Slice Name SNOMEDSpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

specialty.coding:SNOMEDSpecialty.system

Element Id PractitionerRole.specialty.coding:SNOMEDSpecialty.system
Cardinality 0..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

location

Element Id PractitionerRole.location
Cardinality 0..*
type Reference(NHSDigitalLocation)

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.

If 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.

"location":  [
         {
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "RCB55"
            }
            "display": "YORK HOSPITAL"
          }
  ]

For EPS, currently a Resource reference is required.

"location":  [
         {
            "reference": "urn:uuid:ecc2db8e-3757-4758-a4f1-7f4c7e06662f",
            "display": "YORK HOSPITAL"
          }
  ]

Constraints

  • nhsd-3 (ERROR) PractitionerRole.location - An identifier or resource reference must be provided

healthcareService

Element Id PractitionerRole.healthcareService
Cardinality 0..1
type Reference(NHSDigitalHealthcareService)

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 healthcare/service cost centre may also be the ODS code for the clinic.

healthcareService Resource reference

An identifier reference MUST be included. For secondary care organisations this will be the ODS/ANANA Cost Centre code given to a clinic.

"healthcareService":  
    [
         {
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "A99968"
            }
            "display": "SOMERSET BOWEL CANCER SCREENING CENTRE"
          }
    ]

Optionally 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.

"healthcareService":  
    [
         {
            "reference": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e",
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "A99968"
            }
            "display": "SOMERSET BOWEL CANCER SCREENING CENTRE"
          }
    ]

Constraints

  • nhsd-4 (ERROR) PractitionerRole.healthcareService - An identifier reference or resource reference must be provided

telecom

Element Id PractitionerRole.telecom
Cardinality 0..*
type ContactPoint

Definition

At least one telecom number MUST be provided. Contact 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.

This 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.

"telecom": [
          {
            "system": "phone",
            "value": "01234567890",
            "use": "work"
          }
        ]

Requirements

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.

back to top