Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
ServiceRequest
FHIR V4.0 - Clinical Data Model Mapping
Here’s how the fields defined by FHIR for serviceRequest map to the fields in Salesforce.
| Service Request Resource | Salesforce Field | Type | Salesforce Cardinality | Notes |
|---|---|---|---|---|
| identifier | Identifier | Object | 0.M | The identifier information for a service request is represented as Identifier records that reference the ClinicalServiceRequest record using their Identifier.ParentRecordId field. |
| instantiatesCanonical | N/A | N/A | N/A | Not Supported |
| instantiatesCanonical | N/A | N/A | N/A | Not Supported |
| basedOn | ClinicalServiceRequestDetail | Object | 0.M |
The information about the service request or medication request that a service request is based on is represented as ClinicalServiceRequestDetail records that reference the ClinicalServiceRequest record using their ClinicalServiceRequestDetail.ClinicalServiceRequestId field. The Salesforce implementation of serviceRequest.basedOn doesn’t support references to care plans. |
| ClinicalServiceRequestDetail.DetailRecordId | Polymorphic Lookup: ClinicalServiceRequest, MedicationRequest | 0.1 | For serviceRequest.basedOn information, ClinicalServiceRequestDetail.DetailRecordId must reference a ClinicalServiceRequest or MedicationRequest record. | |
| ClinicalServiceRequestDetail.DetailType |
Picklist Value: Based On |
0.1 | For serviceRequest.basedOn information, ClinicalServiceRequestDetail.DetailType must use the value Based On. | |
| replaces | ClinicalServiceRequest.OriginalRequestId | Lookup: ClinicalServiceRequest | 0.1 | While FHIR defines serviceRequest.replaces as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| requisition | ClinicalServiceRequest.ServiceRequestGroupIdentifierId | Lookup: Identifier | 0.1 | N/A |
| status | ClinicalServiceRequest.Status | Picklist | 1.1 | While FHIR defines serviceRequest.status as a code set bundle, the Salesforce implementation of ClinicalServiceRequest.Status is picklist. |
| intent | ClinicalServiceRequest.Type | Picklist | 1.1 | While FHIR defines serviceRequest.intent as a code set bundle, the Salesforce implementation of ClinicalServiceRequest.Type is picklist. |
| category | ClinicalServiceRequest.CategoryId | Lookup: CodeSetBundle | 0.1 | N/A |
| priority | ClinicalServiceRequest.Priority | Picklist | 0.1 | While FHIR defines serviceRequest.priority as a code set bundle, the Salesforce implementation of ClinicalServiceRequest.Priority is picklist. |
| doNotPerform | ClinicalServiceRequest.IsIgnored | Boolean | 0.1 | N/A |
| code | ClinicalServiceRequest.RequestCodeId | Lookup: CodeSetBundle | 0.1 | N/A |
| orderDetail | N/A | N/A | N/A | Not Supported |
| quantity.quantityQuantity | ClinicalServiceRequest.QuantityNumerator | Double | 0.1 | Because Salesforce doesn’t support a native quantity data type, the implementation of serviceRequest.quantity.quantityQuantity is flattened into a set of quantity and unit fields. |
| ClinicalServiceRequest.QuantityNumeratorUnitId | Lookup: UnitOfMeasure | 0.1 | ||
| quantity.quantityRatio | ClinicalServiceRequest.QuantityNumerator | Double | 0.1 | Because Salesforce doesn’t support a native ratio data type, the implementation of serviceRequest.quantity.quantityRatio is flattened into a set of numerator, denominator and unit fields. |
| ClinicalServiceRequest.QuantityDenominator | Double | 0.1 | ||
| ClinicalServiceRequest.QuantityNumeratorUnitId | Lookup: UnitOfMeasure | 0.1 | ||
| ClinicalServiceRequest.QuantityType |
Picklist Value: Ratio |
0.1 | For serviceRequest.quantity.quantityRatio information, ClinicalServiceRequest.QuantityType must use the value Ratio. | |
| quantity.quantityRange | ClinicalServiceRequest.QuantityNumerator | Double | 0.1 | Because Salesforce doesn’t support a native range data type, the implementation of serviceRequest.quantity.quantityRange is flattened into a set of numerator, denominator and unit fields. |
| ClinicalServiceRequest.QuantityDenominator | Double | 0.1 | ||
| ClinicalServiceRequest.QuantityNumeratorUnitId | Lookup: UnitOfMeasure | 0.1 | ||
| ClinicalServiceRequest.QuantityType |
Picklist Value: Range |
0.1 | For serviceRequest.quantity.quantityRange information, ClinicalServiceRequest.QuantityType must use the value Range. | |
| subject | ClinicalServiceRequest.PatientId | Master-Detail Reference: Account | 1.1 | Only references to patients are supported. |
| encounter | ClinicalServiceRequest.ClinicalEncounterId | Lookup: ClinicalEncounter | 0.1 | N/A |
| occurrence.occurrenceDateTime | ClinicalServiceRequest.StartDate | DateTime | 0.1 | ClinicalServiceRequest.StartDate is used for both serviceRequest.occurrence.occurrenceDateTime and serviceRequest.occurrence.occurrencePeriod. For the latter, the field is used to represent the start date of the period. |
| occurrence.occurrencePeriod | ClinicalServiceRequest.StartDate | DateTime | 0.1 | Because Salesforce doesn’t support a native period data type, the serviceRequest.occurrence.occurrencePeriod is flattened into a set of start date and end date fields. |
| ClinicalServiceRequest.EndDate | DateTime | 0.1 | ||
| occurrence.occurrenceTiming | N/A | N/A | N/A | Not supported |
| asNeeded.asNeededBoolean | ClinicalServiceRequest.HasPrerequisites | Boolean | 0.1 | N/A |
| asNeeded.asNeededCodeableConcept | ClinicalServiceRequest.PrerequisiteCodeId | Lookup: CodeSetBundle | 0.1 | 0.1 |
| authoredOn | ClinicalServiceRequest.DateSigned | DateTime | 0.1 | N/A |
| requester | ClinicalServiceRequest.RequesterId | Polymorphic Lookup: Account, Asset, CareRegisteredDevice, and HealthcareProvider | 0.1 | N/A |
| performerType | ClinicalServiceRequest.PerformerTypeId | Lookup: CodeSetBundle | 0.1 | N/A |
| performer | ClinicalServiceRequest.PerformerId | Polymorphic Lookup: Account, Asset, CareRegisteredDevice, and HealthcareProvider | 0.1 |
References to care teams and healthcare services are not supported. While FHIR defines serviceRequest.performer as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| locationCode | ClinicalServiceRequest.FacilityCodeId | Lookup: CodeSetBundle | 0.1 | While FHIR defines serviceRequest.locationCode as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| locationReference | ClinicalServiceRequest.FacilityId | Lookup: HealthcareFacility | 0.1 | While FHIR defines serviceRequest.locationReference as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| reasonCode | ClinicalServiceRequest.ReasonCodeId | Lookup: CodeSetBundle | 0.1 | While FHIR defines serviceRequest.reasonCode as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| reasonReference | ClinicalServiceRequest.DiagnosticReportId | Lookup: DiagnosticSummary | 0.1 | N/A |
| ClinicalServiceRequest.ConditionId | Lookup: HealthCondition | 0.1 | To support zero-to-many values, use the child object instead. | |
| ClinicalServiceRequest.ObservationId | Lookup: CareObservation | 0.1 | To support zero-to-many values, use the child object instead. | |
| ClinicalServiceRequestDetail | Object | 0.M |
The records referencing the reasons for a service request are represented as ClinicalServiceRequestDetail records that reference the ClinicalServiceRequest record using their ClinicalServiceRequestDetail.ClinicalServiceRequestId field. |
|
| ClinicalServiceRequestDetail.DetailRecordId | Polymorphic Lookup: HealthCondition, CareObservation, DiagnosticSummary | 0.1 | For serviceRequest.reasonReference information, ClinicalServiceRequestDetail.DetailRecordId must reference a HealthCondition or CareObservation record. | |
| ClinicalServiceRequestDetail.DetailType |
Picklist Value: Reason Reference |
0.1 | For serviceRequest.reasonReference information, ClinicalServiceRequestDetail.DetailType must use the value Reason Reference. | |
| insurance | N/A | N/A | N/A | Not supported |
| supportingInfo | N/A | N/A | N/A | Not supported |
| specimen | N/A | N/A | N/A | Not supported |
| bodySite | ClinicalServiceRequestDetail | Object | 0.M |
The body site information of a serviceRequest is represented as ClinicalServiceRequestDetail records that reference the ClinicalServiceRequest record using their ClinicalServiceRequestDetail.ClinicalServiceRequestId field. |
| ClinicalServiceRequestDetail.DetailCodeId | Polymorphic Lookup: CodeSet, CodeSetBundle | 0.1 | For serviceRequest.bodySite information, ClinicalServiceRequestDetail.DetailCodeId must reference a CodeSet or CodeSetBundle record. | |
| ClinicalServiceRequestDetail.DetailType |
Picklist Value: Body Site |
0.1 | For serviceRequest.bodySite information, ClinicalServiceRequestDetail.DetailType must use the value Body Site. | |
| Note | N/A | N/A | N/A | Not supported |
| patientInstruction | ClinicalServiceRequest.PatientInstruction | Text | 0.1 | N/A |
| relevantHistory | N/A | N/A | N/A | Not supported |
Sample Record Diagram
Here's a diagram that shows an example of how this resource is represented in Salesforce.