> ## 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)
