0.1.0 - ci-build

TCFHIRAGSchedulingR5 - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: HL7® AT Scheduling Appointment Profile

Official URL: http://hl7.at/fhir/TC-FHIR-AG-Scheduling-R5/R5/StructureDefinition/at-scheduling-appointment Version: 0.1.0
Draft as of 2024-12-16 Responsible: HL7® Austria, TC FHIR® Computable Name: HL7ATSchedulingAppointment

HL7® Austria FHIR® Scheduling Profile for appointment data in Austria.

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from Appointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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: Cancellation reason is only used for appointments that have been cancelled, or noshow
app-5: The start must be less than or equal to the end
app-6: An appointment may have an originatingAppointment or recurrenceTemplate, but not both
app-7: Cancellation date is only used for appointments that have been cancelled, or noshow
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
... contained 0..* Resource Contained, inline Resources
... 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
... start ΣC 0..1 instant When appointment is to take place
ele-1: All FHIR elements must have a @value or children
... end ΣC 0..1 instant When appointment is to conclude
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
.... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|5.0.0
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancellation reason is only used for appointments that have been cancelled, or noshow
: cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5errorAppointmentThe start must be less than or equal to the end
: start.exists() implies start <= end
app-6best practiceAppointmentAn appointment may have an originatingAppointment or recurrenceTemplate, but not both
: originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7errorAppointmentCancellation date is only used for appointments that have been cancelled, or noshow
: cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA 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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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: Cancellation reason is only used for appointments that have been cancelled, or noshow
app-5: The start must be less than or equal to the end
app-6: An appointment may have an originatingAppointment or recurrenceTemplate, but not both
app-7: Cancellation date is only used for appointments that have been cancelled, or noshow
... 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: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... 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
... status ?!ΣC 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.

... cancellationReason ΣC 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* CodeableConcept Classification when becoming an encounter
Binding: http://terminology.hl7.org/ValueSet/EncounterClass (preferred): Classification of the encounter.


... serviceCategory Σ 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableReference(HealthcareService) 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)
... reason Σ 0..* CodeableReference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... priority 0..1 CodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.

... description 0..1 string Shown on a subject line in a meeting request, or appointment list
... replaces 0..* Reference(Appointment) Appointment replaced by this Appointment
... virtualService 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call)
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... previousAppointment 0..1 Reference(Appointment) The previous appointment in a series
... originatingAppointment C 0..1 Reference(Appointment) The originating appointment in a recurring set of appointments
... start ΣC 0..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
... requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within
... slot 0..* Reference(Slot) The slots that this appointment is filling
... account 0..* Reference(Account) The set of accounts that may be used for billing for this Appointment
... created 0..1 dateTime The date that this appointment was initially created
... cancellationDate C 0..1 dateTime When the appointment was cancelled
... note 0..* Annotation Additional comments
... patientInstruction 0..* CodeableReference(DocumentReference | Binary | Communication) Detailed information and instructions for the patient
... basedOn 0..* Reference(CarePlan | DeviceRequest | MedicationRequest | ServiceRequest) The request this appointment is allocated to assess
... subject Σ 0..1 Reference(Patient | Group) The patient or group associated with the appointment
... 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 ΣC 0..* CodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


.... period 0..1 Period Participation period of the actor
.... actor ΣC 0..1 Reference(Patient | Group | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location) The individual, device, location, or service participating in the appointment
.... required Σ 0..1 boolean The participant is required to attend (optional when false)
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... recurrenceId 0..1 positiveInt The sequence number in the recurrence
... occurrenceChanged 0..1 boolean Indicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C 0..* BackboneElement Details of the recurrence pattern/template used to generate occurrences
.... 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
.... timezone 0..1 CodeableConcept The timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)

.... recurrenceType 1..1 CodeableConcept The frequency of the recurrence
Binding: AppointmentRecurrenceType (preferred): IANA Timezones (BCP 175)

.... lastOccurrenceDate 0..1 date The date when the recurrence should end
.... occurrenceCount 0..1 positiveInt The number of planned occurrences
.... occurrenceDate 0..* date Specific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1 BackboneElement Information about weekly recurring appointments
..... 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
..... monday 0..1 boolean Recurs on Mondays
..... tuesday 0..1 boolean Recurs on Tuesday
..... wednesday 0..1 boolean Recurs on Wednesday
..... thursday 0..1 boolean Recurs on Thursday
..... friday 0..1 boolean Recurs on Friday
..... saturday 0..1 boolean Recurs on Saturday
..... sunday 0..1 boolean Recurs on Sunday
..... weekInterval 0..1 positiveInt Recurs every nth week
.... monthlyTemplate 0..1 BackboneElement Information about monthly recurring appointments
..... 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
..... dayOfMonth 0..1 positiveInt Recurs on a specific day of the month
..... nthWeekOfMonth 0..1 Coding Indicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.

..... dayOfWeek 0..1 Coding Indicates which day of the week the appointment should occur
Binding: DaysOfWeek (required): The days of the week.

..... monthInterval 1..1 positiveInt Recurs every nth month
.... yearlyTemplate 0..1 BackboneElement Information about yearly recurring appointments
..... 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
..... yearInterval 1..1 positiveInt Recurs every nth year
.... excludingDate 0..* date Any dates that should be excluded from the series
.... excludingRecurrenceId 0..* positiveInt Any recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|5.0.0
from the FHIR Standard
Appointment.cancellationReasonexampleAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.classpreferredhttp://terminology.hl7.org/ValueSet/EncounterClass
http://terminology.hl7.org/ValueSet/EncounterClass
Appointment.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
from the FHIR Standard
Appointment.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
from the FHIR Standard
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
http://terminology.hl7.org/ValueSet/v2-0276
Appointment.reasonpreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.priorityexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Appointment.participant.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.timezonerequiredIANATimezones
http://hl7.org/fhir/ValueSet/timezones|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.recurrenceTypepreferredAppointmentRecurrenceType
http://hl7.org/fhir/ValueSet/appointment-recurrrence-type
from the FHIR Standard
Appointment.recurrenceTemplate.monthlyTemplate.nthWeekOfMonthrequiredWeekOfMonth
http://hl7.org/fhir/ValueSet/week-of-month|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.monthlyTemplate.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancellation reason is only used for appointments that have been cancelled, or noshow
: cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5errorAppointmentThe start must be less than or equal to the end
: start.exists() implies start <= end
app-6best practiceAppointmentAn appointment may have an originatingAppointment or recurrenceTemplate, but not both
: originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7errorAppointmentCancellation date is only used for appointments that have been cancelled, or noshow
: cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA 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()

This structure is derived from Appointment

Summary

Differential View

This structure is derived from Appointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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)

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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: Cancellation reason is only used for appointments that have been cancelled, or noshow
app-5: The start must be less than or equal to the end
app-6: An appointment may have an originatingAppointment or recurrenceTemplate, but not both
app-7: Cancellation date is only used for appointments that have been cancelled, or noshow
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
... contained 0..* Resource Contained, inline Resources
... 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
... start ΣC 0..1 instant When appointment is to take place
ele-1: All FHIR elements must have a @value or children
... end ΣC 0..1 instant When appointment is to conclude
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
.... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|5.0.0
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancellation reason is only used for appointments that have been cancelled, or noshow
: cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5errorAppointmentThe start must be less than or equal to the end
: start.exists() implies start <= end
app-6best practiceAppointmentAn appointment may have an originatingAppointment or recurrenceTemplate, but not both
: originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7errorAppointmentCancellation date is only used for appointments that have been cancelled, or noshow
: cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA 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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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: Cancellation reason is only used for appointments that have been cancelled, or noshow
app-5: The start must be less than or equal to the end
app-6: An appointment may have an originatingAppointment or recurrenceTemplate, but not both
app-7: Cancellation date is only used for appointments that have been cancelled, or noshow
... 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: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... 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
... status ?!ΣC 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.

... cancellationReason ΣC 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* CodeableConcept Classification when becoming an encounter
Binding: http://terminology.hl7.org/ValueSet/EncounterClass (preferred): Classification of the encounter.


... serviceCategory Σ 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableReference(HealthcareService) 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)
... reason Σ 0..* CodeableReference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... priority 0..1 CodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.

... description 0..1 string Shown on a subject line in a meeting request, or appointment list
... replaces 0..* Reference(Appointment) Appointment replaced by this Appointment
... virtualService 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call)
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... previousAppointment 0..1 Reference(Appointment) The previous appointment in a series
... originatingAppointment C 0..1 Reference(Appointment) The originating appointment in a recurring set of appointments
... start ΣC 0..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
... requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within
... slot 0..* Reference(Slot) The slots that this appointment is filling
... account 0..* Reference(Account) The set of accounts that may be used for billing for this Appointment
... created 0..1 dateTime The date that this appointment was initially created
... cancellationDate C 0..1 dateTime When the appointment was cancelled
... note 0..* Annotation Additional comments
... patientInstruction 0..* CodeableReference(DocumentReference | Binary | Communication) Detailed information and instructions for the patient
... basedOn 0..* Reference(CarePlan | DeviceRequest | MedicationRequest | ServiceRequest) The request this appointment is allocated to assess
... subject Σ 0..1 Reference(Patient | Group) The patient or group associated with the appointment
... 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 ΣC 0..* CodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


.... period 0..1 Period Participation period of the actor
.... actor ΣC 0..1 Reference(Patient | Group | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location) The individual, device, location, or service participating in the appointment
.... required Σ 0..1 boolean The participant is required to attend (optional when false)
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... recurrenceId 0..1 positiveInt The sequence number in the recurrence
... occurrenceChanged 0..1 boolean Indicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C 0..* BackboneElement Details of the recurrence pattern/template used to generate occurrences
.... 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
.... timezone 0..1 CodeableConcept The timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)

.... recurrenceType 1..1 CodeableConcept The frequency of the recurrence
Binding: AppointmentRecurrenceType (preferred): IANA Timezones (BCP 175)

.... lastOccurrenceDate 0..1 date The date when the recurrence should end
.... occurrenceCount 0..1 positiveInt The number of planned occurrences
.... occurrenceDate 0..* date Specific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1 BackboneElement Information about weekly recurring appointments
..... 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
..... monday 0..1 boolean Recurs on Mondays
..... tuesday 0..1 boolean Recurs on Tuesday
..... wednesday 0..1 boolean Recurs on Wednesday
..... thursday 0..1 boolean Recurs on Thursday
..... friday 0..1 boolean Recurs on Friday
..... saturday 0..1 boolean Recurs on Saturday
..... sunday 0..1 boolean Recurs on Sunday
..... weekInterval 0..1 positiveInt Recurs every nth week
.... monthlyTemplate 0..1 BackboneElement Information about monthly recurring appointments
..... 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
..... dayOfMonth 0..1 positiveInt Recurs on a specific day of the month
..... nthWeekOfMonth 0..1 Coding Indicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.

..... dayOfWeek 0..1 Coding Indicates which day of the week the appointment should occur
Binding: DaysOfWeek (required): The days of the week.

..... monthInterval 1..1 positiveInt Recurs every nth month
.... yearlyTemplate 0..1 BackboneElement Information about yearly recurring appointments
..... 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
..... yearInterval 1..1 positiveInt Recurs every nth year
.... excludingDate 0..* date Any dates that should be excluded from the series
.... excludingRecurrenceId 0..* positiveInt Any recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|5.0.0
from the FHIR Standard
Appointment.cancellationReasonexampleAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.classpreferredhttp://terminology.hl7.org/ValueSet/EncounterClass
http://terminology.hl7.org/ValueSet/EncounterClass
Appointment.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
from the FHIR Standard
Appointment.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
from the FHIR Standard
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
http://terminology.hl7.org/ValueSet/v2-0276
Appointment.reasonpreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.priorityexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Appointment.participant.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.timezonerequiredIANATimezones
http://hl7.org/fhir/ValueSet/timezones|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.recurrenceTypepreferredAppointmentRecurrenceType
http://hl7.org/fhir/ValueSet/appointment-recurrrence-type
from the FHIR Standard
Appointment.recurrenceTemplate.monthlyTemplate.nthWeekOfMonthrequiredWeekOfMonth
http://hl7.org/fhir/ValueSet/week-of-month|5.0.0
from the FHIR Standard
Appointment.recurrenceTemplate.monthlyTemplate.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancellation reason is only used for appointments that have been cancelled, or noshow
: cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5errorAppointmentThe start must be less than or equal to the end
: start.exists() implies start <= end
app-6best practiceAppointmentAn appointment may have an originatingAppointment or recurrenceTemplate, but not both
: originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7errorAppointmentCancellation date is only used for appointments that have been cancelled, or noshow
: cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA 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()

This structure is derived from Appointment

Summary

 

Other representations of profile: CSV, Excel, Schematron