3.0.0-alpha - ci-build Norway flag

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

Resource Profile: no-basis-Appointment

Official URL: http://hl7.no/fhir/StructureDefinition/no-basis-Appointment Version: 3.0.0-alpha
Draft as of 2023-06-13 Computable Name: NoBasisAppointment

Base profile for Norwegian Appointment information. Defined by HL7 Norway. This profile identifies a set of minimum expectations for an Appointment resource when creating, searching and retrieving compositions by defining which coding system(s) must be present when using this profile. The basis profile is open, but derived profiles should close down the information elements according to specification relevant to the use-case.

Usage:

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..*AppointmentA 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)
... cancellationReason 0..1CodeableConceptThe coded reason for the appointment being cancelled
... appointmentType
.... Slices for coding 0..*CodingCode defined by a terminology system
Slice: Unordered, Closed by value:$this
..... coding:omsorgsNiva 0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (extensible): Volven

..... coding:kontaktType 0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (extensible): Volven

..... coding:innbygger 0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (extensible): Volven

... Slices for participant 1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:practitioner 0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... actor 0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
.... participant:patient 0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... actor 0..1Reference(Patient)The individual, device, location, or service participating in the appointment
.... participant:location 0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... actor 0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Appointment.appointmentType.coding:omsorgsNivaextensible

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTypeextensible

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerextensible

urn:oid:2.16.578.1.12.4.1.1.7617

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*AppointmentA 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)
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... cancellationReason ΣC0..1CodeableConceptThe coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... start ΣC0..1instantWhen appointment is to take place
... end ΣC0..1instantWhen appointment is to conclude
... Slices for participant C1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:practitioner C0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:patient C0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Patient)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location C0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.statusrequiredAppointmentStatus
Appointment.cancellationReasonexampleAppointmentCancellationReason
Appointment.participant.statusrequiredParticipationStatus
Appointment.participant:practitioner.statusrequiredParticipationStatus
Appointment.participant:patient.statusrequiredParticipationStatus
Appointment.participant:location.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:practitioner, Appointment.participant:patient, Appointment.participant:locationEither 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 C0..*AppointmentA 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)
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this item
... status ?!ΣC1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

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


... serviceCategory Σ0..*CodeableConceptA 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..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred)
... appointmentType Σ0..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ0..*CodingCode defined by a terminology system
Slice: Unordered, Closed by value:$this
..... coding:omsorgsNiva Σ0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (extensible): Volven


..... coding:kontaktType Σ0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (extensible): Volven


..... coding:innbygger Σ0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (extensible): Volven


.... text Σ0..1stringPlain text representation of the concept
... 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..1CodeableConceptUsed to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.

... description 0..1stringShown on a subject line in a meeting request, or appointment list
... replaces 0..*Reference(Appointment)Appointment replaced by this Appointment
... virtualService 0..*VirtualServiceDetailConnection details of a virtual service (e.g. conference call)
... supportingInformation 0..*Reference(Resource)Additional information to support the appointment
... previousAppointment 0..1Reference(Appointment)The previous appointment in a series
... originatingAppointment C0..1Reference(Appointment)The originating appointment in a recurring set of appointments
... start ΣC0..1instantWhen appointment is to take place
... end ΣC0..1instantWhen appointment is to conclude
... minutesDuration 0..1positiveIntCan be less than start/end (e.g. estimate)
... requestedPeriod 0..*PeriodPotential 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..1dateTimeThe date that this appointment was initially created
... cancellationDate C0..1dateTimeWhen the appointment was cancelled
... note 0..*AnnotationAdditional 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..1Reference(Patient | Group)The patient or group associated with the appointment
... Slices for participant C1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


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

.... participant:practitioner C0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:patient C0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Patient)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location C0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... recurrenceId 0..1positiveIntThe sequence number in the recurrence
... occurrenceChanged 0..1booleanIndicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C0..*BackboneElementDetails of the recurrence pattern/template used to generate occurrences
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... timezone 0..1CodeableConceptThe timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)

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

.... lastOccurrenceDate 0..1dateThe date when the recurrence should end
.... occurrenceCount 0..1positiveIntThe number of planned occurrences
.... occurrenceDate 0..*dateSpecific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1BackboneElementInformation about weekly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... monday 0..1booleanRecurs on Mondays
..... tuesday 0..1booleanRecurs on Tuesday
..... wednesday 0..1booleanRecurs on Wednesday
..... thursday 0..1booleanRecurs on Thursday
..... friday 0..1booleanRecurs on Friday
..... saturday 0..1booleanRecurs on Saturday
..... sunday 0..1booleanRecurs on Sunday
..... weekInterval 0..1positiveIntRecurs every nth week
.... monthlyTemplate 0..1BackboneElementInformation about monthly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... dayOfMonth 0..1positiveIntRecurs on a specific day of the month
..... nthWeekOfMonth 0..1CodingIndicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.

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

..... monthInterval 1..1positiveIntRecurs every nth month
.... yearlyTemplate 0..1BackboneElementInformation about yearly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... yearInterval 1..1positiveIntRecurs every nth year
.... excludingDate 0..*dateAny dates that should be excluded from the series
.... excludingRecurrenceId 0..*positiveIntAny recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.languagerequiredAllLanguages
Appointment.statusrequiredAppointmentStatus
Appointment.cancellationReasonexampleAppointmentCancellationReason
Appointment.classpreferredhttp://terminology.hl7.org/ValueSet/EncounterClass
Appointment.serviceCategoryexampleServiceCategory
Appointment.serviceTypeexampleServiceType
Appointment.specialtypreferredPracticeSettingCodeValueSet
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivaextensible

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTypeextensible

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerextensible

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.reasonpreferredEncounterReasonCodes
Appointment.priorityexampleActPriority
Appointment.participant.typeextensibleParticipantType
Appointment.participant.statusrequiredParticipationStatus
Appointment.participant:practitioner.typeextensibleParticipantType
Appointment.participant:practitioner.statusrequiredParticipationStatus
Appointment.participant:patient.typeextensibleParticipantType
Appointment.participant:patient.statusrequiredParticipationStatus
Appointment.participant:location.typeextensibleParticipantType
Appointment.participant:location.statusrequiredParticipationStatus
Appointment.recurrenceTemplate.timezonerequiredIANATimezones (a valid code from https://www.iana.org/time-zones)
Appointment.recurrenceTemplate.recurrenceTypepreferredAppointmentRecurrenceType
Appointment.recurrenceTemplate.monthlyTemplate.nthWeekOfMonthrequiredWeekOfMonth
Appointment.recurrenceTemplate.monthlyTemplate.dayOfWeekrequiredDaysOfWeek

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:practitioner, Appointment.participant:patient, Appointment.participant:locationEither the type or actor on the participant SHALL be specified
: type.exists() or actor.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

Slices

This structure defines the following Slices:

  • The element Appointment.appointmentType.coding is sliced based on the value of value:$this (Closed)
  • The element Appointment.participant is sliced based on the value of type:resolve().actor

Differential View

This structure is derived from Appointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment 0..*AppointmentA 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)
... cancellationReason 0..1CodeableConceptThe coded reason for the appointment being cancelled
... appointmentType
.... Slices for coding 0..*CodingCode defined by a terminology system
Slice: Unordered, Closed by value:$this
..... coding:omsorgsNiva 0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (extensible): Volven

..... coding:kontaktType 0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (extensible): Volven

..... coding:innbygger 0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (extensible): Volven

... Slices for participant 1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:practitioner 0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... actor 0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
.... participant:patient 0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... actor 0..1Reference(Patient)The individual, device, location, or service participating in the appointment
.... participant:location 0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... actor 0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Appointment.appointmentType.coding:omsorgsNivaextensible

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTypeextensible

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerextensible

urn:oid:2.16.578.1.12.4.1.1.7617

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*AppointmentA 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)
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... cancellationReason ΣC0..1CodeableConceptThe coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... start ΣC0..1instantWhen appointment is to take place
... end ΣC0..1instantWhen appointment is to conclude
... Slices for participant C1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:practitioner C0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:patient C0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Patient)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location C0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... actor ΣC0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.statusrequiredAppointmentStatus
Appointment.cancellationReasonexampleAppointmentCancellationReason
Appointment.participant.statusrequiredParticipationStatus
Appointment.participant:practitioner.statusrequiredParticipationStatus
Appointment.participant:patient.statusrequiredParticipationStatus
Appointment.participant:location.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:practitioner, Appointment.participant:patient, Appointment.participant:locationEither 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 C0..*AppointmentA 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)
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Ids for this item
... status ?!ΣC1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

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


... serviceCategory Σ0..*CodeableConceptA 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..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred)
... appointmentType Σ0..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ0..*CodingCode defined by a terminology system
Slice: Unordered, Closed by value:$this
..... coding:omsorgsNiva Σ0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (extensible): Volven


..... coding:kontaktType Σ0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (extensible): Volven


..... coding:innbygger Σ0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (extensible): Volven


.... text Σ0..1stringPlain text representation of the concept
... 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..1CodeableConceptUsed to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.

