Newer Version Available
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. |
| PatientMedical��ProcedureDetail.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.