DSTU2 Ballot Source

This page is part of the FHIR Specification (v0.5.0: DSTU 2 Ballot 2). 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

4.9 Resource ProcedureRequest - Content

This resource maintained by the Patient Care Work Group

A request for a procedure to be performed. May be a proposal or an order.

4.9.1 Scope and Usage

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.

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, counselling, 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.

4.9.2 Boundaries and Relationships

ProcedureRequest is closely related to other types of "request" resources, particularly DiagnosticOrder 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:

  • ProcedureRequest or DiagnosticOrder are typically used when the requesting clinician has and wishes to exercise the authority (and expertise) to decide exactly what action will be done.
  • A ReferralRequest is used when the requesting practitioner is seeking another practitioner or organization to use their own expertise and/or authority to determine the specific action to take.
  • Whether an activity is deemed to be a procedure or only a diagnostic order is typically driven by how invasive the diagnostic process is. More invasive processes are typically represented as procedures, though the dividing line may vary by organization.

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 DiagnosticOrder. 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 counselling (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.

This resource is referenced by CarePlan, ClinicalImpression and Goal

4.9.3 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ProcedureRequest DomainResourceA request for a procedure to be performed
... identifier 0..*IdentifierIdentifier
... subject 1..1PatientSubject
... type 1..1CodeableConceptProcedure Type
... bodySite 0..*ElementTarget body sites
.... site[x] Target body site
..... siteCodeableConcept1..1CodeableConcept
..... siteReference1..1BodySite
... indication 0..*CodeableConceptIndication
... timing[x] Procedure timing schedule
.... timingDateTime0..1dateTime
.... timingPeriod0..1Period
.... timingTiming0..1Timing
... encounter 0..1EncounterEncounter
... performer 0..1Practitioner | Organization | Patient | RelatedPersonPerformer
... status ?!0..1codeproposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted
ProcedureRequestStatus (Required)
... notes 0..*stringNotes
... asNeeded[x] PRN
.... asNeededBoolean0..1boolean
.... asNeededCodeableConcept0..1CodeableConcept
... orderedOn 0..1dateTimeWhen Requested
... orderer 0..1Practitioner | Patient | RelatedPerson | DeviceOrdering Party
... priority 0..1coderoutine | urgent | stat | asap
ProcedureRequestPriority (Required)

UML Diagram

ProcedureRequest (DomainResource)Identifiers assigned to this order by the order or by the receiveridentifier : Identifier 0..*The patient who will receive the proceduresubject : Reference(Patient) 1..1The specific procedure that is ordered. Use text if the exact nature of the procedure can't be codedtype : CodeableConcept 1..1The reason why the procedure is proposed or ordered. This procedure request may be motivated by a Condition for instanceindication : CodeableConcept 0..*The timing schedule for the proposed or ordered procedure. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013"timing[x] : dateTime|Period|Timing 0..1The encounter within which the procedure proposal or request was createdencounter : Reference(Encounter) 0..1E.g. surgeon, anaethetist, endoscopistperformer : Reference(Practitioner|Organization| Patient|RelatedPerson) 0..1The status of the order (this element modifies the meaning of other elements)status : code 0..1 « The status of the requestProcedureRequestStatus »Any other notes associated with this proposal or order - e.g., provider instructionsnotes : string 0..*If a CodeableConcept is present, it indicates the pre-condition for performing the procedureasNeeded[x] : boolean|CodeableConcept 0..1The time when the request was madeorderedOn : dateTime 0..1The healthcare professional responsible for proposing or ordering the procedureorderer : Reference(Practitioner|Patient| RelatedPerson|Device) 0..1The clinical priority associated with this orderpriority : code 0..1 « The priority of the requestProcedureRequestPriority »BodySiteIndicates the site on the subject's body where the procedure should be performed ( i.e. the target sites)site[x] : CodeableConcept|Reference(BodySite) 1..1Indicates the sites on the subject's body where the procedure should be performed ( i.e. the target sites)bodySite0..*

XML Template

<ProcedureRequest xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifier --></identifier>
 <subject><!-- 1..1 Reference(Patient) Subject --></subject>
 <type><!-- 1..1 CodeableConcept Procedure Type --></type>
 <bodySite>  <!-- 0..* Target body sites -->
  <site[x]><!-- 1..1 CodeableConcept|Reference(BodySite) Target body site --></site[x]>
 </bodySite>
 <indication><!-- 0..* CodeableConcept Indication --></indication>
 <timing[x]><!-- 0..1 dateTime|Period|Timing Procedure timing schedule --></timing[x]>
 <encounter><!-- 0..1 Reference(Encounter) Encounter --></encounter>
 <performer><!-- 0..1 Reference(Practitioner|Organization|Patient|RelatedPerson) Performer --></performer>
 <status value="[code]"/><!-- 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted -->
 <notes value="[string]"/><!-- 0..* Notes -->
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept PRN --></asNeeded[x]>
 <orderedOn value="[dateTime]"/><!-- 0..1 When Requested -->
 <orderer><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson|Device) Ordering Party --></orderer>
 <priority value="[code]"/><!-- 0..1 routine | urgent | stat | asap -->
</ProcedureRequest>

JSON Template

{doco
  "resourceType" : "ProcedureRequest",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifier
  "subject" : { Reference(Patient) }, // R!  Subject
  "type" : { CodeableConcept }, // R!  Procedure Type
  "bodySite" : [{ // Target body sites
    // site[x]: Target body site. One of these 2:
    "siteCodeableConcept" : { CodeableConcept }
    "siteReference" : { Reference(BodySite) }
  }],
  "indication" : [{ CodeableConcept }], // Indication
  // timing[x]: Procedure timing schedule. One of these 3:
  "timingDateTime" : "<dateTime>",
  "timingPeriod" : { Period },
  "timingTiming" : { Timing },
  "encounter" : { Reference(Encounter) }, // Encounter
  "performer" : { Reference(Practitioner|Organization|Patient|RelatedPerson) }, // Performer
  "status" : "<code>", // proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted
  "notes" : ["<string>"], // Notes
  // asNeeded[x]: PRN. One of these 2:
  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept },
  "orderedOn" : "<dateTime>", // When Requested
  "orderer" : { Reference(Practitioner|Patient|RelatedPerson|Device) }, // Ordering Party
  "priority" : "<code>" // routine | urgent | stat | asap
}

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ProcedureRequest DomainResourceA request for a procedure to be performed
... identifier 0..*IdentifierIdentifier
... subject 1..1PatientSubject
... type 1..1CodeableConceptProcedure Type
... bodySite 0..*ElementTarget body sites
.... site[x] Target body site
..... siteCodeableConcept1..1CodeableConcept
..... siteReference1..1BodySite
... indication 0..*CodeableConceptIndication
... timing[x] Procedure timing schedule
.... timingDateTime0..1dateTime
.... timingPeriod0..1Period
.... timingTiming0..1Timing
... encounter 0..1EncounterEncounter
... performer 0..1Practitioner | Organization | Patient | RelatedPersonPerformer
... status ?!0..1codeproposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted
ProcedureRequestStatus (Required)
... notes 0..*stringNotes
... asNeeded[x] PRN
.... asNeededBoolean0..1boolean
.... asNeededCodeableConcept0..1CodeableConcept
... orderedOn 0..1dateTimeWhen Requested
... orderer 0..1Practitioner | Patient | RelatedPerson | DeviceOrdering Party
... priority 0..1coderoutine | urgent | stat | asap
ProcedureRequestPriority (Required)

UML Diagram

ProcedureRequest (DomainResource)Identifiers assigned to this order by the order or by the receiveridentifier : Identifier 0..*The patient who will receive the proceduresubject : Reference(Patient) 1..1The specific procedure that is ordered. Use text if the exact nature of the procedure can't be codedtype : CodeableConcept 1..1The reason why the procedure is proposed or ordered. This procedure request may be motivated by a Condition for instanceindication : CodeableConcept 0..*The timing schedule for the proposed or ordered procedure. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013"timing[x] : dateTime|Period|Timing 0..1The encounter within which the procedure proposal or request was createdencounter : Reference(Encounter) 0..1E.g. surgeon, anaethetist, endoscopistperformer : Reference(Practitioner|Organization| Patient|RelatedPerson) 0..1The status of the order (this element modifies the meaning of other elements)status : code 0..1 « The status of the requestProcedureRequestStatus »Any other notes associated with this proposal or order - e.g., provider instructionsnotes : string 0..*If a CodeableConcept is present, it indicates the pre-condition for performing the procedureasNeeded[x] : boolean|CodeableConcept 0..1The time when the request was madeorderedOn : dateTime 0..1The healthcare professional responsible for proposing or ordering the procedureorderer : Reference(Practitioner|Patient| RelatedPerson|Device) 0..1The clinical priority associated with this orderpriority : code 0..1 « The priority of the requestProcedureRequestPriority »BodySiteIndicates the site on the subject's body where the procedure should be performed ( i.e. the target sites)site[x] : CodeableConcept|Reference(BodySite) 1..1Indicates the sites on the subject's body where the procedure should be performed ( i.e. the target sites)bodySite0..*

XML Template

<ProcedureRequest xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifier --></identifier>
 <subject><!-- 1..1 Reference(Patient) Subject --></subject>
 <type><!-- 1..1 CodeableConcept Procedure Type --></type>
 <bodySite>  <!-- 0..* Target body sites -->
  <site[x]><!-- 1..1 CodeableConcept|Reference(BodySite) Target body site --></site[x]>
 </bodySite>
 <indication><!-- 0..* CodeableConcept Indication --></indication>
 <timing[x]><!-- 0..1 dateTime|Period|Timing Procedure timing schedule --></timing[x]>
 <encounter><!-- 0..1 Reference(Encounter) Encounter --></encounter>
 <performer><!-- 0..1 Reference(Practitioner|Organization|Patient|RelatedPerson) Performer --></performer>
 <status value="[code]"/><!-- 0..1 proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted -->
 <notes value="[string]"/><!-- 0..* Notes -->
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept PRN --></asNeeded[x]>
 <orderedOn value="[dateTime]"/><!-- 0..1 When Requested -->
 <orderer><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson|Device) Ordering Party --></orderer>
 <priority value="[code]"/><!-- 0..1 routine | urgent | stat | asap -->
</ProcedureRequest>

JSON Template

{doco
  "resourceType" : "ProcedureRequest",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifier
  "subject" : { Reference(Patient) }, // R!  Subject
  "type" : { CodeableConcept }, // R!  Procedure Type
  "bodySite" : [{ // Target body sites
    // site[x]: Target body site. One of these 2:
    "siteCodeableConcept" : { CodeableConcept }
    "siteReference" : { Reference(BodySite) }
  }],
  "indication" : [{ CodeableConcept }], // Indication
  // timing[x]: Procedure timing schedule. One of these 3:
  "timingDateTime" : "<dateTime>",
  "timingPeriod" : { Period },
  "timingTiming" : { Timing },
  "encounter" : { Reference(Encounter) }, // Encounter
  "performer" : { Reference(Practitioner|Organization|Patient|RelatedPerson) }, // Performer
  "status" : "<code>", // proposed | draft | requested | received | accepted | in-progress | completed | suspended | rejected | aborted
  "notes" : ["<string>"], // Notes
  // asNeeded[x]: PRN. One of these 2:
  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept },
  "orderedOn" : "<dateTime>", // When Requested
  "orderer" : { Reference(Practitioner|Patient|RelatedPerson|Device) }, // Ordering Party
  "priority" : "<code>" // routine | urgent | stat | asap
}

 

Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON)

4.9.3.1 Terminology Bindings

PathDefinitionTypeReference
ProcedureRequest.status The status of the requestRequiredhttp://hl7.org/fhir/procedure-request-status
ProcedureRequest.priority The priority of the requestRequiredhttp://hl7.org/fhir/procedure-request-priority

Notes to reviewers:

At this time, the code bindings are placeholders to be fleshed out upon further review by the community.

4.9.4 Search Parameters

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPaths
encounterreferenceEncounterProcedureRequest.encounter
(Encounter)
ordererreferenceOrdering PartyProcedureRequest.orderer
(Device, Patient, Practitioner, RelatedPerson)
patientreferenceSearch by subject - a patientProcedureRequest.subject
(Patient)
performerreferencePerformerProcedureRequest.performer
(Patient, Organization, Practitioner, RelatedPerson)
subjectreferenceSearch by subjectProcedureRequest.subject
(Patient)