From Simio and Simulation: Modeling, Analysis, Applications
I attempted this problem using two approaches.
For this approach, I tried to use a seize request on the Doctor resource. The Facility view is shown below. However, using a state variable to count the number of seizes that occur, I realized that the doctor is either being seized too many times for non-urgent patients or my logic is incorrect (or both). Shown below, the number of seizes far exceeds the number of Urgent patients.
To attempt to handle this, I tried updating the condition to require that a seize only occurs when 1.) a patient is Urgent, 2.) there’s capacity in the doctor resources, and the Urgent patient has not seen a doctor yet, the UrgentHasDoctor variable.
For this approach, I based on the logic off of two Simbits examples showing interrupts – InterruptingServerWithMultipleCapacity and InterruptingAcrossMultipleServers.
Facility View.
With this approach, the number of doctor seizes seems more reasonable given the number of Urgent patients in the system. However, I did run into an occasional run-time warning related to destroying entities with seized resources.
With this approach, leverage the existing Before and After Processing Add-Ons on the TraumaRooms.
The logic is shown below for the TraumaRooms_Processing Process. I only applied the preemption of the doctor resource at the TraumaRooms, assuming this station was the first station where an Urgent patient would need immediate need from a doctor.
The OptQuest output again shows mixed results for this approach where satisfication is not exceeding th 80% rate.