This page is part of the FHIR Specification (v1.6.0: STU 3 Ballot 4). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R3 R2
Patient Care Work Group | Maturity Level: 1 | Compartments: Device, Encounter, Patient, Practitioner, RelatedPerson |
A request for a procedure to be performed. May be a proposal or an order.
A Procedure Request is a record of a request for a procedure to be performed. It can be used to represent a procedure that is planned, that is proposed, or that is ordered, as distinguished by the value of the ProcedureRequestStatus field.
A procedure is an activity that is performed with or on a patient as part of the provision of care. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, exercise, etc. Procedures may be performed by a healthcare professional, a friend or relative or in some cases by the patient themselves.
The procedure request may represent an order that is entered by a practitioner in a CPOE system as well as a proposal made by a clinical decision support (CDS) system based on a patient's clinical record and context of care. Planned procedures referenced by a CarePlan may also be represented by this resource.
ProcedureRequest is closely related to other types of "request" resources, particularly DiagnosticRequest and ReferralRequest. In fact, for some services, it may be appropriate to use any one of these resources to request that the procedure be performed. Which one is used may be driven by organization practice and by context. When it is unclear which to use, the following principles may be helpful:
Irrespective of the guidance above, systems should be prepared for some degree of overlap between these resources and be prepared to execute searches against multiple resources in cases where differentiation cannot be guaranteed. As well, in some workflows more than one type of resource or even all three might exist; e.g. Upon receiving a ReferralRequest a practitioner might initiate a DiagnosticRequest. The diagnostic service might then initiate a ProcedureRequest.
The notion of ProcedureRequest and CommunicationRequest are also closely related. The boundary between determining whether an action is considered to be training or counseling (and thus a ProcedureRequest) as opposed to a CommunicationRequest is based on whether there's a specific intent to change the mind-set of the patient. A request to merely disclose information would be considered a CommunicationRequest. Invocation of a process that will involve verification of the patient's comprehension or an attempt to change the patient's mental state would be a ProcedureRequest.
PLANNED CHANGE:
ProcedureRequest is one of the Request resources in the FHIR Workflow specification. As such, it is expected to be adjusted to align with the Request workflow pattern which will involve adding a number of additional data elements and potentially renaming a few elements. Any concerns about performing such alignment are welcome as ballot comments and/or tracker items.
This resource is referenced by CarePlan, ClinicalImpression, DiagnosticReport, Goal, ImagingStudy, Procedure, ReferralRequest and Specimen
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ProcedureRequest | Σ | DomainResource | A request for a procedure to be performed | |
identifier | Σ | 0..* | Identifier | Unique identifier for the request |
subject | Σ | 1..1 | Reference(Patient | Group) | Who the procedure should be done to |
code | Σ | 1..1 | CodeableConcept | What procedure to perform Procedure Codes (SNOMED CT) (Example) |
bodySite | Σ | 0..* | CodeableConcept | What part of body to perform on SNOMED CT Body Structures (Example) |
reason[x] | Σ | 0..1 | Why procedure should occur Procedure Reason Codes (Example) | |
reasonCodeableConcept | CodeableConcept | |||
reasonReference | Reference(Condition) | |||
scheduled[x] | Σ | 0..1 | When procedure should occur | |
scheduledDateTime | dateTime | |||
scheduledPeriod | Period | |||
scheduledTiming | Timing | |||
encounter | Σ | 0..1 | Reference(Encounter) | Encounter request created during |
performer | Σ | 0..1 | Reference(Practitioner | Organization | Patient | RelatedPerson) | Who should perform the procedure |
status | ?!Σ | 0..1 | code | proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted ProcedureRequestStatus (Required) |
notes | Σ | 0..* | Annotation | Additional information about desired procedure |
asNeeded[x] | Σ | 0..1 | Preconditions for procedure | |
asNeededBoolean | boolean | |||
asNeededCodeableConcept | CodeableConcept | |||
orderedOn | Σ | 0..1 | dateTime | When request was created |
orderer | Σ | 0..1 | Reference(Practitioner | Patient | RelatedPerson | Device) | Who made request |
priority | Σ | 0..1 | code | routine | urgent | stat | asap ProcedureRequestPriority (Required) |
Documentation for this format |
UML Diagram (Legend)
XML Template
<ProcedureRequest xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Unique identifier for the request --></identifier> <subject><!-- 1..1 Reference(Patient|Group) Who the procedure should be done to --></subject> <code><!-- 1..1 CodeableConcept What procedure to perform --></code> <bodySite><!-- 0..* CodeableConcept What part of body to perform on --></bodySite> <reason[x]><!-- 0..1 CodeableConcept|Reference(Condition) Why procedure should occur --></reason[x]> <scheduled[x]><!-- 0..1 dateTime|Period|Timing When procedure should occur --></scheduled[x]> <encounter><!-- 0..1 Reference(Encounter) Encounter request created during --></encounter> <performer><!-- 0..1 Reference(Practitioner|Organization|Patient|RelatedPerson) Who should perform the procedure --></performer> <status value="[code]"/><!-- 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted --> <notes><!-- 0..* Annotation Additional information about desired procedure --></notes> <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Preconditions for procedure --></asNeeded[x]> <orderedOn value="[dateTime]"/><!-- 0..1 When request was created --> <orderer><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson|Device) Who made request --></orderer> <priority value="[code]"/><!-- 0..1 routine | urgent | stat | asap --> </ProcedureRequest>
JSON Template
{ "resourceType" : "ProcedureRequest", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Unique identifier for the request "subject" : { Reference(Patient|Group) }, // R! Who the procedure should be done to "code" : { CodeableConcept }, // R! What procedure to perform "bodySite" : [{ CodeableConcept }], // What part of body to perform on // reason[x]: Why procedure should occur. One of these 2: "reasonCodeableConcept" : { CodeableConcept }, "reasonReference" : { Reference(Condition) }, // scheduled[x]: When procedure should occur. One of these 3: "scheduledDateTime" : "<dateTime>", "scheduledPeriod" : { Period }, "scheduledTiming" : { Timing }, "encounter" : { Reference(Encounter) }, // Encounter request created during "performer" : { Reference(Practitioner|Organization|Patient|RelatedPerson) }, // Who should perform the procedure "status" : "<code>", // proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted "notes" : [{ Annotation }], // Additional information about desired procedure // asNeeded[x]: Preconditions for procedure. One of these 2: "asNeededBoolean" : <boolean>, "asNeededCodeableConcept" : { CodeableConcept }, "orderedOn" : "<dateTime>", // When request was created "orderer" : { Reference(Practitioner|Patient|RelatedPerson|Device) }, // Who made request "priority" : "<code>" // routine | urgent | stat | asap }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:ProcedureRequest; 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:ProcedureRequest.identifier [ Identifier ], ... ; # 0..* Unique identifier for the request fhir:ProcedureRequest.subject [ Reference(Patient|Group) ]; # 1..1 Who the procedure should be done to fhir:ProcedureRequest.code [ CodeableConcept ]; # 1..1 What procedure to perform fhir:ProcedureRequest.bodySite [ CodeableConcept ], ... ; # 0..* What part of body to perform on # ProcedureRequest.reason[x] : 0..1 Why procedure should occur. One of these 2 fhir:ProcedureRequest.reasonCodeableConcept [ CodeableConcept ] fhir:ProcedureRequest.reasonReference [ Reference(Condition) ] # ProcedureRequest.scheduled[x] : 0..1 When procedure should occur. One of these 3 fhir:ProcedureRequest.scheduledDateTime [ dateTime ] fhir:ProcedureRequest.scheduledPeriod [ Period ] fhir:ProcedureRequest.scheduledTiming [ Timing ] fhir:ProcedureRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter request created during fhir:ProcedureRequest.performer [ Reference(Practitioner|Organization|Patient|RelatedPerson) ]; # 0..1 Who should perform the procedure fhir:ProcedureRequest.status [ code ]; # 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted fhir:ProcedureRequest.notes [ Annotation ], ... ; # 0..* Additional information about desired procedure # ProcedureRequest.asNeeded[x] : 0..1 Preconditions for procedure. One of these 2 fhir:ProcedureRequest.asNeededBoolean [ boolean ] fhir:ProcedureRequest.asNeededCodeableConcept [ CodeableConcept ] fhir:ProcedureRequest.orderedOn [ dateTime ]; # 0..1 When request was created fhir:ProcedureRequest.orderer [ Reference(Practitioner|Patient|RelatedPerson|Device) ]; # 0..1 Who made request fhir:ProcedureRequest.priority [ code ]; # 0..1 routine | urgent | stat | asap ]
Changes since DSTU2
ProcedureRequest | No Changes |
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ProcedureRequest | Σ | DomainResource | A request for a procedure to be performed | |
identifier | Σ | 0..* | Identifier | Unique identifier for the request |
subject | Σ | 1..1 | Reference(Patient | Group) | Who the procedure should be done to |
code | Σ | 1..1 | CodeableConcept | What procedure to perform Procedure Codes (SNOMED CT) (Example) |
bodySite | Σ | 0..* | CodeableConcept | What part of body to perform on SNOMED CT Body Structures (Example) |
reason[x] | Σ | 0..1 | Why procedure should occur Procedure Reason Codes (Example) | |
reasonCodeableConcept | CodeableConcept | |||
reasonReference | Reference(Condition) | |||
scheduled[x] | Σ | 0..1 | When procedure should occur | |
scheduledDateTime | dateTime | |||
scheduledPeriod | Period | |||
scheduledTiming | Timing | |||
encounter | Σ | 0..1 | Reference(Encounter) | Encounter request created during |
performer | Σ | 0..1 | Reference(Practitioner | Organization | Patient | RelatedPerson) | Who should perform the procedure |
status | ?!Σ | 0..1 | code | proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted ProcedureRequestStatus (Required) |
notes | Σ | 0..* | Annotation | Additional information about desired procedure |
asNeeded[x] | Σ | 0..1 | Preconditions for procedure | |
asNeededBoolean | boolean | |||
asNeededCodeableConcept | CodeableConcept | |||
orderedOn | Σ | 0..1 | dateTime | When request was created |
orderer | Σ | 0..1 | Reference(Practitioner | Patient | RelatedPerson | Device) | Who made request |
priority | Σ | 0..1 | code | routine | urgent | stat | asap ProcedureRequestPriority (Required) |
Documentation for this format |
XML Template
<ProcedureRequest xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Unique identifier for the request --></identifier> <subject><!-- 1..1 Reference(Patient|Group) Who the procedure should be done to --></subject> <code><!-- 1..1 CodeableConcept What procedure to perform --></code> <bodySite><!-- 0..* CodeableConcept What part of body to perform on --></bodySite> <reason[x]><!-- 0..1 CodeableConcept|Reference(Condition) Why procedure should occur --></reason[x]> <scheduled[x]><!-- 0..1 dateTime|Period|Timing When procedure should occur --></scheduled[x]> <encounter><!-- 0..1 Reference(Encounter) Encounter request created during --></encounter> <performer><!-- 0..1 Reference(Practitioner|Organization|Patient|RelatedPerson) Who should perform the procedure --></performer> <status value="[code]"/><!-- 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted --> <notes><!-- 0..* Annotation Additional information about desired procedure --></notes> <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Preconditions for procedure --></asNeeded[x]> <orderedOn value="[dateTime]"/><!-- 0..1 When request was created --> <orderer><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson|Device) Who made request --></orderer> <priority value="[code]"/><!-- 0..1 routine | urgent | stat | asap --> </ProcedureRequest>
JSON Template
{ "resourceType" : "ProcedureRequest", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Unique identifier for the request "subject" : { Reference(Patient|Group) }, // R! Who the procedure should be done to "code" : { CodeableConcept }, // R! What procedure to perform "bodySite" : [{ CodeableConcept }], // What part of body to perform on // reason[x]: Why procedure should occur. One of these 2: "reasonCodeableConcept" : { CodeableConcept }, "reasonReference" : { Reference(Condition) }, // scheduled[x]: When procedure should occur. One of these 3: "scheduledDateTime" : "<dateTime>", "scheduledPeriod" : { Period }, "scheduledTiming" : { Timing }, "encounter" : { Reference(Encounter) }, // Encounter request created during "performer" : { Reference(Practitioner|Organization|Patient|RelatedPerson) }, // Who should perform the procedure "status" : "<code>", // proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted "notes" : [{ Annotation }], // Additional information about desired procedure // asNeeded[x]: Preconditions for procedure. One of these 2: "asNeededBoolean" : <boolean>, "asNeededCodeableConcept" : { CodeableConcept }, "orderedOn" : "<dateTime>", // When request was created "orderer" : { Reference(Practitioner|Patient|RelatedPerson|Device) }, // Who made request "priority" : "<code>" // routine | urgent | stat | asap }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:ProcedureRequest; 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:ProcedureRequest.identifier [ Identifier ], ... ; # 0..* Unique identifier for the request fhir:ProcedureRequest.subject [ Reference(Patient|Group) ]; # 1..1 Who the procedure should be done to fhir:ProcedureRequest.code [ CodeableConcept ]; # 1..1 What procedure to perform fhir:ProcedureRequest.bodySite [ CodeableConcept ], ... ; # 0..* What part of body to perform on # ProcedureRequest.reason[x] : 0..1 Why procedure should occur. One of these 2 fhir:ProcedureRequest.reasonCodeableConcept [ CodeableConcept ] fhir:ProcedureRequest.reasonReference [ Reference(Condition) ] # ProcedureRequest.scheduled[x] : 0..1 When procedure should occur. One of these 3 fhir:ProcedureRequest.scheduledDateTime [ dateTime ] fhir:ProcedureRequest.scheduledPeriod [ Period ] fhir:ProcedureRequest.scheduledTiming [ Timing ] fhir:ProcedureRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter request created during fhir:ProcedureRequest.performer [ Reference(Practitioner|Organization|Patient|RelatedPerson) ]; # 0..1 Who should perform the procedure fhir:ProcedureRequest.status [ code ]; # 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted fhir:ProcedureRequest.notes [ Annotation ], ... ; # 0..* Additional information about desired procedure # ProcedureRequest.asNeeded[x] : 0..1 Preconditions for procedure. One of these 2 fhir:ProcedureRequest.asNeededBoolean [ boolean ] fhir:ProcedureRequest.asNeededCodeableConcept [ CodeableConcept ] fhir:ProcedureRequest.orderedOn [ dateTime ]; # 0..1 When request was created fhir:ProcedureRequest.orderer [ Reference(Practitioner|Patient|RelatedPerson|Device) ]; # 0..1 Who made request fhir:ProcedureRequest.priority [ code ]; # 0..1 routine | urgent | stat | asap ]
Changes since DSTU2
ProcedureRequest | No Changes |
See the Full Difference for further information
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)
Path | Definition | Type | Reference |
---|---|---|---|
ProcedureRequest.code | A code to identify a specific procedure . | Example | Procedure Codes (SNOMED CT) |
ProcedureRequest.bodySite | A code that identifies the anatomical location. | Example | SNOMED CT Body Structures |
ProcedureRequest.reason[x] | A code that explains the reason why a procedure is required. | Example | Procedure Reason Codes |
ProcedureRequest.status | The status of the request. | Required | ProcedureRequestStatus |
ProcedureRequest.asNeeded[x] | A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc. | Unknown | No details provided yet |
ProcedureRequest.priority | The priority of the request. | Required | ProcedureRequestPriority |
Notes to reviewers:
At this time, the code bindings are placeholders to be fleshed out upon further review by the community.
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 | Paths |
encounter | reference | Encounter request created during | ProcedureRequest.encounter (Encounter) |
identifier | token | A unique identifier of the Procedure Request | ProcedureRequest.identifier |
orderer | reference | Who made request | ProcedureRequest.orderer (Practitioner, Device, Patient, RelatedPerson) |
patient | reference | Search by subject - a patient | ProcedureRequest.subject (Patient) |
performer | reference | Who should perform the procedure | ProcedureRequest.performer (Practitioner, Organization, Patient, RelatedPerson) |
subject | reference | Search by subject | ProcedureRequest.subject (Group, Patient) |