Help Optimal outpatient appointment scheduling tool

This calculator uses a local search procedure that converges to the optimal schedule with a weighted average of expected waiting times of patients, idle time of the doctor and tardiness as an objective.
Because the local search procedure takes a very long time, two local search procedures were implemented.
- One with a smaller neighborhood, which doesn't guarantee us to derive the global optimum, but gives good results within a reasonable time.
- One with a big neighborhood, which guarantees us to derive the global optimum, but the computing time can be very long.
The method of this tool is described in a HCMS publication.


The model is a queuing system. The day/block length that a treatment/operation room is operational can be split in a number of equal intervals of some length (for example a day from 8.00AM till 4.00PM can be split in 48 intervals with length of 10 minutes). Within these intervals there should a number of patients be scheduled.
Our goal is to schedule these patients over those intervals in such a way that it minimizes the weighted average of expected waiting times of patients, idle time of the doctor and tardiness.
In the model we make the following assumptions:
- The service times of patients are independent and exponential distributed.
- Patients come always right on time.
- Every patient has the same chance of not coming at all (no-show).

Individual schedule

To calculate the individual schedule, the following parameters are used:
- n: the nth patient.
- N: the total number of patients.
- I: the total number of intervals.
- T: the length of an interval.
The number of intervals are numbered from 1, ..., I.
Patient n arrives in interval round((n-1) * I / N)+1 at time round((n-1) * I / N) * T.
For example: N = 5 patients, I = 8 intervals and T = 15 minutes.
Patient 3 arrives in interval round((3-1)*8/5)+1 = 4 at time round((3-1)*8/5)*15 = 00:45.

Required Input

The input consists of:
- Total number of arrivals: The total number of patients which must be treated
- Average service time: The average time for a treatment
- Standard deviation: The standard deviation of treatment times
- Total available time: The total available time of the system
- Schedule in intervals of ... minutes: The length of an interval in minutes
- Percentage no-shows: Which percentage of patients are not coming at all?
- Time limit for the search Time limit to stop the optimization before it terminates
- Patient-centric: There isn't a best way to choose weights. It depends on the objective. So if the main objective is patient-centric, then that factor must have a bigger weight.
- Doctor-centric:


The output consists of:
- Waiting time: This is the average time a patient is waiting for her/his treatment.
- Idle time: This is the average total time within the span a doctor is waiting for a patient.
- Tardiness: This is the probability that the session exceeds the planned finishing time times the average excess.
- Fraction of excess: This is the probability that the last patient finishes its treatment after the end of the working day/block.
- Make span: This is the average time in which all patients have been treated.
- Lateness: Day/block length -/- make span

disclaimer  |  related toolsCopyright © 2005-2018 Guido Kaandorp, Ger Koole and Jerry Timmergo back to the calculator  |  contact