For SHS student case study competition, my team had to come up with improved Emergency Department design and do an analysis on costs, wait time, and sensitivity analysis.
I was in charge of modeling a simulation of and do a analysis on various different number of input parameters using Promodel.
Below is an example showing wait time and estimated annual labor cost depend on different combination of nurses and doctor. This is done by changing its attribute quantity in promodel
I was in charge of modeling a simulation of and do a analysis on various different number of input parameters using Promodel.
Below is an example showing wait time and estimated annual labor cost depend on different combination of nurses and doctor. This is done by changing its attribute quantity in promodel
Here is the code for the simulation :
********************************************************************************
* *
* Formatted Listing of Model: *
* C:\Users\Administrator\Desktop\SHS.MOD *
* *
********************************************************************************
Time Units: Minutes
Distance Units: Feet
********************************************************************************
* Locations *
********************************************************************************
Name Cap Units Stats Rules Cost
---------- --- ----- ----------- ---------- ------------
enterance inf 1 Time Series Oldest, ,
k1 4 1 Time Series Oldest, ,
h1 2 1 Time Series Oldest, ,
f1 6 1 Time Series Oldest, ,
i1 2 1 Time Series Oldest, ,
p1 2 1 Time Series Oldest, ,
lobby inf 1 Time Series Oldest, ,
ambulance inf 1 Time Series Oldest, ,
walkin inf 1 Time Series Oldest, ,
********************************************************************************
* Entities *
********************************************************************************
Name Speed (fpm) Stats Cost
---------- ------------ ----------- ------------
Patient 150 Time Series
********************************************************************************
* Resources *
********************************************************************************
Res Ent
Name Units Stats Search Search Path Motion Cost
----------- ----- -------- ------ ------ ---------- -------------- ------------
nurse 5 By Unit None Oldest Empty: 150 fpm
Full: 150 fpm
doctor 2 By Unit None Oldest Empty: 150 fpm
Full: 150 fpm
triagedoc 1 By Unit None Oldest Empty: 150 fpm
Full: 150 fpm
triagenurse 1 By Unit None Oldest Empty: 150 fpm
Full: 150 fpm
********************************************************************************
* Processing *
********************************************************************************
Process Routing
Entity Location Operation Blk Output Destination Rule Move Logic
-------- --------- ------------------ ---- -------- ----------- ------- ------------
Patient enterance if arriving_type=0 then route 1
if arriving_type=1 then route 2
1 Patient walkin FIRST 1
2 Patient ambulance FIRST 1
Patient walkin 1 Patient lobby FIRST 1
Patient ambulance 1 Patient lobby FIRST 1
Patient lobby if esi=1 then begin route 1 end
if esi=2 then begin route 2 end
if esi=3 then begin route 3 end
if esi=4 then begin route 4 end
if esi=5 then begin route 5 end
if esi=6 then begin route 3 end
1 Patient k1,999 FIRST 1 USE nurse, 999 FOR 10 and doctor, 999 for 15 Free all
Use nurse, 999 for 10
Patient h1,999 FIRST USE nurse, 999 FOR 10 and doctor, 999 for 15 Free all
Use nurse, 999 for 10
Patient f1,999 FIRST USE nurse, 999 FOR 10 and doctor, 999 for 15 Free all
Use nurse, 999 for 10
Patient i1,999 FIRST USE nurse, 999 FOR 10 and doctor, 999 for 15 Free all
Use nurse, 999 for 10
Patient p1,999 FIRST USE nurse, 999 FOR 10 and doctor, 999 for 15 Free all
Use nurse, 999 for 10
2 Patient k1,700 FIRST 1 USE nurse, 700 FOR 10 and doctor, 700 for 15 Free all
Use nurse, 700 for 10
Patient h1,700 FIRST USE nurse, 700 FOR 10 and doctor, 700 for 15 Free all
Use nurse, 700 for 10
Patient f1,700 FIRST USE nurse, 700 FOR 10 and doctor, 700 for 15 Free all
Use nurse, 700 for 10
Patient i1,700 FIRST USE nurse, 700 FOR 10 and doctor, 700 for 15 Free all
Use nurse, 700 for 10
Patient p1,700 FIRST USE nurse, 700 FOR 10 and doctor, 700 for 15 Free all
Use nurse, 700 for 10
3 Patient f1,500 FIRST 1 USE nurse, 500 FOR 10 and doctor, 500 for 15 Free all
Use nurse, 500 for 10
Patient h1,500 ALT USE nurse, 500 FOR 10 and doctor, 500 for 15 Free all
Use nurse, 500 for 10
Patient k1,500 FIRST USE nurse, 500 FOR 10 and doctor, 500 for 15 Free all
Use nurse, 500 for 10
Patient i1,500 ALT USE nurse, 500 FOR 10 and doctor, 500 for 15 Free all
Use nurse, 500 for 10
Patient p1,500 ALT USE nurse, 500 FOR 10 and doctor, 500 for 15 Free all
Use nurse, 500 for 10
4 Patient f1,350 FIRST 1 USE nurse, 350 FOR 10 and doctor, 350 for 15 Free all
Use nurse, 350 for 10
Patient k1,350 ALT USE nurse, 350 FOR 10 and doctor, 350 for 15 Free all
Use nurse, 350 for 10
Patient i1,350 ALT USE nurse, 350 FOR 10 and doctor, 350 for 15 Free all
Use nurse, 350 for 10
Patient h1,350 ALT USE nurse, 350 FOR 10 and doctor, 350 for 15 Free all
Use nurse, 350 for 10
Patient p1,350 ALT USE nurse, 350 FOR 10 and doctor, 350 for 15 Free all
Use nurse, 350 for 10
5 Patient f1,200 FIRST 1 USE nurse, 200 FOR 10 and doctor, 200 for 15 Free all
Use nurse, 200 for 10
Patient k1,200 ALT USE nurse, 200 FOR 10 and doctor, 200 for 15 Free all
Use nurse, 200 for 10
Patient i1,200 ALT USE nurse, 200 FOR 10 and doctor, 200 for 15 Free all
Use nurse, 200 for 10
Patient p1,200 ALT USE nurse, 200 FOR 10 and doctor, 200 for 15 Free all
Use nurse, 200 for 10
Patient k1 if esi=1 then wait U(127, 30)
if esi=2 then wait U(157, 30)
if esi=3 then wait U(187, 30)
if esi=4 then wait U(217, 30)
if esi=5 then wait U(247, 30)
if esi=6 then wait U(277, 30)
1 Patient EXIT FIRST 1
Patient h1 if esi=1 then wait U(127, 30)
if esi=2 then wait U(157, 30)
if esi=3 then wait U(187, 30)
if esi=4 then wait U(217, 30)
if esi=5 then wait U(247, 30)
if esi=6 then wait U(277, 30)
1 Patient EXIT FIRST 1
Patient f1 if esi=1 then wait U(127, 30)
if esi=2 then wait U(157, 30)
if esi=3 then wait U(187, 30)
if esi=4 then wait U(217, 30)
if esi=5 then wait U(247, 30)
if esi=6 then wait U(277, 30)
1 Patient EXIT FIRST 1
Patient i1 if esi=1 then wait U(127, 30)
if esi=2 then wait U(157, 30)
if esi=3 then wait U(187, 30)
if esi=4 then wait U(217, 30)
if esi=5 then wait U(247, 30)
if esi=6 then wait U(277, 30)
1 Patient EXIT FIRST 1
Patient p1 if esi=1 then wait U(127, 30)
if esi=2 then wait U(157, 30)
if esi=3 then wait U(187, 30)
if esi=4 then wait U(217, 30)
if esi=5 then wait U(247, 30)
if esi=6 then wait U(277, 30)
1 Patient EXIT FIRST 1
********************************************************************************
* Arrivals *
********************************************************************************
Entity Location Qty Each First Time Occurrences Frequency Logic
-------- --------- ---------- ---------- ----------- ---------- ------------
Patient enterance 1 inf e(15) symptom=symptom_dist()
esi=esi_dist()
arriving_type=arriving_dist()
********************************************************************************
* Attributes *
********************************************************************************
ID Type Classification
------------- ------------ --------------
#
#0=Cut Contusions(16%)
#1=URI(10.5%)
#2=Sprain Broken Bone(7.9%)
#3=Abdominal GI(6.6%)
#4=Other Pain(6.3%)
#5=Skin infection(6.3%)
#6=Mental Health(4.9%)
#7=Insect bite (4.7%)
#8=Asthma Pulmunary(4.3%)
#9=Other Bacterial Infection(3.5%)
#10=Headache and Neuro(3.5%)
#11=Renal/ UTI(3.5%)
#12=Alcohol Drug(3.5%)
#13=Head Injury concission(3.5%)
#14=Other Injury(15%)
#
symptom Integer Entity
#
#0=unk(5.6%)
#1=1(1.1%)
#2=2(10.2%)
#3=3(43.4%)
#4=4(32.7%)
#5=5(7%)
esi Integer Entity
#
#0=walk-in
#1=embulance
arriving_type Integer Entity
********************************************************************************
* User Distributions *
********************************************************************************
ID Type Cumulative Percentage Value
------------- ------------ ------------ ------------ ------------
symptom_dist Discrete No 16 0
10.5 1
7.9 2
6.6 3
6.3 4
6.3 5
4.9 6
4.7 7
4.3 8
3.5 9
3.5 10
3.5 11
3.5 12
3.5 13
15 14
esi_dist Discrete No 5.6 6
1.1 1
10.2 2
43.4 3
32.7 4
7 5
arriving_dist Discrete No 85 0
15 1
as you can see, we had to research probability distribution on various of different things that could cause different processing time and routes. Because of the limitation of the student version of the program, detailed routing and processing were not accomplished. However, we were able to get close enough theoretical numbers which were very close to numbers that we got from manual queuing theory calculation