Finnish Base Profiles
2.0.0-ci - ci-build Finland flag

Finnish Base Profiles, published by HL7 Finland. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ci built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/fhir-fi/finnish-base-profiles/ and changes regularly. See the Directory of published versions

Resource Profile: Fi Base Procedure

Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-procedure Version: 2.0.0-ci
Draft as of 2025-03-27 Computable Name: FiBaseProcedure

The Base profile for Finnish Procedure resource.

Scope and Usage

This profile sets minimum expectations for the Procedure resource to search and fetch current or historical procedures performed on or for a patient. It identifies which elements, code systems and value sets SHALL be present in the resource when using this profile.

Main procedure and sub-procedures

In many cases more than one procedure are being performed during one encounter. Usually this means that one of the procedures is the main procedure and others are sub-procedures. Latter ones could be performed in supporting or assisting purpose (e.g. Anaesthesia) or their task is to describe how the main procedure was performed (e.g. using robot for performing the procedure). This conjunction between different procedures is done by using partOf reference. The main procedure does not have partOf reference. Examples of this can be found from Examples page.

Code systems

Code systems that are associated with this profile are listed in a table below. It is not required to use these code systems in every situation, but rather to choose correct code systems depending on a use case if nessecary. Some explanation of using these code systems can be found from the website behind the link. The Use column descripes the element in which that particular code system can be used in Procedure resource.

Code System OID code Link Use
THL - toimenpideluokitus 1.2.246.537.6.2.2007 https://koodistopalvelu.kanta.fi/codeserver/pages/classification-view-page.xhtml?classificationKey=57&versionKey=119 Procedure.code
THL - Suun terveydenhuollon toimenpideluokitus 1.2.246.537.6.33 https://koodistopalvelu.kanta.fi/codeserver/pages/classification-view-page.xhtml?classificationKey=58&versionKey=79 Procedure.code
AR/YDIN - Toimenpiteen tyyppi 1.2.246.537.6.601 https://koodistopalvelu.kanta.fi/codeserver/pages/classification-view-page.xhtml?classificationKey=763&versionKey=903 Procedure.code
Kuntaliitto - Radiologinen tutkimus- ja toimenpideluokitus 1.2.246.537.6.4 https://koodistopalvelu.kanta.fi/codeserver/pages/classification-view-page.xhtml?classificationKey=44&versionKey=118 Procedure.code

NOTE: While writing this profile SNOMED code system is not widely used in Finland since adopting the code system is still in progess. More information about the subject can be found on Terminology page. Nevertheless SNOMED codes SHOULD be used if possible in a faced use case.

THL toimenpideluokitus is based on Nordic Classification of Surgical Procedures (NCSP) which can be found in here.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Procedure 0..* Procedure An action that is being or was performed on a patient
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... partOf Σ 0..* Reference(Fi Base Procedure | FI Base Observation | FI Base MedicationAdministration) Part of referenced event
ele-1: All FHIR elements must have a @value or children
... subject Σ 1..1 Reference(FI Base Patient | Group) Who the procedure was performed on
ele-1: All FHIR elements must have a @value or children
... encounter Σ 0..1 Reference(FI Base Encounter) Encounter created as part of
ele-1: All FHIR elements must have a @value or children
... recorder Σ 0..1 Reference(FI Base Patient | RelatedPerson | FI Base Practitioner | FI Base PractitionerRole) Who recorded the procedure
ele-1: All FHIR elements must have a @value or children
... asserter Σ 0..1 Reference(FI Base Patient | RelatedPerson | FI Base Practitioner | FI Base PractitionerRole) Person who asserts this procedure
ele-1: All FHIR elements must have a @value or children
... location Σ 0..1 Reference(FI Base Location) Where the procedure happened
ele-1: All FHIR elements must have a @value or children
... reasonReference Σ 0..* Reference(FI Base Condition | FI Base Observation | Fi Base Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
ele-1: All FHIR elements must have a @value or children
... complicationDetail 0..* Reference(FI Base Condition) A condition that is a result of the procedure
ele-1: All FHIR elements must have a @value or children
... usedReference 0..* Reference(Device | FI Base Medication | Substance) Items used during procedure
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Procedure.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProcedureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProcedureIf 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-4errorProcedureIf 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-5errorProcedureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProcedureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron