Finnish Base Profiles
2.0.0-ci - ci-build
Finnish Base Profiles - Local Development build (v2.0.0-ci) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-slot | Version: 2.0.0-ci | |||
Draft as of 2025-10-05 | Computable Name: FiBaseSlot |
This is the Finnish base profile for the Slot resource.
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
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information |
![]() ![]() ![]() |
Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error Binding: SlotStatus (required): The free/busy status of the slot. |
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to begin |
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to conclude |
![]() |
Path | Status | Usage | ValueSet | Version | Source |
Slot.status | Base | required | SlotStatus | 📍4.0.1 | FHIR Std. |
Id | Grade | Path(s) | Description | Expression |
dom-2 | error | Slot | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
dom-3 | error | Slot | 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 | Slot | 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 | Slot | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
dom-6 | best practice | Slot | 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 Slot
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |
![]() ![]() ![]() |
1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information | |
![]() |
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example) | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource Binding: ServiceType (example) | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty). | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The style of appointment or patient that may be booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error Binding: SlotStatus (required): The free/busy status of the slot. | ||||
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to begin | ||||
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to conclude | ||||
![]() ![]() ![]() |
0..1 | boolean | This slot has already been overbooked, appointments are unlikely to be accepted for this time | |||||
![]() ![]() ![]() |
0..1 | string | Comments on the slot to describe any extended information. Such as custom constraints on the slot | |||||
![]() |
Path | Status | Usage | ValueSet | Version | Source |
Slot.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
Slot.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
Slot.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
Slot.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
Slot.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v6.5 |
Slot.status | Base | required | SlotStatus | 📍4.0.1 | FHIR Std. |
Id | Grade | Path(s) | Description | Expression |
dom-2 | error | Slot | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
dom-3 | error | Slot | 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 | Slot | 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 | Slot | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
dom-6 | best practice | Slot | 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 Slot
Key Elements View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information |
![]() ![]() ![]() |
Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error Binding: SlotStatus (required): The free/busy status of the slot. |
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to begin |
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to conclude |
![]() |
Path | Status | Usage | ValueSet | Version | Source |
Slot.status | Base | required | SlotStatus | 📍4.0.1 | FHIR Std. |
Id | Grade | Path(s) | Description | Expression |
dom-2 | error | Slot | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
dom-3 | error | Slot | 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 | Slot | 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 | Slot | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
dom-6 | best practice | Slot | 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 Slot
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |
![]() ![]() ![]() |
1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information | |
![]() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Slot | A slot of time on a schedule that may be available for booking appointments | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example) | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource Binding: ServiceType (example) | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty). | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The style of appointment or patient that may be booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Schedule(2.0.0-ci)) | The schedule resource that this slot defines an interval of status information | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error Binding: SlotStatus (required): The free/busy status of the slot. | ||||
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to begin | ||||
![]() ![]() ![]() |
Σ | 1..1 | instant | Date/Time that the slot is to conclude | ||||
![]() ![]() ![]() |
0..1 | boolean | This slot has already been overbooked, appointments are unlikely to be accepted for this time | |||||
![]() ![]() ![]() |
0..1 | string | Comments on the slot to describe any extended information. Such as custom constraints on the slot | |||||
![]() |
Path | Status | Usage | ValueSet | Version | Source |
Slot.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
Slot.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
Slot.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
Slot.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
Slot.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v6.5 |
Slot.status | Base | required | SlotStatus | 📍4.0.1 | FHIR Std. |
Id | Grade | Path(s) | Description | Expression |
dom-2 | error | Slot | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
dom-3 | error | Slot | 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 | Slot | 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 | Slot | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
dom-6 | best practice | Slot | 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 Slot
Other representations of profile: CSV, Excel, Schematron