This page is part of the Argonaut Data Query Implementation Guide (v1.0.0: Release) based on FHIR R2. This is the current published version. For a full list of available versions, see the Directory of published versions 
D.4.1 StructureDefinition-argo-procedure
This profile sets minimum expectations for the Procedure resource to record, search and fetch procedures associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the Argonaut Procedure profile:
- Query for procedures performed on a Patient
- Record a procedure performed on a Patient
Mandatory Data Elements and Terminology
The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Procedure must have:
- a patient
- a status
- a code that identifies the type of procedure performed on the patient
- when the procedure was performed
Profile specific implementation guidance:
Examples
D.4.1.1
Formal Views of Profile Content
The official URL for this profile is:
http://fhir.org/guides/argonaut/StructureDefinition/argo-procedure
This profile builds on Procedure.
This profile was published on Tue Oct 18 00:00:00 AEDT 2016 as a draft by Argonaut Project.
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
Complete Summary of the Mandatory Requirements
- One patient reference in
Procedure.patient
- A status code in Procedure.status which has a required binding to:
- One Identification of the procedure in
Procedure.code
which has:
- A date or a time period in
Procedure.performedDateTime
or Procedure.performedPeriod
Name | Flags | Card. | Type | Description & Constraints |
---|
 Procedure | I | 0..* | | Argonaut Procedure Profile pro-1: Reason not performed is only permitted if notPerformed indicator is true |
  id | Σ | 0..1 | id | Logical id of this artifact |
  meta | Σ | 0..1 | Meta | Metadata about the resource |
  implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
  language | | 0..1 | code | Language of the resource content Binding: IETF BCP-47 (required) |
  text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
  contained | | 0..* | Resource | Contained, inline Resources |
  extension | | 0..* | Extension | Additional Content defined by implementations |
  modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
  identifier | Σ | 0..* | Identifier | External Identifiers for this procedure |
  subject | S | 1..1 | Reference(Argonaut Patient Profile) | Who the procedure was performed on |
  status | ?!S | 1..1 | code | in-progress | aborted | completed | entered-in-error Binding: ProcedureStatus (required) |
  category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example) |
  code | S | 1..1 | CodeableConcept | SNOMED-CT | ICD-10 | CPT-4 Binding: Argonaut ProcedureType (extensible) |
  notPerformed | ?! | 0..1 | boolean | True if procedure was not performed as scheduled |
  reasonNotPerformed | I | 0..* | CodeableConcept | Reason procedure was not performed Binding: Procedure Not Performed Reason (SNOMED-CT) (example) |
  bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMED CT Body Structures (example) |
  reason[x] | Σ | 0..1 | CodeableConcept, Reference(Condition) | Reason procedure performed Binding: Procedure Reason Codes (example) |
  performer | Σ | 0..* | BackboneElement | The people who performed the procedure |
   id | | 0..1 | id | xml:id (or equivalent in JSON) |
   extension | | 0..* | Extension | Additional Content defined by implementations |
   modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
   actor | Σ | 0..1 | Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson) | The reference to the practitioner |
   role | Σ | 0..1 | CodeableConcept | The role the actor was in Binding: Procedure Performer Role Codes (example) |
  performed[x] | S | 1..1 | dateTime, Period | Date/Period the procedure was performed |
  encounter | Σ | 0..1 | Reference(Encounter) | The encounter associated with the procedure |
  location | Σ | 0..1 | Reference(Location) | Where the procedure happened |
  outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: Procedure Outcome Codes (SNOMED CT) (example) |
  report | | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure |
  complication | | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/Diagnosis Codes (example) |
  followUp | | 0..* | CodeableConcept | Instructions for follow up Binding: Procedure Follow up Codes (SNOMED CT) (example) |
  request | | 0..1 | Reference(CarePlan), Reference(DiagnosticOrder), Reference(ProcedureRequest), Reference(ReferralRequest) | A request for this procedure |
  notes | | 0..* | Annotation | Additional information about the procedure |
  focalDevice | | 0..* | BackboneElement | Device changed in procedure |
   id | | 0..1 | id | xml:id (or equivalent in JSON) |
   extension | | 0..* | Extension | Additional Content defined by implementations |
   modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
   action | | 0..1 | CodeableConcept | Kind of change to device Binding: Procedure Device Action Codes (required) |
   manipulated | | 1..1 | Reference(Device) | Device that was changed |
  used | | 0..* | Reference(Device), Reference(Medication), Reference(Substance) | Items used during procedure |
