---
schema_version: "1"
id: 945f4d9648690ddc10545b5c94c3cd3b14f03a1dc545aa8ba4e6537a98723d27
title: PatientMedicalProcedure
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/health_cloud_object_reference/hc_r4_api_objects_patientmedicalprocedure.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/hc_r4_api_objects_patientmedicalprocedure.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: a109723b7a8ebfbc679ff6d74174cc81642972caa54f801e7aa1c75328aa995d
description: Represents detailed information about a healthcare procedure the patient has undergone, is undergoing or will undergo. This object is available in API version 51.0 and later.
---
# PatientMedicalProcedure

Represents detailed information about a healthcare procedure the patient has undergone, is undergoing or will undergo. This object is available in API version 51.0 and later.

## Supported Calls

create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search(), undelete(), update(), upsert()

## Additional Information for PatientMedicalProcedure in Other Objects

In addition to creating a record using these fields, you can add more details to your PatientMedicalProcedure record by creating records in certain other objects, and referencing your PatientMedicalProcedure record as the parent record. Here’s the list of objects you can associate to PatientMedicalProcedure in this way, the type of information they add, and the field they use to reference PatientMedicalProcedure.

| Object | Type of Information | Reference Field |
| --- | --- | --- |
| CarePerformer | Specifies the person who performed the procedure. | ParentRecordId |
| Identifier | Associates an identifier value to the procedure. | ParentRecordId |
| PatientMedicalProcedureDetail | Associates the procedure with various other records and defines the nature of association. For instance, if the procedure is based on, part of, or a follow up of the associated record, and so on. | PatientMedicalProcedureId |

- **[PatientMedicalProcedureDetail](https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/hc_r4_api_objects_PatientMedicalProcedureDetail.htm)**  
    Associates records from different objects to a patient medical procedure record to add more information to the procedure record. This is a multi-object junction object. This object is available in API version 51.0 and later.

## Fields

### AssertionSourceId

- **Type**: Polymorphic Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The person who made the statement about the procedure.
- **Example**: The patient or the provider who assessed the patient’s condition.
- **Referenced Objects**:
    - Account
    - HealthcareProvider

### ClinicalEncounterId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The patient’s clinical encounter that the procedure is a part of.
- **Referenced Objects**:
    - ClinicalEncounter

### CodeId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The system-defined code that identifies a procedure.
- **Example**: The SNOMED code for frontal sinusectomy.
- **Referenced Object**: CodeSetBundle

### DurationTimeString

- **Type**: String
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The duration of the procedure in string format.
- **Example**: 2 hours

### EndDate

- **Type**: DateTime
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The date and time that the procedure ended or the end date of the estimated period within which the procedure was performed.
- **Example**: 1993-11-09T18:30:00.384Z

### FacilityId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The heathcare facility where the procedure is performed.
- **Referenced Object**: HealthcareFacility

### LastReferencedDate

- **Type**: DateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The date and time the last time this record was referenced.

### LastViewedDate

- **Type**: DateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The date and time the last time this record was viewed.

### Name

- **Type**: Dtring
- **Properties**: Autonumber, Defaulted on create, Filter, idLookup, Sort
- **Description**: The name of the record. This is automatically generated when the record is saved.
- **Example**: PMP-7396

### Outcome

- **Type**: Picklist
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: Specifies the outcome for the procedure.
- **Possible values**:
    - Partially successful
    - Successful
    - Unsuccessful

### OwnerId

- **Type**: reference
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: The owner of the patient medical procedure record. Available in API version 56.0 and later. This is a polymorphic relationship field.
- **Relationship Name**: Owner
- **Relationship Type**: Lookup
- **Refers To**:
    - Group
    - User

### PatientId

- **Type**: Master-Detail Reference
- **Properties**: Create, Filter, Group, Sort
- **Description**: The patient on whom the procedure was performed.
- **Example**: Charles Green
- **Referenced Object**: Account

### PerformedAgeRangeUnitId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The unit of measure for the performed at age upper and lower limit fields.
- **Referenced Object**: UnitOfMeasure

### PerformedAtAge

- **Type**: double
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The patient’s age when the procedure was performed.

### PerformedAtAgeLowerLimit

- **Type**: double
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The lower limit for the range of the patient’s age when the procedure was performed

### PerformedAtAgeUnitId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The unit of measure for the PerformedAtAge field.
- **Referenced Object**: UnitOfMeasure

### PerformedAtAgeUpperLimit

- **Type**: double
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The upper limit for the range of the patient’s age when the procedure was performed

### ReasonCodeId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The system-defined code that specifies the reason for the procedure.
- **Example**: The SNOMED code for paraparesis.
- **Referenced Object**: CodeSetBundle

### ReasonReferenceId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The event that warranted the procedure.
- **Referenced Objects**:
    - HealthCondition
    - CareObservation
    - PatientMedicalProcedure
    - DiagnosticSummary
- **Example**: Chronic sinusitis, a record in HealthCondition.

### RecordCreatorId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The person who created the record.
- **Referenced Objects**:
    - Account
    - HealthcareProvider
- **Example**: Dr. Carol Peterson

### ReportId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The report associated with this procedure..
- **Example**: Charles Green’s sinusectomy report.
- **Referenced Object**: DiagnosticSummary

### SourceSystem

- **Type**: string
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The source system from where the record was brought into Salesforce.

### SourceSystemIdentifier

- **Type**: string
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The identifier of the record in its source system.

### SourceSystemModified

- **Type**: dateTime
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The date and time when the record was last modified in its source system.

### StartDate

- **Type**: DateTime
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The date and time that the procedure began or the start date of the estimated period within which the procedure was performed.
    
    This field can be used in two ways to indicate the date and time of the procedure:
    
    - If you want to specify a single date as either the actual or estimated date of the procedure, enter that date and time in this field.
    - If you want to specify a period in which the procedure was estimated to have happened, use this field to specify that start of the period, and the EndDate field to specify the end of the period.
- **Example**: 1993-11-09T21:45:00.384Z

### Status

- **Type**: Picklist
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: Required.
    
    Specifies the status of the procedure.
- **Possible values**:
    - Completed
    - Entered in error
    - In Progress
    - Not Done
    - On Hold
    - Preparation
    - Stopped
    - Unknown

### StatusReasonCodeId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The system-defined code that specifies the reason for the status.
- **Example**: The SNOMED code for ‘Procedure not ordered’
- **Referenced Object**: CodeSetBundle

### TypeId

- **Type**: Reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The system-defined code that specifies the procedure's type.
- **Example**: The SNOMED code for ‘Surgical procedure’
- **Referenced Object**: CodeSetBundle

## Associated Objects

This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise, they’re available in the specified API version and later.

[PatientMedicalProcedureChangeEvent](https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/sforce_api_associated_objects_change_event.htm "A StandardObjectNameChangeEvent object is available for each object that supports Change Data Capture. You can subscribe to a stream of change events using Change Data Capture to receive data tied to record changes in Salesforce. Changes include record creation, updates to an existing record, deletion of a record, and undeletion of a record. A change event isn’t a Salesforce object—it doesn’t support CRUD operations or queries. It’s included in the object reference so you can discover which Salesforce objects support change events.") (API version 58.0)

Change events are available for the object.

[PatientMedicalProcedureOwnerSharingRule](https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/sforce_api_associated_objects_ownersharingrule.htm "StandardObjectNameOwnerSharingRule is the model for all owner sharing rule objects associated with standard objects. These objects represent a rule for sharing a standard object with users other than the owner.") (API version 56.0)

Sharing rules are available for the object.

[PatientMedicalProcedureShare](https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/sforce_api_associated_objects_share.htm "StandardObjectNameShare is the model for all share objects associated with standard objects. These objects represent a sharing entry on the standard object.") (API version 56.0)

Sharing is available for the object.