Hospital Resource Requirements of COVID-19

DESCRIPTION

In this simulation, we attempt to reproduce resource usage and resource shortage caused due to COVID-19. We attempt to reproduce the approach used by IHME COVID-19 Heath Service Utilization Forecasting Team. You can find the paper by searching for: Forecasting COVID-19 impact on hospital bed-days, ICU-days, ventilator - days and deaths by US state in the next 4 months.

Specifically the approach they take is the opposite of what may seem intuitive at first. They begin by forecasting the deaths by day in the US going into the future. In this simulation, we just use the data-set they produced for simulating deaths directly.

Then then apply a series of parameters the get resource use from the daily deaths. Specifically, they first determine the number of beds needed (admissions) per death, exposed in this simulation as the parameter (Admissions for each Death). After that they ask for the number of days each one of those patients stay in the hospital which we have exposed as Hospitalization Length in days in this simulation. They then estimate the fraction of the admissions that end up needing an ICU bed. For each ICU bed or patient, they also estimate the fraction of those that require invasive ventilator, exposed in this simulation as Ventilator for each ICU.

While they estimate the total bed capacity and ICU capacity in the US, they do not try to estimate the number of invasive ventilators that the country has and we reproduce these numbers as default starting points.

As you can see we can overall reproduce with default assumptions the conclusions they obtained. An overage shortage of 49K beds and and 15K ICU beds and a requirement of 19K invasive ventilators. All of these parameters match our numbers here up to the hundreds.

Additionally you can play around with the parameters to see what would happen if you were to change them to be higher or lower.

** Help **

sample(outcomes, probabilities)

Sample an outcome from the outcomes array based on the corresponding probabilities in the probabilities array.

radiobutton(name, options)

Creates a radio button parameter with name and have each option in the options array selectable. Returns the selected option.

textbox(name, default_value)

Create a textbox parameter with name and a required default value. Returns the value of the textbox.

scatter_graph(data, xlabel, ylabel)

Create a graph based on a data array and plot (data.xlabel, data.ylabel) on it. Can also pass xmin=null, xmax=null, ymin=null, ymax=null as added arguments.

stop_simulation()

Calling this function, stops the simulation.

average(values)

Returns the average of the values in the array. It can be handy to store the values of metrics from each simulation run and average it across all runs to obtain an estimate of the metric.

error_average(values)

Returns the estimated error (1.96 x standard error) of the average of the values at 95% confidence. In simple terms, you can assume that the estimate average(values) has error bounds +/- error_average(values). It can be handy to store the values of metrics from each simulation run and estimate both the average and the error of the average across all runs.

stdev(values)

Returns the standard deviation of the values in the passed in array.