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 MedicalDevice

Official URL: https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-MedicalDevice | Version: 1.0.0-rc2
Draft as of 2026-03-03 | Computable Name: ACPMedicalDevice
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.

Any internally implanted and external devices and/or aids used by the patient (in the past) to reduce the effects of functional limitations in organ systems or to facilitate the treatment of a disease. In the context of ACP, this profile is used to declare the use of an implantable cardioverter defibrillator (ICD). Based on nl-core-MedicalDevice and HCIM MedicalDevice.

### 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. No changes have been made that affect implementation beyond the base nl-core profile.

Usages:

- Examples for this Profile: DeviceUseStatement/ACP-MedicalDevice-ICD-Pat1 and DeviceUseStatement/ACP-MedicalDevice-ICD-Pat2
- 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
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:healthProfessional | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional"
extension:location | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location"
extension:treatmentObjective |  | 0..* | (Complex) | Pertains to goal URL: http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal Constraints: ext-1
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal"
value[x] |  | 1..1 | Reference(Goal | nl core TreatmentObjective) | Value of extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
status | ?!Σ | 1..1 | code | active | completed | entered-in-error + Binding: DeviceUseStatementStatus (required): A coded concept indicating the current status of the Device Usage.
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for derivedFrom | Σ | 0..* | Reference(ServiceRequest | Procedure | Claim | Observation | QuestionnaireResponse | DocumentReference) | Supporting information Slice: Unordered, Open by profile:resolve()
derivedFrom:procedure-request | Σ | 0..* | Reference(nl core Procedure request) | Procedure
derivedFrom:procedure-event | Σ | 0..* | Reference(nl core Procedure event) | Procedure
Slices for timing[x] | Σ | 0..1 |  | How often the device was used Slice: Unordered, Closed by type:$this
timingTiming |  |  | Timing |
timingPeriod |  |  | Period |
timingDateTime |  |  | dateTime |
timing[x]:timingPeriod | Σ | 0..1 | Period | How often the device was used
start | O Σ C | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O Σ C | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
device | O Σ | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference | Media) | Why was DeviceUseStatement performed? Slice: Unordered, Open by profile:resolve()
reasonReference:indication | O Σ | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonReference:stoma | Σ | 0..* | Reference(nl core Stoma) | Stoma
bodySite | O Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for extension |  |  |  | Content/Rules for all slices
extension:laterality | O | 0..1 | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AnatomicalLocation.Laterality Binding: LateraliteitCodelijst (required) Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
note |  | 0..1 | Annotation | Addition details (comments, instructions)
text | O Σ | 1..1 | markdown | Comment
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DeviceUseStatement.status | Base | required | DeviceUseStatementStatus | 📍4.0.1 | FHIR Std.
DeviceUseStatement.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 | DeviceUseStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DeviceUseStatement | 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 | DeviceUseStatement | 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 | DeviceUseStatement | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DeviceUseStatement | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | DeviceUseStatement.implicitRules, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:location, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.extension:treatmentObjective.value[x], DeviceUseStatement.modifierExtension, DeviceUseStatement.status, DeviceUseStatement.subject, DeviceUseStatement.derivedFrom, DeviceUseStatement.derivedFrom:procedure-request, DeviceUseStatement.derivedFrom:procedure-event, DeviceUseStatement.timing[x], DeviceUseStatement.timing[x]:timingPeriod, DeviceUseStatement.timing[x]:timingPeriod.start, DeviceUseStatement.timing[x]:timingPeriod.end, DeviceUseStatement.device, DeviceUseStatement.reasonReference, DeviceUseStatement.reasonReference:indication, DeviceUseStatement.reasonReference:stoma, DeviceUseStatement.bodySite, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.note, DeviceUseStatement.note.text | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:location, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.modifierExtension, DeviceUseStatement.bodySite.extension:laterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreMedicalDevice

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
Slices for extension |  |  |  | Content/Rules for all slices
extension:healthProfessional | O | 0..1 | ExtMedicalDeviceHealthProfessional | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
extension:location | O | 0..1 | ExtMedicalDeviceLocation | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
subject | O | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for timing[x] |  |  |  | Content/Rules for all slices
timing[x]:timingPeriod |  | 0..1 | Period | How often the device was used
start | O | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
device | O | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for reasonReference |  |  |  | Content/Rules for all slices
reasonReference:indication | O | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
bodySite | O | 0..1 | NlcoreAnatomicalLocation | Location
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for extension |  |  |  | Content/Rules for all slices
extension:laterality | O | 0..1 | ExtAnatomicalLocationLaterality | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
note |  |  |  |
text | O | 1..1 | markdown | Comment
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
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
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:healthProfessional | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional Constraints: ext-1
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 Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional"
value[x] |  | 0..1 | Reference(nl core HealthProfessional PractitionerRole) | HealthProfessional
extension:location | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location Constraints: ext-1
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 Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location"
value[x] |  | 0..1 | Reference(nl core HealthcareProvider) | Location
extension:treatmentObjective |  | 0..* | (Complex) | Pertains to goal URL: http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal Constraints: ext-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal"
value[x] |  | 1..1 | Reference(Goal | nl core TreatmentObjective) | Value of extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
identifier | Σ | 0..* | Identifier | External identifier for this record
basedOn | Σ | 0..* | Reference(ServiceRequest) | Fulfills plan, proposal or order
status | ?!Σ | 1..1 | code | active | completed | entered-in-error + Binding: DeviceUseStatementStatus (required): A coded concept indicating the current status of the Device Usage.
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for derivedFrom | Σ | 0..* | Reference(ServiceRequest | Procedure | Claim | Observation | QuestionnaireResponse | DocumentReference) | Supporting information Slice: Unordered, Open by profile:resolve()
derivedFrom:procedure-request | Σ | 0..* | Reference(nl core Procedure request) | Procedure
derivedFrom:procedure-event | Σ | 0..* | Reference(nl core Procedure event) | Procedure
Slices for timing[x] | Σ | 0..1 |  | How often the device was used Slice: Unordered, Closed by type:$this
timingTiming |  |  | Timing |
timingPeriod |  |  | Period |
timingDateTime |  |  | dateTime |
timing[x]:timingPeriod | Σ | 0..1 | Period | How often the device was used
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 | O Σ C | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O Σ C | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
recordedOn | Σ | 0..1 | dateTime | When statement was recorded
source | Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) | Who made the statement
device | O Σ | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonCode | Σ | 0..* | CodeableConcept | Why device was used
Slices for reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference | Media) | Why was DeviceUseStatement performed? Slice: Unordered, Open by profile:resolve()
reasonReference:indication | O Σ | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonReference:stoma | Σ | 0..* | Reference(nl core Stoma) | Stoma
bodySite | O Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
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
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:laterality | O | 0..1 | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AnatomicalLocation.Laterality Binding: LateraliteitCodelijst (required) Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
note |  | 0..1 | Annotation | Addition details (comments, instructions)
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
author[x] | Σ | 0..1 |  | Individual responsible for the annotation
authorReference |  |  | Reference(Practitioner | Patient | RelatedPerson | Organization) |
authorString |  |  | string |
time | Σ | 0..1 | dateTime | When the annotation was made
text | O Σ | 1..1 | markdown | Comment
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DeviceUseStatement.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DeviceUseStatement.status | Base | required | DeviceUseStatementStatus | 📍4.0.1 | FHIR Std.
DeviceUseStatement.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 | DeviceUseStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DeviceUseStatement | 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 | DeviceUseStatement | 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 | DeviceUseStatement | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DeviceUseStatement | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | DeviceUseStatement.meta, DeviceUseStatement.implicitRules, DeviceUseStatement.language, DeviceUseStatement.text, DeviceUseStatement.extension, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:healthProfessional.extension, DeviceUseStatement.extension:healthProfessional.value[x], DeviceUseStatement.extension:location, DeviceUseStatement.extension:location.extension, DeviceUseStatement.extension:location.value[x], DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.extension:treatmentObjective.value[x], DeviceUseStatement.modifierExtension, DeviceUseStatement.identifier, DeviceUseStatement.basedOn, DeviceUseStatement.status, DeviceUseStatement.subject, DeviceUseStatement.derivedFrom, DeviceUseStatement.derivedFrom:procedure-request, DeviceUseStatement.derivedFrom:procedure-event, DeviceUseStatement.timing[x], DeviceUseStatement.timing[x]:timingPeriod, DeviceUseStatement.timing[x]:timingPeriod.extension, DeviceUseStatement.timing[x]:timingPeriod.start, DeviceUseStatement.timing[x]:timingPeriod.end, DeviceUseStatement.recordedOn, DeviceUseStatement.source, DeviceUseStatement.device, DeviceUseStatement.reasonCode, DeviceUseStatement.reasonReference, DeviceUseStatement.reasonReference:indication, DeviceUseStatement.reasonReference:stoma, DeviceUseStatement.bodySite, DeviceUseStatement.bodySite.extension, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.bodySite.coding, DeviceUseStatement.bodySite.text, DeviceUseStatement.note, DeviceUseStatement.note.extension, DeviceUseStatement.note.author[x], DeviceUseStatement.note.time, DeviceUseStatement.note.text | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | DeviceUseStatement.extension, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:healthProfessional.extension, DeviceUseStatement.extension:location, DeviceUseStatement.extension:location.extension, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.modifierExtension, DeviceUseStatement.timing[x]:timingPeriod.extension, DeviceUseStatement.bodySite.extension, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.note.extension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreMedicalDevice

Summary

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 MedicalDevice Product ICD (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-MedicalDevice.Product-ICD|1.0.0-rc2)
- nl core MedicalDevice.Product (http://nictiz.nl/fhir/StructureDefinition/nl-core-MedicalDevice.Product)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:healthProfessional | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional"
extension:location | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location"
extension:treatmentObjective |  | 0..* | (Complex) | Pertains to goal URL: http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal Constraints: ext-1
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal"
value[x] |  | 1..1 | Reference(Goal | nl core TreatmentObjective) | Value of extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
status | ?!Σ | 1..1 | code | active | completed | entered-in-error + Binding: DeviceUseStatementStatus (required): A coded concept indicating the current status of the Device Usage.
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for derivedFrom | Σ | 0..* | Reference(ServiceRequest | Procedure | Claim | Observation | QuestionnaireResponse | DocumentReference) | Supporting information Slice: Unordered, Open by profile:resolve()
derivedFrom:procedure-request | Σ | 0..* | Reference(nl core Procedure request) | Procedure
derivedFrom:procedure-event | Σ | 0..* | Reference(nl core Procedure event) | Procedure
Slices for timing[x] | Σ | 0..1 |  | How often the device was used Slice: Unordered, Closed by type:$this
timingTiming |  |  | Timing |
timingPeriod |  |  | Period |
timingDateTime |  |  | dateTime |
timing[x]:timingPeriod | Σ | 0..1 | Period | How often the device was used
start | O Σ C | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O Σ C | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
device | O Σ | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference | Media) | Why was DeviceUseStatement performed? Slice: Unordered, Open by profile:resolve()
reasonReference:indication | O Σ | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonReference:stoma | Σ | 0..* | Reference(nl core Stoma) | Stoma
bodySite | O Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for extension |  |  |  | Content/Rules for all slices
extension:laterality | O | 0..1 | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AnatomicalLocation.Laterality Binding: LateraliteitCodelijst (required) Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
note |  | 0..1 | Annotation | Addition details (comments, instructions)
text | O Σ | 1..1 | markdown | Comment
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DeviceUseStatement.status | Base | required | DeviceUseStatementStatus | 📍4.0.1 | FHIR Std.
DeviceUseStatement.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 | DeviceUseStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DeviceUseStatement | 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 | DeviceUseStatement | 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 | DeviceUseStatement | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DeviceUseStatement | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | DeviceUseStatement.implicitRules, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:location, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.extension:treatmentObjective.value[x], DeviceUseStatement.modifierExtension, DeviceUseStatement.status, DeviceUseStatement.subject, DeviceUseStatement.derivedFrom, DeviceUseStatement.derivedFrom:procedure-request, DeviceUseStatement.derivedFrom:procedure-event, DeviceUseStatement.timing[x], DeviceUseStatement.timing[x]:timingPeriod, DeviceUseStatement.timing[x]:timingPeriod.start, DeviceUseStatement.timing[x]:timingPeriod.end, DeviceUseStatement.device, DeviceUseStatement.reasonReference, DeviceUseStatement.reasonReference:indication, DeviceUseStatement.reasonReference:stoma, DeviceUseStatement.bodySite, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.note, DeviceUseStatement.note.text | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:location, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.modifierExtension, DeviceUseStatement.bodySite.extension:laterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from NlcoreMedicalDevice

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
Slices for extension |  |  |  | Content/Rules for all slices
extension:healthProfessional | O | 0..1 | ExtMedicalDeviceHealthProfessional | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
extension:location | O | 0..1 | ExtMedicalDeviceLocation | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
subject | O | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for timing[x] |  |  |  | Content/Rules for all slices
timing[x]:timingPeriod |  | 0..1 | Period | How often the device was used
start | O | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
device | O | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for reasonReference |  |  |  | Content/Rules for all slices
reasonReference:indication | O | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
bodySite | O | 0..1 | NlcoreAnatomicalLocation | Location
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for extension |  |  |  | Content/Rules for all slices
extension:laterality | O | 0..1 | ExtAnatomicalLocationLaterality | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
note |  |  |  |
text | O | 1..1 | markdown | Comment
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
--- | --- | --- | --- | ---
DeviceUseStatement |  | 0..* | NlcoreMedicalDevice | MedicalDevice
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:healthProfessional | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional Constraints: ext-1
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 Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.HealthProfessional"
value[x] |  | 0..1 | Reference(nl core HealthProfessional PractitionerRole) | HealthProfessional
extension:location | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location Constraints: ext-1
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 Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-MedicalDevice.Location"
value[x] |  | 0..1 | Reference(nl core HealthcareProvider) | Location
extension:treatmentObjective |  | 0..* | (Complex) | Pertains to goal URL: http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal Constraints: ext-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/resource-pertainsToGoal"
value[x] |  | 1..1 | Reference(Goal | nl core TreatmentObjective) | Value of extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
identifier | Σ | 0..* | Identifier | External identifier for this record
basedOn | Σ | 0..* | Reference(ServiceRequest) | Fulfills plan, proposal or order
status | ?!Σ | 1..1 | code | active | completed | entered-in-error + Binding: DeviceUseStatementStatus (required): A coded concept indicating the current status of the Device Usage.
subject | O Σ | 1..1 | Reference(ACP Patient(1.0.0-rc2)) | Patient using device
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for derivedFrom | Σ | 0..* | Reference(ServiceRequest | Procedure | Claim | Observation | QuestionnaireResponse | DocumentReference) | Supporting information Slice: Unordered, Open by profile:resolve()
derivedFrom:procedure-request | Σ | 0..* | Reference(nl core Procedure request) | Procedure
derivedFrom:procedure-event | Σ | 0..* | Reference(nl core Procedure event) | Procedure
Slices for timing[x] | Σ | 0..1 |  | How often the device was used Slice: Unordered, Closed by type:$this
timingTiming |  |  | Timing |
timingPeriod |  |  | Period |
timingDateTime |  |  | dateTime |
timing[x]:timingPeriod | Σ | 0..1 | Period | How often the device was used
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 | O Σ C | 0..1 | dateTime | StartDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
end | O Σ C | 0..1 | dateTime | EndDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
recordedOn | Σ | 0..1 | dateTime | When statement was recorded
source | Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) | Who made the statement
device | O Σ | 1..1 | Reference(ACP MedicalDevice Product ICD(1.0.0-rc2) | nl core MedicalDevice.Product) | Reference to device used
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonCode | Σ | 0..* | CodeableConcept | Why device was used
Slices for reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference | Media) | Why was DeviceUseStatement performed? Slice: Unordered, Open by profile:resolve()
reasonReference:indication | O Σ | 0..* | Reference(nl core Problem) | Indication
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
reasonReference:stoma | Σ | 0..* | Reference(nl core Stoma) | Stoma
bodySite | O Σ | 0..1 | NlcoreAnatomicalLocation | Location Binding: LocatieCodelijsten (2020-09-01T00:00:00) (required): Codes describing anatomical locations. May include laterality.
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
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:laterality | O | 0..1 | CodeableConcept | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AnatomicalLocation.Laterality Binding: LateraliteitCodelijst (required) Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
note |  | 0..1 | Annotation | Addition details (comments, instructions)
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
author[x] | Σ | 0..1 |  | Individual responsible for the annotation
authorReference |  |  | Reference(Practitioner | Patient | RelatedPerson | Organization) |
authorString |  |  | string |
time | Σ | 0..1 | dateTime | When the annotation was made
text | O Σ | 1..1 | markdown | Comment
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DeviceUseStatement.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DeviceUseStatement.status | Base | required | DeviceUseStatementStatus | 📍4.0.1 | FHIR Std.
DeviceUseStatement.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 | DeviceUseStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DeviceUseStatement | 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 | DeviceUseStatement | 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 | DeviceUseStatement | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DeviceUseStatement | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | DeviceUseStatement.meta, DeviceUseStatement.implicitRules, DeviceUseStatement.language, DeviceUseStatement.text, DeviceUseStatement.extension, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:healthProfessional.extension, DeviceUseStatement.extension:healthProfessional.value[x], DeviceUseStatement.extension:location, DeviceUseStatement.extension:location.extension, DeviceUseStatement.extension:location.value[x], DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.extension:treatmentObjective.value[x], DeviceUseStatement.modifierExtension, DeviceUseStatement.identifier, DeviceUseStatement.basedOn, DeviceUseStatement.status, DeviceUseStatement.subject, DeviceUseStatement.derivedFrom, DeviceUseStatement.derivedFrom:procedure-request, DeviceUseStatement.derivedFrom:procedure-event, DeviceUseStatement.timing[x], DeviceUseStatement.timing[x]:timingPeriod, DeviceUseStatement.timing[x]:timingPeriod.extension, DeviceUseStatement.timing[x]:timingPeriod.start, DeviceUseStatement.timing[x]:timingPeriod.end, DeviceUseStatement.recordedOn, DeviceUseStatement.source, DeviceUseStatement.device, DeviceUseStatement.reasonCode, DeviceUseStatement.reasonReference, DeviceUseStatement.reasonReference:indication, DeviceUseStatement.reasonReference:stoma, DeviceUseStatement.bodySite, DeviceUseStatement.bodySite.extension, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.bodySite.coding, DeviceUseStatement.bodySite.text, DeviceUseStatement.note, DeviceUseStatement.note.extension, DeviceUseStatement.note.author[x], DeviceUseStatement.note.time, DeviceUseStatement.note.text | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | DeviceUseStatement.extension, DeviceUseStatement.extension:healthProfessional, DeviceUseStatement.extension:healthProfessional.extension, DeviceUseStatement.extension:location, DeviceUseStatement.extension:location.extension, DeviceUseStatement.extension:treatmentObjective, DeviceUseStatement.modifierExtension, DeviceUseStatement.timing[x]:timingPeriod.extension, DeviceUseStatement.bodySite.extension, DeviceUseStatement.bodySite.extension:laterality, DeviceUseStatement.note.extension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from NlcoreMedicalDevice

Summary

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 MedicalDevice Product ICD (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-MedicalDevice.Product-ICD|1.0.0-rc2)
- nl core MedicalDevice.Product (http://nictiz.nl/fhir/StructureDefinition/nl-core-MedicalDevice.Product)

Other representations of profile: CSV, Excel, Schematron