FHIR Release 3 (STU) Current Build
This page is part of FHIR STU 3 (v3.0.1) in it's permanent home (it will always be available at this URL). It has been superceded by R4 . For a full list of available versions, see the Directory of published versions .

9.3 Resource Procedure - Content

Patient Care Work Group Maturity Level : 3   Trial Use Security Category : Patient Compartments : Encounter , Patient , Practitioner , RelatedPerson

An action that is or was performed on or for a patient. This can be a physical intervention like an operation, or less invasive like counseling long term services, counseling, or hypnotherapy.

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 or for a patient. A procedure is an activity that is performed with on, with, or on for a patient as part of the provision of care. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise, etc. Procedures may be performed by a healthcare professional, a service provider, a friend or relative or in some cases by the patient themselves.

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 - i.e. immunizations , drug administrations and communications . 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 Procedure resource is used to describe the activity.

Some diagnostic procedures may 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 cancelling 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.

This resource is referenced by AdverseEvent , Appointment , ChargeItem , Claim , ClinicalImpression DeviceUseStatement , Encounter , ExplanationOfBenefit , Flag , ImagingStudy , MedicationAdministration , MedicationDispense , MedicationStatement MedicationUsage , NutritionIntake , Observation , itself and QuestionnaireResponse .

This resource implements the Event pattern.

Structure

Name Flags Card. Type Description & Constraints doco
. . Procedure I TU DomainResource An action that is being or was performed on a patient
+ Reason not done is only permitted if notDone indicator is true Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Identifiers for this procedure
. . . definition instantiatesCanonical Σ 0..* Reference canonical ( PlanDefinition | ActivityDefinition | HealthcareService Measure | OperationDefinition | Questionnaire ) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
. . . basedOn Σ 0..* Reference ( CarePlan | ProcedureRequest | ReferralRequest ServiceRequest ) A request for this procedure
. . . partOf Σ 0..* Reference ( Procedure | Observation | MedicationAdministration ) Part of referenced event
. . . status ?! Σ 1..1 code preparation | in-progress | suspended not-done | aborted on-hold | stopped | completed | entered-in-error | unknown
EventStatus ( Required )
. . notDone . statusReason ?! Σ 0..1 boolean True if procedure was not performed as scheduled notDoneReason Σ I 0..1 CodeableConcept Reason procedure was not performed for current status
Procedure Not Performed Reason (SNOMED-CT) ( Example )
. . . category Σ 0..1 0..* CodeableConcept Classification of the procedure
Procedure Category Codes (SNOMED CT) ( Example )
. . . code Σ 0..1 CodeableConcept Identification of the procedure
Procedure Codes (SNOMED CT) ( Example )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who the procedure was performed on
. . context . encounter Σ 0..1 Reference ( Encounter | EpisodeOfCare ) The Encounter or episode associated with the procedure during which this Procedure was created
. . . performed[x] occurrence[x] Σ 0..1 Date/Period When the procedure was performed occurred or is occurring
.... occurrenceDateTime dateTime
. . . performedDateTime . occurrencePeriod dateTime Period
.... occurrenceString string
.... occurrenceAge Age
. . . . occurrenceRange Range
. . . . performedPeriod occurrenceTiming Period Timing
... recorded Σ 0..1 dateTime When the procedure was first captured in the subject's record
... recorder Σ 0..1 Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole ) Who recorded the procedure
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
. . . . reportedReference Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization )
. . . performer Σ 0..* BackboneElement The people who performed the procedure
. . . role . function Σ 0..1 CodeableConcept The role the actor was in Type of performance
Procedure Performer Role Codes ( Example )
. . . . actor Σ 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService ) The reference to Who performed the practitioner procedure
. . . . onBehalfOf 0..1 Reference ( Organization ) Organization the device or practitioner was acting for
. . . location Σ 0..1 Reference ( Location ) Where the procedure happened
. . . reasonCode Σ 0..* CodeableConcept Coded reason procedure performed
Procedure Reason Codes ( Example )
. . . reasonReference Σ 0..* Reference ( Condition | Observation | Procedure | DiagnosticReport | DocumentReference ) Condition The justification that is the reason the procedure was performed
. . . bodySite Σ 0..* CodeableConcept Target body sites
SNOMED CT Body Structures ( Example )
. . . outcome Σ 0..1 CodeableConcept The result of procedure
Procedure Outcome Codes (SNOMED CT) ( Example )
. . . report 0..* Reference ( DiagnosticReport | DocumentReference | Composition ) Any report resulting from the procedure
. . . complication 0..* CodeableConcept Complication following the procedure
Condition/Problem/Diagnosis Codes ( Example )
. . . complicationDetail 0..* Reference ( Condition ) A condition that is that is a result of the procedure
. . . followUp 0..* CodeableConcept Instructions for follow up
Procedure Follow up Codes (SNOMED CT) ( Example )
. . . note 0..* Annotation Additional information about the procedure
. . . focalDevice 0..* BackboneElement Device changed in procedure Manipulated, implanted, or removed device
. . . . action 0..1 CodeableConcept Kind of change to device
Procedure Device Action Codes ( Preferred )
. . . . manipulated 1..1 Reference ( Device ) Device that was changed
. . . usedReference 0..* Reference ( Device | Medication | Substance | BiologicallyDerivedProduct ) Items used during procedure
. . . usedCode 0..* CodeableConcept Coded items used during the procedure
FHIR Device Types ( Example )

doco Documentation for this format

UML Diagram ( Legend )

Procedure ( DomainResource ) This records Business identifiers associated with assigned to this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the performer or other systems which remain constant as the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation) updated and is propagated from server to server identifier : Identifier [0..*] A The URL pointing to a FHIR-defined protocol, guideline, orderset order set or other definition that was is adhered to in whole or in part by this procedure Procedure definition instantiatesCanonical : Reference canonical [0..*] « PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire » HealthcareService 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 Procedure instantiatesUri : uri [0..*] A reference to a resource that contains details of the request for this procedure basedOn : Reference [0..*] « CarePlan | ProcedureRequest | ReferralRequest ServiceRequest » A larger event of which this particular procedure is a component or step partOf : Reference [0..*] « Procedure | Observation | MedicationAdministration » A code specifying the state of the procedure. Generally Generally, this will be the in-progress or completed state (this element modifies the meaning of other elements) status : code [1..1] « A code specifying the state of the procedure. (Strength=Required) EventStatus ! » Set this to true if the record is saying that Captures the procedure was NOT performed (this element modifies reason for the meaning current state of other elements) notDone : boolean [0..1] A code indicating why the procedure was not performed notDoneReason statusReason : CodeableConcept [0..1] « A code that identifies the reason a procedure was not performed. (Strength=Example) Procedure Not Performed Reaso... ProcedureNotPerformedReason(S... ?? » A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure") category : CodeableConcept [0..1] [0..*] « A code that classifies a procedure for searching, sorting and display purposes. (Strength=Example) Procedure Category Codes (SNO... ProcedureCategoryCodes(SNOMED... ?? » 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] « A code to identify a specific procedure . (Strength=Example) Procedure Codes (SNOMED CT) ProcedureCodes(SNOMEDCT) ?? » The person, animal or group on which the procedure was performed subject : Reference [1..1] « Patient | Group » The encounter Encounter during which the procedure this Procedure was created or performed or to which the creation of this record is tightly associated context encounter : Reference [0..1] « Encounter | EpisodeOfCare » The date(time)/period over which Estimated or actual date, date-time, period, or age when the procedure was performed. 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 captured performed[x] occurrence[x] : Type [0..1] « dateTime | Period | string | Age | Range | Timing » The date the occurrence of the procedure was first captured in the record - potentially significantly after the occurrence of the event recorded : dateTime [0..1] Individual who recorded the record and takes responsibility for its content recorder : 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 report reported[x] : Type [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 restaurant location : Reference [0..1] « Location » The coded reason why the procedure was performed. This may be a coded entity of some type, or may simply be present as text reasonCode : CodeableConcept [0..*] « A code that identifies the reason a procedure is required. (Strength=Example) Procedure Reason ProcedureReasonCodes ?? » The condition that is the reason justification of why the procedure was performed reasonReference : Reference [0..*] « Condition | Observation | Procedure | DiagnosticReport | DocumentReference » Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion bodySite : CodeableConcept [0..*] « Codes describing anatomical locations. May include laterality. (Strength=Example) SNOMED CT Body Structures SNOMEDCTBodyStructures ?? » The outcome of the procedure - did it resolve the reasons for the procedure being performed? outcome : CodeableConcept [0..1] « An outcome of a procedure - whether it was resolved or otherwise. (Strength=Example) Procedure Outcome Codes (SNOM... ProcedureOutcomeCodes(SNOMEDC... ?? » This could be a histology result, pathology report, surgical report, etc. etc report : 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' issues complication : CodeableConcept [0..*] « Codes describing complications that resulted from a procedure. (Strength=Example) Condition/Problem/Diagnosis Condition/Problem/DiagnosisCo... ?? » Any complications that occurred during the procedure, or in the immediate post-performance period complicationDetail : Reference [0..*] « Condition » If the procedure required specific follow up - e.g. removal of sutures. The followup follow up may be represented as a simple note, note or could potentially be more complex complex, in which case the CarePlan resource can be used followUp : CodeableConcept [0..*] « Specific follow up required for a procedure e.g. removal of sutures. (Strength=Example) Procedure Follow up Codes (SN... ProcedureFollowUpCodes(SNOMED... ?? » Any other notes and comments about the procedure. E.g. the operative notes procedure note : Annotation [0..*] Identifies medications, devices and any other substance used as part of the procedure usedReference : Reference [0..*] « Device | Medication | Substance | BiologicallyDerivedProduct » Identifies coded items that were used as part of the procedure usedCode : CodeableConcept [0..*] « Codes describing items used during a procedure procedure. (Strength=Example) FHIR Device Types FHIRDeviceTypes ?? » Performer Distinguishes the type of involvement of the performer in the procedure. For example: example, surgeon, anaethetist, anaesthetist, endoscopist role function : CodeableConcept [0..1] « A code that identifies the role of a performer of the procedure. (Strength=Example) Procedure Performer Role ProcedurePerformerRoleCodes ?? » The practitioner Indicates who was involved in or what performed the procedure actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService » The organization the device or practitioner was acting on behalf of onBehalfOf : Reference [0..1] « Organization » FocalDevice The kind of change that happened to the device during the procedure action : CodeableConcept [0..1] « A kind of change that happened to the device during the procedure. (Strength=Preferred) Procedure Device Action ProcedureDeviceActionCodes ? » The device that was manipulated (changed) during the procedure manipulated : Reference [1..1] « Device » Limited to 'real' "real" people rather than equipment performer [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 Procedure focalDevice [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>
 <|
   </definition>
 <</basedOn>
 <</partOf>
 <
 <
 <</notDoneReason>
 <</category>

 <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>
 <</context>
 <</performed[x]>
 <
  <</role>
  <|
    </actor>

 <subject><!-- 1..1 Reference(Group|Patient) Who the procedure was performed on --></subject>
 <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..* The people who performed the procedure -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) Who performed the procedure --></actor>
  <onBehalfOf><!-- 0..1 Reference(Organization) Organization the device or practitioner was acting for --></onBehalfOf>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the procedure happened --></location>
 <</reasonCode>
 <</reasonReference>

 <reasonCode><!-- 0..* CodeableConcept Coded reason procedure performed --></reasonCode>
 <reasonReference><!-- 0..* Reference(Condition|DiagnosticReport|
   DocumentReference|Observation|Procedure) The justification that the procedure was performed --></reasonReference>
 <bodySite><!-- 0..* CodeableConcept Target body sites --></bodySite>
 <</outcome>
 <</report>

 <outcome><!-- 0..1 CodeableConcept The result of procedure --></outcome>
 <report><!-- 0..* Reference(Composition|DiagnosticReport|DocumentReference) Any report resulting from the procedure --></report>

 <complication><!-- 0..* CodeableConcept Complication following the procedure --></complication>
 <</complicationDetail>
 <</followUp>
 <</note>
 <

 <complicationDetail><!-- 0..* Reference(Condition) A condition that is a result of the procedure --></complicationDetail>
 <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>
 <</usedReference>

 <usedReference><!-- 0..* Reference(BiologicallyDerivedProduct|Device|Medication|
   Substance) Items used during procedure --></usedReference>
 <usedCode><!-- 0..* CodeableConcept Coded items used during the procedure --></usedCode>
</Procedure>

JSON Template

{doco
  "resourceType" : "",

  "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(ActivityDefinition|Measure|
   OperationDefinition|PlanDefinition|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(Group|Patient) }, // R!  Who the procedure was performed on
  "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" : [{ // The people who performed the procedure
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) }, // R!  Who performed the procedure
    "onBehalfOf" : { Reference(Organization) } // Organization the device or practitioner was acting for
  }],
  "location" : { Reference(Location) }, // Where the procedure happened
  "
  "

  "reasonCode" : [{ CodeableConcept }], // Coded reason procedure performed
  "reasonReference" : [{ Reference(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" : [{ CodeableConcept }], // Complication following the procedure
  "
  "
  "
  "

  "complicationDetail" : [{ Reference(Condition) }], // A condition that is a result of 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
  }],
  "

  "usedReference" : [{ Reference(BiologicallyDerivedProduct|Device|Medication|
   Substance) }], // Items used during procedure
  "usedCode" : [{ CodeableConcept }] // Coded items used during the procedure
}

Turtle Template

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

[ 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:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:

  fhir:Procedure.identifier [ Identifier ], ... ; # 0..* External Identifiers for this procedure
  fhir:Procedure.instantiatesCanonical [ canonical(ActivityDefinition|Measure|OperationDefinition|PlanDefinition|Questionnaire) ], ... ; # 0..* Instantiates FHIR protocol or definition
  fhir:Procedure.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:Procedure.basedOn [ Reference(CarePlan|ServiceRequest) ], ... ; # 0..* A request for this procedure
  fhir:Procedure.partOf [ Reference(MedicationAdministration|Observation|Procedure) ], ... ; # 0..* Part of referenced event
  fhir:Procedure.status [ code ]; # 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  fhir:Procedure.statusReason [ CodeableConcept ]; # 0..1 Reason for current status
  fhir:Procedure.category [ CodeableConcept ], ... ; # 0..* Classification of the procedure

  fhir:Procedure.code [ CodeableConcept ]; # 0..1 Identification of the procedure
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:

  fhir:Procedure.subject [ Reference(Group|Patient) ]; # 1..1 Who the procedure was performed on
  fhir:Procedure.encounter [ Reference(Encounter) ]; # 0..1 The Encounter during which this Procedure was created
  # Procedure.occurrence[x] : 0..1 When the procedure occurred or is occurring. One of these 6
    fhir:Procedure.occurrenceDateTime [ dateTime ]
    fhir:Procedure.occurrencePeriod [ Period ]
    fhir:Procedure.occurrenceString [ string ]
    fhir:Procedure.occurrenceAge [ Age ]
    fhir:Procedure.occurrenceRange [ Range ]
    fhir:Procedure.occurrenceTiming [ Timing ]
  fhir:Procedure.recorded [ dateTime ]; # 0..1 When the procedure was first captured in the subject's record
  fhir:Procedure.recorder [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Who recorded the procedure
  # Procedure.reported[x] : 0..1 Reported rather than primary record. One of these 2
    fhir:Procedure.reportedBoolean [ boolean ]
    fhir:Procedure.reportedReference [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]
  fhir:Procedure.performer [ # 0..* The people who performed the procedure
    fhir:Procedure.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:Procedure.performer.actor [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the procedure
    fhir:Procedure.performer.onBehalfOf [ Reference(Organization) ]; # 0..1 Organization the device or practitioner was acting for
  ], ...;
  fhir:Procedure.location [ Reference(Location) ]; # 0..1 Where the procedure happened
  fhir:
  fhir:

  fhir:Procedure.reasonCode [ CodeableConcept ], ... ; # 0..* Coded reason procedure performed
  fhir:Procedure.reasonReference [ Reference(Condition|DiagnosticReport|DocumentReference|Observation|Procedure) ], ... ; # 0..* The justification that the procedure was performed

  fhir:Procedure.bodySite [ CodeableConcept ], ... ; # 0..* Target body sites
  fhir:
  fhir:

  fhir:Procedure.outcome [ CodeableConcept ]; # 0..1 The result of procedure
  fhir:Procedure.report [ Reference(Composition|DiagnosticReport|DocumentReference) ], ... ; # 0..* Any report resulting from the procedure

  fhir:Procedure.complication [ CodeableConcept ], ... ; # 0..* Complication following the procedure
  fhir:
  fhir:
  fhir:
  fhir:

  fhir:Procedure.complicationDetail [ Reference(Condition) ], ... ; # 0..* A condition that is a result of the procedure
  fhir:Procedure.followUp [ CodeableConcept ], ... ; # 0..* Instructions for follow up
  fhir:Procedure.note [ Annotation ], ... ; # 0..* Additional information about the procedure
  fhir:Procedure.focalDevice [ # 0..* Manipulated, implanted, or removed device

    fhir:Procedure.focalDevice.action [ CodeableConcept ]; # 0..1 Kind of change to device
    fhir:Procedure.focalDevice.manipulated [ Reference(Device) ]; # 1..1 Device that was changed
  ], ...;
  fhir:

  fhir:Procedure.usedReference [ Reference(BiologicallyDerivedProduct|Device|Medication|Substance) ], ... ; # 0..* Items used during procedure

  fhir:Procedure.usedCode [ CodeableConcept ], ... ; # 0..* Coded items used during the procedure
]

Changes since DSTU2 R3

Procedure Procedure.definition Added Element Procedure.basedOn Renamed from request to basedOn Max Cardinality changed from 1 to * Remove Reference(DiagnosticOrder) Procedure.partOf Added Element
Procedure.status
  • Change value set from http://hl7.org/fhir/ValueSet/procedure-status to http://hl7.org/fhir/ValueSet/event-status Procedure.notDone Renamed from notPerformed http://hl7.org/fhir/ValueSet/event-status|4.0.0 to notDone http://hl7.org/fhir/ValueSet/event-status|4.1.0
Procedure.notDoneReason Procedure.category
  • Renamed from reasonNotPerformed to notDoneReason Max Cardinality changed from * to 1 Procedure.code Min Cardinality changed from 1 to 0 Procedure.context Renamed from encounter to context Add Reference(EpisodeOfCare) Procedure.performer.actor Min Cardinality changed from 0 to 1 Add Reference(Device) Procedure.performer.onBehalfOf Added Element *
Procedure.reasonCode Procedure.occurrence[x]
  • Added Element
Procedure.reasonReference Procedure.recorded
  • Added Element
Procedure.complicationDetail Procedure.reported[x]
  • Added Element
Procedure.note Renamed from notes to note Procedure.focalDevice.action Procedure.performer.actor
  • Remove Binding http://hl7.org/fhir/ValueSet/device-action (required) Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.usedReference
  • Renamed from used to usedReference Type Reference: Added Target Type BiologicallyDerivedProduct
Procedure.usedCode Procedure.performed[x]
  • Added Element deleted
Procedure.reason[x] Procedure.asserter
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R2 <--> R3 <--> R4 Conversion Maps (status = 9 15 tests that all execute ok. All tests pass 3 fail round-trip testing and all 1 r3 resources are valid.). invalid (0 errors). )

Structure

Name Flags Card. Type Description & Constraints doco
. . Procedure I TU DomainResource An action that is being or was performed on a patient
+ Reason not done is only permitted if notDone indicator is true Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Identifiers for this procedure
. . . definition instantiatesCanonical Σ 0..* Reference canonical ( PlanDefinition | ActivityDefinition | HealthcareService Measure | OperationDefinition | Questionnaire ) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
. . . basedOn Σ 0..* Reference ( CarePlan | ProcedureRequest | ReferralRequest ServiceRequest ) A request for this procedure
. . . partOf Σ 0..* Reference ( Procedure | Observation | MedicationAdministration ) Part of referenced event
. . . status ?! Σ 1..1 code preparation | in-progress | suspended not-done | aborted on-hold | stopped | completed | entered-in-error | unknown
EventStatus ( Required )
. . notDone . statusReason ?! Σ 0..1 boolean True if procedure was not performed as scheduled notDoneReason Σ I 0..1 CodeableConcept Reason procedure was not performed for current status
Procedure Not Performed Reason (SNOMED-CT) ( Example )
. . . category Σ 0..1 0..* CodeableConcept Classification of the procedure
Procedure Category Codes (SNOMED CT) ( Example )
. . . code Σ 0..1 CodeableConcept Identification of the procedure
Procedure Codes (SNOMED CT) ( Example )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who the procedure was performed on
. . context . encounter Σ 0..1 Reference ( Encounter | EpisodeOfCare ) The Encounter or episode associated with the procedure during which this Procedure was created
. . . performed[x] occurrence[x] Σ 0..1 Date/Period When the procedure was performed occurred or is occurring
.... occurrenceDateTime dateTime
. . . performedDateTime . occurrencePeriod dateTime Period
.... occurrenceString string
. . . . occurrenceAge Age
.... occurrenceRange Range
. . . . performedPeriod occurrenceTiming Period Timing
... recorded Σ 0..1 dateTime When the procedure was first captured in the subject's record
... recorder Σ 0..1 Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole ) Who recorded the procedure
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
. . . . reportedReference Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization )
. . . performer Σ 0..* BackboneElement The people who performed the procedure
. . . role . function Σ 0..1 CodeableConcept The role the actor was in Type of performance
Procedure Performer Role Codes ( Example )
. . . . actor Σ 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService ) The reference to Who performed the practitioner procedure
. . . . onBehalfOf 0..1 Reference ( Organization ) Organization the device or practitioner was acting for
. . . location Σ 0..1 Reference ( Location ) Where the procedure happened
. . . reasonCode Σ 0..* CodeableConcept Coded reason procedure performed
Procedure Reason Codes ( Example )
. . . reasonReference Σ 0..* Reference ( Condition | Observation | Procedure | DiagnosticReport | DocumentReference ) Condition The justification that is the reason the procedure was performed
. . . bodySite Σ 0..* CodeableConcept Target body sites
SNOMED CT Body Structures ( Example )
. . . outcome Σ 0..1 CodeableConcept The result of procedure
Procedure Outcome Codes (SNOMED CT) ( Example )
. . . report 0..* Reference ( DiagnosticReport | DocumentReference | Composition ) Any report resulting from the procedure
. . . complication 0..* CodeableConcept Complication following the procedure
Condition/Problem/Diagnosis Codes ( Example )
. . . complicationDetail 0..* Reference ( Condition ) A condition that is that is a result of the procedure
. . . followUp 0..* CodeableConcept Instructions for follow up
Procedure Follow up Codes (SNOMED CT) ( Example )
. . . note 0..* Annotation Additional information about the procedure
. . . focalDevice 0..* BackboneElement Device changed in procedure Manipulated, implanted, or removed device
. . . . action 0..1 CodeableConcept Kind of change to device
Procedure Device Action Codes ( Preferred )
. . . . manipulated 1..1 Reference ( Device ) Device that was changed
. . . usedReference 0..* Reference ( Device | Medication | Substance | BiologicallyDerivedProduct ) Items used during procedure
. . . usedCode 0..* CodeableConcept Coded items used during the procedure
FHIR Device Types ( Example )

