IHE ITI Scheduling
0.8.0-current - ci-build International flag

IHE ITI Scheduling, published by IHE IT Infrastructure Technical Committee. This guide is not an authorized publication; it is the continuous build for version 0.8.0-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/ITI.Scheduling/ and changes regularly. See the Directory of published versions

2:3.118 Find Existing Appointments [ITI-118]

This section corresponds to transaction [ITI-118] of the IHE Technical Framework. Transaction [ITI-118] is used by the Scheduling Client and Scheduling Server Actors. The Find Existing Appointments [ITI-118] transaction is used to search for existing appointments on the server.

Scope

The Client [ITI-118] transaction requests a list of existing appointments from a Server for a particular patient.

Actors Roles

Table: Actor Roles

Actor Role
Client Requests a list of appointments matching the supplied set of criteria (example: status, patient, service location, etc.) from the Scheduling Server. The Scheduling Client may choose to persist the information received, and/or render it for viewing
Server Returns information from appointments matching the supplied set of criteria provided by the Scheduling Client

Referenced Standards

FHIR-R4 HL7 FHIR Release 4.0 - Appointment

Interactions

Scheduling ClientScheduling Server1. Find Existing Appointments Query [ITI-118]2. Find Existing Appointments Response [ITI-118]


Figure: Find Existing Appointments Interactions

Find Existing Appointments Query request

This message uses the FHIR Search operation on the target Server endpoint to search for Appointment resources.

Trigger Events

When a Scheduling Client needs to needs to find existing appointments it issues a Find Existing Appointments query request.

Message Semantics

The Scheduling Client may use a GET or POST based search. The Scheduling Server shall support both GET and POST based searches. The search target follows the FHIR http specification, addressing the Appointment Resource type.

[base]/Appointment?<parameters>

Search Parameters

Table: Search Parameters

Parameter Type Definition
patient reference This parameter identifies the patient actor participating in this appointment either by its fhir resource id (if known to the Scheduling Client), or by a business identifier known for this patient. In case of a business identifier it is strongly recommended to use both the identifying system and value (i.e. patient.identifier=<system>|<value>). If no <system> is supplied the Scheduling Server may use internal logic to interpret the <value>
date date This parameter defines the date range to search for appointments. Normal date prefixes apply.
practitioner reference This parameter identifies the practitioner actor participating in this appointment either by its fhir resource id (if known to the Scheduling Client), or by a business identifier known for this practitioner. In case of a business identifier it is strongly recommended to use both the identifying system and value (i.e. practitioner.identifier=<system>|<value>). If no <system> is supplied the Scheduling Server may use internal logic to interpret the <value>
status token This parameter reflects the overall status of the appointment as defined in AppointmentStatus
location reference This parameter identifies the location actor participating in this appointment either by its fhir resource id (if known to the Scheduling Client), or by a name known for this location.
specialty token This parameter identifies the specialty of a practitioner that would be required to perform the service requested in this appointment

For example, search appointments for patient (identifier 12345), after October 21st, 2023 with practitioner (npi number: 12345678) GET https://server.example.com/fhir/4/Appointment?patient.identifier=urn:oid:1.2.3.4.5|12345&date=gt20231021&practitioner.identifier=urn:oid:2.16.840.1.113883.4.6|12345678

Patient Identifiers

Patient identifier shall be fully qualified and consist of an identifier value and system (a.k.a. assigning authority or patient identity domain). Preferably identifier systems are identified with an OID value (e.g. urn:oid:1.2.3.4.5). Alternatively a URI value may be used (e.g. http://hl7.org/fhir/sid/us-ssn or http://hospital-1.org).

In the case when the Scheduling Server is not able to process a identifier system in a Find Existing Appointments Query transaction it shall return a FHIR bundle of type searchset with 0 entries.

The case where the Scheduling Client mey need to provided multiple patient.identifiers, all belonging to the same patient as known to the client, is considered out of scope for the ITI Scheduling Profile.

_count

A Scheduling Client may add a _count parameter to the Find Appointment Query request to limit the number of responses.

_include

A Scheduling Client may add a _include parameter to request a Scheduling Server to include participation actors (Practitioner, PractitionerRole, RelatedPerson, Device, HealthcareService, or Location) in the response

Expected Actions

Table: Search parameter optionality

Parameter Client Server
patient R R
date O R
practitioner O O
location O O
specialty O O

The table above identifies the search parameters that are optional or mandatory to support for both the Scheduling Client and Scheduling Server. In case a Scheduling Client issues a request with no parameters included the Scheduling Server may determine how to respond. For example, a valid response in such case would be a FHIR Bundle of type ‘searchset’ with zero entries, and including an operationOutcome stating it needs a minimal set of search parameters to be defined in the search request.

Find Appointments Query response

Trigger Events

The Scheduling Server has results or errors to report to the Scheduling Client. This may include 0, 1 or more appointments matching the search parameters specified by the Scheduling Client as a result of the Find Appointment Query request. This may include processing or security errors.

Message Semantics

The Find Appointments Query response sent from the Scheduling Server to the Scheduling Client consists of a FHIR Bundle of type searchset.

To limit the number of Appointment entries in the response bundle a Scheduling Server may choose to use pagination.

The Scheduling Server shall add a total attribute indicating the total number of appointments that match the Find Appointments Query request.

Expected Actions

The Scheduling Server shall make a best effort to add as many Appointment resource attributes in each Appointment entry returned.

The Scheduling Server shall honour the _count request parameter when included in the Find Appointments Query request by a Scheduling Client

The Scheduling Server shall honour the _include request parameter for referenced participating actors (Practitioner, PractitionerRole, RelatedPerson, Device, HealthcareService, and Location) when included in the Find Appointments Query request by a Scheduling Client.

Error codes

In the absence of any processing errors a http 200 (OK) error code is returned.

In case security constraints prevent a Scheduling Server from returning a response to the Scheduling Client a http 4xx error code is returned as described in Volume 2, Appendix Z.

Table: Error Codes

Error Code Description Explanation
400 Bad Request The server cannot or will not process the request due to an apparent client error
401 Unauthorized The server cannot or will not process the request due to an authorization issue with the request
403 Forbidden The server cannot or will not process the request because the Scheduling Client (or a user) is not authorized for the request

The Scheduling Server may include an OperationOutcome to the response where it uses the values from the Error Codes table.

Table: OperationOutcome Attributes

Attribute Value
severity Fatal
code <http error description>
diagnostics <http error explanation>

Security Considerations

See the general Security Consideration in ITI TF-1: 38.5.

Security Audit Considerations

Both the Scheduling Server as Scheduling Client shall record audit events.

Scheduling Client Audit

The Scheduling Client shall be grouped with an ATNA Secure Node or Secure Application (ATNA) Actor, and record a Find Appointment Query request according to the BALP basic profile for REST events - Execute as defined in RESTful activities

Scheduling Server Audit

The Scheduling Server shall be grouped with an ATNA Secure Node or Secure Application (ATNA) Actor, and record a Find Appointment Query request according to the BALP basic profile for REST events - Execute as defined in RESTful activities

Other Profile Groupings

Both the Scheduling Client and Scheduling Server may be grouped with their respective Internet User Authentication (IUA) Actors.