Title: Doctor Scheduling at Baystate Hospital
1Doctor Scheduling at Baystate Hospital
- Rohan Khatau
- Claudio Stefan
2Background
- Baystate Hospital in Springfield, MA compiles a
quarterly schedule assigning doctors to specific
shifts - They have one person in charge of the schedule
who follows a general guideline and fills it in
manually - Will acquire computer software at the end of this
month - Our Task scheduling for the month of June
3Problem Details
- Assignment Problem with three types of doctors
- Clinicians
- Hospital Educators
- Dedicated Nocturnists
- Each set of doctors has its own specific shifts
and constraints - FTE (some work part time and some are full time)
- Clinicians can work day or night shifts
- Educators only work during the day
- Dedicated Nocturnists only work the overnight
shift
4Shifts
- For weekdays
- Eleven Clinician shifts, ten from 8am to 4pm and
one from noon to 4pm - Eight Hospital Educator shifts, all from 8am to
4pm - Two overnight shifts
- For weekends
- Ten clinician shifts (all from 8am to 4pm)
- Five Educator shifts
- Two overnight shifts
5Some Important Rules and Constraints
- Maximum Number of shifts in a row is seven
- Maximum Number of overnights in a row is four
- Weekend Work is two weekends a month (only for
Clinicians) - If a physician worked overnight, the only shift
he or she can work the following day is another
overnight shift - It is preferred that a physician works the same
shift as much as possible during the seven day
span - All doctors are limited to one shift per day
6Our Task
- Find a solution to this assignment problem using
Integer programming - See what we could do to improve the schedule
using Baystates specific constraints - See if academic scheduling methods are practical
in a hospital environment
7Methodology
- Integer program to solve the assignment problem
(solved using ampl) - Define Binary Variable
- Xi,j,k 1 if doctor i works shift j during
day k 0 otherwise - i indexes doctors (44 doctors in total)
- j indexes shifts (21 weekday shifts) (17
weekend shifts) - k days (30 total for June)
-
8Methodology
- Constraints will make sure that only one doctor
will be assigned to each shift on each day - For the objective function, we added a bonus
variable - bonusi,j,k 7(Xi,j,kXi,j,k1 Xi,j,k2
Xi,j,k3 Xi,j,k4 Xi,j,k5 Xi,j,k6) - this will keep track of days in which the
physicians worked the same shift and assign a
large bonus for those respective days - Objective Function
- max ? ? ? bonusi,j,k
- days shifts doctors
9Constraint Overview
- Seven Days in a Row
- ? (Xi,j,k Xi,j,k1 Xi,j,k2
Xi,j,k6 i,j,k7) lt7 - shifts
- for all i and k
- Four Nights in a Row for Nocturnists
- ? (Xi,j,k Xi,j,k1 Xi,j,k2
Xi,j,k3 Xi,j,k4) lt 4 - Night shifts
- for all i in Nocturnists, k in Days
- Cannot Work a Day Shift Following an Overnight
Shift -
- ? Xi,j,k ? Xi,j,k1 lt 1
- Night shifts Day shifts
- for all Clinicians on all days
-
10June 2009 Schedule (week 1)
11Sample Code (from .mod file)
var bonus1i in allDoctors, j in allShifts, k in
allDays gt 0 lt50 integer var Xi in
allDoctors, j in allShifts,k in allDays gt0 lt1
integer maximize objectiveDays sum i in
allDoctors,j in allShifts, k in bonusDays1
bonus1i,j,k subject to shiftAndDayConstraint
j in allShifts, k in weekDays sumi in
allDoctors Xi,j,k 1 subject to
shiftAndDayConstraint2 j in weekEndShifts, k in
weekEnds sumi in allDoctors Xi,j,k
1 subject to shiftAndDayConstraint3 j in
weekDayShifts, k in weekEnds sumi in
allDoctors Xi,j,k 0 subject to
shiftAndDayConstraint4 j in nightShifts, k in
allDays sumi in allDoctors Xi,j,k
1 subject to bonusConstraint1 i in allDoctors,
j in allShifts, k in bonusDays1 (bonus1i,j,k
7(Xi,j,kXi,j,k1Xi,j,k2Xi,j,k3 X
i,j,k4Xi,j,k5Xi,j,k6)) subject to
FTEConstraint i in allDoctors sumj in
allShifts,k in allDays Xi,j,klt FTEi
subject to nocturnistConstraint1 i in
nocturnists, k in allDays sumj in nightShifts
Xi,j,k lt 1 subject to nocturnistConstraint2
i in nocturnists sum j in dayShifts,k in
allDays Xi,j,k 0 subject to
CHMPnightConstraint i in CHMPs sum j in
nightShifts, k in allDays Xi,j,k lt
1 subject to CHMPshiftConstraint i in CHMPs
sum j in educatorShifts, k in allDays Xi,j,k
0 subject to HospEdNightConstraint i in
educators sum j in nightShifts, k in allDays
Xi,j,k0
12Sample Code
subject to HospEdshiftConstraint i in
educators sum j in chmpShifts, k in allDays
Xi,j,k0 subject to doctorAndDayConstraint i
in allDoctors, k in weekDays sum j in
allShifts Xi,j,k lt1 subject to
doctorAndDayConstraint2 i in allDoctors, k in
weekEnds sum j in weekEndShifts Xi,j,k
lt1 each doctor has to work at most one shift
every day subject to consecutvieDaysConstraint
i in allDoctors, k in consecutiveDays sum j
in allShifts (Xi,j,kXi,j,k1 Xi,j,k2Xi
,j,k3Xi,j,k4Xi,j,k5Xi,j,k6
Xi,j,k7)lt7 every doctor is only allowed to
work at most 7 seven days in a row you need the
last term because there should be a break between
the shifts subject to weekEndConstraint i in
CHMPsandEducators sum j in weekEndShifts, k in
weekEnds Xi,j,k lt4 doctors are allowed at
most one weekend of work subject to
RougemontDaysConstraint k in RougemontDays sum
j in nightShifts X"Rougemont",j,k
1 subject to EnriquezDaysConstraint k in
EnriquezDays sum j in nightShifts
X"Enriquez",j,k 1 subject to
FloresDaysConstraint k in FloresDays sum j in
nightShifts X"Flores",j,k 1 subject to
PalacioDaysConstraint k in PalacioDays sum j
in nightShifts X"Palacio",j,k
1 constraints for the nocturnists - what
specific days they are working on subject to
dayAfterOvernight i in CHMPs, k in
overnightDays (sum j in nightShifts Xi,j,k
sumj in dayShifts Xi,j,k1) lt 1 no
doctor will have a shifts following his overnight
visit
13The IP Solution
- Benefits
- Much more efficient than pencil and paper
method - Ensures that all constraints, if defined
properly, are satisfied - Enables one to identify inconsistent and
redundant constraints - One can write a simpler program and use it as a
starting point for manual scheduling - Shortcomings
- Less Flexible than the manual method
- Some Constraints are difficult to define and
implement - Output is difficult to interpret
- Need specialist to adjust and run the program
14Thanks to
- the Baystate Hospital staff, especially Carmen
- Curry
15Questions?