library(simmer)

In an earlier post, Getting started with SimPy for patient flow modeling, I developed three very simple patient flow models as part of my learning SimPy process. Now I'll build those same simple models using simmer. See the earlier post for details about the system being modeled. In a nutshell, it's an inpatient obstetrical setting in which patients flow through three units: OBS -> LDR -> PP in the process of giving birth. Arrivals are Poisson and all length of stay distributions are exponential. My goal is to start to learn how to use simmer for discrete event simulation and do some comparisons with SimPy.

obflow_1 - Stays modeled with delays (no resources)

Same scenario as in the SimPy version.

  • Exponential arrivals
  • Stays modeled as delays (no resources)

Define a few constants.

ARR_RATE <- 0.4
MEAN_LOS_OBS <- 3
MEAN_LOS_LDR <- 12
MEAN_LOS_PP <- 48

RNG_SEED <- 6353

Create a simulation environment. This is similar to env = simpy.Environment() in SimPy.

env1 <- simmer("obflow_1")
env1
## simmer environment: obflow_1 | now: 0 | next:
# Initialize random number generator
set.seed(RNG_SEED)

Create a trajectory to model the patient flow logic. Simmer is very process oriented. A trajectory contains a chained sequence of simmer statements for doing things like seizing and releasing resources, setting entity attributes, print log statements, and a number of other activities. See the Add Activities section of the Reference manual.

Note the use of the magrittr pipe operator (the %>%) to chain the statements together.

obpatient1 <- trajectory("obroute1") %>%
  set_attribute("patient_id", function() {get_n_generated(env1, "obpatgen1") + 1}) %>%
  # Stay in OBS
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering OBS")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_OBS)) %>%
  # Stay in LDR
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering LDR")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_LDR)) %>%
  # Stay in PP
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering PP")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_PP))

Patient arrival generator

env1 %>%
  add_generator("obpatgen1", obpatient1, function() rexp(1, ARR_RATE))
## simmer environment: obflow_1 | now: 0 | next: 0
## { Generator: obpatgen1 | monitored: 1 | n_generated: 0 }

Run it

runtime <- 25
env1 %>% run(until=runtime)
## 1.80296: obpatgen10: Patient3 entering OBS
## 2.03297: obpatgen11: Patient4 entering OBS
## 2.28146: obpatgen11: Patient4 entering LDR
## 3.47886: obpatgen12: Patient5 entering OBS
## 4.5727: obpatgen10: Patient3 entering LDR
## 6.2201: obpatgen13: Patient6 entering OBS
## 7.36541: obpatgen12: Patient5 entering LDR
## 9.74365: obpatgen14: Patient7 entering OBS
## 10.366: obpatgen13: Patient6 entering LDR
## 12.3546: obpatgen11: Patient4 entering PP
## 13.3235: obpatgen14: Patient7 entering LDR
## 13.6945: obpatgen15: Patient8 entering OBS
## 14.0472: obpatgen15: Patient8 entering LDR
## 14.5998: obpatgen14: Patient7 entering PP
## 14.6298: obpatgen16: Patient9 entering OBS
## 14.6733: obpatgen17: Patient10 entering OBS
## 15.1318: obpatgen16: Patient9 entering LDR
## 15.4214: obpatgen17: Patient10 entering LDR
## 15.5253: obpatgen18: Patient11 entering OBS
## 16.011: obpatgen15: Patient8 entering PP
## 16.0509: obpatgen13: Patient6 entering PP
## 16.3679: obpatgen17: Patient10 entering PP
## 19.4026: obpatgen18: Patient11 entering LDR
## 21.8341: obpatgen19: Patient12 entering OBS
## 23.4085: obpatgen110: Patient13 entering OBS
## simmer environment: obflow_1 | now: 25 | next: 25.1787645576929
## { Generator: obpatgen1 | monitored: 1 | n_generated: 12 }

obflow2 - OBS modeled as resource, LDR & PP are delays

Now let's get one unit working with seizing and releasing of resources.

ARR_RATE <- 0.4
MEAN_LOS_OBS <- 3
MEAN_LOS_LDR <- 12
MEAN_LOS_PP <- 48

RNG_SEED <- 6353

CAPACITY_OBS = 2
env2 <- simmer("obflow_2")
env2
## simmer environment: obflow_2 | now: 0 | next:
set.seed(RNG_SEED)

Create a trajectory and assign to patient

obpatient2 <- trajectory("obroute2") %>%
  set_attribute("patient_id", function() {get_n_generated(env2, "obpatgen2") + 1}) %>%
  # Stay in OBS
  seize("OBS", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering OBS")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_OBS)) %>%
  release("OBS", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving OBS")}) %>%
  # Stay in LDR
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering LDR")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_LDR)) %>%
  # Stay in PP
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering PP")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_PP))

Patient arrival generator

env2 %>%
  add_generator("obpatgen2", obpatient2, function() rexp(1, ARR_RATE)) %>%
  add_resource("OBS", CAPACITY_OBS, Inf)
## simmer environment: obflow_2 | now: 0 | next: 0
## { Resource: OBS | monitored: 1 | server status: 0(2) | queue status: 0(Inf) }
## { Generator: obpatgen2 | monitored: 1 | n_generated: 0 }

Run it

runtime <- 25
env2 %>% run(until=runtime)
## 1.80296: obpatgen20: Patient3 entering OBS
## 2.03297: obpatgen21: Patient4 entering OBS
## 2.28146: obpatgen21: Patient4 leaving OBS
## 2.28146: obpatgen21: Patient4 entering LDR
## 3.47886: obpatgen22: Patient5 entering OBS
## 4.5727: obpatgen20: Patient3 leaving OBS
## 4.5727: obpatgen20: Patient3 entering LDR
## 6.2201: obpatgen23: Patient6 entering OBS
## 7.36541: obpatgen22: Patient5 leaving OBS
## 7.36541: obpatgen22: Patient5 entering LDR
## 9.74365: obpatgen24: Patient7 entering OBS
## 10.366: obpatgen23: Patient6 leaving OBS
## 10.366: obpatgen23: Patient6 entering LDR
## 12.3546: obpatgen21: Patient4 entering PP
## 13.3235: obpatgen24: Patient7 leaving OBS
## 13.3235: obpatgen24: Patient7 entering LDR
## 13.6945: obpatgen25: Patient8 entering OBS
## 14.0472: obpatgen25: Patient8 leaving OBS
## 14.0472: obpatgen25: Patient8 entering LDR
## 14.5998: obpatgen24: Patient7 entering PP
## 14.6298: obpatgen26: Patient9 entering OBS
## 14.6733: obpatgen27: Patient10 entering OBS
## 15.1318: obpatgen26: Patient9 leaving OBS
## 15.1318: obpatgen26: Patient9 entering LDR
## 15.4214: obpatgen27: Patient10 leaving OBS
## 15.4214: obpatgen27: Patient10 entering LDR
## 15.5253: obpatgen28: Patient11 entering OBS
## 16.011: obpatgen25: Patient8 entering PP
## 16.0509: obpatgen23: Patient6 entering PP
## 16.3679: obpatgen27: Patient10 entering PP
## 19.4026: obpatgen28: Patient11 leaving OBS
## 19.4026: obpatgen28: Patient11 entering LDR
## 21.8341: obpatgen29: Patient12 entering OBS
## 23.4085: obpatgen210: Patient13 entering OBS
## simmer environment: obflow_2 | now: 25 | next: 25.1787645576929
## { Resource: OBS | monitored: 1 | server status: 2(2) | queue status: 0(Inf) }
## { Generator: obpatgen2 | monitored: 1 | n_generated: 12 }

obflow3 - All units modeled with resources

When a patient tries to move on to the next unit in their trajectory, they may get blocked in their current unit if there are no beds available. So, we need to make sure that bed release isn't done until next destination is seized.

ARR_RATE <- 0.4
MEAN_LOS_OBS <- 3
MEAN_LOS_LDR <- 12
MEAN_LOS_PP <- 48

RNG_SEED <- 6353

CAPACITY_OBS = 2
CAPACITY_LDR = 6
CAPACITY_PP = 24
env3 <- simmer("obflow_3")
env3
## simmer environment: obflow_3 | now: 0 | next:
set.seed(RNG_SEED)

Create a trajectory and assign to patient

obpatient3 <- trajectory("obroute3") %>%
  # Trying to use get_n_generated() to build patient_id string. Need the -1
  # since second arrival scheduled when first arrives. simmer must treat that
  # as generated when it gets put on event list.
  set_attribute("patient_id", function() {get_n_generated(env3, "obpatgen3")-1}) %>%
  # Stay in OBS
  seize("OBS", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering OBS")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_OBS)) %>%
  # Try to get LDR bed
  log_(function(attr){paste0("Patient",attr["patient_id"]," trying to get LDR")}) %>%
  seize("LDR", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering LDR")}) %>%
  # Release OBS
  release("OBS", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving OBS")}) %>% 
  # Stay in LDR
  timeout(function() rexp(1, 1.0 / MEAN_LOS_LDR)) %>%
  # Try to get PP bed
  log_(function(attr){paste0("Patient",attr["patient_id"]," trying to get PP")}) %>%
  seize("PP", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering PP")}) %>%
  # Release LDR
  release("LDR", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving LDR")}) %>%  
  # Stay in PP
  timeout(function() rexp(1, 1.0 / MEAN_LOS_PP)) %>%
  release("PP", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving PP")})

A patient arrival generator and three resources.

env3 %>%
  add_generator("obpatgen3", obpatient3, function() rexp(1, ARR_RATE)) %>%
  add_resource("OBS", CAPACITY_OBS, Inf) %>%
  add_resource("LDR", CAPACITY_LDR, Inf) %>%
  add_resource("PP", CAPACITY_PP, Inf)
## simmer environment: obflow_3 | now: 0 | next: 0
## { Resource: OBS | monitored: 1 | server status: 0(2) | queue status: 0(Inf) }
## { Resource: LDR | monitored: 1 | server status: 0(6) | queue status: 0(Inf) }
## { Resource: PP | monitored: 1 | server status: 0(24) | queue status: 0(Inf) }
## { Generator: obpatgen3 | monitored: 1 | n_generated: 0 }

Run it.

runtime <- 25
env3 %>% run(until=runtime)
## 1.80296: obpatgen30: Patient1 entering OBS
## 2.03297: obpatgen31: Patient2 entering OBS
## 2.28146: obpatgen31: Patient2 trying to get LDR
## 2.28146: obpatgen31: Patient2 entering LDR
## 2.28146: obpatgen31: Patient2 leaving OBS
## 3.47886: obpatgen32: Patient3 entering OBS
## 4.5727: obpatgen30: Patient1 trying to get LDR
## 4.5727: obpatgen30: Patient1 entering LDR
## 4.5727: obpatgen30: Patient1 leaving OBS
## 6.2201: obpatgen33: Patient4 entering OBS
## 7.36541: obpatgen32: Patient3 trying to get LDR
## 7.36541: obpatgen32: Patient3 entering LDR
## 7.36541: obpatgen32: Patient3 leaving OBS
## 9.74365: obpatgen34: Patient5 entering OBS
## 10.366: obpatgen33: Patient4 trying to get LDR
## 10.366: obpatgen33: Patient4 entering LDR
## 10.366: obpatgen33: Patient4 leaving OBS
## 12.3546: obpatgen31: Patient2 trying to get PP
## 12.3546: obpatgen31: Patient2 entering PP
## 12.3546: obpatgen31: Patient2 leaving LDR
## 13.3235: obpatgen34: Patient5 trying to get LDR
## 13.3235: obpatgen34: Patient5 entering LDR
## 13.3235: obpatgen34: Patient5 leaving OBS
## 13.6945: obpatgen35: Patient6 entering OBS
## 14.0472: obpatgen35: Patient6 trying to get LDR
## 14.0472: obpatgen35: Patient6 entering LDR
## 14.0472: obpatgen35: Patient6 leaving OBS
## 14.5998: obpatgen34: Patient5 trying to get PP
## 14.5998: obpatgen34: Patient5 entering PP
## 14.5998: obpatgen34: Patient5 leaving LDR
## 14.6298: obpatgen36: Patient7 entering OBS
## 14.6733: obpatgen37: Patient8 entering OBS
## 15.1318: obpatgen36: Patient7 trying to get LDR
## 15.1318: obpatgen36: Patient7 entering LDR
## 15.1318: obpatgen36: Patient7 leaving OBS
## 15.4214: obpatgen37: Patient8 trying to get LDR
## 15.4214: obpatgen37: Patient8 entering LDR
## 15.4214: obpatgen37: Patient8 leaving OBS
## 15.5253: obpatgen38: Patient9 entering OBS
## 16.011: obpatgen35: Patient6 trying to get PP
## 16.011: obpatgen35: Patient6 entering PP
## 16.011: obpatgen35: Patient6 leaving LDR
## 16.0509: obpatgen33: Patient4 trying to get PP
## 16.0509: obpatgen33: Patient4 entering PP
## 16.0509: obpatgen33: Patient4 leaving LDR
## 16.3679: obpatgen37: Patient8 trying to get PP
## 16.3679: obpatgen37: Patient8 entering PP
## 16.3679: obpatgen37: Patient8 leaving LDR
## 19.4026: obpatgen38: Patient9 trying to get LDR
## 19.4026: obpatgen38: Patient9 entering LDR
## 19.4026: obpatgen38: Patient9 leaving OBS
## 21.8341: obpatgen39: Patient10 entering OBS
## 23.4085: obpatgen310: Patient11 entering OBS
## simmer environment: obflow_3 | now: 25 | next: 25.1787645576929
## { Resource: OBS | monitored: 1 | server status: 2(2) | queue status: 0(Inf) }
## { Resource: LDR | monitored: 1 | server status: 4(6) | queue status: 0(Inf) }
## { Resource: PP | monitored: 1 | server status: 5(24) | queue status: 0(Inf) }
## { Generator: obpatgen3 | monitored: 1 | n_generated: 12 }

I enjoyed creating these simple models as a way of getting started with simmer. The trajectory concept is intuitively appealing and simmer does have quite a few activities that can be added to them for more complex modeling needs (renege, select from a resource pool, branching, rollback, and quite a few more.) I did find myself longing for the flexibility and elegance of Python and felt that the chaining of activities for complex processes was going to end up being difficult to create, maintain, and most of all, debug. Then again, this may be due to the fact that while I've used both R and Python extensively, I tend to use Python for more "programmatic" things and R for statistical analysis and modeling. Perhaps if I was a better R programmer, simmer would be more appealing to me. I'll continue to tinker and explore simmer but I'm thinking I'm going with SimPy for now for my open source DES work.

Before leaving simmer, I created one more model in which I use its branch activity to model a proportion of patients requiring a c-section and then a longer length of stay in postpartum. This also gave me a chance to try out some of simmer's monitoring and plotting (via simmer.plot package). Nice.

library(simmer)
library(simmer.plot)
## Loading required package: ggplot2
# Inputs and constants

ARR_RATE <- 0.4
MEAN_LOS_OBS <- 3
MEAN_LOS_LDR <- 12
MEAN_LOS_PP_1 <- 48
MEAN_LOS_PP_2 <- 72
PCT_CSECT <- 0.2

RNG_SEED <- 6353

CAPACITY_OBS = 2
CAPACITY_LDR = 6
CAPACITY_PP = 24

set.seed(RNG_SEED)

# Simulation environment. Set verbose to TRUE to get detailed activity trace.
env <- simmer(verbose = TRUE)

# Main trajectory
obpatient <- trajectory("obroute") %>%
  # Trying to use get_n_generated() to build patient_id string. Need the -1
  # since second arrival scheduled when first arrives. simmer must treat that
  # as generated when it gets put on event list.
  set_attribute("patient_id", function() {get_n_generated(env, "obpatgen")- 1}) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," arrived to system")}) %>%
  # Stay in OBS
  seize("OBS", 1) %>%
  log_(function(attr) {paste0("Patient",attr["patient_id"]," entering OBS")}) %>%
  timeout(function() rexp(1, 1.0 / MEAN_LOS_OBS)) %>%
  # Try to get LDR bed
  log_(function(attr){paste0("Patient",attr["patient_id"]," trying to get LDR")}) %>%
  seize("LDR", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering LDR")}) %>%
  # Release OBS
  release("OBS", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving OBS")}) %>% 
  # Stay in LDR
  timeout(function() rexp(1, 1.0 / MEAN_LOS_LDR)) %>%
  # Try to get PP bed
  log_(function(attr){paste0("Patient",attr["patient_id"]," trying to get PP")}) %>%
  seize("PP", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," entering PP")}) %>%
  release("LDR", 1) %>%
  # Probabilistic branch for c-section
  branch(function() (runif(1) < PCT_CSECT) + 1, c(T, T),
         trajectory() %>%
           log_(function(attr){paste0("Patient",attr["patient_id"]," leaving LDR (NOC)")}) %>% 
           timeout(function() rexp(1, 1.0 / MEAN_LOS_PP_1)),
         trajectory() %>%
           log_(function(attr){paste0("Patient",attr["patient_id"]," leaving LDR (C)")}) %>% 
           timeout(function() rexp(1, 1.0 / MEAN_LOS_PP_2) )) %>%
  release("PP", 1) %>%
  log_(function(attr){paste0("Patient",attr["patient_id"]," leaving PP")})

# Add generators and resources
env %>%
  add_generator("obpatgen", obpatient, function() rexp(1, ARR_RATE), mon=1) %>%
  add_resource("OBS", CAPACITY_OBS, Inf) %>%
  add_resource("LDR", CAPACITY_LDR, Inf) %>%
  add_resource("PP", CAPACITY_PP, Inf)
## simmer environment: anonymous | now: 0 | next: 0
## { Resource: OBS | monitored: 1 | server status: 0(2) | queue status: 0(Inf) }
## { Resource: LDR | monitored: 1 | server status: 0(6) | queue status: 0(Inf) }
## { Resource: PP | monitored: 1 | server status: 0(24) | queue status: 0(Inf) }
## { Generator: obpatgen | monitored: 1 | n_generated: 0 }
# Run the model
runtime <- 50
env %>% 
  run(until=runtime)
##          0 | generator: obpatgen       |       new: obpatgen0      | 1.80296
##    1.80296 | generator: obpatgen       |       new: obpatgen1      | 2.03297
##    1.80296 |   arrival: obpatgen0      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    1.80296 |   arrival: obpatgen0      |  activity: Log            | message
## 1.80296: obpatgen0: Patient1 arrived to system
##    1.80296 |   arrival: obpatgen0      |  activity: Seize          | OBS, 1, 0 paths
##    1.80296 |  resource: OBS            |   arrival: obpatgen0      | SERVE
##    1.80296 |   arrival: obpatgen0      |  activity: Log            | message
## 1.80296: obpatgen0: Patient1 entering OBS
##    1.80296 |   arrival: obpatgen0      |  activity: Timeout        | 0x2f87d08
##    2.03297 | generator: obpatgen       |       new: obpatgen2      | 3.47886
##    2.03297 |   arrival: obpatgen1      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    2.03297 |   arrival: obpatgen1      |  activity: Log            | message
## 2.03297: obpatgen1: Patient2 arrived to system
##    2.03297 |   arrival: obpatgen1      |  activity: Seize          | OBS, 1, 0 paths
##    2.03297 |  resource: OBS            |   arrival: obpatgen1      | SERVE
##    2.03297 |   arrival: obpatgen1      |  activity: Log            | message
## 2.03297: obpatgen1: Patient2 entering OBS
##    2.03297 |   arrival: obpatgen1      |  activity: Timeout        | 0x2f87d08
##    2.28146 |   arrival: obpatgen1      |  activity: Log            | message
## 2.28146: obpatgen1: Patient2 trying to get LDR
##    2.28146 |   arrival: obpatgen1      |  activity: Seize          | LDR, 1, 0 paths
##    2.28146 |  resource: LDR            |   arrival: obpatgen1      | SERVE
##    2.28146 |   arrival: obpatgen1      |  activity: Log            | message
## 2.28146: obpatgen1: Patient2 entering LDR
##    2.28146 |   arrival: obpatgen1      |  activity: Release        | OBS, 1
##    2.28146 |  resource: OBS            |   arrival: obpatgen1      | DEPART
##    2.28146 |      task: Post-Release   |                           | 
##    2.28146 |   arrival: obpatgen1      |  activity: Log            | message
## 2.28146: obpatgen1: Patient2 leaving OBS
##    2.28146 |   arrival: obpatgen1      |  activity: Timeout        | 0x2e0e690
##    3.47886 | generator: obpatgen       |       new: obpatgen3      | 6.2201
##    3.47886 |   arrival: obpatgen2      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    3.47886 |   arrival: obpatgen2      |  activity: Log            | message
## 3.47886: obpatgen2: Patient3 arrived to system
##    3.47886 |   arrival: obpatgen2      |  activity: Seize          | OBS, 1, 0 paths
##    3.47886 |  resource: OBS            |   arrival: obpatgen2      | SERVE
##    3.47886 |   arrival: obpatgen2      |  activity: Log            | message
## 3.47886: obpatgen2: Patient3 entering OBS
##    3.47886 |   arrival: obpatgen2      |  activity: Timeout        | 0x2f87d08
##     4.5727 |   arrival: obpatgen0      |  activity: Log            | message
## 4.5727: obpatgen0: Patient1 trying to get LDR
##     4.5727 |   arrival: obpatgen0      |  activity: Seize          | LDR, 1, 0 paths
##     4.5727 |  resource: LDR            |   arrival: obpatgen0      | SERVE
##     4.5727 |   arrival: obpatgen0      |  activity: Log            | message
## 4.5727: obpatgen0: Patient1 entering LDR
##     4.5727 |   arrival: obpatgen0      |  activity: Release        | OBS, 1
##     4.5727 |  resource: OBS            |   arrival: obpatgen0      | DEPART
##     4.5727 |      task: Post-Release   |                           | 
##     4.5727 |   arrival: obpatgen0      |  activity: Log            | message
## 4.5727: obpatgen0: Patient1 leaving OBS
##     4.5727 |   arrival: obpatgen0      |  activity: Timeout        | 0x2e0e690
##     6.2201 | generator: obpatgen       |       new: obpatgen4      | 9.74365
##     6.2201 |   arrival: obpatgen3      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##     6.2201 |   arrival: obpatgen3      |  activity: Log            | message
## 6.2201: obpatgen3: Patient4 arrived to system
##     6.2201 |   arrival: obpatgen3      |  activity: Seize          | OBS, 1, 0 paths
##     6.2201 |  resource: OBS            |   arrival: obpatgen3      | SERVE
##     6.2201 |   arrival: obpatgen3      |  activity: Log            | message
## 6.2201: obpatgen3: Patient4 entering OBS
##     6.2201 |   arrival: obpatgen3      |  activity: Timeout        | 0x2f87d08
##    7.36541 |   arrival: obpatgen2      |  activity: Log            | message
## 7.36541: obpatgen2: Patient3 trying to get LDR
##    7.36541 |   arrival: obpatgen2      |  activity: Seize          | LDR, 1, 0 paths
##    7.36541 |  resource: LDR            |   arrival: obpatgen2      | SERVE
##    7.36541 |   arrival: obpatgen2      |  activity: Log            | message
## 7.36541: obpatgen2: Patient3 entering LDR
##    7.36541 |   arrival: obpatgen2      |  activity: Release        | OBS, 1
##    7.36541 |  resource: OBS            |   arrival: obpatgen2      | DEPART
##    7.36541 |      task: Post-Release   |                           | 
##    7.36541 |   arrival: obpatgen2      |  activity: Log            | message
## 7.36541: obpatgen2: Patient3 leaving OBS
##    7.36541 |   arrival: obpatgen2      |  activity: Timeout        | 0x2e0e690
##    9.74365 | generator: obpatgen       |       new: obpatgen5      | 13.6945
##    9.74365 |   arrival: obpatgen4      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    9.74365 |   arrival: obpatgen4      |  activity: Log            | message
## 9.74365: obpatgen4: Patient5 arrived to system
##    9.74365 |   arrival: obpatgen4      |  activity: Seize          | OBS, 1, 0 paths
##    9.74365 |  resource: OBS            |   arrival: obpatgen4      | SERVE
##    9.74365 |   arrival: obpatgen4      |  activity: Log            | message
## 9.74365: obpatgen4: Patient5 entering OBS
##    9.74365 |   arrival: obpatgen4      |  activity: Timeout        | 0x2f87d08
##     10.366 |   arrival: obpatgen3      |  activity: Log            | message
## 10.366: obpatgen3: Patient4 trying to get LDR
##     10.366 |   arrival: obpatgen3      |  activity: Seize          | LDR, 1, 0 paths
##     10.366 |  resource: LDR            |   arrival: obpatgen3      | SERVE
##     10.366 |   arrival: obpatgen3      |  activity: Log            | message
## 10.366: obpatgen3: Patient4 entering LDR
##     10.366 |   arrival: obpatgen3      |  activity: Release        | OBS, 1
##     10.366 |  resource: OBS            |   arrival: obpatgen3      | DEPART
##     10.366 |      task: Post-Release   |                           | 
##     10.366 |   arrival: obpatgen3      |  activity: Log            | message
## 10.366: obpatgen3: Patient4 leaving OBS
##     10.366 |   arrival: obpatgen3      |  activity: Timeout        | 0x2e0e690
##    12.3546 |   arrival: obpatgen1      |  activity: Log            | message
## 12.3546: obpatgen1: Patient2 trying to get PP
##    12.3546 |   arrival: obpatgen1      |  activity: Seize          | PP, 1, 0 paths
##    12.3546 |  resource: PP             |   arrival: obpatgen1      | SERVE
##    12.3546 |   arrival: obpatgen1      |  activity: Log            | message
## 12.3546: obpatgen1: Patient2 entering PP
##    12.3546 |   arrival: obpatgen1      |  activity: Release        | LDR, 1
##    12.3546 |  resource: LDR            |   arrival: obpatgen1      | DEPART
##    12.3546 |      task: Post-Release   |                           | 
##    12.3546 |   arrival: obpatgen1      |  activity: Branch         | 0x27db870, 2 paths
##    12.3546 |   arrival: obpatgen1      |  activity: Log            | message
## 12.3546: obpatgen1: Patient2 leaving LDR (NOC)
##    12.3546 |   arrival: obpatgen1      |  activity: Timeout        | 0x2d67820
##    13.3235 |   arrival: obpatgen4      |  activity: Log            | message
## 13.3235: obpatgen4: Patient5 trying to get LDR
##    13.3235 |   arrival: obpatgen4      |  activity: Seize          | LDR, 1, 0 paths
##    13.3235 |  resource: LDR            |   arrival: obpatgen4      | SERVE
##    13.3235 |   arrival: obpatgen4      |  activity: Log            | message
## 13.3235: obpatgen4: Patient5 entering LDR
##    13.3235 |   arrival: obpatgen4      |  activity: Release        | OBS, 1
##    13.3235 |  resource: OBS            |   arrival: obpatgen4      | DEPART
##    13.3235 |      task: Post-Release   |                           | 
##    13.3235 |   arrival: obpatgen4      |  activity: Log            | message
## 13.3235: obpatgen4: Patient5 leaving OBS
##    13.3235 |   arrival: obpatgen4      |  activity: Timeout        | 0x2e0e690
##    13.6945 | generator: obpatgen       |       new: obpatgen6      | 13.9884
##    13.6945 |   arrival: obpatgen5      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    13.6945 |   arrival: obpatgen5      |  activity: Log            | message
## 13.6945: obpatgen5: Patient6 arrived to system
##    13.6945 |   arrival: obpatgen5      |  activity: Seize          | OBS, 1, 0 paths
##    13.6945 |  resource: OBS            |   arrival: obpatgen5      | SERVE
##    13.6945 |   arrival: obpatgen5      |  activity: Log            | message
## 13.6945: obpatgen5: Patient6 entering OBS
##    13.6945 |   arrival: obpatgen5      |  activity: Timeout        | 0x2f87d08
##    13.9884 | generator: obpatgen       |       new: obpatgen7      | 14.91
##    13.9884 |   arrival: obpatgen6      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    13.9884 |   arrival: obpatgen6      |  activity: Log            | message
## 13.9884: obpatgen6: Patient7 arrived to system
##    13.9884 |   arrival: obpatgen6      |  activity: Seize          | OBS, 1, 0 paths
##    13.9884 |  resource: OBS            |   arrival: obpatgen6      | SERVE
##    13.9884 |   arrival: obpatgen6      |  activity: Log            | message
## 13.9884: obpatgen6: Patient7 entering OBS
##    13.9884 |   arrival: obpatgen6      |  activity: Timeout        | 0x2f87d08
##    14.0406 |   arrival: obpatgen6      |  activity: Log            | message
## 14.0406: obpatgen6: Patient7 trying to get LDR
##    14.0406 |   arrival: obpatgen6      |  activity: Seize          | LDR, 1, 0 paths
##    14.0406 |  resource: LDR            |   arrival: obpatgen6      | SERVE
##    14.0406 |   arrival: obpatgen6      |  activity: Log            | message
## 14.0406: obpatgen6: Patient7 entering LDR
##    14.0406 |   arrival: obpatgen6      |  activity: Release        | OBS, 1
##    14.0406 |  resource: OBS            |   arrival: obpatgen6      | DEPART
##    14.0406 |      task: Post-Release   |                           | 
##    14.0406 |   arrival: obpatgen6      |  activity: Log            | message
## 14.0406: obpatgen6: Patient7 leaving OBS
##    14.0406 |   arrival: obpatgen6      |  activity: Timeout        | 0x2e0e690
##    14.1855 |   arrival: obpatgen5      |  activity: Log            | message
## 14.1855: obpatgen5: Patient6 trying to get LDR
##    14.1855 |   arrival: obpatgen5      |  activity: Seize          | LDR, 1, 0 paths
##    14.1855 |  resource: LDR            |   arrival: obpatgen5      | SERVE
##    14.1855 |   arrival: obpatgen5      |  activity: Log            | message
## 14.1855: obpatgen5: Patient6 entering LDR
##    14.1855 |   arrival: obpatgen5      |  activity: Release        | OBS, 1
##    14.1855 |  resource: OBS            |   arrival: obpatgen5      | DEPART
##    14.1855 |      task: Post-Release   |                           | 
##    14.1855 |   arrival: obpatgen5      |  activity: Log            | message
## 14.1855: obpatgen5: Patient6 leaving OBS
##    14.1855 |   arrival: obpatgen5      |  activity: Timeout        | 0x2e0e690
##      14.91 | generator: obpatgen       |       new: obpatgen8      | 15.5334
##      14.91 |   arrival: obpatgen7      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##      14.91 |   arrival: obpatgen7      |  activity: Log            | message
## 14.91: obpatgen7: Patient8 arrived to system
##      14.91 |   arrival: obpatgen7      |  activity: Seize          | OBS, 1, 0 paths
##      14.91 |  resource: OBS            |   arrival: obpatgen7      | SERVE
##      14.91 |   arrival: obpatgen7      |  activity: Log            | message
## 14.91: obpatgen7: Patient8 entering OBS
##      14.91 |   arrival: obpatgen7      |  activity: Timeout        | 0x2f87d08
##    15.5334 | generator: obpatgen       |       new: obpatgen9      | 15.7306
##    15.5334 |   arrival: obpatgen8      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    15.5334 |   arrival: obpatgen8      |  activity: Log            | message
## 15.5334: obpatgen8: Patient9 arrived to system
##    15.5334 |   arrival: obpatgen8      |  activity: Seize          | OBS, 1, 0 paths
##    15.5334 |  resource: OBS            |   arrival: obpatgen8      | SERVE
##    15.5334 |   arrival: obpatgen8      |  activity: Log            | message
## 15.5334: obpatgen8: Patient9 entering OBS
##    15.5334 |   arrival: obpatgen8      |  activity: Timeout        | 0x2f87d08
##    15.7306 | generator: obpatgen       |       new: obpatgen10     | 18.9616
##    15.7306 |   arrival: obpatgen9      |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    15.7306 |   arrival: obpatgen9      |  activity: Log            | message
## 15.7306: obpatgen9: Patient10 arrived to system
##    15.7306 |   arrival: obpatgen9      |  activity: Seize          | OBS, 1, 0 paths
##    15.7306 |  resource: OBS            |   arrival: obpatgen9      | ENQUEUE
##    16.0483 |   arrival: obpatgen6      |  activity: Log            | message
## 16.0483: obpatgen6: Patient7 trying to get PP
##    16.0483 |   arrival: obpatgen6      |  activity: Seize          | PP, 1, 0 paths
##    16.0483 |  resource: PP             |   arrival: obpatgen6      | SERVE
##    16.0483 |   arrival: obpatgen6      |  activity: Log            | message
## 16.0483: obpatgen6: Patient7 entering PP
##    16.0483 |   arrival: obpatgen6      |  activity: Release        | LDR, 1
##    16.0483 |  resource: LDR            |   arrival: obpatgen6      | DEPART
##    16.0483 |      task: Post-Release   |                           | 
##    16.0483 |   arrival: obpatgen6      |  activity: Branch         | 0x27db870, 2 paths
##    16.0483 |   arrival: obpatgen6      |  activity: Log            | message
## 16.0483: obpatgen6: Patient7 leaving LDR (C)
##    16.0483 |   arrival: obpatgen6      |  activity: Timeout        | 0x22eed80
##    16.0509 |   arrival: obpatgen3      |  activity: Log            | message
## 16.0509: obpatgen3: Patient4 trying to get PP
##    16.0509 |   arrival: obpatgen3      |  activity: Seize          | PP, 1, 0 paths
##    16.0509 |  resource: PP             |   arrival: obpatgen3      | SERVE
##    16.0509 |   arrival: obpatgen3      |  activity: Log            | message
## 16.0509: obpatgen3: Patient4 entering PP
##    16.0509 |   arrival: obpatgen3      |  activity: Release        | LDR, 1
##    16.0509 |  resource: LDR            |   arrival: obpatgen3      | DEPART
##    16.0509 |      task: Post-Release   |                           | 
##    16.0509 |   arrival: obpatgen3      |  activity: Branch         | 0x27db870, 2 paths
##    16.0509 |   arrival: obpatgen3      |  activity: Log            | message
## 16.0509: obpatgen3: Patient4 leaving LDR (C)
##    16.0509 |   arrival: obpatgen3      |  activity: Timeout        | 0x22eed80
##    17.4597 |   arrival: obpatgen1      |  activity: Release        | PP, 1
##    17.4597 |  resource: PP             |   arrival: obpatgen1      | DEPART
##    17.4597 |      task: Post-Release   |                           | 
##    17.4597 |   arrival: obpatgen1      |  activity: Log            | message
## 17.4597: obpatgen1: Patient2 leaving PP
##    17.8129 |   arrival: obpatgen4      |  activity: Log            | message
## 17.8129: obpatgen4: Patient5 trying to get PP
##    17.8129 |   arrival: obpatgen4      |  activity: Seize          | PP, 1, 0 paths
##    17.8129 |  resource: PP             |   arrival: obpatgen4      | SERVE
##    17.8129 |   arrival: obpatgen4      |  activity: Log            | message
## 17.8129: obpatgen4: Patient5 entering PP
##    17.8129 |   arrival: obpatgen4      |  activity: Release        | LDR, 1
##    17.8129 |  resource: LDR            |   arrival: obpatgen4      | DEPART
##    17.8129 |      task: Post-Release   |                           | 
##    17.8129 |   arrival: obpatgen4      |  activity: Branch         | 0x27db870, 2 paths
##    17.8129 |   arrival: obpatgen4      |  activity: Log            | message
## 17.8129: obpatgen4: Patient5 leaving LDR (NOC)
##    17.8129 |   arrival: obpatgen4      |  activity: Timeout        | 0x2d67820
##    18.2751 |   arrival: obpatgen5      |  activity: Log            | message
## 18.2751: obpatgen5: Patient6 trying to get PP
##    18.2751 |   arrival: obpatgen5      |  activity: Seize          | PP, 1, 0 paths
##    18.2751 |  resource: PP             |   arrival: obpatgen5      | SERVE
##    18.2751 |   arrival: obpatgen5      |  activity: Log            | message
## 18.2751: obpatgen5: Patient6 entering PP
##    18.2751 |   arrival: obpatgen5      |  activity: Release        | LDR, 1
##    18.2751 |  resource: LDR            |   arrival: obpatgen5      | DEPART
##    18.2751 |      task: Post-Release   |                           | 
##    18.2751 |   arrival: obpatgen5      |  activity: Branch         | 0x27db870, 2 paths
##    18.2751 |   arrival: obpatgen5      |  activity: Log            | message
## 18.2751: obpatgen5: Patient6 leaving LDR (NOC)
##    18.2751 |   arrival: obpatgen5      |  activity: Timeout        | 0x2d67820
##    18.9616 | generator: obpatgen       |       new: obpatgen11     | 21.7488
##    18.9616 |   arrival: obpatgen10     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    18.9616 |   arrival: obpatgen10     |  activity: Log            | message
## 18.9616: obpatgen10: Patient11 arrived to system
##    18.9616 |   arrival: obpatgen10     |  activity: Seize          | OBS, 1, 0 paths
##    18.9616 |  resource: OBS            |   arrival: obpatgen10     | ENQUEUE
##    21.7488 | generator: obpatgen       |       new: obpatgen12     | 25.6685
##    21.7488 |   arrival: obpatgen11     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    21.7488 |   arrival: obpatgen11     |  activity: Log            | message
## 21.7488: obpatgen11: Patient12 arrived to system
##    21.7488 |   arrival: obpatgen11     |  activity: Seize          | OBS, 1, 0 paths
##    21.7488 |  resource: OBS            |   arrival: obpatgen11     | ENQUEUE
##    21.9619 |   arrival: obpatgen7      |  activity: Log            | message
## 21.9619: obpatgen7: Patient8 trying to get LDR
##    21.9619 |   arrival: obpatgen7      |  activity: Seize          | LDR, 1, 0 paths
##    21.9619 |  resource: LDR            |   arrival: obpatgen7      | SERVE
##    21.9619 |   arrival: obpatgen7      |  activity: Log            | message
## 21.9619: obpatgen7: Patient8 entering LDR
##    21.9619 |   arrival: obpatgen7      |  activity: Release        | OBS, 1
##    21.9619 |  resource: OBS            |   arrival: obpatgen7      | DEPART
##    21.9619 |      task: Post-Release   |                           | 
##    21.9619 |  resource: OBS            |   arrival: obpatgen9      | SERVE
##    21.9619 |   arrival: obpatgen7      |  activity: Log            | message
## 21.9619: obpatgen7: Patient8 leaving OBS
##    21.9619 |   arrival: obpatgen7      |  activity: Timeout        | 0x2e0e690
##    21.9619 |   arrival: obpatgen9      |  activity: Log            | message
## 21.9619: obpatgen9: Patient10 entering OBS
##    21.9619 |   arrival: obpatgen9      |  activity: Timeout        | 0x2f87d08
##    22.5621 |   arrival: obpatgen6      |  activity: Release        | PP, 1
##    22.5621 |  resource: PP             |   arrival: obpatgen6      | DEPART
##    22.5621 |      task: Post-Release   |                           | 
##    22.5621 |   arrival: obpatgen6      |  activity: Log            | message
## 22.5621: obpatgen6: Patient7 leaving PP
##    23.1039 |   arrival: obpatgen8      |  activity: Log            | message
## 23.1039: obpatgen8: Patient9 trying to get LDR
##    23.1039 |   arrival: obpatgen8      |  activity: Seize          | LDR, 1, 0 paths
##    23.1039 |  resource: LDR            |   arrival: obpatgen8      | SERVE
##    23.1039 |   arrival: obpatgen8      |  activity: Log            | message
## 23.1039: obpatgen8: Patient9 entering LDR
##    23.1039 |   arrival: obpatgen8      |  activity: Release        | OBS, 1
##    23.1039 |  resource: OBS            |   arrival: obpatgen8      | DEPART
##    23.1039 |      task: Post-Release   |                           | 
##    23.1039 |  resource: OBS            |   arrival: obpatgen10     | SERVE
##    23.1039 |   arrival: obpatgen8      |  activity: Log            | message
## 23.1039: obpatgen8: Patient9 leaving OBS
##    23.1039 |   arrival: obpatgen8      |  activity: Timeout        | 0x2e0e690
##    23.1039 |   arrival: obpatgen10     |  activity: Log            | message
## 23.1039: obpatgen10: Patient11 entering OBS
##    23.1039 |   arrival: obpatgen10     |  activity: Timeout        | 0x2f87d08
##    23.8849 |   arrival: obpatgen10     |  activity: Log            | message
## 23.8849: obpatgen10: Patient11 trying to get LDR
##    23.8849 |   arrival: obpatgen10     |  activity: Seize          | LDR, 1, 0 paths
##    23.8849 |  resource: LDR            |   arrival: obpatgen10     | SERVE
##    23.8849 |   arrival: obpatgen10     |  activity: Log            | message
## 23.8849: obpatgen10: Patient11 entering LDR
##    23.8849 |   arrival: obpatgen10     |  activity: Release        | OBS, 1
##    23.8849 |  resource: OBS            |   arrival: obpatgen10     | DEPART
##    23.8849 |      task: Post-Release   |                           | 
##    23.8849 |  resource: OBS            |   arrival: obpatgen11     | SERVE
##    23.8849 |   arrival: obpatgen10     |  activity: Log            | message
## 23.8849: obpatgen10: Patient11 leaving OBS
##    23.8849 |   arrival: obpatgen10     |  activity: Timeout        | 0x2e0e690
##    23.8849 |   arrival: obpatgen11     |  activity: Log            | message
## 23.8849: obpatgen11: Patient12 entering OBS
##    23.8849 |   arrival: obpatgen11     |  activity: Timeout        | 0x2f87d08
##    23.9157 |   arrival: obpatgen11     |  activity: Log            | message
## 23.9157: obpatgen11: Patient12 trying to get LDR
##    23.9157 |   arrival: obpatgen11     |  activity: Seize          | LDR, 1, 0 paths
##    23.9157 |  resource: LDR            |   arrival: obpatgen11     | SERVE
##    23.9157 |   arrival: obpatgen11     |  activity: Log            | message
## 23.9157: obpatgen11: Patient12 entering LDR
##    23.9157 |   arrival: obpatgen11     |  activity: Release        | OBS, 1
##    23.9157 |  resource: OBS            |   arrival: obpatgen11     | DEPART
##    23.9157 |      task: Post-Release   |                           | 
##    23.9157 |   arrival: obpatgen11     |  activity: Log            | message
## 23.9157: obpatgen11: Patient12 leaving OBS
##    23.9157 |   arrival: obpatgen11     |  activity: Timeout        | 0x2e0e690
##    25.6685 | generator: obpatgen       |       new: obpatgen13     | 27.0008
##    25.6685 |   arrival: obpatgen12     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    25.6685 |   arrival: obpatgen12     |  activity: Log            | message
## 25.6685: obpatgen12: Patient13 arrived to system
##    25.6685 |   arrival: obpatgen12     |  activity: Seize          | OBS, 1, 0 paths
##    25.6685 |  resource: OBS            |   arrival: obpatgen12     | SERVE
##    25.6685 |   arrival: obpatgen12     |  activity: Log            | message
## 25.6685: obpatgen12: Patient13 entering OBS
##    25.6685 |   arrival: obpatgen12     |  activity: Timeout        | 0x2f87d08
##    25.8393 |   arrival: obpatgen8      |  activity: Log            | message
## 25.8393: obpatgen8: Patient9 trying to get PP
##    25.8393 |   arrival: obpatgen8      |  activity: Seize          | PP, 1, 0 paths
##    25.8393 |  resource: PP             |   arrival: obpatgen8      | SERVE
##    25.8393 |   arrival: obpatgen8      |  activity: Log            | message
## 25.8393: obpatgen8: Patient9 entering PP
##    25.8393 |   arrival: obpatgen8      |  activity: Release        | LDR, 1
##    25.8393 |  resource: LDR            |   arrival: obpatgen8      | DEPART
##    25.8393 |      task: Post-Release   |                           | 
##    25.8393 |   arrival: obpatgen8      |  activity: Branch         | 0x27db870, 2 paths
##    25.8393 |   arrival: obpatgen8      |  activity: Log            | message
## 25.8393: obpatgen8: Patient9 leaving LDR (C)
##    25.8393 |   arrival: obpatgen8      |  activity: Timeout        | 0x22eed80
##    27.0008 | generator: obpatgen       |       new: obpatgen14     | 28.3785
##    27.0008 |   arrival: obpatgen13     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    27.0008 |   arrival: obpatgen13     |  activity: Log            | message
## 27.0008: obpatgen13: Patient14 arrived to system
##    27.0008 |   arrival: obpatgen13     |  activity: Seize          | OBS, 1, 0 paths
##    27.0008 |  resource: OBS            |   arrival: obpatgen13     | ENQUEUE
##    27.2534 |   arrival: obpatgen9      |  activity: Log            | message
## 27.2534: obpatgen9: Patient10 trying to get LDR
##    27.2534 |   arrival: obpatgen9      |  activity: Seize          | LDR, 1, 0 paths
##    27.2534 |  resource: LDR            |   arrival: obpatgen9      | SERVE
##    27.2534 |   arrival: obpatgen9      |  activity: Log            | message
## 27.2534: obpatgen9: Patient10 entering LDR
##    27.2534 |   arrival: obpatgen9      |  activity: Release        | OBS, 1
##    27.2534 |  resource: OBS            |   arrival: obpatgen9      | DEPART
##    27.2534 |      task: Post-Release   |                           | 
##    27.2534 |  resource: OBS            |   arrival: obpatgen13     | SERVE
##    27.2534 |   arrival: obpatgen9      |  activity: Log            | message
## 27.2534: obpatgen9: Patient10 leaving OBS
##    27.2534 |   arrival: obpatgen9      |  activity: Timeout        | 0x2e0e690
##    27.2534 |   arrival: obpatgen13     |  activity: Log            | message
## 27.2534: obpatgen13: Patient14 entering OBS
##    27.2534 |   arrival: obpatgen13     |  activity: Timeout        | 0x2f87d08
##    27.5205 |   arrival: obpatgen12     |  activity: Log            | message
## 27.5205: obpatgen12: Patient13 trying to get LDR
##    27.5205 |   arrival: obpatgen12     |  activity: Seize          | LDR, 1, 0 paths
##    27.5205 |  resource: LDR            |   arrival: obpatgen12     | ENQUEUE
##    27.6089 |   arrival: obpatgen13     |  activity: Log            | message
## 27.6089: obpatgen13: Patient14 trying to get LDR
##    27.6089 |   arrival: obpatgen13     |  activity: Seize          | LDR, 1, 0 paths
##    27.6089 |  resource: LDR            |   arrival: obpatgen13     | ENQUEUE
##    28.2507 |   arrival: obpatgen10     |  activity: Log            | message
## 28.2507: obpatgen10: Patient11 trying to get PP
##    28.2507 |   arrival: obpatgen10     |  activity: Seize          | PP, 1, 0 paths
##    28.2507 |  resource: PP             |   arrival: obpatgen10     | SERVE
##    28.2507 |   arrival: obpatgen10     |  activity: Log            | message
## 28.2507: obpatgen10: Patient11 entering PP
##    28.2507 |   arrival: obpatgen10     |  activity: Release        | LDR, 1
##    28.2507 |  resource: LDR            |   arrival: obpatgen10     | DEPART
##    28.2507 |      task: Post-Release   |                           | 
##    28.2507 |  resource: LDR            |   arrival: obpatgen12     | SERVE
##    28.2507 |   arrival: obpatgen10     |  activity: Branch         | 0x27db870, 2 paths
##    28.2507 |   arrival: obpatgen10     |  activity: Log            | message
## 28.2507: obpatgen10: Patient11 leaving LDR (NOC)
##    28.2507 |   arrival: obpatgen10     |  activity: Timeout        | 0x2d67820
##    28.2507 |   arrival: obpatgen12     |  activity: Log            | message
## 28.2507: obpatgen12: Patient13 entering LDR
##    28.2507 |   arrival: obpatgen12     |  activity: Release        | OBS, 1
##    28.2507 |  resource: OBS            |   arrival: obpatgen12     | DEPART
##    28.2507 |      task: Post-Release   |                           | 
##    28.2507 |   arrival: obpatgen12     |  activity: Log            | message
## 28.2507: obpatgen12: Patient13 leaving OBS
##    28.2507 |   arrival: obpatgen12     |  activity: Timeout        | 0x2e0e690
##    28.3785 | generator: obpatgen       |       new: obpatgen15     | 28.429
##    28.3785 |   arrival: obpatgen14     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    28.3785 |   arrival: obpatgen14     |  activity: Log            | message
## 28.3785: obpatgen14: Patient15 arrived to system
##    28.3785 |   arrival: obpatgen14     |  activity: Seize          | OBS, 1, 0 paths
##    28.3785 |  resource: OBS            |   arrival: obpatgen14     | SERVE
##    28.3785 |   arrival: obpatgen14     |  activity: Log            | message
## 28.3785: obpatgen14: Patient15 entering OBS
##    28.3785 |   arrival: obpatgen14     |  activity: Timeout        | 0x2f87d08
##     28.429 | generator: obpatgen       |       new: obpatgen16     | 28.7328
##     28.429 |   arrival: obpatgen15     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##     28.429 |   arrival: obpatgen15     |  activity: Log            | message
## 28.429: obpatgen15: Patient16 arrived to system
##     28.429 |   arrival: obpatgen15     |  activity: Seize          | OBS, 1, 0 paths
##     28.429 |  resource: OBS            |   arrival: obpatgen15     | ENQUEUE
##    28.4575 |   arrival: obpatgen0      |  activity: Log            | message
## 28.4575: obpatgen0: Patient1 trying to get PP
##    28.4575 |   arrival: obpatgen0      |  activity: Seize          | PP, 1, 0 paths
##    28.4575 |  resource: PP             |   arrival: obpatgen0      | SERVE
##    28.4575 |   arrival: obpatgen0      |  activity: Log            | message
## 28.4575: obpatgen0: Patient1 entering PP
##    28.4575 |   arrival: obpatgen0      |  activity: Release        | LDR, 1
##    28.4575 |  resource: LDR            |   arrival: obpatgen0      | DEPART
##    28.4575 |      task: Post-Release   |                           | 
##    28.4575 |  resource: LDR            |   arrival: obpatgen13     | SERVE
##    28.4575 |   arrival: obpatgen0      |  activity: Branch         | 0x27db870, 2 paths
##    28.4575 |   arrival: obpatgen0      |  activity: Log            | message
## 28.4575: obpatgen0: Patient1 leaving LDR (NOC)
##    28.4575 |   arrival: obpatgen0      |  activity: Timeout        | 0x2d67820
##    28.4575 |   arrival: obpatgen13     |  activity: Log            | message
## 28.4575: obpatgen13: Patient14 entering LDR
##    28.4575 |   arrival: obpatgen13     |  activity: Release        | OBS, 1
##    28.4575 |  resource: OBS            |   arrival: obpatgen13     | DEPART
##    28.4575 |      task: Post-Release   |                           | 
##    28.4575 |  resource: OBS            |   arrival: obpatgen15     | SERVE
##    28.4575 |   arrival: obpatgen13     |  activity: Log            | message
## 28.4575: obpatgen13: Patient14 leaving OBS
##    28.4575 |   arrival: obpatgen13     |  activity: Timeout        | 0x2e0e690
##    28.4575 |   arrival: obpatgen15     |  activity: Log            | message
## 28.4575: obpatgen15: Patient16 entering OBS
##    28.4575 |   arrival: obpatgen15     |  activity: Timeout        | 0x2f87d08
##    28.7328 | generator: obpatgen       |       new: obpatgen17     | 29.1904
##    28.7328 |   arrival: obpatgen16     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    28.7328 |   arrival: obpatgen16     |  activity: Log            | message
## 28.7328: obpatgen16: Patient17 arrived to system
##    28.7328 |   arrival: obpatgen16     |  activity: Seize          | OBS, 1, 0 paths
##    28.7328 |  resource: OBS            |   arrival: obpatgen16     | ENQUEUE
##    28.9603 |   arrival: obpatgen12     |  activity: Log            | message
## 28.9603: obpatgen12: Patient13 trying to get PP
##    28.9603 |   arrival: obpatgen12     |  activity: Seize          | PP, 1, 0 paths
##    28.9603 |  resource: PP             |   arrival: obpatgen12     | SERVE
##    28.9603 |   arrival: obpatgen12     |  activity: Log            | message
## 28.9603: obpatgen12: Patient13 entering PP
##    28.9603 |   arrival: obpatgen12     |  activity: Release        | LDR, 1
##    28.9603 |  resource: LDR            |   arrival: obpatgen12     | DEPART
##    28.9603 |      task: Post-Release   |                           | 
##    28.9603 |   arrival: obpatgen12     |  activity: Branch         | 0x27db870, 2 paths
##    28.9603 |   arrival: obpatgen12     |  activity: Log            | message
## 28.9603: obpatgen12: Patient13 leaving LDR (NOC)
##    28.9603 |   arrival: obpatgen12     |  activity: Timeout        | 0x2d67820
##    29.1095 |   arrival: obpatgen9      |  activity: Log            | message
## 29.1095: obpatgen9: Patient10 trying to get PP
##    29.1095 |   arrival: obpatgen9      |  activity: Seize          | PP, 1, 0 paths
##    29.1095 |  resource: PP             |   arrival: obpatgen9      | SERVE
##    29.1095 |   arrival: obpatgen9      |  activity: Log            | message
## 29.1095: obpatgen9: Patient10 entering PP
##    29.1095 |   arrival: obpatgen9      |  activity: Release        | LDR, 1
##    29.1095 |  resource: LDR            |   arrival: obpatgen9      | DEPART
##    29.1095 |      task: Post-Release   |                           | 
##    29.1095 |   arrival: obpatgen9      |  activity: Branch         | 0x27db870, 2 paths
##    29.1095 |   arrival: obpatgen9      |  activity: Log            | message
## 29.1095: obpatgen9: Patient10 leaving LDR (NOC)
##    29.1095 |   arrival: obpatgen9      |  activity: Timeout        | 0x2d67820
##    29.1904 | generator: obpatgen       |       new: obpatgen18     | 32.3139
##    29.1904 |   arrival: obpatgen17     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    29.1904 |   arrival: obpatgen17     |  activity: Log            | message
## 29.1904: obpatgen17: Patient18 arrived to system
##    29.1904 |   arrival: obpatgen17     |  activity: Seize          | OBS, 1, 0 paths
##    29.1904 |  resource: OBS            |   arrival: obpatgen17     | ENQUEUE
##    32.3139 | generator: obpatgen       |       new: obpatgen19     | 33.3801
##    32.3139 |   arrival: obpatgen18     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    32.3139 |   arrival: obpatgen18     |  activity: Log            | message
## 32.3139: obpatgen18: Patient19 arrived to system
##    32.3139 |   arrival: obpatgen18     |  activity: Seize          | OBS, 1, 0 paths
##    32.3139 |  resource: OBS            |   arrival: obpatgen18     | ENQUEUE
##    32.5884 |   arrival: obpatgen11     |  activity: Log            | message
## 32.5884: obpatgen11: Patient12 trying to get PP
##    32.5884 |   arrival: obpatgen11     |  activity: Seize          | PP, 1, 0 paths
##    32.5884 |  resource: PP             |   arrival: obpatgen11     | SERVE
##    32.5884 |   arrival: obpatgen11     |  activity: Log            | message
## 32.5884: obpatgen11: Patient12 entering PP
##    32.5884 |   arrival: obpatgen11     |  activity: Release        | LDR, 1
##    32.5884 |  resource: LDR            |   arrival: obpatgen11     | DEPART
##    32.5884 |      task: Post-Release   |                           | 
##    32.5884 |   arrival: obpatgen11     |  activity: Branch         | 0x27db870, 2 paths
##    32.5884 |   arrival: obpatgen11     |  activity: Log            | message
## 32.5884: obpatgen11: Patient12 leaving LDR (NOC)
##    32.5884 |   arrival: obpatgen11     |  activity: Timeout        | 0x2d67820
##    33.0068 |   arrival: obpatgen14     |  activity: Log            | message
## 33.0068: obpatgen14: Patient15 trying to get LDR
##    33.0068 |   arrival: obpatgen14     |  activity: Seize          | LDR, 1, 0 paths
##    33.0068 |  resource: LDR            |   arrival: obpatgen14     | SERVE
##    33.0068 |   arrival: obpatgen14     |  activity: Log            | message
## 33.0068: obpatgen14: Patient15 entering LDR
##    33.0068 |   arrival: obpatgen14     |  activity: Release        | OBS, 1
##    33.0068 |  resource: OBS            |   arrival: obpatgen14     | DEPART
##    33.0068 |      task: Post-Release   |                           | 
##    33.0068 |  resource: OBS            |   arrival: obpatgen16     | SERVE
##    33.0068 |   arrival: obpatgen14     |  activity: Log            | message
## 33.0068: obpatgen14: Patient15 leaving OBS
##    33.0068 |   arrival: obpatgen14     |  activity: Timeout        | 0x2e0e690
##    33.0068 |   arrival: obpatgen16     |  activity: Log            | message
## 33.0068: obpatgen16: Patient17 entering OBS
##    33.0068 |   arrival: obpatgen16     |  activity: Timeout        | 0x2f87d08
##    33.3801 | generator: obpatgen       |       new: obpatgen20     | 34.0272
##    33.3801 |   arrival: obpatgen19     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    33.3801 |   arrival: obpatgen19     |  activity: Log            | message
## 33.3801: obpatgen19: Patient20 arrived to system
##    33.3801 |   arrival: obpatgen19     |  activity: Seize          | OBS, 1, 0 paths
##    33.3801 |  resource: OBS            |   arrival: obpatgen19     | ENQUEUE
##    33.9494 |   arrival: obpatgen16     |  activity: Log            | message
## 33.9494: obpatgen16: Patient17 trying to get LDR
##    33.9494 |   arrival: obpatgen16     |  activity: Seize          | LDR, 1, 0 paths
##    33.9494 |  resource: LDR            |   arrival: obpatgen16     | SERVE
##    33.9494 |   arrival: obpatgen16     |  activity: Log            | message
## 33.9494: obpatgen16: Patient17 entering LDR
##    33.9494 |   arrival: obpatgen16     |  activity: Release        | OBS, 1
##    33.9494 |  resource: OBS            |   arrival: obpatgen16     | DEPART
##    33.9494 |      task: Post-Release   |                           | 
##    33.9494 |  resource: OBS            |   arrival: obpatgen17     | SERVE
##    33.9494 |   arrival: obpatgen16     |  activity: Log            | message
## 33.9494: obpatgen16: Patient17 leaving OBS
##    33.9494 |   arrival: obpatgen16     |  activity: Timeout        | 0x2e0e690
##    33.9494 |   arrival: obpatgen17     |  activity: Log            | message
## 33.9494: obpatgen17: Patient18 entering OBS
##    33.9494 |   arrival: obpatgen17     |  activity: Timeout        | 0x2f87d08
##    34.0272 | generator: obpatgen       |       new: obpatgen21     | 37.0852
##    34.0272 |   arrival: obpatgen20     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    34.0272 |   arrival: obpatgen20     |  activity: Log            | message
## 34.0272: obpatgen20: Patient21 arrived to system
##    34.0272 |   arrival: obpatgen20     |  activity: Seize          | OBS, 1, 0 paths
##    34.0272 |  resource: OBS            |   arrival: obpatgen20     | ENQUEUE
##    34.2054 |   arrival: obpatgen15     |  activity: Log            | message
## 34.2054: obpatgen15: Patient16 trying to get LDR
##    34.2054 |   arrival: obpatgen15     |  activity: Seize          | LDR, 1, 0 paths
##    34.2054 |  resource: LDR            |   arrival: obpatgen15     | SERVE
##    34.2054 |   arrival: obpatgen15     |  activity: Log            | message
## 34.2054: obpatgen15: Patient16 entering LDR
##    34.2054 |   arrival: obpatgen15     |  activity: Release        | OBS, 1
##    34.2054 |  resource: OBS            |   arrival: obpatgen15     | DEPART
##    34.2054 |      task: Post-Release   |                           | 
##    34.2054 |  resource: OBS            |   arrival: obpatgen18     | SERVE
##    34.2054 |   arrival: obpatgen15     |  activity: Log            | message
## 34.2054: obpatgen15: Patient16 leaving OBS
##    34.2054 |   arrival: obpatgen15     |  activity: Timeout        | 0x2e0e690
##    34.2054 |   arrival: obpatgen18     |  activity: Log            | message
## 34.2054: obpatgen18: Patient19 entering OBS
##    34.2054 |   arrival: obpatgen18     |  activity: Timeout        | 0x2f87d08
##    34.2763 |   arrival: obpatgen14     |  activity: Log            | message
## 34.2763: obpatgen14: Patient15 trying to get PP
##    34.2763 |   arrival: obpatgen14     |  activity: Seize          | PP, 1, 0 paths
##    34.2763 |  resource: PP             |   arrival: obpatgen14     | SERVE
##    34.2763 |   arrival: obpatgen14     |  activity: Log            | message
## 34.2763: obpatgen14: Patient15 entering PP
##    34.2763 |   arrival: obpatgen14     |  activity: Release        | LDR, 1
##    34.2763 |  resource: LDR            |   arrival: obpatgen14     | DEPART
##    34.2763 |      task: Post-Release   |                           | 
##    34.2763 |   arrival: obpatgen14     |  activity: Branch         | 0x27db870, 2 paths
##    34.2763 |   arrival: obpatgen14     |  activity: Log            | message
## 34.2763: obpatgen14: Patient15 leaving LDR (NOC)
##    34.2763 |   arrival: obpatgen14     |  activity: Timeout        | 0x2d67820
##    34.8156 |   arrival: obpatgen15     |  activity: Log            | message
## 34.8156: obpatgen15: Patient16 trying to get PP
##    34.8156 |   arrival: obpatgen15     |  activity: Seize          | PP, 1, 0 paths
##    34.8156 |  resource: PP             |   arrival: obpatgen15     | SERVE
##    34.8156 |   arrival: obpatgen15     |  activity: Log            | message
## 34.8156: obpatgen15: Patient16 entering PP
##    34.8156 |   arrival: obpatgen15     |  activity: Release        | LDR, 1
##    34.8156 |  resource: LDR            |   arrival: obpatgen15     | DEPART
##    34.8156 |      task: Post-Release   |                           | 
##    34.8156 |   arrival: obpatgen15     |  activity: Branch         | 0x27db870, 2 paths
##    34.8156 |   arrival: obpatgen15     |  activity: Log            | message
## 34.8156: obpatgen15: Patient16 leaving LDR (NOC)
##    34.8156 |   arrival: obpatgen15     |  activity: Timeout        | 0x2d67820
##    35.1132 |   arrival: obpatgen13     |  activity: Log            | message
## 35.1132: obpatgen13: Patient14 trying to get PP
##    35.1132 |   arrival: obpatgen13     |  activity: Seize          | PP, 1, 0 paths
##    35.1132 |  resource: PP             |   arrival: obpatgen13     | SERVE
##    35.1132 |   arrival: obpatgen13     |  activity: Log            | message
## 35.1132: obpatgen13: Patient14 entering PP
##    35.1132 |   arrival: obpatgen13     |  activity: Release        | LDR, 1
##    35.1132 |  resource: LDR            |   arrival: obpatgen13     | DEPART
##    35.1132 |      task: Post-Release   |                           | 
##    35.1132 |   arrival: obpatgen13     |  activity: Branch         | 0x27db870, 2 paths
##    35.1132 |   arrival: obpatgen13     |  activity: Log            | message
## 35.1132: obpatgen13: Patient14 leaving LDR (C)
##    35.1132 |   arrival: obpatgen13     |  activity: Timeout        | 0x22eed80
##    35.6019 |   arrival: obpatgen2      |  activity: Log            | message
## 35.6019: obpatgen2: Patient3 trying to get PP
##    35.6019 |   arrival: obpatgen2      |  activity: Seize          | PP, 1, 0 paths
##    35.6019 |  resource: PP             |   arrival: obpatgen2      | SERVE
##    35.6019 |   arrival: obpatgen2      |  activity: Log            | message
## 35.6019: obpatgen2: Patient3 entering PP
##    35.6019 |   arrival: obpatgen2      |  activity: Release        | LDR, 1
##    35.6019 |  resource: LDR            |   arrival: obpatgen2      | DEPART
##    35.6019 |      task: Post-Release   |                           | 
##    35.6019 |   arrival: obpatgen2      |  activity: Branch         | 0x27db870, 2 paths
##    35.6019 |   arrival: obpatgen2      |  activity: Log            | message
## 35.6019: obpatgen2: Patient3 leaving LDR (NOC)
##    35.6019 |   arrival: obpatgen2      |  activity: Timeout        | 0x2d67820
##    35.8212 |   arrival: obpatgen18     |  activity: Log            | message
## 35.8212: obpatgen18: Patient19 trying to get LDR
##    35.8212 |   arrival: obpatgen18     |  activity: Seize          | LDR, 1, 0 paths
##    35.8212 |  resource: LDR            |   arrival: obpatgen18     | SERVE
##    35.8212 |   arrival: obpatgen18     |  activity: Log            | message
## 35.8212: obpatgen18: Patient19 entering LDR
##    35.8212 |   arrival: obpatgen18     |  activity: Release        | OBS, 1
##    35.8212 |  resource: OBS            |   arrival: obpatgen18     | DEPART
##    35.8212 |      task: Post-Release   |                           | 
##    35.8212 |  resource: OBS            |   arrival: obpatgen19     | SERVE
##    35.8212 |   arrival: obpatgen18     |  activity: Log            | message
## 35.8212: obpatgen18: Patient19 leaving OBS
##    35.8212 |   arrival: obpatgen18     |  activity: Timeout        | 0x2e0e690
##    35.8212 |   arrival: obpatgen19     |  activity: Log            | message
## 35.8212: obpatgen19: Patient20 entering OBS
##    35.8212 |   arrival: obpatgen19     |  activity: Timeout        | 0x2f87d08
##    36.0301 |   arrival: obpatgen16     |  activity: Log            | message
## 36.0301: obpatgen16: Patient17 trying to get PP
##    36.0301 |   arrival: obpatgen16     |  activity: Seize          | PP, 1, 0 paths
##    36.0301 |  resource: PP             |   arrival: obpatgen16     | SERVE
##    36.0301 |   arrival: obpatgen16     |  activity: Log            | message
## 36.0301: obpatgen16: Patient17 entering PP
##    36.0301 |   arrival: obpatgen16     |  activity: Release        | LDR, 1
##    36.0301 |  resource: LDR            |   arrival: obpatgen16     | DEPART
##    36.0301 |      task: Post-Release   |                           | 
##    36.0301 |   arrival: obpatgen16     |  activity: Branch         | 0x27db870, 2 paths
##    36.0301 |   arrival: obpatgen16     |  activity: Log            | message
## 36.0301: obpatgen16: Patient17 leaving LDR (NOC)
##    36.0301 |   arrival: obpatgen16     |  activity: Timeout        | 0x2d67820
##    37.0852 | generator: obpatgen       |       new: obpatgen22     | 38.626
##    37.0852 |   arrival: obpatgen21     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    37.0852 |   arrival: obpatgen21     |  activity: Log            | message
## 37.0852: obpatgen21: Patient22 arrived to system
##    37.0852 |   arrival: obpatgen21     |  activity: Seize          | OBS, 1, 0 paths
##    37.0852 |  resource: OBS            |   arrival: obpatgen21     | ENQUEUE
##    37.1873 |   arrival: obpatgen17     |  activity: Log            | message
## 37.1873: obpatgen17: Patient18 trying to get LDR
##    37.1873 |   arrival: obpatgen17     |  activity: Seize          | LDR, 1, 0 paths
##    37.1873 |  resource: LDR            |   arrival: obpatgen17     | SERVE
##    37.1873 |   arrival: obpatgen17     |  activity: Log            | message
## 37.1873: obpatgen17: Patient18 entering LDR
##    37.1873 |   arrival: obpatgen17     |  activity: Release        | OBS, 1
##    37.1873 |  resource: OBS            |   arrival: obpatgen17     | DEPART
##    37.1873 |      task: Post-Release   |                           | 
##    37.1873 |  resource: OBS            |   arrival: obpatgen20     | SERVE
##    37.1873 |   arrival: obpatgen17     |  activity: Log            | message
## 37.1873: obpatgen17: Patient18 leaving OBS
##    37.1873 |   arrival: obpatgen17     |  activity: Timeout        | 0x2e0e690
##    37.1873 |   arrival: obpatgen20     |  activity: Log            | message
## 37.1873: obpatgen20: Patient21 entering OBS
##    37.1873 |   arrival: obpatgen20     |  activity: Timeout        | 0x2f87d08
##    37.5513 |   arrival: obpatgen19     |  activity: Log            | message
## 37.5513: obpatgen19: Patient20 trying to get LDR
##    37.5513 |   arrival: obpatgen19     |  activity: Seize          | LDR, 1, 0 paths
##    37.5513 |  resource: LDR            |   arrival: obpatgen19     | SERVE
##    37.5513 |   arrival: obpatgen19     |  activity: Log            | message
## 37.5513: obpatgen19: Patient20 entering LDR
##    37.5513 |   arrival: obpatgen19     |  activity: Release        | OBS, 1
##    37.5513 |  resource: OBS            |   arrival: obpatgen19     | DEPART
##    37.5513 |      task: Post-Release   |                           | 
##    37.5513 |  resource: OBS            |   arrival: obpatgen21     | SERVE
##    37.5513 |   arrival: obpatgen19     |  activity: Log            | message
## 37.5513: obpatgen19: Patient20 leaving OBS
##    37.5513 |   arrival: obpatgen19     |  activity: Timeout        | 0x2e0e690
##    37.5513 |   arrival: obpatgen21     |  activity: Log            | message
## 37.5513: obpatgen21: Patient22 entering OBS
##    37.5513 |   arrival: obpatgen21     |  activity: Timeout        | 0x2f87d08
##     38.626 | generator: obpatgen       |       new: obpatgen23     | 42.4655
##     38.626 |   arrival: obpatgen22     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##     38.626 |   arrival: obpatgen22     |  activity: Log            | message
## 38.626: obpatgen22: Patient23 arrived to system
##     38.626 |   arrival: obpatgen22     |  activity: Seize          | OBS, 1, 0 paths
##     38.626 |  resource: OBS            |   arrival: obpatgen22     | ENQUEUE
##    40.9205 |   arrival: obpatgen21     |  activity: Log            | message
## 40.9205: obpatgen21: Patient22 trying to get LDR
##    40.9205 |   arrival: obpatgen21     |  activity: Seize          | LDR, 1, 0 paths
##    40.9205 |  resource: LDR            |   arrival: obpatgen21     | SERVE
##    40.9205 |   arrival: obpatgen21     |  activity: Log            | message
## 40.9205: obpatgen21: Patient22 entering LDR
##    40.9205 |   arrival: obpatgen21     |  activity: Release        | OBS, 1
##    40.9205 |  resource: OBS            |   arrival: obpatgen21     | DEPART
##    40.9205 |      task: Post-Release   |                           | 
##    40.9205 |  resource: OBS            |   arrival: obpatgen22     | SERVE
##    40.9205 |   arrival: obpatgen21     |  activity: Log            | message
## 40.9205: obpatgen21: Patient22 leaving OBS
##    40.9205 |   arrival: obpatgen21     |  activity: Timeout        | 0x2e0e690
##    40.9205 |   arrival: obpatgen22     |  activity: Log            | message
## 40.9205: obpatgen22: Patient23 entering OBS
##    40.9205 |   arrival: obpatgen22     |  activity: Timeout        | 0x2f87d08
##    42.4655 | generator: obpatgen       |       new: obpatgen24     | 43.6449
##    42.4655 |   arrival: obpatgen23     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    42.4655 |   arrival: obpatgen23     |  activity: Log            | message
## 42.4655: obpatgen23: Patient24 arrived to system
##    42.4655 |   arrival: obpatgen23     |  activity: Seize          | OBS, 1, 0 paths
##    42.4655 |  resource: OBS            |   arrival: obpatgen23     | ENQUEUE
##    43.0138 |   arrival: obpatgen21     |  activity: Log            | message
## 43.0138: obpatgen21: Patient22 trying to get PP
##    43.0138 |   arrival: obpatgen21     |  activity: Seize          | PP, 1, 0 paths
##    43.0138 |  resource: PP             |   arrival: obpatgen21     | SERVE
##    43.0138 |   arrival: obpatgen21     |  activity: Log            | message
## 43.0138: obpatgen21: Patient22 entering PP
##    43.0138 |   arrival: obpatgen21     |  activity: Release        | LDR, 1
##    43.0138 |  resource: LDR            |   arrival: obpatgen21     | DEPART
##    43.0138 |      task: Post-Release   |                           | 
##    43.0138 |   arrival: obpatgen21     |  activity: Branch         | 0x27db870, 2 paths
##    43.0138 |   arrival: obpatgen21     |  activity: Log            | message
## 43.0138: obpatgen21: Patient22 leaving LDR (NOC)
##    43.0138 |   arrival: obpatgen21     |  activity: Timeout        | 0x2d67820
##    43.1254 |   arrival: obpatgen14     |  activity: Release        | PP, 1
##    43.1254 |  resource: PP             |   arrival: obpatgen14     | DEPART
##    43.1254 |      task: Post-Release   |                           | 
##    43.1254 |   arrival: obpatgen14     |  activity: Log            | message
## 43.1254: obpatgen14: Patient15 leaving PP
##    43.6449 | generator: obpatgen       |       new: obpatgen25     | 46.1234
##    43.6449 |   arrival: obpatgen24     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    43.6449 |   arrival: obpatgen24     |  activity: Log            | message
## 43.6449: obpatgen24: Patient25 arrived to system
##    43.6449 |   arrival: obpatgen24     |  activity: Seize          | OBS, 1, 0 paths
##    43.6449 |  resource: OBS            |   arrival: obpatgen24     | ENQUEUE
##    44.6213 |   arrival: obpatgen19     |  activity: Log            | message
## 44.6213: obpatgen19: Patient20 trying to get PP
##    44.6213 |   arrival: obpatgen19     |  activity: Seize          | PP, 1, 0 paths
##    44.6213 |  resource: PP             |   arrival: obpatgen19     | SERVE
##    44.6213 |   arrival: obpatgen19     |  activity: Log            | message
## 44.6213: obpatgen19: Patient20 entering PP
##    44.6213 |   arrival: obpatgen19     |  activity: Release        | LDR, 1
##    44.6213 |  resource: LDR            |   arrival: obpatgen19     | DEPART
##    44.6213 |      task: Post-Release   |                           | 
##    44.6213 |   arrival: obpatgen19     |  activity: Branch         | 0x27db870, 2 paths
##    44.6213 |   arrival: obpatgen19     |  activity: Log            | message
## 44.6213: obpatgen19: Patient20 leaving LDR (C)
##    44.6213 |   arrival: obpatgen19     |  activity: Timeout        | 0x22eed80
##    46.1234 | generator: obpatgen       |       new: obpatgen26     | 48.4662
##    46.1234 |   arrival: obpatgen25     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    46.1234 |   arrival: obpatgen25     |  activity: Log            | message
## 46.1234: obpatgen25: Patient26 arrived to system
##    46.1234 |   arrival: obpatgen25     |  activity: Seize          | OBS, 1, 0 paths
##    46.1234 |  resource: OBS            |   arrival: obpatgen25     | ENQUEUE
##    46.2445 |   arrival: obpatgen22     |  activity: Log            | message
## 46.2445: obpatgen22: Patient23 trying to get LDR
##    46.2445 |   arrival: obpatgen22     |  activity: Seize          | LDR, 1, 0 paths
##    46.2445 |  resource: LDR            |   arrival: obpatgen22     | SERVE
##    46.2445 |   arrival: obpatgen22     |  activity: Log            | message
## 46.2445: obpatgen22: Patient23 entering LDR
##    46.2445 |   arrival: obpatgen22     |  activity: Release        | OBS, 1
##    46.2445 |  resource: OBS            |   arrival: obpatgen22     | DEPART
##    46.2445 |      task: Post-Release   |                           | 
##    46.2445 |  resource: OBS            |   arrival: obpatgen23     | SERVE
##    46.2445 |   arrival: obpatgen22     |  activity: Log            | message
## 46.2445: obpatgen22: Patient23 leaving OBS
##    46.2445 |   arrival: obpatgen22     |  activity: Timeout        | 0x2e0e690
##    46.2445 |   arrival: obpatgen23     |  activity: Log            | message
## 46.2445: obpatgen23: Patient24 entering OBS
##    46.2445 |   arrival: obpatgen23     |  activity: Timeout        | 0x2f87d08
##    47.9565 |   arrival: obpatgen20     |  activity: Log            | message
## 47.9565: obpatgen20: Patient21 trying to get LDR
##    47.9565 |   arrival: obpatgen20     |  activity: Seize          | LDR, 1, 0 paths
##    47.9565 |  resource: LDR            |   arrival: obpatgen20     | SERVE
##    47.9565 |   arrival: obpatgen20     |  activity: Log            | message
## 47.9565: obpatgen20: Patient21 entering LDR
##    47.9565 |   arrival: obpatgen20     |  activity: Release        | OBS, 1
##    47.9565 |  resource: OBS            |   arrival: obpatgen20     | DEPART
##    47.9565 |      task: Post-Release   |                           | 
##    47.9565 |  resource: OBS            |   arrival: obpatgen24     | SERVE
##    47.9565 |   arrival: obpatgen20     |  activity: Log            | message
## 47.9565: obpatgen20: Patient21 leaving OBS
##    47.9565 |   arrival: obpatgen20     |  activity: Timeout        | 0x2e0e690
##    47.9565 |   arrival: obpatgen24     |  activity: Log            | message
## 47.9565: obpatgen24: Patient25 entering OBS
##    47.9565 |   arrival: obpatgen24     |  activity: Timeout        | 0x2f87d08
##    48.2835 |   arrival: obpatgen24     |  activity: Log            | message
## 48.2835: obpatgen24: Patient25 trying to get LDR
##    48.2835 |   arrival: obpatgen24     |  activity: Seize          | LDR, 1, 0 paths
##    48.2835 |  resource: LDR            |   arrival: obpatgen24     | SERVE
##    48.2835 |   arrival: obpatgen24     |  activity: Log            | message
## 48.2835: obpatgen24: Patient25 entering LDR
##    48.2835 |   arrival: obpatgen24     |  activity: Release        | OBS, 1
##    48.2835 |  resource: OBS            |   arrival: obpatgen24     | DEPART
##    48.2835 |      task: Post-Release   |                           | 
##    48.2835 |  resource: OBS            |   arrival: obpatgen25     | SERVE
##    48.2835 |   arrival: obpatgen24     |  activity: Log            | message
## 48.2835: obpatgen24: Patient25 leaving OBS
##    48.2835 |   arrival: obpatgen24     |  activity: Timeout        | 0x2e0e690
##    48.2835 |   arrival: obpatgen25     |  activity: Log            | message
## 48.2835: obpatgen25: Patient26 entering OBS
##    48.2835 |   arrival: obpatgen25     |  activity: Timeout        | 0x2f87d08
##    48.4662 | generator: obpatgen       |       new: obpatgen27     | 49.9722
##    48.4662 |   arrival: obpatgen26     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    48.4662 |   arrival: obpatgen26     |  activity: Log            | message
## 48.4662: obpatgen26: Patient27 arrived to system
##    48.4662 |   arrival: obpatgen26     |  activity: Seize          | OBS, 1, 0 paths
##    48.4662 |  resource: OBS            |   arrival: obpatgen26     | ENQUEUE
##    48.5035 |   arrival: obpatgen5      |  activity: Release        | PP, 1
##    48.5035 |  resource: PP             |   arrival: obpatgen5      | DEPART
##    48.5035 |      task: Post-Release   |                           | 
##    48.5035 |   arrival: obpatgen5      |  activity: Log            | message
## 48.5035: obpatgen5: Patient6 leaving PP
##    49.3923 |   arrival: obpatgen25     |  activity: Log            | message
## 49.3923: obpatgen25: Patient26 trying to get LDR
##    49.3923 |   arrival: obpatgen25     |  activity: Seize          | LDR, 1, 0 paths
##    49.3923 |  resource: LDR            |   arrival: obpatgen25     | ENQUEUE
##    49.9722 | generator: obpatgen       |       new: obpatgen28     | 51.9988
##    49.9722 |   arrival: obpatgen27     |  activity: SetAttribute   | patient_id, 0x30a2a40, 0
##    49.9722 |   arrival: obpatgen27     |  activity: Log            | message
## 49.9722: obpatgen27: Patient28 arrived to system
##    49.9722 |   arrival: obpatgen27     |  activity: Seize          | OBS, 1, 0 paths
##    49.9722 |  resource: OBS            |   arrival: obpatgen27     | ENQUEUE
## simmer environment: anonymous | now: 50 | next: 50.8452093607979
## { Resource: OBS | monitored: 1 | server status: 2(2) | queue status: 2(Inf) }
## { Resource: LDR | monitored: 1 | server status: 6(6) | queue status: 1(Inf) }
## { Resource: PP | monitored: 1 | server status: 14(24) | queue status: 0(Inf) }
## { Generator: obpatgen | monitored: 1 | n_generated: 29 }
# Save arrival and resource monitoring info (dataframes)
arrivals_df <- get_mon_arrivals(env)
resources_df <- get_mon_resources(env)

# Try out some of the interrogation functions
get_n_generated(env, "obpatgen")
## [1] 29
get_capacity(env, "OBS")
## [1] 2
get_queue_size(env, "OBS")
## [1] Inf
get_server_count(env, "OBS")
## [1] 2
get_queue_count(env, "OBS")
## [1] 2
get_capacity(env, "LDR")
## [1] 6
get_queue_size(env, "LDR")
## [1] Inf
get_server_count(env, "LDR")
## [1] 6
get_queue_count(env, "LDR")
## [1] 1
get_capacity(env, "PP")
## [1] 24
get_queue_size(env, "PP")
## [1] Inf
get_server_count(env, "PP")
## [1] 14
get_queue_count(env, "PP")
## [1] 0
# User simmer.plot to create a resource utilization plot
plot(env, what = "resources", metric = "utilization", c("OBS", "LDR","PP"))

center

# User simmer.plot to create server usage plots
plot(env, what = "resources", metric = "usage", c("OBS", "LDR","PP"), items = "server")

center