Canadian Baseline
1.2.0 - CI Build

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

## Resource Profile: Procedure Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-procedure | Version: 1.2.0
Draft as of 2024-12-13 | Computable Name: ProcedureProfile

Proposed constraints and extensions on the Procedure Resource

# CA Baseline Procedure Profile

> This profile is seeking broader community and implementer feedback.
> The cardinality on procedure.performed[x] has been constrained to 1..1. While this did not cause any Due Diligence Review Issues with IPS or US Core, we are seeking feedback from additional implementers on whether this cardinality restriction poses problems for their FHIR implementations.
> This profile also socializes an example of a subset of SNOMED CT codes for procedures that is made available through the Infoway Terminology Gateway: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode. This extensional value set was developed after initial review of the profiles but has been added in. We are seeking community feedback as to whether this subset is in use today by Canadian implementers or whether or not we should point to the larger value set of SNOMED CT codes contained in the IPS Value Set.
> Feedback can be provided using the Simplifier issue log for this profile.

This profile sets minimum expectations for the Procedure resource to record, search and fetch current or historical procedures performed on or for a patient. It identifies which elements and value sets SHALL be present in the resource when using this profile.

This profile defines localization concepts for use in an Canadian context.

## Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

Required elements:

- status specifying the state of the procedure (required in the base specification)
- code to classify the procedure that is performed
- reference to a subject
- date procedure was performed

## Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see Must Support definition).

Following elements are marked as Must Support in the Procedure profile to aid record matching in databases with many pediatric records.

Must Support elements:

- status
- code
- reference to a subject
- performed date
- body site

## Usage Note

This Procedure profile is used to provide summary information about the occurrence of current or historical procedures performed on or for a patient, and is not intended to provide real-time snapshots of a procedure as it unfolds. Examples include surgical procedures, diagnostic procedures, endoscopic procedures, biopsies, counseling, physiotherapy, personal support services, adult day care services, non-emergency transportation, home modification, exercise and so on.

A slice for absentOrUnknownProcedure comes from the IPS-UV specification and has been socialized in the profile as a way to represent a standard set of codes for identifying absent or unknown procedures. While the profile expects that a procedure.code be present (cardinality of 1..1) the use of the slice is entirely optional.

Usages:

- Refer to this Profile: Encounter Profile, MedicationAdministration Profile, MedicationDispense Profile, MedicationStatement Profile and Procedure Profile

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
partOf | Σ | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | ?!S Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure | Σ | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
subject | S Σ | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter | Σ | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S Σ | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
location | Σ | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonReference | Σ | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.status | Base | required | EventStatus | 📍4.0.1 | FHIR Std.
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Procedure | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Procedure

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
partOf |  | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | S | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure |  | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
subject | S | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter |  | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder |  | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter |  | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
performer |  |  |  |
actor |  | 1..1 | Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile | Patient Profile | RelatedPerson | Device Profile (Implantable)) | The reference to the practitioner
location |  | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonReference |  | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
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: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
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
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest) | A request for this procedure
partOf | Σ | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | ?!S Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure | Σ | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
text | Σ | 0..1 | string | Plain text representation of the concept
subject | S Σ | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter | Σ | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S Σ | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
performer | Σ | 0..* | BackboneElement | The people who performed the procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile | Patient Profile | RelatedPerson | Device Profile (Implantable)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
followUp |  | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
note |  | 0..* | Annotation | Additional information about the procedure
focalDevice |  | 0..* | BackboneElement | Manipulated, implanted, or removed device
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(Device) | Device that was changed
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Procedure.status | Base | required | EventStatus | 📍4.0.1 | FHIR Std.
Procedure.statusReason | Base | example | Procedure Not Performed Reason (SNOMED-CT) | 📍4.0.1 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1
Procedure.performer.​function | Base | example | Procedure Performer Role Codes | 📍4.0.1 | FHIR Std.
Procedure.reasonCode | Base | example | Procedure Reason Codes | 📍4.0.1 | FHIR Std.
Procedure.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std.
Procedure.outcome | Base | example | Procedure Outcome Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.complication | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std.
Procedure.followUp | Base | example | Procedure Follow up Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.focalDevice.​action | Base | preferred | Procedure Device Action Codes | 📍4.0.1 | FHIR Std.
Procedure.usedCode | Base | example | FHIR Device Types | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Procedure | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Procedure

Summary

Mandatory: 3 elements
Must-Support: 4 elements

Structures

This structure refers to these other structures:

- Procedure Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-procedure)
- Observation Profile (General Use) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation)
- MedicationAdministration Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-medicationadministration)
- Patient Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-patient)
- Encounter Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-encounter)
- Practitioner Profile (General) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitioner)
- PractitionerRole Profile (General) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitionerrole)
- Organization Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-organization)
- Device Profile (Implantable) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-device)
- Location Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-location)
- Condition Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-condition)
- DiagnosticReport Profile for Laboratory Results Reporting (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-diagnosticreport)
- Diagnostic Report for Report and Note Exchange Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-diagnosticreportnote)
- DocumentReference Profile for metadata about the document (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-documentreference)
- Medication Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-medication)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/data-absent-reason

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Procedure.code.coding

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
partOf | Σ | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | ?!S Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure | Σ | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
subject | S Σ | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter | Σ | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S Σ | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
location | Σ | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonReference | Σ | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.status | Base | required | EventStatus | 📍4.0.1 | FHIR Std.
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Procedure | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Procedure

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
partOf |  | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | S | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure |  | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
subject | S | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter |  | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder |  | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter |  | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
performer |  |  |  |
actor |  | 1..1 | Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile | Patient Profile | RelatedPerson | Device Profile (Implantable)) | The reference to the practitioner
location |  | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonReference |  | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | Procedure Profile
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: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
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
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest) | A request for this procedure
partOf | Σ | 0..* | Reference(Procedure Profile | Observation Profile (General Use) | MedicationAdministration Profile) | Part of referenced event
status | ?!S Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
statusReason | Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: InterventionCode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:absentOrUnknownProcedure | Σ | 0..1 | Coding | Code for absent problem or for unknown procedure Binding: Absent or Unknown Procedures - IPS (required): A code to identify absent or unknown procedures
text | Σ | 0..1 | string | Plain text representation of the concept
subject | S Σ | 1..1 | Reference(Patient Profile) | Who the procedure was performed on
encounter | Σ | 0..1 | Reference(Encounter Profile) | Encounter created as part of
performed[x] | S Σ | 1..1 |  | When the procedure was performed
performed[x]All Types |  |  |  | Content/Rules for all Types
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:data-absent-reason |  | 0..1 | code | performed[x] absence reason URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason Binding: DataAbsentReason (required)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient Profile | RelatedPerson | Practitioner Profile (General) | PractitionerRole Profile (General)) | Person who asserts this procedure
performer | Σ | 0..* | BackboneElement | The people who performed the procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile | Patient Profile | RelatedPerson | Device Profile (Implantable)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location Profile) | Where the procedure happened
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition Profile | Observation Profile (General Use) | Procedure Profile | DiagnosticReport Profile for Laboratory Results Reporting | Diagnostic Report for Report and Note Exchange Profile | DocumentReference Profile for metadata about the document) | The justification that the procedure was performed
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail |  | 0..* | Reference(Condition Profile) | A condition that is a result of the procedure
followUp |  | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
note |  | 0..* | Annotation | Additional information about the procedure
focalDevice |  | 0..* | BackboneElement | Manipulated, implanted, or removed device
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(Device) | Device that was changed
usedReference |  | 0..* | Reference(Device Profile (Implantable) | Medication Profile | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Procedure.status | Base | required | EventStatus | 📍4.0.1 | FHIR Std.
Procedure.statusReason | Base | example | Procedure Not Performed Reason (SNOMED-CT) | 📍4.0.1 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.code | Base | preferred | InterventionCode | ⏿1.0.0 | terminologystandardsservice.ca
Procedure.code.coding:absentOrUnknownProcedure | Base | required | Absent or Unknown Procedures - IPS | 📦1.1.0 | International Patient Summary Implementation Guide v1.1
Procedure.performer.​function | Base | example | Procedure Performer Role Codes | 📍4.0.1 | FHIR Std.
Procedure.reasonCode | Base | example | Procedure Reason Codes | 📍4.0.1 | FHIR Std.
Procedure.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std.
Procedure.outcome | Base | example | Procedure Outcome Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.complication | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std.
Procedure.followUp | Base | example | Procedure Follow up Codes (SNOMED CT) | 📍4.0.1 | FHIR Std.
Procedure.focalDevice.​action | Base | preferred | Procedure Device Action Codes | 📍4.0.1 | FHIR Std.
Procedure.usedCode | Base | example | FHIR Device Types | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Procedure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Procedure | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Procedure

Summary

Mandatory: 3 elements
Must-Support: 4 elements

Structures

This structure refers to these other structures:

- Procedure Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-procedure)
- Observation Profile (General Use) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation)
- MedicationAdministration Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-medicationadministration)
- Patient Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-patient)
- Encounter Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-encounter)
- Practitioner Profile (General) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitioner)
- PractitionerRole Profile (General) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitionerrole)
- Organization Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-organization)
- Device Profile (Implantable) (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-device)
- Location Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-location)
- Condition Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-condition)
- DiagnosticReport Profile for Laboratory Results Reporting (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-diagnosticreport)
- Diagnostic Report for Report and Note Exchange Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-diagnosticreportnote)
- DocumentReference Profile for metadata about the document (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-documentreference)
- Medication Profile (http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-medication)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/data-absent-reason

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Procedure.code.coding

Other representations of profile: CSV, Excel, Schematron

### Notes:

## Code

The Procedure.code element is used to specify a procedure that is performed.

The Procedure.code element is CodeableConcept data type meaning that more than one Coding sub-elements can be present. One of these Coding sub-elements MAY use InterventionCodeSubsetOperatingRoomProcedure value set from Canada Health Infoway.

Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy").