FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

9.3 Resource Procedure - Content

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

An action that is or was performed on or for a patient. This patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like counseling 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 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. 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 - i.e. e.g. immunizations , drug administrations and , 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 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.)

This resource A Task is referenced by 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

0..1 Who Encounter or episode associated with Σ 0..1 The role the actor was in The reference to Σ Condition CodeableConcept Coded items used during
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . Procedure I TU DomainResource An action that is being or was performed on a patient an individual or entity
+ Reason not done is Rule: bodyStructure SHALL only permitted be present if notDone indicator Procedure.bodySite is true not present

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Identifiers for this procedure
definition Σ 0..* Reference ( PlanDefinition | ActivityDefinition | HealthcareService ) Instantiates protocol or definition
. . . basedOn Σ 0..* Reference ( CarePlan | ProcedureRequest ServiceRequest | ReferralRequest MedicationRequest ) 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
Binding: EventStatus ( Required ) notDone ?! Σ 0..1 boolean
True if procedure was not performed as scheduled
. . notDoneReason . statusReason Σ I 0..1 CodeableConcept Reason procedure was not performed for current status
Binding: Procedure Not Performed Reason (SNOMED-CT) ( Example )
. . . category Σ 0..* CodeableConcept Classification of the procedure
Binding: Procedure Category Codes (SNOMED CT) ( Example )

. . . code Σ 0..1 CodeableConcept Identification of the procedure
Binding: Procedure Codes (SNOMED CT) ( Example )
. . . subject Σ 1..1 Reference ( Patient | Group | Device | Practitioner | Organization | Location ) Individual or entity the procedure was performed on
. . context . focus ?! Σ 0..1 Reference ( Encounter Patient | EpisodeOfCare Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen ) Who is the target of the procedure when it is not the subject of record only
. . performed[x] . encounter Σ 0..1 Reference ( Encounter ) The Encounter during which this Procedure was created
Date/Period
. . . occurrence[x] Σ 0..1 When the procedure was performed occurred or is occurring
. . . . performedDateTime occurrenceDateTime dateTime
. . . . performedPeriod occurrencePeriod Period
. . . performer . occurrenceString string
. . . . occurrenceAge Age
. . . . occurrenceRange 0..* BackboneElement Range The people who performed
. . . . occurrenceTiming 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
. . . role . reportedBoolean boolean
. . . . reportedReference Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization )
. . . performer Σ C 0..* BackboneElement Who 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..1 CodeableConcept Type of performance
Procedure Performer Role Codes Binding: Participant Roles ( Example )
. . . . actor Σ C 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService ) Who performed the practitioner procedure
. . . . onBehalfOf C 0..1 Reference ( Organization ) Organization the device or practitioner was acting for
. . location . . period 0..1 Reference ( Location Period ) Where When the performer performed the procedure happened
. . reasonCode . location Σ 0..* CodeableConcept 0..1 Coded reason procedure performed Procedure Reason Codes Reference ( Example Location ) Where the procedure happened
. . reasonReference . reason Σ 0..* Reference CodeableReference ( Condition | Observation | Procedure | DiagnosticReport | DocumentReference | ClinicalAssessment ) The justification that is the reason the procedure was performed
Binding: Procedure Reason Codes ( Example )

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

. . outcome . bodyStructure Σ 0..1 Reference ( BodyStructure ) Target body structure
0..1
. . . outcome Σ 0..* CodeableReference ( Observation ) The result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) ( Example )

. . . report 0..* Reference ( DiagnosticReport | DocumentReference | Composition | Bundle ) Any report resulting from the procedure

. . . complication Σ 0..* CodeableConcept CodeableReference ( Condition ) Complication following the procedure
Binding: Condition/Problem/Diagnosis Codes ( Example )
complicationDetail 0..* Reference ( Condition ) A condition that is a result of the procedure
. . . followUp 0..* CodeableConcept CodeableReference ( ServiceRequest | PlanDefinition ) Instructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) ( Example )

. . . note 0..* Annotation Additional information about the procedure

. . . focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
Device changed in procedure
. . . . action 0..1 CodeableConcept Kind of change to device
Binding: Procedure Device Action Codes ( Preferred )
. . . . manipulated 1..1 Reference ( Device ) Device that was changed
. . . usedReference used 0..* Reference CodeableReference ( Device | Medication | Substance | BiologicallyDerivedProduct ) Items used during procedure
Binding: Device Type ( Example )

. . usedCode . supportingInfo 0..* CodeableConcept Reference ( Any ) Extra information relevant to the procedure
FHIR Device Types ( Example )

doco Documentation for this format icon

See the Extensions for this resource

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 protocol, guideline, orderset or other definition that was adhered to in whole or in part by this procedure definition : Reference [0..*] PlanDefinition | ActivityDefinition | HealthcareService A reference to a resource that contains details of the request for this procedure basedOn : Reference [0..*] « CarePlan | ProcedureRequest ServiceRequest | ReferralRequest MedicationRequest » 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. null (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. null (Strength=Example) Procedure Not Performed Reaso... ProcedureNotPerformedReasonSN... ?? » A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure") "Surgical Procedure") category : CodeableConcept [0..1] [0..*] « A code that classifies a procedure for searching, sorting and display purposes. null (Strength=Example) Procedure Category Codes (SNO... ProcedureCategoryCodesSNOMEDCT ?? » The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy") "Laparoscopic Appendectomy") code : CodeableConcept [0..1] « A code to identify a specific procedure . null (Strength=Example) Procedure Codes (SNOMED CT) ProcedureCodesSNOMEDCT ?? » The person, animal On whom or group on which 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 procedure subject : Reference [1..1] « Patient | Group | Device | Practitioner | Organization | Location » The encounter during which 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 performed 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 patient (this element modifies the meaning of other elements) context focus : Reference [0..1] Encounter « Patient | EpisodeOfCare Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen » The date(time)/period over Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated encounter : Reference [0..1] « Encounter » 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 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 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] : 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 restaurant location : Reference [0..1] « Location » The coded reason or reference 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 text, or be a procedure is required. (Strength=Example) Procedure Reason ?? The condition reference to one of several resources that is the reason why justify the procedure was performed reasonReference reason : Reference CodeableReference [0..*] « Condition | Observation | Procedure | DiagnosticReport | DocumentReference | ClinicalAssessment ; null (Strength=Example) ProcedureReasonCodes ?? » 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 ?? » « This element has or is affected by some invariants C » The outcome of Indicates the procedure - did it resolve reasons for body structure on the subject's body where the procedure being performed? was performed outcome bodyStructure : CodeableConcept Reference [0..1] « BodyStructure » An The short term outcome of a the procedure - whether it was resolved assessed during the procedure, at the conclusion of the procedure, during the immediate post-performance period, or otherwise. at discharge. The outcome is usually expected to be within the encounter during which the procedure was performed outcome : CodeableReference [0..*] « Observation ; null (Strength=Example) Procedure Outcome Codes (SNOM... ProcedureOutcomeCodesSNOMEDCT ?? » This could be a histology result, pathology report, surgical report, etc. etc report : Reference [0..*] « DiagnosticReport | DocumentReference | Composition | Bundle » 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 CodeableReference [0..*] « Condition ; Codes describing complications that resulted from a procedure. null (Strength=Example) Condition/Problem/Diagnosis ?? Any complications that occurred during the procedure, or in the immediate post-performance period complicationDetail : Reference [0..*] Condition ConditionProblemDiagnosisCodes ?? » 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 used. CarePlan can reference the Procedure via CarePlan.addresses followUp : CodeableConcept CodeableReference [0..*] « ServiceRequest | PlanDefinition ; Specific follow up required for a procedure e.g. removal of sutures. null (Strength=Example) Procedure Follow up Codes (SN... ProcedureFollowUpCodesSNOMEDCT ?? » 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 used : Reference CodeableReference [0..*] « Device | Medication | Substance | BiologicallyDerivedProduct ; null (Strength=Example) DeviceType ?? » Identifies coded items Other resources from the patient record that were may be relevant to the procedure. The information from these resources was either used as part of to create the procedure instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available usedCode supportingInfo : CodeableConcept Reference [0..*] Codes describing items used during a procedure (Strength=Example) FHIR Device Types « Any ?? » 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. null (Strength=Example) Procedure Performer Role ParticipantRoles ?? » The practitioner Indicates who was involved in or what performed the procedure actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService » « This element has or is affected by some invariants C » The organization Organization the device or practitioner Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf of onBehalfOf : Reference [0..1] « Organization » « This element has or is affected by some invariants C » Time period during which the performer performed the procedure period : Period [0..1] 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. null (Strength=Preferred) Procedure Device Action ProcedureDeviceActionCodes ? » The device that was manipulated (changed) during the procedure manipulated : Reference [1..1] « Device » Limited to 'real' people rather than equipment Indicates who or what performed the procedure and how they were involved 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>
 <basedOn><!-- 0..* Reference(CarePlan|MedicationRequest|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>
  <</onBehalfOf>

 <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>
 <</reasonCode>
 <</reasonReference>
 <</bodySite>
 <</outcome>
 <</report>
 <</complication>
 <</complicationDetail>
 <</followUp>
 <</note>
 <

 <reason><!-- 0..* CodeableReference(ClinicalAssessment|Condition|
   DiagnosticReport|DocumentReference|Observation|Procedure) The justification that the procedure was performed --></reason>

 <bodySite><!-- I 0..* CodeableConcept Target body sites --></bodySite>
 <bodyStructure><!-- 0..1 Reference(BodyStructure) Target body structure --></bodyStructure>
 <outcome><!-- 0..* CodeableReference(Observation) The result of procedure --></outcome>
 <report><!-- 0..* Reference(Bundle|Composition|DiagnosticReport|
   DocumentReference) Any report resulting from the procedure --></report>

 <complication><!-- 0..* CodeableReference(Condition) Complication following the procedure --></complication>
 <followUp><!-- 0..* CodeableReference(PlanDefinition|ServiceRequest) 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>
 <</usedCode>

 <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" : "",

  "resourceType" : "Procedure",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "|
   
  "
  "
  "
  "
  "
  "
  "
  "
  "
  
  ">",
  " },
  "
    "
    "|
    
    "

  "identifier" : [{ Identifier }], // External Identifiers for this procedure
  "basedOn" : [{ Reference(CarePlan|MedicationRequest|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(ClinicalAssessment|Condition|
   DiagnosticReport|DocumentReference|Observation|Procedure) }], // The justification that the procedure was performed

  "bodySite" : [{ CodeableConcept }], // I Target body sites
  "bodyStructure" : { Reference(BodyStructure) }, // Target body structure
  "outcome" : [{ CodeableReference(Observation) }], // The result of procedure
  "report" : [{ Reference(Bundle|Composition|DiagnosticReport|
   DocumentReference) }], // Any report resulting from the procedure

  "complication" : [{ CodeableReference(Condition) }], // Complication following the procedure
  "followUp" : [{ CodeableReference(PlanDefinition|ServiceRequest) }], // 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:;

[ a fhir:Procedure;

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

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Identifiers for this procedure
  fhir:basedOn  ( [ Reference(CarePlan|MedicationRequest|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(ClinicalAssessment|Condition|DiagnosticReport|DocumentReference|Observation|
  Procedure) ] ... ) ; # 0..* The justification that the procedure was performed

  fhir:bodySite  ( [ CodeableConcept ] ... ) ; # 0..* I Target body sites
  fhir:bodyStructure [ Reference(BodyStructure) ] ; # 0..1 Target body structure
  fhir:outcome  ( [ CodeableReference(Observation) ] ... ) ; # 0..* The result of procedure
  fhir:report  ( [ Reference(Bundle|Composition|DiagnosticReport|DocumentReference) ] ... ) ; # 0..* Any report resulting from the procedure
  fhir:complication  ( [ CodeableReference(Condition) ] ... ) ; # 0..* Complication following the procedure
  fhir:followUp  ( [ CodeableReference(PlanDefinition|ServiceRequest) ] ... ) ; # 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 since DSTU2 from both R4 and R4B

Procedure
Procedure.definition Procedure.basedOn
  • Type Reference: Added Element Target Type MedicationRequest
Procedure.basedOn Procedure.category
    Renamed from request to basedOn
  • Max Cardinality changed from 1 to *
Procedure.subject
  • Type Reference: Added Target Types Device, Practitioner, Organization, Location
Procedure.focus
  • Remove Reference(DiagnosticOrder) Added Element
Procedure.partOf Procedure.occurrence[x]
  • Added Element
Procedure.status Procedure.recorded
  • Change value set from http://hl7.org/fhir/ValueSet/procedure-status to http://hl7.org/fhir/ValueSet/event-status Added Element
Procedure.notDone Procedure.reported[x]
  • Renamed from notPerformed to notDone Added Element
Procedure.notDoneReason Procedure.performer.actor
  • Renamed from reasonNotPerformed to notDoneReason Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.performer.period
  • Added Element
Procedure.reason
  • Added Element
Procedure.bodyStructure
  • Added Element
Procedure.outcome
  • Max Cardinality changed from 1 to *
  • Type changed from CodeableConcept to 1 CodeableReference
Procedure.code Procedure.report
  • Min Cardinality changed from 1 to 0 Type Reference: Added Target Type Bundle
Procedure.context Procedure.complication
  • Renamed Type changed from encounter CodeableConcept to context Add Reference(EpisodeOfCare) CodeableReference
Procedure.performer.actor Procedure.followUp
  • Min Cardinality Type changed from 0 CodeableConcept to 1 Add Reference(Device) CodeableReference
Procedure.performer.onBehalfOf Procedure.used
  • Added Element
Procedure.reasonCode Procedure.supportingInfo
  • Added Element
Procedure.reasonReference Procedure.instantiatesCanonical
  • Added Element Deleted
Procedure.complicationDetail Procedure.instantiatesUri
  • Added Element Deleted
Procedure.note Procedure.performed[x]
  • Renamed from notes to note Deleted
Procedure.focalDevice.action Procedure.asserter
  • Remove Binding http://hl7.org/fhir/ValueSet/device-action (required) Deleted (-> Procedure.reportedReference)
Procedure.usedReference Procedure.reasonCode
  • Renamed from used to usedReference Deleted (-> Procedure.reason)
Procedure.usedCode Procedure.reasonReference
  • Added Element Deleted (-> Procedure.reason)
Procedure.reason[x] Procedure.complicationDetail
  • deleted 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 . See R2 <--> R3 Conversion Maps (status = 9 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

Structure

0..1 Who Encounter or episode associated with Σ 0..1 The role the actor was in The reference to Σ Condition CodeableConcept Coded items used during
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . Procedure I TU DomainResource An action that is being or was performed on a patient an individual or entity
+ Reason not done is Rule: bodyStructure SHALL only permitted be present if notDone indicator Procedure.bodySite is true not present

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Identifiers for this procedure
definition Σ 0..* Reference ( PlanDefinition | ActivityDefinition | HealthcareService ) Instantiates protocol or definition
. . . basedOn Σ 0..* Reference ( CarePlan | ProcedureRequest ServiceRequest | ReferralRequest MedicationRequest ) 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
Binding: EventStatus ( Required ) notDone ?! Σ 0..1 boolean
True if procedure was not performed as scheduled
. . notDoneReason . statusReason Σ I 0..1 CodeableConcept Reason procedure was not performed for current status
Binding: Procedure Not Performed Reason (SNOMED-CT) ( Example )
. . . category Σ 0..* CodeableConcept Classification of the procedure
Binding: Procedure Category Codes (SNOMED CT) ( Example )

. . . code Σ 0..1 CodeableConcept Identification of the procedure
Binding: Procedure Codes (SNOMED CT) ( Example )
. . . subject Σ 1..1 Reference ( Patient | Group | Device | Practitioner | Organization | Location ) Individual or entity the procedure was performed on
. . context . focus ?! Σ 0..1 Reference ( Encounter Patient | EpisodeOfCare Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen ) Who is the target of the procedure when it is not the subject of record only
. . performed[x] . encounter Σ 0..1 Reference ( Encounter ) The Encounter during which this Procedure was created
Date/Period
. . . occurrence[x] Σ 0..1 When the procedure was performed occurred or is occurring
. . . . performedDateTime occurrenceDateTime dateTime
. . . . performedPeriod occurrencePeriod Period
. . . performer . occurrenceString string
. . . . occurrenceAge Age
. . . . occurrenceRange 0..* BackboneElement Range The people who performed
. . . . occurrenceTiming 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
. . . role . reportedBoolean boolean
. . . . reportedReference Reference ( Patient | RelatedPerson | Practitioner | PractitionerRole | Organization )
. . . performer Σ C 0..* BackboneElement Who 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..1 CodeableConcept Type of performance
Procedure Performer Role Codes Binding: Participant Roles ( Example )
. . . . actor Σ C 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService ) Who performed the practitioner procedure
. . . . onBehalfOf C 0..1 Reference ( Organization ) Organization the device or practitioner was acting for
. . location . . period 0..1 Reference ( Location Period ) Where When the performer performed the procedure happened
. . reasonCode . location Σ 0..* CodeableConcept 0..1 Coded reason procedure performed Procedure Reason Codes Reference ( Example Location ) Where the procedure happened
. . reasonReference . reason Σ 0..* Reference CodeableReference ( Condition | Observation | Procedure | DiagnosticReport | DocumentReference | ClinicalAssessment ) The justification that is the reason the procedure was performed
Binding: Procedure Reason Codes ( Example )

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

. . outcome . bodyStructure Σ 0..1 Reference ( BodyStructure ) Target body structure
0..1
. . . outcome Σ 0..* CodeableReference ( Observation ) The result of procedure
Binding: Procedure Outcome Codes (SNOMED CT) ( Example )

. . . report 0..* Reference ( DiagnosticReport | DocumentReference | Composition | Bundle ) Any report resulting from the procedure

. . . complication Σ 0..* CodeableConcept CodeableReference ( Condition ) Complication following the procedure
Binding: Condition/Problem/Diagnosis Codes ( Example )
complicationDetail 0..* Reference ( Condition ) A condition that is a result of the procedure
. . . followUp 0..* CodeableConcept CodeableReference ( ServiceRequest | PlanDefinition ) Instructions for follow up
Binding: Procedure Follow up Codes (SNOMED CT) ( Example )

. . . note 0..* Annotation Additional information about the procedure

. . . focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
Device changed in procedure
. . . . action 0..1 CodeableConcept Kind of change to device
Binding: Procedure Device Action Codes ( Preferred )
. . . . manipulated 1..1 Reference ( Device ) Device that was changed
. . . usedReference used 0..* Reference CodeableReference ( Device | Medication | Substance | BiologicallyDerivedProduct ) Items used during procedure
Binding: Device Type ( Example )

. . usedCode . supportingInfo 0..* CodeableConcept Reference ( Any ) Extra information relevant to the procedure
FHIR Device Types ( Example )

doco Documentation for this format icon

See the Extensions for this resource

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 protocol, guideline, orderset or other definition that was adhered to in whole or in part by this procedure definition : Reference [0..*] PlanDefinition | ActivityDefinition | HealthcareService A reference to a resource that contains details of the request for this procedure basedOn : Reference [0..*] « CarePlan | ProcedureRequest ServiceRequest | ReferralRequest MedicationRequest » 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. null (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. null (Strength=Example) Procedure Not Performed Reaso... ProcedureNotPerformedReasonSN... ?? » A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure") "Surgical Procedure") category : CodeableConcept [0..1] [0..*] « A code that classifies a procedure for searching, sorting and display purposes. null (Strength=Example) Procedure Category Codes (SNO... ProcedureCategoryCodesSNOMEDCT ?? » The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy") "Laparoscopic Appendectomy") code : CodeableConcept [0..1] « A code to identify a specific procedure . null (Strength=Example) Procedure Codes (SNOMED CT) ProcedureCodesSNOMEDCT ?? » The person, animal On whom or group on which 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 procedure subject : Reference [1..1] « Patient | Group | Device | Practitioner | Organization | Location » The encounter during which 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 performed 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 patient (this element modifies the meaning of other elements) context focus : Reference [0..1] Encounter « Patient | EpisodeOfCare Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen » The date(time)/period over Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated encounter : Reference [0..1] « Encounter » 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 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 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] : 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 restaurant location : Reference [0..1] « Location » The coded reason or reference 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 text, or be a procedure is required. (Strength=Example) Procedure Reason ?? The condition reference to one of several resources that is the reason why justify the procedure was performed reasonReference reason : Reference CodeableReference [0..*] « Condition | Observation | Procedure | DiagnosticReport | DocumentReference | ClinicalAssessment ; null (Strength=Example) ProcedureReasonCodes ?? » 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 ?? » « This element has or is affected by some invariants C » The outcome of Indicates the procedure - did it resolve reasons for body structure on the subject's body where the procedure being performed? was performed outcome bodyStructure : CodeableConcept Reference [0..1] « BodyStructure » An The short term outcome of a the procedure - whether it was resolved assessed during the procedure, at the conclusion of the procedure, during the immediate post-performance period, or otherwise. at discharge. The outcome is usually expected to be within the encounter during which the procedure was performed outcome : CodeableReference [0..*] « Observation ; null (Strength=Example) Procedure Outcome Codes (SNOM... ProcedureOutcomeCodesSNOMEDCT ?? » This could be a histology result, pathology report, surgical report, etc. etc report : Reference [0..*] « DiagnosticReport | DocumentReference | Composition | Bundle » 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 CodeableReference [0..*] « Condition ; Codes describing complications that resulted from a procedure. null (Strength=Example) Condition/Problem/Diagnosis ?? Any complications that occurred during the procedure, or in the immediate post-performance period complicationDetail : Reference [0..*] Condition ConditionProblemDiagnosisCodes ?? » 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 used. CarePlan can reference the Procedure via CarePlan.addresses followUp : CodeableConcept CodeableReference [0..*] « ServiceRequest | PlanDefinition ; Specific follow up required for a procedure e.g. removal of sutures. null (Strength=Example) Procedure Follow up Codes (SN... ProcedureFollowUpCodesSNOMEDCT ?? » 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 used : Reference CodeableReference [0..*] « Device | Medication | Substance | BiologicallyDerivedProduct ; null (Strength=Example) DeviceType ?? » Identifies coded items Other resources from the patient record that were may be relevant to the procedure. The information from these resources was either used as part of to create the procedure instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available usedCode supportingInfo : CodeableConcept Reference [0..*] Codes describing items used during a procedure (Strength=Example) FHIR Device Types « Any ?? » 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. null (Strength=Example) Procedure Performer Role ParticipantRoles ?? » The practitioner Indicates who was involved in or what performed the procedure actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService » « This element has or is affected by some invariants C » The organization Organization the device or practitioner Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf of onBehalfOf : Reference [0..1] « Organization » « This element has or is affected by some invariants C » Time period during which the performer performed the procedure period : Period [0..1] 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. null (Strength=Preferred) Procedure Device Action ProcedureDeviceActionCodes ? » The device that was manipulated (changed) during the procedure manipulated : Reference [1..1] « Device » Limited to 'real' people rather than equipment Indicates who or what performed the procedure and how they were involved 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>
 <basedOn><!-- 0..* Reference(CarePlan|MedicationRequest|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>
  <</onBehalfOf>

 <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>
 <</reasonCode>
 <</reasonReference>
 <</bodySite>
 <</outcome>
 <</report>
 <</complication>
 <</complicationDetail>
 <</followUp>
 <</note>
 <

 <reason><!-- 0..* CodeableReference(ClinicalAssessment|Condition|
   DiagnosticReport|DocumentReference|Observation|Procedure) The justification that the procedure was performed --></reason>

 <bodySite><!-- I 0..* CodeableConcept Target body sites --></bodySite>
 <bodyStructure><!-- 0..1 Reference(BodyStructure) Target body structure --></bodyStructure>
 <outcome><!-- 0..* CodeableReference(Observation) The result of procedure --></outcome>
 <report><!-- 0..* Reference(Bundle|Composition|DiagnosticReport|
   DocumentReference) Any report resulting from the procedure --></report>

 <complication><!-- 0..* CodeableReference(Condition) Complication following the procedure --></complication>
 <followUp><!-- 0..* CodeableReference(PlanDefinition|ServiceRequest) 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>
 <</usedCode>

 <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" : "",

  "resourceType" : "Procedure",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "|
   
  "
  "
  "
  "
  "
  "
  "
  "
  "
  
  ">",
  " },
  "
    "
    "|
    
    "

  "identifier" : [{ Identifier }], // External Identifiers for this procedure
  "basedOn" : [{ Reference(CarePlan|MedicationRequest|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(ClinicalAssessment|Condition|
   DiagnosticReport|DocumentReference|Observation|Procedure) }], // The justification that the procedure was performed

  "bodySite" : [{ CodeableConcept }], // I Target body sites
  "bodyStructure" : { Reference(BodyStructure) }, // Target body structure
  "outcome" : [{ CodeableReference(Observation) }], // The result of procedure
  "report" : [{ Reference(Bundle|Composition|DiagnosticReport|
   DocumentReference) }], // Any report resulting from the procedure

  "complication" : [{ CodeableReference(Condition) }], // Complication following the procedure
  "followUp" : [{ CodeableReference(PlanDefinition|ServiceRequest) }], // 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:;

[ a fhir:Procedure;

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

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Identifiers for this procedure
  fhir:basedOn  ( [ Reference(CarePlan|MedicationRequest|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(ClinicalAssessment|Condition|DiagnosticReport|DocumentReference|Observation|
  Procedure) ] ... ) ; # 0..* The justification that the procedure was performed

  fhir:bodySite  ( [ CodeableConcept ] ... ) ; # 0..* I Target body sites
  fhir:bodyStructure [ Reference(BodyStructure) ] ; # 0..1 Target body structure
  fhir:outcome  ( [ CodeableReference(Observation) ] ... ) ; # 0..* The result of procedure
  fhir:report  ( [ Reference(Bundle|Composition|DiagnosticReport|DocumentReference) ] ... ) ; # 0..* Any report resulting from the procedure
  fhir:complication  ( [ CodeableReference(Condition) ] ... ) ; # 0..* Complication following the procedure
  fhir:followUp  ( [ CodeableReference(PlanDefinition|ServiceRequest) ] ... ) ; # 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 since DSTU2 from both R4 and R4B

Procedure
Procedure.definition Procedure.basedOn
  • Type Reference: Added Element Target Type MedicationRequest
Procedure.basedOn Procedure.category
    Renamed from request to basedOn
  • Max Cardinality changed from 1 to *
Procedure.subject
  • Remove Reference(DiagnosticOrder) Type Reference: Added Target Types Device, Practitioner, Organization, Location
Procedure.partOf Procedure.focus
  • Added Element
Procedure.status Procedure.occurrence[x]
  • Change value set from http://hl7.org/fhir/ValueSet/procedure-status to http://hl7.org/fhir/ValueSet/event-status Added Element
Procedure.notDone Procedure.recorded
  • Renamed from notPerformed to notDone Added Element
Procedure.reported[x]
  • Added Element
Procedure.notDoneReason Procedure.performer.actor
  • Renamed from reasonNotPerformed to notDoneReason Type Reference: Added Target Types CareTeam, HealthcareService
Procedure.performer.period
  • Added Element
Procedure.reason
  • Added Element
Procedure.bodyStructure
  • Added Element
Procedure.outcome
  • Max Cardinality changed from 1 to *
  • Type changed from CodeableConcept to 1 CodeableReference
Procedure.code Procedure.report
  • Min Cardinality changed from 1 to 0 Type Reference: Added Target Type Bundle
Procedure.context Procedure.complication
  • Renamed Type changed from encounter CodeableConcept to context Add Reference(EpisodeOfCare) CodeableReference
Procedure.performer.actor Procedure.followUp
  • Min Cardinality Type changed from 0 CodeableConcept to 1 Add Reference(Device) CodeableReference
Procedure.performer.onBehalfOf Procedure.used
  • Added Element
Procedure.reasonCode Procedure.supportingInfo
  • Added Element
Procedure.reasonReference Procedure.instantiatesCanonical
  • Added Element Deleted
Procedure.complicationDetail Procedure.instantiatesUri
  • Added Element Deleted
Procedure.note Procedure.performed[x]
  • Renamed from notes to note Deleted
Procedure.focalDevice.action Procedure.asserter
  • Remove Binding http://hl7.org/fhir/ValueSet/device-action (required) Deleted (-> Procedure.reportedReference)
Procedure.usedReference Procedure.reasonCode
  • Renamed from used to usedReference Deleted (-> Procedure.reason)
Procedure.usedCode Procedure.reasonReference
  • Added Element Deleted (-> Procedure.reason)
Procedure.reason[x] Procedure.complicationDetail
  • deleted 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 . See R2 <--> R3 Conversion Maps (status = 9 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

 

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

Procedure.performer.role Procedure.usedCode
Path Definition ValueSet Type Reference Documentation
Procedure.status A code specifying the state of the procedure. EventStatus Required EventStatus

Codes identifying the lifecycle stage of an event.

Procedure.notDoneReason Procedure.statusReason A code that identifies the reason a procedure was not performed. ProcedureNotPerformedReasonSNOMEDCT Example Procedure Not Performed Reason (SNOMED-CT)

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 A code that classifies a procedure for searching, sorting and display purposes. ProcedureCategoryCodesSNOMEDCT Example

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

Procedure.code A code to identify a specific procedure . ProcedureCodesSNOMEDCT Example

Procedure Codes (SNOMED CT) Code: All SNOMED CT procedure codes.

Procedure.performer.function A code that identifies the role of a performer of the procedure. ParticipantRoles Example Procedure Performer Role Codes

Roles of participants that may be included in a care team. Defined as: Healthcare professional (occupation) or Services (qualifier value).

Procedure.reasonCode Procedure.reason A code that identifies the reason a procedure is required. ProcedureReasonCodes Example Procedure Reason Codes

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

Procedure.bodySite Codes describing anatomical locations. May include laterality. SNOMEDCTBodyStructures Example

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

Procedure.outcome An outcome of a procedure - whether it was resolved or otherwise. ProcedureOutcomeCodesSNOMEDCT Example

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

Procedure.complication Codes describing complications that resulted from a procedure. ConditionProblemDiagnosisCodes Example

Example value set for Condition/Problem/Diagnosis Codes codes.

Procedure.followUp Specific follow up required for a procedure e.g. removal of sutures. ProcedureFollowUpCodesSNOMEDCT Example

Procedure Follow follow up Codes (SNOMED CT) codes: A selection of SNOMED CT codes relevant to procedure follow up.

Procedure.focalDevice.action A kind of change that happened to the device during the procedure. ProcedureDeviceActionCodes Preferred Procedure Device Action Codes

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 Codes describing items used during a procedure DeviceType Example FHIR Device Types

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.

UniqueKey Level Location Description Expression
pro-1 : Reason not done img  prc-1 Rule Procedure.performer Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole onBehalfOf.exists() and actor.resolve().exists() implies actor.resolve().where($this is Practitioner or $this is PractitionerRole).empty()
img  con-4 Rule (base) bodyStructure SHALL only permitted be present if notDone indicator Procedure.bodySite is true ( expression not present : notDoneReason.empty() or notDone = true bodySite.exists() implies bodyStructure.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 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" "name=amputation, bodySite=heart".

Sometimes a complex procedure may consist of several subordinate procedures. In these cases, the list of procedures may be unwieldy for those attempting to view a procedure list. Two properties support ways of filtering and selecting procedures: the partOf property, which associates subordinate procedures to their containing procedures, and could be used to filter out those with partOf values in a higher-level list, and the category, which could be use to flag procedures that are, e.g., billable.

There are other activities that may be captured by an EHR that might not be of value to other providers (e.g. shaving, anesthesia, time admitted to recovery, etc.). The boundary between these classes may vary and is up to the judgment of the implementer. An option for capturing information of potential value that doesn't merit the name "procedure" is to use the note property.

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.

context definition
Name Type Description Expression In Common
based-on reference A request for this procedure Procedure.basedOn
( ReferralRequest , CarePlan , ProcedureRequest MedicationRequest , ServiceRequest )
category token Classification of the procedure Procedure.category
code token A code to identify a procedure Procedure.code 8 19 Resources
reference Encounter or episode associated with the procedure Procedure.context ( EpisodeOfCare , Encounter date ) date date Date/Period When the procedure was performed occurred or is occurring Procedure.performed Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) 18 23 Resources
reference Instantiates protocol or definition Procedure.definition ( PlanDefinition , HealthcareService , ActivityDefinition encounter ) encounter reference Search by encounter The Encounter during which this Procedure was created Procedure.context Procedure.encounter
( Encounter )
12 27 Resources
identifier token A unique identifier for a procedure Procedure.identifier 26 59 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 61 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 Reference to a concept (by class) Procedure.reason.concept
reason-reference reference Reference to a resource (by instance) Procedure.reason.reference
report reference Any report resulting from the procedure Procedure.report
( Composition , Bundle , 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
( Practitioner , Group , Organization , Device , Patient , Location )