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: