--- type: "resource" title: "AppointmentResponse" resource: "AppointmentResponse" --- # AppointmentResponse ## Introduction ## Scope and Usage 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. ### The basic workflow to create an appointment - **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. To "invalidate" an appointment response it should have the status changed to entered-in-error, or simply delete the resource. ### Recurring Appointments 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](appointment#recurring). ## Boundaries and Relationships AppointmentResponse is a response to an Appointment. It is used to record the outcome of the request for an appointment. The AppointmentResponse resource is only used as a response to proposed Appointments. Further details are available in the [Appointment Boundaries and Relationships](appointment#bnr) ## Notes ## Notes: ### Timezones and recurring appointments Recurring appointments need to have the timezone 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 timezone becomes +11. So, without the additional information as to which timezone it was created in, scheduling a 9am appointment every Wednesday would not be possible. ## StructureDefinition ### Elements (Simplified) - **[AppointmentResponse](/appointmentresponse-definitions#AppointmentResponse)** [0..*]: - A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection - **[AppointmentResponse.identifier](/appointmentresponse-definitions#AppointmentResponse.identifier)** [0..*]: [Identifier](/Identifier) External Ids for this item - **[AppointmentResponse.appointment](/appointmentresponse-definitions#AppointmentResponse.appointment)** [1..1]: Reference([Appointment](/Appointment)) Appointment this response relates to - **[AppointmentResponse.proposedNewTime](/appointmentresponse-definitions#AppointmentResponse.proposedNewTime)** [0..1]: [boolean](/boolean) Indicator for a counter proposal - **[AppointmentResponse.start](/appointmentresponse-definitions#AppointmentResponse.start)** [0..1]: [instant](/instant) Time from appointment, or requested new start time - **[AppointmentResponse.end](/appointmentresponse-definitions#AppointmentResponse.end)** [0..1]: [instant](/instant) Time from appointment, or requested new end time - **[AppointmentResponse.participantType](/appointmentresponse-definitions#AppointmentResponse.participantType)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[encounter-participant-type](/valueset-encounter-participant-type) Role of participant in the appointment - **[AppointmentResponse.actor](/appointmentresponse-definitions#AppointmentResponse.actor)** [0..1]: [Reference(Patient](/Reference(Patient), [Group](/Group), [Practitioner](/Practitioner), [PractitionerRole](/PractitionerRole), [RelatedPerson](/RelatedPerson), [Device](/Device), [HealthcareService](/HealthcareService), [Location)](/Location)) Person(s), Location, HealthcareService, or Device - **[AppointmentResponse.participantStatus](/appointmentresponse-definitions#AppointmentResponse.participantStatus)** [1..1]: [code](/code) required:[appointmentresponse-status](/valueset-appointmentresponse-status) accepted | declined | tentative | needs-action | entered-in-error - **[AppointmentResponse.comment](/appointmentresponse-definitions#AppointmentResponse.comment)** [0..1]: [markdown](/markdown) Additional comments - **[AppointmentResponse.recurring](/appointmentresponse-definitions#AppointmentResponse.recurring)** [0..1]: [boolean](/boolean) This response is for all occurrences in a recurring request - **[AppointmentResponse.occurrenceDate](/appointmentresponse-definitions#AppointmentResponse.occurrenceDate)** [0..1]: [date](/date) Original date within a recurring request - **[AppointmentResponse.recurrenceId](/appointmentresponse-definitions#AppointmentResponse.recurrenceId)** [0..1]: [positiveInt](/positiveInt) The recurrence ID of the specific recurring request ## Mappings - [AppointmentResponse Mappings](/appointmentresponse-mappings) — 24 mapping entries ## Resource Packs ### list-AppointmentResponse-packs.xml ```xml ``` ## Search Parameters - [actor](/appointmentresponse-search#actor) — **reference** — The Person, Location/HealthcareService or Device that this appointment response replies for — `AppointmentResponse.actor` - [appointment](/appointmentresponse-search#appointment) — **reference** — The appointment that the response is attached to — `AppointmentResponse.appointment` - [identifier](/appointmentresponse-search#identifier) — **token** — An Identifier in this appointment response — `AppointmentResponse.identifier` - [location](/appointmentresponse-search#location) — **reference** — This Response is for this Location — `AppointmentResponse.actor.where(resolve() is Location)` - [part-status](/appointmentresponse-search#part-status) — **token** — The participants acceptance status for this appointment — `AppointmentResponse.participantStatus` - [patient](/appointmentresponse-search#patient) — **reference** — This Response is for this Patient — `AppointmentResponse.actor.where(resolve() is Patient)` - [group](/appointmentresponse-search#group) — **reference** — This Response is for this Group — `AppointmentResponse.actor.where(resolve() is Group)` - [practitioner](/appointmentresponse-search#practitioner) — **reference** — This Response is for this Practitioner — `AppointmentResponse.actor.where(resolve() is Practitioner)` [Full Search Parameters](/appointmentresponse-search) ## Examples - [appointmentresponse-example](/appointmentresponse-example-appointmentresponse-example) — appointmentresponse-example - [appointmentresponse-example-loc](/appointmentresponse-example-appointmentresponse-example-loc) — appointmentresponse-example-loc - [appointmentresponse-example-req](/appointmentresponse-example-appointmentresponse-example-req) — appointmentresponse-example-req - [appointmentresponse-examples-header](/appointmentresponse-example-appointmentresponse-examples-header) — appointmentresponse-examples-header - [example](/appointmentresponse-example-example) — appointmentresponse-example — General Person Example - [example-loc](/appointmentresponse-example-example-loc) — appointmentresponse-example-loc — General Person Example - Location Auto Accept - [exampleresp](/appointmentresponse-example-exampleresp) — appointmentresponse-example-req — Response to renegotiate an appointment request [Full Examples](/appointmentresponse-examples) ## Mapping Exceptions ### appointmentresponse-fivews-mapping-exceptions.xml ### Unmapped Elements - **FiveWs.what** — Unknown - **FiveWs.recorded** — Unknown - **FiveWs.author** — Unknown - **FiveWs.actor** — Unknown - **FiveWs.cause** — Unknown - **FiveWs.version** — Unknown - **FiveWs.witness** — Unknown - **FiveWs.class** — Unknown - **FiveWs.where** — Unknown - **FiveWs.context** — Unknown - **FiveWs.why** — Unknown - **FiveWs.source** — Unknown - **FiveWs.grade** — Unknown - **FiveWs.status** — Unknown - **FiveWs.planned** — Unknown - **FiveWs.subject** — Unknown ### appointmentresponse-request-mapping-exceptions.xml ### Divergent Elements - **Request.identifier** → **AppointmentResponse.identifier** - shortUnmatched | reason=Unknown | pattern=Business Identifier for appointment response | resource=External Ids for this item - definitionUnmatched | reason=Unknown | pattern=Business identifiers assigned to this appointment response by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server. | resource=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 appropriate. - commentsUnmatched | reason=Unknown | pattern=The identifier.type element is used to distinguish between the identifiers assigned by the requester/placer and the performer/filler. Note: This is a business identifier, not a resource identifier (see [discussion](resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. - requirementsUnmatched | reason=Unknown | pattern=Allows identification of the appointment response as it is known by various participating systems and in a way that remains consistent across servers. - **Request.basedOn** → **AppointmentResponse.appointment** - missingTypes | reason=Unknown | pattern=Reference(Request) - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Fulfills plan, proposal or order | resource=Appointment this response relates to - definitionUnmatched | reason=Unknown | pattern=A higher-level request resource (i.e. a plan, proposal or order) that is fulfilled in whole or in part by this appointment response. Authorization from the 'basedOn' request flows through to the referencing appointment response. | resource=Appointment that this response is replying to. - commentsUnmatched | reason=Unknown | pattern=basedOn represents the 'authorization' chain for an action, not the 'reason for action'. For example, an order might be placed on hold under the authorization for a surgery. However the 'reason' for placing the hold is "to avoid interaction with anesthesia medications" . - requirementsUnmatched | reason=Unknown | pattern=Allows tracing of authorization for the request and tracking whether proposals/recommendations were acted upon. - **Request.status** → **AppointmentResponse.participantStatus** - shortUnmatched | reason=Unknown | pattern=draft | active | on-hold | revoked | completed | entered-in-error | unknown | resource=accepted | declined | tentative | needs-action | entered-in-error - definitionUnmatched | reason=Unknown | pattern=The current state of the appointment response. | resource=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. - commentsUnmatched | reason=Unknown | pattern=The status is generally fully in the control of the requester - they determine whether the order is draft or active and, after it has been activated, completed, cancelled or suspended. States relating to the activities of the performer are reflected on either the corresponding]](s) or using the]] resource. A nominal state-transition diagram can be found in the] documentation Unknown does not represent "other" - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. A status of 'active' when doNotPerform is true means that the request to not perform is currently in force. A status of completed for a "doNotPerform" request indicates that the period of non-performance is now satisfied and the request no longer holds. | resource=This element is labeled as a modifier because the status contains the code entered-in-error that marks the participant as not currently valid. - **Request.occurrence[x]** → **AppointmentResponse.start** - missingTypes | reason=Unknown | pattern=dateTime, Period, Timing - extraTypes | reason=Unknown - summary | reason=Unknown | pattern=true - shortUnmatched | reason=Unknown | pattern=When service should (not) occur | resource=Time from appointment, or requested new start time - definitionUnmatched | reason=Unknown | pattern=The date or time(s) at which the activity or service is desired to occur or not occur. | resource=Date/Time that the appointment is to take place, or requested new start time. - **Request.occurrence[x]** → **AppointmentResponse.end** - missingTypes | reason=Unknown | pattern=dateTime, Period, Timing - extraTypes | reason=Unknown - summary | reason=Unknown | pattern=true - shortUnmatched | reason=Unknown | pattern=When service should (not) occur | resource=Time from appointment, or requested new end time - definitionUnmatched | reason=Unknown | pattern=The date or time(s) at which the activity or service is desired to occur or not occur. | resource=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 time. - **Request.performerType** → **AppointmentResponse.participantType** - bindingStrength | reason=Unknown | pattern=example - shortUnmatched | reason=Unknown | pattern=Desired kind of service performer | resource=Role of participant in the appointment - definitionUnmatched | reason=Unknown | pattern=The type of individual that is desired to act upon/ not act upon the {{request}}. | resource=Role of participant in the appointment. - commentsUnmatched | reason=Unknown | pattern=If specified without indicating a performer, this indicates that the performer must be (or can't be) of the specified type. If specified with a performer then it indicates the requirements of the performer if the designated performer is not available. If doNotPerform is true, then only one of performerType and performer should be present. | resource=The role of the participant can be used to declare what the actor will be doing in the scope of the referenced appointment. If the actor is not specified, then it is expected that the actor will be filled in at a later stage of planning. This value SHALL be the same as specified on the referenced Appointment so that they can be matched, and subsequently updated. - **Request.performer** → **AppointmentResponse.actor** - missingTypes | reason=Unknown | pattern=Reference(Organization,CareTeam) - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Specific desired (non)performer | resource=Person(s), Location, HealthcareService, or Device - definitionUnmatched | reason=Unknown | pattern=Indicates who or what is being asked to perform (or not perform) the {{request}}. | resource=A Person, Location, HealthcareService, or Device that is participating in the appointment. - **Request.note** → **AppointmentResponse.comment** - missingTypes | reason=Unknown | pattern=Annotation - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Comments made about appointment response | resource=Additional comments - definitionUnmatched | reason=Unknown | pattern=Comments made about the appointment response by the requester, performer, subject or other participants. | resource=Additional comments about the appointment. - commentsUnmatched | reason=Unknown | pattern=See guidance on [notes vs. supportingInfo](request.html#notes). | resource=This comment is particularly important when the responder is declining, tentatively accepting or requesting another time to indicate the reasons why. ### Unmapped Elements - **Request.intent** — Unknown - **Request.insurance** — Unknown - **Request.priority** — Unknown - **Request.subject** — Unknown - **Request.groupIdentifier** — Unknown - **Request.deliverTo** — Unknown - **Request.replaces** — Unknown - **Request.supportingInfo** — Unknown - **Request.encounter** — Unknown - **Request.requester** — Unknown - **Request.category** — Unknown - **Request.reason** — Unknown - **Request.authoredOn** — Unknown - **Request.reported** — Unknown - **Request.relevantHistory** — Unknown - **Request.code** — Unknown - **Request.statusReason** — Unknown - **Request.doNotPerform** — Unknown - **Request.product** — Unknown