Scenario VI – Short studies in the morning, long studies in
8. APPENDIX A: SIMULATION MODEL
The image above is a simplified view of the actual simulation model. Objects 8-15 represent the workflow of one sonographer, and so in the actual model, these objects are duplicated five times to represent the workflow for each of the five sonographers in the clinic. Objects 16-22 represent the workflow of the rover. Also note that the objects representing the workflow for each sonographer are grouped together in the simulation model such that only one work item (patient) is able to flow through until it reaches the end point. This prevents the sonographer activity object from accepting a new work item (patient) before its previous work item (patient) has gone through the entire workflow. A short description of each of the objects, along with any visual logic code used by the object, will be given below.
1. Start point: This object generates work items (patients) based on arrival times generated by an excel spreadsheet. The excel spreadsheet generates arrival times based on the arrival distribution described in section 4.2.1
2. ‘Red Line’ queue: This object holds work items (patients) if the Reception Desk is busy with another patient. The queue follows a first-in-first-out (FIFO) discipline
3. ‘Reception Desk’ activity: This object sorts incoming work items (patients) into the Early, On Time, or Late queue depending on the patient’s arrival time. The duration of this activity is fixed at 0.5 minutes
4. ‘Early’ queue: This object holds early work items (patients) until a sonographer chooses to scan them. The queue follows a FIFO discipline
4 7 8 6 5 9 10 11 12 13 14 15 23 16 17 18 19 20 21 22 24 1 2 3
5. ‘On Time’ queue: This object holds on time work items (patients) until a sonographer is available to scan them. The queue follows a FIFO discipline
6. ‘Late’ queue: This object holds late work items (patients) until a sonographer chooses to scan them. The queue follows a FIFO discipline
7. ‘Inpatient’ queue: This object holds inpatients until a sonographer chooses to scan them. The queue has a start-up volume of 1000 work items to illustrate that there are always inpatients ready to be scanned at any time during the simulation
8. ‘Sonographer scan’ activity: This object represents the image acquisition period. The duration of this activity is given by the distribution described in section 4.2.1. Furthermore, this object chooses which type of patient to scan and when to scan them depending on the appointment rules described in section 4.1.1. It does this by executing the following visual logic code just before a new work item (patient) is taken:
VL SECTION: S 1 Route In Before Logic IF Simulation Time < 60
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time >= 300] & [Simulation Time < 360] = 1 Set Route In Discipline S 1 , Locked
ELSE IF Simulation Time >= 540
IF [On Time.Count Contents > 0] | [Float.Count Contents > 0] | [Early.Count Contents > 0] = 1
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , On Time , 1 Set Route In Priority S 1 , Float , 2 Set Route In Priority S 1 , Early , 3 ELSE
Set Route In Discipline S 1 , Locked ELSE IF On Time.Count Contents > 0
IF [Simulation Time > 60] & [Simulation Time < 90] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1
ELSE IF [Simulation Time > 120] & [Simulation Time < 150] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1
ELSE IF [Simulation Time > 180] & [Simulation Time < 210] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1
ELSE IF [Simulation Time > 240] & [Simulation Time < 270] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1
ELSE IF [Simulation Time > 300] & [Simulation Time < 330] = 1 Set Route In Discipline S 1 , Priority
ELSE IF [Simulation Time > 360] & [Simulation Time < 390] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1
ELSE IF [Simulation Time > 420] & [Simulation Time < 540] = 1 Set Route In Discipline S 1 , Priority
Set Route In Priority S 1 , On Time , 1 ELSE
Set Route In Discipline S 1 , Locked ELSE
IF [Simulation Time > 65] & [Simulation Time < 90] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 90
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 125] & [Simulation Time < 150] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 150 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 185] & [Simulation Time < 210] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 210 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 245] & [Simulation Time < 270] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 270 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 305] & [Simulation Time < 330] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 310 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 365] & [Simulation Time < 390] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 390 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked
ELSE IF [Simulation Time > 425] & [Simulation Time < 510] = 1 IF Float.Count Contents > 0
Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Float , 1 ELSE IF Early.Count Contents > 0 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Early , 1 ELSE IF Simulation Time < 500 Set Route In Discipline S 1 , Priority Set Route In Priority S 1 , Inpatients , 1 ELSE
Set Route In Discipline S 1 , Locked ELSE
Set Route In Discipline S 1 , Locked
The above code includes fudge factors in which sonographers will not take new outpatients 30 min before the start of their next appointment and will not take new inpatients 50 min before the start of their next appointment (or end of their shift). Sonographers in the simulation cannot make decisions and these fudge factors allowed the simulation model to more accurately reflect the workings of the echo clinic.
The above code is for the three sonographers on the 8am-4pm shift. For the two sonographers on the 8:30am-4:30pm shift, the code must be altered to account for the 30 min offset in time. This is done by simply adding 30 to each if-statement that scrutinizes “Simulation Time”. After this activity is finished, the work item (patient) will be routed to the ‘Time between scans’ activity if it is an outpatient, or the ‘Extra inpatient work’ activity if it is an inpatient
9. ‘Time between scans’ activity: This object represents the time between image acquisitions. The duration of this activity is given by the distribution described in section 4.2.1
10. ‘Extra inpatient work’ activity: This object represents the extra time taken when sonographers scan inpatients. It encompasses the time it takes to power up/down the echocardiogram machine and move it to the inpatient room. The duration of this activity is given an average of 10 minutes
11. ‘Report writing’ activity: This object represents the time taken to write the scan report once the scan is completed. The duration of this activity is given by the distribution described in section 4.2.1
12. ‘Review or box’ activity: This object determines whether a patient scan is to be reviewed by the cardiologist or boxed. The object makes this decision based on the probability that 12% of scans were boxed (see Fig. 12). If the scan is to be reviewed, then this object will route the work item (patient) to the ‘Scan review wait’ queue. If the scan is to be boxed, then this object will route the work item (patient) to the End point. The duration of this activity is fixed at 0.5 minutes
13. ‘Scan review wait’ queue: This object holds work items (patients) until a cardiologist is available for review.
14. ‘Cardiologist review’ activity: This object represents the time spent reviewing a scan. Work items (patients) may only enter this activity if there is at least one available cardiologist resource (see object 24). Otherwise the work item (patient) will have to remain in the ‘Scan review wait’ queue until a cardiologist is free. The duration of this activity is given by the distribution described in section 4.2.1. This object also determines whether or not a rescan is necessary. It makes this decision based on the probability that 10% of scans required a rescan (see Fig. 11). If the scan requires additional echocardiogram images, then this object will route the work item (patient) to the ‘Rescanning’ activity. Otherwise, this object will route the work item (patient) to the End point
15. ‘Rescanning’ activity: This object represents the time spent taking additional echocardiogram images. The duration of this activity is given an average of 10 minutes
16. ‘Rover scan’ activity: This object represents the image acquisition period. The duration of this activity is given by the distribution described in section 4.2.1. Furthermore, this object chooses which type of patient to scan and when to scan them depending on the appointment rules described in section 4.1.1. It does this by executing the following visual logic code just before a new work item (patient) is taken:
VL SECTION: Rover Route In Before Logic IF Simulation Time < 60
Set Route In Discipline Rover , Locked
ELSE IF [Simulation Time >= 300] & [Simulation Time < 360] = 1 Set Route In Discipline Rover , Locked
ELSE IF Simulation Time >= 500
Set Route In Discipline Rover , Locked ELSE IF Inpatients.Count Contents > 0 Set Route In Discipline Rover , Priority Set Route In Priority Rover , Inpatients , 1
17. ‘Time between scans for rover’ activity: This object represents the time between image acquisitions for the rover. The duration of this activity is given by the distribution described in section 4.2.1 18. See 11 19. See 12 20. See 13 21. See 14 22. See 15
23. End point: This object generates an excel data sheet with information about each work item’s (patient) experience through the simulation. These include scheduled time of arrival, actual time of arrival, wait time, and which sonographer performed their scan
24. ‘Cardiologists’ resource: This object allows us to set the amount of cardiologists available for review, which is set at two