DIPS Core Implementation Guide
0.1.0 - ci-build Norway

DIPS Core Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: DIPS R4 Procedure

Official URL: http://dips.no/fhir/R4/StructureDefinition/DIPSR4Procedure Version: 0.1.0
Draft as of 2026-09-29 Computable Name: DIPSR4Procedure

Procedure registered on a patient in DIPS Arena. Resource ids carry the agv prefix.

The DIPS R4 Procedure Profile inherits from the FHIR Procedure resource; refer to it for scope and usage definitions

The profile covers procedures registered on a patient in DIPS Arena. A procedure's resource id carries the agv prefix.

Supported interactions:

Interaction Supported
Read Yes
Search Yes
Create Yes
Delete Yes
Update No
VRead No
History No
Patch No

Delete is also supported conditionally (conditionalDelete = single), which lets a client delete a procedure by search criteria rather than by resource id.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

Query by procedure id, patient, encounter, performing practitioner, procedure code or performed date

Register a procedure on a patient

Delete a procedure, either by its resource id or by search criteria

Usages:

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.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... text 0..1 Narrative Generated by the service on read; not required on create
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier Σ 0..1 Identifier External Identifiers for this procedure
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value Σ 1..1 string The value that is unique
Example General: 123456
.... identifier:External_Identifier Σ 0..* Identifier External Identifiers for this procedure
..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... category Σ 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
... code Σ 1..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
.... Slices for coding Σ 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP Σ 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7220
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NCSP Σ 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7210
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NCRP Σ 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7270
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NorwegianSpecific Σ 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7020
...... code Σ 1..1 code Symbol in syntax defined by the system
... subject Σ 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter Σ 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... identifier Σ 1..1 Identifier Logical reference, when literal reference is not known
... performed[x] Σ 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... performer Σ 0..1 BackboneElement The people who performed the procedure
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... identifier Σ 1..1 Identifier Logical reference, when literal reference is not known
... reasonReference Σ 0..* Reference(Condition) The justification that the procedure was performed

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... text 0..1 Narrative Generated by the service on read; not required on create
... contained 0..0 Contained, inline Resources
... Slices for identifier 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier 0..1 Identifier External Identifiers for this procedure
..... id 0..0 Unique id for inter-element referencing
..... use 0..0 usual | official | temp | secondary | old (If known)
..... type 0..0 Description of identifier
..... system 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value 1..1 string The value that is unique
..... period 0..0 Time period when id is/was valid for use
..... assigner 0..0 Organization that issued id (may be just text)
.... identifier:External_Identifier 0..* Identifier External Identifiers for this procedure
..... id 0..0 Unique id for inter-element referencing
..... use 0..0 usual | official | temp | secondary | old (If known)
..... type 0..0 Description of identifier
..... system 1..1 uri The namespace for the identifier value
..... value 1..1 string The value that is unique
..... period 0..0 Time period when id is/was valid for use
..... assigner 0..0 Organization that issued id (may be just text)
... instantiatesCanonical 0..0 Instantiates FHIR protocol or definition
... instantiatesUri 0..0 Instantiates external protocol or definition
... basedOn 0..0 A request for this procedure
... partOf 0..0 Part of referenced event
... status 1..1 code Supported codes by the application are 'preparation', 'in-progress','completed','unknown' , Here code will be set to the model depend on the Performed property Estimation
... statusReason 0..0 Reason for current status
... category 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
.... coding 1..1 Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
... code 1..1 CodeableConcept Identification of the procedure
.... id 0..0 Unique id for inter-element referencing
.... Slices for coding 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7220
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NCSP 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7210
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NCRP 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7270
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NorwegianSpecific 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7020
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
... subject 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... id 0..0 Unique id for inter-element referencing
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 1..1 Identifier Logical reference, when literal reference is not known
... performed[x] 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... recorder 0..0 Who recorded the procedure
... asserter 0..0 Person who asserts this procedure
... performer 0..1 BackboneElement The people who performed the procedure
.... id 0..0 Unique id for inter-element referencing
.... function 0..0 Type of performance
.... actor 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... id 0..0 Unique id for inter-element referencing
..... type 0..0 Type the reference refers to (e.g. "Patient")
..... identifier 1..1 Identifier Logical reference, when literal reference is not known
.... onBehalfOf 0..0 Organization the device or practitioner was acting for
... location 0..0 Where the procedure happened
... reasonCode 0..0 Coded reason procedure performed
... reasonReference 0..* Reference(Condition) The justification that the procedure was performed
... bodySite 0..0 Target body sites
... outcome 0..0 The result of procedure
... report 0..0 Any report resulting from the procedure
... complication 0..0 Complication following the procedure
... complicationDetail 0..0 A condition that is a result of the procedure
... followUp 0..0 Instructions for follow up
... note 0..0 Additional information about the procedure
... focalDevice 0..0 Manipulated, implanted, or removed device
... usedReference 0..0 Items used during procedure
... usedCode 0..0 Coded items used during the procedure

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... text 0..1 Narrative Generated by the service on read; not required on create
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier Σ 0..1 Identifier External Identifiers for this procedure
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value Σ 1..1 string The value that is unique
Example General: 123456
.... identifier:External_Identifier Σ 0..* Identifier External Identifiers for this procedure
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code Supported codes by the application are 'preparation', 'in-progress','completed','unknown' , Here code will be set to the model depend on the Performed property Estimation
Binding: EventStatus (required): A code specifying the state of the procedure.
... category Σ 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..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 Σ 0..1 string Plain text representation of the concept
... code Σ 1..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP Σ 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7220
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NCSP Σ 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7210
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NCRP Σ 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7270
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NorwegianSpecific Σ 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7020
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter Σ 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... 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 Σ 1..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... performed[x] Σ 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... performer Σ 0..1 BackboneElement The people who performed the procedure
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... 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 Σ 1..1 Identifier Logical reference, when literal reference is not known
..... display Σ 0..1 string Text alternative for the resource
... reasonReference Σ 0..* Reference(Condition) The justification that the procedure was performed

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

Summary

Mandatory: 4 elements(16 nested mandatory elements)
Fixed: 5 elements
Prohibited: 52 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Procedure.identifier
  • The element 1 is sliced based on the value of Procedure.code.coding

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... text 0..1 Narrative Generated by the service on read; not required on create
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier Σ 0..1 Identifier External Identifiers for this procedure
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value Σ 1..1 string The value that is unique
Example General: 123456
.... identifier:External_Identifier Σ 0..* Identifier External Identifiers for this procedure
..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... category Σ 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
... code Σ 1..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
.... Slices for coding Σ 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP Σ 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7220
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NCSP Σ 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7210
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NCRP Σ 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7270
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:NorwegianSpecific Σ 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7020
...... code Σ 1..1 code Symbol in syntax defined by the system
... subject Σ 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter Σ 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... identifier Σ 1..1 Identifier Logical reference, when literal reference is not known
... performed[x] Σ 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... performer Σ 0..1 BackboneElement The people who performed the procedure
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... identifier Σ 1..1 Identifier Logical reference, when literal reference is not known
... reasonReference Σ 0..* Reference(Condition) The justification that the procedure was performed

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... text 0..1 Narrative Generated by the service on read; not required on create
... contained 0..0 Contained, inline Resources
... Slices for identifier 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier 0..1 Identifier External Identifiers for this procedure
..... id 0..0 Unique id for inter-element referencing
..... use 0..0 usual | official | temp | secondary | old (If known)
..... type 0..0 Description of identifier
..... system 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value 1..1 string The value that is unique
..... period 0..0 Time period when id is/was valid for use
..... assigner 0..0 Organization that issued id (may be just text)
.... identifier:External_Identifier 0..* Identifier External Identifiers for this procedure
..... id 0..0 Unique id for inter-element referencing
..... use 0..0 usual | official | temp | secondary | old (If known)
..... type 0..0 Description of identifier
..... system 1..1 uri The namespace for the identifier value
..... value 1..1 string The value that is unique
..... period 0..0 Time period when id is/was valid for use
..... assigner 0..0 Organization that issued id (may be just text)
... instantiatesCanonical 0..0 Instantiates FHIR protocol or definition
... instantiatesUri 0..0 Instantiates external protocol or definition
... basedOn 0..0 A request for this procedure
... partOf 0..0 Part of referenced event
... status 1..1 code Supported codes by the application are 'preparation', 'in-progress','completed','unknown' , Here code will be set to the model depend on the Performed property Estimation
... statusReason 0..0 Reason for current status
... category 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
.... coding 1..1 Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
... code 1..1 CodeableConcept Identification of the procedure
.... id 0..0 Unique id for inter-element referencing
.... Slices for coding 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7220
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NCSP 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7210
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NCRP 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7270
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... coding:NorwegianSpecific 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... id 0..0 Unique id for inter-element referencing
...... system 1..1 uri Identity of the terminology system
Fixed Value: urn:oid:2.16.578.1.12.4.1.1.7020
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
... subject 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... id 0..0 Unique id for inter-element referencing
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 1..1 Identifier Logical reference, when literal reference is not known
... performed[x] 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... recorder 0..0 Who recorded the procedure
... asserter 0..0 Person who asserts this procedure
... performer 0..1 BackboneElement The people who performed the procedure
.... id 0..0 Unique id for inter-element referencing
.... function 0..0 Type of performance
.... actor 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... id 0..0 Unique id for inter-element referencing
..... type 0..0 Type the reference refers to (e.g. "Patient")
..... identifier 1..1 Identifier Logical reference, when literal reference is not known
.... onBehalfOf 0..0 Organization the device or practitioner was acting for
... location 0..0 Where the procedure happened
... reasonCode 0..0 Coded reason procedure performed
... reasonReference 0..* Reference(Condition) The justification that the procedure was performed
... bodySite 0..0 Target body sites
... outcome 0..0 The result of procedure
... report 0..0 Any report resulting from the procedure
... complication 0..0 Complication following the procedure
... complicationDetail 0..0 A condition that is a result of the procedure
... followUp 0..0 Instructions for follow up
... note 0..0 Additional information about the procedure
... focalDevice 0..0 Manipulated, implanted, or removed device
... usedReference 0..0 Items used during procedure
... usedCode 0..0 Coded items used during the procedure

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... text 0..1 Narrative Generated by the service on read; not required on create
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Identifiers for this procedure
Slice: Unordered, Open by value:system
.... identifier:Dips_Identifier Σ 0..1 Identifier External Identifiers for this procedure
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://dips.no/fhir/namingsystem/dips-procedureid
..... value Σ 1..1 string The value that is unique
Example General: 123456
.... identifier:External_Identifier Σ 0..* Identifier External Identifiers for this procedure
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code Supported codes by the application are 'preparation', 'in-progress','completed','unknown' , Here code will be set to the model depend on the Performed property Estimation
Binding: EventStatus (required): A code specifying the state of the procedure.
... category Σ 0..1 CodeableConcept DIPS service type, coded with the same OID system as Procedure.code
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..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 Σ 0..1 string Plain text representation of the concept
... code Σ 1..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 1..1 Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:NCMP Σ 0..1 Coding NCMP - Medisinske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7220)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7220
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NCSP Σ 0..1 Coding NCSP - kirurgiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7210)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7210
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NCRP Σ 0..1 Coding NCRP - radiologiske prosedyrekoder (urn:oid:2.16.578.1.12.4.1.1.7270)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7270
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
..... coding:NorwegianSpecific Σ 0..1 Coding Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020)
...... 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: urn:oid:2.16.578.1.12.4.1.1.7020
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(DIPS Procedure Subject Reference) Who the procedure was performed on
... encounter Σ 1..1 Reference(DIPS Procedure Encounter Reference) Encounter created as part of
.... 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 Σ 1..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... performed[x] Σ 0..1 When the procedure was performed
.... performedDateTime dateTime
.... performedPeriod Period
... performer Σ 0..1 BackboneElement The people who performed the procedure
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(DIPS Procedure Performer Reference) The reference to the practitioner
..... 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 Σ 1..1 Identifier Logical reference, when literal reference is not known
..... display Σ 0..1 string Text alternative for the resource
... reasonReference Σ 0..* Reference(Condition) The justification that the procedure was performed

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Procedure

Summary

Mandatory: 4 elements(16 nested mandatory elements)
Fixed: 5 elements
Prohibited: 52 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Procedure.identifier
  • The element 1 is sliced based on the value of Procedure.code.coding

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Read Operation:

  1. SHALL support reading Procedure using its resource id:

    GET [base]/Procedure/[id]

    Example:

    1. GET [base]/Procedure/agv1001423

    Implementation Notes: Fetches the procedure that matches the given resource reference id. DIPS procedure ids carry the agv prefix; a value without it is rejected with a 400 error.

Search Parameters:

At least one of the search parameters below must be supplied. A search with none of them is rejected with a 400 error naming the accepted set.

The following search parameters SHALL be supported:

  1. SHALL support searching Procedure using the _id search parameter:

    GET [base]/Procedure?_id=[id]

    Example:

    1. GET [base]/Procedure?_id=agv1001423

    Implementation Notes: Fetches a bundle of Procedure resources matching the given logical id. The agv prefix is required.

  2. SHALL support searching Procedure using the identifier search parameter:

    GET [base]/Procedure?identifier=[system]|[value]

    Example:

    1. GET [base]/Procedure?identifier=http://dips.no/fhir/namingsystem/dips-procedureid 1001423

    Implementation Notes: Fetches a bundle of procedures matching the system-qualified identifier ([how to search by token]). The DIPS procedure id system is http://dips.no/fhir/namingsystem/dips-procedureid. Any other system is matched against the external identifiers a procedure was created with.

  3. SHALL support searching Procedure using the patient search parameter:

    GET [base]/Procedure?patient=[id]

    Example:

    1. GET [base]/Procedure?patient=cdp2009672

    Implementation Notes: Fetches a bundle of all procedures for the patient referenced by the given logical id ([how to search by reference]).

  4. SHALL support searching Procedure using the patient.identifier search parameter, where the value is the patient identifier qualified with its system:

    GET [base]/Procedure?patient.identifier=[system]|[value]

    Example:

    1. GET [base]/Procedure?patient.identifier=urn:oid:2.16.578.1.12.4.1.4.1 15076500565

    Implementation Notes: Fetches a bundle of all procedures for the patient with the given system-qualified identifier ([how to search by token]). Accepted systems are the DIPS patient id (http://dips.no/fhir/namingsystem/dips-patientid), the DIPS NPR id (http://dips.no/fhir/namingsystem/dips-nprid), the national identity number (urn:oid:2.16.578.1.12.4.1.4.1), the D-number (urn:oid:2.16.578.1.12.4.1.4.2) and the temporary identity number, "Hjelpenummer" (urn:oid:2.16.578.1.12.4.1.4.3). A bare value with no system is accepted and treated as a national identity number. Note the parameter is declared as patient.Identifier in the CapabilityStatement, but the lookup is case-insensitive, so either spelling works.

  5. SHALL support searching Procedure using the encounter search parameter:

    GET [base]/Procedure?encounter=[id]

    Example:

    1. GET [base]/Procedure?encounter=agy1002907

    Implementation Notes: Fetches a bundle of all procedures recorded on the given episode of care ("Omsorgsepisode"). The value must match agy followed by digits; anything else is rejected with a message naming the required agy prefix.

  6. SHALL support searching Procedure using the encounter.identifier search parameter:

    GET [base]/Procedure?encounter.identifier=[system]|[value]

    Example:

    1. GET [base]/Procedure?encounter.identifier=http://dips.no/fhir/namingsystem/dips-omsorgsepisodeid 1002907

    Implementation Notes: Fetches a bundle of all procedures on the given episode of care ([how to search by token]). The only accepted system is http://dips.no/fhir/namingsystem/dips-omsorgsepisodeid; any other system is rejected with a 400 error.

  7. SHALL support searching Procedure using the performer:Practitioner search parameter:

    GET [base]/Procedure?performer:Practitioner=[id]

    Example:

    1. GET [base]/Procedure?performer:Practitioner=1000203

    Implementation Notes: Fetches a bundle of all procedures performed by the practitioner referenced by the given logical id ([how to search by reference]).

  8. SHALL support searching Procedure using the performer:Practitioner.identifier search parameter:

    GET [base]/Procedure?performer:Practitioner.identifier=[system]|[value]

    Example:

    1. GET [base]/Procedure?performer:Practitioner.identifier=urn:oid:1.3.6.1.4.1.9038.51 LEG

    Implementation Notes: Fetches a bundle of all procedures performed by the practitioner with the given system-qualified identifier ([how to search by token]). Accepted systems are the DIPS practitioner code (urn:oid:1.3.6.1.4.1.9038.51) and the HPR number (urn:oid:2.16.578.1.12.4.1.4.4). The system is mandatory for this parameter - a bare value is rejected with a 400 error stating that the code system must be specified.

  9. SHALL support searching Procedure using the code search parameter:

    GET [base]/Procedure?code=[system]|[value]

    Example:

    1. GET [base]/Procedure?code=urn:oid:2.16.578.1.12.4.1.1.7220 WURX30

    Implementation Notes: Fetches a bundle of all procedures carrying the given procedure code ([how to search by token]). Accepted systems are NCMP (urn:oid:2.16.578.1.12.4.1.1.7220), NCSP (urn:oid:2.16.578.1.12.4.1.1.7210), NCRP (urn:oid:2.16.578.1.12.4.1.1.7270) and the Norwegian-specific procedure codes (urn:oid:2.16.578.1.12.4.1.1.7020). Additional code systems may be configured per deployment. An unsupported system is rejected with a 422 error. Despite being declared as type reference in the CapabilityStatement, this parameter is parsed as a token.

  10. SHALL support searching Procedure using the date search parameter:

    GET [base]/Procedure?date=[prefix][date]

    Example:

    1. GET [base]/Procedure?date=ge2021-09-11&date=le2021-09-12

    Implementation Notes: Fetches a bundle of all procedures whose performedPeriod falls in the given interval ([how to search by date]). The supplied prefixes are resolved into a single inclusive interval, so the lower and upper bounds are both treated as inclusive regardless of which prefix produced them. If the resulting start is later than the end, the request is rejected with a 400 error stating that the end date must be after the start date. Despite being declared as type reference in the CapabilityStatement, this parameter is parsed as a date.

Create Operation:

  1. SHALL support registering a Procedure on a patient:

    POST [base]/Procedure

    Implementation Notes: The body is a Procedure conforming to this profile. subject, encounter and code carry the values the service maps into DIPS; see the element definitions above for the identifier systems expected on each reference.

Delete Operation:

  1. SHALL support deleting a Procedure by resource id:

    DELETE [base]/Procedure/[id]

    Example:

    1. DELETE [base]/Procedure/agv1001423
  2. SHALL support conditionally deleting a single Procedure by search criteria:

    DELETE [base]/Procedure?[parameters]

    Example:

    1. DELETE [base]/Procedure?subject=cdp2009672&encounter=ahi1000337

    Implementation Notes: The CapabilityStatement declares conditionalDelete as single. Note that the conditional-delete path reads subject rather than the patient parameter used by search, and that its encounter value is a planned-contact id carrying the ahi prefix rather than the agy episode-of-care id used by search.