Background of this modeling project

Occupancy in certain hospital patient care units is impacted by procedure scheduling policies and practices. For example, intensive care unit occupancy is strongly related to open heart surgery schedules. Similarly, occupancy in obstetrical postpartum units is impacted by the daily number of scheduled labor inductions and cesarean sections. That was the motivation for this project.

Our goal was to develop optimization models that linked procedure scheduling decisions with inpatient hospital occupancy. We will dig into the details soon, but for now, here's a loose description of one of the models: ob-smooth.

#Model: ob-smooth
Minimize variability across days of the week in average post-partum occupancy
By changing: number of schedule slots for inductions and for C-sections by time of day and day of week
Subject to:
  1. upper and lower bounds on schedule slots by time of day, day of week and weekly
  2. conservation of flow between units by patient type
  3. calculation of mean occupancy by unit by patient type
  4. calculation of variance of occupancy by unit by patient type

This model turns out to be a mixed integer linear program, of modest size, and solvable with widely available solver software. Of course, the model above is just one example of many variants that can be constructed by altering the objective function or the constraints. A key feature of this optimization model is that it contains an embedded stochastic patient flow model, equations (2)-(4). The patient flow portion of our model is an extension of a model originally developed by Gallivan and Utley (2005).

Gallivan, S. and Utley, M. (2005) Modelling admissions booking of elective in-patients into a treatment centre. IMA Journal of Management Mathematics, 16: 305-315.

A detailed description of the problem setting along with the details of the underlying mathematical model can be found in the following working paper:

Isken, M.W. and Ward, T.J. (2008) Occupancy and Scheduling Models for Inpatient Obstetrics

Here is the abstract from the paper:

Abstract - Increases in the rate of births via scheduled cesarean section and induced labor have led to some challenging scheduling and capacity planning problems for hospital inpatient obstetrical units. We present a patient flow model that allows assessment of the impact of scheduling policies on occupancy variability as well as patient scheduling models for minimizing this variability.

This paper was originally presented at the 2008 Operational Research Applied to Health Systems conference, held in Toronto, Canada.

At their core, these are probabilistic patient flow models for making estimates of the mean and variance of occupancy in a patient care unit subject to both random and scheduled patient arrival streams. As such, there are numerous health care delivery settings in which they might prove useful. Of course, like all models, they are based on a myriad of assumptions. See the two papers referenced above for all of the details. Some of the key assumptions and features of this model include:

  1. Discrete time - each day is divided into a user specified number of time bins
  2. Infinite capacity - patient flow is assumed to be unaffected by the capacity of the patient care units
  3. Poisson arrivals - random arrivals are assumed to be discrete time Poisson arrival processes
  4. Scheduled arrivals - scheduled arrivals are the key decision variables in the model

"All models are wrong

...some are useful." as put by the eminent statistician, George Box [1]. This model, like many, makes a number of heroic assumptions and gross oversimplifications of the world. Do not pretend that this, or similar models, will give you "the answers." Such models are merely tools that you can use in a responsible way in the course of your analysis. Like all models, you must perform verification and validation tests to make sure that the models are mathematically correct and are usable in a meaningful way for your application. We are providing these models and supporting software in the hope that others may find them eduational and/or useful. It is our hope that others will improve upon them and share such improvements with the healthcare modeling world. Ultimately, it is our hope that these efforts lead to improvements in the use of sophisticated analytical models in the never ending quest to improve healthcare delivery systems. With this goal in mind, all of the models and supporting software are being released under the GNU Public License.

[1] Box, G.E.P., Robustness in the strategy of scientific model building, in Robustness in Statistics, R.L. Launer and G.N. Wilkinson, Editors. 1979, Academic Press: New York.

Getting started

While this model isn't horribly complex, there are quite a few pieces to the overall application. The better you understand these pieces before downloading and trying to use this model, the better experience you'll have.

WARNING: This application is NOT (at least not yet) suited for "turn key" installation and use by non-techie types. This is a somewhat complex analytical application and requires some technical savvy to understand, install and use the application. Complexity lurks within the model itself as well as the various software components that we've "knitted together" (read, hacked) to create this analytical application. The whole enchilada was developed on a machine running Ubuntu Linux and a whole bunch of open source tools were used in its creation. In fact, a secondary objective of this project is to share our experience in developing a healthcare analytics application using entirely free and open source software. You can check out the tools page for links and some discussion of the various tools that were used. While I had used Unix back in grad school many years ago, I have primarily been an Windows user over the last twenty years of professional healthcare OR work and university teaching. So, this project was also an excuse to build a Linux machine focused on analytical application development. It has been great fun. This project has benefited from so many terrific open source tools and this project is part of my way of giving back.

First steps

  1. Start by reading our working paper to learn more about the problem and the model. You can skim the math.
  2. Then, go to the app overview page. Check out the diagram showing the pieces of this application. Get the big picture.
  3. Now visit the model overview page. Learn about the structure and assumptions in the model.
  4. This model relies on a bunch of input data. So, visit the input data page to see what kind of data will be needed if you're ever going to try to use this model in a real project.
  5. Now check out the output data page so see exactly what it is that this model generates as output.
  6. Finally, visit the walk through page and see how one would go about completing the various steps involved in using this model in a project.

Next steps

Ok, if after the above, you're still interested in getting your hands on this application:

  1. Visit the installation page
  2. Do the preliminaries discussed on the installation page
  3. Download the model, example data files and application files from the project's SourceForge page,
  4. Install the model, example data files and application files per the instructions in the INSTALL file in the download.
  5. Test the application using the example data files per the instructions on the installation page