View raw Markdown
type: resourceresource: Procedure

Procedure

Introduction

Scope and Usage

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

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

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

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

Boundaries and Relationships

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

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

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

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

Notes

Use of Procedure properties

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

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

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.

Use of Procedure.used

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.

StructureDefinition

Elements (Simplified)

Mappings

Implementation Guide

implementationguide-Procedure-core.xml

<?xml version="1.0" encoding="UTF-8"?>

<ImplementationGuide xmlns="http://hl7.org/fhir">
  <id value="Procedure-core"/>
  <version value="0.1"/>
  <name value="ProcedureHL7Extensions"/>
  <title value="Procedure  H L7  Extensions"/>
  <status value="draft"/>
  <date value="2015-02-12T00:00:00.000"/>
  <publisher value="Health Level Seven, Inc. - FHIR WG"/>
  <description value="Defines common extensions used with or related to the Procedure resource"/>
</ImplementationGuide>

Resource Packs

list-Procedure-packs.xml

<?xml version="1.0" encoding="UTF-8"?>

<List xmlns="http://hl7.org/fhir">
  <id value="Procedure-packs"/>
  <status value="current"/>
  <mode value="working"/>
  <entry>
    <item>
      <reference value="ImplementationGuide/Procedure-core"/>
    </item>
  </entry>
</List>

Search Parameters

Full Search Parameters

Examples

Full Examples

Mapping Exceptions

procedure-event-mapping-exceptions.xml

Divergent Elements

Unknown does not represent "other" - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. | resource=The "unknown" code is not to be used to convey other statuses. The "unknown" code should be used when one of the statuses applies, but the authoring system doesn't know the current state of the procedure.

This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

Age is generally used when the patient reports an age at which the procedure was performed. Range is generally used when the patient reports an age range when the procedure was performed, such as sometime between 20-25 years old. dateTime supports a range of precision due to some procedures being reported as past procedures that might not have millisecond precision while other procedures performed and documented during the encounter might have more precise UTC timestamps with timezone.

The recorded date is NOT intended to be the same as a database.createdTimestamp - that would be captured as part of resource.meta or possibly Provenance.

It is possible for the same event to be disclosed to different systems at different times. E.g. a patient might tell two different clinicians about a historical event at different visits. If the disclosure is from the patient rather than record transfer from clinician A to B, the recorded date would be the date each respective clinician put the data in their record. If the data flowed from clinician A to B, the recorded date would remain the recorded date as initially set in clinician A's system.

Unmapped Elements

procedure-fivews-mapping-exceptions.xml

Divergent Elements

Unmapped Elements