The practitionerRole FHIR resource maps to the HealthcarePractitionerFacility and CareProviderFacilitySpecialty objects in Salesforce.
The practitionerRole resource in FHIR is represented as a combination of HealthcarePractitionerFacility and CareProviderFacilitySpecialty records, where the HealthcarePractitionerFacility record is the base. The CareProviderFacilitySpecialty record is associated to the HealthcarePractitionerFacility record by referencing the HealthcarePractitionerFacility record using the PractitionerFacilityId field on CareProviderFacilitySpecialty.
FHIR V4.0 - Clinical Data Model Mapping
Here’s how the fields defined by FHIR for PractitionerRole map to the fields in Salesforce.
Practitioner Resource
Salesforce Field
Type
Salesforce Cardinality
Notes
identifier
Identifier
Object
0.M
The identifier information for a practitionerRole is represented as Identifier records that reference the HealthcarePractitionerFacility record using their Identifier.ParentRecordId field.
active
HealthcarePractitionerFacility.IsActive
Boolean
0.1
N/A
period
HealthcarePractitionerFacility.EffectiveFrom
Date
0.1
Because Salesforce doesn’t support a native period data type, the practitionerRole.period FHIR resource is flattened to a set of from and to dates.
period
HealthcarePractitionerFacility.EffectiveTo
Date
0.1
Because Salesforce doesn’t support a native period data type, the practitionerRole.period FHIR resource is flattened to a set of from and to dates.
While FHIR defines practitionerRole.code as a code set bundle, its Salesforce implementation is a picklist. Zero-to-many values can be associated by creating multiple CareProviderFacilitySpecialty records that reference a HealthcarePractitionerFacility record. However, a single CareProviderFacilitySpecialty record can have only one combination of role and specialty.
specialty
CareProviderFacilitySpecialty.SpecialtyId
Lookup: CareSpecialty
0.M
While FHIR defines practitionerRole.code as a code set bundle, its Salesforce implementation is a CareSpecialty reference. Zero-to-many values can be associated by creating multiple CareProviderFacilitySpecialty records that reference a HealthcarePractitionerFacility record. However, a single CareProviderFacilitySpecialty record can have only one combination of role and specialty.
Even though only one OperatingHours record can be referenced from a HealthcarePractitionerFacility record, multiple time slots can be added to that OperatingHours record. As such, zero-to-many available time values can be added to a single HealthcarePractitionerFacility record through a single OperatingHours reference.