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.0-snapshot 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
| Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-appointment-no-order | Version: | 2.2.0-snapshot|||
| Standards status: Trial-use Active as of 2026-01-30 | Maturity Level: 1 | Computable Name: CRDAppointmentNoOrder | ||
| Other Identifiers: OID:2.16.840.1.113883.4.642.40.18.42.4 | ||||
An appointment where the details of what the appointment is being booked for are provided inline and there is no associated ServiceRequest
CRD Clients SHALL use either this Appointment with Order profile and/or the with-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-1
This profile conveys the details of the appointment within the resource itself and does not make reference to a ServiceRequest.
Information provided in Must Support elements will commonly be required for CRD Servers to perform coverage requirements discovery.
Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
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 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
S | 0..* | Resource | Contained, inline Resources |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
SC | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8 |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 0..* | Identifier | External Ids for this item |
![]() ![]() |
?!SΣ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed |
![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this Binding: ServiceCategory (example) |
![]() ![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) |
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) |
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred) |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) |
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) |
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to take place |
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to conclude |
![]() ![]() |
C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1 |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() ![]() |
SC | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() ![]() |
SC | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() |
SC | 0..1 | Period | Potential date/time interval(s) requested to allocate the appointment within |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Appointment.status | Base | required | AppointmentStatus | 📍4.0.1 | FHIR Std. |
| Appointment.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Appointment.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
| Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Appointment.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v7.0 |
| 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. |
| 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()
|
| crd-ci-q1 | error | Appointment.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists |
extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()
|
| crd-ci-q2 | error | Appointment.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. |
extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()
|
| crd-ci-q3 | error | Appointment.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. |
extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()
|
| crd-ci-q4 | error | Appointment.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. |
extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')
|
| crd-ci-q5 | error | Appointment.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. |
extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()
|
| crd-ci-q6 | error | Appointment.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified |
extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()
|
| crd-ci-q7 | error | Appointment.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present |
extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')
|
| crd-ci-q8 | error | Appointment.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present |
extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').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: ![]() ![]() |
|---|---|---|---|---|
![]() |
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) | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information |
![]() ![]() |
S | 0..* | Identifier | External Ids for this item |
![]() ![]() |
S | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) |
![]() ![]() |
S | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) |
![]() ![]() |
S | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment |
![]() ![]() |
S | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) |
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Appointment.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
S | 0..* | Resource | Contained, inline Resources | ||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SC | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8 | ||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
SΣ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this Binding: ServiceCategory (example) | ||||
![]() ![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) | ||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) | ||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred) | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place. | ||||
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) | ||||
![]() ![]() |
0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize | |||||
![]() ![]() |
0..1 | string | Shown on a subject line in a meeting request, or appointment list | |||||
![]() ![]() |
0..* | Reference(Resource) | Additional information to support the appointment | |||||
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to take place | ||||
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to conclude | ||||
![]() ![]() |
0..1 | positiveInt | Can be less than start/end (e.g. estimate) | |||||
![]() ![]() |
0..* | Reference(Slot) | The slots that this appointment is filling | |||||
![]() ![]() |
0..1 | dateTime | The date that this appointment was initially created | |||||
![]() ![]() |
0..1 | string | Additional comments | |||||
![]() ![]() |
0..1 | string | Detailed information and instructions for the patient | |||||
![]() ![]() |
0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess | |||||
![]() ![]() |
C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1 | ||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() ![]() |
SC | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1 | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() ![]() |
SC | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1 | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() |
SC | 0..1 | Period | Potential date/time interval(s) requested to allocate the appointment within | ||||
Documentation for this format | ||||||||
| 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.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
| Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Appointment.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v7.0 |
| 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. |
| 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. |
| 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()
|
| crd-ci-q1 | error | Appointment.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists |
extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()
|
| crd-ci-q2 | error | Appointment.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. |
extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()
|
| crd-ci-q3 | error | Appointment.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. |
extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()
|
| crd-ci-q4 | error | Appointment.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. |
extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')
|
| crd-ci-q5 | error | Appointment.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. |
extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()
|
| crd-ci-q6 | error | Appointment.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified |
extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()
|
| crd-ci-q7 | error | Appointment.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present |
extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')
|
| crd-ci-q8 | error | Appointment.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present |
extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').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
Must-Support: 11 elements
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Maturity: 1
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
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 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
S | 0..* | Resource | Contained, inline Resources |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
SC | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8 |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 0..* | Identifier | External Ids for this item |
![]() ![]() |
?!SΣ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed |
![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this Binding: ServiceCategory (example) |
![]() ![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) |
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) |
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred) |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) |
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) |
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to take place |
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to conclude |
![]() ![]() |
C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1 |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() ![]() |
SC | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() ![]() |
SC | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. |
![]() ![]() |
SC | 0..1 | Period | Potential date/time interval(s) requested to allocate the appointment within |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Appointment.status | Base | required | AppointmentStatus | 📍4.0.1 | FHIR Std. |
| Appointment.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Appointment.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
| Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Appointment.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v7.0 |
| 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. |
| 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()
|
| crd-ci-q1 | error | Appointment.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists |
extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()
|
| crd-ci-q2 | error | Appointment.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. |
extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()
|
| crd-ci-q3 | error | Appointment.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. |
extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()
|
| crd-ci-q4 | error | Appointment.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. |
extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')
|
| crd-ci-q5 | error | Appointment.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. |
extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()
|
| crd-ci-q6 | error | Appointment.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified |
extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()
|
| crd-ci-q7 | error | Appointment.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present |
extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')
|
| crd-ci-q8 | error | Appointment.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present |
extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').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: ![]() ![]() |
|---|---|---|---|---|
![]() |
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) | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information |
![]() ![]() |
S | 0..* | Identifier | External Ids for this item |
![]() ![]() |
S | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) |
![]() ![]() |
S | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) |
![]() ![]() |
S | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment |
![]() ![]() |
S | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) |
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Appointment.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
Snapshot ViewView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
S | 0..* | Resource | Contained, inline Resources | ||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SC | 0..* | (Complex) | CoverageInfo URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8 | ||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
SΣ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Appointment status Binding: AppointmentStatus (required): The free/busy status of an appointment. Example General: proposed | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Slice: Unordered, Open by value:$this Binding: ServiceCategory (example) | ||||
![]() ![]() ![]() |
SΣ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: USCoreServiceRequestCategoryCodes (7.0.0) (required) | ||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | inpatient, outpatient, etc. Binding: ActEncounterCode (3.0.0) (required) | ||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | X-ray, Lab, consulation, surgical, etc. Binding: X12 Service Type (required) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Codes to identify requested services. (CPT, SNOMED CT or LOINC) Binding: CRD Service Request Codes Value Set (extensible): Codes describing the type of Service | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible) | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred) | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred) | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place. | ||||
![]() ![]() |
S | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource) | ||||
![]() ![]() |
0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize | |||||
![]() ![]() |
0..1 | string | Shown on a subject line in a meeting request, or appointment list | |||||
![]() ![]() |
0..* | Reference(Resource) | Additional information to support the appointment | |||||
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to take place | ||||
![]() ![]() |
SΣC | 0..1 | instant | When appointment is to conclude | ||||
![]() ![]() |
0..1 | positiveInt | Can be less than start/end (e.g. estimate) | |||||
![]() ![]() |
0..* | Reference(Slot) | The slots that this appointment is filling | |||||
![]() ![]() |
0..1 | dateTime | The date that this appointment was initially created | |||||
![]() ![]() |
0..1 | string | Additional comments | |||||
![]() ![]() |
0..1 | string | Detailed information and instructions for the patient | |||||
![]() ![]() |
0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess | |||||
![]() ![]() |
C | 2..* | BackboneElement | Participants involved in appointment Slice: Unordered, Open by value:type, profile:actor.resolve() Constraints: app-1 | ||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() ![]() |
SC | 1..1 | BackboneElement | Participants involved in appointment Constraints: app-1 | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Patient) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() ![]() |
SC | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1 | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ParticipationType | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PPRF | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
SΣ | 0..1 | Reference(CRD Practitioner | HRex PractitionerRole Profile | CRD Location) | Person, Location/HealthcareService or Device | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment. | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment. | ||||
![]() ![]() ![]() ![]() |
0..1 | Period | Participation period of the actor | |||||
![]() ![]() |
SC | 0..1 | Period | Potential date/time interval(s) requested to allocate the appointment within | ||||
Documentation for this format | ||||||||
| 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.serviceCategory:us-core | Base | required | US Core ServiceRequest Category Codes | 📍7.0.0 | US Core v7.0 |
| Appointment.serviceCategory:encounterType | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.0 |
| Appointment.serviceCategory:serviceType | Base | required | X12 Service Type | 📦2.2.0-snapshot | This IG |
| Appointment.serviceType | Base | extensible | CRD Service Request Codes Value Set | 📦2.2.0-snapshot | This IG |
| Appointment.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Appointment.appointmentType | Base | preferred | hl7VS-appointmentReasonCodes | 📦2.0.0 | THO v7.0 |
| 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. |
| 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. |
| 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()
|
| crd-ci-q1 | error | Appointment.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists |
extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()
|
| crd-ci-q2 | error | Appointment.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. |
extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()
|
| crd-ci-q3 | error | Appointment.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. |
extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()
|
| crd-ci-q4 | error | Appointment.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. |
extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')
|
| crd-ci-q5 | error | Appointment.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. |
extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()
|
| crd-ci-q6 | error | Appointment.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified |
extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()
|
| crd-ci-q7 | error | Appointment.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present |
extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')
|
| crd-ci-q8 | error | Appointment.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present |
extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').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
Must-Support: 11 elements
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Maturity: 1
Other representations of profile: CSV, Excel, Schematron