Canadian Baseline
1.1.0 - CI Build Canada flag

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.1.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.1.0
Draft as of 2020-07-21 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.

Usage:

Formal Views of Profile Content

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

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... Slices for code S 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips (required): A code to identify absent or unknown procedures

... 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
..... 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 Results Reporting | 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

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... Slices for code SΣ 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure Σ 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-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
..... 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 Results Reporting | 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Procedure.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProcedureIf 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-4errorProcedureIf 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-5errorProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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 BindingsPurpose
AllLanguages Max Binding
... text 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
... 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.

... Slices for code SΣ 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure Σ 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-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
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... 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 Results Reporting | 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.



doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Procedure.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Procedure.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Procedure.statusReasonexampleProcedureNotPerformedReason(SNOMED-CT)
http://hl7.org/fhir/ValueSet/procedure-not-performed-reason
from the FHIR Standard
Procedure.categoryexampleProcedureCategoryCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-category
from the FHIR Standard
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
Procedure.performer.functionexampleProcedurePerformerRoleCodes
http://hl7.org/fhir/ValueSet/performer-role
from the FHIR Standard
Procedure.reasonCodeexampleProcedureReasonCodes
http://hl7.org/fhir/ValueSet/procedure-reason
from the FHIR Standard
Procedure.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Procedure.outcomeexampleProcedureOutcomeCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-outcome
from the FHIR Standard
Procedure.complicationexampleCondition/Problem/DiagnosisCodes
http://hl7.org/fhir/ValueSet/condition-code
from the FHIR Standard
Procedure.followUpexampleProcedureFollowUpCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-followup
from the FHIR Standard
Procedure.focalDevice.actionpreferredProcedureDeviceActionCodes
http://hl7.org/fhir/ValueSet/device-action
from the FHIR Standard
Procedure.usedCodeexampleFHIRDeviceTypes
http://hl7.org/fhir/ValueSet/device-kind
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProcedureIf 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-4errorProcedureIf 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-5errorProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Procedure

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... Slices for code S 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips (required): A code to identify absent or unknown procedures

... 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
..... 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 Results Reporting | 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

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... Slices for code SΣ 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure Σ 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-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
..... 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 Results Reporting | 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Procedure.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProcedureIf 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-4errorProcedureIf 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-5errorProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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 BindingsPurpose
AllLanguages Max Binding
... text 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
... 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.

... Slices for code SΣ 1..1 CodeableConcept Identification of the procedure
Slice: Unordered, Open by pattern:$this
Binding: https://fhir.infoway-inforoute.ca/ValueSet/interventioncode (preferred): Extensional Subset of SNOMED CT and SNOMED CT CA Extension Codes to describe Services/Activities performed by Primary Health Care Providers.

.... code:absentOrUnknownProcedure Σ 0..1 CodeableConcept Code for absent problem or for unknown procedure
Binding: http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-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
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... 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 Results Reporting | 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.



doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Procedure.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Procedure.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Procedure.statusReasonexampleProcedureNotPerformedReason(SNOMED-CT)
http://hl7.org/fhir/ValueSet/procedure-not-performed-reason
from the FHIR Standard
Procedure.categoryexampleProcedureCategoryCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-category
from the FHIR Standard
Procedure.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/interventioncode
https://fhir.infoway-inforoute.ca/ValueSet/interventioncode
Procedure.code:absentOrUnknownProcedurerequiredhttp://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips
Procedure.performer.functionexampleProcedurePerformerRoleCodes
http://hl7.org/fhir/ValueSet/performer-role
from the FHIR Standard
Procedure.reasonCodeexampleProcedureReasonCodes
http://hl7.org/fhir/ValueSet/procedure-reason
from the FHIR Standard
Procedure.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Procedure.outcomeexampleProcedureOutcomeCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-outcome
from the FHIR Standard
Procedure.complicationexampleCondition/Problem/DiagnosisCodes
http://hl7.org/fhir/ValueSet/condition-code
from the FHIR Standard
Procedure.followUpexampleProcedureFollowUpCodes(SNOMEDCT)
http://hl7.org/fhir/ValueSet/procedure-followup
from the FHIR Standard
Procedure.focalDevice.actionpreferredProcedureDeviceActionCodes
http://hl7.org/fhir/ValueSet/device-action
from the FHIR Standard
Procedure.usedCodeexampleFHIRDeviceTypes
http://hl7.org/fhir/ValueSet/device-kind
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProcedureIf 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-4errorProcedureIf 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-5errorProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Procedure

 

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”).