Case Study — Medicine transportation and rationing in HealthCare.

Supriya Ghosh
5 min readMay 25, 2024

Healthcare is an important area that has seen a variety of applications in Operations Research for the past three to four decades. These applications in healthcare are unique due to many reasons. The possibility of death or poor quality of remaining life, difficulties in measuring quality, third party payment mechanisms for treatment and diagnosis and access to healthcare as a right make the healthcare applications unique. 1980s saw a large amount of research carried out in the field of O.R applications in healthcare. Today, healthcare is a high priority area as it has always been over the last four decades.

I present one of the applications of OR in the healthcare area.

Application — Medicine Transportation and rationing

The motivation to address the medicine transportation and rationing problem comes from the paper of Deo and Corbett (2006) where they discuss allocation of scarce resources (including medicines) under uncertainty. They also highlight the importance of uninterrupted treatment to HIV infected patients where once the treatment is started it is the responsibility of the system to provide the required supply of medicines in an uninterrupted manner till the end of treatment. This aspect can lead to a situation where the start of treatment can be delayed due to the variation and uncertainty in the supply of medicines.

The application presented here does not explicitly model the situation addressed by Deo and Corbett. I pose a deterministic version of the distribution and rationing problem from where we can understand the importance of the objective of uninterrupted supply of medicines.

I have considered the transportation of two medicines from three distribution centers (stores) to four medical shops.

The shops cater to the requirements of customers prescribed by local doctors who would want the shops to give them to the patients.

The two medicines are very special medicines for a certain ailment.

The four retail shops should meet the requirements of 88, 105, 120 and 122 patients and each patient requires 10 tablets of the medicine per month for four months.

Estimates show that 60, 50, 70 and 80 patients would like to take the first medicine for all four months from the four stores. While it is possible to substitute one for the other, it is not preferred.

The patients taking the second medicine do not mind the substitution.

The three stores can provide a total of 5000, 2800 and 1200 of the first medicine and a total of 3000, 1200 and 1800 of the second medicine for all the four months together.

Of course, all the shops want their demands to be met and would like to take whatever extra available. The unit costs of transportation from the stores to the shops are given in Table 10.3.

Table 10.3 — Unit transportation costs.

The estimated availability of the two medicines in the three stores in the four months is given in Table 10.4.

M1 — Item 1; I2 — Item 2

Table 10.4 — Estimated availability of medicine.

The total demands in the shops are 3520, 4200, 4800, 4880 and total supply is 8000, 4000, 3000. Since the total supply is less than the total demand, it is not possible to meet all the demand. All the supply would be transported.

Let Xijk be the quantity of medicine i transported from store j to shop k. Cjk is the given unit cost of transportation from j to k. The objective function is to

Here yk is the unmet demand in shop k. Let’s assume here that substitution is allowed and hence I have aggregated the demand.

We also have the non-negativity restrictions on Xijk and Yk. The formulation has 24 variables and 10 constraints.

The optimum solution to the LP problem (transportation problem) has a minimum total cost = 67200.

The solution is X111 = 2000, X122 = 4000, X134 = 3000, X211 = 1200, X213 = 4800. Y1 = 320, Y2 = 200, Y4 = 1880.

From the above solution we observe that the demand met in the four shops are 3200, 4000, 4800 and 3000.

The solution generated by R Code which you can find below:

X111 = 2000,

X121 = 0,

X131 = 0,

X112 = 0,

X113 = 0,

X114 = 0,

X122 = 4000,

X123 = 0,

X124 = 0,

X132 = 0,

X133 = 0,

X134 = 3000,

X211 = 1200,

X221 = 0,

X231 = 0,

X212 = 0,

X213=4800,

X214=0,

X=222=0,

X223 =0,

X224=0,

X232=0,

X233=0,

X234=0,

Y1=320,

Y2=200,

Y3= 0,

Y4 = 1880

# R Code for the Problem:

# Install and load the lpSolve package
#install.packages("lpSolve")
library(lpSolve)

# Define the data
# Define the coefficients matrix for the objective function
Cost <- c(4,8,6,6,3,5,7,10,9,5,8,4,4,8,6,6,3,5,7,10,9,5,8,4,0,0,0,0)
obj_coefficients <- c(Cost)

# Define the constraints
Supply_from_Stores <- c(rep(1,24),0,0,0,0)
Demand_from_Shops <- c(rep(1,28))
Unmet_Demand <- c(rep(0,24),1,1,1,1)
Suppy_Store1_to_Shops <- c(1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0)
Suppy_Store2_to_Shops <- c(0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0)
Suppy_Store3_to_Shops <- c(0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0)
Demand_Shop1_to_Stores <- c(1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0)
Demand_Shop2_to_Stores <- c(0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0)
Demand_Shop3_to_Stores <- c(0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0)
Demand_Shop4_to_Stores <- c(0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1)
Medicine2_Demand_to_Stores <- c(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
Medicine1_Demand_to_Stores <- c(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)
Medicine1_Supply_to_Stores <- c(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
Medicine2_Supply_to_Stores <- c(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0)

# Define the inequality matrix for the constraints
ineq_matrix <- matrix(c(
Supply_from_Stores,
Demand_from_Shops,
Unmet_Demand,
Suppy_Store1_to_Shops,
Suppy_Store2_to_Shops,
Suppy_Store3_to_Shops,
Demand_Shop1_to_Stores,
Demand_Shop2_to_Stores,
Demand_Shop3_to_Stores,
Demand_Shop4_to_Stores,
Medicine2_Demand_to_Stores,
Medicine1_Supply_to_Stores,
Medicine2_Supply_to_Stores
), ncol = 28,byrow = TRUE)

# Define the right-hand side of the constraints
rhs <- c(15000, 17400,2400,8000,4000,3000,3520,4200,4800,4880,9000,9000,6000)


# Define the constraint types (<= and =)
# con_types <- c(rep(">=", 10))
con_types <- c("=","<=","=","=","=","=","=","=","=","=","<=","=","=")


# Set the problem type (minimization)
lp_model <- lp("min", obj_coefficients, ineq_matrix, con_types, rhs)

# Solve the linear optimization problem
solution <- lp_model$solution
objective_value <- lp_model$objval

Conclusion –

Healthcare rationing refers to the allocation of scarce healthcare resources to patient populations. This issue has attracted considerable attention in recent years, especially with the increase in healthcare costs at a time when demand is also skyrocketing. However, healthcare rationing has generated concerns among different stakeholders regarding its necessity and impact on healthcare delivery.

The above case discussed is based on an extensive search for studies, and perhaps some unnecessary topics are omitted. Furthermore, the figures included in this case are all hypothetical since the number of studies on the topic of rationing in healthcare is limited.

References –

1. NPTEL (Swayam) Linear Programming

2. https://www.frontiersin.org/journals/public-health/articles/10.3389/fpubh.2023.1160691/full

Happy Reading!

--

--

Supriya Ghosh

Data Science practitioner, researcher — love to contribute my experiences. Follow: @isupriyaghosh Subscribe:https://supriya2211.medium.com/subscribe