//////////////// POLICY: back from xray preferred ///////////////

Simulating 1 days with detailed output:

-- 07:00:00 --
Start of simulation.
All doctors start waiting.

-- 07:15:31 --
New patient: p1, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p1, preferred doctor: null...
1st examination start: p1, d1
Checking if doctor d2 can take a patient...

-- 07:15:42 --
New patient: p2, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p2, preferred doctor: null...
1st examination start: p2, d2

-- 07:23:37 --
1st examination end: p1, d1
Xray needed. Add p1 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p1
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 07:31:36 --
Xray-shooting end: p1
Add to back-from-xray-waiters: p1
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Back from xray-shooting: p1, preferred doctor: d1...
2nd examination start: p1, d1
Checking xray-waiting-list...

-- 07:32:51 --
1st examination end: p2, d2
Xray needed. Add p2 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p2
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 07:35:17 --
New patient: p3, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p3, preferred doctor: null...
1st examination start: p3, d2

-- 07:40:23 --
Xray-shooting end: p2
Add to back-from-xray-waiters: p2
Checking examination-waiting-list...
Checking xray-waiting-list...

-- 07:52:01 --
2nd examination end: p1, d1
Can go home: p1
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Back from xray-shooting: p2, preferred doctor: d2...

-- 07:52:20 --
1st examination end: p3, d2
Xray needed. Add p3 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p3
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Back from xray-shooting: p2, preferred doctor: d2...
2nd examination start: p2, d2
Checking if doctor d1 can take a patient...

-- 08:01:07 --
Xray-shooting end: p3
Add to back-from-xray-waiters: p3
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Back from xray-shooting: p3, preferred doctor: d2...
Checking xray-waiting-list...

-- 08:14:15 --
2nd examination end: p2, d2
Can go home: p2
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Back from xray-shooting: p3, preferred doctor: d2...
Checking if doctor d2 can take a patient...
Back from xray-shooting: p3, preferred doctor: d2...
2nd examination start: p3, d2

-- 08:26:40 --
2nd examination end: p3, d2
Can go home: p3
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 09:13:51 --
New patient: p4, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p4, preferred doctor: null...
1st examination start: p4, d1
Checking if doctor d2 can take a patient...

-- 09:30:09 --
1st examination end: p4, d1
No xray needed. Can go home now: p4
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 10:00:23 --
New patient: p5, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p5, preferred doctor: null...
1st examination start: p5, d2
Checking if doctor d1 can take a patient...

-- 10:04:27 --
New patient: p6, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p6, preferred doctor: null...
1st examination start: p6, d1

-- 10:15:01 --
1st examination end: p6, d1
Xray needed. Add p6 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p6
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 10:16:05 --
1st examination end: p5, d2
Xray needed. Add p5 to xray-waiting-list
Checking xray-waiting-list...
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 10:22:19 --
Xray-shooting end: p6
Add to back-from-xray-waiters: p6
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Back from xray-shooting: p6, preferred doctor: d1...
2nd examination start: p6, d1
Checking if doctor d2 can take a patient...
Checking xray-waiting-list...
Xray-shooting starts: p5

-- 10:31:52 --
Xray-shooting end: p5
Add to back-from-xray-waiters: p5
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Back from xray-shooting: p5, preferred doctor: d2...
2nd examination start: p5, d2
Checking xray-waiting-list...

-- 10:35:16 --
2nd examination end: p6, d1
Can go home: p6
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 11:00:23 --
2nd examination end: p5, d2
Can go home: p5
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 11:00:23 --
All doctors stop waiting.
End of simulation.

Number of patients:          6
effective closing time:       11:00:23
maximum patient waiting time: 00:13:08
average patient waiting time: 00:05:13
doctor1 waiting time:         02:52:03
doctor2 waiting time:         02:07:38
xray doctor waiting time:     03:19:14
total doctors waiting time:   08:18:55
--------------------------------------------

Simulating 3 days without detailed output:

Number of patients:          6
effective closing time:       11:32:31
maximum patient waiting time: 00:10:56
average patient waiting time: 00:03:11
doctor1 waiting time:         03:03:02
doctor2 waiting time:         02:54:59
xray doctor waiting time:     03:54:41
total doctors waiting time:   09:52:42
--------------------------------------------

Number of patients:          9
effective closing time:       11:37:23
maximum patient waiting time: 00:15:27
average patient waiting time: 00:05:20
doctor1 waiting time:         02:07:45
doctor2 waiting time:         02:45:28
xray doctor waiting time:     03:37:23
total doctors waiting time:   08:30:36
--------------------------------------------

Number of patients:          6
effective closing time:       11:00:00
maximum patient waiting time: 00:16:21
average patient waiting time: 00:04:59
doctor1 waiting time:         02:51:46
doctor2 waiting time:         02:13:12
xray doctor waiting time:     03:26:05
total doctors waiting time:   08:31:03
--------------------------------------------

Simulating 10000 days and computing average statistics:

Number of patients:         7,99
effective closing time:       11:22:30
maximum patient waiting time: 00:18:02
average patient waiting time: 00:05:46
doctor1 waiting time:         02:24:26
doctor2 waiting time:         02:24:16
xray doctor waiting time:     03:31:30
total doctors waiting time:   08:20:13

//////////////// POLICY: first come first serve ///////////////

Simulating 1 days with detailed output:

-- 07:00:00 --
Start of simulation.
All doctors start waiting.

-- 07:04:28 --
New patient: p1, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p1, preferred doctor: null...
1st examination start: p1, d2
Checking if doctor d1 can take a patient...

-- 07:13:37 --
1st examination end: p1, d2
No xray needed. Can go home now: p1
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 07:17:44 --
New patient: p2, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p2, preferred doctor: null...
1st examination start: p2, d2
Checking if doctor d1 can take a patient...

-- 07:29:23 --
New patient: p3, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p3, preferred doctor: null...
1st examination start: p3, d1

-- 07:32:19 --
1st examination end: p2, d2
Xray needed. Add p2 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p2
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 07:39:32 --
New patient: p4, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p4, preferred doctor: null...
1st examination start: p4, d2

-- 07:40:51 --
Xray-shooting end: p2
Add to examination-waiting-list: p2
Checking examination-waiting-list...
Checking xray-waiting-list...

-- 07:48:55 --
1st examination end: p3, d1
No xray needed. Can go home now: p3
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p2, preferred doctor: d2...
2nd examination start: p2, d1

-- 07:50:32 --
1st examination end: p4, d2
Xray needed. Add p4 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p4
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 07:59:39 --
Xray-shooting end: p4
Add to examination-waiting-list: p4
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p4, preferred doctor: d2...
2nd examination start: p4, d2
Checking xray-waiting-list...

-- 08:00:05 --
2nd examination end: p2, d1
Can go home: p2
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 08:09:08 --
New patient: p5, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p5, preferred doctor: null...
1st examination start: p5, d1

-- 08:20:03 --
2nd examination end: p4, d2
Can go home: p4
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 08:21:14 --
1st examination end: p5, d1
Xray needed. Add p5 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p5
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 08:30:59 --
Xray-shooting end: p5
Add to examination-waiting-list: p5
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p5, preferred doctor: d1...
2nd examination start: p5, d1
Checking if doctor d2 can take a patient...
Checking xray-waiting-list...

-- 08:37:54 --
New patient: p6, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p6, preferred doctor: null...
1st examination start: p6, d2

-- 08:43:31 --
New patient: p7, add to examination-waiting-list
Checking examination-waiting-list...

-- 08:46:22 --
2nd examination end: p5, d1
Can go home: p5
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p7, preferred doctor: null...
1st examination start: p7, d1

-- 08:50:00 --
1st examination end: p6, d2
Xray needed. Add p6 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p6
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 08:55:44 --
Xray-shooting end: p6
Add to examination-waiting-list: p6
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p6, preferred doctor: d2...
2nd examination start: p6, d2
Checking xray-waiting-list...

-- 09:03:42 --
1st examination end: p7, d1
Xray needed. Add p7 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p7
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 09:08:14 --
New patient: p8, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p8, preferred doctor: null...
1st examination start: p8, d1

-- 09:13:34 --
Xray-shooting end: p7
Add to examination-waiting-list: p7
Checking examination-waiting-list...
Checking xray-waiting-list...

-- 09:15:44 --
2nd examination end: p6, d2
Can go home: p6
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p7, preferred doctor: d1...
2nd examination start: p7, d2

-- 09:25:37 --
1st examination end: p8, d1
Xray needed. Add p8 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p8
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 09:29:30 --
2nd examination end: p7, d2
Can go home: p7
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Checking if doctor d2 can take a patient...

-- 09:35:36 --
Xray-shooting end: p8
Add to examination-waiting-list: p8
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p8, preferred doctor: d1...
2nd examination start: p8, d1
Checking if doctor d2 can take a patient...
Checking xray-waiting-list...

-- 09:51:30 --
2nd examination end: p8, d1
Can go home: p8
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
Checking if doctor d2 can take a patient...

-- 10:28:24 --
New patient: p9, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p9, preferred doctor: null...
1st examination start: p9, d2
Checking if doctor d1 can take a patient...

-- 10:44:43 --
New patient: p10, add to examination-waiting-list
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p10, preferred doctor: null...
1st examination start: p10, d1

-- 10:45:22 --
1st examination end: p9, d2
Xray needed. Add p9 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p9
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 10:52:22 --
Xray-shooting end: p9
Add to examination-waiting-list: p9
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p9, preferred doctor: d2...
2nd examination start: p9, d2
Checking xray-waiting-list...

-- 10:57:52 --
New patient: p11, add to examination-waiting-list
Checking examination-waiting-list...

-- 11:02:29 --
1st examination end: p10, d1
Xray needed. Add p10 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p10
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p11, preferred doctor: null...
1st examination start: p11, d1

-- 11:11:13 --
Xray-shooting end: p10
Add to examination-waiting-list: p10
Checking examination-waiting-list...
Checking xray-waiting-list...

-- 11:15:44 --
1st examination end: p11, d1
Xray needed. Add p11 to xray-waiting-list
Checking xray-waiting-list...
Xray-shooting starts: p11
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...
waiting for examination: p10, preferred doctor: d1...
2nd examination start: p10, d1

-- 11:19:01 --
2nd examination end: p9, d2
Can go home: p9
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...

-- 11:21:14 --
Xray-shooting end: p11
Add to examination-waiting-list: p11
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
waiting for examination: p11, preferred doctor: d1...
2nd examination start: p11, d2
Checking xray-waiting-list...

-- 11:26:00 --
2nd examination end: p10, d1
Can go home: p10
Checking examination-waiting-list...
Checking if doctor d1 can take a patient...

-- 11:34:20 --
2nd examination end: p11, d2
Can go home: p11
Checking examination-waiting-list...
Checking if doctor d2 can take a patient...
Checking if doctor d1 can take a patient...

-- 11:34:20 --
All doctors stop waiting.
End of simulation.

Number of patients:         11
effective closing time:       11:34:20
maximum patient waiting time: 00:08:04
average patient waiting time: 00:02:01
doctor1 waiting time:         02:04:15
doctor2 waiting time:         01:56:37
xray doctor waiting time:     03:20:07
total doctors waiting time:   07:20:59
--------------------------------------------

Simulating 3 days without detailed output:

Number of patients:          8
effective closing time:       11:28:39
maximum patient waiting time: 00:00:00
average patient waiting time: 00:00:00
doctor1 waiting time:         02:06:09
doctor2 waiting time:         03:03:23
xray doctor waiting time:     03:27:50
total doctors waiting time:   08:37:22
--------------------------------------------

Number of patients:          5
effective closing time:       11:00:00
maximum patient waiting time: 00:10:41
average patient waiting time: 00:02:49
doctor1 waiting time:         02:07:25
doctor2 waiting time:         02:42:16
xray doctor waiting time:     03:28:01
total doctors waiting time:   08:17:42
--------------------------------------------

Number of patients:          3
effective closing time:       11:00:00
maximum patient waiting time: 00:00:00
average patient waiting time: 00:00:00
doctor1 waiting time:         03:22:54
doctor2 waiting time:         03:06:09
xray doctor waiting time:     03:40:10
total doctors waiting time:   10:09:13
--------------------------------------------

Simulating 10000 days and computing average statistics:

Number of patients:         7,96
effective closing time:       11:20:11
maximum patient waiting time: 00:13:12
average patient waiting time: 00:04:13
doctor1 waiting time:         02:22:45
doctor2 waiting time:         02:22:42
xray doctor waiting time:     03:29:33
total doctors waiting time:   08:15:01

