cara/cara/apps/calculator/templates/report.html.j2

167 lines
8.4 KiB
Text
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
2020-11-09 18:58:18 +00:00
<title>Report | CARA (COVID Airborne Risk Assessment)</title>
<link rel="stylesheet" type="text/css" href="/calculator/static/css/report.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body id="body">
<h1>Output from CARA - COVID Airborne Risk Assessment tool</h1>
<p class=subtitle> Created {{ creation_date }} using model version {{ form.model_version }}</p><br>
<p>Simulation Name: {{ form.simulation_name }}</p>
<p>Room Number: {{ form.room_number }}</p>
<p class="data_title">Input data:</p>
<ul>
<li><p class="data_text">Room Volume: {{ model.concentration_model.room.volume }} m³</p></li>
</ul>
<p class="data_title">Ventilation data:</p>
<ul>
2020-11-05 20:22:03 +00:00
<li><p class="data_text">Mechanical ventilation:
{% if form.ventilation_type == "mechanical"%}
2020-11-05 20:22:03 +00:00
Yes </p></li>
<ul>
2020-11-06 16:46:04 +00:00
<li><p class="data_subtext">
{% if form.mechanical_ventilation_type == "air_supply"%}
Air supply flow rate: {{ form.air_supply }}
{% elif form.mechanical_ventilation_type == "air_changes"%}
Air changes per hour: {{ form.air_changes }}
2020-11-06 16:46:04 +00:00
{% endif %}
</p></li>
</ul>
2020-11-05 20:22:03 +00:00
{% else %}
No </li>
{% endif %}
<li><p class="data_text">Natural ventilation:
{% if form.ventilation_type == "natural"%}
2020-11-05 20:22:03 +00:00
Yes </p></li>
<ul>
<li><p class="data_subtext">Number of windows: {{ form.windows_number }}</p></li>
<li><p class="data_subtext">Height of window: {{ form.window_height }}</p></li>
<li><p class="data_subtext">Width of window: {{ form.window_width }}</p></li>
<li><p class="data_subtext">Opening distance: {{ form.opening_distance }}</p></li>
<li><p class="data_subtext">Windows open: {{ form.windows_open }}</p></li>
</ul>
<p class="data_subtext data_italic">When using the natural ventilation option, air flows are calculated using averaged hourly temperatures for the Geneva region, based on historical data for the month selected.</p>
2020-11-05 20:22:03 +00:00
{% else %}
No </p></li>
{% endif %}
<li><p class="data_text">HEPA Filtration: {{ 'Yes' if form.hepa_option else 'No' }}</li>
2020-11-10 16:08:07 +00:00
{% if form.hepa_option %}
<ul>
<li><p class="data_text">HEPA amount: {{ form.hepa_amount }}</p></li>
</ul>
{% endif %}
</ul>
<p class="data_title">Event data:</p>
<ul>
<li><p class="data_text">Number of attendees and infected people: {{ form.total_people }} in attendance, of whom {{ form.infected_people }}
{{ "is" if form.infected_people == 1 else "are" }}
infected.</p></li>
<li><p class="data_text">Activity type:
{% if form.activity_type == "office" %}
Office/Meeting typical scenario with all persons seated, talking.
{% elif form.activity_type == "workshop" %}
Workshop = assembly workshop environment, all persons doing light exercise, talking.
{% elif form.activity_type == "training" %}
Training one person (the trainer) standing, talking, all others seated, talking quietly (whispering). It is assumed the trainer is the infected person, for the worst case scenario.
{% endif %}
</p></li>
2020-11-06 09:33:38 +00:00
<ul>
<li><p class="data_subtext">Start time: {{ form.activity_start | minutes_to_time }} &nbsp&nbsp End time: {{ form.activity_finish | minutes_to_time }}</p></li>
</ul>
<li><p class="data_text">Exposure time (presence of infected person):</p></li>
<ul>
<li><p class="data_subtext">Start time: {{ form.infected_start | minutes_to_time }} &nbsp&nbsp End time: {{ form.infected_finish | minutes_to_time }}</p></li>
</ul>
{% if form.event_type == "single_event"%}
<li><p class="data_text">Single event on {{ form.single_event_date }}</p></li>
2020-11-05 20:22:03 +00:00
{% endif %}
{% if form.event_type == "recurrent_event"%}
<li><p class="data_text">Recurrent event for the month of {{ form.recurrent_event_month }}</p></li>
2020-11-05 20:22:03 +00:00
{% endif %}
</ul>
<p class="data_title">Break data:</p>
<ul>
<li><p class="data_text">Lunch break:
{% if form.lunch_option%}
Yes</li>
2020-11-05 20:22:03 +00:00
<ul>
<li> Start: {{ form.lunch_start | minutes_to_time }} &nbsp&nbsp End: {{ form.lunch_finish | minutes_to_time }}</p></li>
2020-11-05 20:22:03 +00:00
</ul>
{% else%}
No</li>
2020-11-05 20:22:03 +00:00
{% endif %}
<li><p class="data_text">Coffee breaks: {{ form.coffee_breaks }}
{% if form.coffee_breaks > 0 %}
each of {{ form.coffee_duration }} minutes duration
2020-11-05 20:22:03 +00:00
</p></li>
<ul>
{%- for start_time, end_time in form.coffee_break_times() %}
<li><p class="data_subtext">Coffee break {{ loop.index }}: Start: {{ start_time | minutes_to_time }} &nbsp&nbsp End: {{ end_time | minutes_to_time }}</p></li>
2020-11-05 20:22:03 +00:00
{%- endfor %}
</ul>
2020-11-05 20:22:03 +00:00
{% endif %}
</ul>
<p class="data_title">Mask wearing:</p>
<ul>
2020-11-10 16:08:07 +00:00
<li><p class="data_text">Masks worn at workstations? {{ 'Yes' if form.mask_wearing == "continuous" else 'No' }} </p></li>
{% if form.mask_wearing == "continuous" %}
<li><p class="data_text">Mask type: {{ form.mask_type }}</p></li>
{% endif %}
</ul>
<p class="result_title">Results:</p>
<p class="data_text">
In this scenario, the estimated probability of one exposed occupant getting infected P(i) is {{ prob_inf | int_format }}% and the estimated basic reproduction rate (R0) is {{ R0 | float_format }}.
<p>
2020-11-05 20:22:03 +00:00
<p class="data_title">Exposure graph:</p>
<img id="scenario_concentration_plot" src="{{ scenario_plot_src }}">
2020-11-05 20:22:57 +00:00
<p class="data_title">Repeated events:</p>
<p class="data_text">
The P(i) and R0 if repeating this scenario event - provided the infected person emits the same amount of viruses each day and the exposed person is subject to the same daily exposure time:
<table class="table table-striped w-auto">
<thead class="thead-light">
<tr>
<th># of repeated events</th>
<th>P(i)</th>
<th>R0</th>
</tr>
</thead>
<tbody>
{% for repeat_event in repeated_events %}
<tr>
<td>{{ repeat_event.repeats }}</td>
<td>{{ repeat_event.probability_of_infection | int_format }}%</td>
<td>{{ repeat_event.R0 | float_format }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<p>
<br><br><br>
2020-11-05 20:22:57 +00:00
<div style="border: 2px solid black; padding: 15px;">
2020-11-05 22:35:33 +00:00
<p class="image"> <img <img align="middle" src="/calculator/static/images/disclaimer.jpg" width="40" height="40"><b>Disclaimer:</b><br><br></p>
2020-11-05 20:22:57 +00:00
<p class="discalimer">The risk assessment tool simulates the long range airborne spread SARS-CoV-2 virus in a finite volume, assuming a homogenous mixture, and estimates the risk of COVID-19 infection thereto. The results DO NOT include short-range airborne exposure (where the physical distance plays a factor) nor the other know modes of transmission of SARS-CoV-2. Hence, this model implies that proper physical distancing, good hand hygiene and other barrier measures are ensured.<br><br>
It is based on current scientific data and can be used to measures the effectiveness of different mitigation measures.<br><br>
Note that this model is based on a deterministic approach, i.e., at least one person is infected and shedding viruses into the volume. Nonetheless, it is also important to understand that the absolute risk of infection is uncertain as it will depend on the probability that someone infected attends the event. The model is mostly useful to compare the impact and effectiveness of mitigation measures such as ventilation, filtration, exposure time, activity and the size of the room on long-range airborne transmission of COVID-19 in indoor settings.<br><br>
This application is meant for informative and educational purposes. The user can be able to adapt different settings and measure the relative impact on the estimated infection probabilities to allow for a targeted decision making and investment. The user should acknowledge that until the virus is in circulation among the population, the notion of 'zero risk' or a 'completely safe scenario' does not exist. Each event is unique and the results are as accurate as the inputs. The app is based on our scientific understanding of infectious diseases transmission, exposure and aerosol science as of November 2020.<br><br>
<b>We do not assume responsibility for any injury or damage to persons or property arising out of or related to any use of this app.</b></p>
</div>
</body>
</html>