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.
Procedure
FHIR V4.0 - Clinical Data Model Mapping
Here’s how the fields defined by FHIR for Procedure map to the fields in Salesforce.
| Procedure Resource | Salesforce Field | Type | Salesforce Cardinality | Notes |
|---|---|---|---|---|
| identifier | Identifier | Object | 0.M | The identifier information for a Procedure is represented as Identifier records that reference the PatientMedicalProcedure 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 | PatientMedicalProcedureDetail | Object | 0.M |
The information about the service request that a procedure is based on is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. The Salesforce implementation of procedure.basedOn doesn’t support references to care plans. |
| PatientMedicalProcedureDetail.DetailRecordId | Lookup: ClinicalServiceRequest | 0.1 | For procedure.basedOn information, PatientMedicalProcedureDetail.DetailRecordId must reference a ClinicalServiceRequest record. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Based On |
0.1 | For procedure.basedOn information, PatientMedicalProcedureDetail.DetailType must use the value Based On. | |
| partOf | PatientMedicalProcedureDetail | Object | 0.M |
The information about the procedure or observation that a procedure is a part of is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. The Salesforce implementation of procedure.partOf doesn’t support references to medication administration. |
| PatientMedicalProcedureDetail.DetailRecordId | Polymorphic Lookup: PatientMedicalProcedure, CareObservation | 0.1 | For procedure.partOf information, PatientMedicalProcedureDetail.DetailRecordId must reference a either a PatientMedicalProcedure record or a CareObservation. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Part Of |
0.1 | For procedure.partOf information, PatientMedicalProcedureDetail.DetailType must use the value Part Of. | |
| status | PatientMedicalProcedure.Status | Picklist | 0.1 | While FHIR defines procedure.status as a code set bundle, the Salesforce implementation of PatientMedicalProcedure.Status is picklist. |
| statusReason | PatientMedicalProcedure.StatusReasonCodeId | Lookup: CodeSetBundle | 0.1 | N/A |
| category | PatientMedicalProcedure.TypeId | Lookup: CodeSetBundle | 0.1 | N/A |
| code | PatientMedicalProcedure.CodeId | Lookup: CodeSetBundle | 0.1 | N/A |
| subject | PatientMedicalProcedure.PatientId | MasterDetail: Account | 1.1 | The Salesforce implementation of procedure.subject doesn’t support references to groups. |
| encounter | PatientMedicalProcedure.ClinicalEncounterId | Lookup: ClinicalEncounter | 0.1 | N/A |
| performed.performedDateTime | PatientMedicalProcedure.StartDate | DateTime | 0.1 | PatientMedicalProcedure.StartDate is used for both procedure.performed.performedDateTime and procedure.performed.performedPeriod. For the latter, the field is used to represent the start date of the period. |
| performed.performedPeriod | PatientMedicalProcedure.StartDate | DateTime | 0.1 | Because Salesforce doesn’t support a native period data type, the procedure.performed.performedPeriod field is flattened into a set of start date and end date fields. |
| PatientMedicalProcedure.EndDate | DateTime | 0.1 | ||
| performed.performedString | PatientMedicalProcedure.DurationTimeString | String | 0.1 | N/A |
| performed.performedAge | PatientMedicalProcedure.PerformedAtAge | Double | 0.1 | Because Salesforce doesn’t support a native age data type, the procedure.performed.performedAge FHIR resource is flattened into a set of age and unit fields. |
| PatientMedicalProcedure.PerformedAtAgeUnitId | Lookup: UnitOfMeasure | 0.1 | ||
| performed.performedRange | PatientMedicalProcedure.PerformedAtAgeLowerLimit | Double | 0.1 | Because Salesforce doesn’t support a native range data type, the procedure.performed.performedRange FHIR resource is flattened into a set of lower limit, upper limit, and unit fields. |
| PatientMedicalProcedure.PerformedAtAgeUpperLimit | Double | 0.1 | ||
| PatientMedicalProcedure.PerformedAgeRangeUnit | Lookup: UnitOfMeasure | 0.1 | ||
| recorder | PatientMedicalProcedure.RecordCreatorId | Lookup: Account, HealthcareProvider | 0.1 | N/A |
| asserter | PatientMedicalProcedure.AssertionSourceId | Lookup: Account, HealthcareProvider | 0.1 | N/A |
| performer | CarePerformer | Object | 0.M | The performer information for a Procedure is represented as CarePerformer records that reference the PatientMedicalProcedure record using their CarePerformer.ParentRecordId field. |
| performer.function | CarePerformer.RoleId | Polymorphic Lookup: CodeSet, CodeSetBundle | 0.1 | N/A |
| performer.actor | CarePerformer.PersonId | Polymorphic Lookup: Account, HealthcareProvider | 0.1 | The Salesforce implementation doesn’t support references to devices. |
| performer.actoronBehalfOf | CarePerformer.AffiliatedOrganizationId | Lookup: Account | 0.1 | 0.1 |
| location | PatientMedicalProcedure.FacilityId | Lookup: Healthcare.Facility | 0.1 | N/A |
| reasonCode | PatientMedicalProcedure.ReasonCodeId | Lookup: CodeSetBundle | 0.1 | While FHIR defines procedure.reasonCode as a zero-to-many resource, the Salesforce implementation is zero-to-one. |
| reasonReference | PatientMedicalProcedure.ReasonReferenceId | Polymorphic Lookup: HealthCondition, CareObservation, PatientMedicalProcedure, and DiagnosticSummary | 0.1 |
While FHIR defines procedure.reasonCode as a zero-to-many resource, the Salesforce implementation is zero-to-one. The Salesforce implementation doesn’t support document reference records. |
| bodySite | PatientMedicalProcedureDetail | Object | 0.M |
The body site information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. |
| PatientMedicalProcedureDetail.DetailCodeId | Polymorphic Lookup: CodeSet, CodeSetBundle | 0.1 | For procedure.bodySite information, PatientMedicalProcedureDetail.DetailCodeId must reference a CodeSet or CodeSetBundle record. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Body Site |
0.1 | For procedure.bodySite information, PatientMedicalProcedureDetail.DetailType must use the value Body Site. | |
| outcome | PatientMedicalProcedure.Outcome | Picklist | 0.1 | While FHIR defines procedure.outcome as a code, the Salesforce implementation of PatientMedicalProcedure.Outcome is a picklist. |
| report | PatientMedicalProcedure.ReportId | Lookup: DiagnosticSummary | 0.1 |
While FHIR defines procedure.report as a zero-to-many resource, the Salesforce implementation is zero-to-one. The Salesforce implementation of procedure.report doesn’t support references to composition or document reference records. |
| complication | PatientMedicalProcedureDetail | Object | 0.M |
The complication information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. |
| PatientMedicalProcedureDetail.DetailCodeId | Polymorphic Lookup: CodeSet, CodeSetBundle | 0.1 | For procedure.complication information, PatientMedicalProcedureDetail.DetailCodeId must reference a CodeSet or CodeSetBundle record. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Complication |
0.1 | For procedure.complication information, PatientMedicalProcedureDetail.DetailType must use the value Complication. | |
| complicationDetail | PatientMedicalProcedureDetail | Object | 0.M |
The complication detail information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. |
| PatientMedicalProcedureDetail.DetailRecordId | Lookup: HealthCondition | 0.1 | For procedure.complicationDetail information, PatientMedicalProcedureDetail.DetailRecordId must reference a HealthCondition record. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Complication Detail |
0.1 | For procedure.complicationDetail information, PatientMedicalProcedureDetail.DetailType must use the value Complication Detail. | |
| followUp | PatientMedicalProcedureDetail | Object | 0.M |
The follow up information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. |
| PatientMedicalProcedureDetail.DetailCodeId | Polymorphic Lookup: CodeSet, CodeSetBundle | 0.1 | For procedure.followUp information, PatientMedicalProcedureDetail.DetailCodeId must reference a CodeSet or CodeSetBundle record. | |
| PatientMedicalProcedureDetail.DetailType |
Picklist Value: Follow Up |
0.1 | For procedure.complicationDetail information, PatientMedicalProcedureDetail.DetailType must use the value Follow Up. | |
| Note | AuthorNote | Object | 0.M | Use the AuthorNote object to add notes to a procedure, and use the ParentRecordId field to reference the parent procedure the note belongs to. |
| focalDevice | PatientMedicalProcedureDetail.DetailrecordId | Lookup: CareRegisteredDevice | 0.M | Use the PatientMedicalProcedureDetail child object to add multiple focalDevice values that reference the parent procedure record. |
| usedReference | PatientMedicalProcedureDetail.DetailRecordId | Lookup: CareRegisteredDevice | 0.M | Use the PatientMedicalProcedureDetail child object to specify devices used in a procedure, and reference the parent procedure record. |
| usedCode | PatientMedicalProcedureDetail.DetailCodeId | N/A | 0.M | Use the PatientMedicalProcedureDetail child object to specify codes for items used in a procedure, and reference the parent procedure record. |
Sample Record Diagram
Here's a diagram that shows an example of how this resource is represented in Salesforce.