{ "cells": [ { "cell_type": "markdown", "id": "e1aee1f6", "metadata": {}, "source": [ "# Python package\n", "\n", "[](https://pypi.org/project/treat_sim/)\n", "[](https://pypi.org/project/treat-sim/)\n", "\n", "The model is available to install from the [Python Package Index (PyPI)](https://pypi.org/project/treat-sim/). If you wish to use the model in your own code or package this is the simplest way to include it. It can be installed from a terminal or included in an conda environment or Python virtual environment. To install at run time use:\n", "\n", "```bash\n", "pip install treat-sim\n", "```" ] }, { "cell_type": "markdown", "id": "ba8719f7", "metadata": {}, "source": [ "## Running multiple replications of the `treat-sim` model\n", "\n", "To create a custom experiment and run multiple replications of it using the m~odel you need to import the `Scenario` and `multiple_replications` functions from the `model` module. Example code is below" ] }, { "cell_type": "code", "execution_count": 1, "id": "3ef2e46d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>count</th>\n", " <th>mean</th>\n", " <th>std</th>\n", " <th>min</th>\n", " <th>25%</th>\n", " <th>50%</th>\n", " <th>75%</th>\n", " <th>max</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>00_arrivals</th>\n", " <td>5.0</td>\n", " <td>231.80</td>\n", " <td>5.07</td>\n", " <td>227.00</td>\n", " <td>229.00</td>\n", " <td>230.00</td>\n", " <td>233.00</td>\n", " <td>240.00</td>\n", " </tr>\n", " <tr>\n", " <th>01a_triage_wait</th>\n", " <td>5.0</td>\n", " <td>30.51</td>\n", " <td>15.39</td>\n", " <td>17.68</td>\n", " <td>24.28</td>\n", " <td>24.80</td>\n", " <td>28.66</td>\n", " <td>57.12</td>\n", " </tr>\n", " <tr>\n", " <th>01b_triage_util</th>\n", " <td>5.0</td>\n", " <td>0.61</td>\n", " <td>0.03</td>\n", " <td>0.57</td>\n", " <td>0.61</td>\n", " <td>0.61</td>\n", " <td>0.62</td>\n", " <td>0.64</td>\n", " </tr>\n", " <tr>\n", " <th>02a_registration_wait</th>\n", " <td>5.0</td>\n", " <td>106.13</td>\n", " <td>11.72</td>\n", " <td>90.00</td>\n", " <td>103.24</td>\n", " <td>103.61</td>\n", " <td>112.24</td>\n", " <td>121.54</td>\n", " </tr>\n", " <tr>\n", " <th>02b_registration_util</th>\n", " <td>5.0</td>\n", " <td>0.86</td>\n", " <td>0.01</td>\n", " <td>0.84</td>\n", " <td>0.85</td>\n", " <td>0.85</td>\n", " <td>0.87</td>\n", " <td>0.87</td>\n", " </tr>\n", " <tr>\n", " <th>03a_examination_wait</th>\n", " <td>5.0</td>\n", " <td>24.84</td>\n", " <td>7.07</td>\n", " <td>14.69</td>\n", " <td>21.37</td>\n", " <td>25.51</td>\n", " <td>31.09</td>\n", " <td>31.56</td>\n", " </tr>\n", " <tr>\n", " <th>03b_examination_util</th>\n", " <td>5.0</td>\n", " <td>0.86</td>\n", " <td>0.01</td>\n", " <td>0.85</td>\n", " <td>0.86</td>\n", " <td>0.86</td>\n", " <td>0.87</td>\n", " <td>0.88</td>\n", " </tr>\n", " <tr>\n", " <th>04a_treatment_wait(non_trauma)</th>\n", " <td>5.0</td>\n", " <td>134.87</td>\n", " <td>27.08</td>\n", " <td>94.02</td>\n", " <td>120.25</td>\n", " <td>150.35</td>\n", " <td>152.48</td>\n", " <td>157.26</td>\n", " </tr>\n", " <tr>\n", " <th>04b_treatment_util(non_trauma)</th>\n", " <td>5.0</td>\n", " <td>0.90</td>\n", " <td>0.02</td>\n", " <td>0.87</td>\n", " <td>0.89</td>\n", " <td>0.89</td>\n", " <td>0.91</td>\n", " <td>0.93</td>\n", " </tr>\n", " <tr>\n", " <th>05_total_time(non-trauma)</th>\n", " <td>5.0</td>\n", " <td>232.00</td>\n", " <td>14.87</td>\n", " <td>208.36</td>\n", " <td>233.30</td>\n", " <td>233.88</td>\n", " <td>234.76</td>\n", " <td>249.69</td>\n", " </tr>\n", " <tr>\n", " <th>06a_trauma_wait</th>\n", " <td>5.0</td>\n", " <td>209.37</td>\n", " <td>63.74</td>\n", " <td>133.81</td>\n", " <td>149.37</td>\n", " <td>236.51</td>\n", " <td>250.71</td>\n", " <td>276.42</td>\n", " </tr>\n", " <tr>\n", " <th>06b_trauma_util</th>\n", " <td>5.0</td>\n", " <td>0.90</td>\n", " <td>0.08</td>\n", " <td>0.83</td>\n", " <td>0.86</td>\n", " <td>0.87</td>\n", " <td>0.88</td>\n", " <td>1.03</td>\n", " </tr>\n", " <tr>\n", " <th>07a_treatment_wait(trauma)</th>\n", " <td>5.0</td>\n", " <td>11.08</td>\n", " <td>4.89</td>\n", " <td>3.72</td>\n", " <td>9.23</td>\n", " <td>12.25</td>\n", " <td>13.70</td>\n", " <td>16.52</td>\n", " </tr>\n", " <tr>\n", " <th>07b_treatment_util(trauma)</th>\n", " <td>5.0</td>\n", " <td>0.50</td>\n", " <td>0.13</td>\n", " <td>0.37</td>\n", " <td>0.42</td>\n", " <td>0.46</td>\n", " <td>0.61</td>\n", " <td>0.66</td>\n", " </tr>\n", " <tr>\n", " <th>08_total_time(trauma)</th>\n", " <td>5.0</td>\n", " <td>350.13</td>\n", " <td>63.75</td>\n", " <td>281.06</td>\n", " <td>301.52</td>\n", " <td>346.70</td>\n", " <td>380.83</td>\n", " <td>440.52</td>\n", " </tr>\n", " <tr>\n", " <th>09_throughput</th>\n", " <td>5.0</td>\n", " <td>167.00</td>\n", " <td>4.64</td>\n", " <td>161.00</td>\n", " <td>164.00</td>\n", " <td>167.00</td>\n", " <td>171.00</td>\n", " <td>172.00</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " count mean std min 25% 50% \\\n", "00_arrivals 5.0 231.80 5.07 227.00 229.00 230.00 \n", "01a_triage_wait 5.0 30.51 15.39 17.68 24.28 24.80 \n", "01b_triage_util 5.0 0.61 0.03 0.57 0.61 0.61 \n", "02a_registration_wait 5.0 106.13 11.72 90.00 103.24 103.61 \n", "02b_registration_util 5.0 0.86 0.01 0.84 0.85 0.85 \n", "03a_examination_wait 5.0 24.84 7.07 14.69 21.37 25.51 \n", "03b_examination_util 5.0 0.86 0.01 0.85 0.86 0.86 \n", "04a_treatment_wait(non_trauma) 5.0 134.87 27.08 94.02 120.25 150.35 \n", "04b_treatment_util(non_trauma) 5.0 0.90 0.02 0.87 0.89 0.89 \n", "05_total_time(non-trauma) 5.0 232.00 14.87 208.36 233.30 233.88 \n", "06a_trauma_wait 5.0 209.37 63.74 133.81 149.37 236.51 \n", "06b_trauma_util 5.0 0.90 0.08 0.83 0.86 0.87 \n", "07a_treatment_wait(trauma) 5.0 11.08 4.89 3.72 9.23 12.25 \n", "07b_treatment_util(trauma) 5.0 0.50 0.13 0.37 0.42 0.46 \n", "08_total_time(trauma) 5.0 350.13 63.75 281.06 301.52 346.70 \n", "09_throughput 5.0 167.00 4.64 161.00 164.00 167.00 \n", "\n", " 75% max \n", "00_arrivals 233.00 240.00 \n", "01a_triage_wait 28.66 57.12 \n", "01b_triage_util 0.62 0.64 \n", "02a_registration_wait 112.24 121.54 \n", "02b_registration_util 0.87 0.87 \n", "03a_examination_wait 31.09 31.56 \n", "03b_examination_util 0.87 0.88 \n", "04a_treatment_wait(non_trauma) 152.48 157.26 \n", "04b_treatment_util(non_trauma) 0.91 0.93 \n", "05_total_time(non-trauma) 234.76 249.69 \n", "06a_trauma_wait 250.71 276.42 \n", "06b_trauma_util 0.88 1.03 \n", "07a_treatment_wait(trauma) 13.70 16.52 \n", "07b_treatment_util(trauma) 0.61 0.66 \n", "08_total_time(trauma) 380.83 440.52 \n", "09_throughput 171.00 172.00 " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from treat_sim.model import Scenario, multiple_replications\n", "\n", "# use all default parameter values\n", "base_case = Scenario()\n", "\n", "# run replications (defaults to 5 if parameter ignored.)\n", "results = multiple_replications(base_case, n_reps=5)\n", "\n", "# show results (use print() if not using Jupyter notebooks)\n", "results.describe().round(2).T" ] }, { "cell_type": "markdown", "id": "5209ba49", "metadata": {}, "source": [ "## Custom experiments\n", "\n", "Simply modify the default parameters of the `Scenario` class if you would like to run different experiments" ] }, { "cell_type": "code", "execution_count": 2, "id": "f7962d70", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>count</th>\n", " <th>mean</th>\n", " <th>std</th>\n", " <th>min</th>\n", " <th>25%</th>\n", " <th>50%</th>\n", " <th>75%</th>\n", " <th>max</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>00_arrivals</th>\n", " <td>5.0</td>\n", " <td>231.80</td>\n", " <td>5.07</td>\n", " <td>227.00</td>\n", " <td>229.00</td>\n", " <td>230.00</td>\n", " <td>233.00</td>\n", " <td>240.00</td>\n", " </tr>\n", " <tr>\n", " <th>01a_triage_wait</th>\n", " <td>5.0</td>\n", " <td>30.51</td>\n", " <td>15.39</td>\n", " <td>17.68</td>\n", " <td>24.28</td>\n", " <td>24.80</td>\n", " <td>28.66</td>\n", " <td>57.12</td>\n", " </tr>\n", " <tr>\n", " <th>01b_triage_util</th>\n", " <td>5.0</td>\n", " <td>0.61</td>\n", " <td>0.03</td>\n", " <td>0.57</td>\n", " <td>0.61</td>\n", " <td>0.61</td>\n", " <td>0.62</td>\n", " <td>0.64</td>\n", " </tr>\n", " <tr>\n", " <th>02a_registration_wait</th>\n", " <td>5.0</td>\n", " <td>106.13</td>\n", " <td>11.72</td>\n", " <td>90.00</td>\n", " <td>103.24</td>\n", " <td>103.61</td>\n", " <td>112.24</td>\n", " <td>121.54</td>\n", " </tr>\n", " <tr>\n", " <th>02b_registration_util</th>\n", " <td>5.0</td>\n", " <td>0.86</td>\n", " <td>0.01</td>\n", " <td>0.84</td>\n", " <td>0.85</td>\n", " <td>0.85</td>\n", " <td>0.87</td>\n", " <td>0.87</td>\n", " </tr>\n", " <tr>\n", " <th>03a_examination_wait</th>\n", " <td>5.0</td>\n", " <td>24.84</td>\n", " <td>7.07</td>\n", " <td>14.69</td>\n", " <td>21.37</td>\n", " <td>25.51</td>\n", " <td>31.09</td>\n", " <td>31.56</td>\n", " </tr>\n", " <tr>\n", " <th>03b_examination_util</th>\n", " <td>5.0</td>\n", " <td>0.86</td>\n", " <td>0.01</td>\n", " <td>0.85</td>\n", " <td>0.86</td>\n", " <td>0.86</td>\n", " <td>0.87</td>\n", " <td>0.88</td>\n", " </tr>\n", " <tr>\n", " <th>04a_treatment_wait(non_trauma)</th>\n", " <td>5.0</td>\n", " <td>1.93</td>\n", " <td>0.14</td>\n", " <td>1.71</td>\n", " <td>1.92</td>\n", " <td>1.95</td>\n", " <td>1.99</td>\n", " <td>2.08</td>\n", " </tr>\n", " <tr>\n", " <th>04b_treatment_util(non_trauma)</th>\n", " <td>5.0</td>\n", " <td>0.64</td>\n", " <td>0.02</td>\n", " <td>0.61</td>\n", " <td>0.62</td>\n", " <td>0.64</td>\n", " <td>0.65</td>\n", " <td>0.68</td>\n", " </tr>\n", " <tr>\n", " <th>05_total_time(non-trauma)</th>\n", " <td>5.0</td>\n", " <td>188.56</td>\n", " <td>8.52</td>\n", " <td>177.58</td>\n", " <td>184.76</td>\n", " <td>187.32</td>\n", " <td>192.98</td>\n", " <td>200.16</td>\n", " </tr>\n", " <tr>\n", " <th>06a_trauma_wait</th>\n", " <td>5.0</td>\n", " <td>209.37</td>\n", " <td>63.74</td>\n", " <td>133.81</td>\n", " <td>149.37</td>\n", " <td>236.51</td>\n", " <td>250.71</td>\n", " <td>276.42</td>\n", " </tr>\n", " <tr>\n", " <th>06b_trauma_util</th>\n", " <td>5.0</td>\n", " <td>0.90</td>\n", " <td>0.08</td>\n", " <td>0.83</td>\n", " <td>0.86</td>\n", " <td>0.87</td>\n", " <td>0.88</td>\n", " <td>1.03</td>\n", " </tr>\n", " <tr>\n", " <th>07a_treatment_wait(trauma)</th>\n", " <td>5.0</td>\n", " <td>11.08</td>\n", " <td>4.89</td>\n", " <td>3.72</td>\n", " <td>9.23</td>\n", " <td>12.25</td>\n", " <td>13.70</td>\n", " <td>16.52</td>\n", " </tr>\n", " <tr>\n", " <th>07b_treatment_util(trauma)</th>\n", " <td>5.0</td>\n", " <td>0.50</td>\n", " <td>0.13</td>\n", " <td>0.37</td>\n", " <td>0.42</td>\n", " <td>0.46</td>\n", " <td>0.61</td>\n", " <td>0.66</td>\n", " </tr>\n", " <tr>\n", " <th>08_total_time(trauma)</th>\n", " <td>5.0</td>\n", " <td>350.13</td>\n", " <td>63.75</td>\n", " <td>281.06</td>\n", " <td>301.52</td>\n", " <td>346.70</td>\n", " <td>380.83</td>\n", " <td>440.52</td>\n", " </tr>\n", " <tr>\n", " <th>09_throughput</th>\n", " <td>5.0</td>\n", " <td>199.40</td>\n", " <td>4.67</td>\n", " <td>193.00</td>\n", " <td>198.00</td>\n", " <td>200.00</td>\n", " <td>200.00</td>\n", " <td>206.00</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " count mean std min 25% 50% \\\n", "00_arrivals 5.0 231.80 5.07 227.00 229.00 230.00 \n", "01a_triage_wait 5.0 30.51 15.39 17.68 24.28 24.80 \n", "01b_triage_util 5.0 0.61 0.03 0.57 0.61 0.61 \n", "02a_registration_wait 5.0 106.13 11.72 90.00 103.24 103.61 \n", "02b_registration_util 5.0 0.86 0.01 0.84 0.85 0.85 \n", "03a_examination_wait 5.0 24.84 7.07 14.69 21.37 25.51 \n", "03b_examination_util 5.0 0.86 0.01 0.85 0.86 0.86 \n", "04a_treatment_wait(non_trauma) 5.0 1.93 0.14 1.71 1.92 1.95 \n", "04b_treatment_util(non_trauma) 5.0 0.64 0.02 0.61 0.62 0.64 \n", "05_total_time(non-trauma) 5.0 188.56 8.52 177.58 184.76 187.32 \n", "06a_trauma_wait 5.0 209.37 63.74 133.81 149.37 236.51 \n", "06b_trauma_util 5.0 0.90 0.08 0.83 0.86 0.87 \n", "07a_treatment_wait(trauma) 5.0 11.08 4.89 3.72 9.23 12.25 \n", "07b_treatment_util(trauma) 5.0 0.50 0.13 0.37 0.42 0.46 \n", "08_total_time(trauma) 5.0 350.13 63.75 281.06 301.52 346.70 \n", "09_throughput 5.0 199.40 4.67 193.00 198.00 200.00 \n", "\n", " 75% max \n", "00_arrivals 233.00 240.00 \n", "01a_triage_wait 28.66 57.12 \n", "01b_triage_util 0.62 0.64 \n", "02a_registration_wait 112.24 121.54 \n", "02b_registration_util 0.87 0.87 \n", "03a_examination_wait 31.09 31.56 \n", "03b_examination_util 0.87 0.88 \n", "04a_treatment_wait(non_trauma) 1.99 2.08 \n", "04b_treatment_util(non_trauma) 0.65 0.68 \n", "05_total_time(non-trauma) 192.98 200.16 \n", "06a_trauma_wait 250.71 276.42 \n", "06b_trauma_util 0.88 1.03 \n", "07a_treatment_wait(trauma) 13.70 16.52 \n", "07b_treatment_util(trauma) 0.61 0.66 \n", "08_total_time(trauma) 380.83 440.52 \n", "09_throughput 200.00 206.00 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# an extra non trauma treatment cubicle\n", "extra_cubicle_experiment = Scenario(n_cubicles_1=2)\n", "\n", "# experiment results\n", "results_extra_cubicle = multiple_replications(extra_cubicle_experiment, n_reps=5)\n", "\n", "# show results of experiment\n", "results_extra_cubicle.describe().round(2).T" ] }, { "cell_type": "markdown", "id": "d8fe52e9", "metadata": {}, "source": [ "## Pre-configured experiments\n", "\n", "The package also includes a selection of pre-configured experiments to run. The following code runs all experiments and display a summary of the results." ] }, { "cell_type": "code", "execution_count": 3, "id": "9e3784d2", "metadata": {}, "outputs": [], "source": [ "from treat_sim.model import (get_scenarios, run_scenario_analysis,\n", " scenario_summary_frame, \n", " DEFAULT_RESULTS_COLLECTION_PERIOD)" ] }, { "cell_type": "code", "execution_count": 4, "id": "b603a08f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scenario Analysis\n", "No. Scenario: 6\n", "Replications: 50\n", "Running base => done.\n", "\n", "Running triage+1 => done.\n", "\n", "Running exam+1 => done.\n", "\n", "Running treat+1 => done.\n", "\n", "Running swap_exam_treat => done.\n", "\n", "Running short_exam => done.\n", "\n", "Scenario analysis complete.\n" ] } ], "source": [ "results = run_scenario_analysis(get_scenarios(), DEFAULT_RESULTS_COLLECTION_PERIOD,\n", " n_reps=50)" ] }, { "cell_type": "code", "execution_count": 5, "id": "800d943c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>base</th>\n", " <th>triage+1</th>\n", " <th>exam+1</th>\n", " <th>treat+1</th>\n", " <th>swap_exam_treat</th>\n", " <th>short_exam</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>00_arrivals</th>\n", " <td>227.720000</td>\n", " <td>227.720000</td>\n", " <td>227.720000</td>\n", " <td>227.720000</td>\n", " <td>227.720000</td>\n", " <td>227.720000</td>\n", " </tr>\n", " <tr>\n", " <th>01a_triage_wait</th>\n", " <td>35.243019</td>\n", " <td>1.325176</td>\n", " <td>35.243019</td>\n", " <td>35.243019</td>\n", " <td>1.325176</td>\n", " <td>1.325176</td>\n", " </tr>\n", " <tr>\n", " <th>01b_triage_util</th>\n", " <td>0.607039</td>\n", " <td>0.303519</td>\n", " <td>0.607039</td>\n", " <td>0.607039</td>\n", " <td>0.303519</td>\n", " <td>0.303519</td>\n", " </tr>\n", " <tr>\n", " <th>02a_registration_wait</th>\n", " <td>105.572644</td>\n", " <td>135.915119</td>\n", " <td>105.572644</td>\n", " <td>105.572644</td>\n", " <td>135.915119</td>\n", " <td>135.915119</td>\n", " </tr>\n", " <tr>\n", " <th>02b_registration_util</th>\n", " <td>0.840613</td>\n", " <td>0.843954</td>\n", " <td>0.840613</td>\n", " <td>0.840613</td>\n", " <td>0.843954</td>\n", " <td>0.843954</td>\n", " </tr>\n", " <tr>\n", " <th>03a_examination_wait</th>\n", " <td>25.552525</td>\n", " <td>26.688866</td>\n", " <td>0.146565</td>\n", " <td>25.552525</td>\n", " <td>148.865965</td>\n", " <td>66.003847</td>\n", " </tr>\n", " <tr>\n", " <th>03b_examination_util</th>\n", " <td>0.850448</td>\n", " <td>0.853567</td>\n", " <td>0.667856</td>\n", " <td>0.850448</td>\n", " <td>0.893629</td>\n", " <td>0.868998</td>\n", " </tr>\n", " <tr>\n", " <th>04a_treatment_wait(non_trauma)</th>\n", " <td>136.660635</td>\n", " <td>138.575405</td>\n", " <td>151.808204</td>\n", " <td>2.280962</td>\n", " <td>33.568594</td>\n", " <td>111.337103</td>\n", " </tr>\n", " <tr>\n", " <th>04b_treatment_util(non_trauma)</th>\n", " <td>0.867238</td>\n", " <td>0.869324</td>\n", " <td>0.867691</td>\n", " <td>0.629346</td>\n", " <td>0.836384</td>\n", " <td>0.871039</td>\n", " </tr>\n", " <tr>\n", " <th>05_total_time(non-trauma)</th>\n", " <td>234.335783</td>\n", " <td>232.133275</td>\n", " <td>223.063821</td>\n", " <td>192.191909</td>\n", " <td>280.729440</td>\n", " <td>244.797808</td>\n", " </tr>\n", " <tr>\n", " <th>06a_trauma_wait</th>\n", " <td>151.680557</td>\n", " <td>175.135269</td>\n", " <td>151.680557</td>\n", " <td>151.680557</td>\n", " <td>175.135269</td>\n", " <td>175.135269</td>\n", " </tr>\n", " <tr>\n", " <th>06b_trauma_util</th>\n", " <td>0.826941</td>\n", " <td>0.840977</td>\n", " <td>0.826941</td>\n", " <td>0.826941</td>\n", " <td>0.840977</td>\n", " <td>0.840977</td>\n", " </tr>\n", " <tr>\n", " <th>07a_treatment_wait(trauma)</th>\n", " <td>14.305044</td>\n", " <td>14.997287</td>\n", " <td>14.305044</td>\n", " <td>14.305044</td>\n", " <td>14.997287</td>\n", " <td>14.997287</td>\n", " </tr>\n", " <tr>\n", " <th>07b_treatment_util(trauma)</th>\n", " <td>0.501010</td>\n", " <td>0.506908</td>\n", " <td>0.501010</td>\n", " <td>0.501010</td>\n", " <td>0.506908</td>\n", " <td>0.506908</td>\n", " </tr>\n", " <tr>\n", " <th>08_total_time(trauma)</th>\n", " <td>292.280487</td>\n", " <td>282.783517</td>\n", " <td>292.280487</td>\n", " <td>292.280487</td>\n", " <td>282.783517</td>\n", " <td>282.783517</td>\n", " </tr>\n", " <tr>\n", " <th>09_throughput</th>\n", " <td>162.160000</td>\n", " <td>162.920000</td>\n", " <td>165.880000</td>\n", " <td>195.300000</td>\n", " <td>138.540000</td>\n", " <td>156.600000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " base triage+1 exam+1 \\\n", "00_arrivals 227.720000 227.720000 227.720000 \n", "01a_triage_wait 35.243019 1.325176 35.243019 \n", "01b_triage_util 0.607039 0.303519 0.607039 \n", "02a_registration_wait 105.572644 135.915119 105.572644 \n", "02b_registration_util 0.840613 0.843954 0.840613 \n", "03a_examination_wait 25.552525 26.688866 0.146565 \n", "03b_examination_util 0.850448 0.853567 0.667856 \n", "04a_treatment_wait(non_trauma) 136.660635 138.575405 151.808204 \n", "04b_treatment_util(non_trauma) 0.867238 0.869324 0.867691 \n", "05_total_time(non-trauma) 234.335783 232.133275 223.063821 \n", "06a_trauma_wait 151.680557 175.135269 151.680557 \n", "06b_trauma_util 0.826941 0.840977 0.826941 \n", "07a_treatment_wait(trauma) 14.305044 14.997287 14.305044 \n", "07b_treatment_util(trauma) 0.501010 0.506908 0.501010 \n", "08_total_time(trauma) 292.280487 282.783517 292.280487 \n", "09_throughput 162.160000 162.920000 165.880000 \n", "\n", " treat+1 swap_exam_treat short_exam \n", "00_arrivals 227.720000 227.720000 227.720000 \n", "01a_triage_wait 35.243019 1.325176 1.325176 \n", "01b_triage_util 0.607039 0.303519 0.303519 \n", "02a_registration_wait 105.572644 135.915119 135.915119 \n", "02b_registration_util 0.840613 0.843954 0.843954 \n", "03a_examination_wait 25.552525 148.865965 66.003847 \n", "03b_examination_util 0.850448 0.893629 0.868998 \n", "04a_treatment_wait(non_trauma) 2.280962 33.568594 111.337103 \n", "04b_treatment_util(non_trauma) 0.629346 0.836384 0.871039 \n", "05_total_time(non-trauma) 192.191909 280.729440 244.797808 \n", "06a_trauma_wait 151.680557 175.135269 175.135269 \n", "06b_trauma_util 0.826941 0.840977 0.840977 \n", "07a_treatment_wait(trauma) 14.305044 14.997287 14.997287 \n", "07b_treatment_util(trauma) 0.501010 0.506908 0.506908 \n", "08_total_time(trauma) 292.280487 282.783517 282.783517 \n", "09_throughput 195.300000 138.540000 156.600000 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scenario_summary_frame(results)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }