Snapshot 3: Connectathon 32 Base

This page is part of the FHIR Specification (v5.0.0-snapshot3: R5 Snapshot #3, to support Connectathon 32). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

12.15 Resource AppointmentResponse - Content

Patient Administration icon Work GroupMaturity Level: 3 Trial UseSecurity Category: Patient Compartments: Device, Patient, Practitioner, RelatedPerson

A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.

Appointment resources are used to provide information about a planned meeting that may be in the future or past. They may be for a single meeting or for a series of repeating visits. Examples include a scheduled surgery, a follow-up for a clinical visit, a scheduled conference call between clinicians to discuss a case, the reservation of a piece of diagnostic equipment for a particular use, etc. The visit scheduled by an appointment may be in person or remote (by phone, video conference, etc.) All that matters is that the time and usage of one or more individuals, locations and/or pieces of equipment is being fully or partially reserved for a designated period of time.

This definition takes the concepts of appointments in a clinical setting and also extends them to be relevant in the community healthcare space, and also ease exposure to other appointment / calendar standards widely used outside of Healthcare.

  • Making the Appointment Request

    When an appointment is required, a requester creates new Appointment resource with the Appointment.status="proposed".
    All included participants (optional or mandatory) should have the status="needs-action" to allow filtering and displaying appointments to user-participants for accepting or rejecting new and updated requests. Based on internal system business rules, certain statuses may be automatically updated, for example: "reject because the requested participant is on vacation" or "this type of user is not allowed to request those specific appointments".

  • Replying to the request

    The reply process is simply performed by the person/system handling the requests updating the participant statuses as needed. If there are multiple systems involved, then these will create AppointmentResponse entries with the desired statuses.

    Once all participants have their participation status created/updated (and the main system marking the appointment participant records with the AppointmentResponse statuses) then the overall status of the Appointment is updated.

When a recurring appointment is requested, the participant may choose to respond to each individual occurrence, in which case AppointmentResponse.recurring should be false. If the participant chooses to respond the same way for all occurrences, they may instead use a single AppointmentResponse with recurring set to true. These may be combined as the participant chooses. For example, they may accept all occurrences of a series (recurring = true), but then send a decline for a specific occurrence (recurring = false).
For more general information on recurring appointments, refer to the appointment page.

Structure

Name iconFlags iconCard. iconType iconDescription & Constraints icondoco icon
.. AppointmentResponse TUDomainResourceA reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection
+ Rule: Either the participantType or actor must be specified

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierExternal Ids for this item

... appointment Σ1..1Reference(Appointment)Appointment this response relates to
... proposedNewTime Σ0..1booleanIndicator for a counter proposal
... end 0..1instantTime from appointment, or requested new end time
... participantType Σ0..*CodeableConceptRole of participant in the appointment
ParticipantType (Extensible)

... actor Σ0..1Reference(Patient | Group | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location)Person(s), Location, HealthcareService, or Device
... participantStatus ?!Σ1..1codeaccepted | declined | tentative | needs-action
ParticipationStatus (Required)
... comment 0..1stringAdditional comments
... recurring 0..1booleanThis response is for all occurrences in a recurring request
... occurrenceDate 0..1dateOriginal date within a recurring request
... recurrenceId 0..1positiveIntThe recurrence ID of the specific recurring request

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

AppointmentResponse (DomainResource)This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriateidentifier : Identifier [0..*]Appointment that this response is replying toappointment : Reference [1..1] « Appointment »Indicates that the response is proposing a different time that was initially requested. The new proposed time will be indicated in the start and end propertiesproposedNewTime : boolean [0..1]Date/Time that the appointment is to take place, or requested new start timestart : instant [0..1]This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end timeend : instant [0..1]Role of participant in the appointmentparticipantType : CodeableConcept [0..*] « null (Strength=Extensible)ParticipantType+ »A Person, Location, HealthcareService, or Device that is participating in the appointmentactor : Reference [0..1] « Patient|Group|Practitioner| PractitionerRole|RelatedPerson|Device|HealthcareService| Location »Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty (this element modifies the meaning of other elements)participantStatus : code [1..1] « null (Strength=Required)ParticipationStatus! »Additional comments about the appointmentcomment : string [0..1]Indicates that this AppointmentResponse applies to all occurrences in a recurring requestrecurring : boolean [0..1]The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`)occurrenceDate : date [0..1]The recurrence ID (sequence number) of the specific appointment when responding to a recurring requestrecurrenceId : positiveInt [0..1]

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:AppointmentResponse;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:AppointmentResponse.identifier [ Identifier ], ... ; # 0..* External Ids for this item
  fhir:AppointmentResponse.appointment [ Reference(Appointment) ]; # 1..1 Appointment this response relates to
  fhir:AppointmentResponse.proposedNewTime [ boolean ]; # 0..1 Indicator for a counter proposal
  fhir:AppointmentResponse.start [ instant ]; # 0..1 Time from appointment, or requested new start time
  fhir:AppointmentResponse.end [ instant ]; # 0..1 Time from appointment, or requested new end time
  fhir:AppointmentResponse.participantType [ CodeableConcept ], ... ; # 0..* Role of participant in the appointment
  fhir:AppointmentResponse.actor [ Reference(Device|Group|HealthcareService|Location|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ]; # 0..1 Person(s), Location, HealthcareService, or Device
  fhir:AppointmentResponse.participantStatus [ code ]; # 1..1 accepted | declined | tentative | needs-action
  fhir:AppointmentResponse.comment [ string ]; # 0..1 Additional comments
  fhir:AppointmentResponse.recurring [ boolean ]; # 0..1 This response is for all occurrences in a recurring request
  fhir:AppointmentResponse.occurrenceDate [ date ]; # 0..1 Original date within a recurring request
  fhir:AppointmentResponse.recurrenceId [ positiveInt ]; # 0..1 The recurrence ID of the specific recurring request
]

Changes since R4

AppointmentResponse
AppointmentResponse.proposedNewTime
  • Added Element
AppointmentResponse.actor
  • Type Reference: Added Target Type Group
  • Type Reference: Added Target Type Group
AppointmentResponse.recurring
  • Added Element
AppointmentResponse.occurrenceDate
  • Added Element
AppointmentResponse.recurrenceId
  • Added Element

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)

Structure

Name iconFlags iconCard. iconType iconDescription & Constraints icondoco icon
.. AppointmentResponse TUDomainResourceA reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection
+ Rule: Either the participantType or actor must be specified

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierExternal Ids for this item

... appointment Σ1..1Reference(Appointment)Appointment this response relates to
... proposedNewTime Σ0..1booleanIndicator for a counter proposal
... end 0..1instantTime from appointment, or requested new end time
... participantType Σ0..*CodeableConceptRole of participant in the appointment
ParticipantType (Extensible)

... actor Σ0..1Reference(Patient | Group | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location)Person(s), Location, HealthcareService, or Device
... participantStatus ?!Σ1..1codeaccepted | declined | tentative | needs-action
ParticipationStatus (Required)
... comment 0..1stringAdditional comments
... recurring 0..1booleanThis response is for all occurrences in a recurring request
... occurrenceDate 0..1dateOriginal date within a recurring request
... recurrenceId 0..1positiveIntThe recurrence ID of the specific recurring request

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

AppointmentResponse (DomainResource)This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriateidentifier : Identifier [0..*]Appointment that this response is replying toappointment : Reference [1..1] « Appointment »Indicates that the response is proposing a different time that was initially requested. The new proposed time will be indicated in the start and end propertiesproposedNewTime : boolean [0..1]Date/Time that the appointment is to take place, or requested new start timestart : instant [0..1]This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end timeend : instant [0..1]Role of participant in the appointmentparticipantType : CodeableConcept [0..*] « null (Strength=Extensible)ParticipantType+ »A Person, Location, HealthcareService, or Device that is participating in the appointmentactor : Reference [0..1] « Patient|Group|Practitioner| PractitionerRole|RelatedPerson|Device|HealthcareService| Location »Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty (this element modifies the meaning of other elements)participantStatus : code [1..1] « null (Strength=Required)ParticipationStatus! »Additional comments about the appointmentcomment : string [0..1]Indicates that this AppointmentResponse applies to all occurrences in a recurring requestrecurring : boolean [0..1]The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`)occurrenceDate : date [0..1]The recurrence ID (sequence number) of the specific appointment when responding to a recurring requestrecurrenceId : positiveInt [0..1]

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:AppointmentResponse;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:AppointmentResponse.identifier [ Identifier ], ... ; # 0..* External Ids for this item
  fhir:AppointmentResponse.appointment [ Reference(Appointment) ]; # 1..1 Appointment this response relates to
  fhir:AppointmentResponse.proposedNewTime [ boolean ]; # 0..1 Indicator for a counter proposal
  fhir:AppointmentResponse.start [ instant ]; # 0..1 Time from appointment, or requested new start time
  fhir:AppointmentResponse.end [ instant ]; # 0..1 Time from appointment, or requested new end time
  fhir:AppointmentResponse.participantType [ CodeableConcept ], ... ; # 0..* Role of participant in the appointment
  fhir:AppointmentResponse.actor [ Reference(Device|Group|HealthcareService|Location|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ]; # 0..1 Person(s), Location, HealthcareService, or Device
  fhir:AppointmentResponse.participantStatus [ code ]; # 1..1 accepted | declined | tentative | needs-action
  fhir:AppointmentResponse.comment [ string ]; # 0..1 Additional comments
  fhir:AppointmentResponse.recurring [ boolean ]; # 0..1 This response is for all occurrences in a recurring request
  fhir:AppointmentResponse.occurrenceDate [ date ]; # 0..1 Original date within a recurring request
  fhir:AppointmentResponse.recurrenceId [ positiveInt ]; # 0..1 The recurrence ID of the specific recurring request
]

