> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metriport.com/llms.txt
> Use this file to discover all available pages before exploring further.

# procedure

An action that is or was performed on or for a patient. This can be a physical intervention like an operation, or less invasive like long term services, counseling, or hypnotherapy. See the [HL7 FHIR R4 spec](https://hl7.org/fhir/R4/procedure.html) for full details.

**Previous version:** [procedure](/medical-api/handling-data/schema-v000/procedure)

**Tables in this resource:**

* **procedure** – Main procedure record (this page)
* [procedure\_code\_coding](/medical-api/handling-data/schema-v100/procedure/code_coding)
* [procedure\_bodysite](/medical-api/handling-data/schema-v100/procedure/bodysite) – Backbone for body site
* [procedure\_bodysite\_coding](/medical-api/handling-data/schema-v100/procedure/bodysite_coding)
* [procedure\_reasoncode](/medical-api/handling-data/schema-v100/procedure/reasoncode) – Backbone for reason code
* [procedure\_reasoncode\_coding](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding)
* [procedure\_note](/medical-api/handling-data/schema-v100/procedure/note) – Notes per procedure
* [procedure\_extension](/medical-api/handling-data/schema-v100/procedure/extension)
* [procedure\_extension\_vcc\_coding](/medical-api/handling-data/schema-v100/procedure/extension_vcc_coding)
* **procedure\_references** – Normalized references; see [Reference Tables](/medical-api/handling-data/schema-v100/reference_tables)

**Primary Keys:**

* procedure\_id

**Foreign Keys:**

* patient\_id - links to the [patient](/medical-api/handling-data/schema-v100/patient/base) table (subject)

<div style={{textAlign: 'right'}}><sub>† Metriport Platform added</sub></div>

| Column | Data Type | Description |
| - | - | - |
| procedure\_id | varchar | Unique identifier for the procedure |
| patient\_id | varchar | Unique identifier for the patient (subject) |
| status | varchar | Status of the procedure (e.g. completed, in-progress) |
| performeddatetime | datetime | Performed date/time if provided directly |
| performedperiod\_start | datetime | Start of performed period |
| performed\_date† | datetime | Coalesced performed date (performeddatetime or performedperiod\_start) |
| performedperiod\_end | datetime | End of performed period |
| code\_text | varchar | Free-text description of the procedure |
| code\_cpt\_code† | varchar | CPT code for the procedure |
| code\_cpt\_display† | varchar | Human-readable CPT description |
| code\_snomed\_code† | varchar | SNOMED CT code for the procedure |
| code\_snomed\_display† | varchar | Human-readable SNOMED CT description |
| note\_text† | varchar | Additional notes about the procedure (first note) |
| meta\_source | varchar | Source document filename from FHIR meta.source |
| data\_source\_ext† | varchar | Integration source of the data, derived from FHIR extension |

**Related Tables:**

**Parent:**

* [patient](/medical-api/handling-data/schema-v100/patient/base)

**Child:**

* [procedure\_bodysite](/medical-api/handling-data/schema-v100/procedure/bodysite)
* [procedure\_code\_coding](/medical-api/handling-data/schema-v100/procedure/code_coding)
* [procedure\_extension](/medical-api/handling-data/schema-v100/procedure/extension)
* [procedure\_note](/medical-api/handling-data/schema-v100/procedure/note)
* [procedure\_reasoncode](/medical-api/handling-data/schema-v100/procedure/reasoncode)
* [procedure\_reasoncode\_coding](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding)

## Version diff

**Renamed**

* `end_date` → `performedperiod_end`
* `cpt_code` → `code_cpt_code`
* `cpt_display` → `code_cpt_display`
* `snomed_code` → `code_snomed_code`
* `snomed_display` → `code_snomed_display`
* `data_source` → `meta_source`

**Moved to separate tables**

* `source_code_code` → [`procedure_code_coding.code`](/medical-api/handling-data/schema-v100/procedure/code_coding) w/ `code_rank = 1`
* `source_code_display` → [`procedure_code_coding.display`](/medical-api/handling-data/schema-v100/procedure/code_coding) w/ `code_rank = 1`
* `source_code_system` → [`procedure_code_coding.system`](/medical-api/handling-data/schema-v100/procedure/code_coding) w/ `code_rank = 1`
* `bodysite_snomed_code` → [`procedure_bodysite_coding.code`](/medical-api/handling-data/schema-v100/procedure/bodysite_coding) w/ `system = 'http://snomed.info/sct'`
* `bodysite_snomed_display` → [`procedure_bodysite_coding.display`](/medical-api/handling-data/schema-v100/procedure/bodysite_coding) w/ `system = 'http://snomed.info/sct'`
* `source_bodysite_code` → [`procedure_bodysite_coding.code`](/medical-api/handling-data/schema-v100/procedure/bodysite_coding) w/ `code_rank = 1`
* `source_bodysite_display` → [`procedure_bodysite_coding.display`](/medical-api/handling-data/schema-v100/procedure/bodysite_coding) w/ `code_rank = 1`
* `source_bodysite_system` → [`procedure_bodysite_coding.system`](/medical-api/handling-data/schema-v100/procedure/bodysite_coding) w/ `code_rank = 1`
* `source_reason_code` → [`procedure_reasoncode_coding.code`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) w/ `code_rank = 1`
* `source_reason_display` → [`procedure_reasoncode_coding.display`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) w/ `code_rank = 1`
* `source_reason_system` → [`procedure_reasoncode_coding.system`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) w/ `code_rank = 1`
* `reason_snomed_code` → [`procedure_reasoncode_coding.code`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) (deprecated SQL column on base table; filter by `system` as needed)
* `reason_snomed_display` → [`procedure_reasoncode_coding.display`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) (same)
* `reasoncode_snomed_code` → [`procedure_reasoncode_coding.code`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) (preferred base-table snapshot; filter by `system` as needed)
* `reasoncode_snomed_display` → [`procedure_reasoncode_coding.display`](/medical-api/handling-data/schema-v100/procedure/reasoncode_coding) (same)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.