PH Core Implementation Guide
0.1.0 - ci-build Philippines flag

PH Core Implementation Guide, published by UP Manila SILab. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/UP-Manila-SILab/ph-core/ and changes regularly. See the Directory of published versions

Resource Profile: PH Core Practitioner

Official URL: urn://example.com/ph-core/fhir/StructureDefinition/ph-core-practitioner Version: 0.1.0
Draft as of 2025-10-06 Computable Name: PHCorePractitioner

The PH Core Practitioner Profile inherits from the FHIR R4 Practitioner resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the Practitioner resource to record, search, and fetch basic demographics and administrative information about an individual practitioner in a Philippine context. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains how the elements are used. It provides the floor for standards development for Philippine use cases.

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: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... address Σ 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
dom-2 error Practitioner If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Practitioner 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 Practitioner 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 Practitioner If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Practitioner 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 Practitioner

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... address 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... 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
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier An identifier for the person as this agent
... active Σ 0..1 boolean Whether this practitioner's record is in active use
... name Σ 0..* HumanName The name(s) associated with the practitioner
... telecom Σ 0..* ContactPoint A contact detail for the practitioner (that apply to all roles)
... address Σ 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... birthDate Σ 0..1 date The date on which the practitioner was born
... photo 0..* Attachment Image of the person
... qualification 0..* BackboneElement Certification, licenses, or training pertaining to the provision of care
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier 0..* Identifier An identifier for this qualification for the practitioner
.... code 1..1 CodeableConcept Coded representation of the qualification
Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service.
.... period 0..1 Period Period during which the qualification is valid
.... issuer 0..1 Reference(Organization) Organization that regulates and issues the qualification
... communication 0..* CodeableConcept A language the practitioner can use in patient communication
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding


doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Practitioner.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Practitioner.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Practitioner.qualification.​code Base example v2 table 0360, Version 2.7 📦0360 FHIR Std.
Practitioner.communication Base preferred Common Languages 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Practitioner If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Practitioner 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 Practitioner 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 Practitioner If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Practitioner 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 Practitioner

Summary

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... address Σ 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
dom-2 error Practitioner If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Practitioner 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 Practitioner 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 Practitioner If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Practitioner 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 Practitioner

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... address 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Practitioner 0..* Practitioner A person with a formal responsibility in the provisioning of healthcare or related services
... 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
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier An identifier for the person as this agent
... active Σ 0..1 boolean Whether this practitioner's record is in active use
... name Σ 0..* HumanName The name(s) associated with the practitioner
... telecom Σ 0..* ContactPoint A contact detail for the practitioner (that apply to all roles)
... address Σ 0..* PHCoreAddress Address(es) of the practitioner that are not role specific (typically home address)
... gender Σ 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
... birthDate Σ 0..1 date The date on which the practitioner was born
... photo 0..* Attachment Image of the person
... qualification 0..* BackboneElement Certification, licenses, or training pertaining to the provision of care
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier 0..* Identifier An identifier for this qualification for the practitioner
.... code 1..1 CodeableConcept Coded representation of the qualification
Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service.
.... period 0..1 Period Period during which the qualification is valid
.... issuer 0..1 Reference(Organization) Organization that regulates and issues the qualification
... communication 0..* CodeableConcept A language the practitioner can use in patient communication
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding


doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Practitioner.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Practitioner.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Practitioner.qualification.​code Base example v2 table 0360, Version 2.7 📦0360 FHIR Std.
Practitioner.communication Base preferred Common Languages 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Practitioner If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Practitioner 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 Practitioner 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 Practitioner If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Practitioner 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 Practitioner

Summary

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron