Skip to main content

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:

FieldTypeDescriptionRequired
idstringUnique identifier for the resourceYes
statuscodePreparation, in-progress, not-done, on-hold, stopped, completed, entered-in-error, unknownYes
codeCodeableConceptIdentification of the procedureYes
subjectReference(Patient)Who the procedure was performed onYes
identifierIdentifier[]External identifiers for the procedureNo
basedOnReference(ServiceRequest / CarePlan)[]Request fulfilled by this procedureNo
partOfReference(Procedure / Observation / MedicationAdministration)[]Part of referenced eventNo
statusReasonCodeableConceptReason for current statusNo
categoryCodeableConceptClassification of the procedureNo
encounterReference(Encounter)Encounter created as part ofNo
performedDateTimedateTimeWhen the procedure was performedNo
performedPeriodPeriodWhen the procedure was performedNo
recorderReference(Patient / RelatedPerson / Practitioner / PractitionerRole)Who recorded the procedureNo
asserterReference(Patient / RelatedPerson / Practitioner / PractitionerRole)Person who asserts this procedureNo
performerBackboneElement[]The people who performed the procedureNo
locationReference(Location)Where the procedure happenedNo
reasonCodeCodeableConcept[]Coded reason procedure performedNo
reasonReferenceReference(Condition / Observation / Procedure / DocumentReference / DiagnosticReport)[]Condition that is the reason the procedure performedNo
bodySiteCodeableConcept[]Target body sitesNo
outcomeCodeableConceptResult of procedureNo
reportReference(DiagnosticReport / DocumentReference / Composition)[]Any report resulting from the procedureNo
complicationCodeableConcept[]Complication following the procedureNo
complicationDetailReference(Condition)[]A condition that is a result of the procedureNo
followUpCodeableConcept[]Instructions for follow upNo
noteAnnotation[]Additional information about the procedureNo
focalDeviceBackboneElement[]Manipulated, implanted, or removed deviceNo
usedReferenceReference(Device / Medication / Substance)[]Items used during procedureNo
usedCodeCodeableConcept[]Coded items used during procedureNo

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 / SolutionCreateReadUpdateDeleteSearch
GEHRIMED-Yes--Yes
myAvatarYesYesYes-Yes
myEvolvYesYesYes-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 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
info

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:

ParameterTypeRequiredDescriptionExample
patientreferenceYesUnique identifier of the patientpatient=Patient/123
datedateNoWhen 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
enddateNoDeprecated. Use date parameter with le prefix instead. Observed date/time range end on the Period Start field.end=2024-12-31
performerreferenceNoUnique identifier of the Practitionerperformer=Practitioner/67890
startdateNoDeprecated. Use date parameter with ge prefix instead. Observed date/time range start on the Period Start field.start=2024-01-01
pagestringNoOne-based (1-based) page indexpage=2

ID-based Search:

ParameterTypeRequiredDescriptionExample
_idstringYesThe ID of the resource_id=12345
pagestringNoOne-based (1-based) page indexpage=2

Examples

Create a Procedure

Create a Procedure
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"
}]
}]
}'

Read Procedure by ID

Read Procedure by ID
curl -X GET https://fhir.netsmartcloud.com/v4/Procedure/12345 \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"

Update a Procedure

Update a Procedure
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"
}]
}'

Search by Patient

Search by Patient
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"

Search by Patient and Date Range

Search by Patient and Date Range
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"

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: