Interweave Implementation Guide
0.1.0 - ci-build United Kingdom flag

Interweave Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the STU3 profiles here.

Resource Profile: InterweaveAppointment

Official URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Interweave-Appointment Version: 0.0.1
Draft as of 2024-07-15 Computable Name: InterweaveAppointment

Interweave Appointment resource profile - DRAFT.

Status: DRAFT: For Review

Introduction

This profile sets out the expectations for the interweave appointment resource. We use the UKCore-Appointment structure definition as a base to this profile.

This Resource will give the consumer the ability to see information of a booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time.

Note that it is necessary to consider the different purposes for which appointment data may be shared in a regional care record – as this has a bearing on how the fields are populated:

  • Historical – this overlaps with the "Encounter" to a large extent, but may still be useful to build the picture of where someone has been, who they have seen and why. However the precise details of time and location are less likely to be important.

  • Future – this a key use, to see what is upcoming. For example to build a picture of ongoing care, as well as to see what other practitioners are involved, and also to coordinate care – for example to arrange other interventions at the same time / place.

  • Patient – there is a further use-case where appointments are viewed by the patient themselves – for example in an “app” which reminds them where and when to go. In this case the precise time and location are clearly vital.

  • Scheduling – appointment data may potentially be used for scheduling – for example to match required appointments with available time slots and practitioners with appropriate skills. It is assumed however that this will be a feature of local systems and NOT a primary use-case at present for regional sharing.

Mandatory fields

The following mandatory fields are defined:

  1. Status - this is already mandatory in FHIR. Note that for future appointments it will be important to keep this status up-to-date.

  2. Service Type - The specific service that is to be performed during this appointment. It is based on SNOMED refset 1127531000000102: Services Simple Reference Set and also covers social care.

  3. Participant: Subject - rather unusually, the FHIR Appointment does not actually have a "subject" field, but instead a multi-purpose "participant" field. It is therefore mandatory to have exactly one "participant" of type "subject" to identify the Patient involved.

Must Support fields

In addition the following fields are "Must Support" – i.e., they must be populated if relevant and known.

  1. Identifier - A Local Id should be provided, such that could be quoted if manually getting in touch to find out more

  2. Start - The date/time that an appointment is to take place. (Note that FHIR requires this field to be populated for appointments that are not at status “proposed” or “cancelled”)

  3. Appointment Type - A simple list of codes eg "routine", "emergency" etc. We add a value for "urgent" to cover scheduled but urgent appointments.

  4. Description - Any other title or text to further describe the appointment

  5. Participant: Primary Performer - a reference to the main practitioner involved, once they have been allocated.

  6. Participant: Location - again, rather unusually, the location is considered as another "participant" in the FHIR Appointment. A reference to the location is therefore required, once this has been allocated.
    • Note that a location that is as granular as possible should be provided, although what this means may vary by Data Provider. Some may be able to allocate locations down to the "room" level - with this obviously being essential if the aim is to guide the patient directly to the right place. Others may allocate only at a "ward" or even "site" level - with the patient having to ask for further directions on arrival.
  7. Reason: A long list of SNOMED codes to describe different reasons which have led to the Appointment.

    We pre-adopt the value set used in R4. This builds on the existing STU3 list covering SNOMED codes for "Clinical Finding" and "Procedure", and adds codes for "Context-dependent categories" (Social Care) and "Events" (A&E)

  8. Delivery Channel (Extension) - simple and useful field to indicate whether in-person, telephone, or video

  9. Cancellation Reason - obviously only relevant and useful if the appointment is cancelled.

Optional fields

Other fields are optional and may be populated if known – on the understanding that not all data consumers will necessarily make use of them.

Discouraged or Removed fields

  • Booking Organisation (Care Connect Extension) - Proposed that this can instead be covered by other fields. For the organisation making the booking then see "basedOn". For the organisation taking the booking then see provenance tags in the "meta" section.

  • Supporting Information - A pointer to potentially any other FHIR Resource. Should not be used as potentially difficult for a Data Consumer to know how to handle.

  • Comment - To be used only with great care. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. For any patient specific information uses see "Patient Instruction" element.

  • Priority and Requested Period - more relevant for local use in a scheduling system, rather than a regional shared record.

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 UKCoreAppointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment 0..* UKCoreAppointment 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)
... id S 0..1 id Logical id of this artifact
... meta
.... id 0..0
.... versionId S 0..1 id Version specific identifier
.... lastUpdated S 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile S 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
.... Slices for tag 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
..... tag:Source S 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... version 0..0
...... code S 1..1 code The Data Provider Id of the system supplying the data
...... display S 1..1 string Name of the system supplying the data
..... tag:Provenance S 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... version 0..0
...... code S 1..1 code The ODS Code of the organisation responsible for the data
...... display S 1..1 string Name of the organisation supplying the data
... implicitRules 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... extension:bookingOrganization 0..1 ExtensionUKCoreBookingOrganization DISCOURAGED - use basedOn or provenance tags instead
.... extension:deliveryChannel 0..1 ExtensionUKCoreDeliveryChannel An extension to record the delivery channel of a scheduled Appointment
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... Slices for identifier 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... assigner 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier S 0..1 Identifier External Ids for this item
..... system S 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value S 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
..... period 0..0
... cancelationReason S 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType S 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
.... coding
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... appointmentType 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
.... coding
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... reasonReference 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... basedOn 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
.... participant:All Slices Content/Rules for all slices
..... type S 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
...... coding
....... system 1..1 uri Identity of the terminology system
....... code 1..1 code Symbol in syntax defined by the system
....... display 1..1 string Representation defined by the system
..... actor S 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Person, Location/HealthcareService or Device
..... status S 1..1 code accepted | declined | tentative | needs-action
.... participant:subject S 1..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: SBJ
....... display 0..1 string Representation defined by the system
Fixed Value: subject
..... actor 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
.... participant:location S 0..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: LOC
....... display 0..1 string Representation defined by the system
Fixed Value: location
..... actor 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
.... participant:primaryPerformer S 0..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: PPRF
....... display 0..1 string Representation defined by the system
Fixed Value: primary performer
..... actor 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
... requestedPeriod 0..* Period DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C 0..* UKCoreAppointment 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 SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... bookingOrganization 0..1 Reference(Organization) DISCOURAGED - use basedOn or provenance tags instead
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization
.... deliveryChannel 0..1 (Complex) An extension to record the delivery channel of a scheduled Appointment
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel
..... extension 0..0
..... url 1..1 uri "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier SΣ 0..1 Identifier External Ids for this item
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system SΣ 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value SΣ 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
Example General: 123456
... status ?!SΣ 1..1 code The overall status of the appointment.
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason SΣ 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory Σ 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType SΣ 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
... specialty SΣ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment.
Binding: UK Core Practice Setting Code (extensible)
... appointmentType SΣ 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
... reasonCode SΣ 0..* CodeableConcept The reason for the appointment.
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... reasonReference S 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... start SΣ 0..1 instant The start time of the appointment.
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... basedOn S 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant SC 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
app-1: Either the type or actor on the participant SHALL be specified
.... participant:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... type SΣ 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
..... actor SΣ 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Person, Location/HealthcareService or Device
..... status SΣ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:subject SC 1..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location SC 0..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:primaryPerformer SC 0..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... requestedPeriod 0..* Period DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Appointment.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier:localIdentifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1
from the FHIR Standard
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.specialtyextensibleUKCorePracticeSettingCode (a valid code from UKCore Practice Setting Code)
https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.reasonCodepreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:subject.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:location.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:subject, Appointment.participant:location, Appointment.participant:primaryPerformerEither 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-4errorAppointmentCancelation 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-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().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-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..* UKCoreAppointment 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 SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... language 0..1 code English is assumed (not currently a multi-lingual implementation)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... bookingOrganization 0..1 Reference(Organization) DISCOURAGED - use basedOn or provenance tags instead
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization
.... deliveryChannel 0..1 (Complex) An extension to record the delivery channel of a scheduled Appointment
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier SΣ 0..1 Identifier External Ids for this item
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣ 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value SΣ 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
Example General: 123456
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... status ?!SΣ 1..1 code The overall status of the appointment.
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason SΣ 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory Σ 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType SΣ 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty SΣ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment.
Binding: UK Core Practice Setting Code (extensible)
... appointmentType SΣ 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... reasonCode SΣ 0..* CodeableConcept The reason for the appointment.
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... reasonReference S 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... start SΣ 0..1 instant The start time of the appointment.
... 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(Slot) The slots that this appointment is filling
... created 0..1 dateTime The date that this appointment was initially created
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... patientInstruction 0..1 string Detailed information and instructions for the patient
... basedOn S 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant SC 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
app-1: Either the type or actor on the participant SHALL be specified
.... participant:All Slices Content/Rules for all slices
..... 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 SΣ 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 1..1 code Symbol in syntax defined by the system
....... display Σ 1..1 string Representation defined by the system
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor SΣ 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) 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 SΣ 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
.... participant:subject SC 1..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: SBJ
....... display Σ 0..1 string Representation defined by the system
Fixed Value: subject
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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
.... participant:location SC 0..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: LOC
....... display Σ 0..1 string Representation defined by the system
Fixed Value: location
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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
.... participant:primaryPerformer SC 0..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: PPRF
....... display Σ 0..1 string Representation defined by the system
Fixed Value: primary performer
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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 DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Appointment.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Appointment.identifier:localIdentifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier:localIdentifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1
from the FHIR Standard
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.specialtyextensibleUKCorePracticeSettingCode (a valid code from UKCore Practice Setting Code)
https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.reasonCodepreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG
Appointment.participant.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:subject.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:subject.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:subject.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:subject.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:location.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:location.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:location.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:location.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:primaryPerformer.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:primaryPerformer.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:subject, Appointment.participant:location, Appointment.participant:primaryPerformerEither 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-4errorAppointmentCancelation 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-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().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-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 UKCoreAppointment

Summary

Mandatory: 4 elements(23 nested mandatory elements)
Must-Support: 22 elements
Fixed: 12 elements
Prohibited: 6 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Appointment.meta.tag
  • The element 1 is sliced based on the value of Appointment.identifier
  • The element 1 is sliced based on the value of Appointment.participant

Differential View

This structure is derived from UKCoreAppointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment 0..* UKCoreAppointment 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)
... id S 0..1 id Logical id of this artifact
... meta
.... id 0..0
.... versionId S 0..1 id Version specific identifier
.... lastUpdated S 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile S 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
.... Slices for tag 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
..... tag:Source S 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... version 0..0
...... code S 1..1 code The Data Provider Id of the system supplying the data
...... display S 1..1 string Name of the system supplying the data
..... tag:Provenance S 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... version 0..0
...... code S 1..1 code The ODS Code of the organisation responsible for the data
...... display S 1..1 string Name of the organisation supplying the data
... implicitRules 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... extension:bookingOrganization 0..1 ExtensionUKCoreBookingOrganization DISCOURAGED - use basedOn or provenance tags instead
.... extension:deliveryChannel 0..1 ExtensionUKCoreDeliveryChannel An extension to record the delivery channel of a scheduled Appointment
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... Slices for identifier 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... assigner 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier S 0..1 Identifier External Ids for this item
..... system S 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value S 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
..... period 0..0
... cancelationReason S 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType S 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
.... coding
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... appointmentType 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
.... coding
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... reasonReference 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... basedOn 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
.... participant:All Slices Content/Rules for all slices
..... type S 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
...... coding
....... system 1..1 uri Identity of the terminology system
....... code 1..1 code Symbol in syntax defined by the system
....... display 1..1 string Representation defined by the system
..... actor S 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Person, Location/HealthcareService or Device
..... status S 1..1 code accepted | declined | tentative | needs-action
.... participant:subject S 1..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: SBJ
....... display 0..1 string Representation defined by the system
Fixed Value: subject
..... actor 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
.... participant:location S 0..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: LOC
....... display 0..1 string Representation defined by the system
Fixed Value: location
..... actor 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
.... participant:primaryPerformer S 0..1 BackboneElement A list of participants involved in the appointment.
..... type
...... coding
....... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... code 0..1 code Symbol in syntax defined by the system
Fixed Value: PPRF
....... display 0..1 string Representation defined by the system
Fixed Value: primary performer
..... actor 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... reference 1..1 string Reference to a resource (could be Contained)
...... identifier 0..1 Identifier If relevant could include an id
...... display 1..1 string Description of the referenced resource
... requestedPeriod 0..* Period DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C 0..* UKCoreAppointment 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 SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... bookingOrganization 0..1 Reference(Organization) DISCOURAGED - use basedOn or provenance tags instead
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization
.... deliveryChannel 0..1 (Complex) An extension to record the delivery channel of a scheduled Appointment
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel
..... extension 0..0
..... url 1..1 uri "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier SΣ 0..1 Identifier External Ids for this item
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system SΣ 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value SΣ 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
Example General: 123456
... status ?!SΣ 1..1 code The overall status of the appointment.
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason SΣ 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory Σ 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType SΣ 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
... specialty SΣ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment.
Binding: UK Core Practice Setting Code (extensible)
... appointmentType SΣ 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
... reasonCode SΣ 0..* CodeableConcept The reason for the appointment.
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... reasonReference S 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... start SΣ 0..1 instant The start time of the appointment.
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... basedOn S 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant SC 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
app-1: Either the type or actor on the participant SHALL be specified
.... participant:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... type SΣ 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
..... actor SΣ 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Person, Location/HealthcareService or Device
..... status SΣ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:subject SC 1..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:location SC 0..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... participant:primaryPerformer SC 0..1 BackboneElement A list of participants involved in the appointment.
app-1: Either the type or actor on the participant SHALL be specified
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... actor Σ 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

... requestedPeriod 0..* Period DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Appointment.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier:localIdentifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1
from the FHIR Standard
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.specialtyextensibleUKCorePracticeSettingCode (a valid code from UKCore Practice Setting Code)
https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.reasonCodepreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:subject.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:location.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:subject, Appointment.participant:location, Appointment.participant:primaryPerformerEither 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-4errorAppointmentCancelation 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-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().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-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..* UKCoreAppointment 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 SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... language 0..1 code English is assumed (not currently a multi-lingual implementation)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... bookingOrganization 0..1 Reference(Organization) DISCOURAGED - use basedOn or provenance tags instead
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization
.... deliveryChannel 0..1 (Complex) An extension to record the delivery channel of a scheduled Appointment
URL: https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"
..... value[x] 1..1 CodeableConcept A code that identifies the delivery channel of an appointment
Binding: UK Core Delivery Channel (extensible)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier External Ids for this item
Slice: Unordered, Open by value:system
.... identifier:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
.... identifier:localIdentifier SΣ 0..1 Identifier External Ids for this item
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣ 1..1 uri The namespace for the identifier value
Fixed Value: https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
..... value SΣ 1..1 string The Local appointment Identifier. Please prefix with ODS code plus period (XXX.) to ensure unique
Example General: 123456
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... status ?!SΣ 1..1 code The overall status of the appointment.
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason SΣ 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (preferred)
... serviceCategory Σ 0..* CodeableConcept A general description under broad categorisation of the types of services that is to be performed during this appointment.
Binding: ServiceCategory (preferred)
... serviceType SΣ 1..* CodeableConcept The specific service that is to be performed during this appointment
Binding: UK Core Care Setting Type (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty SΣ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment.
Binding: UK Core Practice Setting Code (extensible)
... appointmentType SΣ 0..1 CodeableConcept The type of appointment or patient that has been booked in the slot.
Binding: InterweaveAppointmentType (required)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... reasonCode SΣ 0..* CodeableConcept The reason for the appointment.
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


... reasonReference S 0..* Reference(Condition | Procedure | Observation) A reference to the Observation, Condition, Procedure, or ImmunizationRecommendation that is the reason for the appointment.
... priority 0..1 unsignedInt DISCOURAGED - More applicable to internal scheduling
... description S 0..1 string Shown on a subject line in a meeting request, or appointment list
... supportingInformation 0..* Reference(Resource) DISCOURAGED - very broad, and so difficult for a consumer to handle
... start SΣ 0..1 instant The start time of the appointment.
... 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(Slot) The slots that this appointment is filling
... created 0..1 dateTime The date that this appointment was initially created
... comment 0..1 string DISCOURAGED. It must be assumed that this comment will be widely viewed across the region, including by the patient themselves. See also / instead the 'patientInstruction' field
... patientInstruction 0..1 string Detailed information and instructions for the patient
... basedOn S 0..* Reference(InterweaveServiceRequest) The service request this appointment is allocated to assess.
... Slices for participant SC 1..* BackboneElement A list of participants involved in the appointment.
Slice: Unordered, Open by value:type.coding.code
app-1: Either the type or actor on the participant SHALL be specified
.... participant:All Slices Content/Rules for all slices
..... 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 SΣ 1..1 CodeableConcept Role of participant in the appointment
Binding: InterweaveAppointmentParticipantType (required)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 1..1 code Symbol in syntax defined by the system
....... display Σ 1..1 string Representation defined by the system
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor SΣ 1..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) 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 SΣ 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
.... participant:subject SC 1..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: SBJ
....... display Σ 0..1 string Representation defined by the system
Fixed Value: subject
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweavePatient) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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
.... participant:location SC 0..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: LOC
....... display Σ 0..1 string Representation defined by the system
Fixed Value: location
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweaveLocation) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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
.... participant:primaryPerformer SC 0..1 BackboneElement A list of participants involved in the 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.


...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
....... version Σ 0..1 string Version of the system - if relevant
....... code Σ 0..1 code Symbol in syntax defined by the system
Fixed Value: PPRF
....... display Σ 0..1 string Representation defined by the system
Fixed Value: primary performer
....... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
...... text Σ 0..1 string Plain text representation of the concept
..... actor Σ 0..1 Reference(InterweavePractitioner) Person, Location/HealthcareService or Device
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... reference ΣC 1..1 string Reference to a resource (could be Contained)
...... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

...... identifier Σ 0..1 Identifier If relevant could include an id
...... display Σ 1..1 string Description of the referenced resource
..... 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 DISCOURAGED - Relevant to a scheduling system, but less so to a regional shared record

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Appointment.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Appointment.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Appointment.extension:deliveryChannel.value[x]extensibleUKCoreDeliveryChannel (a valid code from https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel)
https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
from this IG
Appointment.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Appointment.identifier:localIdentifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Appointment.identifier:localIdentifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Appointment.statusrequiredAppointmentStatus
http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1
from the FHIR Standard
Appointment.cancelationReasonpreferredAppointmentCancellationReason
http://hl7.org/fhir/ValueSet/appointment-cancellation-reason
from the FHIR Standard
Appointment.serviceCategorypreferredServiceCategory
http://hl7.org/fhir/ValueSet/service-category
from the FHIR Standard
Appointment.serviceTypepreferredUKCoreCareSettingType
https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
from this IG
Appointment.specialtyextensibleUKCorePracticeSettingCode (a valid code from UKCore Practice Setting Code)
https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode
from this IG
Appointment.appointmentTyperequiredInterweaveAppointmentType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
from this IG
Appointment.reasonCodepreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Appointment.participant.typerequiredInterweaveAppointmentParticipantType
https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentParticipationType
from this IG
Appointment.participant.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:subject.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:subject.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:subject.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:subject.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:location.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:location.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:location.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:location.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.typeextensibleParticipantType
http://hl7.org/fhir/ValueSet/encounter-participant-type
from the FHIR Standard
Appointment.participant:primaryPerformer.actor.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Appointment.participant:primaryPerformer.requiredrequiredParticipantRequired
http://hl7.org/fhir/ValueSet/participantrequired|4.0.1
from the FHIR Standard
Appointment.participant:primaryPerformer.statusrequiredParticipationStatus
http://hl7.org/fhir/ValueSet/participationstatus|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participant, Appointment.participant:subject, Appointment.participant:location, Appointment.participant:primaryPerformerEither 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-4errorAppointmentCancelation 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-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().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-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 UKCoreAppointment

Summary

Mandatory: 4 elements(23 nested mandatory elements)
Must-Support: 22 elements
Fixed: 12 elements
Prohibited: 6 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Appointment.meta.tag
  • The element 1 is sliced based on the value of Appointment.identifier
  • The element 1 is sliced based on the value of Appointment.participant

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Differences between Interweave STU3 and R4 profiles

Element name Change details
extension:deliveryChannel
  • url (Fixed value) changed from https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-DeliveryChannel-1 to https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel
  • value[x] type changed form code to CodeableConcept
  • changed valueSet (value[x]) from https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-DeliveryChannel-1 to https://fhir.hl7.org.uk/ValueSet/UKCore-DeliveryChannel
extension:appointmentCancellationReasonR4
  • Deleted (added as normal element)
extension:patientInstruction
  • Deleted (added as normal element)
identifier:localIdentifier.system
  • Changed fixed value from https://fhir.yhcr.nhs.uk/Id/local-appointment-identifier to https://fhir.interweavedigital.nhs.uk/Id/local-appointment-identifier
cancelationReason
  • Added element
serviceCategory
  • no longer 'Discouraged' (use case - BARS)
serviceType
  • Changed valueSet from https://fhir.yhcr.nhs.uk/ValueSet/Interweave-UkCoreCareSettingType to https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType
specialty
  • Changed valueSet from https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-SDSJobRoleName-1 to https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode
appointmentType
  • Changed valueSet from https://fhir.yhcr.nhs.uk/ValueSet/Interweave-AppointmentType-1 to https://fhir.interweavedigital.nhs.uk/R4/ValueSet/Interweave-AppointmentType
reasonCode
  • Renamed from reason to reasonCode
reasonReference
  • Renamed from indication to reasonReference
  • Type Reference: Added Target Types: Observation
slot
  • no longer 'Discouraged' (use case - BARS)
basedOn
  • Renamed from incomingReferral to basedOn
participant.actor
  • Type Reference: Added Target Types PractitionerRole

Graphical relationship diagram

Appointment graphical relationship diagram