Prevention of double bookings is clearly something that a booking system ought to be able to do. Calpendo doesn't automatically prevent double bookings, but instead provides a Double Booking Rule to allow the system to define precisely how it ought to behave in this area. For example, to create a Booking Rule that doesn't allow more than one booking for the same resource at the same time. That might seem sensible, but it's not always that simple.

 

Suppose there is a computer room that people can book, and there are 10 computers in there. Calpendo could be configured to handle this by creating 10 separate resources. However, the alternative is to configure Calpendo with a single resource, to represent the computer lab itself, and then create a Double Booking Rule that allows up to 10 bookings for it at the same time.

 

Another example that shows that double bookings are not always as simple as you might always think: suppose there is a MRI scanner with an adjoining room that can be used to treat patients. Users are allowed to book the MRI scanner whenever they like for subjects that are healthy, and therefore not expected to require the use of the adjoining treatment room. However, if there is a need to scan somebody that requires treatment facilities to be available because there's a risk they may require such help, then the user can't book the MRI scanner when somebody already has a booking for the treatment room.

 

This is also a type of double booking because it relates to bookings that exist at the same time, albeit across different resources. This can be implemented in a couple of ways in Calpendo. When booking for an MRI scanner for a patient that may require the treatment room Calpendo can:

 

only allow the MRI scanner to be booked if there isn't already a booking for the treatment room, and also do not allow the treatment room to be booked if there's an MRI booking for a patient that may require the treatment room.

only allow the MRI scanner to be booked if the same project or booker already has a booking for the treatment room.

 

Click to expand

 

The default settings when creating a Double Booked Rule are configured for the simple case - to stop multiple bookings for the same resource at the same time.

 

Calpendo allows the handling of more advanced methods as shown in this table:

 

Property

Description

Rejection Type

Decides whether to reject the booking or just post a warning.

Retry approved bookings

An indication to be sent to the user of whether to retry sending the booking as a Request (only applicable when the booking received is Approved).

Limit or Require coincident bookings

Choose whether the Booking Rule should operate in a mode that limits the number of bookings that can coexist (the standard case), or whether the Booking Rule should require at least a given number of bookings to exist beforehand (for example to ensure that the treatment room is booked before being allowed to book the MRI scanner)

Number of coincident bookings

The standard Double Booking Rule sets the number of bookings allowed to one. This means that there can only be one booking at a time. In the case of the computer lab with ten computers, this could be set to ten.

Message to show

The message to be displayed to the user if the booking is rejected or a warning is issued.

Bookings to count

This tab is only shown when the advanced settings option is selected. This is described in detail below.

Bookings to ignore

This tab is only shown when the advanced settings option is selected. This is described in detail below.

Advanced Settings

Turning on the advanced settings option in the Double Booking Rule displays two extra tabs: Bookings To Count and Bookings To Ignore. These tabs are not required in the simple case, where we only want to prevent multiple bookings for the same resource to coexist. They are required when bookings for one resource need to influence bookings for another resource.

 

cal_RuleDoubleAdv

 

The Bookings to Count and Bookings to Ignore work in exactly the same way as Applies To and Does Not Apply To, read the chapter on Choosing Which Bookings A Rule Applies To for more information on how the sub tabs work.

 

In the MRI scanner and treatment room example, there are two ways to implement it: preventing a booking for a patient that may require the treatment room when the treatment room is already booked or requiring that the treatment room already be booked by the same project. In each case, we need to identify which MRI bookings might require the treatment room. For that, use the Types And Groups Editor to create a booking type to represent the type of subject being scanned. Classify subjects according to whether they are healthy volunteers, walking patients, wheelchair patients, or bedridden patients. Now suppose that healthy volunteers do not require the treatment room to be available, but the other types do.

 

Here's the first option for how to set this up in Calpendo, by preventing the treatment room from being booked at the same time as the MRI scanner:

 

Property

Setting

Applies To

Add condition: type not equal to Healthy Volunteer

Applies To

On the Resources tab, specify the MRI Scanner

Reject or warn when exceeded

Reject

Retry approved bookings

Do not suggest retry as a booking request

Exclusivity

Limit how many bookings can exist at the same time

How many bookings allowed

One

Show advanced settings

Yes

Bookings To Count

On the Resources tab, change Matched Resource to Treatment Room

Bookings To Ignore

Not required

 

This means that any booking for the MRI scanner, where the booking type is not set to Healthy Volunteer will trigger the Booking Rule. The Booking Rule will then count how many bookings there are for the treatment room at the same time as the prospective MRI scanner booking. The limit for the number of allowed bookings is one, and this always includes the prospective booking (in this case the one for the MRI scanner). The net result is that MRI scanner bookings will be rejected when being made for non-healthy volunteers if there's a booking for the treatment room at the same time.

 

If it is implemented in this way, then a similar Booking Rule would be needed that prevented bookings for the treatment room when there are coincident bookings for the MRI scanner for non-healthy subjects.

 

The second option for how to set this up in Calpendo is to require a pre-existing booking for the same project in the treatment room. Here's what this looks like:

 

Property

Setting

Applies To

Add condition: type not equal to Healthy Volunteer

Applies To

On the Resources tab, specify the MRI Scanner

Reject or warn when exceeded

Reject

Retry approved bookings

Do not suggest retry as a booking request

Exclusivity

Require a number of pre-existing bookings

How many bookings allowed

One

Show advanced settings

Yes

Bookings To Count

On the Resources tab, change Matched Resource to Treatment Room

On the Projects tab, tick Specify projects and change Projects from Any Project to Matched Project

Bookings To Ignore

Not required

 

The Matched Project setting means that, when Calpendo looks for pre-existing bookings, it will only include bookings that have the same project as the prospective one being created (in this case the project on the MRI scanner booking). This means that, if there's a booking for the same project in the treatment room, we're going to assume that the treatment room has been pre-booked for the purpose of providing back-up in case the patient requires it.

Bookings To Ignore

The previous examples showed how to use Bookings To Count to specify which bookings Calpendo should count when looking for bookings at the same time as the one being created or modified. The Bookings To Ignore tab provides an extra option to the way the counting is done, by allowing the specification of bookings that are not going to be counted. This is analogous to the way one can specify Applies To and Does Not Apply To settings.

Handling Holidays

Some resources require the presence of people while they are being used. For example, an MRI scanner requires radiographers. Sometimes, suitably qualified people book the scanner for their own use and don't require an additional radiographer, but on other occasions, bookings require additional support. When radiographers are on holiday, the booking system should be able to provide suitable information to anybody making a booking throughout the holiday period. There are several ways to do this with Calpendo, each with their own benefits and drawbacks.

 

Create a Time Template that issues warnings to everyone, and then add entries to the Time Templates Calendar whenever there's a holiday. Or, create a Holiday Booking Rule. Finally, do it with a Double Booking Rule as follows:

 

1.Create a new resource where holiday information is stored. Let's call it Radiographer Leave for this example.

2.Create a Double Booking Rule that applies to MRI scanner bookings, and has its Bookings To Count set to count up the number of bookings for Radiographer Leave.

3.Set the exclusivity to limit how many bookings can exist at the same time and the How many bookings allowed to one.

4.Set the Reject or warn when exceeded to warn

5.Enter a message that there is limited radiographer cover (to show to the user).

Now, when a radiographer plans a holiday, they create a booking for the Radiographer Leave resource. Whenever somebody then makes a booking for the MRI scanner at the same time, the Double Booking Rule will give a warning to the user. The nice thing about implementing holiday handling with this method is that it's very easy to delegate the responsibility for giving the warnings to the radiographers, and there's an entry in the calendar so everyone can see when there is no radiographer cover available.

 

This table compares the methods for displaying warnings to users during a holiday period:

 

Method

Pros

Cons

Time Template

Provides visual feedback for the duration of the holiday in the background of the Bookings Calendar.

No way to see who is on holiday or how many people are on holiday.

Either need radiographers to modify Time Templates, or an Admin has to set up holidays on behalf of radiographers.

Holiday Booking Rule

Conceptually easy.

No visual feedback before making the booking.

New Booking Rule needed for each holiday, or else modify the old Booking Rule to add more holidays.

Either need radiographers to modify Booking Rules, or an Admin has to set up holidays on behalf of radiographers.

Double Booking Rule

Radiographers are given their own "leave calendar".

They can see and edit their own leave information.

Other users can see radiographer leave information.

Conceptually a little more difficult to set up than the other approaches, although once configured, it's easy for radiographers to add holidays and for users to comprehend.