Changes since Release 4

AppointmentResponse
AppointmentResponse.proposedNewTime
  • Added Element
AppointmentResponse.actor
  • Type Reference: Added Target Type Group
  • Type Reference: Added Target Type Group
AppointmentResponse.recurring
  • Added Element
AppointmentResponse.occurrenceDate
  • Added Element
AppointmentResponse.recurrenceId
  • Added Element

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathDefinitionTypeReference
AppointmentResponse.participantType

This value set defines a set of codes that can be used to indicate how an individual participates in an encounter.

ExtensibleParticipantType
AppointmentResponse.participantStatus

The Participation status of an appointment.

RequiredParticipationStatus

UniqueKeyLevelLocationDescriptionExpression
img apr-1Rule (base)Either the participantType or actor must be specifiedparticipantType.exists() or actor.exists()

Recurring appointments need to have the time zone defined in which the values were entered. Knowing that the start time was at 9:00:00Z+10 does not mean that the same time in 2 weeks is actually the same.

For example, if this was a time in Brisbane Australia, this time would be the same (in respect to its offset from UTC), however if this was for Melbourne Australia, during the daylight savings period Melbourne time zone becomes +11. So, without the additional information as to which time zone it was created in, scheduling a 9am appointment every Wednesday would not be possible.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
actorreferenceThe Person, Location/HealthcareService or Device that this appointment response replies forAppointmentResponse.actor
(Practitioner, Group, Device, Patient, HealthcareService, PractitionerRole, RelatedPerson, Location)
appointmentreferenceThe appointment that the response is attached toAppointmentResponse.appointment
(Appointment)
groupreferenceThis Response is for this GroupAppointmentResponse.actor.where(resolve() is Group)
(Group)
identifiertokenAn Identifier in this appointment responseAppointmentResponse.identifier
locationreferenceThis Response is for this LocationAppointmentResponse.actor.where(resolve() is Location)
(Location)
part-statustokenThe participants acceptance status for this appointmentAppointmentResponse.participantStatus
patientreferenceThis Response is for this PatientAppointmentResponse.actor.where(resolve() is Patient)
(Patient)
practitionerreferenceThis Response is for this PractitionerAppointmentResponse.actor.where(resolve() is Practitioner)
(Practitioner)