diff --git a/binder/environment.yml b/binder/environment.yml
index 7f9412f..db32028 100644
--- a/binder/environment.yml
+++ b/binder/environment.yml
@@ -12,5 +12,4 @@ dependencies:
- scipy=1.6.1
- simpy=4.0.1
- pip:
- - jupyter-book==0.15.1
-
+ - jupyter-book==0.15.1
\ No newline at end of file
diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb
index e5dba27..ac7fae0 100644
--- a/content/02_model_code/04_model.ipynb
+++ b/content/02_model_code/04_model.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
- "id": "e251ce0d",
+ "id": "9864ff04",
"metadata": {},
"source": [
"# SimPy: Treatment Centre\n",
@@ -16,7 +16,7 @@
},
{
"cell_type": "markdown",
- "id": "6ab38314",
+ "id": "67d378b9",
"metadata": {},
"source": [
"## 1. Imports\n",
@@ -27,7 +27,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "f9b9d8c8",
+ "id": "7d374b31",
"metadata": {},
"outputs": [
{
@@ -49,7 +49,7 @@
{
"cell_type": "code",
"execution_count": 2,
- "id": "956f9cb7",
+ "id": "11fac8cf",
"metadata": {},
"outputs": [],
"source": [
@@ -63,7 +63,7 @@
},
{
"cell_type": "markdown",
- "id": "3a04b23d",
+ "id": "559ee23e",
"metadata": {},
"source": [
"## 2. Constants and defaults for modelling **as-is**"
@@ -71,7 +71,7 @@
},
{
"cell_type": "markdown",
- "id": "4b7ab380",
+ "id": "87c119bd",
"metadata": {},
"source": [
"### 2.1 Distribution parameters"
@@ -80,7 +80,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "b98c91df",
+ "id": "6f01d888",
"metadata": {},
"outputs": [],
"source": [
@@ -115,7 +115,7 @@
},
{
"cell_type": "markdown",
- "id": "d1dba095",
+ "id": "7bb06c1d",
"metadata": {},
"source": [
"### 2.2 Time dependent arrival rates data\n",
@@ -126,7 +126,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "31132d08",
+ "id": "e55e450a",
"metadata": {},
"outputs": [
{
@@ -154,7 +154,7 @@
},
{
"cell_type": "markdown",
- "id": "8a8eccec",
+ "id": "18ce33a2",
"metadata": {},
"source": [
"### 2.3 Resource counts\n",
@@ -165,7 +165,7 @@
{
"cell_type": "code",
"execution_count": 5,
- "id": "9f97c46b",
+ "id": "93644445",
"metadata": {},
"outputs": [],
"source": [
@@ -183,7 +183,7 @@
},
{
"cell_type": "markdown",
- "id": "bbb220c8",
+ "id": "814e3a78",
"metadata": {},
"source": [
"### 2.4 Simulation model run settings"
@@ -192,7 +192,7 @@
{
"cell_type": "code",
"execution_count": 6,
- "id": "3b44984a",
+ "id": "0038a24f",
"metadata": {},
"outputs": [],
"source": [
@@ -213,7 +213,7 @@
},
{
"cell_type": "markdown",
- "id": "c2f5d0d5",
+ "id": "4df7855a",
"metadata": {},
"source": [
"## 3. Utility functions"
@@ -222,7 +222,7 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "91481550",
+ "id": "9e150cb9",
"metadata": {},
"outputs": [],
"source": [
@@ -243,7 +243,7 @@
},
{
"cell_type": "markdown",
- "id": "44840021",
+ "id": "dab518e5",
"metadata": {},
"source": [
"## 4. Distribution classes\n",
@@ -261,7 +261,7 @@
{
"cell_type": "code",
"execution_count": 8,
- "id": "ee8a6b21",
+ "id": "48e2c282",
"metadata": {},
"outputs": [],
"source": [
@@ -387,7 +387,7 @@
{
"cell_type": "code",
"execution_count": 9,
- "id": "e3662ea3",
+ "id": "ffd5ca32",
"metadata": {},
"outputs": [],
"source": [
@@ -469,7 +469,7 @@
},
{
"cell_type": "markdown",
- "id": "21f34196",
+ "id": "da4e0ca7",
"metadata": {},
"source": [
"## 5. Model parameterisation\n",
@@ -480,7 +480,7 @@
{
"cell_type": "code",
"execution_count": 10,
- "id": "6a261de8",
+ "id": "4cbd58d2",
"metadata": {},
"outputs": [],
"source": [
@@ -659,7 +659,7 @@
" \n",
" # treatment of trauma patients\n",
" self.treat_dist = Lognormal(self.trauma_treat_mean, \n",
- " np.sqrt(self.non_trauma_treat_var),\n",
+ " np.sqrt(self.trauma_treat_var),\n",
" random_seed=self.seeds[5])\n",
" \n",
" # probability of non-trauma patient requiring treatment\n",
@@ -694,7 +694,7 @@
},
{
"cell_type": "markdown",
- "id": "a627b72f",
+ "id": "e3cb73a1",
"metadata": {},
"source": [
"## 6. Patient Pathways Process Logic\n",
@@ -705,7 +705,7 @@
{
"cell_type": "code",
"execution_count": 11,
- "id": "11700ff1",
+ "id": "34edd733",
"metadata": {},
"outputs": [],
"source": [
@@ -804,7 +804,7 @@
" f'{self.env.now:.3f}')\n",
" \n",
" # sample treatment duration.\n",
- " self.treat_duration = args.trauma_dist.sample()\n",
+ " self.treat_duration = args.treat_dist.sample()\n",
" yield self.env.timeout(self.treat_duration)\n",
" \n",
" self.treatment_complete()\n",
@@ -837,7 +837,7 @@
{
"cell_type": "code",
"execution_count": 12,
- "id": "fc633380",
+ "id": "30185f46",
"metadata": {},
"outputs": [],
"source": [
@@ -988,7 +988,7 @@
},
{
"cell_type": "markdown",
- "id": "284188bc",
+ "id": "39bb1a70",
"metadata": {},
"source": [
"## 7. Main model class\n",
@@ -999,7 +999,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "03770c5a",
+ "id": "32fe1593",
"metadata": {},
"outputs": [],
"source": [
@@ -1141,7 +1141,7 @@
},
{
"cell_type": "markdown",
- "id": "cb89619b",
+ "id": "b697a7f0",
"metadata": {},
"source": [
"### 8. Logic to process end of run results.\n",
@@ -1152,7 +1152,7 @@
{
"cell_type": "code",
"execution_count": 14,
- "id": "f6a4fd58",
+ "id": "91cb2537",
"metadata": {},
"outputs": [],
"source": [
@@ -1343,7 +1343,7 @@
},
{
"cell_type": "markdown",
- "id": "5b4b5208",
+ "id": "2ed1e0a7",
"metadata": {},
"source": [
"## 9. Model execution\n",
@@ -1356,7 +1356,7 @@
{
"cell_type": "code",
"execution_count": 15,
- "id": "2dfa5971",
+ "id": "9dcc164b",
"metadata": {},
"outputs": [],
"source": [
@@ -1404,7 +1404,7 @@
{
"cell_type": "code",
"execution_count": 16,
- "id": "3adde6ad",
+ "id": "3320cd7c",
"metadata": {},
"outputs": [],
"source": [
@@ -1442,7 +1442,7 @@
},
{
"cell_type": "markdown",
- "id": "6cfd29ba",
+ "id": "c2773977",
"metadata": {},
"source": [
"### 9.1 Single run of the model\n",
@@ -1458,7 +1458,7 @@
{
"cell_type": "code",
"execution_count": 17,
- "id": "1c592473",
+ "id": "ab928ff2",
"metadata": {},
"outputs": [
{
@@ -1535,27 +1535,27 @@
" \n",
"
\n",
" | 06a_trauma_wait | \n",
- " 240.846123 | \n",
+ " 201.144403 | \n",
"
\n",
" \n",
" | 06b_trauma_util | \n",
- " 0.952202 | \n",
+ " 0.919830 | \n",
"
\n",
" \n",
" | 07a_treatment_wait(trauma) | \n",
- " 87.200272 | \n",
+ " 22.620880 | \n",
"
\n",
" \n",
" | 07b_treatment_util(trauma) | \n",
- " 0.740196 | \n",
+ " 0.493576 | \n",
"
\n",
" \n",
" | 08_total_time(trauma) | \n",
- " 422.158076 | \n",
+ " 310.384648 | \n",
"
\n",
" \n",
" | 09_throughput | \n",
- " 150.000000 | \n",
+ " 155.000000 | \n",
"
\n",
" \n",
"\n",
@@ -1573,12 +1573,12 @@
"04a_treatment_wait(non_trauma) 172.435861\n",
"04b_treatment_util(non_trauma) 0.845652\n",
"05_total_time(non-trauma) 248.848441\n",
- "06a_trauma_wait 240.846123\n",
- "06b_trauma_util 0.952202\n",
- "07a_treatment_wait(trauma) 87.200272\n",
- "07b_treatment_util(trauma) 0.740196\n",
- "08_total_time(trauma) 422.158076\n",
- "09_throughput 150.000000"
+ "06a_trauma_wait 201.144403\n",
+ "06b_trauma_util 0.919830\n",
+ "07a_treatment_wait(trauma) 22.620880\n",
+ "07b_treatment_util(trauma) 0.493576\n",
+ "08_total_time(trauma) 310.384648\n",
+ "09_throughput 155.000000"
]
},
"execution_count": 17,
@@ -1605,7 +1605,7 @@
},
{
"cell_type": "markdown",
- "id": "75df4e4d",
+ "id": "7ce7a397",
"metadata": {},
"source": [
"### 9.2 Multiple independent replications\n",
@@ -1616,7 +1616,7 @@
{
"cell_type": "code",
"execution_count": 18,
- "id": "592c20b9",
+ "id": "7d1bd513",
"metadata": {},
"outputs": [
{
@@ -1625,8 +1625,8 @@
"text": [
"Running multiple replications => done.\n",
"\n",
- "CPU times: user 1.5 s, sys: 17.2 ms, total: 1.51 s\n",
- "Wall time: 4.44 s\n"
+ "CPU times: user 3.21 s, sys: 25 ms, total: 3.23 s\n",
+ "Wall time: 5.8 s\n"
]
},
{
@@ -1700,12 +1700,12 @@
" 152.483394 | \n",
" 0.890904 | \n",
" 234.759918 | \n",
- " 191.391047 | \n",
- " 0.812900 | \n",
- " 239.889716 | \n",
- " 0.929002 | \n",
- " 393.725433 | \n",
- " 157.0 | \n",
+ " 236.508444 | \n",
+ " 1.028887 | \n",
+ " 13.701783 | \n",
+ " 0.607996 | \n",
+ " 346.698079 | \n",
+ " 171.0 | \n",
" \n",
" \n",
" | 2 | \n",
@@ -1719,12 +1719,12 @@
" 120.245474 | \n",
" 0.912127 | \n",
" 233.882040 | \n",
- " 198.986555 | \n",
- " 0.790265 | \n",
- " 91.161308 | \n",
- " 0.699481 | \n",
- " 406.292519 | \n",
- " 156.0 | \n",
+ " 133.813901 | \n",
+ " 0.834124 | \n",
+ " 3.715446 | \n",
+ " 0.367507 | \n",
+ " 301.521195 | \n",
+ " 161.0 | \n",
"
\n",
" \n",
" | 3 | \n",
@@ -1738,12 +1738,12 @@
" 94.019885 | \n",
" 0.868888 | \n",
" 208.361290 | \n",
- " 284.853607 | \n",
- " 0.896077 | \n",
- " 156.650713 | \n",
- " 0.699029 | \n",
- " 524.843569 | \n",
- " 161.0 | \n",
+ " 276.422566 | \n",
+ " 0.874245 | \n",
+ " 12.252175 | \n",
+ " 0.464740 | \n",
+ " 440.515502 | \n",
+ " 167.0 | \n",
"
\n",
" \n",
"\n",
@@ -1770,21 +1770,21 @@
"\n",
" 05_total_time(non-trauma) 06a_trauma_wait 06b_trauma_util \\\n",
"rep \n",
- "1 234.759918 191.391047 0.812900 \n",
- "2 233.882040 198.986555 0.790265 \n",
- "3 208.361290 284.853607 0.896077 \n",
+ "1 234.759918 236.508444 1.028887 \n",
+ "2 233.882040 133.813901 0.834124 \n",
+ "3 208.361290 276.422566 0.874245 \n",
"\n",
" 07a_treatment_wait(trauma) 07b_treatment_util(trauma) \\\n",
"rep \n",
- "1 239.889716 0.929002 \n",
- "2 91.161308 0.699481 \n",
- "3 156.650713 0.699029 \n",
+ "1 13.701783 0.607996 \n",
+ "2 3.715446 0.367507 \n",
+ "3 12.252175 0.464740 \n",
"\n",
" 08_total_time(trauma) 09_throughput \n",
"rep \n",
- "1 393.725433 157.0 \n",
- "2 406.292519 156.0 \n",
- "3 524.843569 161.0 "
+ "1 346.698079 171.0 \n",
+ "2 301.521195 161.0 \n",
+ "3 440.515502 167.0 "
]
},
"execution_count": 18,
@@ -1807,7 +1807,7 @@
{
"cell_type": "code",
"execution_count": 19,
- "id": "a2977d15",
+ "id": "0964cfc9",
"metadata": {},
"outputs": [
{
@@ -1823,12 +1823,12 @@
"04a_treatment_wait(non_trauma) 136.66\n",
"04b_treatment_util(non_trauma) 0.87\n",
"05_total_time(non-trauma) 234.34\n",
- "06a_trauma_wait 147.42\n",
+ "06a_trauma_wait 151.68\n",
"06b_trauma_util 0.83\n",
- "07a_treatment_wait(trauma) 169.61\n",
- "07b_treatment_util(trauma) 0.81\n",
- "08_total_time(trauma) 395.08\n",
- "09_throughput 153.60\n",
+ "07a_treatment_wait(trauma) 14.31\n",
+ "07b_treatment_util(trauma) 0.50\n",
+ "08_total_time(trauma) 292.28\n",
+ "09_throughput 162.16\n",
"dtype: float64"
]
},
@@ -1844,7 +1844,7 @@
},
{
"cell_type": "markdown",
- "id": "f356c85f",
+ "id": "f3d13d68",
"metadata": {},
"source": [
"### 9.3 Visualise replications"
@@ -1853,7 +1853,7 @@
{
"cell_type": "code",
"execution_count": 20,
- "id": "03f0caf3",
+ "id": "83bb0cb6",
"metadata": {},
"outputs": [
{
@@ -1877,7 +1877,7 @@
},
{
"cell_type": "markdown",
- "id": "31679e4b",
+ "id": "1cdb9f2c",
"metadata": {},
"source": [
"## 10. Scenario Analysis\n",
@@ -1890,7 +1890,7 @@
{
"cell_type": "code",
"execution_count": 21,
- "id": "87fa1b65",
+ "id": "938b1851",
"metadata": {},
"outputs": [],
"source": [
@@ -1925,7 +1925,7 @@
{
"cell_type": "code",
"execution_count": 22,
- "id": "079a12b9",
+ "id": "ffc0b669",
"metadata": {},
"outputs": [],
"source": [
@@ -1967,7 +1967,7 @@
},
{
"cell_type": "markdown",
- "id": "679b9dc1",
+ "id": "702e13a3",
"metadata": {},
"source": [
"### 10.1 Script to run scenario analysis"
@@ -1976,7 +1976,7 @@
{
"cell_type": "code",
"execution_count": 23,
- "id": "51a9bfbf",
+ "id": "36a7271a",
"metadata": {},
"outputs": [
{
@@ -2016,7 +2016,7 @@
{
"cell_type": "code",
"execution_count": 24,
- "id": "77d20748",
+ "id": "ae7a3a51",
"metadata": {},
"outputs": [],
"source": [
@@ -2047,7 +2047,7 @@
{
"cell_type": "code",
"execution_count": 25,
- "id": "4e63a89b",
+ "id": "7c370630",
"metadata": {},
"outputs": [
{
@@ -2161,51 +2161,51 @@
" \n",
" \n",
" | 06a_trauma_wait | \n",
- " 144.23 | \n",
- " 163.29 | \n",
- " 153.04 | \n",
- " 151.20 | \n",
- " 189.95 | \n",
+ " 171.44 | \n",
+ " 182.96 | \n",
+ " 139.42 | \n",
+ " 166.51 | \n",
+ " 178.34 | \n",
"
\n",
" \n",
" | 06b_trauma_util | \n",
- " 0.85 | \n",
- " 0.85 | \n",
- " 0.89 | \n",
- " 0.80 | \n",
" 0.88 | \n",
+ " 0.88 | \n",
+ " 0.83 | \n",
+ " 0.87 | \n",
+ " 0.86 | \n",
"
\n",
" \n",
" | 07a_treatment_wait(trauma) | \n",
- " 176.13 | \n",
- " 208.33 | \n",
- " 192.61 | \n",
- " 165.71 | \n",
- " 191.00 | \n",
+ " 20.38 | \n",
+ " 22.61 | \n",
+ " 19.24 | \n",
+ " 16.89 | \n",
+ " 19.46 | \n",
"
\n",
" \n",
" | 07b_treatment_util(trauma) | \n",
- " 0.84 | \n",
- " 0.86 | \n",
- " 0.80 | \n",
- " 0.84 | \n",
- " 0.85 | \n",
+ " 0.52 | \n",
+ " 0.52 | \n",
+ " 0.52 | \n",
+ " 0.51 | \n",
+ " 0.52 | \n",
"
\n",
" \n",
" | 08_total_time(trauma) | \n",
- " 393.36 | \n",
- " 389.83 | \n",
- " 400.76 | \n",
- " 383.26 | \n",
- " 408.64 | \n",
+ " 316.94 | \n",
+ " 298.88 | \n",
+ " 271.56 | \n",
+ " 297.58 | \n",
+ " 288.86 | \n",
"
\n",
" \n",
" | 09_throughput | \n",
- " 156.25 | \n",
- " 157.50 | \n",
- " 159.85 | \n",
- " 187.85 | \n",
- " 159.80 | \n",
+ " 166.15 | \n",
+ " 167.45 | \n",
+ " 169.15 | \n",
+ " 196.85 | \n",
+ " 170.40 | \n",
"
\n",
" \n",
"\n",
@@ -2223,12 +2223,12 @@
"04a_treatment_wait(non_trauma) 134.19 134.80 148.81 2.10 150.61\n",
"04b_treatment_util(non_trauma) 0.88 0.88 0.88 0.62 0.88\n",
"05_total_time(non-trauma) 226.57 223.52 213.47 184.42 210.25\n",
- "06a_trauma_wait 144.23 163.29 153.04 151.20 189.95\n",
- "06b_trauma_util 0.85 0.85 0.89 0.80 0.88\n",
- "07a_treatment_wait(trauma) 176.13 208.33 192.61 165.71 191.00\n",
- "07b_treatment_util(trauma) 0.84 0.86 0.80 0.84 0.85\n",
- "08_total_time(trauma) 393.36 389.83 400.76 383.26 408.64\n",
- "09_throughput 156.25 157.50 159.85 187.85 159.80"
+ "06a_trauma_wait 171.44 182.96 139.42 166.51 178.34\n",
+ "06b_trauma_util 0.88 0.88 0.83 0.87 0.86\n",
+ "07a_treatment_wait(trauma) 20.38 22.61 19.24 16.89 19.46\n",
+ "07b_treatment_util(trauma) 0.52 0.52 0.52 0.51 0.52\n",
+ "08_total_time(trauma) 316.94 298.88 271.56 297.58 288.86\n",
+ "09_throughput 166.15 167.45 169.15 196.85 170.40"
]
},
"execution_count": 25,
@@ -2245,7 +2245,7 @@
},
{
"cell_type": "markdown",
- "id": "7cb09bfb",
+ "id": "e1075c3a",
"metadata": {},
"source": [
"## 11. Script to produce formatted LaTeX table for paper"
@@ -2254,7 +2254,7 @@
{
"cell_type": "code",
"execution_count": 26,
- "id": "82a91037",
+ "id": "9d4388bd",
"metadata": {},
"outputs": [
{
@@ -2326,20 +2326,20 @@
" \n",
" | 4 | \n",
" Trauma stabilisation | \n",
- " 144.23 | \n",
- " 163.29 | \n",
- " 153.04 | \n",
- " 151.20 | \n",
- " 189.95 | \n",
+ " 171.44 | \n",
+ " 182.96 | \n",
+ " 139.42 | \n",
+ " 166.51 | \n",
+ " 178.34 | \n",
"
\n",
" \n",
" | 5 | \n",
" Trauma treatment | \n",
- " 176.13 | \n",
- " 208.33 | \n",
- " 192.61 | \n",
- " 165.71 | \n",
- " 191.00 | \n",
+ " 20.38 | \n",
+ " 22.61 | \n",
+ " 19.24 | \n",
+ " 16.89 | \n",
+ " 19.46 | \n",
"
\n",
" \n",
"\n",
@@ -2351,8 +2351,8 @@
"1 Registation 101.88 128.14 101.09 109.70 125.47\n",
"2 Examination 25.34 24.93 0.16 24.03 0.14\n",
"3 Non-trauma treatment 134.19 134.80 148.81 2.10 150.61\n",
- "4 Trauma stabilisation 144.23 163.29 153.04 151.20 189.95\n",
- "5 Trauma treatment 176.13 208.33 192.61 165.71 191.00"
+ "4 Trauma stabilisation 171.44 182.96 139.42 166.51 178.34\n",
+ "5 Trauma treatment 20.38 22.61 19.24 16.89 19.46"
]
},
"execution_count": 26,
@@ -2382,7 +2382,7 @@
{
"cell_type": "code",
"execution_count": 27,
- "id": "cc53c15f",
+ "id": "12fbe03a",
"metadata": {},
"outputs": [
{
@@ -2401,8 +2401,8 @@
" Registation & 101.88 & 128.14 & 101.09 & 109.70 & 125.47 \\\\\n",
" Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\\\\n",
" Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\\\\n",
- " Trauma stabilisation & 144.23 & 163.29 & 153.04 & 151.20 & 189.95 \\\\\n",
- " Trauma treatment & 176.13 & 208.33 & 192.61 & 165.71 & 191.00 \\\\\n",
+ " Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\\\\n",
+ " Trauma treatment & 20.38 & 22.61 & 19.24 & 16.89 & 19.46 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"\\end{table}\n",
@@ -2431,7 +2431,7 @@
},
{
"cell_type": "markdown",
- "id": "ea8a95ab",
+ "id": "c3098904",
"metadata": {},
"source": [
"## End"
diff --git a/content/02_model_code/output/table_3.txt b/content/02_model_code/output/table_3.txt
index c8034c3..21d335f 100644
--- a/content/02_model_code/output/table_3.txt
+++ b/content/02_model_code/output/table_3.txt
@@ -10,8 +10,8 @@ Mean waiting time (mins) & base & triage+1 & exam+1 & treat+1 & triage+exa
Registation & 101.88 & 128.14 & 101.09 & 109.70 & 125.47 \\
Examination & 25.34 & 24.93 & 0.16 & 24.03 & 0.14 \\
Non-trauma treatment & 134.19 & 134.80 & 148.81 & 2.10 & 150.61 \\
- Trauma stabilisation & 144.23 & 163.29 & 153.04 & 151.20 & 189.95 \\
- Trauma treatment & 176.13 & 208.33 & 192.61 & 165.71 & 191.00 \\
+ Trauma stabilisation & 171.44 & 182.96 & 139.42 & 166.51 & 178.34 \\
+ Trauma treatment & 20.38 & 22.61 & 19.24 & 16.89 & 19.46 \\
\bottomrule
\end{tabular}
\end{table}
diff --git a/src/full_model.ipynb b/src/full_model.ipynb
index ab28841..453d537 100644
--- a/src/full_model.ipynb
+++ b/src/full_model.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
- "id": "5f6bc1fb",
+ "id": "1e38665a",
"metadata": {},
"source": [
"# SimPy: Treatment Centre\n",
@@ -26,7 +26,7 @@
},
{
"cell_type": "markdown",
- "id": "75ac3244",
+ "id": "d05a6590",
"metadata": {},
"source": [
"## Imports\n",
@@ -39,7 +39,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "d7fe643e",
+ "id": "d7666c05",
"metadata": {},
"outputs": [],
"source": [
@@ -52,7 +52,7 @@
{
"cell_type": "code",
"execution_count": 2,
- "id": "a5aaf4aa",
+ "id": "fa57807c",
"metadata": {},
"outputs": [
{
@@ -74,7 +74,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "d5cfef2a",
+ "id": "458d9a2a",
"metadata": {},
"outputs": [],
"source": [
@@ -87,7 +87,7 @@
},
{
"cell_type": "markdown",
- "id": "83fbca98",
+ "id": "6eed558f",
"metadata": {},
"source": [
"---\n",
@@ -115,7 +115,7 @@
},
{
"cell_type": "markdown",
- "id": "1a9f16c7",
+ "id": "38e248b9",
"metadata": {},
"source": [
"## Constants and defaults for modelling **as-is**"
@@ -123,7 +123,7 @@
},
{
"cell_type": "markdown",
- "id": "e09c1788",
+ "id": "4a2dc494",
"metadata": {},
"source": [
"### Distribution parameters"
@@ -132,7 +132,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "ed8cdf44",
+ "id": "af9b52b0",
"metadata": {},
"outputs": [],
"source": [
@@ -167,7 +167,7 @@
},
{
"cell_type": "markdown",
- "id": "5b625648",
+ "id": "2ff84174",
"metadata": {},
"source": [
"### Time dependent arrival rates data\n",
@@ -178,7 +178,7 @@
{
"cell_type": "code",
"execution_count": 5,
- "id": "f47e4be1",
+ "id": "cb740899",
"metadata": {},
"outputs": [
{
@@ -205,7 +205,7 @@
},
{
"cell_type": "markdown",
- "id": "7babe87a",
+ "id": "84b59c1a",
"metadata": {},
"source": [
"### Resource counts\n",
@@ -216,7 +216,7 @@
{
"cell_type": "code",
"execution_count": 6,
- "id": "356da7d2",
+ "id": "35eb6883",
"metadata": {},
"outputs": [],
"source": [
@@ -234,7 +234,7 @@
},
{
"cell_type": "markdown",
- "id": "75343958",
+ "id": "92029642",
"metadata": {},
"source": [
"### Simulation model run settings"
@@ -243,7 +243,7 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "9a060e54",
+ "id": "5dfc4485",
"metadata": {},
"outputs": [],
"source": [
@@ -264,7 +264,7 @@
},
{
"cell_type": "markdown",
- "id": "d47270ec",
+ "id": "f40e7e85",
"metadata": {},
"source": [
"## Utility functions"
@@ -273,7 +273,7 @@
{
"cell_type": "code",
"execution_count": 8,
- "id": "a2213696",
+ "id": "d7cf8c8c",
"metadata": {},
"outputs": [],
"source": [
@@ -294,7 +294,7 @@
},
{
"cell_type": "markdown",
- "id": "badf738d",
+ "id": "967e028b",
"metadata": {},
"source": [
"## Distribution classes\n",
@@ -312,7 +312,7 @@
{
"cell_type": "code",
"execution_count": 9,
- "id": "cc39928e",
+ "id": "ebd41c67",
"metadata": {},
"outputs": [],
"source": [
@@ -438,7 +438,7 @@
{
"cell_type": "code",
"execution_count": 10,
- "id": "476d5c38",
+ "id": "e026c878",
"metadata": {},
"outputs": [],
"source": [
@@ -520,7 +520,7 @@
},
{
"cell_type": "markdown",
- "id": "0bab8888",
+ "id": "e4409446",
"metadata": {},
"source": [
"## Model parameterisation\n",
@@ -531,7 +531,7 @@
{
"cell_type": "code",
"execution_count": 11,
- "id": "7dd430d1",
+ "id": "32f5d71c",
"metadata": {},
"outputs": [],
"source": [
@@ -710,7 +710,7 @@
" \n",
" # treatment of trauma patients\n",
" self.treat_dist = Lognormal(self.trauma_treat_mean, \n",
- " np.sqrt(self.non_trauma_treat_var),\n",
+ " np.sqrt(self.trauma_treat_var),\n",
" random_seed=self.seeds[5])\n",
" \n",
" # probability of non-trauma patient requiring treatment\n",
@@ -745,7 +745,7 @@
},
{
"cell_type": "markdown",
- "id": "dcfa40d2",
+ "id": "f12d6437",
"metadata": {},
"source": [
"## Patient Pathways Process Logic\n",
@@ -756,7 +756,7 @@
{
"cell_type": "code",
"execution_count": 12,
- "id": "eb3bbfbd",
+ "id": "fb7c10a8",
"metadata": {},
"outputs": [],
"source": [
@@ -855,7 +855,7 @@
" f'{self.env.now:.3f}')\n",
" \n",
" # sample treatment duration.\n",
- " self.treat_duration = args.trauma_dist.sample()\n",
+ " self.treat_duration = args.treat_dist.sample()\n",
" yield self.env.timeout(self.treat_duration)\n",
" \n",
" self.treatment_complete()\n",
@@ -888,7 +888,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "23e9b8d7",
+ "id": "b0a44de1",
"metadata": {},
"outputs": [],
"source": [
@@ -1039,7 +1039,7 @@
},
{
"cell_type": "markdown",
- "id": "631df16c",
+ "id": "5fbfaa7d",
"metadata": {},
"source": [
"## Main model class\n",
@@ -1050,7 +1050,7 @@
{
"cell_type": "code",
"execution_count": 14,
- "id": "15d766a1",
+ "id": "d8aedd4b",
"metadata": {},
"outputs": [],
"source": [
@@ -1192,7 +1192,7 @@
},
{
"cell_type": "markdown",
- "id": "a99826b4",
+ "id": "0c02ce95",
"metadata": {},
"source": [
"### Logic to process end of run results.\n",
@@ -1203,7 +1203,7 @@
{
"cell_type": "code",
"execution_count": 15,
- "id": "aaadd8ea",
+ "id": "a156e0ea",
"metadata": {},
"outputs": [],
"source": [
@@ -1394,7 +1394,7 @@
},
{
"cell_type": "markdown",
- "id": "8a750b27",
+ "id": "67791f48",
"metadata": {},
"source": [
"## Executing a model\n",
@@ -1407,7 +1407,7 @@
{
"cell_type": "code",
"execution_count": 16,
- "id": "6f41f4f7",
+ "id": "31e48ba5",
"metadata": {},
"outputs": [],
"source": [
@@ -1455,7 +1455,7 @@
{
"cell_type": "code",
"execution_count": 17,
- "id": "bcf70118",
+ "id": "99072a5b",
"metadata": {},
"outputs": [],
"source": [
@@ -1493,7 +1493,7 @@
},
{
"cell_type": "markdown",
- "id": "e8d512aa",
+ "id": "4c8165b1",
"metadata": {},
"source": [
"### Single run of the model\n",
@@ -1509,7 +1509,7 @@
{
"cell_type": "code",
"execution_count": 18,
- "id": "fbf01ef1",
+ "id": "adf424ed",
"metadata": {},
"outputs": [
{
@@ -1656,7 +1656,7 @@
},
{
"cell_type": "markdown",
- "id": "c5b39c68",
+ "id": "1697b886",
"metadata": {},
"source": [
"### Multiple independent replications\n",
@@ -1670,7 +1670,7 @@
{
"cell_type": "code",
"execution_count": 19,
- "id": "9c562f1d",
+ "id": "c4b750a7",
"metadata": {},
"outputs": [
{
@@ -1861,7 +1861,7 @@
{
"cell_type": "code",
"execution_count": 20,
- "id": "4415bf56",
+ "id": "97e9a462",
"metadata": {},
"outputs": [
{
@@ -1898,7 +1898,7 @@
},
{
"cell_type": "markdown",
- "id": "0466c5fa",
+ "id": "0016c383",
"metadata": {},
"source": [
"### Visualise replications"
@@ -1907,7 +1907,7 @@
{
"cell_type": "code",
"execution_count": 21,
- "id": "dd4f71a8",
+ "id": "3bae82ea",
"metadata": {},
"outputs": [
{
@@ -1931,7 +1931,7 @@
},
{
"cell_type": "markdown",
- "id": "5e0b10e3",
+ "id": "9ff1142b",
"metadata": {},
"source": [
"## Scenario Analysis\n",
@@ -1944,7 +1944,7 @@
{
"cell_type": "code",
"execution_count": 22,
- "id": "04872409",
+ "id": "215502ef",
"metadata": {},
"outputs": [],
"source": [
@@ -1983,7 +1983,7 @@
{
"cell_type": "code",
"execution_count": 23,
- "id": "e625868c",
+ "id": "7b3788f7",
"metadata": {},
"outputs": [],
"source": [
@@ -2025,7 +2025,7 @@
},
{
"cell_type": "markdown",
- "id": "1d3e4611",
+ "id": "c0fae650",
"metadata": {},
"source": [
"### Script to run scenario analysis"
@@ -2034,7 +2034,7 @@
{
"cell_type": "code",
"execution_count": 24,
- "id": "efc44373",
+ "id": "3bf9953e",
"metadata": {},
"outputs": [
{
@@ -2074,7 +2074,7 @@
{
"cell_type": "code",
"execution_count": 25,
- "id": "e59417c4",
+ "id": "002db425",
"metadata": {},
"outputs": [],
"source": [
@@ -2105,7 +2105,7 @@
{
"cell_type": "code",
"execution_count": 26,
- "id": "9bf4e8fc",
+ "id": "169f2723",
"metadata": {},
"outputs": [
{
@@ -2303,7 +2303,7 @@
},
{
"cell_type": "markdown",
- "id": "c9363822",
+ "id": "fc1bc9f4",
"metadata": {},
"source": [
"## End"
diff --git a/src/treat_sim/model.py b/src/treat_sim/model.py
index d911574..39b9508 100644
--- a/src/treat_sim/model.py
+++ b/src/treat_sim/model.py
@@ -300,11 +300,13 @@ def init_sampling(self):
'''
Create the distributions used by the model and initialise
the random seeds of each.
- '''
- # create random number streams
- rng_streams = np.random.default_rng(self.random_number_set)
- self.seeds = rng_streams.integers(0, 999999999, size=N_STREAMS)
-
+ '''
+ # MODIFICATION. Better method for producing n non-overlapping streams
+ seed_sequence = np.random.SeedSequence(self.random_number_set)
+
+ # Generate n high quality child seeds
+ self.seeds = seed_sequence.spawn(N_STREAMS)
+
# create distributions
# Triage duration
@@ -332,7 +334,7 @@ def init_sampling(self):
# treatment of trauma patients
self.treat_dist = Lognormal(self.trauma_treat_mean,
- np.sqrt(self.non_trauma_treat_var),
+ np.sqrt(self.trauma_treat_var),
random_seed=self.seeds[5])
# probability of non-trauma patient requiring treatment
@@ -430,7 +432,7 @@ def execute(self):
f'{self.env.now:.3f}')
# sample triage duration.
- self.triage_duration = self.args.triage_dist.sample()
+ self.triage_duration = args.triage_dist.sample()
yield self.env.timeout(self.triage_duration)
self.triage_complete()
@@ -445,7 +447,7 @@ def execute(self):
self.wait_trauma = self.env.now - start_wait
# sample stablisation duration.
- self.trauma_duration = self.args.trauma_dist.sample()
+ self.trauma_duration = args.trauma_dist.sample()
yield self.env.timeout(self.trauma_duration)
self.trauma_complete()
@@ -463,7 +465,7 @@ def execute(self):
f'{self.env.now:.3f}')
# sample treatment duration.
- self.treat_duration = self.args.trauma_dist.sample()
+ self.treat_duration = args.treat_dist.sample()
yield self.env.timeout(self.treat_duration)
self.treatment_complete()