Uzbekistan Digital Health Platform
0.5.0 - ci-build Uzbekistan flag

Uzbekistan Digital Health Platform, published by Ministry of Health of the Republic of Uzbekistan. This guide is not an authorized publication; it is the continuous build for version 0.5.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/uzinfocom-org/digital-health-ig/ and changes regularly. See the Directory of published versions

Resource Profile: UZ Core PractitionerRole ( Experimental )

Official URL: https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role Version: 0.5.0
Active as of 2025-03-12 Computable Name: UZCorePractitionerRole

Uzbekistan Core PractitionerRole profile, used to define roles of practitioners

UZ Core PractitionerRole is the join that places a Practitioner inside an Organization - and optionally at a Location or offering a HealthcareService - with a stated role and specialty. This is the context that clinical resources point to as the performer or requester: it answers "in what capacity, and on whose behalf, did this professional act". Roles and specialties are coded from the Tibtoifa-derived national value sets.

When a clinical resource records who acted, point it at the PractitionerRole, not the bare Practitioner: the same practitioner may hold several roles, and only the role captures the capacity - and the organization - they acted on behalf of.

Mandatory and Must Support data elements

The elements below must always be present (mandatory) or must be supported when the data is available (Must Support) - not all are required, but your system must populate each Must Support element when it has the data and process it on receipt. This is the human-readable summary; the formal views below give the exact cardinalities, types, and terminology bindings.

Each UZ Core PractitionerRole Must Have

The base FHIR PractitionerRole has no mandatory elements, and this profile does not add any. In practice you will populate the practitioner and organization references together (see Must Support below).

Each UZ Core PractitionerRole Must Support

  • an identifier for the role;
  • the active flag;
  • the practitioner reference (who is acting);
  • the organization reference (the employer or hosting organization);
  • a role code (code) - the position/profession, from the national role value set;
  • a specialty - the clinical specialization, from the national profession-specialization value set;
  • a location reference (where the role is exercised);
  • a healthcareService reference (the service the role delivers).

Role and specialty are sliced to the DHP national code systems, but free text (code.text) is allowed where a coded value is not available.

Building the JSON, step by step

The examples below go from the smallest instance the server will accept to a fully coded role. Copy one and adapt it - every value shown validates against this profile. The complete reference instances are linked at the bottom of the page (coded role, free-text role).

The smallest PractitionerRole you should send

The base resource has no mandatory elements and this profile adds none, but a PractitionerRole is only useful once it actually joins someone to somewhere. In practice the minimum you send is the practitioner (who is acting) and the organization (on whose behalf), both plain references, plus the active flag. Every UZ Core resource must also name the profile it claims to conform to in meta.profile:

{
  "resourceType": "PractitionerRole",
  "meta": {
    "profile": ["https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role"]
  },
  "active": true,
  "practitioner": { "reference": "Practitioner/example-practitioner" },
  "organization": { "reference": "Organization/example-organization" }
}

practitioner and organization are plain Reference values - the target sits directly under reference as Type/id. They point at a Practitioner and an Organization respectively.

A realistic, coded role

In practice you state the capacity: the code (the position/profession) and the specialty (the clinical specialization), and where the role is delivered through healthcareService. Both code and specialty are lists of CodeableConcept (not CodeableReference), and each is sliced to a national DHP code system - so the system URI must match exactly. healthcareService is a list of plain references:

{
  "resourceType": "PractitionerRole",
  "meta": {
    "profile": [ "https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role" ]
  },
  "active": true,
  "practitioner": { "reference": "Practitioner/example-practitioner" },
  "organization": { "reference": "Organization/example-organization" },
  "code": [
    {
      "coding": [
        {
          "system": "https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs",
          "code": "2212.14",
          "display": "Vrach ginekolog"
        }
      ]
    }
  ],
  "specialty": [
    {
      "coding": [
        {
          "system": "https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs",
          "code": "394585009",
          "display": "Akusherlik va ginekologiya"
        }
      ]
    }
  ],
  "healthcareService": [ { "reference": "HealthcareService/example-healthcareservice" } ]
}

The role code is drawn from the national position-and-profession-cs system and the specialty from profession-specialization-cs. These are the two sliced systems on this profile; using any other system simply leaves the slice unmatched. See Terminology for how the DHP code systems are sourced.

Recording where the role is exercised

The role can also point at the Location where it is carried out. location (like healthcareService) is a list of plain references; both slot into the same resource as the coded role above:

{
  "healthcareService": [
    { "reference": "HealthcareService/example-healthcareservice" }
  ],
  "location": [
    { "reference": "Location/example-location" }
  ]
}

When there is no coded role

If the position is not yet in the national value set, do not invent a code - use the free-text code.text instead of a coding. The role still joins a practitioner to an organization, it just describes the capacity in words (full instance: free-text role):

{
  "resourceType": "PractitionerRole",
  "meta": {
    "profile": ["https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role"]
  },
  "active": true,
  "practitioner": { "reference": "Practitioner/example-practitioner" },
  "organization": { "reference": "Organization/example-organization" },
  "code": [
    { "text": "Surgeon at Republican Specialized Scientific Center of Surgery, inpatient care" }
  ],
  "healthcareService": [
    { "reference": "HealthcareService/example-healthcareservice" }
  ]
}

code.text carries the human-readable role; you can supply text alongside a coding, or on its own when no national code applies. See Missing & suppressed data for when to reach for free text over a code.

For example API calls and a sample payload, see the Quick Start at the bottom of this page.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
... active SΣ 0..1 boolean Whether this practitioner role record is in active use
... practitioner SΣ 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... organization SΣ 0..1 Reference(Organization) Organization where the roles are available
... code SΣ 0..* CodeableConcept Roles which this practitioner may perform
Binding: PractitionerRole (example): The role a person plays representing an organization.
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role SΣ 0..1 Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
... specialty SΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty SΣ 0..1 Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
... location SΣ 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code Base example Practitioner Role 📍5.0.0 FHIR Std.
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍5.0.0 FHIR Std.
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error PractitionerRole If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error PractitionerRole If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice PractitionerRole A resource should have narrative for robust management text.`div`.exists()
ele-1 error PractitionerRole.implicitRules, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier.use, PractitionerRole.identifier.type, PractitionerRole.active, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.code.coding, PractitionerRole.code.coding:role, PractitionerRole.code.coding:role.system, PractitionerRole.code.coding:role.code, PractitionerRole.specialty, PractitionerRole.specialty.coding, PractitionerRole.specialty.coding:dhpSpecialty, PractitionerRole.specialty.coding:dhpSpecialty.system, PractitionerRole.specialty.coding:dhpSpecialty.code, PractitionerRole.location, PractitionerRole.healthcareService All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error PractitionerRole.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... identifier S 0..* Identifier Identifiers for a role/location
.... use 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
... active S 0..1 boolean Whether this practitioner role record is in active use
... practitioner S 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... code S 0..* CodeableConcept Roles which this practitioner may perform
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role S 0..1 Coding Code defined by a terminology system
...... system S 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... code S 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
... specialty S 0..* CodeableConcept Specific specialty of the practitioner
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty S 0..1 Coding Code defined by a terminology system
...... system S 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... code S 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
... location S 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SΣ 0..* Identifier Identifiers for a role/location
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
.... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active SΣ 0..1 boolean Whether this practitioner role record is in active use
... period Σ 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
... practitioner SΣ 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... organization SΣ 0..1 Reference(Organization) Organization where the roles are available
... code SΣ 0..* CodeableConcept Roles which this practitioner may perform
Binding: PractitionerRole (example): The role a person plays representing an organization.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role SΣ 0..1 Coding Code defined by a terminology system
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
...... display ΣC 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty SΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty SΣ 0..1 Coding Code defined by a terminology system
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
...... display ΣC 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... location SΣ 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)
... contact 0..* ExtendedContactDetail Official contact details relating to this PractitionerRole
... characteristic 0..* CodeableConcept Collection of characteristics (attributes)
Binding: ServiceMode (example): A custom attribute that could be provided at a service (e.g. Wheelchair accessibility).
... communication 0..* CodeableConcept A language the practitioner (in this role) can use in patient communication
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter

... availability 0..* Availability Times the Practitioner is available at this location and/or healthcare service (including exceptions)
... endpoint 0..* Reference(Endpoint) Endpoints for interacting with the practitioner in this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base required All Languages 📍5.0.0 FHIR Std.
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code Base example Practitioner Role 📍5.0.0 FHIR Std.
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍5.0.0 FHIR Std.
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG
PractitionerRole.characteristic Base example Service Mode 📍5.0.0 FHIR Std.
PractitionerRole.communication Base required All Languages 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error PractitionerRole If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error PractitionerRole If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice PractitionerRole A resource should have narrative for robust management text.`div`.exists()
ele-1 error PractitionerRole.meta, PractitionerRole.implicitRules, PractitionerRole.language, PractitionerRole.text, PractitionerRole.extension, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier.extension, PractitionerRole.identifier.use, PractitionerRole.identifier.type, PractitionerRole.identifier.system, PractitionerRole.identifier.value, PractitionerRole.identifier.period, PractitionerRole.identifier.assigner, PractitionerRole.active, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.code.extension, PractitionerRole.code.coding, PractitionerRole.code.coding:role, PractitionerRole.code.coding:role.extension, PractitionerRole.code.coding:role.system, PractitionerRole.code.coding:role.version, PractitionerRole.code.coding:role.code, PractitionerRole.code.coding:role.display, PractitionerRole.code.coding:role.userSelected, PractitionerRole.code.text, PractitionerRole.specialty, PractitionerRole.specialty.extension, PractitionerRole.specialty.coding, PractitionerRole.specialty.coding:dhpSpecialty, PractitionerRole.specialty.coding:dhpSpecialty.extension, PractitionerRole.specialty.coding:dhpSpecialty.system, PractitionerRole.specialty.coding:dhpSpecialty.version, PractitionerRole.specialty.coding:dhpSpecialty.code, PractitionerRole.specialty.coding:dhpSpecialty.display, PractitionerRole.specialty.coding:dhpSpecialty.userSelected, PractitionerRole.specialty.text, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.contact, PractitionerRole.characteristic, PractitionerRole.communication, PractitionerRole.availability, PractitionerRole.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error PractitionerRole.extension, PractitionerRole.modifierExtension, PractitionerRole.identifier.extension, PractitionerRole.code.extension, PractitionerRole.code.coding:role.extension, PractitionerRole.specialty.extension, PractitionerRole.specialty.coding:dhpSpecialty.extension Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 0 element(4 nested mandatory elements)
Must-Support: 14 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of PractitionerRole.code.coding
  • The element 1 is sliced based on the value of PractitionerRole.specialty.coding

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
... active SΣ 0..1 boolean Whether this practitioner role record is in active use
... practitioner SΣ 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... organization SΣ 0..1 Reference(Organization) Organization where the roles are available
... code SΣ 0..* CodeableConcept Roles which this practitioner may perform
Binding: PractitionerRole (example): The role a person plays representing an organization.
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role SΣ 0..1 Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
... specialty SΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty SΣ 0..1 Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
... location SΣ 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code Base example Practitioner Role 📍5.0.0 FHIR Std.
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍5.0.0 FHIR Std.
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error PractitionerRole If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error PractitionerRole If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice PractitionerRole A resource should have narrative for robust management text.`div`.exists()
ele-1 error PractitionerRole.implicitRules, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier.use, PractitionerRole.identifier.type, PractitionerRole.active, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.code.coding, PractitionerRole.code.coding:role, PractitionerRole.code.coding:role.system, PractitionerRole.code.coding:role.code, PractitionerRole.specialty, PractitionerRole.specialty.coding, PractitionerRole.specialty.coding:dhpSpecialty, PractitionerRole.specialty.coding:dhpSpecialty.system, PractitionerRole.specialty.coding:dhpSpecialty.code, PractitionerRole.location, PractitionerRole.healthcareService All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error PractitionerRole.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... identifier S 0..* Identifier Identifiers for a role/location
.... use 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
... active S 0..1 boolean Whether this practitioner role record is in active use
... practitioner S 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... code S 0..* CodeableConcept Roles which this practitioner may perform
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role S 0..1 Coding Code defined by a terminology system
...... system S 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... code S 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
... specialty S 0..* CodeableConcept Specific specialty of the practitioner
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty S 0..1 Coding Code defined by a terminology system
...... system S 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... code S 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
... location S 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 0..* PractitionerRole(5.0.0) Roles/organizations the practitioner is associated with
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SΣ 0..* Identifier Identifiers for a role/location
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUseVS (0.5.0) (required)
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeVS (0.5.0) (required)
.... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active SΣ 0..1 boolean Whether this practitioner role record is in active use
... period Σ 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
... practitioner SΣ 0..1 Reference(Practitioner) Practitioner that provides services for the organization
... organization SΣ 0..1 Reference(Organization) Organization where the roles are available
... code SΣ 0..* CodeableConcept Roles which this practitioner may perform
Binding: PractitionerRole (example): The role a person plays representing an organization.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:role SΣ 0..1 Coding Code defined by a terminology system
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: PractitionerRoleVS (0.5.0) (required)
...... display ΣC 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty SΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:dhpSpecialty SΣ 0..1 Coding Code defined by a terminology system
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... system SΣ 1..1 uri Identity of the terminology system
Required Pattern: https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣC 1..1 code Symbol in syntax defined by the system
Binding: ProfessionSpecializationVS (0.5.0) (required)
...... display ΣC 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... location SΣ 0..* Reference(Location) Location(s) where the practitioner provides care
... healthcareService S 0..* Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)
... contact 0..* ExtendedContactDetail Official contact details relating to this PractitionerRole
... characteristic 0..* CodeableConcept Collection of characteristics (attributes)
Binding: ServiceMode (example): A custom attribute that could be provided at a service (e.g. Wheelchair accessibility).
... communication 0..* CodeableConcept A language the practitioner (in this role) can use in patient communication
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter

... availability 0..* Availability Times the Practitioner is available at this location and/or healthcare service (including exceptions)
... endpoint 0..* Reference(Endpoint) Endpoints for interacting with the practitioner in this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base required All Languages 📍5.0.0 FHIR Std.
PractitionerRole.identifier.​use Base required Types of possible identifier uses 📍0.5.0 This IG
PractitionerRole.identifier.​type Base required Types of possible identifiers 📍0.5.0 This IG
PractitionerRole.code Base example Practitioner Role 📍5.0.0 FHIR Std.
PractitionerRole.code.​coding:role.code Base required Practitioner roles 📍0.5.0 This IG
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍5.0.0 FHIR Std.
PractitionerRole.specialty.​coding:dhpSpecialty.​code Base required Profession specializations 📍0.5.0 This IG
PractitionerRole.characteristic Base example Service Mode 📍5.0.0 FHIR Std.
PractitionerRole.communication Base required All Languages 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error PractitionerRole If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error PractitionerRole If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error PractitionerRole If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice PractitionerRole A resource should have narrative for robust management text.`div`.exists()
ele-1 error PractitionerRole.meta, PractitionerRole.implicitRules, PractitionerRole.language, PractitionerRole.text, PractitionerRole.extension, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier.extension, PractitionerRole.identifier.use, PractitionerRole.identifier.type, PractitionerRole.identifier.system, PractitionerRole.identifier.value, PractitionerRole.identifier.period, PractitionerRole.identifier.assigner, PractitionerRole.active, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.code.extension, PractitionerRole.code.coding, PractitionerRole.code.coding:role, PractitionerRole.code.coding:role.extension, PractitionerRole.code.coding:role.system, PractitionerRole.code.coding:role.version, PractitionerRole.code.coding:role.code, PractitionerRole.code.coding:role.display, PractitionerRole.code.coding:role.userSelected, PractitionerRole.code.text, PractitionerRole.specialty, PractitionerRole.specialty.extension, PractitionerRole.specialty.coding, PractitionerRole.specialty.coding:dhpSpecialty, PractitionerRole.specialty.coding:dhpSpecialty.extension, PractitionerRole.specialty.coding:dhpSpecialty.system, PractitionerRole.specialty.coding:dhpSpecialty.version, PractitionerRole.specialty.coding:dhpSpecialty.code, PractitionerRole.specialty.coding:dhpSpecialty.display, PractitionerRole.specialty.coding:dhpSpecialty.userSelected, PractitionerRole.specialty.text, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.contact, PractitionerRole.characteristic, PractitionerRole.communication, PractitionerRole.availability, PractitionerRole.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error PractitionerRole.extension, PractitionerRole.modifierExtension, PractitionerRole.identifier.extension, PractitionerRole.code.extension, PractitionerRole.code.coding:role.extension, PractitionerRole.specialty.extension, PractitionerRole.specialty.coding:dhpSpecialty.extension Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 0 element(4 nested mandatory elements)
Must-Support: 14 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of PractitionerRole.code.coding
  • The element 1 is sliced based on the value of PractitionerRole.specialty.coding

 

Other representations of profile: CSV, Excel, Schematron

Quick Start

Common API interactions for this profile. Requests require a JWT access token - see Security and authentication. [base] is the FHIR server base URL; | separates a code system from its value and must be URL-encoded as %7C.

Read a practitioner role by server id

GET [base]/PractitionerRole/[id]

Find the roles a practitioner holds, or who works in an organization

GET [base]/PractitionerRole?practitioner=Practitioner/[id]&active=true
GET [base]/PractitionerRole?organization=Organization/[id]
GET [base]/PractitionerRole?specialty=https://terminology.dhp.uz/fhir/core/CodeSystem/profession-specialization-cs|394585009
GET [base]/PractitionerRole?role=https://terminology.dhp.uz/fhir/core/CodeSystem/position-and-profession-cs|2212.14&location=Location/[id]

Create a new practitioner role

POST [base]/PractitionerRole
{
  "resourceType": "PractitionerRole",
  "meta": {
    "profile": [ "https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role" ]
  },
  ...
}

Update an existing practitioner role

PUT [base]/PractitionerRole/[id]
If-Match: W/"3"   # the ETag from your last read; 412 if it changed since
{
  "resourceType": "PractitionerRole",
  "id": "[id]",
  "meta": {
    "profile": [ "https://dhp.uz/fhir/core/StructureDefinition/uz-core-practitioner-role" ]
  },
  ...
}

See the CapabilityStatement for the full list of supported search parameters.