US Core Implementation Guide
10.0.0-ballot - STU 10 Ballot United States of America flag

US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 10.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/US-Core/ 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: 10.0.0-ballot
Standards status: Trial-use Maturity Level: 2 Computable Name: USCoreAppointmentProfile
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.42.72

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.

This artifact is new for US Core Version 10.0.0-ballot

Example Usage Scenarios:

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

  • Query for Appointment resources belonging to a Patient
  • Query for a Patient's Appointment resources by date or status
  • 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
  3. who or what is participating in the appointment (a patient, a practitioner, or a location)
  4. the participation status of that participant

Each Appointment Must Support:

  1. an appointment identifier
  2. the specific service to be performed during the appointment1
  3. when the appointment starts2
  4. when the appointment ends2
  5. the role of the participant in the appointment

1,2 see guidance below

Profile Specific Implementation Guidance

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

  • 1Service type codes are typically drawn from a local service catalog, and instances are not expected to draw from a specified value set. Therefore, Appointment.serviceType uses an example binding.

  • 2The base FHIR invariant app-2 requires that either both the start and end time or neither are supplied. When a system knows only when an appointment starts, follow the Missing Data guidance and supply the end time with the DataAbsentReason Extension using the code "unknown":

    {
      "resourceType" : "Appointment",
           ...
           "start" : "2026-09-15T14:00:00Z",
           "_end" : {
             "extension" : [
               {
                 "url" : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
                 "valueCode" : "unknown"
               }
             ]
           }
           ...
    }
    

Usages:

You can also check for usages in the FHIR IG Statistics

Changes since version 9.0.0:

  • New Content
  • Formal Views of Profile Content

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

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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
    Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
    Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
    Appointment.identifier This element must be supported. This element is included in summaries. 0..* Identifier External Ids for this item
    Appointment.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.serviceType This element must be supported. This element is included in summaries. 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.
    Appointment.start This element must be supported. This element is included in summaries. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. This element is included in summaries. 0..1 instant When appointment is to conclude
    Appointment.participant This element must be supported. C 1..* BackboneElement Participants involved in appointment
    Constraints: app-1
    Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
    Appointment.participant.type This element must be supported. This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. This element is included in summaries. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.status This element must be supported. This element is included in summaries. 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.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

    This structure is derived from Appointment

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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)
    Appointment.identifier This element must be supported. 0..* Identifier External Ids for this item
    Appointment.status This element must be supported. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.serviceType This element must be supported. 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.
    Appointment.start This element must be supported. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. 0..1 instant When appointment is to conclude
    Appointment.participant This element must be supported. 1..* BackboneElement Participants involved in appointment
    Appointment.participant.type This element must be supported. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.status This element must be supported. 1..1 code accepted | declined | tentative | needs-action

    doco 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.
    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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
    Appointment.id This element is included in summaries. 0..1 id Logical id of this artifact
    Appointment.meta This element is included in summaries. 0..1 Meta Metadata about the resource
    Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
    Appointment.language 0..1 code Language of the resource content
    Binding: CommonLanguages (preferred): A human language.
    Additional BindingsPurpose
    AllLanguages Max Binding
    Appointment.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
    Appointment.contained 0..* Resource Contained, inline Resources
    Appointment.extension 0..* Extension Additional content defined by implementations
    Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
    Appointment.identifier This element must be supported. This element is included in summaries. 0..* Identifier External Ids for this item
    Appointment.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.cancelationReason This element is included in summaries. 0..1 CodeableConcept The coded reason for the appointment being cancelled
    Binding: AppointmentCancellationReason (example)
    Appointment.serviceCategory This element is included in summaries. 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
    Binding: ServiceCategory (example)
    Appointment.serviceType This element must be supported. This element is included in summaries. 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.
    Appointment.specialty This element is included in summaries. 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
    Binding: PracticeSettingCodeValueSet (preferred)
    Appointment.appointmentType This element is included in summaries. 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
    Binding: hl7VS-appointmentReasonCodes (preferred)
    Appointment.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason this appointment is scheduled
    Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
    Appointment.reasonReference 0..* Reference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason the appointment is to take place (resource)
    Appointment.priority 0..1 unsignedInt Used to make informed decisions if needing to re-prioritize
    Appointment.description 0..1 string Shown on a subject line in a meeting request, or appointment list
    Appointment.supportingInformation 0..* Reference(Resource) Additional information to support the appointment
    Appointment.start This element must be supported. This element is included in summaries. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. This element is included in summaries. 0..1 instant When appointment is to conclude
    Appointment.minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
    Appointment.slot 0..* Reference(Slot) The slots that this appointment is filling
    Appointment.created 0..1 dateTime The date that this appointment was initially created
    Appointment.comment 0..1 string Additional comments
    Appointment.patientInstruction 0..1 string Detailed information and instructions for the patient
    Appointment.basedOn 0..* Reference(ServiceRequest) The service request this appointment is allocated to assess
    Appointment.participant This element must be supported. C 1..* BackboneElement Participants involved in appointment
    Constraints: app-1
    Appointment.participant.id 0..1 string Unique id for inter-element referencing
    Appointment.participant.extension 0..* Extension Additional content defined by implementations
    Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
    Appointment.participant.type This element must be supported. This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. This element is included in summaries. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.required This element is included in summaries. 0..1 code required | optional | information-only
    Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
    Appointment.participant.status This element must be supported. This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
    Binding: ParticipationStatus (required): The Participation status of an appointment.
    Appointment.participant.period 0..1 Period Participation period of the actor
    Appointment.requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within

    doco 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 hl7VS-appointmentReasonCodes 📦3.0.0 THO v7.4
    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

    Key Elements View

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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
    Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
    Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
    Appointment.identifier This element must be supported. This element is included in summaries. 0..* Identifier External Ids for this item
    Appointment.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.serviceType This element must be supported. This element is included in summaries. 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.
    Appointment.start This element must be supported. This element is included in summaries. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. This element is included in summaries. 0..1 instant When appointment is to conclude
    Appointment.participant This element must be supported. C 1..* BackboneElement Participants involved in appointment
    Constraints: app-1
    Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
    Appointment.participant.type This element must be supported. This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. This element is included in summaries. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.status This element must be supported. This element is included in summaries. 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.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

    Differential View

    This structure is derived from Appointment

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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)
    Appointment.identifier This element must be supported. 0..* Identifier External Ids for this item
    Appointment.status This element must be supported. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.serviceType This element must be supported. 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.
    Appointment.start This element must be supported. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. 0..1 instant When appointment is to conclude
    Appointment.participant This element must be supported. 1..* BackboneElement Participants involved in appointment
    Appointment.participant.type This element must be supported. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.status This element must be supported. 1..1 code accepted | declined | tentative | needs-action

    doco 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

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    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
    Appointment.id This element is included in summaries. 0..1 id Logical id of this artifact
    Appointment.meta This element is included in summaries. 0..1 Meta Metadata about the resource
    Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
    Appointment.language 0..1 code Language of the resource content
    Binding: CommonLanguages (preferred): A human language.
    Additional BindingsPurpose
    AllLanguages Max Binding
    Appointment.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
    Appointment.contained 0..* Resource Contained, inline Resources
    Appointment.extension 0..* Extension Additional content defined by implementations
    Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
    Appointment.identifier This element must be supported. This element is included in summaries. 0..* Identifier External Ids for this item
    Appointment.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
    Binding: AppointmentStatus (required)
    Appointment.cancelationReason This element is included in summaries. 0..1 CodeableConcept The coded reason for the appointment being cancelled
    Binding: AppointmentCancellationReason (example)
    Appointment.serviceCategory This element is included in summaries. 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
    Binding: ServiceCategory (example)
    Appointment.serviceType This element must be supported. This element is included in summaries. 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.
    Appointment.specialty This element is included in summaries. 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
    Binding: PracticeSettingCodeValueSet (preferred)
    Appointment.appointmentType This element is included in summaries. 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
    Binding: hl7VS-appointmentReasonCodes (preferred)
    Appointment.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason this appointment is scheduled
    Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
    Appointment.reasonReference 0..* Reference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason the appointment is to take place (resource)
    Appointment.priority 0..1 unsignedInt Used to make informed decisions if needing to re-prioritize
    Appointment.description 0..1 string Shown on a subject line in a meeting request, or appointment list
    Appointment.supportingInformation 0..* Reference(Resource) Additional information to support the appointment
    Appointment.start This element must be supported. This element is included in summaries. 0..1 instant When appointment is to take place
    Appointment.end This element must be supported. This element is included in summaries. 0..1 instant When appointment is to conclude
    Appointment.minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
    Appointment.slot 0..* Reference(Slot) The slots that this appointment is filling
    Appointment.created 0..1 dateTime The date that this appointment was initially created
    Appointment.comment 0..1 string Additional comments
    Appointment.patientInstruction 0..1 string Detailed information and instructions for the patient
    Appointment.basedOn 0..* Reference(ServiceRequest) The service request this appointment is allocated to assess
    Appointment.participant This element must be supported. C 1..* BackboneElement Participants involved in appointment
    Constraints: app-1
    Appointment.participant.id 0..1 string Unique id for inter-element referencing
    Appointment.participant.extension 0..* Extension Additional content defined by implementations
    Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
    Appointment.participant.type This element must be supported. This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
    Binding: ParticipantType (extensible)
    Appointment.participant.actor This element must be supported. This element is included in summaries. 1..1 Reference(US Core Patient Profile This type must be supported. | US Core Practitioner Profile This type must be supported. | US Core PractitionerRole Profile | US Core RelatedPerson Profile | US Core Device Profile | HealthcareService | US Core Location Profile This type must be supported. ) Person, Location/HealthcareService or Device
    Appointment.participant.required This element is included in summaries. 0..1 code required | optional | information-only
    Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
    Appointment.participant.status This element must be supported. This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
    Binding: ParticipationStatus (required): The Participation status of an appointment.
    Appointment.participant.period 0..1 Period Participation period of the actor
    Appointment.requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within

    doco 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 hl7VS-appointmentReasonCodes 📦3.0.0 THO v7.4
    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

     

    Other representations of profile: CSV, Excel, Schematron

    Notes:


    Quick Start


    Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile's information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

    • See the Scopes Format section for a description of the SMART scopes syntax.
    • See the Search Syntax section for a description of the US Core search syntax.
    • See the General Requirements section for additional rules and expectations when a Server requires status parameters.
    • See the General Guidance section for additional guidance on searching for multiple patients.

    US Core Scopes

    Servers providing access to appointment data SHALL support these US Core SMART Scopes:


    Mandatory Search Parameters:

    The following search parameters and search parameter combinations SHALL be supported:

    1. SHALL support both read Appointment by id AND Appointment search using the _id search parameter

      GET [base]/Appointment?_id=[id]' or 'GET [base]/Appointment/[id]

      Examples:

      1. GET [base]/Appointment/12354

      2. GET [base]/Appointment?_id=12354

      Implementation Notes: Fetches a single US Core Appointment Profile or a search Bundle containing an US Core Appointment Profile resource matching the id (see Parameters for all resources).

    2. SHALL support searching for all appointments for a patient using the patient search parameter

      GET [base]/Appointment?patient={Patient/}[id]

      Example:

      1. GET [base]/Appointment?patient=Patient/1137192

      Implementation Notes: Fetches a bundle of all US Core Appointment Profile resources for the specified patient ( see how to search by reference).

    Optional Search Parameters:

    The following search parameters and search parameter combinations SHOULD be supported

    1. SHOULD support searching for all appointments for a patient by date using the combination of the patient and date search parameters

      • Including optional support for AND search on date (e.g.date=[date]&date=[date]&...)

      • Including support for these date comparators: "gt", "lt", "ge", "le"

      GET [base]/Appointment?patient={Patient/}[id]&date={gt|lt|ge|le}[dateTime]{&date={gt|lt|ge|le}[dateTime]&...}

      Example:

      1. GET [base]/Appointment?patient=Patient/1137192&date=ge2026-01-01T00:00:00Z

      Implementation Notes: Fetches a bundle of all US Core Appointment Profile resources matching the specified date and patient ( see how to search by reference and how to search by date).

    2. SHOULD support searching for all appointments for a patient by status (for example, all booked appointments) using the combination of the patient and status search parameters

      GET [base]/Appointment?patient={Patient/}[id]&status={system|}[search_code]

      Example:

      1. GET [base]/Appointment?patient=Patient/1137192&status=booked

      Implementation Notes: Fetches a bundle of all US Core Appointment Profile resources matching the specified patient and status ( see how to search by reference and how to search by token).