Advance Care Planning (PZP)
1.0.0-rc2 - trial-use

Advance Care Planning (PZP) - Downloaded Version 1.0.0-rc2 See the Directory of published versions

## Resource Profile: ACP Procedure

Official URL: https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Procedure | Version: 1.0.0-rc2
Draft as of 2026-03-03 | Computable Name: ACPProcedure
Copyright/Legal: Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.

Advance Care Planning procedure. Based on nl-core-Procedure-event profile and HCIM Procedure.

### Changes compared to nl-core

This profile adds ACP-specific mappings to the ART-DECOR dataset and obligation extensions for Provider and Consulter actors. Profile references are constrained to ACP profiles where available. The following change affects implementation beyond the base nl-core profile:

- `.code` must use a fixed value to indicate that an ACP procedure has taken place.

Usages:

- Examples for this Profile: Procedure/ACP-Procedure-1-Pat2, Procedure/ACP-Procedure-2-Pat2 and Procedure/ACP-Procedure-Pat1
- CapabilityStatements using this Profile: ACP CapabilityStatement Consulter and ACP CapabilityStatement Provider

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..* | NlcoreProcedureevent | Procedure
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:procedureMethod | N | 0..* | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod Binding: VerrichtingMethodeCodelijst (required) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
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 | O Σ | 1..1 | CodeableConcept | ProcedureType Binding: VerrichtingTypeCodelijsten (2020-09-01T00:00:00) (required): A code to identify a specific procedure . Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for performed[x] | Σ | 0..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedPeriod | Σ | 0..1 | Period | When the procedure was performed
performed[x]:performedDateTime | Σ | 0..1 | dateTime | ProcedureStartDate
bodySite | Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
Slices for report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(nl core TextResult) | TextResult
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 | required | VerrichtingTypeCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
Procedure.bodySite | Base | required | LocatieCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12

#### 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 | Procedure.implicitRules, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.status, Procedure.code, Procedure.subject, Procedure.encounter, Procedure.performed[x], Procedure.performed[x]:performedPeriod, Procedure.performed[x]:performedDateTime, Procedure.bodySite, Procedure.report, Procedure.report:textResult | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Procedure.extension:procedureMethod, Procedure.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreProcedureevent

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | NlcoreProcedureevent | Procedure
code | O | 1..1 | CodeableConcept | ProcedureType Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
subject | O | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | NlcoreProcedureevent | Procedure
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
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:procedureMethod | N | 0..* | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod Binding: VerrichtingMethodeCodelijst (required) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
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 | nl core Procedure request) | 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 | O Σ | 1..1 | CodeableConcept | ProcedureType Binding: VerrichtingTypeCodelijsten (2020-09-01T00:00:00) (required): A code to identify a specific procedure . Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for performed[x] | Σ | 0..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedPeriod | Σ | 0..1 | Period | When the procedure was performed
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
performed[x]:performedDateTime | Σ | 0..1 | dateTime | ProcedureStartDate
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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
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 | PractitionerRole | Organization | Patient | RelatedPerson | Device | nl core HealthProfessional PractitionerRole) | Performer
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location | nl core HealthcareProvider) | Location
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 | nl core Problem) | Indication
bodySite | Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): 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.
Slices for report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(nl core TextResult) | TextResult
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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
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

#### 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 | required | VerrichtingTypeCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
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 | required | LocatieCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
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 | Procedure.meta, Procedure.implicitRules, Procedure.language, Procedure.text, Procedure.extension, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.identifier, Procedure.instantiatesCanonical, Procedure.instantiatesUri, Procedure.basedOn, Procedure.partOf, Procedure.status, Procedure.statusReason, Procedure.category, Procedure.code, Procedure.subject, Procedure.encounter, Procedure.performed[x], Procedure.performed[x]:performedPeriod, Procedure.performed[x]:performedPeriod.extension, Procedure.performed[x]:performedPeriod.start, Procedure.performed[x]:performedPeriod.end, Procedure.performed[x]:performedDateTime, Procedure.recorder, Procedure.asserter, Procedure.performer, Procedure.performer.extension, Procedure.performer.modifierExtension, Procedure.performer.function, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonCode, Procedure.reasonReference, Procedure.bodySite, Procedure.outcome, Procedure.report, Procedure.report:textResult, Procedure.complication, Procedure.complicationDetail, Procedure.followUp, Procedure.note, Procedure.focalDevice, Procedure.focalDevice.extension, Procedure.focalDevice.modifierExtension, Procedure.focalDevice.action, Procedure.focalDevice.manipulated, Procedure.usedReference, Procedure.usedCode | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Procedure.extension, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.performed[x]:performedPeriod.extension, Procedure.performer.extension, Procedure.performer.modifierExtension, Procedure.focalDevice.extension, Procedure.focalDevice.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreProcedureevent

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

- ACP Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc2)
- ACP Encounter (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Encounter|1.0.0-rc2)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | NlcoreProcedureevent | Procedure
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:procedureMethod | N | 0..* | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod Binding: VerrichtingMethodeCodelijst (required) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
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 | O Σ | 1..1 | CodeableConcept | ProcedureType Binding: VerrichtingTypeCodelijsten (2020-09-01T00:00:00) (required): A code to identify a specific procedure . Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for performed[x] | Σ | 0..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedPeriod | Σ | 0..1 | Period | When the procedure was performed
performed[x]:performedDateTime | Σ | 0..1 | dateTime | ProcedureStartDate
bodySite | Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
Slices for report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(nl core TextResult) | TextResult
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 | required | VerrichtingTypeCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
Procedure.bodySite | Base | required | LocatieCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12

#### 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 | Procedure.implicitRules, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.status, Procedure.code, Procedure.subject, Procedure.encounter, Procedure.performed[x], Procedure.performed[x]:performedPeriod, Procedure.performed[x]:performedDateTime, Procedure.bodySite, Procedure.report, Procedure.report:textResult | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Procedure.extension:procedureMethod, Procedure.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from NlcoreProcedureevent

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | NlcoreProcedureevent | Procedure
code | O | 1..1 | CodeableConcept | ProcedureType Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
subject | O | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | NlcoreProcedureevent | Procedure
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
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:procedureMethod | N | 0..* | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod Binding: VerrichtingMethodeCodelijst (required) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
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 | nl core Procedure request) | 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 | O Σ | 1..1 | CodeableConcept | ProcedureType Binding: VerrichtingTypeCodelijsten (2020-09-01T00:00:00) (required): A code to identify a specific procedure . Required Pattern: At least the following
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 713603004
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the procedure was performed on
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ | 0..1 | Reference(ACP Encounter(1.0.0-rc2)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for performed[x] | Σ | 0..1 |  | When the procedure was performed Slice: Unordered, Open by type:$this
performedDateTime |  |  | dateTime |
performedPeriod |  |  | Period |
performedString |  |  | string |
performedAge |  |  | Age |
performedRange |  |  | Range |
performed[x]:performedPeriod | Σ | 0..1 | Period | When the procedure was performed
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
performed[x]:performedDateTime | Σ | 0..1 | dateTime | ProcedureStartDate
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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
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 | PractitionerRole | Organization | Patient | RelatedPerson | Device | nl core HealthProfessional PractitionerRole) | Performer
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location | nl core HealthcareProvider) | Location
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 | nl core Problem) | Indication
bodySite | Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): 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.
Slices for report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(nl core TextResult) | TextResult
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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
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

#### 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 | required | VerrichtingTypeCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
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 | required | LocatieCodelijsten | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
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 | Procedure.meta, Procedure.implicitRules, Procedure.language, Procedure.text, Procedure.extension, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.identifier, Procedure.instantiatesCanonical, Procedure.instantiatesUri, Procedure.basedOn, Procedure.partOf, Procedure.status, Procedure.statusReason, Procedure.category, Procedure.code, Procedure.subject, Procedure.encounter, Procedure.performed[x], Procedure.performed[x]:performedPeriod, Procedure.performed[x]:performedPeriod.extension, Procedure.performed[x]:performedPeriod.start, Procedure.performed[x]:performedPeriod.end, Procedure.performed[x]:performedDateTime, Procedure.recorder, Procedure.asserter, Procedure.performer, Procedure.performer.extension, Procedure.performer.modifierExtension, Procedure.performer.function, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonCode, Procedure.reasonReference, Procedure.bodySite, Procedure.outcome, Procedure.report, Procedure.report:textResult, Procedure.complication, Procedure.complicationDetail, Procedure.followUp, Procedure.note, Procedure.focalDevice, Procedure.focalDevice.extension, Procedure.focalDevice.modifierExtension, Procedure.focalDevice.action, Procedure.focalDevice.manipulated, Procedure.usedReference, Procedure.usedCode | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Procedure.extension, Procedure.extension:procedureMethod, Procedure.modifierExtension, Procedure.performed[x]:performedPeriod.extension, Procedure.performer.extension, Procedure.performer.modifierExtension, Procedure.focalDevice.extension, Procedure.focalDevice.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreProcedureevent

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

- ACP Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc2)
- ACP Encounter (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Encounter|1.0.0-rc2)

Other representations of profile: CSV, Excel, Schematron