FHIR Procedure Resource (R5)

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 R5.

  • FHIR Procedure Resource (R5) — 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..*Classification of the procedure
Procedure.codeCodeableConcept0..1Identification of the procedure
Procedure.subjectReference1..1Individual or entity the procedure was performed on
Procedure.focusReference0..1Who is the target of the procedure when it is not the subject of record only
Procedure.encounterReference0..1The Encounter during which this Procedure was created
Procedure.occurrence[x]dateTime | Period | string | Age | Range | Timing0..1When the procedure occurred or is occurring
Procedure.recordeddateTime0..1When the procedure was first captured in the subject's record
Procedure.recorderReference0..1Who recorded the procedure
Procedure.reported[x]boolean | Reference0..1Reported rather than primary record
Procedure.performerBackboneElement0..*Who performed the procedure and what they did
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..1Who performed the procedure
Procedure.performer.onBehalfOfReference0..1Organization the device or practitioner was acting for
Procedure.performer.periodPeriod0..1When the performer performed the procedure
Procedure.locationReference0..1Where the procedure happened
Procedure.reasonCodeableReference0..*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.complicationCodeableReference0..*Complication following 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.usedCodeableReference0..*Items used during procedure
Procedure.supportingInfoReference0..*Extra information relevant to the procedure

Example JSON (R5)

{
  "resourceType": "Procedure",
  "id": "example",
  "status": "completed",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "80146002",
        "display": "Appendectomy"
      }
    ]
  },
  "subject": {
    "reference": "Patient/example"
  },
  "occurrenceDateTime": "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.