International Patient Summary Implementation Guide
2.0.0 -

International Patient Summary Implementation Guide, published by HL7 International / Patient Care. This guide is not an authorized publication; it is the continuous build for version 2.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-ips/ and changes regularly. See the Directory of published versions

## Resource Profile: Procedure (IPS)

Official URL: http://hl7.org/fhir/uv/ips/StructureDefinition/Procedure-uv-ips | Version: 2.0.0
Standards status: Trial-use Active as of 2024-06-19 | Maturity Level: 3 | Computable Name: ProcedureUvIps

This profile represents the constraints applied to the Procedure resource by the IPS project, which specifies an entry of the History of Procedure for the international patient summary based on the FHIR standard R4.

Usages:

- Use this Profile: Bundle (IPS)
- Refer to this Profile: Composition (IPS)
- Examples for this Profile: Procedure/eumfh-39-07-1 and Procedure/procedure-missing-performed
- CapabilityStatements using this Profile: IPS Server Capability Statement

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 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 | SO Σ | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO Σ | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
reference | SO Σ C | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
Slices for performed[x] | SO Σ | 1..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedDateTime | SO Σ | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
Documentation for this format

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
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 | Procedures - IPS | 📦2.0.0 | This IG
Procedure.bodySite | Base | preferred | SNOMED CT Body Structures | 📦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()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  |  | Procedure |
code | SO | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
reference | SO | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
Slices for performed[x] | SO | 1..1 | dateTime, Period, string, Age, Range | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performed[x]:performedDateTime | SO | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performer |  |  |  |
actor |  | 1..1 | Reference(Patient (IPS) | RelatedPerson | Device - Performer or Observer (IPS) | Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization (IPS)) | Organization the device or practitioner was acting for
bodySite |  | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
Documentation for this format

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code | Base | preferred | Procedures - IPS | 📦2.0.0 | This IG
Procedure.bodySite | Base | preferred | SNOMED CT Body Structures | 📦4.0.1 | FHIR Std.

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
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 | Observation | MedicationAdministration) | Part of referenced event
status | ?!Σ | 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 | SO Σ | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO Σ | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | SO Σ C | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of
Slices for performed[x] | SO Σ | 1..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedDateTime | SO Σ | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | 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(Patient (IPS) | RelatedPerson | Device - Performer or Observer (IPS) | Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization (IPS)) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | 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 | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
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) | 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 | Medication | 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

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
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 | Procedures - IPS | 📦2.0.0 | This IG
Procedure.subject.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
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 | preferred | 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()`

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
Documentation for this format

Summary

Mandatory: 3 elements
Must-Support: 5 elements

Structures

This structure refers to these other structures:

- Codeable Concept (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips)
- Patient (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips)
- Device - Performer or Observer (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips)
- Practitioner (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Practitioner-uv-ips)
- PractitionerRole (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips)
- Organization (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Procedure.performed[x]

Maturity: 3

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 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 | SO Σ | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO Σ | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
reference | SO Σ C | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
Slices for performed[x] | SO Σ | 1..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedDateTime | SO Σ | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
Documentation for this format

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
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 | Procedures - IPS | 📦2.0.0 | This IG
Procedure.bodySite | Base | preferred | SNOMED CT Body Structures | 📦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()`

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  |  | Procedure |
code | SO | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
reference | SO | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
Slices for performed[x] | SO | 1..1 | dateTime, Period, string, Age, Range | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performed[x]:performedDateTime | SO | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performer |  |  |  |
actor |  | 1..1 | Reference(Patient (IPS) | RelatedPerson | Device - Performer or Observer (IPS) | Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization (IPS)) | Organization the device or practitioner was acting for
bodySite |  | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
Documentation for this format

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code | Base | preferred | Procedures - IPS | 📦2.0.0 | This IG
Procedure.bodySite | Base | preferred | SNOMED CT Body Structures | 📦4.0.1 | FHIR Std.

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | An action that is being or was performed on a patient
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 | Observation | MedicationAdministration) | Part of referenced event
status | ?!Σ | 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 | SO Σ | 1..1 | CodeableConceptIPS | Identification of the procedure Binding: Procedures - IPS (preferred): SNOMED CT procedure code set or a code for absent/unknown procedure
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
subject | SO Σ | 1..1 | Reference(Patient (IPS)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | SO Σ C | 1..1 | string | Literal reference, Relative, internal or absolute URL
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
encounter | Σ | 0..1 | Reference(Encounter) | Encounter created as part of
Slices for performed[x] | SO Σ | 1..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
Obligations | Actor
SHALL:populate-if-known | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedDateTime | SO Σ | 0..1 | dateTime | When the procedure was performed
Obligations | Actor
SHOULD:able-to-populate | Creator (IPS)
SHALL:handle | Consumer (IPS)
SHOULD:display | Consumer (IPS)
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | 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(Patient (IPS) | RelatedPerson | Device - Performer or Observer (IPS) | Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS)) | The reference to the practitioner
onBehalfOf |  | 0..1 | Reference(Organization (IPS)) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | 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 | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed
bodySite | Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (preferred)
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) | 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 | Medication | 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

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
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 | Procedures - IPS | 📦2.0.0 | This IG
Procedure.subject.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
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 | preferred | 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()`

Name | Creator (IPS) | Consumer (IPS)
--- | --- | ---
Procedure |  |
code | SHALL:populate-if-known | SHALL:handle SHOULD:display
subject | SHALL:populate-if-known | SHALL:handle SHOULD:display
reference | SHALL:populate-if-known | SHALL:handle
Slices for performed[x] | SHALL:populate-if-known | SHALL:handle SHOULD:display
performed[x]:performedDateTime | SHOULD:able-to-populate | SHALL:handle SHOULD:display
Documentation for this format

Summary

Mandatory: 3 elements
Must-Support: 5 elements

Structures

This structure refers to these other structures:

- Codeable Concept (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips)
- Patient (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips)
- Device - Performer or Observer (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips)
- Practitioner (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Practitioner-uv-ips)
- PractitionerRole (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips)
- Organization (IPS) (http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Procedure.performed[x]

Maturity: 3

Other representations of profile: CSV, Excel, Schematron