From d200f9eafd8a66dfb906caec919eafa0845f6533 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 11:36:34 +0000 Subject: [PATCH 01/23] README: updated to include steps to create website --- README.md | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 86 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index cec7fd1..c7a6f47 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,95 @@ -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TomMonks/treatment-centre-sim/HEAD) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-examplar/HEAD) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10051495.svg)](https://doi.org/10.5281/zenodo.10051495) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-360+/) -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6497477.svg)](https://doi.org/10.5281/zenodo.6497477) +[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) +[![License: MIT](https://img.shields.io/badge/ORCID-0000--0001--5274--5037-brightgreen)](https://orcid.org/0000-0001-5274-5037) +[![License: MIT](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481) [](https://hub.docker.com/r/tommonks01/treat_sim) +# Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. -# An open treatment centre simulation model. +## Overview -This work occompanies Monks et al (2022). +The materials and methods in this repository support work towards developing the S.T.A.R.S healthcare framework (**S**haring **T**ools and **A**rtifacts for **R**eusable **S**imulations in healthcare). The code and written materials here demonstrate the application of S.T.A.R.S' version 1 to sharing a `simpy` discrete-event simuilation model and associated research artifacts. -The repo contains an free and open implementation of the Treatment Centre Model from Nelson (2013). It is published under a permissive MIT license. +* All artifacts in this repository are linked to study researchers via ORCIDs; +* Model code is made available under a MIT license; +* Python dependencies are managed through `conda`;` +* The python code itself can be viewed and executed in Jupyter notebooks via [Binder](https://mybinder.org); +* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) served up by GitHub pages; +* The materials are deposited and made citatable using Zenodo; +* The models are sharable with other researchers and the NHS without the need to install software. -## References +## Author ORCIDs -1. *Monks.T, Harper.A, Anagnoustou. A, Allen.M, Taylor.S. (2022) Open Science for Computer Simulation* -2. *Nelson. B.L. (2013). [Foundations and methods of stochastic simulation](https://www.amazon.co.uk/Foundations-Methods-Stochastic-Simulation-International/dp/1461461596/ref=sr_1_1?dchild=1&keywords=foundations+and+methods+of+stochastic+simulation&qid=1617050801&sr=8-1). Springer.* +[![ORCID: Harper](https://img.shields.io/badge/ORCID-0000--0001--5274--5037-brightgreen)](https://orcid.org/0000-0001-5274-5037) +[![ORCID: Monks](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481) + +## Citation + +> + +```bibtex + +``` + +## Funding + +This code is part of independent research supported by the National Institute for Health Research Applied Research Collaboration South West Peninsula. The views expressed in this publication are those of the author(s) and not necessarily those of the National Institute for Health Research or the Department of Health and Social Care. + +## Case study model + +To Add. + +## Online Notebooks via Binder + +The python code for the model has been setup to run online in Jupyter notebooks via binder [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-examplar/HEAD) + +> Binder is a free service. If it has not been used in a while Binder will need to re-containerise the code repository, and push to binderhub. This will take several minutes. After that the online environment will be quick to load. + +## Online documentation produced by Jupyter-book + +[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) + +* The documentation can be access at [https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) + +## How to create the website locally + +Alternatively you may wish to create the website on your local machine. + +### Downloading the code + +Either clone the repository using git or click on the green "code" button and select "Download Zip". + +```bash +git clone https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs +``` + +### Installing dependencies + +[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-360+/) + +All dependencies can be found in [`binder/environment.yml`]() and are pulled from conda-forge. To run the code locally, we recommend install [mini-conda](https://docs.conda.io/en/latest/miniconda.html); navigating your terminal (or cmd prompt) to the directory containing the repo and issuing the following command: + +```bash +conda env create -f binder/environment.yml +``` + +To activate the environment issue the following command: + +```bash +conda activate stars_docs` +``` + +### Building the book + +In the directory (folder) containing the code issue the following command via the terminal (or cmd prompt/powershell on windows) + +```bash +jb build . +``` + +> The configutation of the book has been setup to re-run all of the notebooks. It may take a few minutes to execute on your local machine. + +When the build is complete Jupyter book will display a hyper-link to the book that has been built on your machine. Click on the link (or copy paste into a browser) to run it. \ No newline at end of file From e2768a7bbabc5a02a2d85bab156003d142bad55d Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 11:38:46 +0000 Subject: [PATCH 02/23] ENV: added missing jb pip --- binder/environment.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/binder/environment.yml b/binder/environment.yml index afa5d10..7f9412f 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -1,4 +1,4 @@ -name: treatment_sim +name: stars_docs channels: - conda-forge dependencies: @@ -11,4 +11,6 @@ dependencies: - python=3.8.12 - scipy=1.6.1 - simpy=4.0.1 + - pip: + - jupyter-book==0.15.1 From 021b8767275b1ef798208a228430fc91bb9c67cb Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 11:48:55 +0000 Subject: [PATCH 03/23] BOOK: updated preface with STARS summary --- content/front_page.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/front_page.md b/content/front_page.md index 21507fe..ad1ef86 100644 --- a/content/front_page.md +++ b/content/front_page.md @@ -2,21 +2,21 @@ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6497477.svg)](https://doi.org/10.5281/zenodo.6497477) -This book contains example documentation and open working for a computer simulation model. The model is a based on the treatment centre example in Nelson [1]. The model is implemented in `python` and `simpy`. +This book contains example enhanced documentation and open working for a discrete-event simulation model. The model is a based on the treatment centre example in Nelson [1]. The model is implemented in `python` and `simpy`. -The book covers the following aspects of open working for simulation: +## Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. -* Sharing your model code and parameters with other researchers and simulation modellers. -* An example of documenting your model using the STRESS reporting checklist (for DES). -* Providing a simple executable version of your model for other to verify results. +The materials and methods in this repository support work towards developing the S.T.A.R.S healthcare framework (**S**haring **T**ools and **A**rtifacts for **R**eusable **S**imulations in healthcare). The code and written materials here demonstrate the application of S.T.A.R.S' version 1 to sharing a `simpy` discrete-event simuilation model and associated research artifacts. -## Contributors +* All artifacts in this repository are linked to study researchers via ORCIDs; +* Model code is made available under a MIT license; +* Python dependencies are managed through `conda`;` +* The python code itself can be viewed and executed in Jupyter notebooks via [Binder](https://mybinder.org); +* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) served up by GitHub pages; +* The materials are deposited and made citatable using Zenodo; +* The models are sharable with other researchers and the NHS without the need to install software. -* Thomas Monks, University of Exeter -* Alison Harper, University of Exeter -* Simon Taylor, Brunel University London -* Anastasia Anagnostou, Brunel University London +## Author ORCIDs -## References - -1. *Nelson. B.L. (2013). [Foundations and methods of stochastic simulation: A first course](https://www.amazon.co.uk/Foundations-Methods-Stochastic-Simulation-International/dp/1461461596/ref=sr_1_1?dchild=1&keywords=foundations+and+methods+of+stochastic+simulation&qid=1617050801&sr=8-1). Springer.* \ No newline at end of file +[![ORCID: Harper](https://img.shields.io/badge/ORCID-0000--0001--5274--5037-brightgreen)](https://orcid.org/0000-0001-5274-5037) +[![ORCID: Monks](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481) \ No newline at end of file From b26202e84a9fbed24c16f49957ebaa168d739091 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 11:58:40 +0000 Subject: [PATCH 04/23] CITE: added citation.cff --- CITATION.cff | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..f605b27 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,32 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: >- + Towards Sharing Tools and Artifacts for Reuable + Simulation: example enhanced documentation for a `simpy` + model. +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: Thomas + family-names: Monks + affiliation: University of Exeter + orcid: 'https://orcid.org/0000-0003-2631-4481' + - given-names: Alison + family-names: Harper + affiliation: University of Exeter + orcid: 'https://orcid.org/0000-0001-5274-5037' +repository-code: >- + https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs +url: >- + https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs +keywords: + - Discrete-event simulation + - Open Science + - Reproducibility + - Documentation + - Model reuse +license: MIT From d856e64465c2dd708783e811808b0b35e1844f2f Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 11:59:56 +0000 Subject: [PATCH 05/23] README: basic citation info prior to Zenodo deposity --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c7a6f47..2107e18 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,15 @@ The materials and methods in this repository support work towards developing the ## Citation -> +> Monks, T., & Harper, A. Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. [Computer software]. https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs ```bibtex - +@software{Monks_Towards_Sharing_Tools, +author = {Monks, Thomas and Harper, Alison}, +license = {MIT}, +title = {{Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model.}}, +url = {https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs} +} ``` ## Funding From 12185e8c637250d22d47978274355c0530801142 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 12:07:40 +0000 Subject: [PATCH 06/23] README: updated citation with DOI --- README.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2107e18..3f856c8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-examplar/HEAD) -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10051495.svg)](https://doi.org/10.5281/zenodo.10051495) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10054063.svg)](https://doi.org/10.5281/zenodo.10054063) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-360+/) [![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) @@ -28,14 +28,21 @@ The materials and methods in this repository support work towards developing the ## Citation -> Monks, T., & Harper, A. Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. [Computer software]. https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs +> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 ```bibtex -@software{Monks_Towards_Sharing_Tools, -author = {Monks, Thomas and Harper, Alison}, -license = {MIT}, -title = {{Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model.}}, -url = {https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs} +@software{stars_example_docs, + author = {Monks, Thomas and + Harper, Alison}, + title = {{Towards Sharing Tools and Artifacts for Reuable + Simulation: example enhanced documentation for a + `simpy` model.}}, + month = oct, + year = 2023, + publisher = {Zenodo}, + version = {v1.1.0}, + doi = {10.5281/zenodo.10054063}, + url = {https://doi.org/10.5281/zenodo.10054063}, } ``` From 9c8242f024c8536e5e48cae80fd9c6a74a4592ed Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 12:09:59 +0000 Subject: [PATCH 07/23] BOOK: updated citation with DOI --- content/01_introduction/03_citation.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/content/01_introduction/03_citation.md b/content/01_introduction/03_citation.md index 1cabe4c..4421e00 100644 --- a/content/01_introduction/03_citation.md +++ b/content/01_introduction/03_citation.md @@ -1,19 +1,21 @@ # Citation -Please cite this online book using: +If you use or adapt the materials in this book please cite the artifacts as follows: + +> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 ```bibtex -@software{monks_thomas_2022_6772475, +@software{stars_example_docs, author = {Monks, Thomas and - Harper, Alison and - Taylor, J.E, Simon and - Anagnostou, Anastasia}, - title = {TomMonks/treatment-centre-sim: v0.4.0}, - month = jun, - year = 2022, + Harper, Alison}, + title = {{Towards Sharing Tools and Artifacts for Reuable + Simulation: example enhanced documentation for a + `simpy` model.}}, + month = oct, + year = 2023, publisher = {Zenodo}, - version = {v0.4.0}, - doi = {10.5281/zenodo.6772475}, - url = {https://doi.org/10.5281/zenodo.6772475} + version = {v1.1.0}, + doi = {10.5281/zenodo.10054063}, + url = {https://doi.org/10.5281/zenodo.10054063}, } ``` \ No newline at end of file From 145de19e935a5cc16bec486c13e50805eafb4ce8 Mon Sep 17 00:00:00 2001 From: Tom Monks Date: Mon, 30 Oct 2023 12:21:07 +0000 Subject: [PATCH 08/23] README: fixed website URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3f856c8..edf242e 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ The materials and methods in this repository support work towards developing the * Model code is made available under a MIT license; * Python dependencies are managed through `conda`;` * The python code itself can be viewed and executed in Jupyter notebooks via [Binder](https://mybinder.org); -* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) served up by GitHub pages; +* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) served up by GitHub pages; * The materials are deposited and made citatable using Zenodo; * The models are sharable with other researchers and the NHS without the need to install software. @@ -56,15 +56,15 @@ To Add. ## Online Notebooks via Binder -The python code for the model has been setup to run online in Jupyter notebooks via binder [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-examplar/HEAD) +The python code for the model has been setup to run online in Jupyter notebooks via binder [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-example/HEAD) > Binder is a free service. If it has not been used in a while Binder will need to re-containerise the code repository, and push to binderhub. This will take several minutes. After that the online environment will be quick to load. ## Online documentation produced by Jupyter-book -[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) +[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) -* The documentation can be access at [https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) +* The documentation can be access at [https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) ## How to create the website locally @@ -104,4 +104,4 @@ jb build . > The configutation of the book has been setup to re-run all of the notebooks. It may take a few minutes to execute on your local machine. -When the build is complete Jupyter book will display a hyper-link to the book that has been built on your machine. Click on the link (or copy paste into a browser) to run it. \ No newline at end of file +When the build is complete Jupyter book will display a hyper-link to the book that has been built on your machine. Click on the link (or copy paste into a browser) to run it. From a96b0ae20539bed19fc048a7c26bcee2dc83a722 Mon Sep 17 00:00:00 2001 From: Tom Monks Date: Mon, 30 Oct 2023 12:22:05 +0000 Subject: [PATCH 09/23] README: fixed website URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index edf242e..9ecef05 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ The python code for the model has been setup to run online in Jupyter notebooks [![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) -* The documentation can be access at [https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) +* The documentation can be access at [https://pythonhealthdatascience.github.io/stars-simpy-example-docs](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) ## How to create the website locally From 0a7785541f3de943b819255df6db84eeb2b64d70 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 12:23:38 +0000 Subject: [PATCH 10/23] CITE: fixed URL in citation file --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index f605b27..3d7945d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -20,9 +20,9 @@ authors: affiliation: University of Exeter orcid: 'https://orcid.org/0000-0001-5274-5037' repository-code: >- - https://github.com/pythonhealthdatascience/stars-simpy-examplar-docs + https://github.com/pythonhealthdatascience/stars-simpy-example-docs url: >- - https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs + https://pythonhealthdatascience.github.io/stars-simpy-example-docs keywords: - Discrete-event simulation - Open Science From 0f6a4fdde5dd2b90d531fb26abc985b9ae3e2d5b Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:03:24 +0000 Subject: [PATCH 11/23] CITE: fixed CITATION.cff typo in title --- CITATION.cff | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CITATION.cff b/CITATION.cff index 3d7945d..3ded784 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -3,7 +3,7 @@ cff-version: 1.2.0 title: >- - Towards Sharing Tools and Artifacts for Reuable + Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model. message: >- From 85cbbededaefde30cc9f6b8f892fe5b80e2fa8be Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:04:16 +0000 Subject: [PATCH 12/23] README: fixed citation typo in title --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9ecef05..f13df6f 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![License: MIT](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481) [](https://hub.docker.com/r/tommonks01/treat_sim) -# Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. +# Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model. ## Overview @@ -28,13 +28,13 @@ The materials and methods in this repository support work towards developing the ## Citation -> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 +> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 ```bibtex @software{stars_example_docs, author = {Monks, Thomas and Harper, Alison}, - title = {{Towards Sharing Tools and Artifacts for Reuable + title = {{Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model.}}, month = oct, From b3b320df27e63932f4da3089a1231979a6c4ec2f Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:05:27 +0000 Subject: [PATCH 13/23] BOOK: fixed typo in title --- content/01_introduction/03_citation.md | 4 ++-- content/front_page.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/01_introduction/03_citation.md b/content/01_introduction/03_citation.md index 4421e00..c17b399 100644 --- a/content/01_introduction/03_citation.md +++ b/content/01_introduction/03_citation.md @@ -2,13 +2,13 @@ If you use or adapt the materials in this book please cite the artifacts as follows: -> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 +> Monks, T., & Harper, A. (2023). Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model. (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.10054063 ```bibtex @software{stars_example_docs, author = {Monks, Thomas and Harper, Alison}, - title = {{Towards Sharing Tools and Artifacts for Reuable + title = {{Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model.}}, month = oct, diff --git a/content/front_page.md b/content/front_page.md index ad1ef86..0482d4d 100644 --- a/content/front_page.md +++ b/content/front_page.md @@ -4,7 +4,7 @@ This book contains example enhanced documentation and open working for a discrete-event simulation model. The model is a based on the treatment centre example in Nelson [1]. The model is implemented in `python` and `simpy`. -## Towards Sharing Tools and Artifacts for Reuable Simulation: example enhanced documentation for a `simpy` model. +## Towards Sharing Tools and Artifacts for Reusable Simulation: example enhanced documentation for a `simpy` model. The materials and methods in this repository support work towards developing the S.T.A.R.S healthcare framework (**S**haring **T**ools and **A**rtifacts for **R**eusable **S**imulations in healthcare). The code and written materials here demonstrate the application of S.T.A.R.S' version 1 to sharing a `simpy` discrete-event simuilation model and associated research artifacts. From 790e850605e0253c4d5fee006781f66817a72ff8 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:07:17 +0000 Subject: [PATCH 14/23] BOOK: fixed link to online book --- content/front_page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/front_page.md b/content/front_page.md index 0482d4d..348101a 100644 --- a/content/front_page.md +++ b/content/front_page.md @@ -12,7 +12,7 @@ The materials and methods in this repository support work towards developing the * Model code is made available under a MIT license; * Python dependencies are managed through `conda`;` * The python code itself can be viewed and executed in Jupyter notebooks via [Binder](https://mybinder.org); -* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) served up by GitHub pages; +* The model is documented and explained in a [Jupyter book website](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) served up by GitHub pages; * The materials are deposited and made citatable using Zenodo; * The models are sharable with other researchers and the NHS without the need to install software. From 6f5577cb9cd31ed922f6d01ad79b87b505b5bb16 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:13:58 +0000 Subject: [PATCH 15/23] BOOK: updated the open working statement --- content/01_introduction/04_openworking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/01_introduction/04_openworking.md b/content/01_introduction/04_openworking.md index df6e3ec..78d4177 100644 --- a/content/01_introduction/04_openworking.md +++ b/content/01_introduction/04_openworking.md @@ -4,8 +4,8 @@ This project has taken the following steps to ensure the work is discoverable, u | | **Level** | **Achieved via** | |---|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 1 | Open Access | A preprint to accompany and document this pilot work is available via the Open Science Framework [https://doi.org/10.31219/osf.io/zpxtm](https://doi.org/10.31219/osf.io/zpxtm) | -| 2 | Open Artefacts |
  • All research artefacts including this website are archived permanently at [Zenodo](https://doi.org/10.5281/zenodo.6497477)
  • Production code is available from [GitHub](https://github.com/TomMonks/treatment-centre-sim)
| +| 1 | Open Access | A conference paper of this work was presented at the OR Society Simulation Workshop 2023 [https://www.theorsociety.com/media/7313/doiorg1036819sw23030.pdf](https://www.theorsociety.com/media/7313/doiorg1036819sw23030.pdf) | +| 2 | Open Artifacts |
  • All research artifacts including this website are archived permanently at [Zenodo](https://zenodo.org/records/10054063)
  • Production code is available from [GitHub](https://github.com/pythonhealthdatascience/stars-simpy-example-docs)
| | 3 | Open Model |
  • The model has been developed using Free and open simulation software;
  • All mode code is reusable and adaptable under the permissive MIT license model;
  • The model is documented in detail within a online Jupyter Book;
  • Additional documentation organised by the [STRESS-DES checklist](../03_stress/01_objectives.md) within the Jupyter Book.
| | 4 | Open Environment | A [docker image is available via dockerhub](https://hub.docker.com/r/tommonks01/treat_sim) to enable replication of the OS and software environment and model execution on a local machine. | | 5 | Open Infrastucture | The model can be run online using BinderHub or Thebe | \ No newline at end of file From 21fcb79b430ed8f97434a849ee5730cdaf7e11fc Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 14:17:09 +0000 Subject: [PATCH 16/23] README: added case study description --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f13df6f..bd23bfd 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,11 @@ This code is part of independent research supported by the National Institute fo ## Case study model -To Add. +**This example is based on exercise 13 from Nelson (2013) page 170.** + +> *Nelson. B.L. (2013). [Foundations and methods of stochastic simulation](https://www.amazon.co.uk/Foundations-Methods-Stochastic-Simulation-International/dp/1461461596/ref=sr_1_1?dchild=1&keywords=foundations+and+methods+of+stochastic+simulation&qid=1617050801&sr=8-1). Springer.* + +We adapt a textbook example from Nelson (2013): a terminating discrete-event simulation model of a U.S based treatment centre. In the model, patients arrive to the health centre between 6am and 12am following a non-stationary Poisson process. On arrival, all patients sign-in and are triaged into two classes: trauma and non-trauma. Trauma patients include impact injuries, broken bones, strains or cuts etc. Non-trauma include acute sickness, pain, and general feelings of being unwell etc. Trauma patients must first be stabilised in a trauma room. These patients then undergo treatment in a cubicle before being discharged. Non-trauma patients go through registration and examination activities. A proportion of non-trauma patients require treatment in a cubicle before being discharged. The model predicts waiting time and resource utilisation statistics for the treatment centre. The model allows managers to ask question about the physical design and layout of the treatment centre, the order in which patients are seen, the diagnostic equipment needed by patients, and the speed of treatments. For example: “what if we converted a doctors examination room into a room where nurses assess the urgency of the patients needs.”; or “what if the number of patients we treat in the afternoon doubled” ## Online Notebooks via Binder From eb7c90236449adce9d1c77ea5b83004301f69eda Mon Sep 17 00:00:00 2001 From: TomMonks Date: Mon, 30 Oct 2023 16:17:27 +0000 Subject: [PATCH 17/23] README: updated binder link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd23bfd..90dfd56 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-ciw-examplar/HEAD) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pythonhealthdatascience/stars-simpy-example-docs/HEAD) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10054063.svg)](https://doi.org/10.5281/zenodo.10054063) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-360+/) From 4b447746f2574abd01893eea985d22dce1674d1f Mon Sep 17 00:00:00 2001 From: TomMonks Date: Sat, 6 Apr 2024 13:18:11 +0100 Subject: [PATCH 18/23] CODE: modified seed gen to use seedsequence --- content/02_model_code/04_model.ipynb | 610 +++++++++++------------ content/02_model_code/output/table_3.txt | 12 +- 2 files changed, 310 insertions(+), 312 deletions(-) diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb index 0a42e4b..33a1344 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": "afbcce62", + "id": "86a8d23e", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "c06da5e5", + "id": "3a24837c", "metadata": {}, "source": [ "## 1. Imports\n", @@ -27,7 +27,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "cf4ba1f1", + "id": "24a61cfc", "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "b676ca47", + "id": "2ce455ec", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "4b04735f", + "id": "a508b56e", "metadata": {}, "source": [ "## 2. Constants and defaults for modelling **as-is**" @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "ba6918d8", + "id": "27b4a53a", "metadata": {}, "source": [ "### 2.1 Distribution parameters" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "2cb99931", + "id": "12b72bfb", "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "c9200260", + "id": "bce2b5b8", "metadata": {}, "source": [ "### 2.2 Time dependent arrival rates data\n", @@ -126,19 +126,17 @@ { "cell_type": "code", "execution_count": 4, - "id": "c35cd84e", + "id": "91c24ca5", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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wKUo2gEAAAAAcCmKdgAAAAAAXIqiHQAAAAAAl6JoBwAAAADApSjaAQAAAABwKYp2AAAAAABciqIdAAAAAACXomgHAAAAAMClKNoBAAAAAHApinYAAAAAAFyKoh0AAAAAAJeiaAcAAAAAwKUo2gEAAAAAcKk0F+1//PGHrV692nn82WefWfv27W3kyJF25syZqxocAAAAAADXszQX7Q8++KD9+eefZma2detWu+uuuyw8PNzmzJljw4YNS9PfmjBhglWvXt1y5MhhkZGR1r59e9u4caPfPpJszJgxVrBgQcuaNas1bNjQ1q5dm9awAQAAAAAIOmku2v/880+rVKmSmZnNmTPH6tevb++99569+eab9vHHH6fpby1cuND69etnS5YssXnz5llSUpLFxsbaiRMnnH0mT55s06ZNsxkzZtjSpUstKirKmjVrZsePH09r6AAAAAAABJUb0voLkiwlJcXMzL777jtr06aNmZnFxMTYoUOH0vS3vv76a7/Hb7zxhkVGRtrvv/9u9evXN0k2ffp0e/zxx61jx45mZvbWW29ZgQIF7L333rMHH3wwreEDAAAAABA00nylvVq1avb000/b22+/bQsXLrTWrVubmdm2bdusQIEC/yiYY8eOmZlZnjx5nL+5f/9+i42NdfYJCwuzBg0a2OLFiy/4NxITEy0+Pt7vBwAAAACAYJTmon369On2xx9/WP/+/e3xxx+3kiVLmpnZRx99ZHXq1LniQCTZoEGDrG7dula+fHkzM9u/f7+Z2XmdAQUKFHCeO9eECRMsV65czk9MTMwVxwQAAAAAQCCleXh8xYoV/WaP95oyZYplzJjxigPp37+/rVq1yn766afznvN4PH6PJZ23zWvEiBE2aNAg53F8fDyFOwAAAAAgKKW5aL+YLFmyXPHvPvzwwzZ37lxbtGiRFS5c2NkeFRVlZqlX3KOjo53tBw8evOhQ/LCwMAsLC7viWAAAAAAAcIvLKtojIiIuemX7XIcPH77sF5dkDz/8sH3yySe2YMECK168uN/zxYsXt6ioKJs3b55VrlzZzMzOnDljCxcutEmTJl326wAAAAAAEIwuq2ifPn16urx4v3797L333rPPPvvMcuTI4dynnitXLsuaNat5PB4bMGCAjR8/3kqVKmWlSpWy8ePHW3h4uN1zzz3pEhMAAAAAAG5xWUV79+7d0+XFX3rpJTMza9iwod/2N954w3r06GFmZsOGDbNTp05Z37597ciRI1azZk379ttvLUeOHOkSEwAAAAAAbvGP7mk/deqUnT171m9bzpw5L/v3Jf3tPh6Px8aMGWNjxoxJa3gAAAAAAAS1NC/5duLECevfv79FRkZa9uzZLSIiwu8HAAAAAABcHWku2ocNG2bz58+3F1980cLCwuy1116zsWPHWsGCBW3WrFnpESMAAAAAANelNA+P//zzz23WrFnWsGFD69mzp9WrV89KlixpRYsWtXfffde6dOmSHnECAAAAAHDdSfOV9sOHDztLs+XMmdNZ4q1u3bq2aNGiqxsdAAAAAADXsTQX7SVKlLDt27ebmVnZsmXtww8/NLPUK/C5c+e+mrEBAAAAAHBdS3PRft9999nKlSvNzGzEiBHOve0DBw60oUOHXvUAAQAAAAC4XqX5nvaBAwc6/27UqJFt2LDBli1bZjfeeKPdcsstVzU4AAAAAACuZ2ku2rdv327FihVzHhcpUsSKFClyNWMCAAAAAAB2hfe0161b12bOnOlMQgcAAAAAAK6+NBfty5Yts9q1a9vTTz9tBQsWtHbt2tmcOXMsMTExPeIDAAAAAOC6leaivUqVKjZlyhTbuXOnffXVVxYZGWkPPvigRUZGWs+ePdMjRgAAAAAArktpLtq9PB6PNWrUyF599VX77rvvrESJEvbWW29dzdgAAAAAALiuXXHRvmvXLps8ebJVqlTJqlevbtmyZbMZM2ZczdgAAAAAALiupXn2+FdeecXeffdd+/nnn61MmTLWpUsX+/TTT/1mlAcAAAAAAP9cmov2p556yu666y57/vnnrVKlSukQEgAAAAAAMLuCon3nzp3m8XjSIxYAAAAAAODjsor2VatWWfny5S1Dhgy2evXqS+5bsWLFqxIYAACXUmz4F+n+Gtsntk731wBw5a7F94AZ3wUAAuuyivZKlSrZ/v37LTIy0ipVqmQej8ckOc97H3s8HktOTk63YAEAAAAAuJ5cVtG+bds2y58/v/NvAAAAAACQ/i6raC9atKiZmZ09e9bGjBljTzzxhJUoUSJdAwMAAAAA4HqXpnXaM2XKZJ988kl6xQIAAAAAAHykqWg3M+vQoYN9+umn6RAKAAAAAADwleYl30qWLGlPPfWULV682KpWrWrZsmXze/6RRx65asEBAAAAAHA9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k7M77rjD2Z6SkhLAqK7Mvn37nLZ88803koKvHXv27DmvDcFk5syZTvwPPvig/vrrr0CH9I999NFHatKkiUqXLq3ChQvr559/DnRIV4TcuFuo5YfcuFso5cfXm2++6eSqZ8+eSk5ODnRIV8XJkyedc9CGDRs625OSkgIY1ZVLz/M1rrS7gCSrXr269e/f35588kmLi4uzu+66K2iHYufLl8/atm1r0dHRNnToUJs2bZqdPHky0GFdsVDLj5ckS0lJsUqVKtlNN91k77zzjk2aNMlGjx4d6NCuiooVK1rNmjVt9OjRtnTpUuvQoYOZBecV96SkJKtSpYqVLFnSWrRoYZ9++mnQtSN79ux2yy23WGRkpLVv394+++yzQIeUJh07drTu3btb//797Z133rGBAwdaXFxcoMP6R0qUKGEZMmSw//znP1a/fn27/fbbbfHixYEOK83IjbuFWn7IjbuFUn581atXz9q2bWsjR460L774wrp06RJU5wAXkyVLFmvXrp01atTI9u/fb7fccouZBe8V9/Q8X6NodwGPx2NZsmSxfPny2ffff28//PCDeTwe69KlS9AVht4PWPPmza1jx442c+ZMGzt2rE2aNCloC/dQyo8vj8djGTJksP79+9uyZcssPj7e3nzzTRs/fryNHTs20OFdMe97sFKlSlamTBn74YcfbMaMGbZ48WJn+FWwFbz58uWzUqVKWfny5W3MmDHWsWNH++yzz4KmHZIsLCzM6tSpYx07drShQ4dap06dgqpwj4iIMEmWlJRkS5YssU8//dQGDRoUVCe4Z8+e9XtcuXJlK1WqlI0YMcJeffVVq1atmt15551Bd4JLbtwt2PNDbtwtlPNj9n/3RZcoUcKyZctmq1atss8//9y+++4769atW1CcA1yKx+Ox6tWr28qVK+3JJ5+08PBwq1y5spkFZ+GerudrV+V6PdJsz5492rRp03lDx2vUqKHXX39dcXFxKlOmjKpXrx6UQ7G3bdumPHny6JNPPtEnn3wij8ej0aNH68SJE4EO7bKEan7Wrl2rf/3rX1q3bp3f9qlTp+qhhx5SUlKSXnnlFWXMmFFjxowJUJRXZv/+/edtW7VqlVq3bq1FixZp7ty5ypUrlzp16uQ8H0zDy1avXq1ixYrp3Xff1eDBg+XxePTZZ59JCp6h8r/88oty5cqlb7/9ViNHjlTmzJmdNrjNX3/9pUOHDvm9R3bt2qWiRYtq0aJFWrJkibJmzapu3boFxZDSlStXql69epo0aZIWL17sbN+zZ4+aNWum3377TZLUpEkTFSpUyNVDSsmNe3MjhVZ+yI27hVp+fB08eFBJSUl+w8S3bdummjVr6rvvvtP333+vnDlzqmvXrkFzDnApPXr0UN++fbVw4UKVLl1aVapUcZ4LtqHy6XW+RtEeAH/++ac8Ho9uvvlmtWvXTj///LOOHDkiSXrqqad09913S0r9ci1durRq166ttWvXBjDiS1u/fr1mzJihJUuW+G2fMWOGcy/xa6+9Jo/HozFjxri+cA+1/HjFxcU599m0adNGt912m9auXauEhAStXr1aefLkcQ5wr776qrJkyaKhQ4cGOOrL481Zo0aNNG3aNK1evVqSdPz4ccXGxmrYsGGSpLlz5yoiIkJ33XVXIMP9Wxs3btT//vc/HT9+3NkWHx+v3r17a9q0aUpISFCfPn38DgRu64DYuHGjvv32W+3du9dv+yOPPKLRo0fr1KlT6tu3r8LCwlxXuK9du1Yej0fNmjVT//79FRcXp5MnT0qSHnroIY0YMUKS9MMPPyhr1qzq2bOnDh48GMiQLyk5OVm1atVy7hnMmTOnRowYoU8++USS1KlTJ/Xs2dPZv3Xr1sqSJct53+luQG7cmxsptPJDbtybGyn08uNrw4YN8ng8io2N1YgRI7Rr1y5J0unTp3XnnXdq1KhRkqRvv/1WOXPmVI8ePVx3DnAxq1evVrt27bRw4UJt2bLF2f6f//xHrVq1UmJiopYtW6ZSpUoFReF+Lc/XKNoDYOXKlfJ4PCpSpIjuuecexcTEqHv37nrllVe0Y8cORUREaO7cuZJSC60CBQqoUaNGOnPmTIAjP9+hQ4ecQrBGjRpq27atli5dqri4OK1fv1433XSTli9fLim1cM+cObOGDBni6sI9lPLjKyUlRcOGDZPH49GQIUN0zz33qEqVKmrfvr1+/PFH9e7dW127dtWpU6ckSS+88ILy5cvn+t72lJQUzZo1Sx6PR/ny5dPAgQOVM2dOjR8/XsuWLdOGDRt08803a/Xq1UpJSdH//vc/eTwede/ePdChX5DvJCYPPvighg4dqsTEREnShx9+qLx58+rAgQNKSEhQv379lDlzZs2ZMyfAUfvbu3ev04YOHTpo2LBhOnr0qFJSUvTRRx+pWLFiOnr0qCSpX79+yp49u6va8N5778nj8ahSpUqqW7euypUrp0GDBumXX37RggULlC9fPv3555+SpB9//FEej0d9+vRx9UnT3r17VbJkSdWvX18zZ87Uvffeq7p166p9+/aaMmWKcufOrZ9++snZ//bbb3fa6Cbkxr25kUIvP+TGvbmRQis/vt5//315PB7deOON6ty5s/Lnz6+nnnpKv/zyi1auXKnIyEjn4sT333/vnC+4XUJCgqpUqSKPx6NWrVqpUaNGzoTVycnJqlSpkjPKc8mSJSpXrpyKFy8e4Kgv7lqfr1G0X2PeL7/ffvvNKWA/+ugjvfTSSypcuLBuv/125ciRQz169FBCQoIk6fDhw9q8eXMgw76khx9+WB6PR0888YRatWqlli1bql69elq6dKnatGmjtm3b6vTp05Kkl19+WXny5HFtIRiK+TmXt6hdtGiRFi1apMmTJysqKkoFChRQkSJF/HLjLazcLj4+XjNnzlSmTJk0depUff/997rnnntUtmxZNWrUSMWKFdOrr74qSUpMTNRXX33l2tsatmzZojZt2sjj8WjkyJFq2bKlKlSooJEjR2rDhg3q2rWrpk6dKkk6cOCA7rvvPuXJk0fHjx93zRC5I0eOqFmzZs7omsqVK6tx48bq27evDhw4oKZNmzorFZw5c0Y9e/ZUgQIF/HqqA23GjBnyeDx66aWX9OKLL2rkyJEKDw/Xo48+qsyZM2vs2LHOwfmXX37R+vXrAxzx+RISEnTixAnt2bNHUuow2Hz58qlTp0769ddfdejQIfXs2VNNmjSRx+MJiitQErlxu2DPD7lxb26k0M6Pr5dfflkej0evvPKK3n77bT3yyCPKly+f7rnnHhUoUEDTp093jvkLFy507TmNr1OnTumDDz5Q0aJFVadOHX322WcqVaqUWrVqpYEDB2ratGlq3769jh07puTkZC1atEjVq1fX1q1bAx36BW3dulVt27a9ZudrFO3XkHdoh/e/ixYtUqZMmdS7d28dPnxYCQkJevHFF9W6dWu98847ktw35NWX71CVBx98UPnz59d///tfLV68WBMmTFCZMmV04403KioqSrt373b2dWshGGr58XVunA899JCyZ8+uTz/9VFJqoThz5kx9/PHHgQjvivm268SJE5o2bZo8Ho/eeOMNSdLmzZvVpUsXFStWTLNnzw5QlGm3c+dONW/eXMWKFdPevXv1wQcfqGfPnsqdO7fCw8PVoEEDZ2THwYMHL3g/f6DFx8erQYMGqlSpktauXasPP/xQ3bp1U3R0tCIjI1W3bl2nSE9MTAx4Gw4cOKBffvlF//vf/5yD6fjx45UpUyZNmzZNSUlJWrFihYYPH66bbrpJH374oST3ziewbt06tWnTRuXLl1fp0qWd3v2dO3cqMjJS9evX186dOyWlXq36448/AhnuJZEb9+ZGCq38kBv35kYKvfz4OnjwoDPqwXtRaNKkScqQIYNmzpyps2fPav369XrggQdUunRpJ1fBwNsRdPbsWUmpy/JlzZpVo0eP1tGjR/W///1PsbGxypIlizwejzMaIiUlxRn96VZbtmxR69atr8n5GkX7NXDuVeXk5GTnjbto0SJlzpxZd999t+Li4pzng4XvkPCePXsqR44cevfddyVJmzZt0vvvv++qYa8XEqr52bZtm7788ku/bd52SanDkrNkyaKPPvroWof2jyUkJDgnFb4nF6dOndKzzz4rj8ejZ599VlJqvvbt2xeQOC/X9u3bNWPGDI0fP97pSNm/f7/q1KmjG2+80bmfbcGCBerXr5/zGXOT7du367nnntPYsWP1/vvvS0rtSKlWrZrKlSunNWvWSJK+++47PfbYY65qw6pVq1SpUiXFxMQoU6ZMqlatmtOhMHHiRHk8Ho0fP955r7lpRMCFLF++XDly5NBDDz2kxx57TC1btvS7n2737t2KiopSvXr1/K7OuPFEndykcmNupNDKD7lxb26k0MuPr1WrVqly5coqXLiwsmfPrtq1azvnnFOmTFGGDBk0ZcoUSann3d7ngsGGDRvUq1cvNWjQQPfff78zd9IHH3ygsLAwPfroo86+n3/+uX744QdJ7s/buRME1q9fP93P1yja09mff/6pTJkyqVGjRvrwww/Pm7VbSr13KHPmzLr33nv9rki70ebNm/Xtt9/6bfMOfZekBx54QFmyZNG7777r2kkjfIVafrwOHTqk7Nmzy+Px6N5779Urr7zi9Nz66t+/v7JkyeIUisFg/fr1qly5sjp37qytW7fq8OHDfs/7XnGfPHmys92tB4CVK1eqcOHCqlWrlrJly6aCBQvqiSeekJQ67K9BgwYqVKiQMzzMO3GQm6xYsUIxMTGqVauW8ubNq2zZsunxxx+XlHoieOutt6p48eLO58tN3w0rVqxQeHi4hgwZop9++kmvv/66ChcurIYNGzr7TJ06VR6PRxMnTtSxY8cCGO3fW7dunTJnzqyJEyc627Zs2aLy5curTZs2zvtnz549ioqKUtOmTZ17I92G3Lg3N1Jo5YfcuDc3Uujlx9eKFSuULVs2DRo0SIsXL9Zzzz2nEiVKqEWLFs5V5unTp/tdjAgWK1asUEREhDp37qw2bdqoVKlSKleunFatWiVJmjNnjsLDw9WrV68AR3p59u3b58R+rm3btqlhw4bper5G0Z7Oli1bpooVK6pdu3bq0aOHChYsqGnTpp13j83ChQuVLVs2tW/f/rzZlt3i0KFDuuGGG+TxeNSvXz9NmjTpglede/furaxZs2r27NmuH9YSSvnxlZCQoN69e+vll1/WqFGj1LJlS8XExOg///mPli5d6rdvv3795PF49L///S9A0abNyy+/rCpVqqht27aqUaOGOnfurDlz5vgVgidOnNDUqVOVOXNmPf300wGM9tJWrVqlrFmzatSoUTp27Jg2btyo7t27KyYmxnkPbt26VY0bN1ahQoW0fft2Se4a7bFy5UqFh4dr5MiRSkhI0Pr16/Xoo48qZ86cmj9/vqTUW2Lq16+v4sWLu2qlhS1btihz5szO/fVS6v/b4cOHKzo62hlmKcl5P40ZM+a8pSDd4sSJE7rrrruUJUsWZ1Ze7+iaO+64Q507d5b0fyOk9u7dq8yZM+u2225zhi+6Bblxb26k0MoPuXFvbqTQy4+vzZs3Kzw83Fnhxuvhhx9W0aJF/UaCPv/88woLC3P1OY2vNWvWKGvWrH7xfvrpp8qbN6+eeeYZSak5++ijjxQeHq5+/foFKtTLsmfPHuXKlUt58+bV0KFD/SY49NqyZYsaNWqUbudrFO3pbP/+/erataszBPn1119XkyZN1LBhQ/Xq1UsrV650hrnMnz9fBQoUcCbXcKP+/ftr+PDhmjRpkurVq6fSpUtr2rRpzgzxXr1795bH43H90OtQy4+vwYMHKzY2VlLqlc2pU6fqrrvuUoECBTR+/Hi/L5zhw4e7csKZC1m8eLEqVqyo7du3a/ny5Ro7dqxy586t7t27a+rUqX5X1MeNG6c8efK4cijZzp07lT9/frVr185v+6JFi5Q1a1Z99913zrZt27apWbNmCg8P9zvhCrTdu3crOjparVu39tu+aNEi5ciRw29UzrFjx9S4cWNFRES44r2WkpKiF154QZGRkectbfjGG2+oRIkS2rNnj19n0NNPP62IiAgdOnToWod72ebOnet0aHnv59yyZYvCw8P14osvOvt5T3r37dunjRs3BiTWiwnV3Hz++edBnxsp9SR0xowZIZWfTz/9NCRyw2fH3fk518SJExUdHa3Ro0f73W765ptvqmTJktq9e7ffOc3EiRNde07j68iRIypXrpzKly9/3mjIGjVqaMiQIc7jpKQk/fe//5XH49GgQYOudaiXbd26dWratKneeustdezYUbGxsapbt65+//13v1G4O3bsUOPGjdPlfI2iPZ34fiFOnjxZxYsX14EDBySlTsjgXfLg1ltvVZMmTZz7vt18ZTolJUWjR492ejWl1HttevXqpZw5c2rSpEn6/PPPneeGDh3qipPzvxMq+fHyfsEnJyerWrVqeu6555znYmNjFR0drQoVKqhGjRqqVq1a0Awh89WnTx+1bdvWGdK3e/duFShQQB6PR5UrV9b48eO1YsUKSXLtwW3VqlWqUKGCbr/9dn311VfO9sWLFytnzpzn9eJu2bJFbdu2ddVyNb///rsaNWqk2NhYv7XWly5dqhw5cmjRokV++x89elStW7fWpk2brnWoF3To0CFNmzZN5cuXV9++fSWlznGRO3dujR071tnPt6fcre8nX19++aVatWqlunXr6quvvlLx4sX10EMPOc97vyPcdJvCueLi4kIiN+devfzmm2+CPjdSai6CPT8bN27UW2+95Tz++uuvQyY3U6dODercXEgofK+dKz4+XqNGjVLNmjWdQvbw4cPn5crXuUWwW40ZM8Yp0L3DxTdu3KiwsDBnMmevpKQkzZ071/U1Q6tWrZwRAevWrVP37t3VsGFD3Xrrrfrwww918OBBSalX5du0aXPVz9co2q+y3bt3O4Wd94vj5MmTatWqld58801J0n333aeiRYvqjz/+0Mcff6xOnTo5a/m5lffL/eTJkypevLgmTJjgPNe6dWtFRESoYcOGuvnmm1W1alVnogk38/bIhkJ+znXmzBklJSXpscceU58+fSRJ3bp1U4ECBbRjxw799ddf+vTTT9WkSZOg6I328h6UFy1apEaNGjlL7fXq1UvFihXTihUrNHToUNWoUUOFChW64H38brJkyRLV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0kSJiYmu/KzMnj1bZcuW1VNPPaWbb775vCvuR48eDYrcxMfHq0yZMipVqpSk1O/bO+64QzVr1lTGjBnVpEkTvfDCC87+33zzjetz8/rrr6tZs2aSUtszbtw49ezZU927d3cKJu8VdzfnZ8uWLcqVK5ffe+s///mPihYt6tzS59tJ/O2337o6NydOnFDLli39Rmc999xzzvJZviOJ3J4br6+++kp16tTxWzN+/vz5zhK2vmt6B8Nnx+vMmTPq1KmT7r//fmfbzz//rJ49eypz5szO8dJ7xf3WW29Vv379guJK++bNm505he6//36/Sdl8458wYYIqV66sYcOGnTcq1E3WrFmjBg0aOKMDpk2bpuTkZCUnJyslJUUJCQlq0aKFSpQo4cyddK1QtP9Da9euVcaMGZ1e2+PHj6tz587q0KGDEhIS/Aqk+fPnKzw83NVLax04cEBlypRxDmp79+71u9/ba+7cuSpfvryzLJWbhyY99dRT6tq1q9+2/v37y+PxqESJEtq3b5+k1AO02/Pja8OGDbrpppv8JpI7duyY3n//feXJk8fv4NCyZUvVrVs3KA4AcXFxatGihbp166Z69eqpcOHC+v777y/4Hps1a5ayZ89+0XUz3WDv3r2qXLmy320z+/btU0REhP773/9K+r8Oh19//VWNGzdWvXr1NG/evIDEeyFxcXFq3ry57rzzTjVp0kRVqlTRRx99dMHC/eeff9Ydd9yhSpUq6csvvwxUyI6zZ89q0qRJ6ty5s/766y8n1i1btqhQoUJOx503B0eOHNG4ceNUp04d7d+/P2BxX0pCQoI+++wzvytMzzzzjDwej5o3b65bb71V+fLlc4bwSanHHzetPHCuzZs3q1u3bjp48KDGjh2rsmXL6umnn1bfvn319ttvS0rtVHF7bk6dOqVXXnlF4eHhGj58uNq0aaPY2Fh9+OGH+vDDD9WnTx8VK1ZMs2bNcn7H7bkZO3as7r77bklSzZo1FRsbqzvuuENNmzZVxowZnZE1f/31l6vz8/PPP593LiNJ5cqV0x133OE8Pve8za25OXTokMqVK6d3333X2TZs2DCVLFlS1apV00033eR03rk9N16fffaZoqKi/Iqh33//Xc2bN9fUqVOVJ08evw5JN+fH18mTJ1WlShU99dRTftt37NihXr16KU+ePFq4cKGk1I6/AQMGqGnTpq6fS+nkyZPq16+funbtqjlz5ihz5szq1q3bRQv3SZMmqVixYnriiSdcWTesW7fOWdLt888/19SpU+XxeM67kDJx4kS/eZOu1cUwivZ/IDk5WaNGjdLEiRP9tr///vvKkCGDc4+tbzJvu+02NW7cWGfOnHFlr+DPP/+sSpUq+X2p33nnnbrnnnvUq1cvjRs3ztneqFEj1alTJxBhpknv3r39blmQpLffflsPPvigatSooXr16jlX39yeH187duxQRESE38mflPol+vrrr+vGG290bm2YMWOGatas6eolXbw2bNigRx99VD/88IMkqUmTJucV7t7cHDp0SGXKlNGoUaNceQCQpDlz5qhevXrOsLEzZ87o9OnTqlq1qt/JlrdNP/74o1q3bu2qE5Ht27fr4Ycf1vfff6/Tp0+refPmqlq16kUL9/nz56tr166u6U1/8cUX9e9//9tv244dO5QjR44LTpoZFxfn6nksJPlNsjh//nxlyZJFn332mZKTk3X06FENGTJEtWvXdvUJuq+DBw+qTJky+vPPP52Z4/PkySOPx+M3WeaRI0dcn5uzZ8/q9ddfV8aMGXXrrbf6rbW8fft2Z7Kic2/9casZM2Y4HQ2tWrXSkSNHnMm/Bg4cqGzZsjmf9WDIj5f3O+u1115TqVKl/G71c/vxX0o9lrRo0UK1atXSDz/8oGHDhilr1qyaOXOmPvroIw0YMEBhYWFauXKlpODIzR9//KGKFStq2LBh+uKLL7R06VLlzZtXI0aM0OnTp1WzZk3NmDEj0GFekXvvvVe33377eStKbNiwQR06dFDnzp2d5xISEpyZyN3s+PHjevPNN/Xee+9JSq0h/q5wf/bZZ/2G0bvFkSNH1KZNG7/bSCSpU6dO6tatm6T/a0dKSopuueUWv1Eu1wJF+z/kvW9I8i/OY2Nj1bFjx/Nmr/7444/9JnFxm6VLlypz5sxOsffUU0/phhtuUO/evdWvXz9lzZrVefN++OGHuuWWW1z7xeI96E6ZMkX16tXTt99+q+TkZG3dulV58uTRc889p08++UQ333yzc1Lo9vz4io+PV7t27XTXXXedF3NcXJxuu+02ZzmUo0ePateuXYEIM83Onj2r9evX+32eGjdurMKFC+u7775zTrS8z0+ZMsXVM+AfOXJE48ePdx5742/SpIn+9a9/+e3rfc5tSwuePXtW27Zt81tFonnz5qpSpYrmzJnjFB/ee929+7iF7wm499/Hjx9X6dKl/WYm/uqrr1z7ffZ3zl1G75lnnlHVqlX9cuJWycnJOnPmjBo2bOjMKdKpUyflyJFDJUqU8JuEKlicPn1ac+fO1dy5c8+7CnPvvfeqYcOGQVEYSqmjIJo3b67q1aurZcuWkv7v+3fnzp0qXry439XPYLNp0yblz5/f73s6WHz55ZeKjY3VbbfdpsKFC+v11193nktISFCJEiU0adKkAEaYdq+//rpq1KihyMhIFShQwG+UWqNGjZzh/8HA9zP+wgsvqFSpUnr//ffP+15++eWXFR0dHTSdrL6OHDni9/jHH39U5syZ1bVrV6dwT05OdjqP3GrLli2qXbu2M8eAN3dDhw5VixYtnG3en169eqlhw4Z+t3KkN4r2dDJ+/HgVL17cKZSCYViylDr8cODAgfJ4PGrZsqU8Ho/fpFJffPGFwsPDtWrVKh04cOCCkzS4zf79+9WgQQPdfPPNqlixorJly+YUs6dOnVLWrFmdddjdzHf9da+vvvpKOXPm1MCBA51h/l4jR45UjRo1dOLEiWsa5z9x7smt74HNW7h///33OnHihEaNGqWpU6de6xDT5NzPve8BvFGjRn5D5d58801nGRE3n8x7C/TTp08rNjbWueJ+/PhxjRw5Uo8//rgk97TBNw7f99fx48d14403OrdWjBgxQjExMUHTufV3SzY9/PDD6tGjh1/Hsts99NBD+uCDD9StWzdFR0dr3rx5mjRpkqKiovxGebmdNxeJiYl+V9NTUlKUlJSku+66S4899phrPiN/JyUlRWPGjFHu3LlVuHBhv6X54uLiVKlSpfMmQHSrczvwvN8JTz31lGJiYly58s3fOXv2rPbv36/SpUtr0aJFklLbdvjwYVWrVu280Xhu5ZubrVu3at26dX63AB0/flxNmzb1mzPKrXzPu3xHod15552KiorS3Llz/S7qLV++XGXKlHGWsQ0G556v+X6evIV7t27dtHXrVj3yyCOKjY3VsWPHXP295zths/e7+7nnnlO7du3O23fPnj3XPF8U7VeZ98OZmJioYsWKOcVhMImPj9fatWs1b9481a1b1++q3/fff6/SpUu7+sqmL28+Dh48qHfeeUfPP/+8Pv74Y0mpXzjr169XlSpVXN8DuHnzZk2ZMsUZ3u5dqk6S3nvvPWXMmFEPP/yw33JP999/v+666y7XD8E8dOjQJQsl38K3cePGKlasmFq1aqWMGTO68l72y21PixYt9Pzzz0uSRo0aJY/HEzQnjL6Fu/cKXKNGjZQlSxZXfJbOPSm40P1m+/fvV65cubRixQo99dRTypIli6tXwvD9HPiuSnLu0obeDq3IyEi/UQRucancjBw5Uh6PR8WLF3e+y/bt26dnn33W1Sezac1NdHS0NmzYcE1jvFzn5sd3BuuxY8cqIiJCderU0Z9//qlNmzZpzJgxKlmypN9QWDe53Nz8+uuvioiIcOZPcKNzc3Nup3BsbKyefPJJxcfH68yZMxo9erSKFy/umtuULuRC+Tl8+PB576d9+/bpiSeeUGRkpKu/C6TUlT3atWvndzHI9wJE69atVaRIEWeY+PHjxzV48GDdfPPNfh1ibnTuCjIXKsC9efzpp5+ULVs2FS5cWJkyZXL1LP/n3l7pe1yaOnWq363AY8eO1ciRIwPS+UDRnkbnJtb72HcoqDfZEydOVLly5Vz/BePL903422+/qXTp0n6F4BNPPKHq1av73aPnJufm51IjHJKTkzVixAjddNNN512ldpNNmzYpT548ioyM1Lhx45x70nwL9zlz5qhkyZKqXr26mjRp4gwtdUMBdSnr1q1T8eLFNXDgQO3YseOi+/nmNVeuXMqbN6+zzJubXE57fIv2119/XRMmTFB4eLjfsiGBdrHvOd8OIO+2Y8eOKSIiQnny5LnmM6mey3t1wzt8Tfq/OPfu3es3h8CRI0dUsWJFtW7dWlmyZHHV/3+vVatW+d0zd/bsWef9s3379vMmofryyy/14IMPqmDBgq47QbpUbvbs2aO5c+fq6NGj6tKly3nzDLhxvoq05ubzzz/Xfffdp/z587suN9Kl87Nz50599tlnklKH8dapU0cej0fly5dXsWLFXNeetObGq3fv3s4a527yd99r77zzjqTUVX2qVaumIkWKqEWLFoqKinJdbqS052f79u3q27evIiMjXdkeX1u3blXJkiUVHh6uNm3a6NNPP3We8y3c+/Xrp6pVqyosLEw1a9ZUvnz5XN+2i60gc6Hi1VsHtWvXTnny5PGbMNktLqcDQkq9B79WrVqSUmsgj8fjVxddSxTtl2nTpk3O1WXvl6Xvl0z79u3PK5B++uknRUdHu7ogvFgv9O7du7Vnzx7Vr19fLVu2VN++fdW7d29FREQE/MT8Qi4nP75F3sqVK3XvvfcqIiLC1V+Ux44dU4cOHXT33Xerb9++qlKlisaMGXPBwv3333/XzJkz1blzZ40YMcKVV9l87d69W9WrV1eZMmVUrFgxjRw58pKF+6lTp9SnTx+FhYU59726SVrb065dO2XPnt1VV3h37tzpN5pD+r/P0Y4dOzR48GC/UQSnTp3Sgw8+qPDw8IDnZPXq1cqZM6ffjPzek4rt27crOjra73aEQ4cOKW/evIqIiHBlB9Dx48dVsGBBeTweZ+Zur61btyoqKkoPPPCA34nG0qVLNWnSJNeN2Lic3IwePVpScCxJeSW5WbJkicaMGePKUWppyY+U+t2wcOFCrV692nXnN1eSGze/5y4nN2PGjJGU2o6PPvpIjz/+uJ577jlXXjC6kvycOnVKixcvduXkZb7Onj2r4cOHq3379vrss8/UpEkTNW/e3K9w971daf369frwww/1v//975LnCm7wdyvIXGgE1fDhw+XxeFxZM1xOB4T3HOi5555T586dNWnSJIWFhQWsYJco2i/Lrl275PF45PF4nOG43hPZrVu3qnDhwurTp4/f73gTf+4skW6Qll7Or776Sr1791b16tXVvXv3gJ+YX0ha85OSkqJt27Zp9OjRrmyPrxMnTmjcuHH66KOPJKUu53Khwj0Yff7552rVqpX+/PNP/etf/1KhQoUuWeju379fd911l7Mqg9tcbnu897U2bdpUHo/HNZ0r27Ztk8fjUcWKFZ3JcLwHsm3btikqKuq8mVITEhLUvn17Z+nHQElJSVGfPn3k8XiUMWNGzZ4923lu9+7dypw5s/r06XPe/azDhw935ZU1KfU7rE+fPmrUqJGio6PVvHlz57nJkyerS5cuF7wy4Lb5U64kN253pblx461KoZafK82NG6UlN27uePAVSvm5kF9//VVvvfWWpNT1vhs3bnxe4e7G74G/czkryPjmLTExUf/9739deQtjWjsg/v3vf8vj8SgiIiLgF1go2i/Dhg0bVKpUKRUqVEjh4eFO0k6dOqWyZcuqa9euQfMlc7m9nL6FYGJiopKSklw7odGV5idYDnLx8fF+8Q8dOlRVqlTR6NGjnfufTp8+HXQHgn379jnLuknS9OnTnULX9x483wn43PoelC6/Pd7P1v79+111X+tnn32m7Nmzq0yZMqpatapzT+GxY8dUpEgR3XfffZe8fy3QPvroI9WtW1cPPPCAPB6P0/F47NgxjR071u/zHiyf/ZkzZ6pw4cL68MMPVbJkSWcGWym4TvzSkptgESq5kUIvP+TGPROBXkgo5edc5/5/X7ly5QWvuHvXZA8Wl7uCjG+nsVvfg5fTAeFrzpw58ng8rrjIR9F+GY4eParWrVurR48e6t+/v99w1p07dwbVAS0tvZwXm5XYbUIpP5fi+2U4ZMgQ54r7vn379Oijj+r22293fa7+zvPPP+8Uut51yp9//nlX9tZejou1x43Dsbdt26abbrpJPXv2VOfOnVW1alVnsqZffvnFde+tc1dTOHLkiG688UYNGTJEEydOlMfjcWZNdlvsadG2bVs99thj+vLLL5U/f36/E1y3XVX3IjfuzY10feSH3LhbsOYnLbz5WbFihVO4f/zxx3rkkUeUO3duHTp0KChz+HcryIwaNSrAEV7a5XZA+Bbw3pGtgUbRfgm+H6bvvvtOMTEx+uSTT9S1a1dlzZrVmSzHLVeaLleo9HKGan4uxTc/Q4cOVfXq1VW+fHlly5bNlRNpXS7fjhXfoeVdunRRjhw5XHeP7t8Jpvb4fj5efPFFVa9eXW+++aaaNGmiatWqOYW72z5HvsvleL3//vu67bbbtHz5cg0ePFgej0fvv/++JLl+COmaNWvUq1cvrVixwrlPOCkpybmfLiUlRd98843y58+v1q1bO7/ntrxI5MbLjbmRQis/5Ma9uZFCLz9/59y5ErztWLlypZo1a6bcuXMrR44cAb0v+mpw+woyl+vvOiBGjhwpyT2j8yjaL2Dz5s369ddf/YbiHj58WF27dtVrr72mgwcPqmPHjgoPD3c+eMH2BRPMvZyhnJ+0rE6QlJSkm266SREREUFxJfrvluHyfd9Nnz5dHo9HuXLlcu1EgcHenl27dp23NN3y5cvVunVr/fTTT/r555916623qnr16tq7d68k93w3rF27Vnnz5tWTTz7pzGotpZ4YVapUyRl6OGjQIHk8Hn3wwQeS3HtlKj4+XjfeeKM8Ho86dOigpk2bavbs2Tp79qzi4+MVExOjl19+WZL09ddfq1ChQqpbt26Ao74wcuPe3EihlR9y497cSKGXnwu5nCUFvfnp3LmzcufO7cqZ1M8VrCvIXIlg6oCgaD/H7t27nUnNHnnkEU2cONF57l//+peKFy+uxMREHThwQJ06dVKuXLkCPgnTpYRaL2eo5ccrrasTJCYm6v7771eWLFlcfwA4fvy48+9zl6vZt2+f/vvf//oNCUxKStLAgQMVERHhmknafIVCe7Zt26ZMmTIpT548mj59ujMzsST17NlTzZo1kyTNnz9fDRo0UO3atS+59vy1dPbsWT366KPOpHl33HGHqlSpooULF+rkyZP697//rZo1ayohIUFHjhxxZrD1TuboRgkJCXrppZeUN29etWrVSm+88YYKFSqk9u3ba+LEiZo0aZK6dOmiU6dO6ezZs/r8889VunRp55YLtyA37s2NFHr5ITfuzY0UWvnxdSVLCj7++OOunUndVzCvIHMxodQBQdF+jjVr1qh27dryeDwaM2aMqlatqrp162ry5Mnas2eP2rZtq9dee01S6hu4RYsWKliwoE6fPu263s5Q7OUMpfx4XcnqBJI0cOBA13dIrFu3ToULF9Ybb7zhbPNdriZ//vx+HS9S6gQtGTNmPG+tZjcIhfakpKTo448/VrFixZQpUyYNGjRIFSpUUMeOHTVv3jytXr1abdu21eLFiyVJ3377rSpVqqTGjRv7LTEYSFu3blW3bt2UNWtWLViwQEOGDFFsbKwqVqyoAQMGqHLlys68FgcPHtTo0aNd02Hiy/s59/4/femll5QhQwa9+uqr2rdvn9555x1Vq1ZNmTNnVpYsWZyT2aSkpAsOo3UDcuPe3EihkR9y497cSKGbH+nKlqyTUs/z3H6BJZhXkLmQUOyAoGg/R0pKilatWqVatWqpWrVqOnTokF588UV17NhRefPmVc6cOdWhQwfnA7lr1y5nlmW3OXnypGbOnBlSvZyhlB+vtM5+74ai6XIkJSXpoYceksfjUaFChZwOIknas2ePsmbNqoceeuiC7fnrr7+uZaiXJZTak5CQoA8++EA333yz2rVrp/379+uBBx5QixYtVLhwYUVEROiJJ55w9p8/f77fDPiBEB8frz179jhD9f/66y/FxsaqSJEi2rFjh/766y+99tpruummm5QhQwZ9++23zu+65X40X3/++acefvhhtWnTRoMHD3bWVPYuLzN58mRn33fffVdff/11oEL9W+TGvbmRQis/5Ma9uZFCLz/nupIl69w6cvVcwb6CjK9Q64Dwomj34fsFuHr1at18882q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c1AWiUlJSXrttdeCrrPrYpYuXSqPx6O1a9cGOpR/bM2aNbrzzjtDoi2haOXKlWrdurXfRYpgdqHbz4JZSkqKqy9GpEVcXJz2798fFJNqSlKTJk00ZswYSXLuvR82bJg6duyoihUr6qWXXpLk/iUFfXlXwbn//vudbTt27NBDDz2kKlWqOO2VUq+4u20FmXNd7HzNt3B36xK26em6Ktolem3dLth6baVLHwAqVaqkF198UceOHVPRokWDZvb7vzsA+LajS5cuqlWrlqvvzdu/f79uvfVWNWnSRPny5dMdd9zhdyDw7UTp2rWra9tzuUujJSUlKS4uTrly5VLGjBld3fH1d4KhgystQuVEXQq+yTOvN8E0YSOQ3lJSUnTixAnVq1dPXbt2dW6L3b17t4oWLarXX39d9957r+rVq+f8TjAsWefVrFkz9ezZU9L/HTf37t2rAQMGqFatWnrzzTedfcePH++6FWS8/u58zbdwd+MStunpuivavei1da9g6bW93ANA/fr1lZSUFFSz30t/fwB46623JEnff/+9YmJinIlc3Oirr75Sly5d9Ntvv+nXX39Vnjx5zjsQeL8Pvv/+exUqVMi17bmcpdHOnj2rQ4cO6euvvw6ZK20AAPxTP/30kzJkyKD69eura9euypYtm3r16iUpddm97NmzB9VxMykpSWfOnNF9992nDh06OCteeM9pduzYoZYtW6pt27ZBsYLM5Zyv+RbublzCNr1ct0U7cLX83QEgW7ZsOnDggOtnv/e63APAbbfdJim1iGzcuLFrJmm7kIMHD/otffbLL784BwLftc2l1NESLVq0cHV7pEsvjTZw4EB16NAhaDqIAAC4Vn777Tfde++96tWrl1544QVn+2effaabb775vPMCNzp3/qoFCxYoY8aMev75551t3vO23377TR6PR8uXL/dbYcaNLvd8zXekl1s7IK42inbgKrjUAeCmm24Kii+UKzkAeO+TduOolYtNyOiNdcmSJX49uGfOnNG//vUv/fbbb649mJ3rYkujZcyYMWTuAwcA4Gq70HF+yJAhatiw4UXnvXGLC60gI6Uu7ZYhQwa9+uqrftvXrVuncuXKaePGjdcyzMt2JedrL774or766itJ7u2AuNpuMAD/WPXq1W3WrFnm8Xj8tv/4448WFRVlN9zg7o/an3/+aZ9//rndc889Fh0d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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -156,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "042fe01c", + "id": "bd8ee67f", "metadata": {}, "source": [ "### 2.3 Resource counts\n", @@ -167,7 +165,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "aa90c0b3", + "id": "39abaf23", "metadata": {}, "outputs": [], "source": [ @@ -185,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "d48695f8", + "id": "7b4a7254", "metadata": {}, "source": [ "### 2.4 Simulation model run settings" @@ -194,7 +192,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "a852f866", + "id": "8a906075", "metadata": {}, "outputs": [], "source": [ @@ -215,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "012d6c7a", + "id": "6db0a9e3", "metadata": {}, "source": [ "## 3. Utility functions" @@ -224,7 +222,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "b464a3b9", + "id": "fe5af794", "metadata": {}, "outputs": [], "source": [ @@ -245,7 +243,7 @@ }, { "cell_type": "markdown", - "id": "0764a6aa", + "id": "fb95dd32", "metadata": {}, "source": [ "## 4. Distribution classes\n", @@ -263,7 +261,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "f87bb863", + "id": "4ddc3f8b", "metadata": {}, "outputs": [], "source": [ @@ -389,7 +387,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "b0d71dc9", + "id": "6c2a6318", "metadata": {}, "outputs": [], "source": [ @@ -471,7 +469,7 @@ }, { "cell_type": "markdown", - "id": "f8185a1c", + "id": "5065a2d7", "metadata": {}, "source": [ "## 5. Model parameterisation\n", @@ -482,7 +480,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "350d3be2", + "id": "a5cf8450", "metadata": {}, "outputs": [], "source": [ @@ -627,11 +625,13 @@ " '''\n", " Create the distributions used by the model and initialise \n", " the random seeds of each.\n", - " '''\n", - " # create random number streams\n", - " rng_streams = np.random.default_rng(self.random_number_set)\n", - " self.seeds = rng_streams.integers(0, 999999999, size=N_STREAMS)\n", - "\n", + " ''' \n", + " # MODIFICATION. Better method for producing n non-overlapping streams\n", + " seed_sequence = np.random.SeedSequence(self.random_number_set)\n", + " \n", + " # Generate n high quality child seeds\n", + " self.seeds = seed_sequence.spawn(N_STREAMS)\n", + " \n", " # create distributions\n", " \n", " # Triage duration\n", @@ -694,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "a57745a1", + "id": "cc5b08c8", "metadata": {}, "source": [ "## 6. Patient Pathways Process Logic\n", @@ -705,7 +705,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "b610fe10", + "id": "941860ac", "metadata": {}, "outputs": [], "source": [ @@ -837,7 +837,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "64a3c4b0", + "id": "806225fc", "metadata": {}, "outputs": [], "source": [ @@ -988,7 +988,7 @@ }, { "cell_type": "markdown", - "id": "7ced359d", + "id": "1e07e8b1", "metadata": {}, "source": [ "## 7. Main model class\n", @@ -999,7 +999,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "e857dc80", + "id": "903bb261", "metadata": {}, "outputs": [], "source": [ @@ -1141,7 +1141,7 @@ }, { "cell_type": "markdown", - "id": "ae2a09c1", + "id": "5dc2be06", "metadata": {}, "source": [ "### 8. Logic to process end of run results.\n", @@ -1152,7 +1152,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "4f406316", + "id": "1791e86b", "metadata": {}, "outputs": [], "source": [ @@ -1343,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "f4b727c7", + "id": "524da74a", "metadata": {}, "source": [ "## 9. Model execution\n", @@ -1356,7 +1356,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "fd995b9f", + "id": "523ea929", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1404,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "28c0ae8d", + "id": "6c003a8f", "metadata": {}, "outputs": [], "source": [ @@ -1442,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "0ec27980", + "id": "f279fa09", "metadata": {}, "source": [ "### 9.1 Single run of the model\n", @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "2064d8bc", + "id": "837012af", "metadata": {}, "outputs": [ { @@ -1495,67 +1495,67 @@ " \n", " \n", " 00_arrivals\n", - " 231.000000\n", + " 209.000000\n", " \n", " \n", " 01a_triage_wait\n", - " 41.885983\n", + " 16.622674\n", " \n", " \n", " 01b_triage_util\n", - " 0.603647\n", + " 0.527512\n", " \n", " \n", " 02a_registration_wait\n", - " 103.039526\n", + " 111.161345\n", " \n", " \n", " 02b_registration_util\n", - " 0.870552\n", + " 0.801061\n", " \n", " \n", " 03a_examination_wait\n", - " 27.735811\n", + " 24.927965\n", " \n", " \n", " 03b_examination_util\n", - " 0.872689\n", + " 0.851285\n", " \n", " \n", " 04a_treatment_wait(non_trauma)\n", - " 158.281113\n", + " 172.435861\n", " \n", " \n", " 04b_treatment_util(non_trauma)\n", - " 0.898896\n", + " 0.845652\n", " \n", " \n", " 05_total_time(non-trauma)\n", - " 244.927536\n", + " 248.848441\n", " \n", " \n", " 06a_trauma_wait\n", - " 156.036116\n", + " 240.846123\n", " \n", " \n", " 06b_trauma_util\n", - " 0.918339\n", + " 0.952202\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 115.173959\n", + " 87.200272\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.904684\n", + " 0.740196\n", " \n", " \n", " 08_total_time(trauma)\n", - " 379.594387\n", + " 422.158076\n", " \n", " \n", " 09_throughput\n", - " 161.000000\n", + " 150.000000\n", " \n", " \n", "\n", @@ -1563,22 +1563,22 @@ ], "text/plain": [ "rep 1\n", - "00_arrivals 231.000000\n", - "01a_triage_wait 41.885983\n", - "01b_triage_util 0.603647\n", - "02a_registration_wait 103.039526\n", - "02b_registration_util 0.870552\n", - "03a_examination_wait 27.735811\n", - "03b_examination_util 0.872689\n", - "04a_treatment_wait(non_trauma) 158.281113\n", - "04b_treatment_util(non_trauma) 0.898896\n", - "05_total_time(non-trauma) 244.927536\n", - "06a_trauma_wait 156.036116\n", - "06b_trauma_util 0.918339\n", - "07a_treatment_wait(trauma) 115.173959\n", - "07b_treatment_util(trauma) 0.904684\n", - "08_total_time(trauma) 379.594387\n", - "09_throughput 161.000000" + "00_arrivals 209.000000\n", + "01a_triage_wait 16.622674\n", + "01b_triage_util 0.527512\n", + "02a_registration_wait 111.161345\n", + "02b_registration_util 0.801061\n", + "03a_examination_wait 24.927965\n", + "03b_examination_util 0.851285\n", + "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" ] }, "execution_count": 17, @@ -1605,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "79f8e97b", + "id": "2755b05f", "metadata": {}, "source": [ "### 9.2 Multiple independent replications\n", @@ -1616,7 +1616,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "74030239", + "id": "326749e0", "metadata": {}, "outputs": [ { @@ -1625,8 +1625,8 @@ "text": [ "Running multiple replications => done.\n", "\n", - "CPU times: user 2.09 s, sys: 12.9 ms, total: 2.11 s\n", - "Wall time: 3.46 s\n" + "CPU times: user 1.5 s, sys: 17.2 ms, total: 1.51 s\n", + "Wall time: 4.44 s\n" ] }, { @@ -1690,60 +1690,60 @@ " \n", " \n", " 1\n", - " 218.0\n", - " 28.009290\n", - " 0.542454\n", - " 128.490438\n", - " 0.854615\n", - " 28.478642\n", - " 0.847430\n", - " 145.414321\n", - " 0.853189\n", - " 247.872229\n", - " 8.595360\n", - " 0.368908\n", - " 214.198331\n", - " 0.976808\n", - " 399.200311\n", - " 154.0\n", + " 230.0\n", + " 24.280943\n", + " 0.613250\n", + " 103.242292\n", + " 0.854504\n", + " 31.089680\n", + " 0.861719\n", + " 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", " \n", " \n", " 2\n", - " 188.0\n", - " 3.240469\n", - " 0.475390\n", - " 63.307540\n", - " 0.749027\n", - " 16.328179\n", - " 0.795921\n", - " 134.202786\n", - " 0.846795\n", - " 178.799154\n", - " 65.146932\n", - " 0.838521\n", - " 231.603567\n", - " 0.778634\n", - " 392.064964\n", - " 139.0\n", + " 227.0\n", + " 57.120114\n", + " 0.621348\n", + " 90.002385\n", + " 0.836685\n", + " 14.688492\n", + " 0.847295\n", + " 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", " \n", " \n", " 3\n", - " 233.0\n", - " 13.040936\n", - " 0.528681\n", - " 149.636381\n", - " 0.839994\n", - " 18.400280\n", - " 0.847310\n", - " 169.503295\n", - " 0.827088\n", - " 260.804457\n", - " 78.130137\n", - " 0.816547\n", - " 251.835736\n", - " 1.188287\n", - " 369.276920\n", - " 157.0\n", + " 229.0\n", + " 28.659383\n", + " 0.573698\n", + " 112.242503\n", + " 0.848514\n", + " 21.374092\n", + " 0.856306\n", + " 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", " \n", " \n", "\n", @@ -1752,39 +1752,39 @@ "text/plain": [ " 00_arrivals 01a_triage_wait 01b_triage_util 02a_registration_wait \\\n", "rep \n", - "1 218.0 28.009290 0.542454 128.490438 \n", - "2 188.0 3.240469 0.475390 63.307540 \n", - "3 233.0 13.040936 0.528681 149.636381 \n", + "1 230.0 24.280943 0.613250 103.242292 \n", + "2 227.0 57.120114 0.621348 90.002385 \n", + "3 229.0 28.659383 0.573698 112.242503 \n", "\n", " 02b_registration_util 03a_examination_wait 03b_examination_util \\\n", "rep \n", - "1 0.854615 28.478642 0.847430 \n", - "2 0.749027 16.328179 0.795921 \n", - "3 0.839994 18.400280 0.847310 \n", + "1 0.854504 31.089680 0.861719 \n", + "2 0.836685 14.688492 0.847295 \n", + "3 0.848514 21.374092 0.856306 \n", "\n", " 04a_treatment_wait(non_trauma) 04b_treatment_util(non_trauma) \\\n", "rep \n", - "1 145.414321 0.853189 \n", - "2 134.202786 0.846795 \n", - "3 169.503295 0.827088 \n", + "1 152.483394 0.890904 \n", + "2 120.245474 0.912127 \n", + "3 94.019885 0.868888 \n", "\n", " 05_total_time(non-trauma) 06a_trauma_wait 06b_trauma_util \\\n", "rep \n", - "1 247.872229 8.595360 0.368908 \n", - "2 178.799154 65.146932 0.838521 \n", - "3 260.804457 78.130137 0.816547 \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", "\n", " 07a_treatment_wait(trauma) 07b_treatment_util(trauma) \\\n", "rep \n", - "1 214.198331 0.976808 \n", - "2 231.603567 0.778634 \n", - "3 251.835736 1.188287 \n", + "1 239.889716 0.929002 \n", + "2 91.161308 0.699481 \n", + "3 156.650713 0.699029 \n", "\n", " 08_total_time(trauma) 09_throughput \n", "rep \n", - "1 399.200311 154.0 \n", - "2 392.064964 139.0 \n", - "3 369.276920 157.0 " + "1 393.725433 157.0 \n", + "2 406.292519 156.0 \n", + "3 524.843569 161.0 " ] }, "execution_count": 18, @@ -1807,28 +1807,28 @@ { "cell_type": "code", "execution_count": 19, - "id": "ebd4e503", + "id": "5006e28b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "00_arrivals 227.84\n", - "01a_triage_wait 34.63\n", - "01b_triage_util 0.60\n", - "02a_registration_wait 105.67\n", + "00_arrivals 227.72\n", + "01a_triage_wait 35.24\n", + "01b_triage_util 0.61\n", + "02a_registration_wait 105.57\n", "02b_registration_util 0.84\n", - "03a_examination_wait 24.79\n", + "03a_examination_wait 25.55\n", "03b_examination_util 0.85\n", - "04a_treatment_wait(non_trauma) 131.76\n", + "04a_treatment_wait(non_trauma) 136.66\n", "04b_treatment_util(non_trauma) 0.87\n", - "05_total_time(non-trauma) 230.43\n", - "06a_trauma_wait 135.77\n", - "06b_trauma_util 0.81\n", - "07a_treatment_wait(trauma) 175.30\n", - "07b_treatment_util(trauma) 0.85\n", - "08_total_time(trauma) 399.90\n", - "09_throughput 154.66\n", + "05_total_time(non-trauma) 234.34\n", + "06a_trauma_wait 147.42\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", "dtype: float64" ] }, @@ -1844,7 +1844,7 @@ }, { "cell_type": "markdown", - "id": "80b2ecf1", + "id": "78ea3a02", "metadata": {}, "source": [ "### 9.3 Visualise replications" @@ -1853,19 +1853,17 @@ { "cell_type": "code", "execution_count": 20, - "id": "97b2cbfe", + "id": "2611c1d7", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/IAAAFfCAYAAADtf/chAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAABAs0lEQVR4nO3deVjVZf7/8deR5YgGKCrLKRQ0cxcdLRXLJdMys9SZTC21rH5Z5saYymRftVLUJrcYJWw1p7GZcZnMKcUSzMxcwNyXEsVUYszkoCYofH5/OJ7pBCjHzkrPx3Wd6+Lc9/05nxfdN+Sbz2YyDMMQAAAAAADwCVU8HQAAAAAAAFQchTwAAAAAAD6EQh4AAAAAAB9CIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5AEAAAAA8CH+ng7gjUpKSnTixAkFBwfLZDJ5Og4AAAAAoJIzDEMFBQWyWCyqUuXqx9wp5Mtw4sQJRUdHezoGAAAAAOA35tixY7rpppuuOoZCvgzBwcGSLv8HDAkJ8XAaAAAAAEBlZ7VaFR0dbatHr4ZCvgxXTqcPCQmhkAcAAAAAuE1FLu/mZncAAAAAAPgQCnkAAAAAAHwIhTwAAAAAAD6EQh4AAAAAAB/Cze6AX4iZuNrTESqdIzN6eToCAAAAUGlwRB4AAAAAAB9CIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5AEAAAAA8CEU8gAAAAAA+BAKeQAAAAAAfAiFPAAAAAAAPoRCHgAAAAAAH0IhDwAAAACAD6GQBwAAAADAh1DIAwAAAADgQyjkAQAAAADwIRTyAAAAAAD4EAp5AAAAAAB8iNsK+c8//1yPPPKIOnTooOPHj0uS3nvvPW3cuNFdEQAAAAAA8HluKeSXLVumu+++W0FBQcrKylJhYaEkqaCgQNOnT3dHBAAAAAAAKgW3FPIvv/yyUlJStGjRIgUEBNja4+PjlZmZ6dBnbdiwQb1795bFYpHJZNLKlSvt+g3D0JQpU2SxWBQUFKQuXbpoz549zvg2AAAAAADwOLcU8gcOHFCnTp1KtYeEhOjMmTMOfda5c+cUFxen5OTkMvtnzZql2bNnKzk5WVu3blVkZKS6d++ugoKC64kOAAAAAIBX8XfHTqKiovTNN98oJibGrn3jxo2qX7++Q5/Vs2dP9ezZs8w+wzA0d+5cPf/88+rXr58k6d1331VERITef/99PfXUU9eVHwAAAAAAb+GWI/JPPfWURo8era+++komk0knTpzQX//6V40bN07PPPOM0/aTnZ2t3Nxc9ejRw9ZmNpvVuXNnbdq0qdztCgsLZbVa7V4AAAAAAHgjtxyRHz9+vPLz89W1a1dduHBBnTp1ktls1rhx4/Tss886bT+5ubmSpIiICLv2iIgIHT16tNztkpKSNHXqVKflAAAAAADAVdz2+Llp06bp1KlT2rJlizZv3qz//Oc/eumll1yyL5PJZPfeMIxSbT+XmJio/Px82+vYsWMuyQUAAAAAwK/lliPyV1SrVk1t27Z12edHRkZKunxkPioqytael5dX6ij9z5nNZpnNZpflAgAAAADAWdxSyPft27fMI+Imk0lVq1bVzTffrEGDBqlRo0a/aj+xsbGKjIxUWlqaWrduLUkqKipSRkaGZs6c+as+GwAAAAAAb+CWU+tDQ0P12WefKTMz01bQZ2Vl6bPPPtOlS5f0wQcfKC4uTl988cU1P+vs2bPasWOHduzYIenyDe527NihnJwcmUwmjRkzRtOnT9eKFSu0e/duPfroo6pWrZoGDRrkym8RAAAAAAC3cMsR+cjISA0aNEjJycmqUuXy3w5KSko0evRoBQcHa+nSpRo+fLgmTJigjRs3XvWztm3bpq5du9reJyQkSJKGDh2qd955R+PHj9dPP/2kZ555Rj/++KPatWuntWvXKjg42HXfIAAAAAAAbmIyDMNw9U7q1KmjL774Qrfccotd+8GDBxUfH69Tp05p165duuOOO3TmzBlXx7kmq9Wq0NBQ5efnKyQkxNNx4GYxE1d7OkKlc2RGL09HAAAAALyaI3WoW06tv3Tpkvbv31+qff/+/SouLpYkVa1a9ap3lgcAAAAAAG46tX7w4MF6/PHH9ac//Um33nqrTCaTtmzZounTp2vIkCGSpIyMDDVr1swdcQAAAAAA8FluKeTnzJmjiIgIzZo1S99//70kKSIiQmPHjtWECRMkST169NA999zjjjgAAAAAAPgst1wj/3NWq1WSvPrac66R/23jGnnn4xp5AAAA4OocqUPdckT+5yiMAQAAAAC4fm4r5P/5z3/q73//u3JyclRUVGTXl5mZ6a4YAAAAAAD4NLfctX7+/Pl67LHHFB4erqysLN12222qVauWDh8+rJ49e7oj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+vX14osvqqSkxDaGufMOFPKwc+7cOcXFxSk5ObnM/lmzZmn27NlKTk7W1q1bFRkZqe7du6ugoMDNSfFzGRkZGjFihDZv3qy0tDRdunRJPXr00Llz52xjmDvvc9NNN2nGjBnatm2btm3bpjvvvFMPPPCA7X+GzJn327p1q1JTU9WyZUu7dubOOzVr1kwnT560vXbt2mXrY868148//qiOHTsqICBAH3/8sfbu3atXX31VNWrUsI1h/rzP1q1b7X7e0tLSJEkPPvigJObMW82cOVMpKSlKTk7Wvn37NGvWLL3yyit67bXXbGOYOy9hAOWQZKxYscL2vqSkxIiMjDRmzJhha7tw4YIRGhpqpKSkeCAhypOXl2dIMjIyMgzDYO58Sc2aNY033niDOfMBBQUFRsOGDY20tDSjc+fOxujRow3D4OfNW02ePNmIi4srs485824TJkwwbr/99nL7mT/fMHr0aKNBgwZGSUkJc+bFevXqZQwbNsyurV+/fsYjjzxiGAY/b96EI/KosOzsbOXm5qpHjx62NrPZrM6dO2vTpk0eTIZfys/PlySFhYVJYu58QXFxsZYuXapz586pQ4cOzJkPGDFihHr16qW77rrLrp25816HDh2SxWJRbGysBgwYoMOHD0tizrzdhx9+qLZt2+rBBx9UeHi4WrdurUWLFtn6mT/vV1RUpCVLlmjYsGEymUzMmRe7/fbb9emnn+rgwYOSpK+//lobN27UvffeK4mfN2/i7+kA8B25ubmSpIiICLv2iIgIHT161BORUAbDMJSQkKDbb79dzZs3l8TcebNdu3apQ4cOunDhgm644QatWLFCTZs2tf3PkDnzTkuXLlVmZqa2bt1aqo+fN+/Url07LV68WLfccou+//57vfzyy4qPj9eePXuYMy93+PBhLVy4UAkJCfrTn/6kLVu2aNSoUTKbzRoyZAjz5wNWrlypM2fO6NFHH5XE70lvNmHCBOXn56tx48by8/NTcXGxpk2bpoEDB0pi7rwJhTwcZjKZ7N4bhlGqDZ7z7LPPaufOndq4cWOpPubO+zRq1Eg7duzQmTNntGzZMg0dOlQZGRm2fubM+xw7dkyjR4/W2rVrVbVq1XLHMXfepWfPnravW7RooQ4dOqhBgwZ699131b59e0nMmbcqKSlR27ZtNX36dElS69attWfPHi1cuFBDhgyxjWP+vNebb76pnj17ymKx2LUzZ97ngw8+0JIlS/T++++rWbNm2rFjh8aMGSOLxaKhQ4faxjF3nsep9aiwK3f3vfKXuCvy8vJK/VUOnjFy5Eh9+OGHWr9+vW666SZbO3PnvQIDA3XzzTerbdu2SkpKUlxcnObNm8ecebHt27crLy9Pbdq0kb+/v/z9/ZWRkaH58+fL39/fNj/MnXerXr26WrRooUOHDvHz5uWioqLUtGlTu7YmTZooJydHEv+P83ZHjx7VunXr9MQTT9jamDPv9dxzz2nixIkaMGCAWrRoocGDB2vs2LFKSkqSxNx5Ewp5VFhsbKwiIyNtdx2VLl/zlJGRofj4eA8mg2EYevbZZ7V8+XJ99tlnio2Ntetn7nyHYRgqLCxkzrxYt27dtGvXLu3YscP2atu2rR5++GHt2LFD9evXZ+58QGFhofbt26eoqCh+3rxcx44dSz1S9eDBg6pXr54k/h/n7d5++22Fh4erV69etjbmzHudP39eVarYl4h+fn62x88xd17EQzfZg5cqKCgwsrKyjKysLEOSMXv2bCMrK8s4evSoYRiGMWPGDCM0NNRYvny5sWvXLmPgwIFGVFSUYbVaPZz8t+3pp582QkNDjfT0dOPkyZO21/nz521jmDvvk5iYaGzYsMHIzs42du7cafzpT38yqlSpYqxdu9YwDObMl/z8rvWGwdx5oz/+8Y9Genq6cfjwYWPz5s3GfffdZwQHBxtHjhwxDIM582Zbtmwx/P39jWnTphmHDh0y/vrXvxrVqlUzlixZYhvD/Hmn4uJio27dusaECRNK9TFn3mno0KHGjTfeaHz00UdGdna2sXz5cqN27drG+PHjbWOYO+9AIQ8769evNySVeg0dOtQwjMuPnJg8ebIRGRlpmM1mo1OnTsauXbs8Gxplzpkk4+2337aNYe68z7Bhw4x69eoZgYGBRp06dYxu3brZinjDYM58yS8LeebO+zz00ENGVFSUERAQYFgsFqNfv37Gnj17bP3MmXdbtWqV0bx5c8NsNhuNGzc2UlNT7fqZP++0Zs0aQ5Jx4MCBUn3MmXeyWq3G6NGjjbp16xpVq1Y16tevbzz//PNGYWGhbQxz5x1MhmEYHjkVAAAAAAAAOIxr5AEAAAAA8CEU8gAAAAAA+BAKeQAAAAAAfAiFPAAAAAAAPsTf0wG8UUlJiU6cOKHg4GCZTCZPxwEAAAAAVHKGYaigoEAWi0VVqlz9mDuFfBlOnDih6OhoT8cAAAAAAPzGHDt2TDfddNNVx1DIlyE4OFjS5f+AISEhHk4DAAAAAKjsrFaroqOjbfXo1VDIl+HK6fQhISEU8gAAAAAAt6nI5d3c7A4AAAAAAB9yXUfkP/30U3366afKy8tTSUmJXd9bb73llGAAAAAAAKA0hwv5qVOn6sUXX1Tbtm0VFRXFXd0BAAAAAHAjhwv5lJQUvfPOOxo8eLAr8gAAAAAAgKtwuJAvKipSfHy8K7IAAIBKIGbiak9HqHSOzOjl6QgAAC/i8M3unnjiCb3//vuuyAIAAAAAAK7B4SPyFy5cUGpqqtatW6eWLVsqICDArn/27NlOCwcAAAAAAOw5XMjv3LlTrVq1kiTt3r3bro8b3wEAAAAA4FoOF/Lr1693RQ4AAAAAAFABDl8j/3Pfffedjh8/7qwsAAAAAADgGhwu5EtKSvTiiy8qNDRU9erVU926dVWjRg299NJLKikpcUVGAAAAAADwXw6fWv/888/rzTff1IwZM9SxY0cZhqEvvvhCU6ZM0YULFzRt2jRX5AQAAAAAALqOI/Lvvvuu3njjDT399NNq2bKl4uLi9Mwzz2jRokV65513HPqsDRs2qHfv3rJYLDKZTFq5cqVdv2EYmjJliiwWi4KCgtSlSxft2bPnmp+7bNkyNW3aVGazWU2bNtWKFSscygUAAAAAgLdyuJA/ffq0GjduXKq9cePGOn36tEOfde7cOcXFxSk5ObnM/lmzZmn27NlKTk7W1q1bFRkZqe7du6ugoKDcz/zyyy/10EMPafDgwfr66681ePBg9e/fX1999ZVD2QAAAAAA8EYmwzAMRzZo166d2rVrp/nz59u1jxw5Ulu3btXmzZuvL4jJpBUrVqhPnz6SLh+Nt1gsGjNmjCZMmCBJKiwsVEREhGbOnKmnnnqqzM956KGHZLVa9fHHH9va7rnnHtWsWVN/+9vfKpTFarUqNDRU+fn5CgkJua7vBwCA36qYias9HaHSOTKjl6cjAABczJE61OFr5GfNmqVevXpp3bp16tChg0wmkzZt2qRjx47p3//+93WH/qXs7Gzl5uaqR48etjaz2azOnTtr06ZN5RbyX375pcaOHWvXdvfdd2vu3Lnl7quwsFCFhYW291ar9deFBwAAAADARRw+tb5z5846ePCg+vbtqzNnzuj06dPq16+fDhw4oDvuuMNpwXJzcyVJERERdu0RERG2vvK2c3SbpKQkhYaG2l7R0dG/IjkAAAAAAK7j8BF5SbJYLG67O73JZLJ7bxhGqbZfu01iYqISEhJs761WK8U8AAAAAMArVaiQ37lzp5o3b64qVapo586dVx3bsmVLpwSLjIyUdPkIe1RUlK09Ly+v1BH3X273y6Pv19rGbDbLbDb/ysQAAAAAALhehQr5Vq1aKTc3V+Hh4WrVqpVMJpPKukeeyWRScXGxU4LFxsYqMjJSaWlpat26tSSpqKhIGRkZmjlzZrnbdejQQWlpaXbXya9du1bx8fFOyQUAAAAAgCdVqJDPzs5WnTp1bF87y9mzZ/XNN9/Y7WfHjh0KCwtT3bp1NWbMGE2fPl0NGzZUw4YNNX36dFWrVk2DBg2ybTNkyBDdeOONSkpKkiSNHj1anTp10syZM/XAAw/oX//6l9atW6eNGzc6LTcAAAAAAJ5SoUK+Xr16tq+PHj2q+Ph4+fvbb3rp0iVt2rTJbuy1bNu2TV27drW9v3Kd+tChQ/XOO+9o/Pjx+umnn/TMM8/oxx9/VLt27bR27VoFBwfbtsnJyVGVKv+7Z198fLyWLl2qSZMm6YUXXlCDBg30wQcfqF27dhXOBQAAAACAt3L4OfJ+fn46efKkwsPD7dp/+OEHhYeHO+3Uek/iOfIAAFw/niPvfDxHHgAqP0fqUIcfP1feHeB/+OEHVa9e3dGPAwAAAAAADqjw4+f69esn6fIN7R599FG7u7wXFxdr586d3FAOAAAAAAAXq3AhHxoaKunyEfng4GAFBQXZ+gIDA9W+fXs9+eSTzk8IAAAAAABsKlzIv/3225KkmJgYjRs3jtPoAQAAAADwgAoX8ldMnjzZFTkAAAAAAEAFOFzIS9I///lP/f3vf1dOTo6Kiors+jIzM50SDAAAd+Eu6wAAwJc4fNf6+fPn67HHHlN4eLiysrJ02223qVatWjp8+LB69uzpiowAAAAAAOC/HC7kFyxYoNTUVCUnJyswMFDjx49XWlqaRo0apfz8fFdkBAAAAAAA/+VwIZ+Tk2N7zFxQUJAKCgokSYMHD9bf/vY356YDAAAAAAB2HC7kIyMj9cMPP0iS6tWrp82bN0uSsrOzZRiGc9MBAAAAAAA7Dhfyd955p1atWiVJevzxxzV27Fh1795dDz30kPr27ev0gAAAAAAA4H8cvmt9amqqSkpKJEnDhw9XWFiYNm7cqN69e2v48OFODwgAAAAAAP7HoUL+0qVLmjZtmoYNG6bo6GhJUv/+/dW/f3+XhAMAAAAAAPYcOrXe399fr7zyioqLi12VBwAAAAAAXIXD18jfddddSk9Pd0EUAAAAAABwLQ5fI9+zZ08lJiZq9+7datOmjapXr27Xf//99zstHAAAAAAAsOdwIf/0009LkmbPnl2qz2Qycdo9AAAAAAAu5HAhf+WO9QAAz4iZuNrTEQDAp/F71PmOzOjl6QjAb4rD18gvXrxYhYWFpdqLioq0ePFip4QCAAAAAABlc7iQf+yxx5Sfn1+qvaCgQI899phTQgEAAAAAgLI5XMgbhiGTyVSq/bvvvlNoaKhTQv1cTEyMTCZTqdeIESPKHJ+enl7m+P379zs9GwAAAAAA7lbha+Rbt25tK4q7desmf///bVpcXKzs7Gzdc889Tg+4detWuxvo7d69W927d9eDDz541e0OHDigkJAQ2/s6deo4PRsAAAAAAO5W4UK+T58+kqQdO3bo7rvv1g033GDrCwwMVExMjH7/+987PeAvC/AZM2aoQYMG6ty581W3Cw8PV40aNSq0j8LCQrvr/q1Wq8M5AQAAAABwhwoX8pMnT5Z0+VT3AQMGyGw2uyxUeYqKirRkyRIlJCSUeXr/z7Vu3VoXLlxQ06ZNNWnSJHXt2rXcsUlJSZo6daqz4wIAAAAA4HQOXyN/55136j//+Y/t/ZYtWzRmzBilpqY6NVhZVq5cqTNnzujRRx8td0xUVJRSU1O1bNkyLV++XI0aNVK3bt20YcOGcrdJTExUfn6+7XXs2DEXpAcAAAAA4Ndz+DnygwYN0v/7f/9PgwcPVm5uru666y41b95cS5YsUW5urv7v//7PFTklSW+++aZ69uwpi8VS7phGjRqpUaNGtvcdOnTQsWPH9Oc//1mdOnUqcxuz2eyRMwwAAAAAAHCUw0fkd+/erdtuu02S9Pe//10tWrTQpk2b9P777+udd95xdj6bo0ePat26dXriiScc3rZ9+/Y6dOiQC1IBAAAAAOBeDhfyFy9etB29Xrdune6//35JUuPGjXXy5EnnpvuZt99+W+Hh4erVq5fD22ZlZSkqKsoFqQAAAAAAcC+HT61v1qyZUlJS1KtXL6Wlpemll16SJJ04cUK1atVyekBJKikp0dtvv62hQ4faPfZOunx9+/Hjx7V48WJJ0ty5cxUTE6NmzZrZbo63bNkyLVu2zCXZAAAAAABwJ4cL+ZkzZ6pv37565ZVXNHToUMXFxUmSPvzwQ9sp9862bt065eTkaNiwYaX6Tp48qZycHNv7oqIijRs3TsePH1dQUJCaNWum1atX695773VJNgAAAAAA3MlkGIbh6EbFxcWyWq2qWbOmre3IkSOqVq2awsPDnRrQE6xWq0JDQ5Wfn6+QkBBPxwEAOzETV3s6AgA3OzLD8UsLUT5+jzofaxT49RypQx0+Ii9Jfn5+dkW8dPn58gAAAAAAwLUqVMj/7ne/06effqqaNWuqdevWMplM5Y7NzMx0WjgAAAAAAGCvQoX8Aw88YLtTfZ8+fVyZBwAAAAAAXEWFCvnJkyeX+TUAAAAAAHAvh58jDwAAAAAAPMfhm93VrFmzzGvkTSaTqlatqptvvlmPPvqoHnvsMacEBAAAAAAA/+NwIf9///d/mjZtmnr27KnbbrtNhmFo69at+uSTTzRixAhlZ2fr6aef1qVLl/Tkk0+6IjMAAAAAAL9ZDhfyGzdu1Msvv6zhw4fbtb/++utau3atli1bppYtW2r+/PkU8gAAAAAAOJnD18ivWbNGd911V6n2bt26ac2aNZKke++9V4cPH/716QAAAAAAgB2HC/mwsDCtWrWqVPuqVasUFhYmSTp37pyCg4N/fToAAAAAAGDH4VPrX3jhBT399NNav369brvtNplMJm3ZskX//ve/lZKSIklKS0tT586dnR4WAAAAAIDfOpNhGIajG33xxRdKTk7WgQMHZBiGGjdurJEjRyo+Pt4VGd3OarUqNDRU+fn5CgkJ8XQcALATM3G1pyMAAGDnyIxeno4A+DxH6lCHj8hLUseOHdWxY8frCgcAAAAAAK6fw9fIS9K3336rSZMmadCgQcrLy5MkffLJJ9qzZ49TwwEAAAAAAHsOF/IZGRlq0aKFvvrqKy1btkxnz56VJO3cuVOTJ092ekAAAAAAAPA/DhfyEydO1Msvv6y0tDQFBgba2rt27aovv/zSqeEAAAAAAIA9hwv5Xbt2qW/fvqXa69Spox9++MEpoQAAAAAAQNkcLuRr1KihkydPlmrPysrSjTfe6JRQAAAAAACgbA4X8oMGDdKECROUm5srk8mkkpISffHFFxo3bpyGDBniiowAAAAAAOC/HC7kp02bprp16+rGG2/U2bNn1bRpU3Xq1Enx8fGaNGmSU8NNmTJFJpPJ7hUZGXnVbTIyMtSmTRtVrVpV9evXV0pKilMzAQAAAADgSQ49R94wDJ04cUKLFi3SSy+9pMzMTJWUlKh169Zq2LChSwI2a9ZM69ats7338/Mrd2x2drbuvfdePfnkk1qyZIm++OILPfPMM6pTp45+//vfuyQfAAAAAADu5HAh37BhQ+3Zs0cNGzZU/fr1XZXLxt/f/5pH4a9ISUlR3bp1NXfuXElSkyZNtG3bNv35z3+mkAcAAAAAVAoOnVpfpUoVNWzY0K13pz906JAsFotiY2M1YMAAHT58uNyxX375pXr06GHXdvfdd2vbtm26ePFiudsVFhbKarXavQAAAAAA8EYOXyM/a9YsPffcc9q9e7cr8thp166dFi9erDVr1mjRokXKzc1VfHx8uX9IyM3NVUREhF1bRESELl26pFOnTpW7n6SkJIWGhtpe0dHRTv0+AAAAAABwFodOrZekRx55ROfPn1dcXJwCAwMVFBRk13/69GmnhevZs6ft6xYtWqhDhw5q0KCB3n33XSUkJJS5jclksntvGEaZ7T+XmJho93lWq5ViHgAAAADglRwu5K9cf+4J1atXV4sWLXTo0KEy+yMjI5Wbm2vXlpeXJ39/f9WqVavczzWbzTKbzU7NCgAAAACAKzhcyA8dOtQVOSqksLBQ+/bt0x133FFmf4cOHbRq1Sq7trVr16pt27YKCAhwR0QAAAAAAFzK4Wvk3WncuHHKyMhQdna2vvrqK/3hD3+Q1Wq1/TEhMTFRQ4YMsY0fPny4jh49qoSEBO3bt09vvfWW3nzzTY0bN85T3wIAAAAAAE7l8BF5d/ruu+80cOBAnTp1SnXq1FH79u21efNm1atXT5J08uRJ5eTk2MbHxsbq3//+t8aOHau//OUvslgsmj9/Po+eAwAAAABUGibjyt3gYGO1WhUaGqr8/HyFhIR4Og4A2ImZuNrTEQAAsHNkRi9PRwB8niN1qFefWg8AAAAAAOw5VMhfunRJ/v7+bnmGPAAAAAAAKM2hQt7f31/16tVTcXGxq/IAAAAAAICrcPjU+kmTJikxMVGnT592RR4AAAAAAHAVDt+1fv78+frmm29ksVhUr149Va9e3a4/MzPTaeEAAAAAAIA9hwv5Pn36uCAGAAAAAACoCIcL+cmTJ7siBwAAAAAAqACHC/krtm/frn379slkMqlp06Zq3bq1M3MBAAAAAIAyOFzI5+XlacCAAUpPT1eNGjVkGIby8/PVtWtXLV26VHXq1HFFTgAAAAAAoOu4a/3IkSNltVq1Z88enT59Wj/++KN2794tq9WqUaNGuSIjAAAAAAD4L4ePyH/yySdat26dmjRpYmtr2rSp/vKXv6hHjx5ODQcAAAAAAOw5fES+pKREAQEBpdoDAgJUUlLilFAAAAAAAKBsDhfyd955p0aPHq0TJ07Y2o4fP66xY8eqW7duTg0HAAAAAADsOVzIJycnq6CgQDExMWrQoIFuvvlmxcbGqqCgQK+99porMgIAAAAAgP9y+Br56OhoZWZmKi0tTfv375dhGGratKnuuusuV+QDAAAAAAA/U6FCPiwsTAcPHlTt2rU1bNgwzZs3T927d1f37t1dnQ8AAAAAAPxMhU6tLyoqktVqlSS9++67unDhgktDAQAAAACAslXoiHyHDh3Up08ftWnTRoZhaNSoUQoKCipz7FtvveXUgAB8X8zE1Z6OAAAAAFQaFSrklyxZojlz5ujbb7+VyWRSfn4+R+UBAAAAAPCAChXyERERmjFjhiQpNjZW7733nmrVquXSYJKUlJSk5cuXa//+/QoKClJ8fLxmzpypRo0albtNenq6unbtWqp93759aty4sSvjAgAAAADgcg7ftT47O9sVOcqUkZGhESNG6NZbb9WlS5f0/PPPq0ePHtq7d6+qV69+1W0PHDigkJAQ2/s6deq4Oi4AAAAAAC7ncCHvTp988ond+7ffflvh4eHavn27OnXqdNVtw8PDVaNGDRemAwAAAADA/Sp013pvkZ+fL+ny4/CupXXr1oqKilK3bt20fv36q44tLCyU1Wq1ewEAAAAA4I18ppA3DEMJCQm6/fbb1bx583LHRUVFKTU1VcuWLdPy5cvVqFEjdevWTRs2bCh3m6SkJIWGhtpe0dHRrvgWAAAAAAD41UyGYRieDlERI0aM0OrVq7Vx40bddNNNDm3bu3dvmUwmffjhh2X2FxYWqrCw0PbearUqOjpa+fn5dtfZA7g+PH4OAIDK7ciMXp6OAPg8q9Wq0NDQCtWhDh+R9/PzU15eXqn2H374QX5+fo5+XIWMHDlSH374odavX+9wES9J7du316FDh8rtN5vNCgkJsXsBAAAAAOCNHL7ZXXkH8AsLCxUYGPirA/1yXyNHjtSKFSuUnp6u2NjY6/qcrKwsRUVFOTUbAAAAAACeUOFCfv78+ZIkk8mkN954QzfccIOtr7i4WBs2bHD6c9pHjBih999/X//6178UHBys3NxcSVJoaKiCgoIkSYmJiTp+/LgWL14sSZo7d65iYmLUrFkzFRUVacmSJVq2bJmWLVvm1GwAAAAAAHhChQv5OXPmSLp8lDwlJcXuNPrAwEDFxMQoJSXFqeEWLlwoSerSpYtd+9tvv61HH31UknTy5Enl5OTY+oqKijRu3DgdP35cQUFBatasmVavXq17773XqdkAAAAAAPAEh29217VrVy1fvlw1a9Z0VSaPc+QmAwCujZvdAQAAwJN84YaMjtShDl8jf61nsgMAAAAAANepUCGfkJCgl156SdWrV1dCQsJVx86ePdspwQAAAAAAQGkVKuSzsrJ08eJF29flMZlMzkkFAAAAAADKVKFC/uen03NqPQAAAAAAnlPF0wEAAAAAAEDFOXyzO0naunWr/vGPfygnJ0dFRUV2fcuXL3dKMAAAAAAAUJrDR+SXLl2qjh07au/evVqxYoUuXryovXv36rPPPlNoaKgrMgIAAAAAgP9yuJCfPn265syZo48++kiBgYGaN2+e9u3bp/79+6tu3bquyAgAAAAAAP7L4UL+22+/Va9evSRJZrNZ586dk8lk0tixY5Wamur0gAAAAAAA4H8cLuTDwsJUUFAgSbrxxhu1e/duSdKZM2d0/vx556YDAAAAAAB2HL7Z3R133KG0tDS1aNFC/fv31+jRo/XZZ58pLS1N3bp1c0VGAAAAAADwXw4X8snJybpw4YIkKTExUQEBAdq4caP69eunF154wekBcW0xE1d7OkKlcmRGL09HAAAAAIByOVzIh4WF2b6uUqWKxo8fr/Hjxzs1FAAAAAAAKJvD18g//PDDWrRokQ4ePOiKPAAAAAAA4CocLuRvuOEGvfrqq2rcuLEsFosGDhyolJQU7d+/3xX5AAAAAADAzzhcyL/++uvav3+/Tpw4odmzZys0NFTz5s1Ts2bNFBUV5YqMAAAAAADgvxwu5K8IDg5WzZo1VbNmTdWoUUP+/v6KjIx0ZjYAAAAAAPALDhfyEyZMUPv27VW7dm1NmjRJRUVFSkxM1Pfff6+srCxXZAQAAAAAAP/l8F3rX3nlFdWpU0eTJ0/WAw88oCZNmrgiFwAAAAAAKIPDhXxWVpYyMjKUnp6uV199VX5+furcubO6dOmiLl26UNgDAAAAAOBCDp9aHxcXp1GjRmn58uX6z3/+ozVr1qhatWoaNWqUmjdv7oqMWrBggWJjY1W1alW1adNGn3/++VXHZ2RkqE2bNqpatarq16+vlJQUl+QCAAAAAMDdHD4iL10+Kp+enq709HR9/vnnslqtatWqlbp27ersfPrggw80ZswYLViwQB07dtTrr7+unj17au/evapbt26p8dnZ2br33nv15JNPasmSJfriiy/0zDPPqE6dOvr973/v9HwAAAAAALiTw4V8zZo1dfbsWcXFxalLly568skn1alTJ4WEhLgin2bPnq3HH39cTzzxhCRp7ty5WrNmjRYuXKikpKRS41NSUlS3bl3NnTtXktSkSRNt27ZNf/7zn8st5AsLC1VYWGh7n5+fL0myWq1O/m5co6TwvKcjVCq+Mu++hDUKAAAAT/KFf+NfyWgYxjXHOlzIv/feey4t3H+uqKhI27dv18SJE+3ae/TooU2bNpW5zZdffqkePXrYtd1999168803dfHiRQUEBJTaJikpSVOnTi3VHh0d/SvSw1eFzvV0AgAAAADO5Ev/xi8oKFBoaOhVxzhcyN93333XHchRp06dUnFxsSIiIuzaIyIilJubW+Y2ubm5ZY6/dOmSTp06paioqFLbJCYmKiEhwfa+pKREp0+fVq1atWQymX7V92C1WhUdHa1jx4655Y8fqNxYT3Am1hOcifUEZ2I9wZlYT3A2V60pwzBUUFAgi8VyzbHXdY28u/2ymDYM46oFdlnjy2q/wmw2y2w227XVqFHjOpKWLyQkhF8ccBrWE5yJ9QRnYj3BmVhPcCbWE5zNFWvqWkfir3D4rvXuVLt2bfn5+ZU6+p6Xl1fqqPsVkZGRZY739/dXrVq1XJYVAAAAAAB38OpCPjAwUG3atFFaWppde1pamuLj48vcpkOHDqXGr127Vm3bti3z+ngAAAAAAHyJVxfykpSQkKA33nhDb731lvbt26exY8cqJydHw4cPl3T5+vYhQ4bYxg8fPlxHjx5VQkKC9u3bp7feektvvvmmxo0b55H8ZrNZkydPLnXqPnA9WE9wJtYTnIn1BGdiPcGZWE9wNm9YUyajIve297AFCxZo1qxZOnnypJo3b645c+aoU6dOkqRHH31UR44cUXp6um18RkaGxo4dqz179shisWjChAm2wh8AAAAAAF/mE4U8AAAAAAC4zOtPrQcAAAAAAP9DIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5F0gKSlJJpNJY8aMsbUZhqEpU6bIYrEoKChIXbp00Z49ezwXEl7t+PHjeuSRR1SrVi1Vq1ZNrVq10vbt2239rCdU1KVLlzRp0iTFxsYqKChI9evX14svvqiSkhLbGNYTyrNhwwb17t1bFotFJpNJK1eutOuvyNopLCzUyJEjVbt2bVWvXl3333+/vvvuOzd+F/AmV1tTFy9e1IQJE9SiRQtVr15dFotFQ4YM0YkTJ+w+gzWFK671O+rnnnrqKZlMJs2dO9eunfWEKyqynvbt26f7779foaGhCg4OVvv27ZWTk2Prd+d6opB3sq1btyo1NVUtW7a0a581a5Zmz56t5ORkbd26VZGRkerevbsKCgo8lBTe6scff1THjh0VEBCgjz/+WHv37tWrr76qGjVq2MawnlBRM2fOVEpKipKTk7Vv3z7NmjVLr7zyil577TXbGNYTynPu3DnFxcUpOTm5zP6KrJ0xY8ZoxYoVWrp0qTZu3KizZ8/qvvvuU3Fxsbu+DXiRq62p8+fPKzMzUy+88IIyMzO1fPlyHTx4UPfff7/dONYUrrjW76grVq5cqa+++koWi6VUH+sJV1xrPX377be6/fbb1bhxY6Wnp+vrr7/WCy+8oKpVq9rGuHU9GXCagoICo2HDhkZaWprRuXNnY/To0YZhGEZJSYkRGRlpzJgxwzb2woULRmhoqJGSkuKhtPBWEyZMMG6//fZy+1lPcESvXr2MYcOG2bX169fPeOSRRwzDYD2h4iQZK1assL2vyNo5c+aMERAQYCxdutQ25vjx40aVKlWMTz75xG3Z4Z1+uabKsmXLFkOScfToUcMwWFMoX3nr6bvvvjNuvPFGY/fu3Ua9evWMOXPm2PpYTyhPWevpoYcesv37qSzuXk8ckXeiESNGqFevXrrrrrvs2rOzs5Wbm6sePXrY2sxmszp37qxNmza5Oya83Icffqi2bdvqwQcfVHh4uFq3bq1FixbZ+llPcMTtt9+uTz/9VAcPHpQkff3119q4caPuvfdeSawnXL+KrJ3t27fr4sWLdmMsFouaN2/O+kKF5Ofny2Qy2c5KY03BESUlJRo8eLCee+45NWvWrFQ/6wkVVVJSotWrV+uWW27R3XffrfDwcLVr187u9Ht3rycKeSdZunSpMjMzlZSUVKovNzdXkhQREWHXHhERYesDrjh8+LAWLlyohg0bas2aNRo+fLhGjRqlxYsXS2I9wTETJkzQwIED1bhxYwUEBKh169YaM2aMBg4cKIn1hOtXkbWTm5urwMBA1axZs9wxQHkuXLigiRMnatCgQQoJCZHEmoJjZs6cKX9/f40aNarMftYTKiovL09nz57VjBkzdM8992jt2rXq27ev+vXrp4yMDEnuX0/+Tv/E36Bjx45p9OjRWrt2rd01Er9kMpns3huGUaoNKCkpUdu2bTV9+nRJUuvWrbVnzx4tXLhQQ4YMsY1jPaEiPvjgAy1ZskTvv/++mjVrph07dmjMmDGyWCwaOnSobRzrCdfretYO6wvXcvHiRQ0YMEAlJSVasGDBNcezpvBL27dv17x585SZmenw2mA94Zeu3CT4gQce0NixYyVJrVq10qZNm5SSkqLOnTuXu62r1hNH5J1g+/btysvLU5s2beTv7y9/f39lZGRo/vz58vf3tx2t+OVfYvLy8kodyQCioqLUtGlTu7YmTZrY7ogZGRkpifWEinnuuec0ceJEDRgwQC1atNDgwYM1duxY29lDrCdcr4qsncjISBUVFenHH38sdwzwSxcvXlT//v2VnZ2ttLQ029F4iTWFivv888+Vl5enunXr2v59fvToUf3xj39UTEyMJNYTKq527dry9/e/5r/R3bmeKOSdoFu3btq1a5d27Nhhe7Vt21YPP/ywduzYofr16ysyMlJpaWm2bYqKipSRkaH4+HgPJoc36tixow4cOGDXdvDgQdWrV0+SFBsby3pChZ0/f15Vqtj/qvfz87P9ZZn1hOtVkbXTpk0bBQQE2I05efKkdu/ezfpCma4U8YcOHdK6detUq1Ytu37WFCpq8ODB2rlzp92/zy0Wi5577jmtWbNGEusJFRcYGKhbb731qv9Gd/d64tR6JwgODlbz5s3t2qpXr65atWrZ2seMGaPp06erYcOGatiwoaZPn65q1app0KBBnogMLzZ27FjFx8dr+vTp6t+/v7Zs2aLU1FSlpqZKunwaK+sJFdW7d29NmzZNdevWVbNmzZSVlaXZs2dr2LBhklhPuLqzZ8/qm2++sb3Pzs7Wjh07FBYWprp1615z7YSGhurxxx/XH//4R9WqVUthYWEaN26cWrRoUerGsPhtuNqaslgs+sMf/qDMzEx99NFHKi4utp3xERYWpsDAQNYU7Fzrd9Qv/xAUEBCgyMhINWrUSBK/o2DvWuvpueee00MPPaROnTqpa9eu+uSTT7Rq1Sqlp6dL8sB6cvp98GEYhmH3+DnDuPyYnsmTJxuRkZGG2Ww2OnXqZOzatctzAeHVVq1aZTRv3twwm81G48aNjdTUVLt+1hMqymq1GqNHjzbq1q1rVK1a1ahfv77x/PPPG4WFhbYxrCeUZ/369YakUq+hQ4cahlGxtfPTTz8Zzz77rBEWFmYEBQUZ9913n5GTk+OB7wbe4GprKjs7u8w+Scb69ettn8GawhXX+h31S798/JxhsJ7wPxVZT2+++aZx8803G1WrVjXi4uKMlStX2n2GO9eTyTAMw/l/HgAAAAAAAK7ANfIAAAAAAPgQCnkAAAAAAHwIhTwAAAAAAD6EQh4AAAAAAB9CIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5AEAAAAA8CEU8gAAAAAA+BAKeQAAAAAAfAiFPAAAAAAAPuT/A45I8Q5O0QEBAAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1879,7 +1877,7 @@ }, { "cell_type": "markdown", - "id": "0a8ffe5e", + "id": "ab72874e", "metadata": {}, "source": [ "## 10. Scenario Analysis\n", @@ -1892,7 +1890,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "b853f43d", + "id": "c7559d18", "metadata": {}, "outputs": [], "source": [ @@ -1927,7 +1925,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "04847d5c", + "id": "e857e38a", "metadata": {}, "outputs": [], "source": [ @@ -1969,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "064ff4e1", + "id": "ccfb499b", "metadata": {}, "source": [ "### 10.1 Script to run scenario analysis" @@ -1978,7 +1976,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "8c214eaa", + "id": "7ec96b6f", "metadata": {}, "outputs": [ { @@ -2018,7 +2016,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "0fc822d1", + "id": "fc24fa00", "metadata": {}, "outputs": [], "source": [ @@ -2049,7 +2047,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "81976914", + "id": "36f7e9a5", "metadata": {}, "outputs": [ { @@ -2083,131 +2081,131 @@ " \n", " \n", " 00_arrivals\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", " \n", " \n", " 01a_triage_wait\n", - " 28.86\n", - " 1.09\n", - " 36.46\n", - " 39.36\n", - " 1.14\n", + " 29.52\n", + " 1.17\n", + " 29.47\n", + " 23.99\n", + " 1.21\n", " \n", " \n", " 01b_triage_util\n", - " 0.57\n", - " 0.30\n", " 0.60\n", - " 0.61\n", + " 0.30\n", + " 0.59\n", + " 0.58\n", " 0.30\n", " \n", " \n", " 02a_registration_wait\n", - " 113.56\n", - " 138.79\n", - " 106.27\n", - " 108.46\n", - " 140.14\n", + " 101.88\n", + " 128.14\n", + " 101.09\n", + " 109.70\n", + " 125.47\n", " \n", " \n", " 02b_registration_util\n", - " 0.83\n", " 0.84\n", - " 0.83\n", - " 0.83\n", + " 0.85\n", + " 0.84\n", + " 0.84\n", " 0.84\n", " \n", " \n", " 03a_examination_wait\n", - " 24.57\n", - " 24.15\n", - " 0.13\n", - " 23.03\n", - " 0.15\n", + " 25.34\n", + " 24.93\n", + " 0.16\n", + " 24.03\n", + " 0.14\n", " \n", " \n", " 03b_examination_util\n", - " 0.85\n", - " 0.85\n", + " 0.86\n", + " 0.86\n", " 0.67\n", - " 0.84\n", + " 0.85\n", " 0.67\n", " \n", " \n", " 04a_treatment_wait(non_trauma)\n", - " 137.72\n", - " 139.98\n", - " 151.82\n", - " 2.26\n", - " 152.09\n", + " 134.19\n", + " 134.80\n", + " 148.81\n", + " 2.10\n", + " 150.61\n", " \n", " \n", " 04b_treatment_util(non_trauma)\n", - " 0.86\n", - " 0.86\n", - " 0.86\n", - " 0.63\n", - " 0.86\n", + " 0.88\n", + " 0.88\n", + " 0.88\n", + " 0.62\n", + " 0.88\n", " \n", " \n", " 05_total_time(non-trauma)\n", - " 236.01\n", - " 233.77\n", - " 225.60\n", - " 196.38\n", - " 223.33\n", + " 226.57\n", + " 223.52\n", + " 213.47\n", + " 184.42\n", + " 210.25\n", " \n", " \n", " 06a_trauma_wait\n", - " 144.46\n", - " 154.00\n", - " 132.94\n", - " 146.09\n", - " 165.43\n", + " 144.23\n", + " 163.29\n", + " 153.04\n", + " 151.20\n", + " 189.95\n", " \n", " \n", " 06b_trauma_util\n", + " 0.85\n", + " 0.85\n", + " 0.89\n", " 0.80\n", - " 0.83\n", - " 0.82\n", - " 0.82\n", - " 0.80\n", + " 0.88\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 168.27\n", - " 209.12\n", - " 195.16\n", - " 150.37\n", - " 193.69\n", + " 176.13\n", + " 208.33\n", + " 192.61\n", + " 165.71\n", + " 191.00\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.79\n", - " 0.81\n", - " 0.83\n", - " 0.81\n", + " 0.84\n", " 0.86\n", + " 0.80\n", + " 0.84\n", + " 0.85\n", " \n", " \n", " 08_total_time(trauma)\n", - " 390.68\n", - " 402.95\n", - " 422.40\n", - " 403.82\n", - " 400.37\n", + " 393.36\n", + " 389.83\n", + " 400.76\n", + " 383.26\n", + " 408.64\n", " \n", " \n", " 09_throughput\n", - " 152.10\n", - " 152.00\n", - " 157.30\n", - " 184.65\n", - " 155.85\n", + " 156.25\n", + " 157.50\n", + " 159.85\n", + " 187.85\n", + " 159.80\n", " \n", " \n", "\n", @@ -2215,22 +2213,22 @@ ], "text/plain": [ " base triage+1 exam+1 treat+1 triage+exam\n", - "00_arrivals 225.75 225.75 225.75 225.75 225.75\n", - "01a_triage_wait 28.86 1.09 36.46 39.36 1.14\n", - "01b_triage_util 0.57 0.30 0.60 0.61 0.30\n", - "02a_registration_wait 113.56 138.79 106.27 108.46 140.14\n", - "02b_registration_util 0.83 0.84 0.83 0.83 0.84\n", - "03a_examination_wait 24.57 24.15 0.13 23.03 0.15\n", - "03b_examination_util 0.85 0.85 0.67 0.84 0.67\n", - "04a_treatment_wait(non_trauma) 137.72 139.98 151.82 2.26 152.09\n", - "04b_treatment_util(non_trauma) 0.86 0.86 0.86 0.63 0.86\n", - "05_total_time(non-trauma) 236.01 233.77 225.60 196.38 223.33\n", - "06a_trauma_wait 144.46 154.00 132.94 146.09 165.43\n", - "06b_trauma_util 0.80 0.83 0.82 0.82 0.80\n", - "07a_treatment_wait(trauma) 168.27 209.12 195.16 150.37 193.69\n", - "07b_treatment_util(trauma) 0.79 0.81 0.83 0.81 0.86\n", - "08_total_time(trauma) 390.68 402.95 422.40 403.82 400.37\n", - "09_throughput 152.10 152.00 157.30 184.65 155.85" + "00_arrivals 227.25 227.25 227.25 227.25 227.25\n", + "01a_triage_wait 29.52 1.17 29.47 23.99 1.21\n", + "01b_triage_util 0.60 0.30 0.59 0.58 0.30\n", + "02a_registration_wait 101.88 128.14 101.09 109.70 125.47\n", + "02b_registration_util 0.84 0.85 0.84 0.84 0.84\n", + "03a_examination_wait 25.34 24.93 0.16 24.03 0.14\n", + "03b_examination_util 0.86 0.86 0.67 0.85 0.67\n", + "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" ] }, "execution_count": 25, @@ -2247,7 +2245,7 @@ }, { "cell_type": "markdown", - "id": "c67d6b3b", + "id": "45a0c26a", "metadata": {}, "source": [ "## 11. Script to produce formatted LaTeX table for paper" @@ -2256,7 +2254,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "4d2d0e59", + "id": "f5819e0a", "metadata": {}, "outputs": [ { @@ -2292,56 +2290,56 @@ " \n", " 0\n", " Triage\n", - " 28.86\n", - " 1.09\n", - " 36.46\n", - " 39.36\n", - " 1.14\n", + " 29.52\n", + " 1.17\n", + " 29.47\n", + " 23.99\n", + " 1.21\n", " \n", " \n", " 1\n", " Registation\n", - " 113.56\n", - " 138.79\n", - " 106.27\n", - " 108.46\n", - " 140.14\n", + " 101.88\n", + " 128.14\n", + " 101.09\n", + " 109.70\n", + " 125.47\n", " \n", " \n", " 2\n", " Examination\n", - " 24.57\n", - " 24.15\n", - " 0.13\n", - " 23.03\n", - " 0.15\n", + " 25.34\n", + " 24.93\n", + " 0.16\n", + " 24.03\n", + " 0.14\n", " \n", " \n", " 3\n", " Non-trauma treatment\n", - " 137.72\n", - " 139.98\n", - " 151.82\n", - " 2.26\n", - " 152.09\n", + " 134.19\n", + " 134.80\n", + " 148.81\n", + " 2.10\n", + " 150.61\n", " \n", " \n", " 4\n", " Trauma stabilisation\n", - " 144.46\n", - " 154.00\n", - " 132.94\n", - " 146.09\n", - " 165.43\n", + " 144.23\n", + " 163.29\n", + " 153.04\n", + " 151.20\n", + " 189.95\n", " \n", " \n", " 5\n", " Trauma treatment\n", - " 168.27\n", - " 209.12\n", - " 195.16\n", - " 150.37\n", - " 193.69\n", + " 176.13\n", + " 208.33\n", + " 192.61\n", + " 165.71\n", + " 191.00\n", " \n", " \n", "\n", @@ -2349,12 +2347,12 @@ ], "text/plain": [ " Mean waiting time (mins) base triage+1 exam+1 treat+1 triage+exam\n", - "0 Triage 28.86 1.09 36.46 39.36 1.14\n", - "1 Registation 113.56 138.79 106.27 108.46 140.14\n", - "2 Examination 24.57 24.15 0.13 23.03 0.15\n", - "3 Non-trauma treatment 137.72 139.98 151.82 2.26 152.09\n", - "4 Trauma stabilisation 144.46 154.00 132.94 146.09 165.43\n", - "5 Trauma treatment 168.27 209.12 195.16 150.37 193.69" + "0 Triage 29.52 1.17 29.47 23.99 1.21\n", + "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" ] }, "execution_count": 26, @@ -2384,7 +2382,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "e6453c53", + "id": "be132a54", "metadata": {}, "outputs": [ { @@ -2399,12 +2397,12 @@ "\\toprule\n", "Mean waiting time (mins) & base & triage+1 & exam+1 & treat+1 & triage+exam \\\\\n", "\\midrule\n", - " Triage & 28.86 & 1.09 & 36.46 & 39.36 & 1.14 \\\\\n", - " Registation & 113.56 & 138.79 & 106.27 & 108.46 & 140.14 \\\\\n", - " Examination & 24.57 & 24.15 & 0.13 & 23.03 & 0.15 \\\\\n", - " Non-trauma treatment & 137.72 & 139.98 & 151.82 & 2.26 & 152.09 \\\\\n", - " Trauma stabilisation & 144.46 & 154.00 & 132.94 & 146.09 & 165.43 \\\\\n", - " Trauma treatment & 168.27 & 209.12 & 195.16 & 150.37 & 193.69 \\\\\n", + " Triage & 29.52 & 1.17 & 29.47 & 23.99 & 1.21 \\\\\n", + " 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", "\\bottomrule\n", "\\end{tabular}\n", "\\end{table}\n", @@ -2433,7 +2431,7 @@ }, { "cell_type": "markdown", - "id": "48513ce2", + "id": "495456e5", "metadata": {}, "source": [ "## End" diff --git a/content/02_model_code/output/table_3.txt b/content/02_model_code/output/table_3.txt index fd70718..c8034c3 100644 --- a/content/02_model_code/output/table_3.txt +++ b/content/02_model_code/output/table_3.txt @@ -6,12 +6,12 @@ \toprule Mean waiting time (mins) & base & triage+1 & exam+1 & treat+1 & triage+exam \\ \midrule - Triage & 28.86 & 1.09 & 36.46 & 39.36 & 1.14 \\ - Registation & 113.56 & 138.79 & 106.27 & 108.46 & 140.14 \\ - Examination & 24.57 & 24.15 & 0.13 & 23.03 & 0.15 \\ - Non-trauma treatment & 137.72 & 139.98 & 151.82 & 2.26 & 152.09 \\ - Trauma stabilisation & 144.46 & 154.00 & 132.94 & 146.09 & 165.43 \\ - Trauma treatment & 168.27 & 209.12 & 195.16 & 150.37 & 193.69 \\ + Triage & 29.52 & 1.17 & 29.47 & 23.99 & 1.21 \\ + 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 \\ \bottomrule \end{tabular} \end{table} From 5f7ae3b48aaba2d28d88b60812303a8e08b1a09c Mon Sep 17 00:00:00 2001 From: TomMonks Date: Sat, 6 Apr 2024 13:29:15 +0100 Subject: [PATCH 19/23] STRESS: updated implementation of streams --- content/03_stress/05_implementation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/03_stress/05_implementation.md b/content/03_stress/05_implementation.md index 21414b8..e48c6ba 100644 --- a/content/03_stress/05_implementation.md +++ b/content/03_stress/05_implementation.md @@ -22,9 +22,9 @@ A [conda virtual environment](https://github.com/TomMonks/treatment-centre-sim/b ## 5.2 Random sampling -All sampling uses [`numpy.random.Generator`](https://numpy.org/doc/stable/reference/random/generator.html). A `numpy` generator object implements the Permuted Congruential Generator 64-bit (PCG64; period = $2^{128}$). +All sampling uses [`numpy.random.Generator`](https://numpy.org/doc/stable/reference/random/generator.html). A `numpy` generator object implements the Permuted Congruential Generator 64-bit (PCG64; period = $2^{128}$; maximum number of streams = $2^63$). -Common random number streams are used in the model. These are created by through seed vectors (one seed for each activity in each replication). +Repeatable experiments and common random number streams are used in the model. Non overlapping streams are creating using a `numpy.random.SeedSequence`. One seed - the replication number - is passed to a `SeedSequence` and $n$ child seeds are spawned that are then used to create the $n$ streams. The seeds spawned by `SeedSequence` ensure that these streams are "very likely" non-overlapping. ## 5.3 Model execution From 422b7a7904ff67119cfbfa6bf55d0eb3741b835a Mon Sep 17 00:00:00 2001 From: TomMonks Date: Sat, 6 Apr 2024 13:34:38 +0100 Subject: [PATCH 20/23] MODEL: updated model nb -> SeedSequence --- content/02_model_code/04_model.ipynb | 98 ++-- src/full_model.ipynb | 665 +++++++++++++++------------ 2 files changed, 421 insertions(+), 342 deletions(-) diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb index 33a1344..e5dba27 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": "86a8d23e", + "id": "e251ce0d", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -16,18 +16,18 @@ }, { "cell_type": "markdown", - "id": "3a24837c", + "id": "6ab38314", "metadata": {}, "source": [ "## 1. Imports\n", "\n", - "The model is provided with a conda virtual environment `treatment_sim`. Details are available in the [Github repo](https://github.com/TomMonks/treatment-centre-sim/blob/main/environment.yml)." + "The model is provided with a conda virtual environment `treatment_sim`. Details are available in the [Github repo](https://github.com/pythonhealthdatascience/stars-treat-sim)." ] }, { "cell_type": "code", "execution_count": 1, - "id": "24a61cfc", + "id": "f9b9d8c8", "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "2ce455ec", + "id": "956f9cb7", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "a508b56e", + "id": "3a04b23d", "metadata": {}, "source": [ "## 2. Constants and defaults for modelling **as-is**" @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "27b4a53a", + "id": "4b7ab380", "metadata": {}, "source": [ "### 2.1 Distribution parameters" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "12b72bfb", + "id": "b98c91df", "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "bce2b5b8", + "id": "d1dba095", "metadata": {}, "source": [ "### 2.2 Time dependent arrival rates data\n", @@ -126,7 +126,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "91c24ca5", + "id": "31132d08", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "bd8ee67f", + "id": "8a8eccec", "metadata": {}, "source": [ "### 2.3 Resource counts\n", @@ -165,7 +165,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "39abaf23", + "id": "9f97c46b", "metadata": {}, "outputs": [], "source": [ @@ -183,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "7b4a7254", + "id": "bbb220c8", "metadata": {}, "source": [ "### 2.4 Simulation model run settings" @@ -192,7 +192,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "8a906075", + "id": "3b44984a", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "6db0a9e3", + "id": "c2f5d0d5", "metadata": {}, "source": [ "## 3. Utility functions" @@ -222,7 +222,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "fe5af794", + "id": "91481550", "metadata": {}, "outputs": [], "source": [ @@ -243,7 +243,7 @@ }, { "cell_type": "markdown", - "id": "fb95dd32", + "id": "44840021", "metadata": {}, "source": [ "## 4. Distribution classes\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "4ddc3f8b", + "id": "ee8a6b21", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +387,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "6c2a6318", + "id": "e3662ea3", "metadata": {}, "outputs": [], "source": [ @@ -469,7 +469,7 @@ }, { "cell_type": "markdown", - "id": "5065a2d7", + "id": "21f34196", "metadata": {}, "source": [ "## 5. Model parameterisation\n", @@ -480,7 +480,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "a5cf8450", + "id": "6a261de8", "metadata": {}, "outputs": [], "source": [ @@ -694,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "cc5b08c8", + "id": "a627b72f", "metadata": {}, "source": [ "## 6. Patient Pathways Process Logic\n", @@ -705,7 +705,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "941860ac", + "id": "11700ff1", "metadata": {}, "outputs": [], "source": [ @@ -837,7 +837,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "806225fc", + "id": "fc633380", "metadata": {}, "outputs": [], "source": [ @@ -988,7 +988,7 @@ }, { "cell_type": "markdown", - "id": "1e07e8b1", + "id": "284188bc", "metadata": {}, "source": [ "## 7. Main model class\n", @@ -999,7 +999,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "903bb261", + "id": "03770c5a", "metadata": {}, "outputs": [], "source": [ @@ -1141,7 +1141,7 @@ }, { "cell_type": "markdown", - "id": "5dc2be06", + "id": "cb89619b", "metadata": {}, "source": [ "### 8. Logic to process end of run results.\n", @@ -1152,7 +1152,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "1791e86b", + "id": "f6a4fd58", "metadata": {}, "outputs": [], "source": [ @@ -1343,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "524da74a", + "id": "5b4b5208", "metadata": {}, "source": [ "## 9. Model execution\n", @@ -1356,7 +1356,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "523ea929", + "id": "2dfa5971", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1404,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "6c003a8f", + "id": "3adde6ad", "metadata": {}, "outputs": [], "source": [ @@ -1442,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "f279fa09", + "id": "6cfd29ba", "metadata": {}, "source": [ "### 9.1 Single run of the model\n", @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "837012af", + "id": "1c592473", "metadata": {}, "outputs": [ { @@ -1605,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "2755b05f", + "id": "75df4e4d", "metadata": {}, "source": [ "### 9.2 Multiple independent replications\n", @@ -1616,7 +1616,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "326749e0", + "id": "592c20b9", "metadata": {}, "outputs": [ { @@ -1807,7 +1807,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "5006e28b", + "id": "a2977d15", "metadata": {}, "outputs": [ { @@ -1844,7 +1844,7 @@ }, { "cell_type": "markdown", - "id": "78ea3a02", + "id": "f356c85f", "metadata": {}, "source": [ "### 9.3 Visualise replications" @@ -1853,7 +1853,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "2611c1d7", + "id": "03f0caf3", "metadata": {}, "outputs": [ { @@ -1877,7 +1877,7 @@ }, { "cell_type": "markdown", - "id": "ab72874e", + "id": "31679e4b", "metadata": {}, "source": [ "## 10. Scenario Analysis\n", @@ -1890,7 +1890,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "c7559d18", + "id": "87fa1b65", "metadata": {}, "outputs": [], "source": [ @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "e857e38a", + "id": "079a12b9", "metadata": {}, "outputs": [], "source": [ @@ -1967,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "ccfb499b", + "id": "679b9dc1", "metadata": {}, "source": [ "### 10.1 Script to run scenario analysis" @@ -1976,7 +1976,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "7ec96b6f", + "id": "51a9bfbf", "metadata": {}, "outputs": [ { @@ -2016,7 +2016,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "fc24fa00", + "id": "77d20748", "metadata": {}, "outputs": [], "source": [ @@ -2047,7 +2047,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "36f7e9a5", + "id": "4e63a89b", "metadata": {}, "outputs": [ { @@ -2245,7 +2245,7 @@ }, { "cell_type": "markdown", - "id": "45a0c26a", + "id": "7cb09bfb", "metadata": {}, "source": [ "## 11. Script to produce formatted LaTeX table for paper" @@ -2254,7 +2254,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "f5819e0a", + "id": "82a91037", "metadata": {}, "outputs": [ { @@ -2382,7 +2382,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "be132a54", + "id": "cc53c15f", "metadata": {}, "outputs": [ { @@ -2431,7 +2431,7 @@ }, { "cell_type": "markdown", - "id": "495456e5", + "id": "ea8a95ab", "metadata": {}, "source": [ "## End" diff --git a/src/full_model.ipynb b/src/full_model.ipynb index ec9a707..ab28841 100644 --- a/src/full_model.ipynb +++ b/src/full_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "3a46e217", + "id": "5f6bc1fb", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -26,7 +26,7 @@ }, { "cell_type": "markdown", - "id": "b33edb0c", + "id": "75ac3244", "metadata": {}, "source": [ "## Imports\n", @@ -39,7 +39,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "2bdd51b8", + "id": "d7fe643e", "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "faa6b47e", + "id": "a5aaf4aa", "metadata": {}, "outputs": [ { @@ -74,7 +74,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "6f44cebc", + "id": "d5cfef2a", "metadata": {}, "outputs": [], "source": [ @@ -87,7 +87,7 @@ }, { "cell_type": "markdown", - "id": "5e42cfc1", + "id": "83fbca98", "metadata": {}, "source": [ "---\n", @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "69a2c13a", + "id": "1a9f16c7", "metadata": {}, "source": [ "## Constants and defaults for modelling **as-is**" @@ -123,7 +123,7 @@ }, { "cell_type": "markdown", - "id": "f7e876f4", + "id": "e09c1788", "metadata": {}, "source": [ "### Distribution parameters" @@ -132,7 +132,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "62594f9e", + "id": "ed8cdf44", "metadata": {}, "outputs": [], "source": [ @@ -167,7 +167,7 @@ }, { "cell_type": "markdown", - "id": "8dcd8282", + "id": "5b625648", "metadata": {}, "source": [ "### Time dependent arrival rates data\n", @@ -178,19 +178,17 @@ { "cell_type": "code", "execution_count": 5, - "id": "0fb04e3d", + "id": "f47e4be1", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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wKUo2gEAAAAAcCmKdgAAAAAAXIqiHQAAAAAAl6JoBwAAAADApSjaAQAAAABwKYp2AAAAAABciqIdAAAAAACXomgHAAAAAMClKNoBAAAAAHApinYAAAAAAFyKoh0AAAAAAJeiaAcAAAAAwKUo2gEAAAAAcKk0F+1//PGHrV692nn82WefWfv27W3kyJF25syZqxocAAAAAADXszQX7Q8++KD9+eefZma2detWu+uuuyw8PNzmzJljw4YNS9PfmjBhglWvXt1y5MhhkZGR1r59e9u4caPfPpJszJgxVrBgQcuaNas1bNjQ1q5dm9awAQAAAAAIOmku2v/880+rVKmSmZnNmTPH6tevb++99569+eab9vHHH6fpby1cuND69etnS5YssXnz5llSUpLFxsbaiRMnnH0mT55s06ZNsxkzZtjSpUstKirKmjVrZsePH09r6AAAAAAABJUb0voLkiwlJcXMzL777jtr06aNmZnFxMTYoUOH0vS3vv76a7/Hb7zxhkVGRtrvv/9u9evXN0k2ffp0e/zxx61jx45mZvbWW29ZgQIF7L333rMHH3wwreEDAAAAABA00nylvVq1avb000/b22+/bQsXLrTWrVubmdm2bdusQIEC/yiYY8eOmZlZnjx5nL+5f/9+i42NdfYJCwuzBg0a2OLFiy/4NxITEy0+Pt7vBwAAAACAYJTmon369On2xx9/WP/+/e3xxx+3kiVLmpnZRx99ZHXq1LniQCTZoEGDrG7dula+fHkzM9u/f7+Z2XmdAQUKFHCeO9eECRMsV65czk9MTMwVxwQAAAAAQCCleXh8xYoV/WaP95oyZYplzJjxigPp37+/rVq1yn766afznvN4PH6PJZ23zWvEiBE2aNAg53F8fDyFOwAAAAAgKKW5aL+YLFmyXPHvPvzwwzZ37lxbtGiRFS5c2NkeFRVlZqlX3KOjo53tBw8evOhQ/LCwMAsLC7viWAAAAAAAcIvLKtojIiIuemX7XIcPH77sF5dkDz/8sH3yySe2YMECK168uN/zxYsXt6ioKJs3b55VrlzZzMzOnDljCxcutEmTJl326wAAAAAAEIwuq2ifPn16urx4v3797L333rPPPvvMcuTI4dynnitXLsuaNat5PB4bMGCAjR8/3kqVKmWlSpWy8ePHW3h4uN1zzz3pEhMAAAAAAG5xWUV79+7d0+XFX3rpJTMza9iwod/2N954w3r06GFmZsOGDbNTp05Z37597ciRI1azZk379ttvLUeOHOkSEwAAAAAAbvGP7mk/deqUnT171m9bzpw5L/v3Jf3tPh6Px8aMGWNjxoxJa3gAAAAAAAS1NC/5duLECevfv79FRkZa9uzZLSIiwu8HAAAAAABcHWku2ocNG2bz58+3F1980cLCwuy1116zsWPHWsGCBW3WrFnpESMAAAAAANelNA+P//zzz23WrFnWsGFD69mzp9WrV89KlixpRYsWtXfffde6dOmSHnECAAAAAHDdSfOV9sOHDztLs+XMmdNZ4q1u3bq2aNGiqxsdAAAAAADXsTQX7SVKlLDt27ebmVnZsmXtww8/NLPUK/C5c+e+mrEBAAAAAHBdS3PRft9999nKlSvNzGzEiBHOve0DBw60oUOHXvUAAQAAAAC4XqX5nvaBAwc6/27UqJFt2LDBli1bZjfeeKPdcsstVzU4AAAAAACuZ2ku2rdv327FihVzHhcpUsSKFClyNWMCAAAAAAB2hfe0161b12bOnOlMQgcAAAAAAK6+NBfty5Yts9q1a9vTTz9tBQsWtHbt2tmcOXMsMTExPeIDAAAAAOC6leaivUqVKjZlyhTbuXOnffXVVxYZGWkPPvigRUZGWs+ePdMjRgAAAAAArktpLtq9PB6PNWrUyF599VX77rvvrESJEvbWW29dzdgAAAAAALiuXXHRvmvXLps8ebJVqlTJqlevbtmyZbMZM2ZczdgAAAAAALiupXn2+FdeecXeffdd+/nnn61MmTLWpUsX+/TTT/1mlAcAAAAAAP9cmov2p556yu666y57/vnnrVKlSukQEgAAAAAAMLuCon3nzp3m8XjSIxYAAAAAAODjsor2VatWWfny5S1Dhgy2evXqS+5bsWLFqxIYAACXUmz4F+n+Gtsntk731wBw5a7F94AZ3wUAAuuyivZKlSrZ/v37LTIy0ipVqmQej8ckOc97H3s8HktOTk63YAEAAAAAuJ5cVtG+bds2y58/v/NvAAAAAACQ/i6raC9atKiZmZ09e9bGjBljTzzxhJUoUSJdAwMAAAAA4HqXpnXaM2XKZJ988kl6xQIAAAAAAHykqWg3M+vQoYN9+umn6RAKAAAAAADwleYl30qWLGlPPfWULV682KpWrWrZsmXze/6RRx65asEBAAAAAHA9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k7M77rjD2Z6SkhLAqK7Mvn37nLZ88803koKvHXv27DmvDcFk5syZTvwPPvig/vrrr0CH9I999NFHatKkiUqXLq3ChQvr559/DnRIV4TcuFuo5YfcuFso5cfXm2++6eSqZ8+eSk5ODnRIV8XJkyedc9CGDRs625OSkgIY1ZVLz/M1rrS7gCSrXr269e/f35588kmLi4uzu+66K2iHYufLl8/atm1r0dHRNnToUJs2bZqdPHky0GFdsVDLj5ckS0lJsUqVKtlNN91k77zzjk2aNMlGjx4d6NCuiooVK1rNmjVt9OjRtnTpUuvQoYOZBecV96SkJKtSpYqVLFnSWrRoYZ9++mnQtSN79ux2yy23WGRkpLVv394+++yzQIeUJh07drTu3btb//797Z133rGBAwdaXFxcoMP6R0qUKGEZMmSw//znP1a/fn27/fbbbfHixYEOK83IjbuFWn7IjbuFUn581atXz9q2bWsjR460L774wrp06RJU5wAXkyVLFmvXrp01atTI9u/fb7fccouZBe8V9/Q8X6NodwGPx2NZsmSxfPny2ffff28//PCDeTwe69KlS9AVht4PWPPmza1jx442c+ZMGzt2rE2aNCloC/dQyo8vj8djGTJksP79+9uyZcssPj7e3nzzTRs/fryNHTs20OFdMe97sFKlSlamTBn74YcfbMaMGbZ48WJn+FWwFbz58uWzUqVKWfny5W3MmDHWsWNH++yzz4KmHZIsLCzM6tSpYx07drShQ4dap06dgqpwj4iIMEmWlJRkS5YssU8//dQGDRoUVCe4Z8+e9XtcuXJlK1WqlI0YMcJeffVVq1atmt15551Bd4JLbtwt2PNDbtwtlPNj9n/3RZcoUcKyZctmq1atss8//9y+++4769atW1CcA1yKx+Ox6tWr28qVK+3JJ5+08PBwq1y5spkFZ+GerudrV+V6PdJsz5492rRp03lDx2vUqKHXX39dcXFxKlOmjKpXrx6UQ7G3bdumPHny6JNPPtEnn3wij8ej0aNH68SJE4EO7bKEan7Wrl2rf/3rX1q3bp3f9qlTp+qhhx5SUlKSXnnlFWXMmFFjxowJUJRXZv/+/edtW7VqlVq3bq1FixZp7ty5ypUrlzp16uQ8H0zDy1avXq1ixYrp3Xff1eDBg+XxePTZZ59JCp6h8r/88oty5cqlb7/9ViNHjlTmzJmdNrjNX3/9pUOHDvm9R3bt2qWiRYtq0aJFWrJkibJmzapu3boFxZDSlStXql69epo0aZIWL17sbN+zZ4+aNWum3377TZLUpEkTFSpUyNVDSsmNe3MjhVZ+yI27hVp+fB08eFBJSUl+w8S3bdummjVr6rvvvtP333+vnDlzqmvXrkFzDnApPXr0UN++fbVw4UKVLl1aVapUcZ4LtqHy6XW+RtEeAH/++ac8Ho9uvvlmtWvXTj///LOOHDkiSXrqqad09913S0r9ci1durRq166ttWvXBjDiS1u/fr1mzJihJUuW+G2fMWOGcy/xa6+9Jo/HozFjxri+cA+1/HjFxcU599m0adNGt912m9auXauEhAStXr1aefLkcQ5wr776qrJkyaKhQ4cGOOrL481Zo0aNNG3aNK1evVqSdPz4ccXGxmrYsGGSpLlz5yoiIkJ33XVXIMP9Wxs3btT//vc/HT9+3NkWHx+v3r17a9q0aUpISFCfPn38DgRu64DYuHGjvv32W+3du9dv+yOPPKLRo0fr1KlT6tu3r8LCwlxXuK9du1Yej0fNmjVT//79FRcXp5MnT0qSHnroIY0YMUKS9MMPPyhr1qzq2bOnDh48GMiQLyk5OVm1atVy7hnMmTOnRowYoU8++USS1KlTJ/Xs2dPZv3Xr1sqSJct53+luQG7cmxsptPJDbtybGyn08uNrw4YN8ng8io2N1YgRI7Rr1y5J0unTp3XnnXdq1KhRkqRvv/1WOXPmVI8ePVx3DnAxq1evVrt27bRw4UJt2bLF2f6f//xHrVq1UmJiopYtW6ZSpUoFReF+Lc/XKNoDYOXKlfJ4PCpSpIjuuecexcTEqHv37nrllVe0Y8cORUREaO7cuZJSC60CBQqoUaNGOnPmTIAjP9+hQ4ecQrBGjRpq27atli5dqri4OK1fv1433XSTli9fLim1cM+cObOGDBni6sI9lPLjKyUlRcOGDZPH49GQIUN0zz33qEqVKmrfvr1+/PFH9e7dW127dtWpU6ckSS+88ILy5cvn+t72lJQUzZo1Sx6PR/ny5dPAgQOVM2dOjR8/XsuWLdOGDRt08803a/Xq1UpJSdH//vc/eTwede/ePdChX5DvJCYPPvighg4dqsTEREnShx9+qLx58+rAgQNKSEhQv379lDlzZs2ZMyfAUfvbu3ev04YOHTpo2LBhOnr0qFJSUvTRRx+pWLFiOnr0qCSpX79+yp49u6va8N5778nj8ahSpUqqW7euypUrp0GDBumXX37RggULlC9fPv3555+SpB9//FEej0d9+vRx9UnT3r17VbJkSdWvX18zZ87Uvffeq7p166p9+/aaMmWKcufOrZ9++snZ//bbb3fa6Cbkxr25kUIvP+TGvbmRQis/vt5//315PB7deOON6ty5s/Lnz6+nnnpKv/zyi1auXKnIyEjn4sT333/vnC+4XUJCgqpUqSKPx6NWrVqpUaNGzoTVycnJqlSpkjPKc8mSJSpXrpyKFy8e4Kgv7lqfr1G0X2PeL7/ffvvNKWA/+ugjvfTSSypcuLBuv/125ciRQz169FBCQoIk6fDhw9q8eXMgw76khx9+WB6PR0888YRatWqlli1bql69elq6dKnatGmjtm3b6vTp05Kkl19+WXny5HFtIRiK+TmXt6hdtGiRFi1apMmTJysqKkoFChRQkSJF/HLjLazcLj4+XjNnzlSmTJk0depUff/997rnnntUtmxZNWrUSMWKFdOrr74qSUpMTNRXX33l2tsatmzZojZt2sjj8WjkyJFq2bKlKlSooJEjR2rDhg3q2rWrpk6dKkk6cOCA7rvvPuXJk0fHjx93zRC5I0eOqFmzZs7omsqVK6tx48bq27evDhw4oKZNmzorFZw5c0Y9e/ZUgQIF/HqqA23GjBnyeDx66aWX9OKLL2rkyJEKDw/Xo48+qsyZM2vs2LHOwfmXX37R+vXrAxzx+RISEnTixAnt2bNHUuow2Hz58qlTp0769ddfdejQIfXs2VNNmjSRx+MJiitQErlxu2DPD7lxb26k0M6Pr5dfflkej0evvPKK3n77bT3yyCPKly+f7rnnHhUoUEDTp093jvkLFy507TmNr1OnTumDDz5Q0aJFVadOHX322WcqVaqUWrVqpYEDB2ratGlq3769jh07puTkZC1atEjVq1fX1q1bAx36BW3dulVt27a9ZudrFO3XkHdoh/e/ixYtUqZMmdS7d28dPnxYCQkJevHFF9W6dWu98847ktw35NWX71CVBx98UPnz59d///tfLV68WBMmTFCZMmV04403KioqSrt373b2dWshGGr58XVunA899JCyZ8+uTz/9VFJqoThz5kx9/PHHgQjvivm268SJE5o2bZo8Ho/eeOMNSdLmzZvVpUsXFStWTLNnzw5QlGm3c+dONW/eXMWKFdPevXv1wQcfqGfPnsqdO7fCw8PVoEEDZ2THwYMHL3g/f6DFx8erQYMGqlSpktauXasPP/xQ3bp1U3R0tCIjI1W3bl2nSE9MTAx4Gw4cOKBffvlF//vf/5yD6fjx45UpUyZNmzZNSUlJWrFihYYPH66bbrpJH374oST3ziewbt06tWnTRuXLl1fp0qWd3v2dO3cqMjJS9evX186dOyWlXq36448/AhnuJZEb9+ZGCq38kBv35kYKvfz4OnjwoDPqwXtRaNKkScqQIYNmzpyps2fPav369XrggQdUunRpJ1fBwNsRdPbsWUmpy/JlzZpVo0eP1tGjR/W///1PsbGxypIlizwejzMaIiUlxRn96VZbtmxR69atr8n5GkX7NXDuVeXk5GTnjbto0SJlzpxZd999t+Li4pzng4XvkPCePXsqR44cevfddyVJmzZt0vvvv++qYa8XEqr52bZtm7788ku/bd52SanDkrNkyaKPPvroWof2jyUkJDgnFb4nF6dOndKzzz4rj8ejZ599VlJqvvbt2xeQOC/X9u3bNWPGDI0fP97pSNm/f7/q1KmjG2+80bmfbcGCBerXr5/zGXOT7du367nnntPYsWP1/vvvS0rtSKlWrZrKlSunNWvWSJK+++47PfbYY65qw6pVq1SpUiXFxMQoU6ZMqlatmtOhMHHiRHk8Ho0fP955r7lpRMCFLF++XDly5NBDDz2kxx57TC1btvS7n2737t2KiopSvXr1/K7OuPFEndykcmNupNDKD7lxb26k0MuPr1WrVqly5coqXLiwsmfPrtq1azvnnFOmTFGGDBk0ZcoUSann3d7ngsGGDRvUq1cvNWjQQPfff78zd9IHH3ygsLAwPfroo86+n3/+uX744QdJ7s/buRME1q9fP93P1yja09mff/6pTJkyqVGjRvrwww/Pm7VbSr13KHPmzLr33nv9rki70ebNm/Xtt9/6bfMOfZekBx54QFmyZNG7777r2kkjfIVafrwOHTqk7Nmzy+Px6N5779Urr7zi9Nz66t+/v7JkyeIUisFg/fr1qly5sjp37qytW7fq8OHDfs/7XnGfPHmys92tB4CVK1eqcOHCqlWrlrJly6aCBQvqiSeekJQ67K9BgwYqVKiQMzzMO3GQm6xYsUIxMTGqVauW8ubNq2zZsunxxx+XlHoieOutt6p48eLO58tN3w0rVqxQeHi4hgwZop9++kmvv/66ChcurIYNGzr7TJ06VR6PRxMnTtSxY8cCGO3fW7dunTJnzqyJEyc627Zs2aLy5curTZs2zvtnz549ioqKUtOmTZ17I92G3Lg3N1Jo5YfcuDc3Uujlx9eKFSuULVs2DRo0SIsXL9Zzzz2nEiVKqEWLFs5V5unTp/tdjAgWK1asUEREhDp37qw2bdqoVKlSKleunFatWiVJmjNnjsLDw9WrV68AR3p59u3b58R+rm3btqlhw4bper5G0Z7Oli1bpooVK6pdu3bq0aOHChYsqGnTpp13j83ChQuVLVs2tW/f/rzZlt3i0KFDuuGGG+TxeNSvXz9NmjTpglede/furaxZs2r27NmuH9YSSvnxlZCQoN69e+vll1/WqFGj1LJlS8XExOg///mPli5d6rdvv3795PF49L///S9A0abNyy+/rCpVqqht27aqUaOGOnfurDlz5vgVgidOnNDUqVOVOXNmPf300wGM9tJWrVqlrFmzatSoUTp27Jg2btyo7t27KyYmxnkPbt26VY0bN1ahQoW0fft2Se4a7bFy5UqFh4dr5MiRSkhI0Pr16/Xoo48qZ86cmj9/vqTUW2Lq16+v4sWLu2qlhS1btihz5szO/fVS6v/b4cOHKzo62hlmKcl5P40ZM+a8pSDd4sSJE7rrrruUJUsWZ1Ze7+iaO+64Q507d5b0fyOk9u7dq8yZM+u2225zhi+6Bblxb26k0MoPuXFvbqTQy4+vzZs3Kzw83Fnhxuvhhx9W0aJF/UaCPv/88woLC3P1OY2vNWvWKGvWrH7xfvrpp8qbN6+eeeYZSak5++ijjxQeHq5+/foFKtTLsmfPHuXKlUt58+bV0KFD/SY49NqyZYsaNWqUbudrFO3pbP/+/erataszBPn1119XkyZN1LBhQ/Xq1UsrV650hrnMnz9fBQoUcCbXcKP+/ftr+PDhmjRpkurVq6fSpUtr2rRpzgzxXr1795bH43H90OtQy4+vwYMHKzY2VlLqlc2pU6fqrrvuUoECBTR+/Hi/L5zhw4e7csKZC1m8eLEqVqyo7du3a/ny5Ro7dqxy586t7t27a+rUqX5X1MeNG6c8efK4cijZzp07lT9/frVr185v+6JFi5Q1a1Z99913zrZt27apWbNmCg8P9zvhCrTdu3crOjparVu39tu+aNEi5ciRw29UzrFjx9S4cWNFRES44r2WkpKiF154QZGRkectbfjGG2+oRIkS2rNnj19n0NNPP62IiAgdOnToWod72ebOnet0aHnv59yyZYvCw8P14osvOvt5T3r37dunjRs3BiTWiwnV3Hz++edBnxsp9SR0xowZIZWfTz/9NCRyw2fH3fk518SJExUdHa3Ro0f73W765ptvqmTJktq9e7ffOc3EiRNde07j68iRIypXrpzKly9/3mjIGjVqaMiQIc7jpKQk/fe//5XH49GgQYOudaiXbd26dWratKneeustdezYUbGxsapbt65+//13v1G4O3bsUOPGjdPlfI2iPZ34fiFOnjxZxYsX14EDBySlTsjgXfLg1ltvVZMmTZz7vt18ZTolJUWjR492ejWl1HttevXqpZw5c2rSpEn6/PPPneeGDh3qipPzvxMq+fHyfsEnJyerWrVqeu6555znYmNjFR0drQoVKqhGjRqqVq1a0Awh89WnTx+1bdvWGdK3e/duFShQQB6PR5UrV9b48eO1YsUKSXLtwW3VqlWqUKGCbr/9dn311VfO9sWLFytnzpzn9eJu2bJFbdu2ddVyNb///rsaNWqk2NhYv7XWly5dqhw5cmjRokV++x89elStW7fWpk2brnWoF3To0CFNmzZN5cuXV9++fSWlznGRO3dujR071tnPt6fcre8nX19++aVatWqlunXr6quvvlLx4sX10EMPOc97vyPcdJvCueLi4kIiN+devfzmm2+CPjdSai6CPT8bN27UW2+95Tz++uuvQyY3U6dODercXEgofK+dKz4+XqNGjVLNmjWdQvbw4cPn5crXuUWwW40ZM8Yp0L3DxTdu3KiwsDBnMmevpKQkzZ071/U1Q6tWrZwRAevWrVP37t3VsGFD3Xrrrfrwww918OBBSalX5du0aXPVz9co2q+y3bt3O4Wd94vj5MmTatWqld58801J0n333aeiRYvqjz/+0Mcff6xOnTo5a/m5lffL/eTJkypevLgmTJjgPNe6dWtFRESoYcOGuvnmm1W1alVnogk38/bIhkJ+znXmzBklJSXpscceU58+fSRJ3bp1U4ECBbRjxw799ddf+vTTT9WkSZOg6I328h6UFy1apEaNGjlL7fXq1UvFihXTihUrNHToUNWoUUOFChW64H38brJkyRLV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0kSJiYmu/KzMnj1bZcuW1VNPPaWbb775vCvuR48eDYrcxMfHq0yZMipVqpSk1O/bO+64QzVr1lTGjBnVpEkTvfDCC87+33zzjetz8/rrr6tZs2aSUtszbtw49ezZU927d3cKJu8VdzfnZ8uWLcqVK5ffe+s///mPihYt6tzS59tJ/O2337o6NydOnFDLli39Rmc999xzzvJZviOJ3J4br6+++kp16tTxWzN+/vz5zhK2vmt6B8Nnx+vMmTPq1KmT7r//fmfbzz//rJ49eypz5szO8dJ7xf3WW29Vv379guJK++bNm505he6//36/Sdl8458wYYIqV66sYcOGnTcq1E3WrFmjBg0aOKMDpk2bpuTkZCUnJyslJUUJCQlq0aKFSpQo4cyddK1QtP9Da9euVcaMGZ1e2+PHj6tz587q0KGDEhIS/Aqk+fPnKzw83NVLax04cEBlypRxDmp79+71u9/ba+7cuSpfvryzLJWbhyY99dRT6tq1q9+2/v37y+PxqESJEtq3b5+k1AO02/Pja8OGDbrpppv8JpI7duyY3n//feXJk8fv4NCyZUvVrVs3KA4AcXFxatGihbp166Z69eqpcOHC+v777y/4Hps1a5ayZ89+0XUz3WDv3r2qXLmy320z+/btU0REhP773/9K+r8Oh19//VWNGzdWvXr1NG/evIDEeyFxcXFq3ry57rzzTjVp0kRVqlTRRx99dMHC/eeff9Ydd9yhSpUq6csvvwxUyI6zZ89q0qRJ6ty5s/766y8n1i1btqhQoUJOx503B0eOHNG4ceNUp04d7d+/P2BxX0pCQoI+++wzvytMzzzzjDwej5o3b65bb71V+fLlc4bwSanHHzetPHCuzZs3q1u3bjp48KDGjh2rsmXL6umnn1bfvn319ttvS0rtVHF7bk6dOqVXXnlF4eHhGj58uNq0aaPY2Fh9+OGH+vDDD9WnTx8VK1ZMs2bNcn7H7bkZO3as7r77bklSzZo1FRsbqzvuuENNmzZVxowZnZE1f/31l6vz8/PPP593LiNJ5cqV0x133OE8Pve8za25OXTokMqVK6d3333X2TZs2DCVLFlS1apV00033eR03rk9N16fffaZoqKi/Iqh33//Xc2bN9fUqVOVJ08evw5JN+fH18mTJ1WlShU99dRTftt37NihXr16KU+ePFq4cKGk1I6/AQMGqGnT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zx7Vr19fLVu2VN++fdW7d29FREQE/MT8Qi4nP75F3sqVK3XvvfcqIiLC1V+Ux44dU4cOHXT33Xerb9++qlKlisaMGXPBwv3333/XzJkz1blzZ40YMcKVV9l87d69W9WrV1eZMmVUrFgxjRw58pKF+6lTp9SnTx+FhYU59726SVrb065dO2XPnt1VV3h37tzpN5pD+r/P0Y4dOzR48GC/UQSnTp3Sgw8+qPDw8IDnZPXq1cqZM6ffjPzek4rt27crOjra73aEQ4cOKW/evIqIiHBlB9Dx48dVsGBBeTweZ+Zur61btyoqKkoPPPCA34nG0qVLNWnSJNeN2Lic3IwePVpScCxJeSW5WbJkicaMGePKUWppyY+U+t2wcOFCrV692nXnN1eSGze/5y4nN2PGjJGU2o6PPvpIjz/+uJ577jlXXjC6kvycOnVKixcvduXkZb7Onj2r4cOHq3379vrss8/UpEkTNW/e3K9w971daf369frwww/1v//975LnCm7wdyvIXGgE1fDhw+XxeFxZM1xOB4T3HOi5555T586dNWnSJIWFhQWsYJco2i/Lrl275PF45PF4nOG43hPZrVu3qnDhwurTp4/f73gTf+4skW6Qll7Or776Sr1791b16tXVvXv3gJ+YX0ha85OSkqJt27Zp9OjRrmyPrxMnTmjcuHH66KOPJKUu53Khwj0Yff7552rVqpX+/PNP/etf/1KhQoUuWeju379fd911l7Mqg9tcbnu897U2bdpUHo/HNZ0r27Ztk8fjUcWKFZ3JcLwHsm3btikqKuq8mVITEhLUvn17Z+nHQElJSVGfPn3k8XiUMWNGzZ4923lu9+7dypw5s/r06XPe/azDhw935ZU1KfU7rE+fPmrUqJGio6PVvHlz57nJkyerS5cuF7wy4Lb5U64kN253pblx461KoZafK82NG6UlN27uePAVSvm5kF9//VVvvfWWpNT1vhs3bnxe4e7G74G/czkryPjmLTExUf/9739deQtjWjsg/v3vf8vj8SgiIiLgF1go2i/Dhg0bVKpUKRUqVEjh4eFO0k6dOqWyZcuqa9euQfMlc7m9nL6FYGJiopKSklw7odGV5idYDnLx8fF+8Q8dOlRVqlTR6NGjnfufTp8+HXQHgn379jnLuknS9OnTnULX9x483wn43PoelC6/Pd7P1v79+111X+tnn32m7Nmzq0yZMqpatapzT+GxY8dUpEgR3XfffZe8fy3QPvroI9WtW1cPPPCAPB6P0/F47NgxjR071u/zHiyf/ZkzZ6pw4cL68MMPVbJkSWcGWym4TvzSkptgESq5kUIvP+TGPROBXkgo5edc5/5/X7ly5QWvuHvXZA8Wl7uCjG+nsVvfg5fTAeFrzpw58ng8rrjIR9F+GY4eParWrVurR48e6t+/v99w1p07dwbVAS0tvZwXm5XYbUIpP5fi+2U4ZMgQ54r7vn379Oijj+r22293fa7+zvPPP+8Uut51yp9//nlX9tZejou1x43Dsbdt26abbrpJPXv2VOfOnVW1alVnsqZffvnFde+tc1dTOHLkiG688UYNGTJEEydOlMfjcWZNdlvsadG2bVs99thj+vLLL5U/f36/E1y3XVX3IjfuzY10feSH3LhbsOYnLbz5WbFihVO4f/zxx3rkkUeUO3duHTp0KChz+HcryIwaNSrAEV7a5XZA+Bbw3pGtgUbRfgm+H6bvvvtOMTEx+uSTT9S1a1dlzZrVmSzHLVeaLleo9HKGan4uxTc/Q4cOVfXq1VW+fHlly5bNlRNpXS7fjhXfoeVdunRRjhw5XHeP7t8Jpvb4fj5efPFFVa9eXW+++aaaNGmiatWqOYW72z5HvsvleL3//vu67bbbtHz5cg0ePFgej0fvv/++JLl+COmaNWvUq1cvrVixwrlPOCkpybmfLiUlRd98843y58+v1q1bO7/ntrxI5MbLjbmRQis/5Ma9uZFCLz9/59y5ErztWLlypZo1a6bcuXMrR44cAb0v+mpw+woyl+vvOiBGjhwpyT2j8yjaL2Dz5s369ddf/YbiHj58WF27dtVrr72mgwcPqmPHjgoPD3c+eMH2BRPMvZyhnJ+0rE6QlJSkm266SREREUFxJfrvluHyfd9Nnz5dHo9HuXLlcu1EgcHenl27dp23NN3y5cvVunVr/fTTT/r555916623qnr16tq7d68k93w3rF27Vnnz5tWTTz7pzGotpZ4YVapUyRl6OGjQIHk8Hn3wwQeS3HtlKj4+XjfeeKM8Ho86dOigpk2bavbs2Tp79qzi4+MVExOjl19+WZL09ddfq1ChQqpbt26Ao74wcuPe3EihlR9y497cSKGXnwu5nCUFvfnp3LmzcufO7cqZ1M8VrCvIXIlg6oCgaD/H7t27nUnNHnnkEU2cONF57l//+peKFy+uxMREHThwQJ06dVKuXLkCPgnTpYRaL2eo5ccrrasTJCYm6v7771eWLFlcfwA4fvy48+9zl6vZt2+f/vvf//oNCUxKStLAgQMVERHhmknafIVCe7Zt26ZMmTIpT548mj59ujMzsST17NlTzZo1kyTNnz9fDRo0UO3atS+59vy1dPbsWT366KPOpHl33HGHqlSpooULF+rkyZP697//rZo1ayohIUFHjhxxZrD1TuboRgkJCXrppZeUN29etWrVSm+88YYKFSqk9u3ba+LEiZo0aZK6dOmiU6dO6ezZs/r8889VunRp55YLtyA37s2NFHr5ITfuzY0UWvnxdSVLCj7++OOunUndVzCvIHMxodQBQdF+jjVr1qh27dryeDwaM2aMqlatqrp162ry5Mnas2eP2rZtq9dee01S6hu4RYsWKliwoE6fPu263s5Q7OUMpfx4XcnqBJI0cOBA13dIrFu3ToULF9Ybb7zhbPNdriZ//vx+HS9S6gQtGTNmPG+tZjcIhfakpKTo448/VrFixZQpUyYNGjRIFSpUUMeOHTVv3jytXr1abdu21eLFiyVJ3377rSpVqqTGjRv7LTEYSFu3blW3bt2UNWtWLViwQEOGDFFsbKwqVqyoAQMGqHLlys68FgcPHtTo0aNd02Hiy/s59/4/femll5QhQwa9+uqr2rdvn9555x1Vq1ZNmTNnVpYsWZyT2aSkpAsOo3UDcuPe3EihkR9y497cSKGbH+nKlqyTUs/z3H6BJZhXkLmQUOyAoGg/R0pKilatWqVatWqpWrVqOnTokF588UV17NhRefPmVc6cOdWhQwfnA7lr1y5nlmW3OXnypGbOnBlSvZyhlB+vtM5+74ai6XIkJSXpoYceksfjUaFChZwOIknas2ePsmbNqoceeuiC7fnrr7+uZaiXJZTak5CQoA8++EA333yz2rVrp/379+uBBx5QixYtVLhwYUVEROiJJ55w9p8/f77fDPiBEB8frz179jhD9f/66y/FxsaqSJEi2rFjh/766y+99tpruummm5QhQwZ9++23zu+65X40X3/++acefvhhtWnTRoMHD3bWVPYuLzN58mRn33fffVdff/11oEL9W+TGvbmRQis/5Ma9uZFCLz/nupIl69w6cvVcwb6CjK9Q64Dwomj34fsFuHr1at18882q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c1AWiUlJSXrttdeCrrPrYpYuXSqPx6O1a9cGOpR/bM2aNbrzzjtDoi2haOXKlWrdurXfRYpgdqHbz4JZSkqKqy9GpEVcXJz2798fFJNqSlKTJk00ZswYSXLuvR82bJg6duyoihUr6qWXXpLk/iUFfXlXwbn//vudbTt27NBDDz2kKlWqOO2VUq+4u20FmXNd7HzNt3B36xK26em6Ktolem3dLth6baVLHwAqVaqkF198UceOHVPRokWDZvb7vzsA+LajS5cuqlWrlqvvzdu/f79uvfVWNWnSRPny5dMdd9zhdyDw7UTp2rWra9tzuUujJSUlKS4uTrly5VLGjBld3fH1d4KhgystQuVEXQq+yTOvN8E0YSOQ3lJSUnTixAnVq1dPXbt2dW6L3b17t4oWLarXX39d9957r+rVq+f8TjAsWefVrFkz9ezZU9L/HTf37t2rAQMGqFatWnrzzTedfcePH++6FWS8/u58zbdwd+MStunpuivavei1da9g6bW93ANA/fr1lZSUFFSz30t/fwB46623JEnff/+9YmJinIlc3Oirr75Sly5d9Ntvv+nXX39Vnjx5zjsQeL8Pvv/+exUqVMi17bmcpdHOnj2rQ4cO6euvvw6ZK20AAPxTP/30kzJkyKD69eura9euypYtm3r16iUpddm97NmzB9VxMykpSWfOnNF9992nDh06OCteeM9pduzYoZYtW6pt27ZBsYLM5Zyv+RbublzCNr1ct0U7cLX83QEgW7ZsOnDggOtnv/e63APAbbfdJim1iGzcuLFrJmm7kIMHD/otffbLL784BwLftc2l1NESLVq0cHV7pEsvjTZw4EB16NAhaDqIAAC4Vn777Tfde++96tWrl1544QVn+2effaabb775vPMCNzp3/qoFCxYoY8aMev75551t3vO23377TR6PR8uXL/dbYcaNLvd8zXekl1s7IK42inbgKrjUAeCmm24Kii+UKzkAeO+TduOolYtNyOiNdcmSJX49uGfOnNG//vUv/fbbb649mJ3rYkujZcyYMWTuAwcA4Gq70HF+yJAhatiw4UXnvXGLC60gI6Uu7ZYhQwa9+uqrftvXrVuncuXKaePGjdcyzMt2JedrL774or766itJ7u2AuNpuMAD/WPXq1W3WrFnm8Xj8tv/4448WFRVlN9zg7o/an3/+aZ9//rndc889Fh0d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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -207,7 +205,7 @@ }, { "cell_type": "markdown", - "id": "26cfdf72", + "id": "7babe87a", "metadata": {}, "source": [ "### Resource counts\n", @@ -218,7 +216,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "c13c2bce", + "id": "356da7d2", "metadata": {}, "outputs": [], "source": [ @@ -236,7 +234,7 @@ }, { "cell_type": "markdown", - "id": "3e887bbc", + "id": "75343958", "metadata": {}, "source": [ "### Simulation model run settings" @@ -245,7 +243,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "0299c8b5", + "id": "9a060e54", "metadata": {}, "outputs": [], "source": [ @@ -266,7 +264,7 @@ }, { "cell_type": "markdown", - "id": "8f8be295", + "id": "d47270ec", "metadata": {}, "source": [ "## Utility functions" @@ -275,7 +273,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "b457f4e1", + "id": "a2213696", "metadata": {}, "outputs": [], "source": [ @@ -296,7 +294,7 @@ }, { "cell_type": "markdown", - "id": "6e3c05a4", + "id": "badf738d", "metadata": {}, "source": [ "## Distribution classes\n", @@ -314,7 +312,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "0a775384", + "id": "cc39928e", "metadata": {}, "outputs": [], "source": [ @@ -440,7 +438,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "0aece77d", + "id": "476d5c38", "metadata": {}, "outputs": [], "source": [ @@ -522,7 +520,7 @@ }, { "cell_type": "markdown", - "id": "fe5c1217", + "id": "0bab8888", "metadata": {}, "source": [ "## Model parameterisation\n", @@ -533,7 +531,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "84692ac7", + "id": "7dd430d1", "metadata": {}, "outputs": [], "source": [ @@ -543,22 +541,110 @@ " \n", " Passed to a model and its process classes\n", " '''\n", - " def __init__(self, random_number_set=DEFAULT_RNG_SET):\n", + " def __init__(self, random_number_set=DEFAULT_RNG_SET,\n", + " n_triage=DEFAULT_N_TRIAGE,\n", + " n_reg=DEFAULT_N_REG,\n", + " n_exam=DEFAULT_N_EXAM,\n", + " n_trauma=DEFAULT_N_TRAUMA,\n", + " n_cubicles_1=DEFAULT_N_CUBICLES_1,\n", + " n_cubicles_2=DEFAULT_N_CUBICLES_2,\n", + " triage_mean=DEFAULT_TRIAGE_MEAN,\n", + " reg_mean=DEFAULT_REG_MEAN,\n", + " reg_var=DEFAULT_REG_VAR,\n", + " exam_mean=DEFAULT_EXAM_MEAN,\n", + " exam_var=DEFAULT_EXAM_VAR,\n", + " trauma_mean=DEFAULT_TRAUMA_MEAN,\n", + " trauma_treat_mean=DEFAULT_TRAUMA_TREAT_MEAN,\n", + " trauma_treat_var=DEFAULT_TRAUMA_TREAT_VAR,\n", + " non_trauma_treat_mean=DEFAULT_NON_TRAUMA_TREAT_MEAN,\n", + " non_trauma_treat_var=DEFAULT_NON_TRAUMA_TREAT_VAR,\n", + " non_trauma_treat_p=DEFAULT_NON_TRAUMA_TREAT_P,\n", + " prob_trauma=DEFAULT_PROB_TRAUMA):\n", " '''\n", - " The init method sets up our defaults.\n", + " Create a scenario to parameterise the simulation model\n", " \n", " Parameters:\n", " -----------\n", " random_number_set: int, optional (default=DEFAULT_RNG_SET)\n", " Set to control the initial seeds of each stream of pseudo\n", " random numbers used in the model.\n", + " \n", + " n_triage: int\n", + " The number of triage cubicles\n", + " \n", + " n_reg: int\n", + " The number of registration clerks\n", + " \n", + " n_exam: int\n", + " The number of examination rooms\n", + " \n", + " n_trauma: int\n", + " The number of trauma bays for stablisation\n", + " \n", + " n_cubicles_1: int\n", + " The number of non-trauma treatment cubicles\n", + " \n", + " n_cubicles_2: int\n", + " The number of trauma treatment cubicles\n", + " \n", + " triage_mean: float\n", + " Mean duration of the triage distribution (Exponential)\n", + " \n", + " reg_mean: float\n", + " Mean duration of the registration distribution (Lognormal)\n", + " \n", + " reg_var: float\n", + " Variance of the registration distribution (Lognormal)\n", + " \n", + " exam_mean: float\n", + " Mean of the examination distribution (Normal)\n", + " \n", + " exam_var: float\n", + " Variance of the examination distribution (Normal)\n", + " \n", + " trauma_mean: float\n", + " Mean of the trauma stabilisation distribution (Exponential)\n", + " \n", + " trauma_treat_mean: float\n", + " Mean of the trauma cubicle treatment distribution (Lognormal)\n", + " \n", + " trauma_treat_var: float\n", + " Variance of the trauma cubicle treatment distribution (Lognormal)\n", + " \n", + " non_trauma_treat_mean: float\n", + " Mean of the non trauma treatment distribution\n", + " \n", + " non_trauma_treat_var: float\n", + " Variance of the non trauma treatment distribution\n", + " \n", + " non_trauma_treat_p: float\n", + " Probability non trauma patient requires treatment\n", + " \n", + " prob_trauma: float\n", + " probability that a new arrival is a trauma patient.\n", " '''\n", " # sampling\n", " self.random_number_set = random_number_set\n", + " \n", + " # store parameters for sampling\n", + " self.triage_mean = triage_mean\n", + " self.reg_mean = reg_mean\n", + " self.reg_var = reg_var\n", + " self.exam_mean= exam_mean\n", + " self.exam_var = exam_var\n", + " self.trauma_mean = trauma_mean\n", + " self.trauma_treat_mean = trauma_treat_mean\n", + " self.trauma_treat_var = trauma_treat_var\n", + " self.non_trauma_treat_mean = non_trauma_treat_mean\n", + " self.non_trauma_treat_var = non_trauma_treat_var\n", + " self.non_trauma_treat_p = non_trauma_treat_p\n", + " self.prob_trauma = prob_trauma\n", + " \n", " self.init_sampling()\n", " \n", " # count of each type of resource\n", - " self.init_resourse_counts()\n", + " self.init_resourse_counts(n_triage, n_reg, n_exam, n_trauma,\n", + " n_cubicles_1, n_cubicles_2)\n", " \n", " def set_random_no_set(self, random_number_set):\n", " '''\n", @@ -572,65 +658,68 @@ " self.random_number_set = random_number_set\n", " self.init_sampling()\n", "\n", - " def init_resourse_counts(self):\n", + " def init_resourse_counts(self, n_triage, n_reg, n_exam, n_trauma,\n", + " n_cubicles_1, n_cubicles_2):\n", " '''\n", " Init the counts of resources to default values...\n", " '''\n", - " self.n_triage = DEFAULT_N_TRIAGE\n", - " self.n_reg = DEFAULT_N_REG\n", - " self.n_exam = DEFAULT_N_EXAM\n", - " self.n_trauma = DEFAULT_N_TRAUMA\n", + " self.n_triage = n_triage\n", + " self.n_reg = n_reg\n", + " self.n_exam = n_exam\n", + " self.n_trauma = n_trauma\n", " \n", " # non-trauma (1), trauma (2) treatment cubicles\n", - " self.n_cubicles_1 = DEFAULT_N_CUBICLES_1\n", - " self.n_cubicles_2 = DEFAULT_N_CUBICLES_2\n", + " self.n_cubicles_1 = n_cubicles_1\n", + " self.n_cubicles_2 = n_cubicles_2\n", "\n", " def init_sampling(self):\n", " '''\n", " Create the distributions used by the model and initialise \n", " the random seeds of each.\n", - " '''\n", - " # create random number streams\n", - " rng_streams = np.random.default_rng(self.random_number_set)\n", - " self.seeds = rng_streams.integers(0, 999999999, size=N_STREAMS)\n", - "\n", + " ''' \n", + " # MODIFICATION. Better method for producing n non-overlapping streams\n", + " seed_sequence = np.random.SeedSequence(self.random_number_set)\n", + " \n", + " # Generate n high quality child seeds\n", + " self.seeds = seed_sequence.spawn(N_STREAMS)\n", + " \n", " # create distributions\n", " \n", " # Triage duration\n", - " self.triage_dist = Exponential(DEFAULT_TRIAGE_MEAN, \n", + " self.triage_dist = Exponential(self.triage_mean, \n", " random_seed=self.seeds[0])\n", " \n", " # Registration duration (non-trauma only)\n", - " self.reg_dist = Lognormal(DEFAULT_REG_MEAN, \n", - " np.sqrt(DEFAULT_REG_VAR),\n", + " self.reg_dist = Lognormal(self.reg_mean, \n", + " np.sqrt(self.reg_var),\n", " random_seed=self.seeds[1])\n", " \n", " # Evaluation (non-trauma only)\n", - " self.exam_dist = Normal(DEFAULT_EXAM_MEAN,\n", - " np.sqrt(DEFAULT_EXAM_VAR),\n", + " self.exam_dist = Normal(self.exam_mean,\n", + " np.sqrt(self.exam_var),\n", " random_seed=self.seeds[2])\n", " \n", " # Trauma/stablisation duration (trauma only)\n", - " self.trauma_dist = Exponential(DEFAULT_TRAUMA_MEAN, \n", + " self.trauma_dist = Exponential(self.trauma_mean, \n", " random_seed=self.seeds[3])\n", " \n", " # Non-trauma treatment\n", - " self.nt_treat_dist = Lognormal(DEFAULT_NON_TRAUMA_TREAT_MEAN, \n", - " np.sqrt(DEFAULT_NON_TRAUMA_TREAT_VAR),\n", + " self.nt_treat_dist = Lognormal(self.non_trauma_treat_mean, \n", + " np.sqrt(self.non_trauma_treat_var),\n", " random_seed=self.seeds[4])\n", " \n", " # treatment of trauma patients\n", - " self.treat_dist = Lognormal(DEFAULT_TRAUMA_TREAT_MEAN, \n", - " np.sqrt(DEFAULT_TRAUMA_TREAT_VAR),\n", + " self.treat_dist = Lognormal(self.trauma_treat_mean, \n", + " np.sqrt(self.non_trauma_treat_var),\n", " random_seed=self.seeds[5])\n", " \n", " # probability of non-trauma patient requiring treatment\n", - " self.nt_p_treat_dist = Bernoulli(DEFAULT_NON_TRAUMA_TREAT_P, \n", + " self.nt_p_treat_dist = Bernoulli(self.non_trauma_treat_p, \n", " random_seed=self.seeds[6])\n", " \n", " \n", " # probability of non-trauma versus trauma patient\n", - " self.p_trauma_dist = Bernoulli(DEFAULT_PROB_TRAUMA, \n", + " self.p_trauma_dist = Bernoulli(self.prob_trauma, \n", " random_seed=self.seeds[7])\n", " \n", " # init sampling for non-stationary poisson process\n", @@ -656,7 +745,7 @@ }, { "cell_type": "markdown", - "id": "699c05da", + "id": "dcfa40d2", "metadata": {}, "source": [ "## Patient Pathways Process Logic\n", @@ -667,7 +756,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "0b933e1a", + "id": "eb3bbfbd", "metadata": {}, "outputs": [], "source": [ @@ -799,7 +888,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "fec98e23", + "id": "23e9b8d7", "metadata": {}, "outputs": [], "source": [ @@ -950,7 +1039,7 @@ }, { "cell_type": "markdown", - "id": "45246cb1", + "id": "631df16c", "metadata": {}, "source": [ "## Main model class\n", @@ -961,7 +1050,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "5a0bd847", + "id": "15d766a1", "metadata": {}, "outputs": [], "source": [ @@ -1103,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "c964618a", + "id": "a99826b4", "metadata": {}, "source": [ "### Logic to process end of run results.\n", @@ -1114,7 +1203,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "af74c4cc", + "id": "aaadd8ea", "metadata": {}, "outputs": [], "source": [ @@ -1305,7 +1394,7 @@ }, { "cell_type": "markdown", - "id": "b65afc91", + "id": "8a750b27", "metadata": {}, "source": [ "## Executing a model\n", @@ -1318,7 +1407,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "e0d1e2e9", + "id": "6f41f4f7", "metadata": {}, "outputs": [], "source": [ @@ -1366,7 +1455,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "530cd393", + "id": "bcf70118", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1493,7 @@ }, { "cell_type": "markdown", - "id": "2a9429e8", + "id": "e8d512aa", "metadata": {}, "source": [ "### Single run of the model\n", @@ -1420,7 +1509,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "17600b7e", + "id": "fbf01ef1", "metadata": {}, "outputs": [ { @@ -1457,67 +1546,67 @@ " \n", " \n", " 00_arrivals\n", - " 231.000000\n", + " 209.000000\n", " \n", " \n", " 01a_triage_wait\n", - " 41.885983\n", + " 16.622674\n", " \n", " \n", " 01b_triage_util\n", - " 0.603647\n", + " 0.527512\n", " \n", " \n", " 02a_registration_wait\n", - " 103.039526\n", + " 111.161345\n", " \n", " \n", " 02b_registration_util\n", - " 0.870552\n", + " 0.801061\n", " \n", " \n", " 03a_examination_wait\n", - " 27.735811\n", + " 24.927965\n", " \n", " \n", " 03b_examination_util\n", - " 0.872689\n", + " 0.851285\n", " \n", " \n", " 04a_treatment_wait(non_trauma)\n", - " 158.281113\n", + " 172.435861\n", " \n", " \n", " 04b_treatment_util(non_trauma)\n", - " 0.898896\n", + " 0.845652\n", " \n", " \n", " 05_total_time(non-trauma)\n", - " 244.927536\n", + " 248.848441\n", " \n", " \n", " 06a_trauma_wait\n", - " 156.036116\n", + " 240.846123\n", " \n", " \n", " 06b_trauma_util\n", - " 0.918339\n", + " 0.952202\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 115.173959\n", + " 87.200272\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.904684\n", + " 0.740196\n", " \n", " \n", " 08_total_time(trauma)\n", - " 379.594387\n", + " 422.158076\n", " \n", " \n", " 09_throughput\n", - " 161.000000\n", + " 150.000000\n", " \n", " \n", "\n", @@ -1525,22 +1614,22 @@ ], "text/plain": [ "rep 1\n", - "00_arrivals 231.000000\n", - "01a_triage_wait 41.885983\n", - "01b_triage_util 0.603647\n", - "02a_registration_wait 103.039526\n", - "02b_registration_util 0.870552\n", - "03a_examination_wait 27.735811\n", - "03b_examination_util 0.872689\n", - "04a_treatment_wait(non_trauma) 158.281113\n", - "04b_treatment_util(non_trauma) 0.898896\n", - "05_total_time(non-trauma) 244.927536\n", - "06a_trauma_wait 156.036116\n", - "06b_trauma_util 0.918339\n", - "07a_treatment_wait(trauma) 115.173959\n", - "07b_treatment_util(trauma) 0.904684\n", - "08_total_time(trauma) 379.594387\n", - "09_throughput 161.000000" + "00_arrivals 209.000000\n", + "01a_triage_wait 16.622674\n", + "01b_triage_util 0.527512\n", + "02a_registration_wait 111.161345\n", + "02b_registration_util 0.801061\n", + "03a_examination_wait 24.927965\n", + "03b_examination_util 0.851285\n", + "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" ] }, "execution_count": 18, @@ -1567,7 +1656,7 @@ }, { "cell_type": "markdown", - "id": "cb128e9a", + "id": "c5b39c68", "metadata": {}, "source": [ "### Multiple independent replications\n", @@ -1581,7 +1670,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "01f66ba2", + "id": "9c562f1d", "metadata": {}, "outputs": [ { @@ -1590,8 +1679,8 @@ "text": [ "Running multiple replications => done.\n", "\n", - "CPU times: user 2.56 s, sys: 21.5 ms, total: 2.58 s\n", - "Wall time: 4.39 s\n" + "CPU times: user 1.42 s, sys: 34.2 ms, total: 1.45 s\n", + "Wall time: 4.46 s\n" ] }, { @@ -1655,60 +1744,60 @@ " \n", " \n", " 1\n", - " 218.0\n", - " 28.009290\n", - " 0.542454\n", - " 128.490438\n", - " 0.854615\n", - " 28.478642\n", - " 0.847430\n", - " 145.414321\n", - " 0.853189\n", - " 247.872229\n", - " 8.595360\n", - " 0.368908\n", - " 214.198331\n", - " 0.976808\n", - " 399.200311\n", - " 154.0\n", + " 230.0\n", + " 24.280943\n", + " 0.613250\n", + " 103.242292\n", + " 0.854504\n", + " 31.089680\n", + " 0.861719\n", + " 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", " \n", " \n", " 2\n", - " 188.0\n", - " 3.240469\n", - " 0.475390\n", - " 63.307540\n", - " 0.749027\n", - " 16.328179\n", - " 0.795921\n", - " 134.202786\n", - " 0.846795\n", - " 178.799154\n", - " 65.146932\n", - " 0.838521\n", - " 231.603567\n", - " 0.778634\n", - " 392.064964\n", - " 139.0\n", + " 227.0\n", + " 57.120114\n", + " 0.621348\n", + " 90.002385\n", + " 0.836685\n", + " 14.688492\n", + " 0.847295\n", + " 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", " \n", " \n", " 3\n", - " 233.0\n", - " 13.040936\n", - " 0.528681\n", - " 149.636381\n", - " 0.839994\n", - " 18.400280\n", - " 0.847310\n", - " 169.503295\n", - " 0.827088\n", - " 260.804457\n", - " 78.130137\n", - " 0.816547\n", - " 251.835736\n", - " 1.188287\n", - " 369.276920\n", - " 157.0\n", + " 229.0\n", + " 28.659383\n", + " 0.573698\n", + " 112.242503\n", + " 0.848514\n", + " 21.374092\n", + " 0.856306\n", + " 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", " \n", " \n", "\n", @@ -1717,39 +1806,39 @@ "text/plain": [ " 00_arrivals 01a_triage_wait 01b_triage_util 02a_registration_wait \\\n", "rep \n", - "1 218.0 28.009290 0.542454 128.490438 \n", - "2 188.0 3.240469 0.475390 63.307540 \n", - "3 233.0 13.040936 0.528681 149.636381 \n", + "1 230.0 24.280943 0.613250 103.242292 \n", + "2 227.0 57.120114 0.621348 90.002385 \n", + "3 229.0 28.659383 0.573698 112.242503 \n", "\n", " 02b_registration_util 03a_examination_wait 03b_examination_util \\\n", "rep \n", - "1 0.854615 28.478642 0.847430 \n", - "2 0.749027 16.328179 0.795921 \n", - "3 0.839994 18.400280 0.847310 \n", + "1 0.854504 31.089680 0.861719 \n", + "2 0.836685 14.688492 0.847295 \n", + "3 0.848514 21.374092 0.856306 \n", "\n", " 04a_treatment_wait(non_trauma) 04b_treatment_util(non_trauma) \\\n", "rep \n", - "1 145.414321 0.853189 \n", - "2 134.202786 0.846795 \n", - "3 169.503295 0.827088 \n", + "1 152.483394 0.890904 \n", + "2 120.245474 0.912127 \n", + "3 94.019885 0.868888 \n", "\n", " 05_total_time(non-trauma) 06a_trauma_wait 06b_trauma_util \\\n", "rep \n", - "1 247.872229 8.595360 0.368908 \n", - "2 178.799154 65.146932 0.838521 \n", - "3 260.804457 78.130137 0.816547 \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", "\n", " 07a_treatment_wait(trauma) 07b_treatment_util(trauma) \\\n", "rep \n", - "1 214.198331 0.976808 \n", - "2 231.603567 0.778634 \n", - "3 251.835736 1.188287 \n", + "1 239.889716 0.929002 \n", + "2 91.161308 0.699481 \n", + "3 156.650713 0.699029 \n", "\n", " 08_total_time(trauma) 09_throughput \n", "rep \n", - "1 399.200311 154.0 \n", - "2 392.064964 139.0 \n", - "3 369.276920 157.0 " + "1 393.725433 157.0 \n", + "2 406.292519 156.0 \n", + "3 524.843569 161.0 " ] }, "execution_count": 19, @@ -1772,28 +1861,28 @@ { "cell_type": "code", "execution_count": 20, - "id": "7005bbe6", + "id": "4415bf56", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "00_arrivals 227.84\n", - "01a_triage_wait 34.63\n", - "01b_triage_util 0.60\n", - "02a_registration_wait 105.67\n", + "00_arrivals 227.72\n", + "01a_triage_wait 35.24\n", + "01b_triage_util 0.61\n", + "02a_registration_wait 105.57\n", "02b_registration_util 0.84\n", - "03a_examination_wait 24.79\n", + "03a_examination_wait 25.55\n", "03b_examination_util 0.85\n", - "04a_treatment_wait(non_trauma) 131.76\n", + "04a_treatment_wait(non_trauma) 136.66\n", "04b_treatment_util(non_trauma) 0.87\n", - "05_total_time(non-trauma) 230.43\n", - "06a_trauma_wait 135.77\n", - "06b_trauma_util 0.81\n", - "07a_treatment_wait(trauma) 175.30\n", - "07b_treatment_util(trauma) 0.85\n", - "08_total_time(trauma) 399.90\n", - "09_throughput 154.66\n", + "05_total_time(non-trauma) 234.34\n", + "06a_trauma_wait 147.42\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", "dtype: float64" ] }, @@ -1809,7 +1898,7 @@ }, { "cell_type": "markdown", - "id": "352a7ebb", + "id": "0466c5fa", "metadata": {}, "source": [ "### Visualise replications" @@ -1818,19 +1907,17 @@ { "cell_type": "code", "execution_count": 21, - "id": "245b7038", + "id": "dd4f71a8", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/IAAAFfCAYAAADtf/chAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAABAs0lEQVR4nO3deVjVZf7/8deR5YgGKCrLKRQ0cxcdLRXLJdMys9SZTC21rH5Z5saYymRftVLUJrcYJWw1p7GZcZnMKcUSzMxcwNyXEsVUYszkoCYofH5/OJ7pBCjHzkrPx3Wd6+Lc9/05nxfdN+Sbz2YyDMMQAAAAAADwCVU8HQAAAAAAAFQchTwAAAAAAD6EQh4AAAAAAB9CIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5AEAAAAA8CH+ng7gjUpKSnTixAkFBwfLZDJ5Og4AAAAAoJIzDEMFBQWyWCyqUuXqx9wp5Mtw4sQJRUdHezoGAAAAAOA35tixY7rpppuuOoZCvgzBwcGSLv8HDAkJ8XAaAAAAAEBlZ7VaFR0dbatHr4ZCvgxXTqcPCQmhkAcAAAAAuE1FLu/mZncAAAAAAPgQCnkAAAAAAHwIhTwAAAAAAD6EQh4AAAAAAB/Cze6AX4iZuNrTESqdIzN6eToCAAAAUGlwRB4AAAAAAB9CIQ8AAAAAgA+hkAcAAAAAwIdQyAMAAAAA4EMo5AEAAAAA8CEU8gAAAAAA+BAKeQAAAAAAfAiFPAAAAAAAPoRCHgAAAAAAH0IhDwAAAACAD6GQBwAAAADAh1DIAwAAAADgQyjkAQAAAADwIRTyAAAAAAD4EAp5AAAAAAB8iNsK+c8//1yPPPKIOnTooOPHj0uS3nvvPW3cuNFdEQAAAAAA8HluKeSXLVumu+++W0FBQcrKylJhYaEkqaCgQNOnT3dHBAAAAAAAKgW3FPIvv/yyUlJStGjRIgUEBNja4+PjlZmZ6dBnbdiwQb1795bFYpHJZNLKlSvt+g3D0JQpU2SxWBQUFKQuXbpoz549zvg2AAAAAADwOLcU8gcOHFCnTp1KtYeEhOjMmTMOfda5c+cUFxen5OTkMvtnzZql2bNnKzk5WVu3blVkZKS6d++ugoKC64kOAAAAAIBX8XfHTqKiovTNN98oJibGrn3jxo2qX7++Q5/Vs2dP9ezZs8w+wzA0d+5cPf/88+rXr58k6d1331VERITef/99PfXUU9eVHwAAAAAAb+GWI/JPPfWURo8era+++komk0knTpzQX//6V40bN07PPPOM0/aTnZ2t3Nxc9ejRw9ZmNpvVuXNnbdq0qdztCgsLZbVa7V4AAAAAAHgjtxyRHz9+vPLz89W1a1dduHBBnTp1ktls1rhx4/Tss886bT+5ubmSpIiICLv2iIgIHT16tNztkpKSNHXqVKflAAAAAADAVdz2+Llp06bp1KlT2rJlizZv3qz//Oc/eumll1yyL5PJZPfeMIxSbT+XmJio/Px82+vYsWMuyQUAAAAAwK/lliPyV1SrVk1t27Z12edHRkZKunxkPioqytael5dX6ij9z5nNZpnNZpflAgAAAADAWdxSyPft27fMI+Imk0lVq1bVzTffrEGDBqlRo0a/aj+xsbGKjIxUWlqaWrduLUkqKipSRkaGZs6c+as+GwAAAAAAb+CWU+tDQ0P12WefKTMz01bQZ2Vl6bPPPtOlS5f0wQcfKC4uTl988cU1P+vs2bPasWOHduzYIenyDe527NihnJwcmUwmjRkzRtOnT9eKFSu0e/duPfroo6pWrZoGDRrkym8RAAAAAAC3cMsR+cjISA0aNEjJycmqUuXy3w5KSko0evRoBQcHa+nSpRo+fLgmTJigjRs3XvWztm3bpq5du9reJyQkSJKGDh2qd955R+PHj9dPP/2kZ555Rj/++KPatWuntWvXKjg42HXfIAAAAAAAbmIyDMNw9U7q1KmjL774Qrfccotd+8GDBxUfH69Tp05p165duuOOO3TmzBlXx7kmq9Wq0NBQ5efnKyQkxNNx4GYxE1d7OkKlc2RGL09HAAAAALyaI3WoW06tv3Tpkvbv31+qff/+/SouLpYkVa1a9ap3lgcAAAAAAG46tX7w4MF6/PHH9ac//Um33nqrTCaTtmzZounTp2vIkCGSpIyMDDVr1swdcQAAAAAA8FluKeTnzJmjiIgIzZo1S99//70kKSIiQmPHjtWECRMkST169NA999zjjjgAAAAAAPgst1wj/3NWq1WSvPrac66R/23jGnnn4xp5AAAA4OocqUPdckT+5yiMAQAAAAC4fm4r5P/5z3/q73//u3JyclRUVGTXl5mZ6a4YAAAAAAD4NLfctX7+/Pl67LHHFB4erqysLN12222qVauWDh8+rJ49e7oj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+vX14osvqqSkxDaGufMOFPKwc+7cOcXFxSk5ObnM/lmzZmn27NlKTk7W1q1bFRkZqe7du6ugoMDNSfFzGRkZGjFihDZv3qy0tDRdunRJPXr00Llz52xjmDvvc9NNN2nGjBnatm2btm3bpjvvvFMPPPCA7X+GzJn327p1q1JTU9WyZUu7dubOOzVr1kwnT560vXbt2mXrY868148//qiOHTsqICBAH3/8sfbu3atXX31VNWrUsI1h/rzP1q1b7X7e0tLSJEkPPvigJObMW82cOVMpKSlKTk7Wvn37NGvWLL3yyit67bXXbGOYOy9hAOWQZKxYscL2vqSkxIiMjDRmzJhha7tw4YIRGhpqpKSkeCAhypOXl2dIMjIyMgzDYO58Sc2aNY033niDOfMBBQUFRsOGDY20tDSjc+fOxujRow3D4OfNW02ePNmIi4srs485824TJkwwbr/99nL7mT/fMHr0aKNBgwZGSUkJc+bFevXqZQwbNsyurV+/fsYjjzxiGAY/b96EI/KosOzsbOXm5qpHjx62NrPZrM6dO2vTpk0eTIZfys/PlySFhYVJYu58QXFxsZYuXapz586pQ4cOzJkPGDFihHr16qW77rrLrp25816HDh2SxWJRbGysBgwYoMOHD0tizrzdhx9+qLZt2+rBBx9UeHi4WrdurUWLFtn6mT/vV1RUpCVLlmjYsGEymUzMmRe7/fbb9emnn+rgwYOSpK+//lobN27UvffeK4mfN2/i7+kA8B25ubmSpIiICLv2iIgIHT161BORUAbDMJSQkKDbb79dzZs3l8TcebNdu3apQ4cOunDhgm644QatWLFCTZs2tf3PkDnzTkuXLlVmZqa2bt1aqo+fN+/Url07LV68WLfccou+//57vfzyy4qPj9eePXuYMy93+PBhLVy4UAkJCfrTn/6kLVu2aNSoUTKbzRoyZAjz5wNWrlypM2fO6NFHH5XE70lvNmHCBOXn56tx48by8/NTcXGxpk2bpoEDB0pi7rwJhTwcZjKZ7N4bhlGqDZ7z7LPPaufOndq4cWOpPubO+zRq1Eg7duzQmTNntGzZMg0dOlQZGRm2fubM+xw7dkyjR4/W2rVrVbVq1XLHMXfepWfPnravW7RooQ4dOqhBgwZ699131b59e0nMmbcqKSlR27ZtNX36dElS69attWfPHi1cuFBDhgyxjWP+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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1844,7 +1931,7 @@ }, { "cell_type": "markdown", - "id": "7c6f63ac", + "id": "5e0b10e3", "metadata": {}, "source": [ "## Scenario Analysis\n", @@ -1857,7 +1944,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "0324d73d", + "id": "04872409", "metadata": {}, "outputs": [], "source": [ @@ -1896,7 +1983,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "72d0be94", + "id": "e625868c", "metadata": {}, "outputs": [], "source": [ @@ -1938,7 +2025,7 @@ }, { "cell_type": "markdown", - "id": "6a970007", + "id": "1d3e4611", "metadata": {}, "source": [ "### Script to run scenario analysis" @@ -1947,7 +2034,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "9fdcea55", + "id": "efc44373", "metadata": {}, "outputs": [ { @@ -1987,7 +2074,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "0668f45b", + "id": "e59417c4", "metadata": {}, "outputs": [], "source": [ @@ -2018,7 +2105,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "fe79758b", + "id": "9bf4e8fc", "metadata": {}, "outputs": [ { @@ -2052,131 +2139,131 @@ " \n", " \n", " 00_arrivals\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", - " 225.75\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", + " 227.25\n", " \n", " \n", " 01a_triage_wait\n", - " 28.86\n", - " 1.09\n", - " 36.46\n", - " 39.36\n", - " 1.14\n", + " 29.52\n", + " 1.17\n", + " 29.47\n", + " 23.99\n", + " 1.21\n", " \n", " \n", " 01b_triage_util\n", - " 0.57\n", - " 0.30\n", " 0.60\n", - " 0.61\n", + " 0.30\n", + " 0.59\n", + " 0.58\n", " 0.30\n", " \n", " \n", " 02a_registration_wait\n", - " 113.56\n", - " 138.79\n", - " 106.27\n", - " 108.46\n", - " 140.14\n", + " 101.88\n", + " 128.14\n", + " 101.09\n", + " 109.70\n", + " 125.47\n", " \n", " \n", " 02b_registration_util\n", - " 0.83\n", " 0.84\n", - " 0.83\n", - " 0.83\n", + " 0.85\n", + " 0.84\n", + " 0.84\n", " 0.84\n", " \n", " \n", " 03a_examination_wait\n", - " 24.57\n", - " 24.15\n", - " 0.13\n", - " 23.03\n", - " 0.15\n", + " 25.34\n", + " 24.93\n", + " 0.16\n", + " 24.03\n", + " 0.14\n", " \n", " \n", " 03b_examination_util\n", - " 0.85\n", - " 0.85\n", + " 0.86\n", + " 0.86\n", " 0.67\n", - " 0.84\n", + " 0.85\n", " 0.67\n", " \n", " \n", " 04a_treatment_wait(non_trauma)\n", - " 137.72\n", - " 139.98\n", - " 151.82\n", - " 2.26\n", - " 152.09\n", + " 134.19\n", + " 134.80\n", + " 148.81\n", + " 2.10\n", + " 150.61\n", " \n", " \n", " 04b_treatment_util(non_trauma)\n", - " 0.86\n", - " 0.86\n", - " 0.86\n", - " 0.63\n", - " 0.86\n", + " 0.88\n", + " 0.88\n", + " 0.88\n", + " 0.62\n", + " 0.88\n", " \n", " \n", " 05_total_time(non-trauma)\n", - " 236.01\n", - " 233.77\n", - " 225.60\n", - " 196.38\n", - " 223.33\n", + " 226.57\n", + " 223.52\n", + " 213.47\n", + " 184.42\n", + " 210.25\n", " \n", " \n", " 06a_trauma_wait\n", - " 144.46\n", - " 154.00\n", - " 132.94\n", - " 146.09\n", - " 165.43\n", + " 144.23\n", + " 163.29\n", + " 153.04\n", + " 151.20\n", + " 189.95\n", " \n", " \n", " 06b_trauma_util\n", + " 0.85\n", + " 0.85\n", + " 0.89\n", " 0.80\n", - " 0.83\n", - " 0.82\n", - " 0.82\n", - " 0.80\n", + " 0.88\n", " \n", " \n", " 07a_treatment_wait(trauma)\n", - " 168.27\n", - " 209.12\n", - " 195.16\n", - " 150.37\n", - " 193.69\n", + " 176.13\n", + " 208.33\n", + " 192.61\n", + " 165.71\n", + " 191.00\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.79\n", - " 0.81\n", - " 0.83\n", - " 0.81\n", + " 0.84\n", " 0.86\n", + " 0.80\n", + " 0.84\n", + " 0.85\n", " \n", " \n", " 08_total_time(trauma)\n", - " 390.68\n", - " 402.95\n", - " 422.40\n", - " 403.82\n", - " 400.37\n", + " 393.36\n", + " 389.83\n", + " 400.76\n", + " 383.26\n", + " 408.64\n", " \n", " \n", " 09_throughput\n", - " 152.10\n", - " 152.00\n", - " 157.30\n", - " 184.65\n", - " 155.85\n", + " 156.25\n", + " 157.50\n", + " 159.85\n", + " 187.85\n", + " 159.80\n", " \n", " \n", "\n", @@ -2184,22 +2271,22 @@ ], "text/plain": [ " base triage+1 exam+1 treat+1 triage+exam\n", - "00_arrivals 225.75 225.75 225.75 225.75 225.75\n", - "01a_triage_wait 28.86 1.09 36.46 39.36 1.14\n", - "01b_triage_util 0.57 0.30 0.60 0.61 0.30\n", - "02a_registration_wait 113.56 138.79 106.27 108.46 140.14\n", - "02b_registration_util 0.83 0.84 0.83 0.83 0.84\n", - "03a_examination_wait 24.57 24.15 0.13 23.03 0.15\n", - "03b_examination_util 0.85 0.85 0.67 0.84 0.67\n", - "04a_treatment_wait(non_trauma) 137.72 139.98 151.82 2.26 152.09\n", - "04b_treatment_util(non_trauma) 0.86 0.86 0.86 0.63 0.86\n", - "05_total_time(non-trauma) 236.01 233.77 225.60 196.38 223.33\n", - "06a_trauma_wait 144.46 154.00 132.94 146.09 165.43\n", - "06b_trauma_util 0.80 0.83 0.82 0.82 0.80\n", - "07a_treatment_wait(trauma) 168.27 209.12 195.16 150.37 193.69\n", - "07b_treatment_util(trauma) 0.79 0.81 0.83 0.81 0.86\n", - "08_total_time(trauma) 390.68 402.95 422.40 403.82 400.37\n", - "09_throughput 152.10 152.00 157.30 184.65 155.85" + "00_arrivals 227.25 227.25 227.25 227.25 227.25\n", + "01a_triage_wait 29.52 1.17 29.47 23.99 1.21\n", + "01b_triage_util 0.60 0.30 0.59 0.58 0.30\n", + "02a_registration_wait 101.88 128.14 101.09 109.70 125.47\n", + "02b_registration_util 0.84 0.85 0.84 0.84 0.84\n", + "03a_examination_wait 25.34 24.93 0.16 24.03 0.14\n", + "03b_examination_util 0.86 0.86 0.67 0.85 0.67\n", + "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" ] }, "execution_count": 26, @@ -2216,19 +2303,11 @@ }, { "cell_type": "markdown", - "id": "137c0a27", + "id": "c9363822", "metadata": {}, "source": [ "## End" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dd9b32df", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 9527235b1686d8667558782eba8ce7a765da4860 Mon Sep 17 00:00:00 2001 From: TomMonks Date: Sat, 6 Apr 2024 13:37:13 +0100 Subject: [PATCH 21/23] STRESS: fix type in PRN64 desc --- content/03_stress/05_implementation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/03_stress/05_implementation.md b/content/03_stress/05_implementation.md index e48c6ba..bf2b907 100644 --- a/content/03_stress/05_implementation.md +++ b/content/03_stress/05_implementation.md @@ -22,7 +22,7 @@ A [conda virtual environment](https://github.com/TomMonks/treatment-centre-sim/b ## 5.2 Random sampling -All sampling uses [`numpy.random.Generator`](https://numpy.org/doc/stable/reference/random/generator.html). A `numpy` generator object implements the Permuted Congruential Generator 64-bit (PCG64; period = $2^{128}$; maximum number of streams = $2^63$). +All sampling uses [`numpy.random.Generator`](https://numpy.org/doc/stable/reference/random/generator.html). A `numpy` generator object implements the Permuted Congruential Generator 64-bit (PCG64; period = $2^{128}$; maximum number of streams = $2^{63}$). Repeatable experiments and common random number streams are used in the model. Non overlapping streams are creating using a `numpy.random.SeedSequence`. One seed - the replication number - is passed to a `SeedSequence` and $n$ child seeds are spawned that are then used to create the $n$ streams. The seeds spawned by `SeedSequence` ensure that these streams are "very likely" non-overlapping. From 427e7784131d1a662b0cf2719968f1f434a2aaaa Mon Sep 17 00:00:00 2001 From: TomMonks Date: Sat, 6 Apr 2024 13:47:58 +0100 Subject: [PATCH 22/23] README: fixed link in docs badge --- README.md | 2 +- content/03_stress/05_implementation.md | 2 +- content/03_stress/06_code_access.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 90dfd56..757cd8a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10054063.svg)](https://doi.org/10.5281/zenodo.10054063) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-360+/) -[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-examplar-docs) +[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://pythonhealthdatascience.github.io/stars-simpy-example-docs) [![License: MIT](https://img.shields.io/badge/ORCID-0000--0001--5274--5037-brightgreen)](https://orcid.org/0000-0001-5274-5037) [![License: MIT](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481) [](https://hub.docker.com/r/tommonks01/treat_sim) diff --git a/content/03_stress/05_implementation.md b/content/03_stress/05_implementation.md index bf2b907..4d3dbee 100644 --- a/content/03_stress/05_implementation.md +++ b/content/03_stress/05_implementation.md @@ -1,4 +1,4 @@ -# 5 Implementation +# 5. Implementation ## 5.1 Software or programming language diff --git a/content/03_stress/06_code_access.md b/content/03_stress/06_code_access.md index 6ccc191..e42c1d4 100644 --- a/content/03_stress/06_code_access.md +++ b/content/03_stress/06_code_access.md @@ -1,4 +1,4 @@ -# 6 Code access +# 6. Code access * Simulation model code is available from the main branch of Githib repo: https://github.com/TomMonks/treatment-centre-sim * All simulation model code is contained within a Jupyter notebook: https://github.com/TomMonks/treatment-centre-sim/blob/main/src/model.ipynb From 7d927a96588347c0d41e7d335c0c1df9052a589f Mon Sep 17 00:00:00 2001 From: AliHarp Date: Wed, 1 May 2024 12:29:40 +0100 Subject: [PATCH 23/23] MODEL: Trauma distribution bug --- content/02_model_code/04_model.ipynb | 288 +++++++++++------------ content/02_model_code/output/table_3.txt | 4 +- 2 files changed, 146 insertions(+), 146 deletions(-) diff --git a/content/02_model_code/04_model.ipynb b/content/02_model_code/04_model.ipynb index e5dba27..233e990 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": "35a54f8e", "metadata": {}, "source": [ "# SimPy: Treatment Centre\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "6ab38314", + "id": "ddc4aa02", "metadata": {}, "source": [ "## 1. Imports\n", @@ -27,7 +27,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "f9b9d8c8", + "id": "63ab34cd", "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "956f9cb7", + "id": "a64f87c1", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "3a04b23d", + "id": "7159952e", "metadata": {}, "source": [ "## 2. Constants and defaults for modelling **as-is**" @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "4b7ab380", + "id": "37846cfb", "metadata": {}, "source": [ "### 2.1 Distribution parameters" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "b98c91df", + "id": "9125827f", "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "d1dba095", + "id": "59b4818c", "metadata": {}, "source": [ "### 2.2 Time dependent arrival rates data\n", @@ -126,7 +126,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "31132d08", + "id": "c0b31114", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "8a8eccec", + "id": "f0b66e59", "metadata": {}, "source": [ "### 2.3 Resource counts\n", @@ -165,7 +165,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "9f97c46b", + "id": "065fdfd5", "metadata": {}, "outputs": [], "source": [ @@ -183,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "bbb220c8", + "id": "4936da33", "metadata": {}, "source": [ "### 2.4 Simulation model run settings" @@ -192,7 +192,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "3b44984a", + "id": "65190377", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "c2f5d0d5", + "id": "31e0d5af", "metadata": {}, "source": [ "## 3. Utility functions" @@ -222,7 +222,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "91481550", + "id": "28afe578", "metadata": {}, "outputs": [], "source": [ @@ -243,7 +243,7 @@ }, { "cell_type": "markdown", - "id": "44840021", + "id": "aefbbdb1", "metadata": {}, "source": [ "## 4. Distribution classes\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "ee8a6b21", + "id": "eace284a", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +387,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "e3662ea3", + "id": "277bc0a4", "metadata": {}, "outputs": [], "source": [ @@ -469,7 +469,7 @@ }, { "cell_type": "markdown", - "id": "21f34196", + "id": "03b3ac28", "metadata": {}, "source": [ "## 5. Model parameterisation\n", @@ -480,7 +480,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "6a261de8", + "id": "95dfe811", "metadata": {}, "outputs": [], "source": [ @@ -694,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "a627b72f", + "id": "c9502d07", "metadata": {}, "source": [ "## 6. Patient Pathways Process Logic\n", @@ -705,7 +705,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "11700ff1", + "id": "ade8fa79", "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": "ed285e08", "metadata": {}, "outputs": [], "source": [ @@ -988,7 +988,7 @@ }, { "cell_type": "markdown", - "id": "284188bc", + "id": "624af7e3", "metadata": {}, "source": [ "## 7. Main model class\n", @@ -999,7 +999,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "03770c5a", + "id": "a102fb97", "metadata": {}, "outputs": [], "source": [ @@ -1141,7 +1141,7 @@ }, { "cell_type": "markdown", - "id": "cb89619b", + "id": "53c32a03", "metadata": {}, "source": [ "### 8. Logic to process end of run results.\n", @@ -1152,7 +1152,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "f6a4fd58", + "id": "afb629c0", "metadata": {}, "outputs": [], "source": [ @@ -1343,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "5b4b5208", + "id": "51653e7a", "metadata": {}, "source": [ "## 9. Model execution\n", @@ -1356,7 +1356,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "2dfa5971", + "id": "67583c28", "metadata": {}, "outputs": [], "source": [ @@ -1404,7 +1404,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "3adde6ad", + "id": "4065bb56", "metadata": {}, "outputs": [], "source": [ @@ -1442,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "6cfd29ba", + "id": "48571f13", "metadata": {}, "source": [ "### 9.1 Single run of the model\n", @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "1c592473", + "id": "322065b8", "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.904842\n", " \n", " \n", " 07b_treatment_util(trauma)\n", - " 0.740196\n", + " 0.495450\n", " \n", " \n", " 08_total_time(trauma)\n", - " 422.158076\n", + " 310.794173\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.904842\n", + "07b_treatment_util(trauma) 0.495450\n", + "08_total_time(trauma) 310.794173\n", + "09_throughput 155.000000" ] }, "execution_count": 17, @@ -1605,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "75df4e4d", + "id": "557ea941", "metadata": {}, "source": [ "### 9.2 Multiple independent replications\n", @@ -1616,7 +1616,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "592c20b9", + "id": "b4bf3413", "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 1.3 s, sys: 8.74 ms, total: 1.31 s\n", + "Wall time: 3.38 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.471615\n", + " 0.607219\n", + " 346.390186\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.729017\n", + " 0.367824\n", + " 301.560578\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.303868\n", + " 0.467373\n", + " 440.733961\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.471615 0.607219 \n", + "2 3.729017 0.367824 \n", + "3 12.303868 0.467373 \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.390186 171.0 \n", + "2 301.560578 161.0 \n", + "3 440.733961 167.0 " ] }, "execution_count": 18, @@ -1807,7 +1807,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "a2977d15", + "id": "4017a499", "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.25\n", + "07b_treatment_util(trauma) 0.50\n", + "08_total_time(trauma) 292.21\n", + "09_throughput 162.16\n", "dtype: float64" ] }, @@ -1844,7 +1844,7 @@ }, { "cell_type": "markdown", - "id": "f356c85f", + "id": "c56f8b17", "metadata": {}, "source": [ "### 9.3 Visualise replications" @@ -1853,7 +1853,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "03f0caf3", + "id": "7e0dc4bc", "metadata": {}, "outputs": [ { @@ -1877,7 +1877,7 @@ }, { "cell_type": "markdown", - "id": "31679e4b", + "id": "31a7851f", "metadata": {}, "source": [ "## 10. Scenario Analysis\n", @@ -1890,7 +1890,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "87fa1b65", + "id": "cca43803", "metadata": {}, "outputs": [], "source": [ @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "079a12b9", + "id": "97667916", "metadata": {}, "outputs": [], "source": [ @@ -1967,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "679b9dc1", + "id": "7cd047a7", "metadata": {}, "source": [ "### 10.1 Script to run scenario analysis" @@ -1976,7 +1976,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "51a9bfbf", + "id": "a50b56b9", "metadata": {}, "outputs": [ { @@ -2016,7 +2016,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "77d20748", + "id": "5e9a61b3", "metadata": {}, "outputs": [], "source": [ @@ -2047,7 +2047,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "4e63a89b", + "id": "8e5ba532", "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.26\n", + " 22.65\n", + " 19.40\n", + " 16.96\n", + " 19.48\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.81\n", + " 298.77\n", + " 271.91\n", + " 297.40\n", + " 288.95\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.40\n", + " 169.20\n", + " 196.80\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.26 22.65 19.40 16.96 19.48\n", + "07b_treatment_util(trauma) 0.52 0.52 0.52 0.51 0.52\n", + "08_total_time(trauma) 316.81 298.77 271.91 297.40 288.95\n", + "09_throughput 166.15 167.40 169.20 196.80 170.40" ] }, "execution_count": 25, @@ -2245,7 +2245,7 @@ }, { "cell_type": "markdown", - "id": "7cb09bfb", + "id": "66d1165f", "metadata": {}, "source": [ "## 11. Script to produce formatted LaTeX table for paper" @@ -2254,7 +2254,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "82a91037", + "id": "2e27baa6", "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.26\n", + " 22.65\n", + " 19.40\n", + " 16.96\n", + " 19.48\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.26 22.65 19.40 16.96 19.48" ] }, "execution_count": 26, @@ -2382,7 +2382,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "cc53c15f", + "id": "23ad7756", "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.26 & 22.65 & 19.40 & 16.96 & 19.48 \\\\\n", "\\bottomrule\n", "\\end{tabular}\n", "\\end{table}\n", @@ -2431,7 +2431,7 @@ }, { "cell_type": "markdown", - "id": "ea8a95ab", + "id": "53154549", "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..4333945 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.26 & 22.65 & 19.40 & 16.96 & 19.48 \\ \bottomrule \end{tabular} \end{table}