FHIR Procedure Resource (R4)

Procedure records an action performed on or for a patient: surgery, a diagnostic procedure, counselling. Element table, search parameters, example JSON and FHIRPath for FHIR R4.

  • FHIR Procedure Resource (R4) — part of the free FHIR Toolbox library.
  • Runs entirely in your browser: your FHIR data is never uploaded to a server.

Overview

Procedure records an action performed on or for a patient: surgery, a diagnostic procedure, counselling. It captures what was done, its status, when, by whom and why. R5 renamed the time element from performed[x] to occurrence[x] and changed reasons to CodeableReference.

Elements

ElementTypeCardinalityDescription
Procedure.identifierIdentifier0..*External Identifiers for this procedure
Procedure.instantiatesCanonicalcanonical0..*Instantiates FHIR protocol or definition
Procedure.instantiatesUriuri0..*Instantiates external protocol or definition
Procedure.basedOnReference0..*A request for this procedure
Procedure.partOfReference0..*Part of referenced event
Procedure.statuscode1..1preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Procedure.statusReasonCodeableConcept0..1Reason for current status
Procedure.categoryCodeableConcept0..1Classification of the procedure
Procedure.codeCodeableConcept0..1Identification of the procedure
Procedure.subjectReference1..1Who the procedure was performed on
Procedure.encounterReference0..1Encounter created as part of
Procedure.performed[x]dateTime | Period | string | Age | Range0..1When the procedure was performed
Procedure.recorderReference0..1Who recorded the procedure
Procedure.asserterReference0..1Person who asserts this procedure
Procedure.performerBackboneElement0..*The people who performed the procedure
Procedure.performer.idString0..1Unique id for inter-element referencing
Procedure.performer.extensionExtension0..*Additional content defined by implementations
Procedure.performer.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Procedure.performer.functionCodeableConcept0..1Type of performance
Procedure.performer.actorReference1..1The reference to the practitioner
Procedure.performer.onBehalfOfReference0..1Organization the device or practitioner was acting for
Procedure.locationReference0..1Where the procedure happened
Procedure.reasonCodeCodeableConcept0..*Coded reason procedure performed
Procedure.reasonReferenceReference0..*The justification that the procedure was performed
Procedure.bodySiteCodeableConcept0..*Target body sites
Procedure.outcomeCodeableConcept0..1The result of procedure
Procedure.reportReference0..*Any report resulting from the procedure
Procedure.complicationCodeableConcept0..*Complication following the procedure
Procedure.complicationDetailReference0..*A condition that is a result of the procedure
Procedure.followUpCodeableConcept0..*Instructions for follow up
Procedure.noteAnnotation0..*Additional information about the procedure
Procedure.focalDeviceBackboneElement0..*Manipulated, implanted, or removed device
Procedure.focalDevice.idString0..1Unique id for inter-element referencing
Procedure.focalDevice.extensionExtension0..*Additional content defined by implementations
Procedure.focalDevice.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Procedure.focalDevice.actionCodeableConcept0..1Kind of change to device
Procedure.focalDevice.manipulatedReference1..1Device that was changed
Procedure.usedReferenceReference0..*Items used during procedure
Procedure.usedCodeCodeableConcept0..*Coded items used during the procedure

Example JSON (R4)

{
  "resourceType": "Procedure",
  "id": "example",
  "status": "completed",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "80146002",
        "display": "Appendectomy"
      }
    ]
  },
  "subject": {
    "reference": "Patient/example"
  },
  "performedDateTime": "2024-04-20T08:00:00Z"
}

FHIRPath

  • Procedure.code.coding.display — What was done
  • Procedure.status — Procedure status

Common validation errors

  • Using performedDateTime against R5, where the element is occurrenceDateTime.
  • Omitting subject or status. Both are required.
  • Using a Procedure for something that is a finding (an Observation) or an order (ServiceRequest).

FHIR Toolbox is a free, privacy-first collection of HL7 FHIR utilities by Omindra Labs. Every tool performs zero-server processing — your health data never leaves your device.