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 Schedule

Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-schedule Version: 2.0.0-ci
Draft as of 2025-10-05 Computable Name: FiBaseSchedule

This is the Finnish base profile for the Schedule resource.

Scope and Usage

This implementation guide does not profile scheduling related resources.

However, references to Appointment, Schedule, and Slot resources are included here in order to draw the readers attention to another implementation guide published by HL7 Finland:

In addition to implementation guides published by HL7 Finland, there is also ongoing work on FHIR APIs for scheduling in the national Kanta system.

Do note also the older implementation guides by HL7 Finland:

The contents of both of these older implementation guides are now considered outdated.

The concepts and resources have been used, most notably by Omaolo symptom assessment services, Palveluohjain service (previously known ajanvaraus ja palveluohjain -sovellus AVPH) scheduling service, and the scheduling API of the OMNI360 electronic health record system.

Implementers should read these implementation guides with caution and verify the latest state of the art from their customers or from vendors of real world implementations.

HL7 Finland is currently considering updating the published implementation guides.

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
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... active ?!Σ 0..1 boolean Whether this schedule is in active use

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
dom-2 error Schedule If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Schedule 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 Schedule 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 Schedule If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Schedule 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 Schedule

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... actor 1..* Reference(FI Base Patient(2.0.0-ci) | FI Base Practitioner(2.0.0-ci) | FI Base PractitionerRole(2.0.0-ci) | RelatedPerson | Device | FI Base HealthcareService(2.0.0-ci) | FI Base Location(2.0.0-ci)) Resource(s) that availability information is being provided for

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this item
... active ?!Σ 0..1 boolean Whether this schedule is in active use
... serviceCategory Σ 0..* CodeableConcept High-level category
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableConcept Specific service
Binding: ServiceType (example)
... specialty Σ 0..* CodeableConcept Type of specialty needed
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... actor Σ 1..* Reference(FI Base Patient(2.0.0-ci) | FI Base Practitioner(2.0.0-ci) | FI Base PractitionerRole(2.0.0-ci) | RelatedPerson | Device | FI Base HealthcareService(2.0.0-ci) | FI Base Location(2.0.0-ci)) Resource(s) that availability information is being provided for
... planningHorizon Σ 0..1 Period Period of time covered by schedule
... comment 0..1 string Comments on availability

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Schedule.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Schedule.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Schedule.serviceType Base example Service type 📍4.0.1 FHIR Std.
Schedule.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Schedule If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Schedule 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 Schedule 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 Schedule If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Schedule 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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... active ?!Σ 0..1 boolean Whether this schedule is in active use

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
dom-2 error Schedule If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Schedule 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 Schedule 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 Schedule If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Schedule 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 Schedule

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... actor 1..* Reference(FI Base Patient(2.0.0-ci) | FI Base Practitioner(2.0.0-ci) | FI Base PractitionerRole(2.0.0-ci) | RelatedPerson | Device | FI Base HealthcareService(2.0.0-ci) | FI Base Location(2.0.0-ci)) Resource(s) that availability information is being provided for

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule 0..* Schedule A container for slots of time that may be available for booking appointments
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this item
... active ?!Σ 0..1 boolean Whether this schedule is in active use
... serviceCategory Σ 0..* CodeableConcept High-level category
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableConcept Specific service
Binding: ServiceType (example)
... specialty Σ 0..* CodeableConcept Type of specialty needed
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... actor Σ 1..* Reference(FI Base Patient(2.0.0-ci) | FI Base Practitioner(2.0.0-ci) | FI Base PractitionerRole(2.0.0-ci) | RelatedPerson | Device | FI Base HealthcareService(2.0.0-ci) | FI Base Location(2.0.0-ci)) Resource(s) that availability information is being provided for
... planningHorizon Σ 0..1 Period Period of time covered by schedule
... comment 0..1 string Comments on availability

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Schedule.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Schedule.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Schedule.serviceType Base example Service type 📍4.0.1 FHIR Std.
Schedule.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Schedule If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Schedule 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 Schedule 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 Schedule If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Schedule 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()

 

Other representations of profile: CSV, Excel, Schematron