doco Documentation for this format

UML Diagram ( Legend )

Procedure ( DomainResource ) This records Business identifiers associated with assigned to this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the performer or other systems which remain constant as the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation) updated and is propagated from server to server identifier : Identifier [0..*] A The URL pointing to a FHIR-defined protocol, guideline, orderset order set or other definition that was is adhered to in whole or in part by this procedure Procedure definition instantiatesCanonical : Reference canonical [0..*] « PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire » HealthcareService 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 Procedure instantiatesUri : uri [0..*] A reference to a resource that contains details of the request for this procedure basedOn : Reference [0..*] « CarePlan | ProcedureRequest | ReferralRequest ServiceRequest » A larger event of which this particular procedure is a component or step partOf : Reference [0..*] « Procedure | Observation | MedicationAdministration » A code specifying the state of the procedure. Generally Generally, this will be the in-progress or completed state (this element modifies the meaning of other elements) status : code [1..1] « A code specifying the state of the procedure. (Strength=Required) EventStatus ! » Set this to true if the record is saying that Captures the procedure was NOT performed (this element modifies reason for the meaning current state of other elements) notDone : boolean [0..1] A code indicating why the procedure was not performed notDoneReason statusReason : CodeableConcept [0..1] « A code that identifies the reason a procedure was not performed. (Strength=Example) Procedure Not Performed Reaso... ProcedureNotPerformedReason(S... ?? » A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure") category : CodeableConcept [0..1] [0..*] « A code that classifies a procedure for searching, sorting and display purposes. (Strength=Example) Procedure Category Codes (SNO... ProcedureCategoryCodes(SNOMED... ?? » 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] « A code to identify a specific procedure . (Strength=Example) Procedure Codes (SNOMED CT) ProcedureCodes(SNOMEDCT) ?? » The person, animal or group on which the procedure was performed subject : Reference [1..1] « Patient | Group » The encounter Encounter during which the procedure this Procedure was created or performed or to which the creation of this record is tightly associated context encounter : Reference [0..1] « Encounter | EpisodeOfCare » The date(time)/period over which Estimated or actual date, date-time, period, or age when the procedure was performed. 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 captured performed[x] occurrence[x] : Type [0..1] « dateTime | Period | string | Age | Range | Timing » The date the occurrence of the procedure was first captured in the record - potentially significantly after the occurrence of the event recorded : dateTime [0..1] Individual who recorded the record and takes responsibility for its content recorder : 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 report reported[x] : Type [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 restaurant location : Reference [0..1] « Location » The coded reason why the procedure was performed. This may be a coded entity of some type, or may simply be present as text reasonCode : CodeableConcept [0..*] « A code that identifies the reason a procedure is required. (Strength=Example) Procedure Reason ProcedureReasonCodes ?? » The condition that is the reason justification of why the procedure was performed reasonReference : Reference [0..*] « Condition | Observation | Procedure | DiagnosticReport | DocumentReference » Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion bodySite : CodeableConcept [0..*] « Codes describing anatomical locations. May include laterality. (Strength=Example) SNOMED CT Body Structures SNOMEDCTBodyStructures ?? » The outcome of the procedure - did it resolve the reasons for the procedure being performed? outcome : CodeableConcept [0..1] « An outcome of a procedure - whether it was resolved or otherwise. (Strength=Example) Procedure Outcome Codes (SNOM... ProcedureOutcomeCodes(SNOMEDC... ?? » This could be a histology result, pathology report, surgical report, etc. etc report : 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' issues complication : CodeableConcept [0..*] « Codes describing complications that resulted from a procedure. (Strength=Example) Condition/Problem/Diagnosis Condition/Problem/DiagnosisCo... ?? » Any complications that occurred during the procedure, or in the immediate post-performance period complicationDetail : Reference [0..*] « Condition » If the procedure required specific follow up - e.g. removal of sutures. The followup follow up may be represented as a simple note, note or could potentially be more complex complex, in which case the CarePlan resource can be used followUp : CodeableConcept [0..*] « Specific follow up required for a procedure e.g. removal of sutures. (Strength=Example) Procedure Follow up Codes (SN... ProcedureFollowUpCodes(SNOMED... ?? » Any other notes and comments about the procedure. E.g. the operative notes procedure note : Annotation [0..*] Identifies medications, devices and any other substance used as part of the procedure usedReference : Reference [0..*] « Device | Medication | Substance | BiologicallyDerivedProduct » Identifies coded items that were used as part of the procedure usedCode : CodeableConcept [0..*] « Codes describing items used during a procedure procedure. (Strength=Example) FHIR Device Types FHIRDeviceTypes ?? » Performer Distinguishes the type of involvement of the performer in the procedure. For example: example, surgeon, anaethetist, anaesthetist, endoscopist role function : CodeableConcept [0..1] « A code that identifies the role of a performer of the procedure. (Strength=Example) Procedure Performer Role ProcedurePerformerRoleCodes ?? » The practitioner Indicates who was involved in or what performed the procedure actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService » The organization the device or practitioner was acting on behalf of onBehalfOf : Reference [0..1] « Organization » FocalDevice The kind of change that happened to the device during the procedure action : CodeableConcept [0..1] « A kind of change that happened to the device during the procedure. (Strength=Preferred) Procedure Device Action ProcedureDeviceActionCodes ? » The device that was manipulated (changed) during the procedure manipulated : Reference [1..1] « Device » Limited to 'real' "real" people rather than equipment performer [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 Procedure focalDevice [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>
 <|
   </definition>
 <</basedOn>
 <</partOf>
 <
 <
 <</notDoneReason>
 <</category>

 <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>
 <</context>
 <</performed[x]>
 <
  <</role>
  <|
    </actor>

 <subject><!-- 1..1 Reference(Group|Patient) Who the procedure was performed on --></subject>
 <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..* The people who performed the procedure -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) Who performed the procedure --></actor>
  <onBehalfOf><!-- 0..1 Reference(Organization) Organization the device or practitioner was acting for --></onBehalfOf>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the procedure happened --></location>
 <</reasonCode>
 <</reasonReference>

 <reasonCode><!-- 0..* CodeableConcept Coded reason procedure performed --></reasonCode>
 <reasonReference><!-- 0..* Reference(Condition|DiagnosticReport|
   DocumentReference|Observation|Procedure) The justification that the procedure was performed --></reasonReference>
 <bodySite><!-- 0..* CodeableConcept Target body sites --></bodySite>
 <</outcome>
 <</report>

 <outcome><!-- 0..1 CodeableConcept The result of procedure --></outcome>
 <report><!-- 0..* Reference(Composition|DiagnosticReport|DocumentReference) Any report resulting from the procedure --></report>

 <complication><!-- 0..* CodeableConcept Complication following the procedure --></complication>
 <</complicationDetail>
 <</followUp>
 <</note>
 <

 <complicationDetail><!-- 0..* Reference(Condition) A condition that is a result of the procedure --></complicationDetail>
 <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>
 <</usedReference>

 <usedReference><!-- 0..* Reference(BiologicallyDerivedProduct|Device|Medication|
   Substance) Items used during procedure --></usedReference>
 <usedCode><!-- 0..* CodeableConcept Coded items used during the procedure --></usedCode>
</Procedure>

JSON Template

{doco
  "resourceType" : "",

  "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(ActivityDefinition|Measure|
   OperationDefinition|PlanDefinition|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(Group|Patient) }, // R!  Who the procedure was performed on
  "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" : [{ // The people who performed the procedure
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(CareTeam|Device|HealthcareService|Organization|
    Patient|Practitioner|PractitionerRole|RelatedPerson) }, // R!  Who performed the procedure
    "onBehalfOf" : { Reference(Organization) } // Organization the device or practitioner was acting for
  }],
  "location" : { Reference(Location) }, // Where the procedure happened
  "
  "

  "reasonCode" : [{ CodeableConcept }], // Coded reason procedure performed
  "reasonReference" : [{ Reference(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" : [{ CodeableConcept }], // Complication following the procedure
  "
  "
  "
  "

  "complicationDetail" : [{ Reference(Condition) }], // A condition that is a result of 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
  }],
  "

  "usedReference" : [{ Reference(BiologicallyDerivedProduct|Device|Medication|
   Substance) }], // Items used during procedure
  "usedCode" : [{ CodeableConcept }] // Coded items used during the procedure
}

Turtle Template

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

[ 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:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:

  fhir:Procedure.identifier [ Identifier ], ... ; # 0..* External Identifiers for this procedure
  fhir:Procedure.instantiatesCanonical [ canonical(ActivityDefinition|Measure|OperationDefinition|PlanDefinition|Questionnaire) ], ... ; # 0..* Instantiates FHIR protocol or definition
  fhir:Procedure.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:Procedure.basedOn [ Reference(CarePlan|ServiceRequest) ], ... ; # 0..* A request for this procedure
  fhir:Procedure.partOf [ Reference(MedicationAdministration|Observation|Procedure) ], ... ; # 0..* Part of referenced event
  fhir:Procedure.status [ code ]; # 1..1 preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  fhir:Procedure.statusReason [ CodeableConcept ]; # 0..1 Reason for current status
  fhir:Procedure.category [ CodeableConcept ], ... ; # 0..* Classification of the procedure

  fhir:Procedure.code [ CodeableConcept ]; # 0..1 Identification of the procedure
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:

  fhir:Procedure.subject [ Reference(Group|Patient) ]; # 1..1 Who the procedure was performed on
  fhir:Procedure.encounter [ Reference(Encounter) ]; # 0..1 The Encounter during which this Procedure was created
  # Procedure.occurrence[x] : 0..1 When the procedure occurred or is occurring. One of these 6
    fhir:Procedure.occurrenceDateTime [ dateTime ]
    fhir:Procedure.occurrencePeriod [ Period ]
    fhir:Procedure.occurrenceString [ string ]
    fhir:Procedure.occurrenceAge [ Age ]
    fhir:Procedure.occurrenceRange [ Range ]
    fhir:Procedure.occurrenceTiming [ Timing ]
  fhir:Procedure.recorded [ dateTime ]; # 0..1 When the procedure was first captured in the subject's record
  fhir:Procedure.recorder [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Who recorded the procedure
  # Procedure.reported[x] : 0..1 Reported rather than primary record. One of these 2
    fhir:Procedure.reportedBoolean [ boolean ]
    fhir:Procedure.reportedReference [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]
  fhir:Procedure.performer [ # 0..* The people who performed the procedure
    fhir:Procedure.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:Procedure.performer.actor [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the procedure
    fhir:Procedure.performer.onBehalfOf [ Reference(Organization) ]; # 0..1 Organization the device or practitioner was acting for
  ], ...;
  fhir:Procedure.location [ Reference(Location) ]; # 0..1 Where the procedure happened
  fhir:
  fhir:

  fhir:Procedure.reasonCode [ CodeableConcept ], ... ; # 0..* Coded reason procedure performed
  fhir:Procedure.reasonReference [ Reference(Condition|DiagnosticReport|DocumentReference|Observation|Procedure) ], ... ; # 0..* The justification that the procedure was performed

  fhir:Procedure.bodySite [ CodeableConcept ], ... ; # 0..* Target body sites
  fhir:
  fhir:

  fhir:Procedure.outcome [ CodeableConcept ]; # 0..1 The result of procedure
  fhir:Procedure.report [ Reference(Composition|DiagnosticReport|DocumentReference) ], ... ; # 0..* Any report resulting from the procedure

  fhir:Procedure.complication [ CodeableConcept ], ... ; # 0..* Complication following the procedure
  fhir:
  fhir:
  fhir:
  fhir:

  fhir:Procedure.complicationDetail [ Reference(Condition) ], ... ; # 0..* A condition that is a result of the procedure
  fhir:Procedure.followUp [ CodeableConcept ], ... ; # 0..* Instructions for follow up
  fhir:Procedure.note [ Annotation ], ... ; # 0..* Additional information about the procedure
  fhir:Procedure.focalDevice [ # 0..* Manipulated, implanted, or removed device

    fhir:Procedure.focalDevice.action [ CodeableConcept ]; # 0..1 Kind of change to device
    fhir:Procedure.focalDevice.manipulated [ Reference(Device) ]; # 1..1 Device that was changed
  ], ...;
  fhir:

  fhir:Procedure.usedReference [ Reference(BiologicallyDerivedProduct|Device|Medication|Substance) ], ... ; # 0..* Items used during procedure

  fhir:Procedure.usedCode [ CodeableConcept ], ... ; # 0..* Coded items used during the procedure
]

Changes since DSTU2 Release 3

Procedure Procedure.definition Added Element Procedure.basedOn Renamed from request to basedOn Max Cardinality changed from 1 to * Remove Reference(DiagnosticOrder) Procedure.partOf Added Element
Procedure.status
  • Change value set from http://hl7.org/fhir/ValueSet/procedure-status to http://hl7.org/fhir/ValueSet/event-status Procedure.notDone Renamed from notPerformed http://hl7.org/fhir/ValueSet/event-status|4.0.0 to notDone http://hl7.org/fhir/ValueSet/event-status|4.1.0
Procedure.notDoneReason Procedure.category
  • Renamed from reasonNotPerformed to notDoneReason Max Cardinality changed from * to 1 Procedure.code Min Cardinality changed from 1 to 0 Procedure.context Renamed from encounter to context Add Reference(EpisodeOfCare) Procedure.performer.actor Min Cardinality changed from 0 to 1 Add Reference(Device) Procedure.performer.onBehalfOf Added Element *
Procedure.reasonCode Procedure.occurrence[x]
  • Added Element
Procedure.reasonReference Procedure.recorded
  • Added Element
Procedure.complicationDetail Procedure.reported[x]
  • Added Element
Procedure.note Renamed from notes to note Procedure.focalDevice.action Procedure.performer.actor
  • Remove Binding http://hl7.org/fhir/ValueSet/device-action (required) Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.usedReference
  • Renamed from used to usedReference Type Reference: Added Target Type BiologicallyDerivedProduct
Procedure.usedCode Procedure.performed[x]
  • Added Element deleted
Procedure.reason[x] Procedure.asserter
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R2 <--> R3 <--> R4 Conversion Maps (status = 9 15 tests that all execute ok. All tests pass 3 fail round-trip testing and all 1 r3 resources are valid.). invalid (0 errors). )

 

Alternate See the Profiles & Extensions and the alternate definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis a

Path Definition Type Reference
Procedure.status A code specifying the state of the procedure. Required EventStatus
Procedure.notDoneReason Procedure.statusReason A code that identifies the reason a procedure was not performed. Example Procedure Not Performed Reason (SNOMED-CT) ProcedureNotPerformedReason(SNOMED-CT)
Procedure.category A code that classifies a procedure for searching, sorting and display purposes. Example Procedure Category Codes (SNOMED CT) ProcedureCategoryCodes(SNOMEDCT)
Procedure.code A code to identify a specific procedure . Example Procedure Codes (SNOMED CT) ProcedureCodes(SNOMEDCT)
Procedure.performer.role Procedure.performer.function A code that identifies the role of a performer of the procedure. Example Procedure Performer Role Codes ProcedurePerformerRoleCodes
Procedure.reasonCode A code that identifies the reason a procedure is required. Example Procedure Reason Codes ProcedureReasonCodes
Procedure.bodySite Codes describing anatomical locations. May include laterality. Example SNOMED CT Body Structures SNOMEDCTBodyStructures
Procedure.outcome An outcome of a procedure - whether it was resolved or otherwise. Example Procedure Outcome Codes (SNOMED CT) ProcedureOutcomeCodes(SNOMEDCT)
Procedure.complication Codes describing complications that resulted from a procedure. Example Condition/Problem/Diagnosis Codes Condition/Problem/DiagnosisCodes
Procedure.followUp Specific follow up required for a procedure e.g. removal of sutures. Example Procedure Follow up Codes (SNOMED CT) ProcedureFollowUpCodes(SNOMEDCT)
Procedure.focalDevice.action A kind of change that happened to the device during the procedure. Preferred Procedure Device Action Codes ProcedureDeviceActionCodes
Procedure.usedCode Codes describing items used during a procedure procedure. Example FHIR Device Types FHIRDeviceTypes

9.3.3.2 Constraints pro-1 : Reason not done is only permitted if notDone indicator is true ( expression : notDoneReason.empty() or notDone = true )

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 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" 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. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
based-on reference A request for this procedure Procedure.basedOn
( ReferralRequest , CarePlan , ProcedureRequest ServiceRequest )
category token Classification of the procedure Procedure.category
code token A code to identify a procedure Procedure.code 8 13 Resources
context date date When the procedure occurred or is occurring Procedure.occurrence 17 Resources
encounter reference The Encounter or episode associated with the procedure during which this Procedure was created Procedure.context Procedure.encounter
( EpisodeOfCare , Encounter )
12 Resources
date identifier date token Date/Period the A unique identifier for a procedure was performed Procedure.performed Procedure.identifier 18 30 Resources
definition instantiates-canonical reference Instantiates FHIR protocol or definition Procedure.definition Procedure.instantiatesCanonical
( Questionnaire , Measure , PlanDefinition , HealthcareService OperationDefinition , ActivityDefinition )
encounter reference Search by encounter Procedure.context ( Encounter ) 12 Resources identifier instantiates-uri token uri A unique identifier for a procedure Instantiates external protocol or definition Procedure.identifier Procedure.instantiatesUri 26 Resources
location reference Where the procedure happened Procedure.location
( Location )
part-of reference Part of referenced event Procedure.partOf
( Observation , Procedure , MedicationAdministration )
patient reference Search by subject - a patient Procedure.subject Procedure.subject.where(resolve() is Patient)
( Patient )
31 33 Resources
performer reference The reference to Who performed the practitioner procedure Procedure.performer.actor
( Practitioner , Organization , CareTeam , Device , Patient , HealthcareService , PractitionerRole , RelatedPerson )
reason-code token Coded reason procedure performed Procedure.reasonCode
reason-reference reference The justification that the procedure was performed Procedure.reasonReference
( Condition , Observation , Procedure , DiagnosticReport , DocumentReference )
status token preparation | in-progress | suspended not-done | aborted on-hold | stopped | completed | entered-in-error | unknown Procedure.status
subject reference Search by subject Procedure.subject
( Group , Patient )