... description 0..1stringShown on a subject line in a meeting request, or appointment list
... replaces 0..*Reference(Appointment)Appointment replaced by this Appointment
... virtualService 0..*VirtualServiceDetailConnection details of a virtual service (e.g. conference call)
... supportingInformation 0..*Reference(Resource)Additional information to support the appointment
... previousAppointment 0..1Reference(Appointment)The previous appointment in a series
... originatingAppointment C0..1Reference(Appointment)The originating appointment in a recurring set of appointments
... start ΣC0..1instantWhen appointment is to take place
... end ΣC0..1instantWhen appointment is to conclude
... minutesDuration 0..1positiveIntCan be less than start/end (e.g. estimate)
... requestedPeriod 0..*PeriodPotential 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..1dateTimeThe date that this appointment was initially created
... cancellationDate C0..1dateTimeWhen the appointment was cancelled
... note 0..*AnnotationAdditional 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..1Reference(Patient | Group)The patient or group associated with the appointment
... Slices for participant C1..*BackboneElementParticipants involved in appointment
Slice: Unordered, Open by type:resolve().actor
.... participant:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


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

.... participant:practitioner C0..*BackboneElementAppointments should contain information regarding the pracitioner involved. The Appointment.actor should contain a Practitioner or PractitionerRole reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Practitioner | PractitionerRole)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:patient C0..*BackboneElementAppointments should contain information regarding the patient involved. The Appointment.actor should contain a Patient reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Patient)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location C0..1BackboneElementAppointments should contain information regarding where the appointment is executed. The Appointment.actor should contain a Location or HealthcareService reference
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type ΣC0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... period 0..1PeriodParticipation period of the actor
..... actor ΣC0..1Reference(Location | HealthcareService)The individual, device, location, or service participating in the appointment
..... required Σ0..1booleanThe participant is required to attend (optional when false)
..... status Σ1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... recurrenceId 0..1positiveIntThe sequence number in the recurrence
... occurrenceChanged 0..1booleanIndicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C0..*BackboneElementDetails of the recurrence pattern/template used to generate occurrences
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... timezone 0..1CodeableConceptThe timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)

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

.... lastOccurrenceDate 0..1dateThe date when the recurrence should end
.... occurrenceCount 0..1positiveIntThe number of planned occurrences
.... occurrenceDate 0..*dateSpecific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1BackboneElementInformation about weekly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... monday 0..1booleanRecurs on Mondays
..... tuesday 0..1booleanRecurs on Tuesday
..... wednesday 0..1booleanRecurs on Wednesday
..... thursday 0..1booleanRecurs on Thursday
..... friday 0..1booleanRecurs on Friday
..... saturday 0..1booleanRecurs on Saturday
..... sunday 0..1booleanRecurs on Sunday
..... weekInterval 0..1positiveIntRecurs every nth week
.... monthlyTemplate 0..1BackboneElementInformation about monthly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... dayOfMonth 0..1positiveIntRecurs on a specific day of the month
..... nthWeekOfMonth 0..1CodingIndicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.

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

..... monthInterval 1..1positiveIntRecurs every nth month
.... yearlyTemplate 0..1BackboneElementInformation about yearly recurring appointments
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... yearInterval 1..1positiveIntRecurs every nth year
.... excludingDate 0..*dateAny dates that should be excluded from the series
.... excludingRecurrenceId 0..*positiveIntAny recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.languagerequiredAllLanguages
Appointment.statusrequiredAppointmentStatus
Appointment.cancellationReasonexampleAppointmentCancellationReason
Appointment.classpreferredhttp://terminology.hl7.org/ValueSet/EncounterClass
Appointment.serviceCategoryexampleServiceCategory
Appointment.serviceTypeexampleServiceType
Appointment.specialtypreferredPracticeSettingCodeValueSet
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivaextensible

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTypeextensible

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerextensible

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.reasonpreferredEncounterReasonCodes
Appointment.priorityexampleActPriority
Appointment.participant.typeextensibleParticipantType
Appointment.participant.statusrequiredParticipationStatus
Appointment.participant:practitioner.typeextensibleParticipantType
Appointment.participant:practitioner.statusrequiredParticipationStatus
Appointment.participant:patient.typeextensibleParticipantType
Appointment.participant:patient.statusrequiredParticipationStatus
Appointment.participant:location.typeextensibleParticipantType
Appointment.participant:location.statusrequiredParticipationStatus
Appointment.recurrenceTemplate.timezonerequiredIANATimezones (a valid code from https://www.iana.org/time-zones)
Appointment.recurrenceTemplate.recurrenceTypepreferredAppointmentRecurrenceType
Appointment.recurrenceTemplate.monthlyTemplate.nthWeekOfMonthrequiredWeekOfMonth
Appointment.recurrenceTemplate.monthlyTemplate.dayOfWeekrequiredDaysOfWeek

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:practitioner, Appointment.participant:patient, Appointment.participant:locationEither the type or actor on the participant SHALL be specified
: type.exists() or actor.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

Slices

This structure defines the following Slices:

  • The element Appointment.appointmentType.coding is sliced based on the value of value:$this (Closed)
  • The element Appointment.participant is sliced based on the value of type:resolve().actor

 

Other representations of profile: CSV, Excel, Schematron