Da Vinci - Coverage Requirements Discovery
2.2.1 - STU 2.2

Da Vinci - Coverage Requirements Discovery, published by HL7 International / Financial Management. This guide is not an authorized publication; it is the continuous build for version 2.2.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-crd/ and changes regularly. See the Directory of published versions

## Resource Profile: CRD Appointment with Order

Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-appointment-with-order | Version: 2.2.1 | Highlight text changes?
Standards status: Trial-use Active as of 2026-03-26 | Maturity Level: 1 | Computable Name: CRDAppointmentWithOrder
Other Identifiers: OID:2.16.840.1.113883.4.642.40.18.42.5

An appointment where the details of what the appointment is being booked for are provided in the associated ServiceRequest

### Usage

CRD Clients SHALL use either this Appointment without Order and/or the no-order to provide `appointments` context objects to CRD Servers when invoking the appointment-book hook as well as to resolve other references to Appointment resources. §prof-2

This profile conveys the details of the appointment in an associated ServiceRequest.

Information provided in Must Support elements will commonly be required for CRD Servers to perform coverage requirements discovery.

Usages:

- Use this Profile: CRD CDSHooks Additional Orders Response (Logical Definition), CRD CDSHooks Alternate Request Response (Logical Definition), CRD Bundle of Appointments and CRD Bundle of Request Resources
- Refer to this Profile: Coverage Information and CRD Encounter
- CapabilityStatements using this Profile: CRD Client USCDI 1, CRD Client USCDI 3 and CRD Client USCDI 4

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | CRDAppointmentBase | 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, crd-apt1, crd-apt2
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained | S | 0..* | Resource | Contained, inline Resources
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed
start | S Σ C | 0..1 | instant | When appointment is to take place
end | S Σ C | 0..1 | instant | When appointment is to conclude
basedOn | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
Slices for extension |  |  |  | Content/Rules for all slices
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/alternate-reference"
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
Slices for participant | C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1
participant:All Slices |  |  |  | Content/Rules for all slices
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
participant:Patient | S C | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
participant:PrimaryPerformer | S C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
actor | S Σ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
requestedPeriod | S C | 0..1 | 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.status | Base | required | AppointmentStatus | 📍4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
app-1 | error | Appointment.participant, Appointment.participant:Patient, Appointment.participant:PrimaryPerformer | 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')`
crd-apt1 | error | Appointment | Must have either start or requestedPeriod.start | `start.exists() or requestedPeriod.start.exists()`
crd-apt2 | error | Appointment | Must have either end or requestedPeriod.end | `end.exists() or requestedPeriod.end.exists()`
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()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | CRDAppointmentBase | 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)
basedOn | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
Slices for extension |  |  |  | Content/Rules for all slices
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | CRDAppointmentBase | 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, crd-apt1, crd-apt2
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 | S | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed
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 | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
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: Hl7VSAppointmentReasonCodes (3.0.0) (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 Σ C | 0..1 | instant | When appointment is to take place
end | S Σ C | 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 | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/alternate-reference"
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
Slices for participant | C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1
participant:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | S Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
participant:Patient | S C | 1..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): Role of participant in encounter.
actor | S Σ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
participant:PrimaryPerformer | 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 | Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
actor | S Σ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod | S C | 0..1 | 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 | Service type | 📍4.0.1 | FHIR Std.
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.1
Appointment.reasonCode | Base | preferred | Encounter Reason Codes | 📍4.0.1 | FHIR Std.
Appointment.basedOn.​type | Base | extensible | ResourceType | 📍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.
Appointment.participant:Patient.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
app-1 | error | Appointment.participant, Appointment.participant:Patient, Appointment.participant:PrimaryPerformer | 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')`
crd-apt1 | error | Appointment | Must have either start or requestedPeriod.start | `start.exists() or requestedPeriod.start.exists()`
crd-apt2 | error | Appointment | Must have either end or requestedPeriod.end | `end.exists() or requestedPeriod.end.exists()`
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()`

Summary

Mandatory: 1 element
Must-Support: 2 elements

Structures

This structure refers to these other structures:

- CRD Service Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest)
- CRD Medication Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest)
- CRD Device Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-devicerequest)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/alternate-reference|5.3.0-ballot-tc1

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | CRDAppointmentBase | 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, crd-apt1, crd-apt2
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained | S | 0..* | Resource | Contained, inline Resources
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed
start | S Σ C | 0..1 | instant | When appointment is to take place
end | S Σ C | 0..1 | instant | When appointment is to conclude
basedOn | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
Slices for extension |  |  |  | Content/Rules for all slices
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/alternate-reference"
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
Slices for participant | C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1
participant:All Slices |  |  |  | Content/Rules for all slices
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
participant:Patient | S C | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
participant:PrimaryPerformer | S C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
actor | S Σ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
requestedPeriod | S C | 0..1 | 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.status | Base | required | AppointmentStatus | 📍4.0.1 | FHIR Std.
Appointment.participant.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
app-1 | error | Appointment.participant, Appointment.participant:Patient, Appointment.participant:PrimaryPerformer | 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')`
crd-apt1 | error | Appointment | Must have either start or requestedPeriod.start | `start.exists() or requestedPeriod.start.exists()`
crd-apt2 | error | Appointment | Must have either end or requestedPeriod.end | `end.exists() or requestedPeriod.end.exists()`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | CRDAppointmentBase | 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)
basedOn | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
Slices for extension |  |  |  | Content/Rules for all slices
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
Documentation for this format

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | CRDAppointmentBase | 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, crd-apt1, crd-apt2
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 | S | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Ids for this item
status | ?!S Σ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed
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 | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
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: Hl7VSAppointmentReasonCodes (3.0.0) (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 Σ C | 0..1 | instant | When appointment is to take place
end | S Σ C | 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 | S | 1..* | Reference(CRD Service Request) | The service request this appointment is allocated to assess
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:AlternateReference | S | 0..1 | (Complex) | Alternative reference (target type is wrong) URL: http://hl7.org/fhir/StructureDefinition/alternate-reference
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/alternate-reference"
value[x] |  | 1..1 | Reference(CRD Medication Request | CRD Device Request) | Value of extension
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
Slices for participant | C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1
participant:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | S Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
participant:Patient | S C | 1..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): Role of participant in encounter.
actor | S Σ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
participant:PrimaryPerformer | 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 | Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
actor | S Σ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod | S C | 0..1 | 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 | Service type | 📍4.0.1 | FHIR Std.
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.1
Appointment.reasonCode | Base | preferred | Encounter Reason Codes | 📍4.0.1 | FHIR Std.
Appointment.basedOn.​type | Base | extensible | ResourceType | 📍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.
Appointment.participant:Patient.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant:Patient.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​type | Base | extensible | Participant type | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​required | Base | required | ParticipantRequired | 📍4.0.1 | FHIR Std.
Appointment.participant:PrimaryPerformer.​status | Base | required | ParticipationStatus | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
app-1 | error | Appointment.participant, Appointment.participant:Patient, Appointment.participant:PrimaryPerformer | 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')`
crd-apt1 | error | Appointment | Must have either start or requestedPeriod.start | `start.exists() or requestedPeriod.start.exists()`
crd-apt2 | error | Appointment | Must have either end or requestedPeriod.end | `end.exists() or requestedPeriod.end.exists()`
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()`

Summary

Mandatory: 1 element
Must-Support: 2 elements

Structures

This structure refers to these other structures:

- CRD Service Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest)
- CRD Medication Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest)
- CRD Device Request (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-devicerequest)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/alternate-reference|5.3.0-ballot-tc1

Maturity: 1

Other representations of profile: CSV, Excel, Schematron