Skip to content

Commit 7eaa291

Browse files
committed
feat(model): very basic model which generates stroke patient ASU arrivals (with mini run time and no trajectory)
1 parent 22bec6e commit 7eaa291

File tree

8 files changed

+110
-8
lines changed

8 files changed

+110
-8
lines changed

DESCRIPTION

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ License: MIT + file LICENSE
1717
Encoding: UTF-8
1818
LazyData: true
1919
RoxygenNote: 7.3.2
20+
Imports:
21+
simmer
2022
Suggests:
2123
devtools
2224
Config/testthat/edition: 3

NAMESPACE

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,12 @@ export(create_asu_routing)
66
export(create_parameters)
77
export(create_rehab_arrivals)
88
export(create_rehab_los)
9-
export(create_rehab_routing)
9+
export(create_rehab_routing)
10+
export(model)
11+
importFrom(simmer,add_generator)
12+
importFrom(simmer,get_mon_arrivals)
13+
importFrom(simmer,get_mon_resources)
14+
importFrom(simmer,simmer)
15+
importFrom(simmer,timeout)
16+
importFrom(simmer,trajectory)
17+
importFrom(simmer,wrap)

R/model.R

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#' Run simulation.
2+
#'
3+
#' @param run_number Integer representing index of current simulation run.
4+
#' @param param Named list of model parameters.
5+
#' @param set_seed Whether to set seed within the model function (which we
6+
#' may not wish to do if being set elsewhere - such as done in runner()).
7+
#' Default is TRUE.
8+
#'
9+
#' @importFrom simmer add_generator get_mon_arrivals get_mon_resources simmer
10+
#' @importFrom simmer timeout trajectory wrap
11+
#'
12+
#' @return TBC
13+
#' @export
14+
15+
model <- function(run_number, param, set_seed = TRUE) {
16+
17+
# Set random seed based on run number
18+
if (set_seed) {
19+
set.seed(run_number)
20+
}
21+
22+
# Create simmer environment
23+
env <- simmer("simulation", verbose = TRUE)
24+
25+
# Define the stroke patient trajectory
26+
stroke_patient <- trajectory("stroke_patient_path") |>
27+
timeout(1)
28+
29+
# Add patient generator
30+
env <- env |>
31+
add_generator("stroke_patient", stroke_patient, function () {
32+
rexp(n = 1L, rate = 1L / param[["asu_arrivals"]][["stroke"]])
33+
}) |>
34+
simmer::run(20) |>
35+
wrap()
36+
37+
# Extract the monitored arrivals and resources information from the simmer
38+
# environment object
39+
result <- list(
40+
arrivals = get_mon_arrivals(env, per_resource = TRUE, ongoing = TRUE),
41+
resources = get_mon_resources(env)
42+
)
43+
44+
return(result)
45+
}

man/create_parameters.Rd

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/create_rehab_routing.Rd

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/model.Rd

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renv.lock

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,16 @@
134134
],
135135
"Hash": "3f038e5ac7f41d4ac41ce658c85e3042"
136136
},
137+
"codetools": {
138+
"Package": "codetools",
139+
"Version": "0.2-20",
140+
"Source": "Repository",
141+
"Repository": "CRAN",
142+
"Requirements": [
143+
"R"
144+
],
145+
"Hash": "61e097f35917d342622f21cdc79c256e"
146+
},
137147
"commonmark": {
138148
"Package": "commonmark",
139149
"Version": "1.9.2",
@@ -988,6 +998,20 @@
988998
],
989999
"Hash": "011db3556755012e632ed99d083d7d75"
9901000
},
1001+
"simmer": {
1002+
"Package": "simmer",
1003+
"Version": "4.4.7",
1004+
"Source": "Repository",
1005+
"Repository": "CRAN",
1006+
"Requirements": [
1007+
"R",
1008+
"Rcpp",
1009+
"codetools",
1010+
"magrittr",
1011+
"utils"
1012+
],
1013+
"Hash": "6e993f252a8a2a7bf19856c82af1414b"
1014+
},
9911015
"sourcetools": {
9921016
"Package": "sourcetools",
9931017
"Version": "0.1.7-1",

rmarkdown/analysis.Rmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ library(simulation)
1212
```
1313

1414
```{r}
15-
create_parameters()
15+
model(run_number = 1L, param = create_parameters(), set_seed = TRUE)
1616
```

0 commit comments

Comments
 (0)