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

# Procedure

## Overview

The Procedure resource is used to record the details of current and historical procedures performed on or for a patient, such as  surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise, etc. Procedures may be performed by a healthcare professional, a service provider, a friend or relative or in some cases by the patient themselves.

If a procedure includes an implantable device , this would be represented as:

* `Procedure.focalDevice with a reference to the US Core Implantable Device Profile`\
  Procedure codes can be taken from SNOMED-CT, CPT, HCPCS II, ICD-10-PCS, CDT. LOINC.\
  Only LOINC concepts that reflect actual procedures SHOULD be used

Each Procedure has next elements:

* a status
* a code that identifies the type of procedure performed on the patient
* a patient
* when the procedure was performed

Profile specific implementation guidance:

* Procedure codes can be taken from SNOMED-CT, CPT, HCPCS II, ICD-10-PCS, CDT, or LOINC.
  * Only LOINC concepts that reflect actual procedures SHOULD be used.
* A procedure including an implantable device SHOULD use Procedure.focalDevice with a reference to the US Core Implantable Device Profile.
* See the [Screening and Assessments](http://hl7.org/fhir/us/core/STU6.1/screening-and-assessments.html) guidance page for more information when exchanging Social Determinants of Health (SDOH) Procedures.
* The Reason or justification for a referral or consultation is communicated through the US Core ServiceRequest Profile which can be linked to the Procedure through the \`Procedure.basedOn’ element.

This resource conforms to [USCDI V3 profile](https://www.healthit.gov/isa/united-states-core-data-interoperability-uscdi) for Procedure - refer to [StructureDefinition US Core Procedure](http://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-procedure.html). Procedure response will be provided in JSON (refers to Capability Statement) format as per [FHIR](https://hl7.org/fhir) standard R4 version.

| USCore Data Element      | FHIR Resource Field |
| ------------------------ | ------------------- |
| status                   | Procedure.status    |
| procedure code           | Procedure.code      |
| patient                  | Procedure.subject   |
| procedure performed date | Procedure.performed |

### Must support elements, mandatory and optional search parameters

*Procedure**must support** these elements:*

* `status`
* `code`
* `subject`
* `performed[x]`
  * `performedDateTime`

*The following search parameters and search parameter combinations SHALL be supported:*

The syntax used to describe the interactions is described [here](/articles/fhir/us-core-guidance).

**SHALL** support searching for all Procedure for a patient using the patient search parameter:
`GET [base url]/Procedure?patient={Type/}[id]`

**SHALL** support searching using the combination of the `patient` and `date` search parameters:

* including support for these date comparators: gt,lt,ge,le
* including optional support for AND search on date
  `GET [base url]/Procedure?patient={Type/}[id]&date=[date]`

The following search parameter combinations **SHOULD** be supported (**optional**):
**SHOULD** support searching using the combination of the `patient` and `status` search parameters:

* including support for OR search on status
  `GET [base url]/Procedure?patient={Type/}[id]&status={system|}[code],{system|}[code],...}`

**SHOULD** support searching using the combination of the `patient` and `code` and `date` search parameters:

* including optional support for OR search on code
* including support for these date comparators: gt,lt,ge,le
* including optional support for AND search on date
  `GET [base url]/Procedure?patient={Type/}[id]&code={system|}[code]&date=[date]`

The response to any search operation is always a list of resources in a Bundle or an Operation Outcome.

## Procedure By Patient Id

Search for Procedure by patient.

**METHOD** *GET*

```
[base url]/Procedure?patient={Type/}[id]
```

**PARAMS**
\[base url] - [FHIR base url](/articles/fhir/service-base-urls)
\[id] - Id for the Patient

**HEADERS**

The Authorization token SHALL be obtained during the Authentication and Authorization process. Go to [Authentication and Authorization](/articles/fhir/authentication-authorization) for further details.

| Header        | Type       | Required/Optional | Value            |
| ------------- | ---------- | ----------------- | ---------------- |
| Authorization | **string** | required          | `Bearer <token>` |

**RESPONSES**

| Code | Description                        | Comment                                                                                                                                         |
| ---- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                                 | The request was processed successfully                                                                                                          |
| 400  | Bad request                        | Invalid request parameters or FHIR operation outcome resource returned                                                                          |
| 401  | Unauthorized                       | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
| 404  | No route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested                                       |
| 500  | Internal Server Error              | The server has encountered a situation it doesn't know how to handle                                                                            |

**EXAMPLE:**

```
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Procedure?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
```

## Procedure By Id

Get Procedure by ID.

**METHOD** *GET*

```
[base url]/Procedure/{id}
```

or

```
[base url]/Procedure?_id={id}
```

**PARAMS**
\[base url] - [FHIR base url](/articles/fhir/service-base-urls)
\{id} - Id for Procedure resource

**HEADERS**

The Authorization token SHALL be obtained during the Authentication and Authorization process. Go to [Authentication and Authorization](/articles/fhir/authentication-authorization) for further details.

| Header        | Type       | Required/Optional | Value            |
| ------------- | ---------- | ----------------- | ---------------- |
| Authorization | **string** | required          | `Bearer <token>` |

**RESPONSES**

| Code | Description                        | Comment                                                                                                                                         |
| ---- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                                 | The request was processed successfully                                                                                                          |
| 400  | Bad request                        | Invalid request parameters or FHIR operation outcome resource returned                                                                          |
| 401  | Unauthorized                       | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
| 404  | No route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested                                       |
| 500  | Internal Server Error              | The server has encountered a situation it doesn't know how to handle                                                                            |

**EXAMPLE:**

```
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Procedure/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
```

## Procedure by patient and date

Get Procedures for the specified patient and date

**METHOD** *GET*

```
GET [base url]/Procedure?patient={Type/}[id]&date={gt|lt|ge|le}[date]&date={gt|lt|ge|le}[date]
```

**PARAMS**
\[base url] - [FHIR base url](/articles/fhir/service-base-urls)
\[id] - patient id
\[date] - an estimated or actual date, when the procedure was performed

**HEADERS**

The Authorization token SHALL be obtained during the Authentication and Authorization process. Go to [Authentication and Authorization](/articles/fhir/authentication-authorization) for further details.

| Header        | Type       | Required/Optional | Value            |
| ------------- | ---------- | ----------------- | ---------------- |
| Authorization | **string** | required          | `Bearer <token>` |

**RESPONSES**

| Code | Description                        | Comment                                                                                                                                         |
| ---- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                                 | The request was processed successfully                                                                                                          |
| 400  | Bad request                        | Invalid request parameters or FHIR operation outcome resource returned                                                                          |
| 401  | Unauthorized                       | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
| 404  | No route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested                                       |
| 500  | Internal Server Error              | The server has encountered a situation it doesn't know how to handle                                                                            |

**EXAMPLE:**

```
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Procedure?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&date=ge2019-01-14' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'
```

## Procedure by patient and status

Get Procedure by patient id and procedure status

**METHOD** *GET*

```
`GET [base url]/Procedure?patient={Type/}[id]&status={system|}[code],{system|}[code],...}`
```

**PARAMS**
\[base url] - [FHIR base url](/articles/fhir/service-base-urls)
\[id] - a patient id
\{system|} - an identity of the terminology system, used to specify the state of the procedure . FHIR search token parameter. See [Search specification](https://www.hl7.org/fhir/search.html#token) for more information.
\{code} - a code specifying the state of the procedure

**HEADERS**

The Authorization token SHALL be obtained during the Authentication and Authorization process. Go to [Authentication and Authorization](/articles/fhir/authentication-authorization) for further details.

| Header        | Type       | Required/Optional | Value            |
| ------------- | ---------- | ----------------- | ---------------- |
| Authorization | **string** | required          | `Bearer <token>` |

**RESPONSES**

| Code | Description                        | Comment                                                                                                                                         |
| ---- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                                 | The request was processed successfully                                                                                                          |
| 400  | Bad request                        | Invalid request parameters or FHIR operation outcome resource returned                                                                          |
| 401  | Unauthorized                       | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
| 404  | No route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested                                       |
| 500  | Internal Server Error              | The server has encountered a situation it doesn't know how to handle                                                                            |

**EXAMPLE:**

```
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Procedure?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&status=completed' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'
```

## Procedure of the patient and code and date search parameters

Fetches a bundle of all Procedure resources for the specified patient and date and procedure code(s)

**METHOD** *GET*

```
`GET [base url]/Procedure?patient={Type/}[id]&code={system|}[code]&date=[date]`
```

**PARAMS**
\[base url] - [FHIR base url](/articles/fhir/service-base-urls)
\[id] - patient id
\{system|} - an identity of the terminology system, used to specify the state of the procedure . FHIR search token parameter. See [Search specification](https://www.hl7.org/fhir/search.html#token) for more information.
\{code} - a code specifying the state of the procedure
\[date] - an estimated or actual date, when the procedure was performed

**HEADERS**

The Authorization token SHALL be obtained during the Authentication and Authorization process. Go to [Authentication and Authorization](/articles/fhir/authentication-authorization) for further details.

| Header        | Type       | Required/Optional | Value            |
| ------------- | ---------- | ----------------- | ---------------- |
| Authorization | **string** | required          | `Bearer <token>` |

**RESPONSES**

| Code | Description                        | Comment                                                                                                                                         |
| ---- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                                 | The request was processed successfully                                                                                                          |
| 400  | Bad request                        | Invalid request parameters or FHIR operation outcome resource returned                                                                          |
| 401  | Unauthorized                       | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
| 404  | No route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested                                       |
| 500  | Internal Server Error              | The server has encountered a situation it doesn't know how to handle                                                                            |

**EXAMPLE:**

```
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Procedure?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&date=ge2019-01-14T00:00:00Z&code=http://snomed.info/sct|35637008' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'
```
