RIVO-Noord Zorgviewer Implementation Guide
1.23.0 - CI build

RIVO-Noord Zorgviewer Implementation Guide, published by RIVO-NN HL7NL. This guide is not an authorized publication; it is the continuous build for version 1.23.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/RIVO-Noord/zorgviewer-ig/ and changes regularly. See the Directory of published versions

## Resource Profile: Procedure

Official URL: http://fhir.hl7.nl/zorgviewer/StructureDefinition/Procedure | Version: 1.23.0
Active as of 2026-03-30 | Computable Name: Procedure

Verrichtingen

> Dit Profiel is het resultaat van de vergelijking tussen de zib2017 FHIR Profiel en de implementaties in Epic, Chipsoft, Topicus en Nexus. De elementen die in ieder geval in alle output beschikbaar zullen zijn. Voornamelijk bedoeld voor houvast van een client en voor validatie van output.

### Zorginformatiebouwsteen

ZIB Verrichting

### View Definition

- ViewDefinition voor Verrichtingen

### UI Wireframe

Verrichtingen

>< | Bron | Datum | Verrichting | Locatie | Uitgevoerd door
--- | --- | --- | --- | --- | ---
+ | EPS |  | Epidural anesthesia |  |
| Verrichtingcode SNOMED CT#18946005 Epidural anesthesia
+ | EPS |  | Parturition |  |
| Verrichtingcode SNOMED CT#66348005 Childbirth
+ | Chipsoft | 5-6-2012 | implantatie van totale knieprothese | Drachten | Lisette van Cruijningen de Winter
| Verrichtingcode CBV#00090991 implantatie van totale knieprothese Lateraliteit Links
+ | Epic | 7-11-2021 | Gesloten repositie supra- of transcondylaire femur fractuur. | UMCG | MedMij Orthopedie, MD
| Verrichtingcode SNOMED CT#46866001 Gesloten repositie supra- of transcondylaire femur fractuur. Lateraliteit Rechts
+ | Nexus | 6-5-2012 | Prothese implantatie kniegewricht. |  | Boonstra VIPP NEXUS Ziekenhuis
| Verrichtingcode NZa#038663 Prothese implantatie kniegewricht.
+ | VG-Epic | 1-1-2001 | SELECTIEVE FASCIECTOMIE |  |

### Kolomdefinities

Kolom label | FHIR Path Expression | FHIR Type | Zib element | Toelichting of regels
Bron | `meta.extension('http://hl7.org/fhir/4.0/StructureDefinition/extension-Meta.source').valueUri` | `string` | nvt | Lookup adhv uri (AGB-Z of OID) `<adressering-base>/Organization?identifier=<.meta.tag.code>` en gebruik dan `Organization.name`
Datum | `performedPeriod.start` | `dateTime` | VerrichtingBeginDatum | ​Kunnen vage datums zijn.
Verrichting | `code.text | code.coding[0].display` | `string` | VerrichtingType |
Locatie | `location.display` | `string` | Locatie::Zorgaanbieder | Zie discussie hier: BITS ticket MM-5002
Uitgevoerd door | `performer.actor.display.join(' ')` | `string` | Uitvoerder | Meestal alleen specialisme
UITKLAPVELD
+Verrichtingcode | `code.coding[0].select(system.lookup('CodeSystems').display+'#' + code + ' ' + iif(exists(display),display,''))` | `string` | VerrichtingType | Meerdere codes mogelijk. Ignore NullFlavor.​ Lookup system label middels `<terminologie-base>/CodeSystem?url=<.system>` en gebruik dan `CodeSystem.title`
+Lateraliteit | `bodySite.extension('http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier').valueCodeableConcept.text` | `string` | ProbleemLateraliteit |

### Codesystemen

- DHD Verrichtingenthesaurus, CBV en Zorgactiviteiten
  - SNOMED CT - http://snomed.info/sct
  - DHD VT - urn:oid:2.16.840.1.113883.2.4.3.120.5.2
  - CBV - urn:oid:2.16.840.1.113883.2.4.3.120.5.3
  - NZa - urn:oid:2.16.840.1.113883.2.4.3.27.15.5
- NHG Ingrepenviewer tabel 49

### Request

1. Opvragen (search) verrichtingen

   `GET <ontsluiten-bronsysteem-base>/Procedure?patient=<fhir_patient_id>`

   N.B. Deze request is breder dan de BgZ request, waar alleen de chirugische verrichtingen worden opgevraagd.

### Bronsysteem herkennen

De Zorgviewer-backend of Ontsluiten bronsysteem MOET na bevragen van het bronsysteem aan elk resultaat resource een meta-tag toevoegen met de AGB, OID of URA identifier van de zorgaanbieder (zie Organization voor voorbeelden). Dit wordt vervolgens gebruikt in de "Bron" kolom in de Zorgviewer-frontend. N.B. We gebruiken hier een pre-adopt van de FHIR R4 Meta.source.

Toevoegen aan elke response, dus per resource (bij een read) of per Bundle (bij een search):

    "meta": {
        "extension": [ {
            "url": "http://hl7.org/fhir/4.0/StructureDefinition/extension-Meta.source",
            "valueUri": "urn:oid:2.16.840.1.113883.2.4.3.8"
        } ]
    }

Alternatief: Elke entry van een search response Bundle bevat een referentie naar de bijbehorende Patient (`<resource>.subject|patient`). Elke patient heeft een `Patient.managingOrganization` en in de gerefereerde `Organization.identifier` staat vervolgens o.a. de OID van het bronsysyeem. Of je gebruikt de identifiers om een volledige Organization op te zoeken in het adresboek en zie inhoud hier.

Usages:

- CapabilityStatements using this Profile: Ontsluiten Bronsysteem - Sanday and Ontsluiten Bronsysteem
- This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Changes since version 1.22.0:

- New Content

### 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 | C | 0..* | Zib Procedure | Procedure Constraints: pro-1
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..1 | (Complex) | The method used to perform the procedure URL: http://hl7.org/fhir/StructureDefinition/procedure-method
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/procedure-method"
Slices for valueCodeableConcept |  |  |  | Content/Rules for all slices
valueCodeableConcept:valueCodeableConcept |  | 0..1 | CodeableConcept | ProcedureMethod Binding: VerrichtingMethodeCodelijst (extensible): VerrichtingMethodeCodelijst
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for basedOn | Σ | 0..* | Reference(CarePlan | ProcedureRequest | ReferralRequest) | A request for this procedure Slice: Unordered, Open by type:$this.resolve()
basedOn:request | Σ | 0..* | Reference(HCIM ProcedureRequest) | ProcedureRequest
status | ?!Σ | 1..1 | code | preparation | in-progress | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
notDone | ?!Σ | 0..1 | boolean | True if procedure was not performed as scheduled
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example): A code that classifies a procedure for searching, sorting and display purposes. Example Example of category code: {"coding":[{"system":"http://snomed.info/sct","code":"387713003","display":"Surgical procedure"}]}
code | S Σ | 0..1 | CodeableConcept | ProcedureType Binding: Procedure Codes (SNOMED CT) (example): A code to identify a specific procedure .
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:system
coding:VerrichtingTypeCodelijst | S Σ | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
text | S Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 1..1 | Reference(Group | nl-core-patient) | Who the procedure was performed on
Slices for performed[x] | Σ | 0..1 | Period | Date/Period the procedure was performed Slice: Unordered, Closed by type:$this
performed[x]:performedPeriod | S Σ | 0..1 | Period | Date/Period the procedure was performed
performer | Σ | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
actor | Σ | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
Slices for extension |  |  |  | Content/Rules for all slices
extension:practitionerRole |  | 0..1 | Reference(nl-core-practitionerrole) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/practitionerrole-reference Constraints: ext-1
display | S Σ | 0..1 | string | Text alternative for the resource
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
display | S Σ | 0..1 | string | Text alternative for the resource
bodySite | Σ | 0..* | CodeableConcept | ProcedureAnatomicalLocation Binding: VerrichtingAnatomischeLocatieCodelijst (extensible): Anatomical location which is the focus of the procedure.
Slices for extension |  |  |  | Content/Rules for all slices
extension:ProcedureLaterality | S | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier Constraints: ext-1
extension |  | 0..0 |  | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier"
Slices for report |  | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(HCIM TextResult) | Any report resulting from the procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.extension:procedureMethod.​valueCodeableConcept:valueCodeableConcept | Base | extensible | VerrichtingMethodeCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.status | Base | required | EventStatus | 📦3.0.2 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code | Base | example | Procedure Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG
Procedure.bodySite | Base | extensible | VerrichtingAnatomischeLocatieCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-1 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain any narrative | `contained.text.empty()`
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 | `contained.where(('#'+id in %resource.descendants().reference).not()).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()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() | (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ext-1 | error | Procedure.performer.actor.extension:practitionerRole, Procedure.bodySite.extension:ProcedureLaterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
pro-1 | error | Procedure | Reason not done is only permitted if notDone indicator is true | `notDoneReason.empty() or notDone = true`

This structure is derived from Zib Procedure

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Zib Procedure | Procedure
code | S | 0..1 | CodeableConcept | ProcedureType
Slices for coding |  |  |  | Content/Rules for all slices
coding:VerrichtingTypeCodelijst | S | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
text | S | 0..1 | string | Plain text representation of the concept
performedPeriod | S | 0..1 | Period | Date/Period the procedure was performed
performer |  | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
actor |  | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
display | S | 0..1 | string | Text alternative for the resource
location |  | 0..1 | Reference(Location) | Where the procedure happened
display | S | 0..1 | string | Text alternative for the resource
bodySite |  | 0..* | CodeableConcept | ProcedureAnatomicalLocation
Slices for extension |  |  |  | Content/Rules for all slices
extension:ProcedureLaterality | S | 0..1 | BodySite Qualifier | Optional Extensions Element
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure | C | 0..* | Zib Procedure | Procedure Constraints: pro-1
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: Common Languages (extensible): A human language.
Additional Bindings | Purpose
All Languages | 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
extension:procedureMethod |  | 0..1 | (Complex) | The method used to perform the procedure URL: http://hl7.org/fhir/StructureDefinition/procedure-method
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/procedure-method"
Slices for valueCodeableConcept |  |  |  | Content/Rules for all slices
valueCodeableConcept:valueCodeableConcept |  | 0..1 | CodeableConcept | ProcedureMethod Binding: VerrichtingMethodeCodelijst (extensible): VerrichtingMethodeCodelijst
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure
definition | Σ | 0..* | Reference(PlanDefinition | ActivityDefinition | HealthcareService) | Instantiates protocol or definition
Slices for basedOn | Σ | 0..* | Reference(CarePlan | ProcedureRequest | ReferralRequest) | A request for this procedure Slice: Unordered, Open by type:$this.resolve()
basedOn:request | Σ | 0..* | Reference(HCIM ProcedureRequest) | ProcedureRequest
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event
status | ?!Σ | 1..1 | code | preparation | in-progress | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
notDone | ?!Σ | 0..1 | boolean | True if procedure was not performed as scheduled
notDoneReason | Σ C | 0..1 | CodeableConcept | Reason procedure was not performed Binding: Procedure Not Performed Reason (SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example): A code that classifies a procedure for searching, sorting and display purposes. Example Example of category code: {"coding":[{"system":"http://snomed.info/sct","code":"387713003","display":"Surgical procedure"}]}
code | S Σ | 0..1 | CodeableConcept | ProcedureType Binding: Procedure Codes (SNOMED CT) (example): A code to identify a specific procedure .
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:system
coding:VerrichtingTypeCodelijst | S Σ | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
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 | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | S Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 1..1 | Reference(Group | nl-core-patient) | Who the procedure was performed on
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter or episode associated with the procedure
Slices for performed[x] | Σ | 0..1 | Period | Date/Period the procedure was performed Slice: Unordered, Closed by type:$this
performed[x]:performedPeriod | S Σ | 0..1 | Period | Date/Period the procedure was performed
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
performer | Σ | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
role | Σ | 0..1 | CodeableConcept | The role the actor was in Binding: Procedure Performer Role Codes (example): A code that identifies the role of a performer of the procedure.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:$this
coding:healthProfessionalRole | Σ | 0..* | Coding | HealthProfessionalRole Binding: ZorgverlenerRolCodelijst (required)
text | Σ | 0..1 | string | Plain text representation of the concept
actor | Σ | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
extension:practitionerRole |  | 0..1 | Reference(nl-core-practitionerrole) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/practitionerrole-reference Constraints: ext-1
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | S Σ | 0..1 | string | Text alternative for the resource
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | S Σ | 0..1 | string | Text alternative for the resource
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: Procedure Reason Codes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(HCIM Problem) | Indication
bodySite | Σ | 0..* | CodeableConcept | ProcedureAnatomicalLocation Binding: VerrichtingAnatomischeLocatieCodelijst (extensible): Anatomical location which is the focus of the procedure.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
extension:ProcedureLaterality | S | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier Constraints: ext-1
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..0 |  | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier"
value[x] |  | 0..1 | CodeableConcept | BodySite qualifier Binding: VerrichtingLateraliteitCodelijst (extensible): ProcedureLateralityCodelist
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: Procedure Outcome Codes (SNOMED CT) (example): An outcome of a procedure - whether it was resolved or otherwise.
Slices for report |  | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(HCIM TextResult) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/Diagnosis Codes (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: Procedure Follow up Codes (SNOMED CT) (example): Specific follow up required for a procedure e.g. removal of sutures.
note |  | 0..* | Annotation | Additional information about the procedure
focalDevice |  | 0..* | BackboneElement | Device changed in procedure
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: Procedure Device Action Codes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(HCIM MedicalDevice Product) | MedicalDevice
usedReference |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIR Device Types (example): Codes describing items used during a procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.language | Base | extensible | Common Languages | 📦3.0.2 | FHIR Std.
Procedure.extension:procedureMethod.​valueCodeableConcept:valueCodeableConcept | Base | extensible | VerrichtingMethodeCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.status | Base | required | EventStatus | 📦3.0.2 | FHIR Std.
Procedure.notDoneReason | Base | example | Procedure Not Performed Reason (SNOMED-CT) | 📦3.0.2 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code | Base | example | Procedure Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG
Procedure.performer.​role | Base | example | Procedure Performer Role Codes | 📦3.0.2 | FHIR Std.
Procedure.performer.​role.coding:healthProfessionalRole | Base | required | ZorgverlenerRolCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.reasonCode | Base | example | Procedure Reason Codes | 📦3.0.2 | FHIR Std.
Procedure.bodySite | Base | extensible | VerrichtingAnatomischeLocatieCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.bodySite.extension:ProcedureLaterality.​value[x] | Base | extensible | VerrichtingLateraliteitCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.outcome | Base | example | Procedure Outcome Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.complication | Base | example | Condition/Problem/Diagnosis Codes | 📦3.0.2 | FHIR Std.
Procedure.followUp | Base | example | Procedure Follow up Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.focalDevice.​action | Base | preferred | Procedure Device Action Codes | 📦3.0.2 | FHIR Std.
Procedure.usedCode | Base | example | FHIR Device Types | 📦3.0.2 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-1 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain any narrative | `contained.text.empty()`
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 | `contained.where(('#'+id in %resource.descendants().reference).not()).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()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() | (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ext-1 | error | Procedure.performer.actor.extension:practitionerRole, Procedure.bodySite.extension:ProcedureLaterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
pro-1 | error | Procedure | Reason not done is only permitted if notDone indicator is true | `notDoneReason.empty() or notDone = true`

This structure is derived from Zib Procedure

Summary

Must-Support: 7 elements

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure | C | 0..* | Zib Procedure | Procedure Constraints: pro-1
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..1 | (Complex) | The method used to perform the procedure URL: http://hl7.org/fhir/StructureDefinition/procedure-method
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/procedure-method"
Slices for valueCodeableConcept |  |  |  | Content/Rules for all slices
valueCodeableConcept:valueCodeableConcept |  | 0..1 | CodeableConcept | ProcedureMethod Binding: VerrichtingMethodeCodelijst (extensible): VerrichtingMethodeCodelijst
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for basedOn | Σ | 0..* | Reference(CarePlan | ProcedureRequest | ReferralRequest) | A request for this procedure Slice: Unordered, Open by type:$this.resolve()
basedOn:request | Σ | 0..* | Reference(HCIM ProcedureRequest) | ProcedureRequest
status | ?!Σ | 1..1 | code | preparation | in-progress | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
notDone | ?!Σ | 0..1 | boolean | True if procedure was not performed as scheduled
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example): A code that classifies a procedure for searching, sorting and display purposes. Example Example of category code: {"coding":[{"system":"http://snomed.info/sct","code":"387713003","display":"Surgical procedure"}]}
code | S Σ | 0..1 | CodeableConcept | ProcedureType Binding: Procedure Codes (SNOMED CT) (example): A code to identify a specific procedure .
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:system
coding:VerrichtingTypeCodelijst | S Σ | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
text | S Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 1..1 | Reference(Group | nl-core-patient) | Who the procedure was performed on
Slices for performed[x] | Σ | 0..1 | Period | Date/Period the procedure was performed Slice: Unordered, Closed by type:$this
performed[x]:performedPeriod | S Σ | 0..1 | Period | Date/Period the procedure was performed
performer | Σ | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
actor | Σ | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
Slices for extension |  |  |  | Content/Rules for all slices
extension:practitionerRole |  | 0..1 | Reference(nl-core-practitionerrole) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/practitionerrole-reference Constraints: ext-1
display | S Σ | 0..1 | string | Text alternative for the resource
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
display | S Σ | 0..1 | string | Text alternative for the resource
bodySite | Σ | 0..* | CodeableConcept | ProcedureAnatomicalLocation Binding: VerrichtingAnatomischeLocatieCodelijst (extensible): Anatomical location which is the focus of the procedure.
Slices for extension |  |  |  | Content/Rules for all slices
extension:ProcedureLaterality | S | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier Constraints: ext-1
extension |  | 0..0 |  | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier"
Slices for report |  | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(HCIM TextResult) | Any report resulting from the procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.extension:procedureMethod.​valueCodeableConcept:valueCodeableConcept | Base | extensible | VerrichtingMethodeCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.status | Base | required | EventStatus | 📦3.0.2 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code | Base | example | Procedure Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG
Procedure.bodySite | Base | extensible | VerrichtingAnatomischeLocatieCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-1 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain any narrative | `contained.text.empty()`
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 | `contained.where(('#'+id in %resource.descendants().reference).not()).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()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() | (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ext-1 | error | Procedure.performer.actor.extension:practitionerRole, Procedure.bodySite.extension:ProcedureLaterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
pro-1 | error | Procedure | Reason not done is only permitted if notDone indicator is true | `notDoneReason.empty() or notDone = true`

Differential View

This structure is derived from Zib Procedure

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure |  | 0..* | Zib Procedure | Procedure
code | S | 0..1 | CodeableConcept | ProcedureType
Slices for coding |  |  |  | Content/Rules for all slices
coding:VerrichtingTypeCodelijst | S | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
text | S | 0..1 | string | Plain text representation of the concept
performedPeriod | S | 0..1 | Period | Date/Period the procedure was performed
performer |  | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
actor |  | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
display | S | 0..1 | string | Text alternative for the resource
location |  | 0..1 | Reference(Location) | Where the procedure happened
display | S | 0..1 | string | Text alternative for the resource
bodySite |  | 0..* | CodeableConcept | ProcedureAnatomicalLocation
Slices for extension |  |  |  | Content/Rules for all slices
extension:ProcedureLaterality | S | 0..1 | BodySite Qualifier | Optional Extensions Element
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Procedure | C | 0..* | Zib Procedure | Procedure Constraints: pro-1
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: Common Languages (extensible): A human language.
Additional Bindings | Purpose
All Languages | 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
extension:procedureMethod |  | 0..1 | (Complex) | The method used to perform the procedure URL: http://hl7.org/fhir/StructureDefinition/procedure-method
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/procedure-method"
Slices for valueCodeableConcept |  |  |  | Content/Rules for all slices
valueCodeableConcept:valueCodeableConcept |  | 0..1 | CodeableConcept | ProcedureMethod Binding: VerrichtingMethodeCodelijst (extensible): VerrichtingMethodeCodelijst
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure
definition | Σ | 0..* | Reference(PlanDefinition | ActivityDefinition | HealthcareService) | Instantiates protocol or definition
Slices for basedOn | Σ | 0..* | Reference(CarePlan | ProcedureRequest | ReferralRequest) | A request for this procedure Slice: Unordered, Open by type:$this.resolve()
basedOn:request | Σ | 0..* | Reference(HCIM ProcedureRequest) | ProcedureRequest
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event
status | ?!Σ | 1..1 | code | preparation | in-progress | suspended | aborted | completed | entered-in-error | unknown Binding: EventStatus (required): A code specifying the state of the procedure.
notDone | ?!Σ | 0..1 | boolean | True if procedure was not performed as scheduled
notDoneReason | Σ C | 0..1 | CodeableConcept | Reason procedure was not performed Binding: Procedure Not Performed Reason (SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 1..1 | CodeableConcept | Classification of the procedure Binding: Procedure Category Codes (SNOMED CT) (example): A code that classifies a procedure for searching, sorting and display purposes. Example Example of category code: {"coding":[{"system":"http://snomed.info/sct","code":"387713003","display":"Surgical procedure"}]}
code | S Σ | 0..1 | CodeableConcept | ProcedureType Binding: Procedure Codes (SNOMED CT) (example): A code to identify a specific procedure .
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:system
coding:VerrichtingTypeCodelijst | S Σ | 0..* | Coding | ProcedureType Binding: Zorgviewer verrichting type waardelijst (required)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
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 | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | S Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 1..1 | Reference(Group | nl-core-patient) | Who the procedure was performed on
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter or episode associated with the procedure
Slices for performed[x] | Σ | 0..1 | Period | Date/Period the procedure was performed Slice: Unordered, Closed by type:$this
performed[x]:performedPeriod | S Σ | 0..1 | Period | Date/Period the procedure was performed
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
start | Σ C | 0..1 | dateTime | ProcedureStartDate
end | Σ C | 0..1 | dateTime | ProcedureEndDate
performer | Σ | 0..* | BackboneElement | HealthProfessional | Location::HealthcareProvider
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
role | Σ | 0..1 | CodeableConcept | The role the actor was in Binding: Procedure Performer Role Codes (example): A code that identifies the role of a performer of the procedure.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:$this
coding:healthProfessionalRole | Σ | 0..* | Coding | HealthProfessionalRole Binding: ZorgverlenerRolCodelijst (required)
text | Σ | 0..1 | string | Plain text representation of the concept
actor | Σ | 1..1 | Reference(nl-core-practitioner | nl-core-organization) | The reference to the practitioner
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
extension:practitionerRole |  | 0..1 | Reference(nl-core-practitionerrole) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/practitionerrole-reference Constraints: ext-1
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | S Σ | 0..1 | string | Text alternative for the resource
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | S Σ | 0..1 | string | Text alternative for the resource
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: Procedure Reason Codes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(HCIM Problem) | Indication
bodySite | Σ | 0..* | CodeableConcept | ProcedureAnatomicalLocation Binding: VerrichtingAnatomischeLocatieCodelijst (extensible): Anatomical location which is the focus of the procedure.
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url
extension:ProcedureLaterality | S | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier Constraints: ext-1
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..0 |  | Additional Content defined by implementations Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/BodySite-Qualifier"
value[x] |  | 0..1 | CodeableConcept | BodySite qualifier Binding: VerrichtingLateraliteitCodelijst (extensible): ProcedureLateralityCodelist
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: Procedure Outcome Codes (SNOMED CT) (example): An outcome of a procedure - whether it was resolved or otherwise.
Slices for report |  | 0..* | Reference(DiagnosticReport) | Any report resulting from the procedure Slice: Unordered, Open by profile:resolve()
report:textResult |  | 0..* | Reference(HCIM TextResult) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/Diagnosis Codes (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: Procedure Follow up Codes (SNOMED CT) (example): Specific follow up required for a procedure e.g. removal of sutures.
note |  | 0..* | Annotation | Additional information about the procedure
focalDevice |  | 0..* | BackboneElement | Device changed in procedure
id |  | 0..1 | string | xml:id (or equivalent in JSON)
extension |  | 0..* | Extension | Additional Content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: Procedure Device Action Codes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(HCIM MedicalDevice Product) | MedicalDevice
usedReference |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIR Device Types (example): Codes describing items used during a procedure
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Procedure.language | Base | extensible | Common Languages | 📦3.0.2 | FHIR Std.
Procedure.extension:procedureMethod.​valueCodeableConcept:valueCodeableConcept | Base | extensible | VerrichtingMethodeCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.status | Base | required | EventStatus | 📦3.0.2 | FHIR Std.
Procedure.notDoneReason | Base | example | Procedure Not Performed Reason (SNOMED-CT) | 📦3.0.2 | FHIR Std.
Procedure.category | Base | example | Procedure Category Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code | Base | example | Procedure Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.code.coding:VerrichtingTypeCodelijst | Base | required | Zorgviewer verrichting type waardelijst | 📦1.23.0 | This IG
Procedure.performer.​role | Base | example | Procedure Performer Role Codes | 📦3.0.2 | FHIR Std.
Procedure.performer.​role.coding:healthProfessionalRole | Base | required | ZorgverlenerRolCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.reasonCode | Base | example | Procedure Reason Codes | 📦3.0.2 | FHIR Std.
Procedure.bodySite | Base | extensible | VerrichtingAnatomischeLocatieCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.bodySite.extension:ProcedureLaterality.​value[x] | Base | extensible | VerrichtingLateraliteitCodelijst | 📦2017-12-31T00:00:00 | Nictiz FHIR NL STU3 Zib2017 v2.3
Procedure.outcome | Base | example | Procedure Outcome Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.complication | Base | example | Condition/Problem/Diagnosis Codes | 📦3.0.2 | FHIR Std.
Procedure.followUp | Base | example | Procedure Follow up Codes (SNOMED CT) | 📦3.0.2 | FHIR Std.
Procedure.focalDevice.​action | Base | preferred | Procedure Device Action Codes | 📦3.0.2 | FHIR Std.
Procedure.usedCode | Base | example | FHIR Device Types | 📦3.0.2 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-1 | error | Procedure | If the resource is contained in another resource, it SHALL NOT contain any narrative | `contained.text.empty()`
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 | `contained.where(('#'+id in %resource.descendants().reference).not()).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()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() | (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ext-1 | error | Procedure.performer.actor.extension:practitionerRole, Procedure.bodySite.extension:ProcedureLaterality | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
pro-1 | error | Procedure | Reason not done is only permitted if notDone indicator is true | `notDoneReason.empty() or notDone = true`

This structure is derived from Zib Procedure

Summary

Must-Support: 7 elements

Other representations of profile: CSV, Excel, Schematron