Procedure
Overview
The Procedure resource represents actions performed on or for patients, including physical interventions like operations, as well as less invasive services such as counseling, therapy, or long-term care services.
Use Cases:
- Record surgical procedures and their outcomes
- Document therapy sessions and counseling activities
- Track diagnostic procedures and their results
- Support quality reporting and clinical analytics
- Coordinate care across providers and settings
Relationships:
- Patient: The individual who underwent the procedure
- Practitioner: Healthcare providers performing procedures
- Encounter: Clinical encounters during which procedures occurred
- Location: Where procedures were performed
- Condition: Health conditions addressed by procedures
- Device: Medical devices used or implanted during procedures
- Observation: Clinical observations related to procedures
- Organization: Healthcare organizations where procedures occurred
Resource Schema
Key Fields:
| Field | Type | Description | Required |
|---|---|---|---|
| id | string | Unique identifier for the resource | Yes |
| status | code | Preparation, in-progress, not-done, on-hold, stopped, completed, entered-in-error, unknown | Yes |
| code | CodeableConcept | Identification of the procedure | Yes |
| subject | Reference(Patient) | Who the procedure was performed on | Yes |
| identifier | Identifier[] | External identifiers for the procedure | No |
| basedOn | Reference(ServiceRequest / CarePlan)[] | Request fulfilled by this procedure | No |
| partOf | Reference(Procedure / Observation / MedicationAdministration)[] | Part of referenced event | No |
| statusReason | CodeableConcept | Reason for current status | No |
| category | CodeableConcept | Classification of the procedure | No |
| encounter | Reference(Encounter) | Encounter created as part of | No |
| performedDateTime | dateTime | When the procedure was performed | No |
| performedPeriod | Period | When the procedure was performed | No |
| recorder | Reference(Patient / RelatedPerson / Practitioner / PractitionerRole) | Who recorded the procedure | No |
| asserter | Reference(Patient / RelatedPerson / Practitioner / PractitionerRole) | Person who asserts this procedure | No |
| performer | BackboneElement[] | The people who performed the procedure | No |
| location | Reference(Location) | Where the procedure happened | No |
| reasonCode | CodeableConcept[] | Coded reason procedure performed | No |
| reasonReference | Reference(Condition / Observation / Procedure / DocumentReference / DiagnosticReport)[] | Condition that is the reason the procedure performed | No |
| bodySite | CodeableConcept[] | Target body sites | No |
| outcome | CodeableConcept | Result of procedure | No |
| report | Reference(DiagnosticReport / DocumentReference / Composition)[] | Any report resulting from the procedure | No |
| complication | CodeableConcept[] | Complication following the procedure | No |
| complicationDetail | Reference(Condition)[] | A condition that is a result of the procedure | No |
| followUp | CodeableConcept[] | Instructions for follow up | No |
| note | Annotation[] | Additional information about the procedure | No |
| focalDevice | BackboneElement[] | Manipulated, implanted, or removed device | No |
| usedReference | Reference(Device / Medication / Substance)[] | Items used during procedure | No |
| usedCode | CodeableConcept[] | Coded items used during procedure | No |
JSON Example:
{
"resourceType": "Procedure",
"id": "12345",
"identifier": [{
"use": "official",
"system": "http://hospital.example.org/procedures",
"value": "PROC-2024-001"
}],
"status": "completed",
"category": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "387713003",
"display": "Surgical procedure"
}]
},
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}]
},
"subject": {
"reference": "Patient/12345"
},
"encounter": {
"reference": "Encounter/67890"
},
"performedDateTime": "2024-01-15T14:30:00Z",
"recorder": {
"reference": "Practitioner/recorder-123"
},
"performer": [{
"function": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "304292004",
"display": "Surgeon"
}]
},
"actor": {
"reference": "Practitioner/67890",
"display": "Dr. Jane Surgeon"
}
}],
"location": {
"reference": "Location/or-1",
"display": "Operating Room 1"
},
"reasonCode": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "74400008",
"display": "Appendicitis"
}]
}],
"bodySite": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "66754008",
"display": "Appendix structure"
}]
}],
"outcome": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "385669000",
"display": "Successful"
}]
},
"note": [{
"text": "Laparoscopic appendectomy completed without complications"
}]
}
Operations
The General Purpose FHIR R4 Procedure resource supports the following operations. However, support varies by the targeted CareRecord or solution.
| CareRecord / Solution | Create | Read | Update | Delete | Search |
|---|---|---|---|---|---|
| GEHRIMED | - | Yes | - | - | Yes |
| myAvatar | Yes | Yes | Yes | - | Yes |
| myEvolv | Yes | Yes | Yes | - | Yes |
| myUnity | - | Yes | - | - | Yes |
Create
Create a new Procedure resource. The resource must include all required elements (status, code, subject).
POST /Procedure
Read
Retrieve a specific Procedure resource by its unique identifier.
GET /Procedure/{id}
Update
Update an existing Procedure resource by its ID. The full resource must be provided in the request body, including the resource id.
PUT /Procedure/{id}
Search
Search for procedures using various criteria.
POST Method
Use POST for searches with form-encoded parameters. POST is recommended as it keeps PHI out of URLs and server logs.
POST /Procedure/_search
GET Method
Use GET for simple searches with parameters in the query string.
GET /Procedure?parameter=value
Not all Netsmart solutions support Procedure search. See supported operations table above and consult your target solution's documentation for more information.
Search Parameters
Patient-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
patient | reference | Yes | Unique identifier of the patient | patient=Patient/123 |
date | date | No | When the procedure was performed (i.e., Start Date/Time). Include the parameter twice to set upper and lower bounds. Supported date format: yyyy-mm-dd[Thh:mm:ss[Z|(+|-)hh:mm]]. Supported prefixes: eq (=), ge (>=), gt (>), le (<=), and lt (<). The prefix may be excluded for eq searches. | date=ge2024-01-01 |
end | date | No | Deprecated. Use date parameter with le prefix instead. Observed date/time range end on the Period Start field. | end=2024-12-31 |
performer | reference | No | Unique identifier of the Practitioner | performer=Practitioner/67890 |
start | date | No | Deprecated. Use date parameter with ge prefix instead. Observed date/time range start on the Period Start field. | start=2024-01-01 |
page | string | No | One-based (1-based) page index | page=2 |
ID-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
_id | string | Yes | The ID of the resource | _id=12345 |
page | string | No | One-based (1-based) page index | page=2 |
Examples
Create a Procedure
- Production
- Preview
curl -X POST https://fhir.netsmartcloud.com/v4/Procedure \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Procedure",
"status": "completed",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}]
},
"subject": {
"reference": "Patient/12345"
},
"encounter": {
"reference": "Encounter/67890"
},
"performedDateTime": "2024-01-15T14:30:00Z",
"performer": [{
"actor": {
"reference": "Practitioner/67890",
"display": "Dr. Jane Surgeon"
}
}],
"reasonCode": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "74400008",
"display": "Appendicitis"
}]
}]
}'
curl -X POST https://fhirtest.netsmartcloud.com/v4/Procedure \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Procedure",
"status": "completed",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}]
},
"subject": {
"reference": "Patient/12345"
},
"encounter": {
"reference": "Encounter/67890"
},
"performedDateTime": "2024-01-15T14:30:00Z",
"performer": [{
"actor": {
"reference": "Practitioner/67890",
"display": "Dr. Jane Surgeon"
}
}],
"reasonCode": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "74400008",
"display": "Appendicitis"
}]
}]
}'
Read Procedure by ID
- Production
- Preview
curl -X GET https://fhir.netsmartcloud.com/v4/Procedure/12345 \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"
curl -X GET https://fhirtest.netsmartcloud.com/v4/Procedure/12345 \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"
Update a Procedure
- Production
- Preview
curl -X PUT https://fhir.netsmartcloud.com/v4/Procedure/12345 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Procedure",
"id": "12345",
"status": "completed",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}]
},
"subject": {
"reference": "Patient/12345"
},
"encounter": {
"reference": "Encounter/67890"
},
"performedDateTime": "2024-01-15T14:30:00Z",
"performer": [{
"actor": {
"reference": "Practitioner/67890",
"display": "Dr. Jane Surgeon"
}
}],
"outcome": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "385669000",
"display": "Successful"
}]
},
"note": [{
"text": "Laparoscopic appendectomy completed without complications"
}]
}'
curl -X PUT https://fhirtest.netsmartcloud.com/v4/Procedure/12345 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Procedure",
"id": "12345",
"status": "completed",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}]
},
"subject": {
"reference": "Patient/12345"
},
"encounter": {
"reference": "Encounter/67890"
},
"performedDateTime": "2024-01-15T14:30:00Z",
"performer": [{
"actor": {
"reference": "Practitioner/67890",
"display": "Dr. Jane Surgeon"
}
}],
"outcome": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "385669000",
"display": "Successful"
}]
},
"note": [{
"text": "Laparoscopic appendectomy completed without complications"
}]
}'
Search by Patient
- Production
- Preview
curl -X POST https://fhir.netsmartcloud.com/v4/Procedure/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123"
curl -X POST https://fhirtest.netsmartcloud.com/v4/Procedure/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123"
Search by Patient and Date Range
- Production
- Preview
curl -X POST https://fhir.netsmartcloud.com/v4/Procedure/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123" \
-d "date=ge2024-01-01" \
-d "date=le2024-12-31"
curl -X POST https://fhirtest.netsmartcloud.com/v4/Procedure/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123" \
-d "date=ge2024-01-01" \
-d "date=le2024-12-31"
Integration Patterns
Common Workflows:
- Retrieve all procedure records for a patient to build surgical history
- Filter procedures by date range for clinical documentation
- Search by performer to track provider activity
- Cross-reference with Encounter and Condition resources for comprehensive clinical context
Related Resources:
- Patient - Individual who underwent the procedure
- Practitioner - Healthcare providers performing procedures
- Encounter - Clinical encounters during which procedures occurred
- Location - Where procedures were performed
- Condition - Health conditions addressed by procedures
- Observation - Clinical observations related to procedures
Error Handling
For detailed error codes and handling procedures, see the Error Handling Guide.
Supported Profiles
This resource supports the following FHIR profiles as defined in the CapabilityStatement: