ENRICH-mHealth FHIR Implementation Guide
0.1.0 - ci-build

ENRICH-mHealth FHIR 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: ENRICH-mHealth Procedure

Official URL: https://www.bihealth.org/fhir/enrich-mhealth/StructureDefinition/enrich-mhealth-procedure Version: 0.1.0
Draft as of 2026-07-16 Computable Name: ENRICH-Procedure

This profile explains a Prcedure in ENRICH

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 C 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient
Constraints: proc-mii-1
... id SΣ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... source SΣ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
.... extension:Dokumentationsdatum SN 0..1 dateTime Recorded date
URL: http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum
.... extension:durchfuehrungsabsicht SN 0..1 Coding Intention
URL: https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Durchfuehrungsabsicht
Binding: MII VS Prozedur Durchführungsabsicht [SNOMED CT] (required)
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... status ?!SΣ 1..1 code Status
Binding: EventStatus (required): A code specifying the state of the procedure.
... category SΣ 0..1 CodeableConcept Category
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... Slices for coding ΣN 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur OPS Kategorien [SNOMED CT] (preferred)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... version 0..1 string Version of the system - if relevant
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
...... code SΣ 1..1 code Symbol in syntax defined by the system
... code SΣC 1..1 CodeableConcept Code
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
Constraints: sct-ops-1
.... Slices for coding SΣN 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:ops SΣN 0..1 CodingOPS(1.5.4) OPS code
Binding: OPS ValueSet (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... Slices for extension Content/Rules for all slices
....... extension:Seitenlokalisation SN 0..1 Coding Optional Extensions Element
URL: http://fhir.de/StructureDefinition/seitenlokalisation
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_ICD_SEITENLOKALISATION (required)
...... system SΣ 1..1 uri Canonische CodeSystem URL für OPS
Fixed Value: http://fhir.de/CodeSystem/bfarm/ops
...... version SΣ 1..1 string Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. "2017")
...... code SΣC 1..1 code Der OPS-Code
Constraints: ops-regex
Example Einfacher OPS-Code: 5-470
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur Prozeduren [SNOMED CT] (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... version 0..1 string Version of the system - if relevant
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
...... code SΣ 1..1 code Symbol in syntax defined by the system
... subject SΣC 1..1 Reference(Patient | Group) Who the procedure was performed on
Constraints: ref-1
... Slices for performed[x] SΣN 1..1 Performed date
Slice: Unordered, Open by type:$this
.... performedDateTime dateTime
.... performedPeriod Period
.... performed[x]:performedDateTime ΣN 0..1 dateTime When the procedure was performed
.... performed[x]:performedPeriod ΣN 0..1 Period Performed period
... bodySite SΣ 0..* CodeableConcept Body site
Binding: SNOMEDCTBodyStructures (extensible): Codes describing anatomical locations. May include laterality.
... note S 0..* Annotation Note

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.category.coding:sct Base preferred MII VS Prozedur OPS Kategorien [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.code Base example Procedure Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.code.coding:ops Base required OPS ValueSet 📦1.5.4 de.basisprofil.r4 v1.5
Procedure.code.coding:sct Base required MII VS Prozedur Prozeduren [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.bodySite Base extensible SNOMED CT Body Structures 📦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()
ops-regex warning Procedure.code.coding:ops.code In code sind nur gültige OPS-Codes ohne Zusätze erlaubt matches('^[1|3|5|6|8|9]-[a-zA-Z0-9]{3}([.][a-zA-Z0-9]{1,2})?$')
proc-mii-1 error Procedure Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()
ref-1 error Procedure.subject SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
sct-ops-1 error Procedure.code Eine Prozedur MUSS mit OPS oder SNOMED-CT kodiert werden. coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()

This structure is derived from MII_PR_Prozedur_Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient
Constraints: proc-mii-1
... id SΣ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source SΣ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension SN 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:Dokumentationsdatum SN 0..1 dateTime Recorded date
URL: http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum
.... extension:durchfuehrungsabsicht SN 0..1 Coding Intention
URL: https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Durchfuehrungsabsicht
Binding: MII VS Prozedur Durchführungsabsicht [SNOMED CT] (required)
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ 0..* Identifier External Identifiers for this procedure
... instantiatesCanonical Σ 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn ΣC 0..* Reference(CarePlan | ServiceRequest) A request for this procedure
Constraints: ref-1
... partOf ΣC 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
Constraints: ref-1
... status ?!SΣ 1..1 code Status
Binding: EventStatus (required): A code specifying the state of the procedure.
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
... category SΣ 0..1 CodeableConcept Category
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 N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣN 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur OPS Kategorien [SNOMED CT] (preferred)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 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 SΣ 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 SΣC 1..1 CodeableConcept Code
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
Constraints: sct-ops-1
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding SΣN 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:ops SΣN 0..1 CodingOPS(1.5.4) OPS code
Binding: OPS ValueSet (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... Slices for extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... Slices for extension Content/Rules for all slices
....... extension:Seitenlokalisation SN 0..1 Coding Optional Extensions Element
URL: http://fhir.de/StructureDefinition/seitenlokalisation
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_ICD_SEITENLOKALISATION (required)
...... system SΣ 1..1 uri Canonische CodeSystem URL für OPS
Fixed Value: http://fhir.de/CodeSystem/bfarm/ops
...... version SΣ 1..1 string Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. "2017")
...... code SΣC 1..1 code Der OPS-Code
Constraints: ops-regex
Example Einfacher OPS-Code: 5-470
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur Prozeduren [SNOMED CT] (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 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 SΣ 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
... subject SΣC 1..1 Reference(Patient | Group) Who the procedure was performed on
Constraints: ref-1
... encounter ΣC 0..1 Reference(Encounter) Encounter created as part of
Constraints: ref-1
... Slices for performed[x] SΣN 1..1 Performed date
Slice: Unordered, Open by type:$this
.... performedDateTime dateTime
.... performedPeriod Period
.... performed[x]:performedDateTime ΣN 0..1 dateTime When the procedure was performed
.... performed[x]:performedPeriod ΣN 0..1 Period Performed period
... recorder ΣC 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
Constraints: ref-1
... asserter ΣC 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Person who asserts this procedure
Constraints: ref-1
... performer Σ 0..* BackboneElement The people who performed the procedure
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... function Σ 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
.... actor ΣC 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Constraints: ref-1
.... onBehalfOf C 0..1 Reference(Organization) Organization the device or practitioner was acting for
Constraints: ref-1
... location ΣC 0..1 Reference(Location) Where the procedure happened
Constraints: ref-1
... reasonCode Σ 0..* CodeableConcept Coded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
... reasonReference ΣC 0..* Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Constraints: ref-1
... bodySite SΣ 0..* CodeableConcept Body site
Binding: SNOMEDCTBodyStructures (extensible): Codes describing anatomical locations. May include laterality.
... outcome Σ 0..1 CodeableConcept The result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
... report C 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
Constraints: ref-1
... complication 0..* CodeableConcept Complication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... complicationDetail C 0..* Reference(Condition) A condition that is a result of the procedure
Constraints: ref-1
... followUp 0..* CodeableConcept Instructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
... note S 0..* Annotation Note
... focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
.... manipulated C 1..1 Reference(Device) Device that was changed
Constraints: ref-1
... usedReference C 0..* Reference(Device | Medication | Substance) Items used during procedure
Constraints: ref-1
... usedCode 0..* CodeableConcept Coded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.meta.security Base extensible SecurityLabels 📦4.0.1 FHIR Std.
Procedure.meta.tag Base example Common Tags 📦4.0.1 FHIR Std.
Procedure.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📦4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.category.coding:sct Base preferred MII VS Prozedur OPS Kategorien [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.code Base example Procedure Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.code.coding:ops Base required OPS ValueSet 📦1.5.4 de.basisprofil.r4 v1.5
Procedure.code.coding:sct Base required MII VS Prozedur Prozeduren [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.performer.​function Base example Procedure Performer Role Codes 📦4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📦4.0.1 FHIR Std.
Procedure.bodySite Base extensible SNOMED CT Body Structures 📦4.0.1 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📦4.0.1 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📦4.0.1 FHIR Std.
Procedure.usedCode Base example FHIR Device Types 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **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()
ops-regex warning Procedure.code.coding:ops.code In code sind nur gültige OPS-Codes ohne Zusätze erlaubt matches('^[1|3|5|6|8|9]-[a-zA-Z0-9]{3}([.][a-zA-Z0-9]{1,2})?$')
proc-mii-1 error Procedure Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()
ref-1 error Procedure.basedOn, Procedure.partOf, Procedure.subject, Procedure.encounter, Procedure.recorder, Procedure.asserter, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonReference, Procedure.report, Procedure.complicationDetail, Procedure.focalDevice.manipulated, Procedure.usedReference SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
sct-ops-1 error Procedure.code Eine Prozedur MUSS mit OPS oder SNOMED-CT kodiert werden. coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()

This structure is derived from MII_PR_Prozedur_Procedure

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient
Constraints: proc-mii-1
... id SΣ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... source SΣ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
.... extension:Dokumentationsdatum SN 0..1 dateTime Recorded date
URL: http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum
.... extension:durchfuehrungsabsicht SN 0..1 Coding Intention
URL: https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Durchfuehrungsabsicht
Binding: MII VS Prozedur Durchführungsabsicht [SNOMED CT] (required)
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... status ?!SΣ 1..1 code Status
Binding: EventStatus (required): A code specifying the state of the procedure.
... category SΣ 0..1 CodeableConcept Category
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
.... Slices for coding ΣN 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur OPS Kategorien [SNOMED CT] (preferred)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... version 0..1 string Version of the system - if relevant
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
...... code SΣ 1..1 code Symbol in syntax defined by the system
... code SΣC 1..1 CodeableConcept Code
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
Constraints: sct-ops-1
.... Slices for coding SΣN 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:ops SΣN 0..1 CodingOPS(1.5.4) OPS code
Binding: OPS ValueSet (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... Slices for extension Content/Rules for all slices
....... extension:Seitenlokalisation SN 0..1 Coding Optional Extensions Element
URL: http://fhir.de/StructureDefinition/seitenlokalisation
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_ICD_SEITENLOKALISATION (required)
...... system SΣ 1..1 uri Canonische CodeSystem URL für OPS
Fixed Value: http://fhir.de/CodeSystem/bfarm/ops
...... version SΣ 1..1 string Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. "2017")
...... code SΣC 1..1 code Der OPS-Code
Constraints: ops-regex
Example Einfacher OPS-Code: 5-470
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur Prozeduren [SNOMED CT] (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... version 0..1 string Version of the system - if relevant
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
...... code SΣ 1..1 code Symbol in syntax defined by the system
... subject SΣC 1..1 Reference(Patient | Group) Who the procedure was performed on
Constraints: ref-1
... Slices for performed[x] SΣN 1..1 Performed date
Slice: Unordered, Open by type:$this
.... performedDateTime dateTime
.... performedPeriod Period
.... performed[x]:performedDateTime ΣN 0..1 dateTime When the procedure was performed
.... performed[x]:performedPeriod ΣN 0..1 Period Performed period
... bodySite SΣ 0..* CodeableConcept Body site
Binding: SNOMEDCTBodyStructures (extensible): Codes describing anatomical locations. May include laterality.
... note S 0..* Annotation Note

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.category.coding:sct Base preferred MII VS Prozedur OPS Kategorien [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.code Base example Procedure Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.code.coding:ops Base required OPS ValueSet 📦1.5.4 de.basisprofil.r4 v1.5
Procedure.code.coding:sct Base required MII VS Prozedur Prozeduren [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.bodySite Base extensible SNOMED CT Body Structures 📦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()
ops-regex warning Procedure.code.coding:ops.code In code sind nur gültige OPS-Codes ohne Zusätze erlaubt matches('^[1|3|5|6|8|9]-[a-zA-Z0-9]{3}([.][a-zA-Z0-9]{1,2})?$')
proc-mii-1 error Procedure Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()
ref-1 error Procedure.subject SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
sct-ops-1 error Procedure.code Eine Prozedur MUSS mit OPS oder SNOMED-CT kodiert werden. coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()

Differential View

This structure is derived from MII_PR_Prozedur_Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* MII_PR_Prozedur_Procedure An action that is being or was performed on a patient
Constraints: proc-mii-1
... id SΣ 0..1 id Logical id of this artifact
... meta SΣ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source SΣ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension SN 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:Dokumentationsdatum SN 0..1 dateTime Recorded date
URL: http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum
.... extension:durchfuehrungsabsicht SN 0..1 Coding Intention
URL: https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Durchfuehrungsabsicht
Binding: MII VS Prozedur Durchführungsabsicht [SNOMED CT] (required)
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ 0..* Identifier External Identifiers for this procedure
... instantiatesCanonical Σ 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn ΣC 0..* Reference(CarePlan | ServiceRequest) A request for this procedure
Constraints: ref-1
... partOf ΣC 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
Constraints: ref-1
... status ?!SΣ 1..1 code Status
Binding: EventStatus (required): A code specifying the state of the procedure.
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
... category SΣ 0..1 CodeableConcept Category
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 N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣN 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur OPS Kategorien [SNOMED CT] (preferred)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 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 SΣ 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 SΣC 1..1 CodeableConcept Code
Binding: ProcedureCodes(SNOMEDCT) (example): A code to identify a specific procedure .
Constraints: sct-ops-1
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding SΣN 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:ops SΣN 0..1 CodingOPS(1.5.4) OPS code
Binding: OPS ValueSet (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... Slices for extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... Slices for extension Content/Rules for all slices
....... extension:Seitenlokalisation SN 0..1 Coding Optional Extensions Element
URL: http://fhir.de/StructureDefinition/seitenlokalisation
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_ICD_SEITENLOKALISATION (required)
...... system SΣ 1..1 uri Canonische CodeSystem URL für OPS
Fixed Value: http://fhir.de/CodeSystem/bfarm/ops
...... version SΣ 1..1 string Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. "2017")
...... code SΣC 1..1 code Der OPS-Code
Constraints: ops-regex
Example Einfacher OPS-Code: 5-470
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:sct SΣN 0..1 Coding SNOMED CT code
Binding: MII VS Prozedur Prozeduren [SNOMED CT] (required)

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 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 SΣ 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
... subject SΣC 1..1 Reference(Patient | Group) Who the procedure was performed on
Constraints: ref-1
... encounter ΣC 0..1 Reference(Encounter) Encounter created as part of
Constraints: ref-1
... Slices for performed[x] SΣN 1..1 Performed date
Slice: Unordered, Open by type:$this
.... performedDateTime dateTime
.... performedPeriod Period
.... performed[x]:performedDateTime ΣN 0..1 dateTime When the procedure was performed
.... performed[x]:performedPeriod ΣN 0..1 Period Performed period
... recorder ΣC 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
Constraints: ref-1
... asserter ΣC 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Person who asserts this procedure
Constraints: ref-1
... performer Σ 0..* BackboneElement The people who performed the procedure
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... function Σ 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
.... actor ΣC 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Constraints: ref-1
.... onBehalfOf C 0..1 Reference(Organization) Organization the device or practitioner was acting for
Constraints: ref-1
... location ΣC 0..1 Reference(Location) Where the procedure happened
Constraints: ref-1
... reasonCode Σ 0..* CodeableConcept Coded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
... reasonReference ΣC 0..* Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Constraints: ref-1
... bodySite SΣ 0..* CodeableConcept Body site
Binding: SNOMEDCTBodyStructures (extensible): Codes describing anatomical locations. May include laterality.
... outcome Σ 0..1 CodeableConcept The result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
... report C 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
Constraints: ref-1
... complication 0..* CodeableConcept Complication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... complicationDetail C 0..* Reference(Condition) A condition that is a result of the procedure
Constraints: ref-1
... followUp 0..* CodeableConcept Instructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
... note S 0..* Annotation Note
... focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
.... manipulated C 1..1 Reference(Device) Device that was changed
Constraints: ref-1
... usedReference C 0..* Reference(Device | Medication | Substance) Items used during procedure
Constraints: ref-1
... usedCode 0..* CodeableConcept Coded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.meta.security Base extensible SecurityLabels 📦4.0.1 FHIR Std.
Procedure.meta.tag Base example Common Tags 📦4.0.1 FHIR Std.
Procedure.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📦4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.category.coding:sct Base preferred MII VS Prozedur OPS Kategorien [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.code Base example Procedure Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.code.coding:ops Base required OPS ValueSet 📦1.5.4 de.basisprofil.r4 v1.5
Procedure.code.coding:sct Base required MII VS Prozedur Prozeduren [SNOMED CT] 📦2025.0.0 MII IG Prozedur v2025.0
Procedure.performer.​function Base example Procedure Performer Role Codes 📦4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📦4.0.1 FHIR Std.
Procedure.bodySite Base extensible SNOMED CT Body Structures 📦4.0.1 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📦4.0.1 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📦4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📦4.0.1 FHIR Std.
Procedure.usedCode Base example FHIR Device Types 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **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()
ops-regex warning Procedure.code.coding:ops.code In code sind nur gültige OPS-Codes ohne Zusätze erlaubt matches('^[1|3|5|6|8|9]-[a-zA-Z0-9]{3}([.][a-zA-Z0-9]{1,2})?$')
proc-mii-1 error Procedure Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()
ref-1 error Procedure.basedOn, Procedure.partOf, Procedure.subject, Procedure.encounter, Procedure.recorder, Procedure.asserter, Procedure.performer.actor, Procedure.performer.onBehalfOf, Procedure.location, Procedure.reasonReference, Procedure.report, Procedure.complicationDetail, Procedure.focalDevice.manipulated, Procedure.usedReference SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
sct-ops-1 error Procedure.code Eine Prozedur MUSS mit OPS oder SNOMED-CT kodiert werden. coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()

This structure is derived from MII_PR_Prozedur_Procedure

Summary

 

Other representations of profile: CSV, Excel, Schematron