Health eData 1 Sandbox
0.1.0 - CI Build

Health eData 1 Sandbox, published by HL7 International / Cross-Group Projects. 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/argonautproject/USCDIV7/ and changes regularly. See the Directory of published versions

## Resource Profile: US Core Appointment Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-appointment | Version: 0.1.0
Active as of 2026-05-06 | Maturity Level: 3 | Computable Name: USCoreAppointmentProfile
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.42.69

The US Core Appointment Profile inherits from the FHIR Appointment resource; refer to it for scope and usage definitions. This profile meets the requirements of the U.S. Core Data for Interoperability (USCDI) Appointment Data Element of the Encounter Information Data Class. It sets minimum expectations for the Appointment resource to record, search, and fetch information about a healthcare event scheduled for a past, current, or future date and time. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption.

Example Usage Scenarios:

The following are example usage scenarios for the US Core Appointment profile:

- Query for Appointment resources belonging to a Patient
- [Record or update] a Patient Appointment

### Mandatory and Must Support Data Elements

The following data elements must always be present ([Mandatory] definition) or must be supported if the data is present in the sending system ([Must Support] definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The [Formal Views] below provides the formal summary, definitions, and terminology requirements.

Each Appointment Must Have:

1. a status
2. a participant (person, location/healthcare service or device)

Each Appointment Must Support:

1. external identifiers for this appointment
2. the specific service to be performed during the appointment
3. when the appointment starts
4. when the appointment ends
5. a patient participant involved in the appointment

### Profile Specific Implementation Guidance

This section provides detailed implementation guidance for the US Core Profile to support implementation and certification.

### Liquid Script to Generate StructureDefinition All Nice N Pretty Like

{% include structure-table.md sd=sd source="differential" show_must_support=true show_uscdi=true %}

## USCoreAppointmentProfile — US Core Appointment Profile

The US Core Appointment Profile inherits from the FHIR Appointment resource; refer to it for scope and usage definitions. This profile meets the requirements of the U.S. Core Data for Interoperability (USCDI) Appointment Data Element of the Encounter Information Data Class. It sets minimum expectations for the Appointment resource to record, search, and fetch information about a healthcare event scheduled for a past, current, or future date and time. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption.

- URL: `http://hl7.org/fhir/us/core/StructureDefinition/us-core-appointment`
- Version: 0.1.0
- Status: active
- Kind: resource
- Type: `Appointment`
- Base Definition: `http://hl7.org/fhir/StructureDefinition/Appointment`
- Derivation: constraint

### Elements (differential)

Element | Must Support | Add'l USCDI | Cardinality | Type | Description
--- | --- | --- | --- | --- | ---
`Appointment` |  |  | 0..* |  | 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) 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` | ✅ |  | 0..* | `Identifier` | External Ids for this item This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).
↳ `status` | ✅ |  | 1..1 | `code` | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. Binding: `http://hl7.org/fhir/ValueSet/appointmentstatus` (required)
↳ `serviceType` | ✅ |  | 0..* | `CodeableConcept` | The specific service that is to be performed during this appointment The specific service that is to be performed during this appointment. Binding: `https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services` (example) — Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
↳ `start` | ✅ |  | 0..1 | `instant` | When appointment is to take place Date/Time that the appointment is to take place.
↳ `end` | ✅ |  | 0..1 | `instant` | When appointment is to conclude Date/Time that the appointment is to conclude.
↳ `participant` | ✅ |  | 1..* | `BackboneElement` | Participants involved in appointment List of participants involved in the appointment.
↳ `type` |  |  | 0..* | `CodeableConcept` | Role of participant in the appointment Role of participant in the appointment. Binding: `http://hl7.org/fhir/ValueSet/encounter-participant-type` (extensible)
↳ `actor` | ✅ |  | 1..1 | `Reference` target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-device target: http://hl7.org/fhir/StructureDefinition/HealthcareService target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-location | Person, Location/HealthcareService or Device A Person, Location/HealthcareService or Device that is participating in the appointment.
↳ `status` | ✅ |  | 1..1 | `code` | accepted | declined | tentative | needs-action Participation status of the actor. Binding: `http://hl7.org/fhir/ValueSet/participationstatus\|4.0.1` (required) — The Participation status of an appointment.

    ## USCoreAppointmentProfile — US Core Appointment Profile

    The US Core Appointment Profile inherits from the FHIR [Appointment](https://hl7.org/fhir/R4/appointment.html) resource; refer to it for scope and usage definitions. This profile meets the requirements of the U.S. Core Data for Interoperability (USCDI) *Appointment Data Element of the Encounter Information Data Class*. It sets minimum expectations for the Appointment resource to record, search, and fetch information about a healthcare event scheduled for a past, current, or future date and time. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption.

    - **URL:** `http://hl7.org/fhir/us/core/StructureDefinition/us-core-appointment`
    - **Version:** 0.1.0
    - **Status:** active
    - **Kind:** resource
    - **Type:** `Appointment`
    - **Base Definition:** `http://hl7.org/fhir/StructureDefinition/Appointment`
    - **Derivation:** constraint

    ### Elements (differential)

    | Element | Must Support | Add'l USCDI | Cardinality | Type | Description |
    |---|:---:|:---:|---|---|---|
    | `Appointment` |  |  | 0..* |  | **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)**<br/>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). |
    | <span style="padding-left: 1.5em;">↳</span> `identifier` | ✅ |  | 0..* | `Identifier` | **External Ids for this item**<br/>This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). |
    | <span style="padding-left: 1.5em;">↳</span> `status` | ✅ |  | 1..1 | `code` | **proposed \| pending \| booked \| arrived \| fulfilled \| cancelled \| noshow \| entered-in-error \| checked-in \| waitlist**<br/>The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.<br/><span style="font-size: 0.85em;">**Binding:** `http://hl7.org/fhir/ValueSet/appointmentstatus` (required)</span> |
    | <span style="padding-left: 1.5em;">↳</span> `serviceType` | ✅ |  | 0..* | `CodeableConcept` | **The specific service that is to be performed during this appointment**<br/>The specific service that is to be performed during this appointment.<br/><span style="font-size: 0.85em;">**Binding:** `https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services` (example) — Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.</span> |
    | <span style="padding-left: 1.5em;">↳</span> `start` | ✅ |  | 0..1 | `instant` | **When appointment is to take place**<br/>Date/Time that the appointment is to take place. |
    | <span style="padding-left: 1.5em;">↳</span> `end` | ✅ |  | 0..1 | `instant` | **When appointment is to conclude**<br/>Date/Time that the appointment is to conclude. |
    | <span style="padding-left: 1.5em;">↳</span> `participant` | ✅ |  | 1..* | `BackboneElement` | **Participants involved in appointment**<br/>List of participants involved in the appointment. |
    | <span style="padding-left: 3.0em;">↳</span> `type` |  |  | 0..* | `CodeableConcept` | **Role of participant in the appointment**<br/>Role of participant in the appointment.<br/><span style="font-size: 0.85em;">**Binding:** `http://hl7.org/fhir/ValueSet/encounter-participant-type` (extensible)</span> |
    | <span style="padding-left: 3.0em;">↳</span> `actor` | ✅ |  | 1..1 | `Reference`<br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-device</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/StructureDefinition/HealthcareService</span><br/><span style="font-size: 0.85em;">target: http://hl7.org/fhir/us/core/StructureDefinition/us-core-location</span> | **Person, Location/HealthcareService or Device**<br/>A Person, Location/HealthcareService or Device that is participating in the appointment. |
    | <span style="padding-left: 3.0em;">↳</span> `status` | ✅ |  | 1..1 | `code` | **accepted \| declined \| tentative \| needs-action**<br/>Participation status of the actor.<br/><span style="font-size: 0.85em;">**Binding:** `http://hl7.org/fhir/ValueSet/participationstatus\|4.0.1` (required) — The Participation status of an appointment.</span> |

Usages:

- Examples for this Profile: Appointment/appt-booked-physical, Appointment/appt-cancelled, Appointment/appt-from-referral, Appointment/appt-fulfilled-followup... Show 2 more, Appointment/appt-resulted-encounter and Appointment/appt-telehealth

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.

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
serviceType | S Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
start | S Σ | 0..1 | instant | When appointment is to take place
end | S Σ | 0..1 | instant | When appointment is to conclude
participant | S C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S Σ | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | 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 | Cancelation reason is only used for appointments that have been cancelled, or no-show | `Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')`
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Appointment | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Appointment | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
identifier | S | 0..* | Identifier | External Ids for this item
status | S | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
serviceType | S | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
start | S | 0..1 | instant | When appointment is to take place
end | S | 0..1 | instant | When appointment is to conclude
participant | S | 1..* | BackboneElement | Participants involved in appointment
type |  | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | Person, Location/HealthcareService or Device
status | S | 1..1 | code | accepted | declined | tentative | needs-action
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation 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 | S Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | S Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: v2 Appointment Reason Codes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | S Σ | 0..1 | instant | When appointment is to take place
end | S Σ | 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 | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | S 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 | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S Σ | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | 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
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Appointment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.cancelationReason | Base | example | Appointment cancellation reason | 📍4.0.1 | FHIR Std.
Appointment.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std.
Appointment.appointmentType | Base | preferred | v2 Appointment Reason Codes | 📦2.9 | FHIR Std.
Appointment.reasonCode | Base | preferred | Encounter Reason Codes | 📍4.0.1 | FHIR Std.
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.
Appointment.participant.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | 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 | Cancelation reason is only used for appointments that have been cancelled, or no-show | `Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')`
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Appointment | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Appointment | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Appointment

Summary

Mandatory: 4 elements
Must-Support: 8 elements

Structures

This structure refers to these other structures:

- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core RelatedPerson Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson)
- US Core Device Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-device)
- US Core Location Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-location)

Maturity: 3

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
serviceType | S Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
start | S Σ | 0..1 | instant | When appointment is to take place
end | S Σ | 0..1 | instant | When appointment is to conclude
participant | S C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S Σ | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | 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 | Cancelation reason is only used for appointments that have been cancelled, or no-show | `Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')`
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Appointment | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Appointment | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
identifier | S | 0..* | Identifier | External Ids for this item
status | S | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
serviceType | S | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
start | S | 0..1 | instant | When appointment is to take place
end | S | 0..1 | instant | When appointment is to conclude
participant | S | 1..* | BackboneElement | Participants involved in appointment
type |  | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | Person, Location/HealthcareService or Device
status | S | 1..1 | code | accepted | declined | tentative | needs-action
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation 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 | S Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required)
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | S Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services (example): Value Sets are typically bound to local service catalogs, and mapping to standard vocabularies can not be expected.
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: v2 Appointment Reason Codes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | S Σ | 0..1 | instant | When appointment is to take place
end | S Σ | 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 | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | S 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 | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible)
actor | S Σ | 1..1 | Reference(US Core Patient Profile(9.0.0-ballot) S | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile) | 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
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Appointment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Appointment.status | Base | required | AppointmentStatus | 📦4.0.1 | FHIR Std.
Appointment.cancelationReason | Base | example | Appointment cancellation reason | 📍4.0.1 | FHIR Std.
Appointment.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std.
Appointment.serviceType | Base | example | https://profiles.ihe.net/ITI/Scheduling/ValueSet/sct-services | Not State | Unknown
Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std.
Appointment.appointmentType | Base | preferred | v2 Appointment Reason Codes | 📦2.9 | FHIR Std.
Appointment.reasonCode | Base | preferred | Encounter Reason Codes | 📍4.0.1 | FHIR Std.
Appointment.participant.​type | Base | extensible | Participant type | 📦4.0.1 | FHIR Std.
Appointment.participant.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | 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 | Cancelation reason is only used for appointments that have been cancelled, or no-show | `Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')`
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Appointment | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Appointment | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Appointment

Summary

Mandatory: 4 elements
Must-Support: 8 elements

Structures

This structure refers to these other structures:

- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core RelatedPerson Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson)
- US Core Device Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-device)
- US Core Location Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-location)

Maturity: 3

Other representations of profile: CSV, Excel, Schematron