SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

Resource Profile: SGHI Appointment Profile

Official URL: https://fhir.slade360.co.ke/fhir/StructureDefinition/sghi-appointment Version: 0.1.0
Draft as of 2025-11-27 Computable Name: SGHIAppointment

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).

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, app-5, app-6, app-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type Σ 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 1..1 string The value that is unique
Example General: 123456
.... assigner Σ 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... status ?!ΣC 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancellationReason ΣC 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... serviceCategory Σ 0..* SGHICodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... specialty Σ 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType Σ 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... reason Σ 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment C 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start ΣC 1..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... created 1..1 dateTime The date that this appointment was initially created
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject Σ 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type ΣC 0..* SGHICodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor ΣC 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.status Base required Appointment Status 📍5.0.0 FHIR Std.
Appointment.cancellationReason Base example Appointment Cancellation Reason 📍5.0.0 FHIR Std.
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.serviceCategory Base example Service Category 📍5.0.0 FHIR Std.
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📦2.0.0 THO v7.0
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG
Appointment.priority Base example ActPriority 📦3.0.0 THO v7.0
Appointment.participant.​type Base extensible Participant Type 📍5.0.0 FHIR Std.
Appointment.participant.​status Base required Participation Status 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancellation reason is only used for appointments that have been cancelled, or noshow cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5 error Appointment The start must be less than or equal to the end start.exists() implies start <= end
app-6 best practice Appointment An appointment may have an originatingAppointment or recurrenceTemplate, but not both originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7 error Appointment Cancellation date is only used for appointments that have been cancelled, or noshow cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Appointment If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Appointment

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
... identifier 1..* Identifier External Ids for this item
.... use 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system 1..1 uri The namespace for the identifier value
.... value 1..1 string The value that is unique
.... assigner 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... cancellationReason 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
... class 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... specialty 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
... reason 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start 1..1 instant When appointment is to take place
... created 1..1 dateTime The date that this appointment was initially created
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant
.... type 0..* SGHICodeableConcept Role of participant in the appointment
.... actor 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, app-5, app-6, app-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 1..* Identifier External Ids for this item
.... id 0..1 id 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)
.... type Σ 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 1..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... status ?!ΣC 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancellationReason ΣC 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... serviceCategory Σ 0..* SGHICodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableReference(HealthcareService) The specific service that is to be performed during this appointment
Binding: ServiceType (example)
... specialty Σ 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType Σ 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... reason Σ 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.
... description 0..1 string Shown on a subject line in a meeting request, or appointment list
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... virtualService 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call)
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment C 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start ΣC 1..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
... requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within
... slot 0..* Reference(Slot) The slots that this appointment is filling
... account 0..* Reference(Account) The set of accounts that may be used for billing for this Appointment
... created 1..1 dateTime The date that this appointment was initially created
... cancellationDate C 0..1 dateTime When the appointment was cancelled
... note 0..* Annotation Additional comments
... patientInstruction 0..* CodeableReference(DocumentReference | Binary | Communication) Detailed information and instructions for the patient
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject Σ 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type ΣC 0..* SGHICodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
.... period 0..1 Period Participation period of the actor
.... actor ΣC 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment
.... required Σ 0..1 boolean The participant is required to attend (optional when false)
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
... recurrenceId 0..1 positiveInt The sequence number in the recurrence
... occurrenceChanged 0..1 boolean Indicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C 0..* BackboneElement Details of the recurrence pattern/template used to generate occurrences
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... timezone 0..1 CodeableConcept The timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)
.... recurrenceType 1..1 CodeableConcept The frequency of the recurrence
Binding: AppointmentRecurrenceType (preferred): IANA Timezones (BCP 175)
.... lastOccurrenceDate 0..1 date The date when the recurrence should end
.... occurrenceCount 0..1 positiveInt The number of planned occurrences
.... occurrenceDate 0..* date Specific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1 BackboneElement Information about weekly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... monday 0..1 boolean Recurs on Mondays
..... tuesday 0..1 boolean Recurs on Tuesday
..... wednesday 0..1 boolean Recurs on Wednesday
..... thursday 0..1 boolean Recurs on Thursday
..... friday 0..1 boolean Recurs on Friday
..... saturday 0..1 boolean Recurs on Saturday
..... sunday 0..1 boolean Recurs on Sunday
..... weekInterval 0..1 positiveInt Recurs every nth week
.... monthlyTemplate 0..1 BackboneElement Information about monthly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... dayOfMonth 0..1 positiveInt Recurs on a specific day of the month
..... nthWeekOfMonth 0..1 Coding Indicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.
..... dayOfWeek 0..1 Coding Indicates which day of the week the appointment should occur
Binding: DaysOfWeek (required): The days of the week.
..... monthInterval 1..1 positiveInt Recurs every nth month
.... yearlyTemplate 0..1 BackboneElement Information about yearly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... yearInterval 1..1 positiveInt Recurs every nth year
.... excludingDate 0..* date Any dates that should be excluded from the series
.... excludingRecurrenceId 0..* positiveInt Any recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.language Base required All Languages 📍5.0.0 FHIR Std.
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.status Base required Appointment Status 📍5.0.0 FHIR Std.
Appointment.cancellationReason Base example Appointment Cancellation Reason 📍5.0.0 FHIR Std.
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.serviceCategory Base example Service Category 📍5.0.0 FHIR Std.
Appointment.serviceType Base example Service Type 📍5.0.0 FHIR Std.
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📦2.0.0 THO v7.0
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG
Appointment.priority Base example ActPriority 📦3.0.0 THO v7.0
Appointment.participant.​type Base extensible Participant Type 📍5.0.0 FHIR Std.
Appointment.participant.​status Base required Participation Status 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​timezone Base required IANA Timezones 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​recurrenceType Base preferred Appointment Recurrence Type 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​monthlyTemplate.nthWeekOfMonth Base required Week Of Month 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​monthlyTemplate.dayOfWeek Base required Days Of Week 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancellation reason is only used for appointments that have been cancelled, or noshow cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5 error Appointment The start must be less than or equal to the end start.exists() implies start <= end
app-6 best practice Appointment An appointment may have an originatingAppointment or recurrenceTemplate, but not both originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7 error Appointment Cancellation date is only used for appointments that have been cancelled, or noshow cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Appointment If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, app-5, app-6, app-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type Σ 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 1..1 string The value that is unique
Example General: 123456
.... assigner Σ 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... status ?!ΣC 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancellationReason ΣC 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... serviceCategory Σ 0..* SGHICodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... specialty Σ 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType Σ 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... reason Σ 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment C 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start ΣC 1..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... created 1..1 dateTime The date that this appointment was initially created
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject Σ 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type ΣC 0..* SGHICodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor ΣC 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.status Base required Appointment Status 📍5.0.0 FHIR Std.
Appointment.cancellationReason Base example Appointment Cancellation Reason 📍5.0.0 FHIR Std.
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.serviceCategory Base example Service Category 📍5.0.0 FHIR Std.
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📦2.0.0 THO v7.0
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG
Appointment.priority Base example ActPriority 📦3.0.0 THO v7.0
Appointment.participant.​type Base extensible Participant Type 📍5.0.0 FHIR Std.
Appointment.participant.​status Base required Participation Status 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancellation reason is only used for appointments that have been cancelled, or noshow cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5 error Appointment The start must be less than or equal to the end start.exists() implies start <= end
app-6 best practice Appointment An appointment may have an originatingAppointment or recurrenceTemplate, but not both originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7 error Appointment Cancellation date is only used for appointments that have been cancelled, or noshow cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Appointment If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Appointment

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
... identifier 1..* Identifier External Ids for this item
.... use 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system 1..1 uri The namespace for the identifier value
.... value 1..1 string The value that is unique
.... assigner 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... cancellationReason 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
... class 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... specialty 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
... reason 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start 1..1 instant When appointment is to take place
... created 1..1 dateTime The date that this appointment was initially created
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant
.... type 0..* SGHICodeableConcept Role of participant in the appointment
.... actor 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, app-5, app-6, app-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 1..* Identifier External Ids for this item
.... id 0..1 id 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)
.... type Σ 0..1 SGHICodeableConcept Description of identifier
Binding: SGHI Standard Identifier Types (required)
.... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣC 1..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 1..1 SGHIReference(SGHI Organization) Organization that issued id (may be just text)
... status ?!ΣC 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancellationReason ΣC 0..1 SGHICodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
... class Σ 0..* SGHICodeableConcept Classification when becoming an encounter
Binding: All LOINC Codes (required)
... serviceCategory Σ 0..* SGHICodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableReference(HealthcareService) The specific service that is to be performed during this appointment
Binding: ServiceType (example)
... specialty Σ 1..* SGHICodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: sghi-speciality (required)
... appointmentType Σ 1..1 SGHICodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... reason Σ 1..* SGHICodeableReference(SGHI Condition | SGHI Observation) Reason this appointment is scheduled
Binding: All LOINC Codes (required)
... priority 1..1 SGHICodeableConcept Used to make informed decisions if needing to re-prioritize
Binding: ActPriority (example): Indicates the urgency of the appointment.
... description 0..1 string Shown on a subject line in a meeting request, or appointment list
... replaces 0..* SGHIReference(SGHI Appointment Profile) Appointment replaced by this Appointment
... virtualService 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call)
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... previousAppointment 0..1 SGHIReference(SGHI Appointment Profile) The previous appointment in a series
... originatingAppointment C 0..1 SGHIReference(SGHI Appointment Profile) The originating appointment in a recurring set of appointments
... start ΣC 1..1 instant When appointment is to take place
... end ΣC 0..1 instant When appointment is to conclude
... minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
... requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within
... slot 0..* Reference(Slot) The slots that this appointment is filling
... account 0..* Reference(Account) The set of accounts that may be used for billing for this Appointment
... created 1..1 dateTime The date that this appointment was initially created
... cancellationDate C 0..1 dateTime When the appointment was cancelled
... note 0..* Annotation Additional comments
... patientInstruction 0..* CodeableReference(DocumentReference | Binary | Communication) Detailed information and instructions for the patient
... basedOn 0..* SGHIReference(SGHI ServiceRequest | SGHI MedicationRequest) The request this appointment is allocated to assess
... subject Σ 1..1 SGHIReference(SGHI Patient) The patient or group associated with the appointment
... participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type ΣC 0..* SGHICodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
.... period 0..1 Period Participation period of the actor
.... actor ΣC 1..1 SGHIReference(SGHI Patient | SGHI Location | SGHI PractitionerRole) The individual, device, location, or service participating in the appointment
.... required Σ 0..1 boolean The participant is required to attend (optional when false)
.... status Σ 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
... recurrenceId 0..1 positiveInt The sequence number in the recurrence
... occurrenceChanged 0..1 boolean Indicates that this appointment varies from a recurrence pattern
... recurrenceTemplate C 0..* BackboneElement Details of the recurrence pattern/template used to generate occurrences
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... timezone 0..1 CodeableConcept The timezone of the occurrences
Binding: IANATimezones (required): IANA Timezones (BCP 175)
.... recurrenceType 1..1 CodeableConcept The frequency of the recurrence
Binding: AppointmentRecurrenceType (preferred): IANA Timezones (BCP 175)
.... lastOccurrenceDate 0..1 date The date when the recurrence should end
.... occurrenceCount 0..1 positiveInt The number of planned occurrences
.... occurrenceDate 0..* date Specific dates for a recurring set of appointments (no template)
.... weeklyTemplate 0..1 BackboneElement Information about weekly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... monday 0..1 boolean Recurs on Mondays
..... tuesday 0..1 boolean Recurs on Tuesday
..... wednesday 0..1 boolean Recurs on Wednesday
..... thursday 0..1 boolean Recurs on Thursday
..... friday 0..1 boolean Recurs on Friday
..... saturday 0..1 boolean Recurs on Saturday
..... sunday 0..1 boolean Recurs on Sunday
..... weekInterval 0..1 positiveInt Recurs every nth week
.... monthlyTemplate 0..1 BackboneElement Information about monthly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... dayOfMonth 0..1 positiveInt Recurs on a specific day of the month
..... nthWeekOfMonth 0..1 Coding Indicates which week of the month the appointment should occur
Binding: WeekOfMonth (required): The set of weeks in a month.
..... dayOfWeek 0..1 Coding Indicates which day of the week the appointment should occur
Binding: DaysOfWeek (required): The days of the week.
..... monthInterval 1..1 positiveInt Recurs every nth month
.... yearlyTemplate 0..1 BackboneElement Information about yearly recurring appointments
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... yearInterval 1..1 positiveInt Recurs every nth year
.... excludingDate 0..* date Any dates that should be excluded from the series
.... excludingRecurrenceId 0..* positiveInt Any recurrence IDs that should be excluded from the recurrence

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.language Base required All Languages 📍5.0.0 FHIR Std.
Appointment.identifier.​use Base required IdentifierUse 📦5.0.0 FHIR Std.
Appointment.identifier.​type Base required SGHI Standard Identifier Types 📦0.1.0 This IG
Appointment.status Base required Appointment Status 📍5.0.0 FHIR Std.
Appointment.cancellationReason Base example Appointment Cancellation Reason 📍5.0.0 FHIR Std.
Appointment.class Base required All LOINC Codes 📦0.1.0 This IG
Appointment.serviceCategory Base example Service Category 📍5.0.0 FHIR Std.
Appointment.serviceType Base example Service Type 📍5.0.0 FHIR Std.
Appointment.specialty Base required sghi-speciality 📦0.1.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📦2.0.0 THO v7.0
Appointment.reason Base required All LOINC Codes 📦0.1.0 This IG
Appointment.priority Base example ActPriority 📦3.0.0 THO v7.0
Appointment.participant.​type Base extensible Participant Type 📍5.0.0 FHIR Std.
Appointment.participant.​status Base required Participation Status 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​timezone Base required IANA Timezones 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​recurrenceType Base preferred Appointment Recurrence Type 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​monthlyTemplate.nthWeekOfMonth Base required Week Of Month 📍5.0.0 FHIR Std.
Appointment.recurrenceTemplate.​monthlyTemplate.dayOfWeek Base required Days Of Week 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancellation reason is only used for appointments that have been cancelled, or noshow cancellationReason.exists() implies (status='noshow' or status='cancelled')
app-5 error Appointment The start must be less than or equal to the end start.exists() implies start <= end
app-6 best practice Appointment An appointment may have an originatingAppointment or recurrenceTemplate, but not both originatingAppointment.exists().not() or recurrenceTemplate.exists().not()
app-7 error Appointment Cancellation date is only used for appointments that have been cancelled, or noshow cancellationDate.exists() implies (status='noshow' or status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Appointment If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron