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

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

## Resource Profile: Advance Care Planning Procedure

Official URL: https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Procedure | Version: 1.0.0-rc1
Draft as of 2025-10-30 | 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.

Usages:

- Examples for this Profile: Procedure/F1-ACP-Procedure-01-10-2020, Procedure/P2-ACP-Procedure-07-08-2025 and Procedure/P2-ACP-Procedure-28-07-2024

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 |  | 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 Slice: Unordered, Open by value:url 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 Σ C | 1..1 | Reference(Patient(1.0.0-rc1)) | Who the procedure was performed on Constraints: ref-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ C | 0..1 | Reference(Encounter(1.0.0-rc1)) | Encounter created as part of Constraints: ref-1
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
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
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 | C | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve() Constraints: ref-1
report:textResult | C | 0..* | Reference(nl core TextResult) | TextResult Constraints: ref-1
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` From the FHIR Standard
Procedure.code | required | Pattern Value: SNOMED-CT Code 713603004 `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.19--20200901000000|2020-09-01T00:00:00`
Procedure.bodySite | required | LocatieCodelijsten `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000|2020-09-01T00:00:00`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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]:performedPeriod.start, Procedure.performed[x]:performedPeriod.end, 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() |
ref-1 | error | Procedure.subject, Procedure.encounter, Procedure.report, Procedure.report:textResult | SHALL have a contained resource if a local reference is provided : reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) |

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(Patient(1.0.0-rc1)) | 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(Encounter(1.0.0-rc1)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
performer |  |  |  |
actor |  | 1..1 | Reference(HealthProfessional PractitionerRole(1.0.0-rc1) | ContactPerson(1.0.0-rc1) | Patient(1.0.0-rc1)) | Performer
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 |  | 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 Slice: Unordered, Open by value:url 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 | Σ C | 0..* | Reference(CarePlan | ServiceRequest | nl core Procedure request) | A request for this procedure Constraints: ref-1
partOf | Σ C | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event Constraints: ref-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.
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 Σ C | 1..1 | Reference(Patient(1.0.0-rc1)) | Who the procedure was performed on Constraints: ref-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ C | 0..1 | Reference(Encounter(1.0.0-rc1)) | Encounter created as part of Constraints: ref-1
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 | Σ C | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure Constraints: ref-1
asserter | Σ C | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure Constraints: ref-1
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 Slice: Unordered, Open by value:url 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 | Σ C | 1..1 | Reference(HealthProfessional PractitionerRole(1.0.0-rc1) | ContactPerson(1.0.0-rc1) | Patient(1.0.0-rc1)) | Performer Constraints: ref-1
onBehalfOf | C | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for Constraints: ref-1
location | Σ C | 0..1 | Reference(Location | nl core HealthcareProvider) | Location Constraints: ref-1
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ C | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference | nl core Problem) | Indication Constraints: ref-1
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 | C | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve() Constraints: ref-1
report:textResult | C | 0..* | Reference(nl core TextResult) | TextResult Constraints: ref-1
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail | C | 0..* | Reference(Condition) | A condition that is a result of the procedure Constraints: ref-1
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 Slice: Unordered, Open by value:url 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 | C | 1..1 | Reference(Device) | Device that was changed Constraints: ref-1
usedReference | C | 0..* | Reference(Device | Medication | Substance) | Items used during procedure Constraints: ref-1
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 | Conformance | ValueSet / Code | URI
Procedure.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages|4.0.1` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` From the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason|4.0.1` From the FHIR Standard
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-category|4.0.1` From the FHIR Standard
Procedure.code | required | Pattern Value: SNOMED-CT Code 713603004 `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.19--20200901000000|2020-09-01T00:00:00`
Procedure.performer.function | example | ProcedurePerformerRoleCodes `http://hl7.org/fhir/ValueSet/performer-role|4.0.1` From the FHIR Standard
Procedure.reasonCode | example | ProcedureReasonCodes `http://hl7.org/fhir/ValueSet/procedure-reason|4.0.1` From the FHIR Standard
Procedure.bodySite | required | LocatieCodelijsten `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000|2020-09-01T00:00:00`
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-outcome|4.0.1` From the FHIR Standard
Procedure.complication | example | Condition/Problem/DiagnosisCodes `http://hl7.org/fhir/ValueSet/condition-code|4.0.1` From the FHIR Standard
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-followup|4.0.1` From the FHIR Standard
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes `http://hl7.org/fhir/ValueSet/device-action|4.0.1` From the FHIR Standard
Procedure.usedCode | example | FHIRDeviceTypes `http://hl7.org/fhir/ValueSet/device-kind|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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() |
ref-1 | error | Procedure.basedOn, Procedure.partOf, Procedure.subject, Procedure.encounter, Procedure.recorder, Procedure.asserter, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonReference, Procedure.report, Procedure.report:textResult, Procedure.complicationDetail, Procedure.focalDevice.manipulated, Procedure.usedReference | SHALL have a contained resource if a local reference is provided : reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) |

This structure is derived from NlcoreProcedureevent

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

- Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc1)
- Encounter (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Encounter|1.0.0-rc1)
- HealthProfessional PractitionerRole (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-HealthProfessional-PractitionerRole|1.0.0-rc1)
- ContactPerson (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-ContactPerson|1.0.0-rc1)

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 |  | 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 Slice: Unordered, Open by value:url 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 Σ C | 1..1 | Reference(Patient(1.0.0-rc1)) | Who the procedure was performed on Constraints: ref-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ C | 0..1 | Reference(Encounter(1.0.0-rc1)) | Encounter created as part of Constraints: ref-1
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
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
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 | C | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve() Constraints: ref-1
report:textResult | C | 0..* | Reference(nl core TextResult) | TextResult Constraints: ref-1
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` From the FHIR Standard
Procedure.code | required | Pattern Value: SNOMED-CT Code 713603004 `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.19--20200901000000|2020-09-01T00:00:00`
Procedure.bodySite | required | LocatieCodelijsten `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000|2020-09-01T00:00:00`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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]:performedPeriod.start, Procedure.performed[x]:performedPeriod.end, 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() |
ref-1 | error | Procedure.subject, Procedure.encounter, Procedure.report, Procedure.report:textResult | SHALL have a contained resource if a local reference is provided : reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) |

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(Patient(1.0.0-rc1)) | 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(Encounter(1.0.0-rc1)) | Encounter created as part of
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
performer |  |  |  |
actor |  | 1..1 | Reference(HealthProfessional PractitionerRole(1.0.0-rc1) | ContactPerson(1.0.0-rc1) | Patient(1.0.0-rc1)) | Performer
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 |  | 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 Slice: Unordered, Open by value:url 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 | Σ C | 0..* | Reference(CarePlan | ServiceRequest | nl core Procedure request) | A request for this procedure Constraints: ref-1
partOf | Σ C | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event Constraints: ref-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.
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 Σ C | 1..1 | Reference(Patient(1.0.0-rc1)) | Who the procedure was performed on Constraints: ref-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
encounter | O Σ C | 0..1 | Reference(Encounter(1.0.0-rc1)) | Encounter created as part of Constraints: ref-1
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 | Σ C | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure Constraints: ref-1
asserter | Σ C | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure Constraints: ref-1
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 Slice: Unordered, Open by value:url 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 | Σ C | 1..1 | Reference(HealthProfessional PractitionerRole(1.0.0-rc1) | ContactPerson(1.0.0-rc1) | Patient(1.0.0-rc1)) | Performer Constraints: ref-1
onBehalfOf | C | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for Constraints: ref-1
location | Σ C | 0..1 | Reference(Location | nl core HealthcareProvider) | Location Constraints: ref-1
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ C | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference | nl core Problem) | Indication Constraints: ref-1
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 | C | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve() Constraints: ref-1
report:textResult | C | 0..* | Reference(nl core TextResult) | TextResult Constraints: ref-1
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail | C | 0..* | Reference(Condition) | A condition that is a result of the procedure Constraints: ref-1
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 Slice: Unordered, Open by value:url 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 | C | 1..1 | Reference(Device) | Device that was changed Constraints: ref-1
usedReference | C | 0..* | Reference(Device | Medication | Substance) | Items used during procedure Constraints: ref-1
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 | Conformance | ValueSet / Code | URI
Procedure.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages|4.0.1` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` From the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason|4.0.1` From the FHIR Standard
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-category|4.0.1` From the FHIR Standard
Procedure.code | required | Pattern Value: SNOMED-CT Code 713603004 `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.19--20200901000000|2020-09-01T00:00:00`
Procedure.performer.function | example | ProcedurePerformerRoleCodes `http://hl7.org/fhir/ValueSet/performer-role|4.0.1` From the FHIR Standard
Procedure.reasonCode | example | ProcedureReasonCodes `http://hl7.org/fhir/ValueSet/procedure-reason|4.0.1` From the FHIR Standard
Procedure.bodySite | required | LocatieCodelijsten `http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000|2020-09-01T00:00:00`
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-outcome|4.0.1` From the FHIR Standard
Procedure.complication | example | Condition/Problem/DiagnosisCodes `http://hl7.org/fhir/ValueSet/condition-code|4.0.1` From the FHIR Standard
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-followup|4.0.1` From the FHIR Standard
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes `http://hl7.org/fhir/ValueSet/device-action|4.0.1` From the FHIR Standard
Procedure.usedCode | example | FHIRDeviceTypes `http://hl7.org/fhir/ValueSet/device-kind|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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() |
ref-1 | error | Procedure.basedOn, Procedure.partOf, Procedure.subject, Procedure.encounter, Procedure.recorder, Procedure.asserter, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonReference, Procedure.report, Procedure.report:textResult, Procedure.complicationDetail, Procedure.focalDevice.manipulated, Procedure.usedReference | SHALL have a contained resource if a local reference is provided : reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) |

This structure is derived from NlcoreProcedureevent

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

- Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc1)
- Encounter (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Encounter|1.0.0-rc1)
- HealthProfessional PractitionerRole (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-HealthProfessional-PractitionerRole|1.0.0-rc1)
- ContactPerson (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-ContactPerson|1.0.0-rc1)

Other representations of profile: CSV, Excel, Schematron