Finnish Base Profiles
2.0.0 - release

Publication Build: This will be filled in by the publication tooling

## Resource Profile: FI Base Appointment

Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-appointment | Version: 2.0.0
Active as of 2025-10-05 | Computable Name: FiBaseAppointment

This is the Finnish base profile for the Appointment 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:

- Finnish Scheduling

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:

- Finnish Appointment
- Finnish Scheduling

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:

- Refer to this Profile: FI Base Encounter and FI Base Encounter
- Examples for this Profile: Appointment/appointment-general-practitioner

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) app-2: Either start and end are specified, or neither app-3: Only proposed or cancelled appointments can be missing start/end dates app-4: Cancelation reason is only used for appointments that have been cancelled, or no-show 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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
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
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment. ele-1: All FHIR elements must have a @value or children
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource) ele-1: All FHIR elements must have a @value or children
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling ele-1: All FHIR elements must have a @value or children
participant | C | 1..* | BackboneElement | Participants involved in appointment app-1: Either the type or actor on the participant SHALL be specified ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
actor | Σ | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device ele-1: All FHIR elements must have a @value or children
status | Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | 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 | Appointment | 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 | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | 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 Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required)
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling
participant |  |  |  |
actor |  | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) app-2: Either start and end are specified, or neither app-3: Only proposed or cancelled appointments can be missing start/end dates app-4: Cancelation reason is only used for appointments that have been cancelled, or no-show
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required)
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Ids for this item
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | Σ | 0..1 | instant | When appointment is to take place
end | Σ | 0..1 | instant | When appointment is to conclude
minutesDuration |  | 0..1 | positiveInt | Can be less than start/end (e.g. estimate)
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling
created |  | 0..1 | dateTime | The date that this appointment was initially created
comment |  | 0..1 | string | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | C | 1..* | BackboneElement | Participants involved in appointment app-1: Either the type or actor on the participant SHALL be specified
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | Σ | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.cancelationReason | example | AppointmentCancellationReason `http://hl7.org/fhir/ValueSet/appointment-cancellation-reason` From the FHIR Standard
Appointment.serviceCategory | example | ServiceCategory `http://hl7.org/fhir/ValueSet/service-category` From the FHIR Standard
Appointment.serviceType | example | ServiceType `http://hl7.org/fhir/ValueSet/service-type` From the FHIR Standard
Appointment.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
Appointment.appointmentType | preferred | Hl7VSAppointmentReasonCodes `http://terminology.hl7.org/ValueSet/v2-0276`
Appointment.reasonCode | preferred | EncounterReasonCodes `http://hl7.org/fhir/ValueSet/encounter-reason` From the FHIR Standard
Appointment.participant.type | extensible | ParticipantType `http://hl7.org/fhir/ValueSet/encounter-participant-type` From the FHIR Standard
Appointment.participant.required | required | ParticipantRequired `http://hl7.org/fhir/ValueSet/participantrequired|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | 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 | Appointment | 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 | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | 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 Appointment

Summary

Structures

This structure refers to these other structures:

- FI Base Condition (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-condition)
- Fi Base Procedure (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-procedure)
- FI Base Observation (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-observation)
- FI Base Slot (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-slot)
- FI Base Patient (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-patient)
- FI Base Practitioner (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner)
- FI Base PractitionerRole (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner-role)
- FI Base Location (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-location)

Extensions

This structure refers to these extensions:

- https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent
- https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) app-2: Either start and end are specified, or neither app-3: Only proposed or cancelled appointments can be missing start/end dates app-4: Cancelation reason is only used for appointments that have been cancelled, or no-show 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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
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
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment. ele-1: All FHIR elements must have a @value or children
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource) ele-1: All FHIR elements must have a @value or children
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling ele-1: All FHIR elements must have a @value or children
participant | C | 1..* | BackboneElement | Participants involved in appointment app-1: Either the type or actor on the participant SHALL be specified ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
actor | Σ | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device ele-1: All FHIR elements must have a @value or children
status | Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | 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 | Appointment | 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 | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | 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 Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required)
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling
participant |  |  |  |
actor |  | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) app-2: Either start and end are specified, or neither app-3: Only proposed or cancelled appointments can be missing start/end dates app-4: Cancelation reason is only used for appointments that have been cancelled, or no-show
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:restrictionParent |  | 0..1 | Coding | Huoltajille luovuttamisen kielto URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent Binding: fi-base-restriction-parent-vs (required)
extension:releaseDateForPatientViewing |  | 0..1 | date | ReleaseDateForPatientViewing URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Ids for this item
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(FI Base Condition(2.0.0) | Fi Base Procedure(2.0.0) | FI Base Observation(2.0.0) | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | Σ | 0..1 | instant | When appointment is to take place
end | Σ | 0..1 | instant | When appointment is to conclude
minutesDuration |  | 0..1 | positiveInt | Can be less than start/end (e.g. estimate)
slot |  | 0..* | Reference(FI Base Slot(2.0.0)) | The slots that this appointment is filling
created |  | 0..1 | dateTime | The date that this appointment was initially created
comment |  | 0..1 | string | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | C | 1..* | BackboneElement | Participants involved in appointment app-1: Either the type or actor on the participant SHALL be specified
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | Σ | 0..1 | Reference(FI Base Patient(2.0.0) | FI Base Practitioner(2.0.0) | FI Base PractitionerRole(2.0.0) | RelatedPerson | Device | HealthcareService | FI Base Location(2.0.0)) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.cancelationReason | example | AppointmentCancellationReason `http://hl7.org/fhir/ValueSet/appointment-cancellation-reason` From the FHIR Standard
Appointment.serviceCategory | example | ServiceCategory `http://hl7.org/fhir/ValueSet/service-category` From the FHIR Standard
Appointment.serviceType | example | ServiceType `http://hl7.org/fhir/ValueSet/service-type` From the FHIR Standard
Appointment.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
Appointment.appointmentType | preferred | Hl7VSAppointmentReasonCodes `http://terminology.hl7.org/ValueSet/v2-0276`
Appointment.reasonCode | preferred | EncounterReasonCodes `http://hl7.org/fhir/ValueSet/encounter-reason` From the FHIR Standard
Appointment.participant.type | extensible | ParticipantType `http://hl7.org/fhir/ValueSet/encounter-participant-type` From the FHIR Standard
Appointment.participant.required | required | ParticipantRequired `http://hl7.org/fhir/ValueSet/participantrequired|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | 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 | Appointment | 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 | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | 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 Appointment

Summary

Structures

This structure refers to these other structures:

- FI Base Condition (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-condition)
- Fi Base Procedure (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-procedure)
- FI Base Observation (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-observation)
- FI Base Slot (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-slot)
- FI Base Patient (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-patient)
- FI Base Practitioner (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner)
- FI Base PractitionerRole (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner-role)
- FI Base Location (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-location)

Extensions

This structure refers to these extensions:

- https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/RestrictionParent
- https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/ReleaseDateForPatientViewing

Other representations of profile: CSV, Excel, Schematron