An operations research approach to automated patient scheduling for eye care using a multi-criteria decision support tool

We approach the problem of planning the patient schedule of ophthalmology clinics using an Integer…

An operations research approach to automated patient scheduling for eye care using a multi-criteria decision support tool

We approach the problem of planning the patient schedule of ophthalmology clinics using an Integer Linear Programming formulation41, in which a real-world problem is expressed in terms of linear inequalities. The model was designed using the Microsoft Excel add-in OpenSolver. Anonymized data were obtained from three National Health Service hospital eye clinics in Wales and included the capacities and patient numbers from the clinics. The protocol was approved by the Aneurin Bevan University Health Board (ref no. SA/1272/21), who granted permission for access to data and all methods were carried out in accordance with the relevant guidelines and regulations. Informed consent was not required on the basis that all data were fully anonymised.

The model includes, over a predetermined planning horizon: a given number of patients that each have an assigned referral-to-treatment time, a given distance factor between the patient and the clinics, and associated risk factor, which is to be determined by the patient’s treatment provider. The model is designed to allocate patients to time slots within clinics that have fixed patient capacities for each day. The model assumes shared electronic medical records between clinics.

In addition to the real data used by the model, further data to represent the distance travelled by each patient were sampled from a uniform distribution with lower and upper bounds of 1 and 50, respectively. These numbers represent a ‘distance score’ rather than a precise distance as it is desirable to design the model to maximize each objective function, rather than minimizing exact distances. Therefore, a higher ‘distance score’ indicates the patient is located closer to the specific clinic. In application, these scores will be replaced by the appropriate distance scores of each patient individually. The correlation between distance score and real numerical distance can be determined by the decision maker based on how far the range of patient travel distances is, i.e., in some cases patients may all be within a mile of all clinics whereas in other cases they may be within 10 miles of clinics.

The risk factor for a patient is defined in different categories by eye care services in Wales42. R1 indicates “risk of irreversible harm or significant patient adverse outcome if target date is missed”, e.g., neovascular age-related macular degeneration; R2 indicates “risk of reversible harm or adverse outcome if target date is missed”, e.g., cataract; and R3 as “no risk of significant harm or adverse outcome”, e.g., eyelid lesion with no malignancy suspected. In the model R1, R2 and R3 were represented by 1, 100 and 1000, respectively, as these values, when used in the model, give adequate numerical separation, to appropriately prioritize those in higher risk categories.

The model assumes that patients can be treated within a standard appointment duration43, allowing for the use of clinic capacities instead of minute-by-minute time scheduling. The model considers:

  • Patient referral-to-treatment (RTT) time

  • Risk factor associated with patient’s treatment being further delayed (R1, R2, or R3)

  • Clinic capacities

  • Distance score that corresponds to the distance that the patient must travel to reach the clinic

  • Relative weighting of the above objectives for prioritization, depending on the specific circumstances and user’s needs

Decisions to be made by the model

The model is able to decide the clinic and date that the patient is to be allocated within the time horizon. Consequently, the model will decide who will be seen and, if capacity is scarce, who must still wait. As the clinics have fixed capacities for each day it will be the decision of the clinic staff to provide the specific time at which the patient is to be seen. Depending on the requirements of the user, the planning horizon can be made longer or shorter. In this study, the model is applied using patient numbers that exceed clinic capacities to ensure that the prioritization of patients at greatest risk.

Objective functions and constraints

The model allows the user to maximize the score associated with a given patient’s risk factor, in order to prioritize those who have the largest risk of serious damage as compared to patients with a low eye care risk. This was undertaken using a large binary matrix that indicates for each patient whether or not they will be allocated a unique clinic. The binary values are multiplied by, depending on the objective, the RTT, distance or eye care risk score and then summed to give the final objective value. The constraints of the model ensure that patients cannot be allocated to more than one slot and that the total number of patients scheduled cannot exceed the clinic’s capacity for a given date. Although the model considers a unique objective (RTT, distance or eye care risk score), it can also allow for the user to find a trade off between the measures by using a combination of two, or all three objectives. This, in practice, meets the different demands of specific users.

Problem statement and algebraic model formulation

In order to state the problem, we introduce the sets, indices, and other parameters to algebraically state the problem. Let \({\mathcal{P}}\) denote the set of patients and let \({\mathcal{T}}\) denote the set of days with \(T\) representing the last day in the planning horizon in which patients can be assigned to clinics. For example, \({\mathcal{T}}: = \left\{ {1,2,3 \ldots ,T} \right\}\) represents the set of days labeled as day 1, day 2 etc. until the last day \(T\). Next, we have a set of locations \({\mathcal{L}}\) where clinics take place. We also introduce \({C}_{l,t}\) as the capacity of a clinic at location \(l\in {\mathcal{L}}\) at day \(t\in {\mathcal{T}}\). Patient-dependent parameters are \(RT{T}_{p}\) which denote the referral-to-treatment time of patient \(p\in {\mathcal{P}}\). Furthermore, \({R}_{p}\) denotes the eye-care risk measure of patient \(p\in {\mathcal{P}}\). Finally, \({D}_{p,l}\) denotes the distance (score) that patient \(p\in {\mathcal{P}}\) has to travel if their appointment is scheduled at location \(l\in {\mathcal{L}}\).

