NPHCDA Immunization FHIR IG
0.9.0 - ci-build Nigeria flag

NPHCDA Immunization FHIR IG, published by https://nphcda.gov.ng. This guide is not an authorized publication; it is the continuous build for version 0.9.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Nigeria-FHIR-Community/NPHCDA-ImmunizationIG/ and changes regularly. See the Directory of published versions

Resource Profile: NG-Imm PractitionerRole

Official URL: https://nphcda.gov.ng/ig/StructureDefinition/ng-imm-practitionerrole Version: 0.9.0
Draft as of 2026-10-07 Computable Name: NgImmPractitionerRole

Defines the role(s) of a Nigerian healthcare practitioner in the immunization context. Links a Practitioner to an Organization, specifies their role, contact details, and periods of service, with constraints to support the Nigeria Immunization IG.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.period This element must be supported. This element is included in summaries. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code This element must be supported. This element is included in summaries. 1..* CodeableConcept Roles of the practitioner
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.code.text This element is included in summaries. 1..1 string Plain text description of role
PractitionerRole.location This element must be supported. This element is included in summaries. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.code Base example Practitioner role 📍4.0.1 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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 **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from PractitionerRole

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.period This element must be supported. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code.text 1..1 string Plain text description of role
PractitionerRole.location This element must be supported. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided
PractitionerRole.availableTime 0..0 Times the Service Site is available
PractitionerRole.notAvailable 0..0 Not available during this time due to provided reason

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.id This element is included in summaries. 0..1 id Logical id of this artifact
PractitionerRole.meta This element is included in summaries. 0..1 Meta Metadata about the resource
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
PractitionerRole.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
PractitionerRole.contained 0..* Resource Contained, inline Resources
PractitionerRole.extension 0..* Extension Additional content defined by implementations
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.identifier This element is included in summaries. 0..* Identifier Business Identifiers that are specific to a role/location
PractitionerRole.active This element is included in summaries. 0..1 boolean Whether this practitioner role record is in active use
PractitionerRole.period This element must be supported. This element is included in summaries. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code This element must be supported. This element is included in summaries. 1..* CodeableConcept Roles of the practitioner
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.code.id 0..1 string Unique id for inter-element referencing
PractitionerRole.code.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
PractitionerRole.code.coding This element is included in summaries. 0..* Coding Code defined by a terminology system
PractitionerRole.code.text This element is included in summaries. 1..1 string Plain text description of role
PractitionerRole.specialty This element is included in summaries. 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
PractitionerRole.location This element must be supported. This element is included in summaries. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided
PractitionerRole.telecom This element is included in summaries. 0..* ContactPoint Contact details that are specific to the role/location/service
PractitionerRole.availabilityExceptions 0..1 string Description of availability exceptions
PractitionerRole.endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base preferred Common Languages 📍4.0.1 FHIR Std.
PractitionerRole.code Base example Practitioner role 📍4.0.1 FHIR Std.
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.
PractitionerRole.availableTime.​daysOfWeek Base required DaysOfWeek 📍4.0.1 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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 **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from PractitionerRole

Summary

Mandatory: 4 elements
Must-Support: 6 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.period This element must be supported. This element is included in summaries. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code This element must be supported. This element is included in summaries. 1..* CodeableConcept Roles of the practitioner
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.code.text This element is included in summaries. 1..1 string Plain text description of role
PractitionerRole.location This element must be supported. This element is included in summaries. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.code Base example Practitioner role 📍4.0.1 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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 **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from PractitionerRole

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.period This element must be supported. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code This element must be supported. 1..* CodeableConcept Roles of the practitioner
PractitionerRole.code.text 1..1 string Plain text description of role
PractitionerRole.location This element must be supported. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided
PractitionerRole.availableTime 0..0 Times the Service Site is available
PractitionerRole.notAvailable 0..0 Not available during this time due to provided reason

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRole Roles/organizations the practitioner is associated with
PractitionerRole.id This element is included in summaries. 0..1 id Logical id of this artifact
PractitionerRole.meta This element is included in summaries. 0..1 Meta Metadata about the resource
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
PractitionerRole.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
PractitionerRole.contained 0..* Resource Contained, inline Resources
PractitionerRole.extension 0..* Extension Additional content defined by implementations
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.identifier This element is included in summaries. 0..* Identifier Business Identifiers that are specific to a role/location
PractitionerRole.active This element is included in summaries. 0..1 boolean Whether this practitioner role record is in active use
PractitionerRole.period This element must be supported. This element is included in summaries. 0..1 Period Period during which the practitioner is performing this role
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Practitioner) Practitioner linked to this role
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(NG-Imm Organization) Organization the practitioner is associated with
PractitionerRole.code This element must be supported. This element is included in summaries. 1..* CodeableConcept Roles of the practitioner
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.code.id 0..1 string Unique id for inter-element referencing
PractitionerRole.code.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
PractitionerRole.code.coding This element is included in summaries. 0..* Coding Code defined by a terminology system
PractitionerRole.code.text This element is included in summaries. 1..1 string Plain text description of role
PractitionerRole.specialty This element is included in summaries. 0..* CodeableConcept Specific specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
PractitionerRole.location This element must be supported. This element is included in summaries. 0..* Reference(Location) Locations where the practitioner role is performed
PractitionerRole.healthcareService This element must be supported. 0..* Reference(HealthcareService) Services provided
PractitionerRole.telecom This element is included in summaries. 0..* ContactPoint Contact details that are specific to the role/location/service
PractitionerRole.availabilityExceptions 0..1 string Description of availability exceptions
PractitionerRole.endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base preferred Common Languages 📍4.0.1 FHIR Std.
PractitionerRole.code Base example Practitioner role 📍4.0.1 FHIR Std.
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.
PractitionerRole.availableTime.​daysOfWeek Base required DaysOfWeek 📍4.0.1 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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 **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from PractitionerRole

Summary

Mandatory: 4 elements
Must-Support: 6 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron