Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

9.3 Resource Procedure - Content

Patient Care icon Work GroupMaturity Level: 4 Trial UseSecurity Category: Patient Compartments: Encounter, Patient, Practitioner, RelatedPerson

An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy. This can be a quality or safety inspection for a location, organization, or device. This can be an accreditation procedure on a practitioner for licensing.

Procedure is one of the event resources in the FHIR workflow specification.

This resource is used to record the details of current and historical procedures performed on, with, or for a patient, practitioner, device, organization, or location. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise, verification of enrollment qualifications for a social program etc. Procedures may be performed by a healthcare professional, a service provider, a friend or relative or in some cases by the patient themselves.

Procedures can be performed on other non-patient subjects. For example, a procedure can represent an inspection to verify temperature or humidity for storage at a given location. Additionally, a procedure can represent the verification of the practitioner's qualifications for accreditation.

This resource provides summary information about the occurrence of the procedure and is not intended to provide real-time snapshots of a procedure as it unfolds, though for long-running procedures such as psychotherapy, it could represent summary level information about overall progress. The creation of a resource to support detailed real-time procedure information awaits the identification of a specific implementation use-case to share such information.

The Procedure resource should not be used to capture an event if a more specific resource already exists - e.g. immunizations, drug administrations, communications, and nutrition intake. The boundary between determining whether an action is a Procedure (training or counseling) as opposed to a Communication is based on whether there's a specific intent to change the mind-set of the patient. Mere disclosure of information would be considered a Communication. A process that involves verification of the patient's comprehension or to change the patient's mental state would be a Procedure.

Note that many diagnostic processes are procedures that generate Observations and DiagnosticReports. In many cases, such an observation does not require an explicit representation of the procedure used to create the observation, but where there are details of interest about how the diagnostic procedure was performed, the Procedure resource is used to describe the activity.

Some diagnostic procedures might not have a Procedure record. The Procedure record is only necessary when there is a need to capture information about the physical intervention that was performed to capture the diagnostic information (e.g. anesthetic, incision, scope size, etc.)

A Task is a workflow step such as canceling an order, fulfilling an order, signing an order, merging a set of records, admitting a patient. Procedures are actions that are intended to result in a physical or mental change to or for the subject (e.g. surgery, physiotherapy, training, counseling). A Task resource often exists in parallel with clinical resources. For example, a Task might request fulfillment of a ServiceRequest ordering a Procedure.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure TUDomainResourceAn action that is being or was performed on an individual or entity

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierExternal Identifiers for this procedure

... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)Instantiates FHIR protocol or definition

... instantiatesUri Σ0..*uriInstantiates external protocol or definition

... basedOn Σ0..*Reference(CarePlan | ServiceRequest)A request for this procedure

... partOf Σ0..*Reference(Procedure | Observation | MedicationAdministration)Part of referenced event

... status ?!Σ1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (Required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: Procedure Not Performed Reason (SNOMED-CT) (Example)
... category Σ0..*CodeableConceptClassification of the procedure
Binding: Procedure Category Codes (SNOMED CT) (Example)

... code Σ0..1CodeableConceptIdentification of the procedure
Binding: Procedure Codes (SNOMED CT) (Example)
... subject Σ1..1Reference(Patient | Group | Device | Practitioner | Organization | Location)Individual or entity the procedure was performed on
... focus Σ0..1Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen)Who is the target of the procedure when it is not the subject of record only
... encounter Σ0..1Reference(Encounter)The Encounter during which this Procedure was created
... occurrence[x] Σ0..1When the procedure occurred or is occurring
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceStringstring
.... occurrenceAgeAge
.... occurrenceRangeRange
.... occurrenceTimingTiming
... recorded Σ0..1dateTimeWhen the procedure was first captured in the subject's record
... recorder Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Who recorded the procedure
... reported[x] Σ0..1Reported rather than primary record
.... reportedBooleanboolean
.... reportedReferenceReference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
... performer ΣC0..*BackboneElementWho performed the procedure and what they did
+ Rule: Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole

.... function Σ0..1CodeableConceptType of performance
Binding: Procedure Performer Role Codes (Example)
.... actor ΣC1..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService)Who performed the procedure
.... onBehalfOf C0..1Reference(Organization)Organization the device or practitioner was acting for
.... period 0..1PeriodWhen the performer performed the procedure
... location Σ0..1Reference(Location)Where the procedure happened
... reason Σ0..*CodeableReference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference)The justification that the procedure was performed
Binding: Procedure Reason Codes (Example)

... bodySite Σ0..*CodeableConceptTarget body sites
Binding: SNOMED CT Body Structures (Example)

... outcome Σ0..1CodeableConceptThe result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) (Example)
... report 0..*Reference(DiagnosticReport | DocumentReference | Composition)Any report resulting from the procedure

... complication 0..*CodeableReference(Condition)Complication following the procedure
Binding: Condition/Problem/Diagnosis Codes (Example)

... followUp 0..*CodeableConceptInstructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) (Example)

... note 0..*AnnotationAdditional information about the procedure

... focalDevice 0..*BackboneElementManipulated, implanted, or removed device

.... action 0..1CodeableConceptKind of change to device
Binding: Procedure Device Action Codes (Preferred)
.... manipulated 1..1Reference(Device)Device that was changed
... used 0..*CodeableReference(Device | Medication | Substance | BiologicallyDerivedProduct)Items used during procedure
Binding: Device Type (Example)

... supportingInfo 0..*Reference(Any)Extra information relevant to the procedure


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Procedure (DomainResource)Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to serveridentifier : Identifier [0..*]The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this ProcedureinstantiatesCanonical : canonical [0..*] « PlanDefinition| ActivityDefinition|Measure|OperationDefinition|Questionnaire »The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this ProcedureinstantiatesUri : uri [0..*]A reference to a resource that contains details of the request for this procedurebasedOn : Reference [0..*] « CarePlan|ServiceRequest »A larger event of which this particular procedure is a component or steppartOf : Reference [0..*] « Procedure|Observation| MedicationAdministration »A code specifying the state of the procedure. Generally, this will be the in-progress or completed state (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EventStatus! »Captures the reason for the current state of the procedurestatusReason : CodeableConcept [0..1] « null (Strength=Example) ProcedureNotPerformedReasonSN...?? »A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure")category : CodeableConcept [0..*] « null (Strength=Example)ProcedureCategoryCodesSNOMEDCT?? »The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy")code : CodeableConcept [0..1] « null (Strength=Example)ProcedureCodesSNOMEDCT?? »On whom or on what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). If the actual focus of the procedure is different from the subject, the focus element specifies the actual focus of the proceduresubject : Reference [1..1] « Patient|Group|Device|Practitioner| Organization|Location »Who is the target of the procedure when it is not the subject of record only. If focus is not present, then subject is the focus. If focus is present and the subject is one of the targets of the procedure, include subject as a focus as well. If focus is present and the subject is not included in focus, it implies that the procedure was only targeted on the focus. For example, when a caregiver is given education for a patient, the caregiver would be the focus and the procedure record is associated with the subject (e.g. patient). For example, use focus when recording the target of the education, training, or counseling is the parent or relative of a patientfocus : Reference [0..1] « Patient|Group|RelatedPerson|Practitioner| Organization|CareTeam|PractitionerRole|Specimen »The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associatedencounter : Reference [0..1] « Encounter »Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be capturedoccurrence[x] : DataType [0..1] « dateTime|Period|string|Age|Range| Timing »The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event)recorded : dateTime [0..1]Individual who recorded the record and takes responsibility for its contentrecorder : Reference [0..1] « Patient|RelatedPerson|Practitioner| PractitionerRole »Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the reportreported[x] : DataType [0..1] « boolean|Reference(Patient| RelatedPerson|Practitioner|PractitionerRole|Organization) »The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurantlocation : Reference [0..1] « Location »The coded reason or reference why the procedure was performed. This may be a coded entity of some type, be present as text, or be a reference to one of several resources that justify the procedurereason : CodeableReference [0..*] « Condition|Observation|Procedure| DiagnosticReport|DocumentReference; null (Strength=Example)ProcedureReasonCodes?? »Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesionbodySite : CodeableConcept [0..*] « Codes describing anatomical locations. May include laterality. (Strength=Example)SNOMEDCTBodyStructures?? »The outcome of the procedure - did it resolve the reasons for the procedure being performed?outcome : CodeableConcept [0..1] « null (Strength=Example)ProcedureOutcomeCodesSNOMEDCT?? »This could be a histology result, pathology report, surgical report, etcreport : Reference [0..*] « DiagnosticReport|DocumentReference| Composition »Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issuescomplication : CodeableReference [0..*] « Condition; null (Strength=Example) ConditionProblemDiagnosisCodes?? »If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be usedfollowUp : CodeableConcept [0..*] « null (Strength=Example)ProcedureFollowUpCodesSNOMEDCT?? »Any other notes and comments about the procedurenote : Annotation [0..*]Identifies medications, devices and any other substance used as part of the procedureused : CodeableReference [0..*] « Device|Medication|Substance| BiologicallyDerivedProduct; null (Strength=Example)DeviceType?? »Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are availablesupportingInfo : Reference [0..*] « Any »PerformerDistinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopistfunction : CodeableConcept [0..1] « null (Strength=Example)ProcedurePerformerRoleCodes?? »Indicates who or what performed the procedureactor : Reference [1..1] « Practitioner|PractitionerRole| Organization|Patient|RelatedPerson|Device|CareTeam| HealthcareService » « This element has or is affected by some invariantsC »The Organization the Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf ofonBehalfOf : Reference [0..1] « Organization » « This element has or is affected by some invariantsC »Time period during which the performer performed the procedureperiod : Period [0..1]FocalDeviceThe kind of change that happened to the device during the procedureaction : CodeableConcept [0..1] « null (Strength=Preferred)ProcedureDeviceActionCodes? »The device that was manipulated (changed) during the proceduremanipulated : Reference [1..1] « Device »Indicates who or what performed the procedure and how they were involvedperformer[0..*]A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the ProcedurefocalDevice[0..*]

XML Template

<Procedure xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External Identifiers for this procedure --></identifier>
 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|Measure|
   OperationDefinition|PlanDefinition|Questionnaire) Instantiates FHIR protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan|ServiceRequest) A request for this procedure --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|Observation|Procedure) Part of referenced event --></partOf>
 <status value="[code]"/><!-- 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <category><!-- 0..* CodeableConcept Classification of the procedure --></category>
 <code><!-- 0..1 CodeableConcept Identification of the procedure --></code>
 <subject><!-- 1..1 Reference(Device|Group|Location|Organization|Patient|
   Practitioner) Individual or entity the procedure was performed on --></subject>
 <focus><!-- 0..1 Reference(CareTeam|Group|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson|Specimen) Who is the target of the procedure when it is not the subject of record only --></focus>
 <encounter><!-- 0..1 Reference(Encounter) The Encounter during which this Procedure was created --></encounter>
 <occurrence[x]><!-- 0..1 dateTime|Period|string|Age|Range|Timing When the procedure occurred or is occurring --></occurrence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the procedure was first captured in the subject's record -->
 <recorder><!-- 0..1 Reference(Patient|Practitioner|PractitionerRole|
   RelatedPerson) Who recorded the procedure --></recorder>
 <reported[x]><!-- 0..1 boolean|Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Reported rather than primary record --></reported[x]>
 <performer>  <!-- 0..* Who performed the procedure and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- I 1..1 Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) Who performed the procedure --></actor>
  <onBehalfOf><!-- I 0..1 Reference(Organization) Organization the device or practitioner was acting for --></onBehalfOf>
  <period><!-- 0..1 Period When the performer performed the procedure --></period>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the procedure happened --></location>
 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference|
   Observation|Procedure) The justification that the procedure was performed --></reason>
 <bodySite><!-- 0..* CodeableConcept Target body sites --></bodySite>
 <outcome><!-- 0..1 CodeableConcept The result of procedure --></outcome>
 <report><!-- 0..* Reference(Composition|DiagnosticReport|DocumentReference) Any report resulting from the procedure --></report>
 <complication><!-- 0..* CodeableReference(Condition) Complication following the procedure --></complication>
 <followUp><!-- 0..* CodeableConcept Instructions for follow up --></followUp>
 <note><!-- 0..* Annotation Additional information about the procedure --></note>
 <focalDevice>  <!-- 0..* Manipulated, implanted, or removed device -->
  <action><!-- 0..1 CodeableConcept Kind of change to device --></action>
  <manipulated><!-- 1..1 Reference(Device) Device that was changed --></manipulated>
 </focalDevice>
 <used><!-- 0..* CodeableReference(BiologicallyDerivedProduct|Device|Medication|
   Substance) Items used during procedure --></used>
 <supportingInfo><!-- 0..* Reference(Any) Extra information relevant to the procedure --></supportingInfo>
</Procedure>

JSON Template

{doco
  "resourceType" : "Procedure",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External Identifiers for this procedure
  "instantiatesCanonical" : ["<canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)>"], // Instantiates FHIR protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan|ServiceRequest) }], // A request for this procedure
  "partOf" : [{ Reference(MedicationAdministration|Observation|Procedure) }], // Part of referenced event
  "status" : "<code>", // R!  preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  "statusReason" : { CodeableConcept }, // Reason for current status
  "category" : [{ CodeableConcept }], // Classification of the procedure
  "code" : { CodeableConcept }, // Identification of the procedure
  "subject" : { Reference(Device|Group|Location|Organization|Patient|
   Practitioner) }, // R!  Individual or entity the procedure was performed on
  "focus" : { Reference(CareTeam|Group|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson|Specimen) }, // Who is the target of the procedure when it is not the subject of record only
  "encounter" : { Reference(Encounter) }, // The Encounter during which this Procedure was created
  // occurrence[x]: When the procedure occurred or is occurring. One of these 6:
  "occurrenceDateTime" : "<dateTime>",
  "occurrencePeriod" : { Period },
  "occurrenceString" : "<string>",
  "occurrenceAge" : { Age },
  "occurrenceRange" : { Range },
  "occurrenceTiming" : { Timing },
  "recorded" : "<dateTime>", // When the procedure was first captured in the subject's record
  "recorder" : { Reference(Patient|Practitioner|PractitionerRole|
   RelatedPerson) }, // Who recorded the procedure
  // reported[x]: Reported rather than primary record. One of these 2:
  "reportedBoolean" : <boolean>,
  "reportedReference" : { Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) },
  "performer" : [{ // Who performed the procedure and what they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) }, // I R!  Who performed the procedure
    "onBehalfOf" : { Reference(Organization) }, // I Organization the device or practitioner was acting for
    "period" : { Period } // When the performer performed the procedure
  }],
  "location" : { Reference(Location) }, // Where the procedure happened
  "reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference|
   Observation|Procedure) }], // The justification that the procedure was performed
  "bodySite" : [{ CodeableConcept }], // Target body sites
  "outcome" : { CodeableConcept }, // The result of procedure
  "report" : [{ Reference(Composition|DiagnosticReport|DocumentReference) }], // Any report resulting from the procedure
  "complication" : [{ CodeableReference(Condition) }], // Complication following the procedure
  "followUp" : [{ CodeableConcept }], // Instructions for follow up
  "note" : [{ Annotation }], // Additional information about the procedure
  "focalDevice" : [{ // Manipulated, implanted, or removed device
    "action" : { CodeableConcept }, // Kind of change to device
    "manipulated" : { Reference(Device) } // R!  Device that was changed
  }],
  "used" : [{ CodeableReference(BiologicallyDerivedProduct|Device|Medication|
   Substance) }], // Items used during procedure
  "supportingInfo" : [{ Reference(Any) }] // Extra information relevant to the procedure
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Procedure;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Identifiers for this procedure
  fhir:instantiatesCanonical  ( [ canonical(ActivityDefinition|Measure|OperationDefinition|PlanDefinition|Questionnaire) ] ... ) ; # 0..* Instantiates FHIR protocol or definition
  fhir:instantiatesUri  ( [ uri ] ... ) ; # 0..* Instantiates external protocol or definition
  fhir:basedOn  ( [ Reference(CarePlan|ServiceRequest) ] ... ) ; # 0..* A request for this procedure
  fhir:partOf  ( [ Reference(MedicationAdministration|Observation|Procedure) ] ... ) ; # 0..* Part of referenced event
  fhir:status [ code ] ; # 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  fhir:statusReason [ CodeableConcept ] ; # 0..1 Reason for current status
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the procedure
  fhir:code [ CodeableConcept ] ; # 0..1 Identification of the procedure
  fhir:subject [ Reference(Device|Group|Location|Organization|Patient|Practitioner) ] ; # 1..1 Individual or entity the procedure was performed on
  fhir:focus [ Reference(CareTeam|Group|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|
  Specimen) ] ; # 0..1 Who is the target of the procedure when it is not the subject of record only
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 The Encounter during which this Procedure was created
  # occurrence[x] : 0..1 When the procedure occurred or is occurring. One of these 6
    fhir:occurrence [  a fhir:dateTime ; dateTime ]
    fhir:occurrence [  a fhir:Period ; Period ]
    fhir:occurrence [  a fhir:string ; string ]
    fhir:occurrence [  a fhir:Age ; Age ]
    fhir:occurrence [  a fhir:Range ; Range ]
    fhir:occurrence [  a fhir:Timing ; Timing ]
  fhir:recorded [ dateTime ] ; # 0..1 When the procedure was first captured in the subject's record
  fhir:recorder [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who recorded the procedure
  # reported[x] : 0..1 Reported rather than primary record. One of these 2
    fhir:reported [  a fhir:boolean ; boolean ]
    fhir:reported [  a fhir:Reference ; Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]
  fhir:performer ( [ # 0..* Who performed the procedure and what they did
    fhir:function [ CodeableConcept ] ; # 0..1 Type of performance
    fhir:actor [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ] ; # 1..1 I Who performed the procedure
    fhir:onBehalfOf [ Reference(Organization) ] ; # 0..1 I Organization the device or practitioner was acting for
    fhir:period [ Period ] ; # 0..1 When the performer performed the procedure
  ] ... ) ;
  fhir:location [ Reference(Location) ] ; # 0..1 Where the procedure happened
  fhir:reason  ( [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation|Procedure) ] ... ) ; # 0..* The justification that the procedure was performed
  fhir:bodySite  ( [ CodeableConcept ] ... ) ; # 0..* Target body sites
  fhir:outcome [ CodeableConcept ] ; # 0..1 The result of procedure
  fhir:report  ( [ Reference(Composition|DiagnosticReport|DocumentReference) ] ... ) ; # 0..* Any report resulting from the procedure
  fhir:complication  ( [ CodeableReference(Condition) ] ... ) ; # 0..* Complication following the procedure
  fhir:followUp  ( [ CodeableConcept ] ... ) ; # 0..* Instructions for follow up
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Additional information about the procedure
  fhir:focalDevice ( [ # 0..* Manipulated, implanted, or removed device
    fhir:action [ CodeableConcept ] ; # 0..1 Kind of change to device
    fhir:manipulated [ Reference(Device) ] ; # 1..1 Device that was changed
  ] ... ) ;
  fhir:used  ( [ CodeableReference(BiologicallyDerivedProduct|Device|Medication|Substance) ] ... ) ; # 0..* Items used during procedure
  fhir:supportingInfo  ( [ Reference(Any) ] ... ) ; # 0..* Extra information relevant to the procedure
]

Changes from both R4 and R4B

Procedure
Procedure.category
  • Max Cardinality changed from 1 to *
Procedure.subject
  • Type Reference: Added Target Types Device, Practitioner, Organization, Location
Procedure.focus
  • Added Element
Procedure.occurrence[x]
  • Added Element
Procedure.recorded
  • Added Element
Procedure.reported[x]
  • Added Element
Procedure.performer.actor
  • Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.performer.period
  • Added Element
Procedure.reason
  • Added Element
Procedure.complication
  • Type changed from CodeableConcept to CodeableReference
Procedure.used
  • Added Element
Procedure.supportingInfo
  • Added Element
Procedure.performed[x]
  • Deleted
Procedure.asserter
  • Deleted (-> Procedure.reportedReference)
Procedure.reasonCode
  • Deleted (-> Procedure.reason)
Procedure.reasonReference
  • Deleted (-> Procedure.reason)
Procedure.complicationDetail
  • Deleted (-> Procedure.complication)
Procedure.usedReference
  • Deleted (-> Procedure.used)
Procedure.usedCode
  • Deleted (-> Procedure.used)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure TUDomainResourceAn action that is being or was performed on an individual or entity

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierExternal Identifiers for this procedure

... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)Instantiates FHIR protocol or definition

... instantiatesUri Σ0..*uriInstantiates external protocol or definition

... basedOn Σ0..*Reference(CarePlan | ServiceRequest)A request for this procedure

... partOf Σ0..*Reference(Procedure | Observation | MedicationAdministration)Part of referenced event

... status ?!Σ1..1codepreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (Required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: Procedure Not Performed Reason (SNOMED-CT) (Example)
... category Σ0..*CodeableConceptClassification of the procedure
Binding: Procedure Category Codes (SNOMED CT) (Example)

... code Σ0..1CodeableConceptIdentification of the procedure
Binding: Procedure Codes (SNOMED CT) (Example)
... subject Σ1..1Reference(Patient | Group | Device | Practitioner | Organization | Location)Individual or entity the procedure was performed on
... focus Σ0..1Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen)Who is the target of the procedure when it is not the subject of record only
... encounter Σ0..1Reference(Encounter)The Encounter during which this Procedure was created
... occurrence[x] Σ0..1When the procedure occurred or is occurring
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceStringstring
.... occurrenceAgeAge
.... occurrenceRangeRange
.... occurrenceTimingTiming
... recorded Σ0..1dateTimeWhen the procedure was first captured in the subject's record
... recorder Σ0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)Who recorded the procedure
... reported[x] Σ0..1Reported rather than primary record
.... reportedBooleanboolean
.... reportedReferenceReference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
... performer ΣC0..*BackboneElementWho performed the procedure and what they did
+ Rule: Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole

.... function Σ0..1CodeableConceptType of performance
Binding: Procedure Performer Role Codes (Example)
.... actor ΣC1..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService)Who performed the procedure
.... onBehalfOf C0..1Reference(Organization)Organization the device or practitioner was acting for
.... period 0..1PeriodWhen the performer performed the procedure
... location Σ0..1Reference(Location)Where the procedure happened
... reason Σ0..*CodeableReference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference)The justification that the procedure was performed
Binding: Procedure Reason Codes (Example)

... bodySite Σ0..*CodeableConceptTarget body sites
Binding: SNOMED CT Body Structures (Example)

... outcome Σ0..1CodeableConceptThe result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) (Example)
... report 0..*Reference(DiagnosticReport | DocumentReference | Composition)Any report resulting from the procedure

... complication 0..*CodeableReference(Condition)Complication following the procedure
Binding: Condition/Problem/Diagnosis Codes (Example)

... followUp 0..*CodeableConceptInstructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) (Example)

... note 0..*AnnotationAdditional information about the procedure

... focalDevice 0..*BackboneElementManipulated, implanted, or removed device

.... action 0..1CodeableConceptKind of change to device
Binding: Procedure Device Action Codes (Preferred)
.... manipulated 1..1Reference(Device)Device that was changed
... used 0..*CodeableReference(Device | Medication | Substance | BiologicallyDerivedProduct)Items used during procedure
Binding: Device Type (Example)

... supportingInfo 0..*Reference(Any)Extra information relevant to the procedure


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Procedure (DomainResource)Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to serveridentifier : Identifier [0..*]The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this ProcedureinstantiatesCanonical : canonical [0..*] « PlanDefinition| ActivityDefinition|Measure|OperationDefinition|Questionnaire »The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this ProcedureinstantiatesUri : uri [0..*]A reference to a resource that contains details of the request for this procedurebasedOn : Reference [0..*] « CarePlan|ServiceRequest »A larger event of which this particular procedure is a component or steppartOf : Reference [0..*] « Procedure|Observation| MedicationAdministration »A code specifying the state of the procedure. Generally, this will be the in-progress or completed state (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EventStatus! »Captures the reason for the current state of the procedurestatusReason : CodeableConcept [0..1] « null (Strength=Example) ProcedureNotPerformedReasonSN...?? »A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure")category : CodeableConcept [0..*] « null (Strength=Example)ProcedureCategoryCodesSNOMEDCT?? »The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy")code : CodeableConcept [0..1] « null (Strength=Example)ProcedureCodesSNOMEDCT?? »On whom or on what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). If the actual focus of the procedure is different from the subject, the focus element specifies the actual focus of the proceduresubject : Reference [1..1] « Patient|Group|Device|Practitioner| Organization|Location »Who is the target of the procedure when it is not the subject of record only. If focus is not present, then subject is the focus. If focus is present and the subject is one of the targets of the procedure, include subject as a focus as well. If focus is present and the subject is not included in focus, it implies that the procedure was only targeted on the focus. For example, when a caregiver is given education for a patient, the caregiver would be the focus and the procedure record is associated with the subject (e.g. patient). For example, use focus when recording the target of the education, training, or counseling is the parent or relative of a patientfocus : Reference [0..1] « Patient|Group|RelatedPerson|Practitioner| Organization|CareTeam|PractitionerRole|Specimen »The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associatedencounter : Reference [0..1] « Encounter »Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be capturedoccurrence[x] : DataType [0..1] « dateTime|Period|string|Age|Range| Timing »The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event)recorded : dateTime [0..1]Individual who recorded the record and takes responsibility for its contentrecorder : Reference [0..1] « Patient|RelatedPerson|Practitioner| PractitionerRole »Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the reportreported[x] : DataType [0..1] « boolean|Reference(Patient| RelatedPerson|Practitioner|PractitionerRole|Organization) »The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurantlocation : Reference [0..1] « Location »The coded reason or reference why the procedure was performed. This may be a coded entity of some type, be present as text, or be a reference to one of several resources that justify the procedurereason : CodeableReference [0..*] « Condition|Observation|Procedure| DiagnosticReport|DocumentReference; null (Strength=Example)ProcedureReasonCodes?? »Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesionbodySite : CodeableConcept [0..*] « Codes describing anatomical locations. May include laterality. (Strength=Example)SNOMEDCTBodyStructures?? »The outcome of the procedure - did it resolve the reasons for the procedure being performed?outcome : CodeableConcept [0..1] « null (Strength=Example)ProcedureOutcomeCodesSNOMEDCT?? »This could be a histology result, pathology report, surgical report, etcreport : Reference [0..*] « DiagnosticReport|DocumentReference| Composition »Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issuescomplication : CodeableReference [0..*] « Condition; null (Strength=Example) ConditionProblemDiagnosisCodes?? »If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be usedfollowUp : CodeableConcept [0..*] « null (Strength=Example)ProcedureFollowUpCodesSNOMEDCT?? »Any other notes and comments about the procedurenote : Annotation [0..*]Identifies medications, devices and any other substance used as part of the procedureused : CodeableReference [0..*] « Device|Medication|Substance| BiologicallyDerivedProduct; null (Strength=Example)DeviceType?? »Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are availablesupportingInfo : Reference [0..*] « Any »PerformerDistinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopistfunction : CodeableConcept [0..1] « null (Strength=Example)ProcedurePerformerRoleCodes?? »Indicates who or what performed the procedureactor : Reference [1..1] « Practitioner|PractitionerRole| Organization|Patient|RelatedPerson|Device|CareTeam| HealthcareService » « This element has or is affected by some invariantsC »The Organization the Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf ofonBehalfOf : Reference [0..1] « Organization » « This element has or is affected by some invariantsC »Time period during which the performer performed the procedureperiod : Period [0..1]FocalDeviceThe kind of change that happened to the device during the procedureaction : CodeableConcept [0..1] « null (Strength=Preferred)ProcedureDeviceActionCodes? »The device that was manipulated (changed) during the proceduremanipulated : Reference [1..1] « Device »Indicates who or what performed the procedure and how they were involvedperformer[0..*]A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the ProcedurefocalDevice[0..*]

XML Template

<Procedure xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External Identifiers for this procedure --></identifier>
 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|Measure|
   OperationDefinition|PlanDefinition|Questionnaire) Instantiates FHIR protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan|ServiceRequest) A request for this procedure --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|Observation|Procedure) Part of referenced event --></partOf>
 <status value="[code]"/><!-- 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <category><!-- 0..* CodeableConcept Classification of the procedure --></category>
 <code><!-- 0..1 CodeableConcept Identification of the procedure --></code>
 <subject><!-- 1..1 Reference(Device|Group|Location|Organization|Patient|
   Practitioner) Individual or entity the procedure was performed on --></subject>
 <focus><!-- 0..1 Reference(CareTeam|Group|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson|Specimen) Who is the target of the procedure when it is not the subject of record only --></focus>
 <encounter><!-- 0..1 Reference(Encounter) The Encounter during which this Procedure was created --></encounter>
 <occurrence[x]><!-- 0..1 dateTime|Period|string|Age|Range|Timing When the procedure occurred or is occurring --></occurrence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the procedure was first captured in the subject's record -->
 <recorder><!-- 0..1 Reference(Patient|Practitioner|PractitionerRole|
   RelatedPerson) Who recorded the procedure --></recorder>
 <reported[x]><!-- 0..1 boolean|Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Reported rather than primary record --></reported[x]>
 <performer>  <!-- 0..* Who performed the procedure and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- I 1..1 Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) Who performed the procedure --></actor>
  <onBehalfOf><!-- I 0..1 Reference(Organization) Organization the device or practitioner was acting for --></onBehalfOf>
  <period><!-- 0..1 Period When the performer performed the procedure --></period>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the procedure happened --></location>
 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference|
   Observation|Procedure) The justification that the procedure was performed --></reason>
 <bodySite><!-- 0..* CodeableConcept Target body sites --></bodySite>
 <outcome><!-- 0..1 CodeableConcept The result of procedure --></outcome>
 <report><!-- 0..* Reference(Composition|DiagnosticReport|DocumentReference) Any report resulting from the procedure --></report>
 <complication><!-- 0..* CodeableReference(Condition) Complication following the procedure --></complication>
 <followUp><!-- 0..* CodeableConcept Instructions for follow up --></followUp>
 <note><!-- 0..* Annotation Additional information about the procedure --></note>
 <focalDevice>  <!-- 0..* Manipulated, implanted, or removed device -->
  <action><!-- 0..1 CodeableConcept Kind of change to device --></action>
  <manipulated><!-- 1..1 Reference(Device) Device that was changed --></manipulated>
 </focalDevice>
 <used><!-- 0..* CodeableReference(BiologicallyDerivedProduct|Device|Medication|
   Substance) Items used during procedure --></used>
 <supportingInfo><!-- 0..* Reference(Any) Extra information relevant to the procedure --></supportingInfo>
</Procedure>

JSON Template

{doco
  "resourceType" : "Procedure",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External Identifiers for this procedure
  "instantiatesCanonical" : ["<canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)>"], // Instantiates FHIR protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan|ServiceRequest) }], // A request for this procedure
  "partOf" : [{ Reference(MedicationAdministration|Observation|Procedure) }], // Part of referenced event
  "status" : "<code>", // R!  preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  "statusReason" : { CodeableConcept }, // Reason for current status
  "category" : [{ CodeableConcept }], // Classification of the procedure
  "code" : { CodeableConcept }, // Identification of the procedure
  "subject" : { Reference(Device|Group|Location|Organization|Patient|
   Practitioner) }, // R!  Individual or entity the procedure was performed on
  "focus" : { Reference(CareTeam|Group|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson|Specimen) }, // Who is the target of the procedure when it is not the subject of record only
  "encounter" : { Reference(Encounter) }, // The Encounter during which this Procedure was created
  // occurrence[x]: When the procedure occurred or is occurring. One of these 6:
  "occurrenceDateTime" : "<dateTime>",
  "occurrencePeriod" : { Period },
  "occurrenceString" : "<string>",
  "occurrenceAge" : { Age },
  "occurrenceRange" : { Range },
  "occurrenceTiming" : { Timing },
  "recorded" : "<dateTime>", // When the procedure was first captured in the subject's record
  "recorder" : { Reference(Patient|Practitioner|PractitionerRole|
   RelatedPerson) }, // Who recorded the procedure
  // reported[x]: Reported rather than primary record. One of these 2:
  "reportedBoolean" : <boolean>,
  "reportedReference" : { Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) },
  "performer" : [{ // Who performed the procedure and what they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) }, // I R!  Who performed the procedure
    "onBehalfOf" : { Reference(Organization) }, // I Organization the device or practitioner was acting for
    "period" : { Period } // When the performer performed the procedure
  }],
  "location" : { Reference(Location) }, // Where the procedure happened
  "reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference|
   Observation|Procedure) }], // The justification that the procedure was performed
  "bodySite" : [{ CodeableConcept }], // Target body sites
  "outcome" : { CodeableConcept }, // The result of procedure
  "report" : [{ Reference(Composition|DiagnosticReport|DocumentReference) }], // Any report resulting from the procedure
  "complication" : [{ CodeableReference(Condition) }], // Complication following the procedure
  "followUp" : [{ CodeableConcept }], // Instructions for follow up
  "note" : [{ Annotation }], // Additional information about the procedure
  "focalDevice" : [{ // Manipulated, implanted, or removed device
    "action" : { CodeableConcept }, // Kind of change to device
    "manipulated" : { Reference(Device) } // R!  Device that was changed
  }],
  "used" : [{ CodeableReference(BiologicallyDerivedProduct|Device|Medication|
   Substance) }], // Items used during procedure
  "supportingInfo" : [{ Reference(Any) }] // Extra information relevant to the procedure
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Procedure;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Identifiers for this procedure
  fhir:instantiatesCanonical  ( [ canonical(ActivityDefinition|Measure|OperationDefinition|PlanDefinition|Questionnaire) ] ... ) ; # 0..* Instantiates FHIR protocol or definition
  fhir:instantiatesUri  ( [ uri ] ... ) ; # 0..* Instantiates external protocol or definition
  fhir:basedOn  ( [ Reference(CarePlan|ServiceRequest) ] ... ) ; # 0..* A request for this procedure
  fhir:partOf  ( [ Reference(MedicationAdministration|Observation|Procedure) ] ... ) ; # 0..* Part of referenced event
  fhir:status [ code ] ; # 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  fhir:statusReason [ CodeableConcept ] ; # 0..1 Reason for current status
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the procedure
  fhir:code [ CodeableConcept ] ; # 0..1 Identification of the procedure
  fhir:subject [ Reference(Device|Group|Location|Organization|Patient|Practitioner) ] ; # 1..1 Individual or entity the procedure was performed on
  fhir:focus [ Reference(CareTeam|Group|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|
  Specimen) ] ; # 0..1 Who is the target of the procedure when it is not the subject of record only
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 The Encounter during which this Procedure was created
  # occurrence[x] : 0..1 When the procedure occurred or is occurring. One of these 6
    fhir:occurrence [  a fhir:dateTime ; dateTime ]
    fhir:occurrence [  a fhir:Period ; Period ]
    fhir:occurrence [  a fhir:string ; string ]
    fhir:occurrence [  a fhir:Age ; Age ]
    fhir:occurrence [  a fhir:Range ; Range ]
    fhir:occurrence [  a fhir:Timing ; Timing ]
  fhir:recorded [ dateTime ] ; # 0..1 When the procedure was first captured in the subject's record
  fhir:recorder [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who recorded the procedure
  # reported[x] : 0..1 Reported rather than primary record. One of these 2
    fhir:reported [  a fhir:boolean ; boolean ]
    fhir:reported [  a fhir:Reference ; Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]
  fhir:performer ( [ # 0..* Who performed the procedure and what they did
    fhir:function [ CodeableConcept ] ; # 0..1 Type of performance
    fhir:actor [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ] ; # 1..1 I Who performed the procedure
    fhir:onBehalfOf [ Reference(Organization) ] ; # 0..1 I Organization the device or practitioner was acting for
    fhir:period [ Period ] ; # 0..1 When the performer performed the procedure
  ] ... ) ;
  fhir:location [ Reference(Location) ] ; # 0..1 Where the procedure happened
  fhir:reason  ( [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation|Procedure) ] ... ) ; # 0..* The justification that the procedure was performed
  fhir:bodySite  ( [ CodeableConcept ] ... ) ; # 0..* Target body sites
  fhir:outcome [ CodeableConcept ] ; # 0..1 The result of procedure
  fhir:report  ( [ Reference(Composition|DiagnosticReport|DocumentReference) ] ... ) ; # 0..* Any report resulting from the procedure
  fhir:complication  ( [ CodeableReference(Condition) ] ... ) ; # 0..* Complication following the procedure
  fhir:followUp  ( [ CodeableConcept ] ... ) ; # 0..* Instructions for follow up
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Additional information about the procedure
  fhir:focalDevice ( [ # 0..* Manipulated, implanted, or removed device
    fhir:action [ CodeableConcept ] ; # 0..1 Kind of change to device
    fhir:manipulated [ Reference(Device) ] ; # 1..1 Device that was changed
  ] ... ) ;
  fhir:used  ( [ CodeableReference(BiologicallyDerivedProduct|Device|Medication|Substance) ] ... ) ; # 0..* Items used during procedure
  fhir:supportingInfo  ( [ Reference(Any) ] ... ) ; # 0..* Extra information relevant to the procedure
]

Changes from both R4 and R4B

Procedure
Procedure.category
  • Max Cardinality changed from 1 to *
Procedure.subject
  • Type Reference: Added Target Types Device, Practitioner, Organization, Location
Procedure.focus
  • Added Element
Procedure.occurrence[x]
  • Added Element
Procedure.recorded
  • Added Element
Procedure.reported[x]
  • Added Element
Procedure.performer.actor
  • Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.performer.period
  • Added Element
Procedure.reason
  • Added Element
Procedure.complication
  • Type changed from CodeableConcept to CodeableReference
Procedure.used
  • Added Element
Procedure.supportingInfo
  • Added Element
Procedure.performed[x]
  • Deleted
Procedure.asserter
  • Deleted (-> Procedure.reportedReference)
Procedure.reasonCode
  • Deleted (-> Procedure.reason)
Procedure.reasonReference
  • Deleted (-> Procedure.reason)
Procedure.complicationDetail
  • Deleted (-> Procedure.complication)
Procedure.usedReference
  • Deleted (-> Procedure.used)
Procedure.usedCode
  • Deleted (-> Procedure.used)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
Procedure.status EventStatus Required

Codes identifying the lifecycle stage of an event.

Procedure.statusReason ProcedureNotPerformedReasonSNOMEDCT Example

Situation codes describing the reason that a procedure, which might otherwise be expected, was not performed, or a procedure that was started and was not completed. Consists of SNOMED CT codes, children of procedure contraindicated (183932001), procedure discontinued (416406003), procedure not done (416237000), procedure not indicated (428119001), procedure not offered (416064006), procedure not wanted (416432009), procedure refused (183944003), and procedure stopped (394908001) as well as 410536001 Contraindicated (qualifier value).

Procedure.category ProcedureCategoryCodesSNOMEDCT Example

Procedure Category code: A selection of relevant SNOMED CT codes.

Procedure.code ProcedureCodesSNOMEDCT Example

Procedure Code: All SNOMED CT procedure codes.

Procedure.performer.function ProcedurePerformerRoleCodes Example

This example value set defines the set of codes that can be used to indicate a role of a procedure performer.

Procedure.reason ProcedureReasonCodes Example

This example value set defines the set of codes that can be used to indicate a reason for a procedure.

Procedure.bodySite SNOMEDCTBodyStructures Example

This value set includes all codes from SNOMED CT icon where concept is-a 442083009 (Anatomical or acquired body site (body structure)).

Procedure.outcome ProcedureOutcomeCodesSNOMEDCT Example

Procedure Outcome code: A selection of relevant SNOMED CT codes.

Procedure.complication ConditionProblemDiagnosisCodes Example

Example value set for Condition/Problem/Diagnosis codes.

Procedure.followUp ProcedureFollowUpCodesSNOMEDCT Example

Procedure follow up codes: A selection of SNOMED CT codes relevant to procedure follow up.

Procedure.focalDevice.action ProcedureDeviceActionCodes Preferred

Example codes indicating the change that happened to the device during the procedure. Note that these are in no way complete and might not even be appropriate for some uses.

Procedure.used DeviceType Example

Codes used to identify medical devices. Includes concepts from SNOMED CT (http://www.snomed.org/) where concept is-a 49062001 (Device) and is provided as a suggestive example.

UniqueKeyLevelLocationDescriptionExpression
img prc-1Rule Procedure.performerProcedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRoleonBehalfOf.exists() and actor.resolve().exists() implies actor.resolve().where($this is Practitioner or $this is PractitionerRole).empty()

Many of the elements of Procedure have inherent relationships and may be conveyed by the Procedure.code or in the text element of the Procedure.code property. I.e. you may be able to infer category, bodySite and even indication. Whether these other properties will be populated may vary by implementation.

Care should be taken to avoid nonsensical combinations/statements; e.g. "name=amputation, bodySite=heart".

For devices, these are devices that are incidental to / or used to perform the procedure - scalpels, gauze, endoscopes, etc. Devices that are the focus of the procedure should appear in Procedure.device instead.

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
based-onreferenceA request for this procedureProcedure.basedOn
(CarePlan, ServiceRequest)
categorytokenClassification of the procedureProcedure.category
codetokenA code to identify a procedureProcedure.code22 Resources
datedateWhen the procedure occurred or is occurringProcedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing)27 Resources
encounterreferenceThe Encounter during which this Procedure was createdProcedure.encounter
(Encounter)
29 Resources
identifiertokenA unique identifier for a procedureProcedure.identifier65 Resources
instantiates-canonicalreferenceInstantiates FHIR protocol or definitionProcedure.instantiatesCanonical
(Questionnaire, Measure, PlanDefinition, OperationDefinition, ActivityDefinition)
instantiates-uriuriInstantiates external protocol or definitionProcedure.instantiatesUri
locationreferenceWhere the procedure happenedProcedure.location
(Location)
part-ofreferencePart of referenced eventProcedure.partOf
(Observation, Procedure, MedicationAdministration)
patientreferenceSearch by subject - a patientProcedure.subject.where(resolve() is Patient)
(Patient)
66 Resources
performerreferenceWho performed the procedureProcedure.performer.actor
(Practitioner, Organization, CareTeam, Device, Patient, HealthcareService, PractitionerRole, RelatedPerson)
reason-codetokenReference to a concept (by class)Procedure.reason.concept
reason-referencereferenceReference to a resource (by instance)Procedure.reason.reference
reportreferenceAny report resulting from the procedureProcedure.report
(Composition, DiagnosticReport, DocumentReference)
statustokenpreparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknownProcedure.status
subjectreferenceSearch by subjectProcedure.subject
(Practitioner, Group, Organization, Device, Patient, Location)