We introduce binary decision variables \({x}_{p,l,t}\)=1 if patient \(p\in {\mathcal{P}}\) has a scheduled appointment at location \(l\in {\mathcal{L}}\) at day \(t\in {\mathcal{T}}\) and 0 otherwise.

We consider three objective functions to schedule patients based on their RTT value, their risk measure, and distance to the clinics denoted as RTT, Risk, and Distance, respectively:

$${\text{Maximize}}\sum_{p\in {\mathcal{P}}}\sum _{l\in {\mathcal{L}}}\sum_{t\in {\mathcal{T}}}RT{T}_{p}\cdot {x}_{p,l,t}\qquad (\text{RTT})$$

$${\text{Maximize}}\sum_{p\in {\mathcal{P}}}\sum _{l\in {\mathcal{L}}}\sum_{t\in {\mathcal{T}}}{R}_{p}\cdot {x}_{p,l,t}\qquad (\text{Risk})$$

$${\text{Maximize}}\sum_{p\in {\mathcal{P}}}\sum_{l\in {\mathcal{L}}}{\sum }_{t\in {\mathcal{T}}}{D}_{p,l}\cdot {x}_{p,l,t} \qquad(\text{Distance})$$

The constraints are:

$$\sum_{t\in {\mathcal{T}}}{x}_{p,l,t}\le 1 \quad \quad \forall p\in {\mathcal{P}}$$


$$\sum_{p\in {\mathcal{P}}}{x}_{p,l,t}\le {C}_{l,t} \quad \quad \forall l\in {\mathcal{L}},t\in {\mathcal{T}}$$


$${x}_{p,l,t}\in \left\{{0,1}\right\} \quad \quad \forall p\in {\mathcal{P}},l\in {\mathcal{L}},t\in {\mathcal{T}}$$


Constraints (1) ensure that a patient is not scheduled more than once at a location while Constraints (2) ensure that the location- and day-dependent capacity is not exceeded. Expression (3) are the decision variables and the domains.

Fig. S2 (Supplementary Information) shows how the objective function and constraints are entered into the solver. There is the possibility to use either one objective or to aggregate multiple objectives. The objective cell will be the value that we want to maximize, such as reduction in the total of patient risk factor values. In this iteration of the model the user has the option of seven objectives, as shown in Fig. 4.

Figure 4
figure 4

Schematic of model showing how the objective functions are formed.

As can be seen, the model uses binary values to represent the decision variables. These are then aggregated in the individual objective function. These objectives are the sum of different values, i.e., the relevant values are added together. The RTT, Distance, and Risk can also be explained as follows:

  • RTT—the RTT number associated with each patient that has been scheduled summed.

  • Distance—the sum of the distances the patients travel to the slot/clinic that they have been assigned.

  • Risk—the total risk score that a clinic accumulates in each day by scheduling patients is calculated.

The model is able to provide a solution which allows for prioritization of each of the above objectives, in addition to a combination of any two, or all three, of these, giving seven possible prioritization outcomes/ combinations to choose from. The user can decide which of these seven objectives they wish to use by changing the objective cell in the model.

The variable cells will be the cells that correspond to where the patients will be allocated. The data should be structured in Microsoft Excel such that, a row is allocated to each patient and a column to each possible allocation location (see Fig. S3 in Supplementary Information). Constraints will determine as to the values that the model can generate for these cells and these cells in turn will give the objective functions when combined with the relevant data in the objective function formulas.

In the example ‘Solver’ outcome in Fig. S3, each row represents a different patient and each column is a possible allocation for the patient, i.e. clinics A, B and C on dates 1,…,6. The objective function then aggregates all decisions i.e. whether patients are scheduled or not and multiplies them with the corresponding RTT, risk or distance measure.

The first constraint ensures that the values in the variable cells will be ‘1’, i.e., the patient is allocated this slot, or ‘0’, i.e., no allocation. The second constraint ensures that a patient cannot be given more than one appointment and the final constraint ensures that the number of patients scheduled to a clinic on a specific date cannot exceed the given capacity. Here, the number of patients scheduled is the sum of values in each column. As a result of the first two constraints, each patient can have at most a single ‘1’ in each row.