Documentation for this format |
Complete Summary of the Mandatory Requirements
- One patient reference in
Procedure.patient
- A status code in Procedure.status which has a required binding to:
- One Identification of the procedure in
Procedure.code
which has:
- A date or a time period in
Procedure.performedDateTime
or Procedure.performedPeriod
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|
 Procedure | I | 0..* | | Argonaut Procedure Profile pro-1: Reason not performed is only permitted if notPerformed indicator is true |
  id | Σ | 0..1 | id | Logical id of this artifact |
  meta | Σ | 0..1 | Meta | Metadata about the resource |
  implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
  language | | 0..1 | code | Language of the resource content Binding: IETF BCP-47 (required) |
  text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
  contained | | 0..* | Resource | Contained, inline Resources |
  extension | | 0..* | Extension | Additional Content defined by implementations |
  modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
  identifier | Σ | 0..* | Identifier | External Identifiers for this procedure |
  subject | S | 1..1 | Reference(Argonaut Patient Profile) | Who the procedure was performed on |
  status | ?!S | 1..1 | code | in-progress | aborted | completed | entered-in-error Binding: ProcedureStatus (required) |
  category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example) |
  code | S | 1..1 | CodeableConcept | SNOMED-CT | ICD-10 | CPT-4 Binding: Argonaut ProcedureType (extensible) |
  notPerformed | ?! | 0..1 | boolean | True if procedure was not performed as scheduled |
  reasonNotPerformed | I | 0..* | CodeableConcept | Reason procedure was not performed Binding: Procedure Not Performed Reason (SNOMED-CT) (example) |
  bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMED CT Body Structures (example) |
  reason[x] | Σ | 0..1 | CodeableConcept, Reference(Condition) | Reason procedure performed Binding: Procedure Reason Codes (example) |
  performer | Σ | 0..* | BackboneElement | The people who performed the procedure |
   id | | 0..1 | id | xml:id (or equivalent in JSON) |
   extension | | 0..* | Extension | Additional Content defined by implementations |
   modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
   actor | Σ | 0..1 | Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson) | The reference to the practitioner |
   role | Σ | 0..1 | CodeableConcept | The role the actor was in Binding: Procedure Performer Role Codes (example) |
  performed[x] | S | 1..1 | dateTime, Period | Date/Period the procedure was performed |
  encounter | Σ | 0..1 | Reference(Encounter) | The encounter associated with the procedure |
  location | Σ | 0..1 | Reference(Location) | Where the procedure happened |
  outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: Procedure Outcome Codes (SNOMED CT) (example) |
  report | | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure |
  complication | | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/Diagnosis Codes (example) |
  followUp | | 0..* | CodeableConcept | Instructions for follow up Binding: Procedure Follow up Codes (SNOMED CT) (example) |
  request | | 0..1 | Reference(CarePlan), Reference(DiagnosticOrder), Reference(ProcedureRequest), Reference(ReferralRequest) | A request for this procedure |
  notes | | 0..* | Annotation | Additional information about the procedure |
  focalDevice | | 0..* | BackboneElement | Device changed in procedure |
   id | | 0..1 | id | xml:id (or equivalent in JSON) |
   extension | | 0..* | Extension | Additional Content defined by implementations |
   modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
   action | | 0..1 | CodeableConcept | Kind of change to device Binding: Procedure Device Action Codes (required) |
   manipulated | | 1..1 | Reference(Device) | Device that was changed |
  used | | 0..* | Reference(Device), Reference(Medication), Reference(Substance) | Items used during procedure |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron
D.4.1.2 Quick Start 
Below is an overview of the required search and read operations for this profile. See the Conformance requirements for the Argonaut Data Query implementation guide server for a complete list of supported RESTful operations and search parameters for this IG.
GET /Procedure?patient=[id]
Example:
GET https://fhir-open-api-dstu2.smarthealthit.org/Procedure?patient=1291938
Support: Mandatory to support search by patient.
Implementation Notes: Search for all Procedures for a patient. Fetches a bundle of all Procedure resources for the specified patient. (how to search by reference).
Response Class:
- (Status 200): successful operation
- (Status 400): invalid parameter
- (Status 401/4xx): unauthorized request
- (Status 403): insufficient scope
GET /Procedure?patient=[id]&date=[date]{&date=[date]}
Example:
GET http://fhir2.healthintersections.com.au/open/Procedure?example&date=ge2002
GET http://fhir2.healthintersections.com.au/open/Procedure?example&date=ge2010$date=le2015
Support: Mandatory to support search by patient and date or period.
Implementation Notes: Search based on date. Fetches a bundle of all Procedure resources for the specified patient for a specified time period (how to search by reference) and (how to search by date).
Response Class:
- (Status 200): successful operation
- (Status 400): invalid parameter
- (Status 401/4xx): unauthorized request
- (Status 403): insufficient scope