CHRIS / exposure3_module /templates /exposure3_index.html
Robert Elder
fixing quantity module errors
aae0aac
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CHRIS</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> -->
<!-- <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script> -->
<script src="{{ url_for('static',filename='jquery.slim.min.js') }}" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="{{ url_for('static',filename='popper.min.js') }}" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="{{ url_for('static',filename='bootstrap.min.js') }}" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
</head>
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
<br clear="all" />
<header>
<h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) - Bulk chemicals (v3)</h1>
</header>
<p><strong>Note: This module only addresses risk associated with the bulk chemicals, excluding color additives, of known initial quantity.
For color additives, please use the <a href="/color3"> color additive module</a>. </strong></p>
<p> For details on how to use the CHRIS bulk chemical module, please click the information icons next to each section header and read the
<a href="{{url_for('.static', filename='exposure_COU.html')}}"> context of use (COU)</a>, which includes limitations of use.
For a history of updates, please see the <a href="{{url_for('.static', filename='Changelog.html')}}"> changelog</a>.
<!--For reference and disclaimer information, please see the <a href="{{url_for('.static', filename='RST.html')}}"> RST information</a> page.-->
</p>
<body>
<form method="POST">
<!-- Chemical input section -->
<h3> Bulk chemical <button type="button" class="Info_btn" data-toggle="modal" data-target="#LeachModal" >&#9432;</button> </h3>
Identifier type: <select name="IDtype">
<option value="CAS" selected>CAS</option>
<option value="SMILES" >SMILES</option>
<option value="common" >Common name</option>
</select> <br>
Identifier: <input name="chemName" id="chemName" type="text" value="" required><br>
Amount: <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required>
Amount units: <select name="units">
<option value="mg" selected>mg</option>
<option value="µg">µg</option>
</select> <br>
<!-- Modal -->
<div id="LeachModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Bulk chemical</h4>
</div>
<div class="modal-body">
<p><em>Identifier type and identifier</em> - Please select the identifier type and enter the chemical identifier.
For example, if the CAS number is known, select CAS from the pull down menu and enter the CAS number in the identifier field.
If the CAS number is unknown, CHRIS can identify the molecular structure through the SMILES code, which can
be found for many chemicals using <a href="https://pubchem.ncbi.nlm.nih.gov">PubChem</a> or generated based on
the molecular structure using tools such as <a href="https://cactus.nci.nih.gov/cgi-bin/osra/index.cgi">OSRA</a>.
Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.</p>
<p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in micrograms or milligrams.</p>
<p><em>Amount units</em> - Select the appropriate units for the amount, micrograms (µg) or milligrams (mg).</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Polymer matrix input section -->
<h3> Polymer matrix <button type="button" class="Info_btn" data-toggle="modal" data-target="#PolymerModal">&#9432;</button> </h3>
Matrix: <select name="polymer" id="polymer" onchange="javascript:polymerCheck();">
<option value="{{polymers[0]}}" selected>{{polymers[0]}}</option>
{% for polymer in polymers[1:] %}
<option value="{{polymer}}">{{polymer}}</option>
{% endfor %}
</select> <br>
Mass (g): <input name="mass" id="mass" step="any" value="1.0" min="0.000001" type="number" required> <br>
Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value="1.0" min="0.01" type="number" required>
<span id="otherpolymer" style="visibility:hidden">
<br>Glass transition temperature (&deg;C): <input name="polytg" id="polytg" step="any" min="-273.15" max="500" value="" type="number" title="Enter a value for less conservative model, or leave blank for more conservative model">
</span>
<!-- Modal -->
<div id="PolymerModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Polymer Matrix</h4>
</div>
<div class="modal-body">
<p><em>Matrix</em> - Please select your polymer matrix from the list. If your polymer is
not listed below, please select &#34;Other polymer&#34;. For polymer mixtures/blends, co-polymers, or composites (e.g. glass fiber reinforced matrices), the component or phase that is worst-case for exposure, i.e. the softest or least glassy (lowest T<sub>g</sub>) component can be selected if listed (which, in turn, assumes the entire system is composed of the worst-case component or phase). In these scenarios, a justification should be provided for the choice of worst-case component of the polymer system. </p>
<p><em>Mass</em> - Enter the mass of the polymer matrix in grams.</p>
<p><em>Density</em> - Enter the estimated density of the polymer matrix in grams per cubic centimeter. Note that a rough estimate (e.g. +/- 10%) is acceptable.</p>
<p><em>Glass transition temperature</em> - For &#34;Other polymer&#34;, optionally enter the T<sub>g</sub> of the polymer matrix in degrees Celsius to use a less conservative model. If left blank, a more conservative model is used.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Device characteristics input section -->
<h3> Device characteristics <button type=button class="Info_btn" data-toggle="modal" data-target="#DeviceModal">&#9432;</button> </h3>
Exposed surface area (cm<sup>2</sup>):
<input name="area" id="area" step="any" value="5.0" min="0.001" type="number" required><br>
Exposure type:
<input type="radio" name="exposure" id="long-term" value="long-term" onclick="javascript:exposureCheck();" checked > long-term
<input type="radio" name="exposure" id="prolonged" value="prolonged" onclick="javascript:exposureCheck();" > prolonged
<input type="radio" name="exposure" id="limited" value="limited" onclick="javascript:exposureCheck();" > limited
<span id="limitedtime" style="visibility:hidden">
&nbsp; &rArr; Exposure duration (h): <input name="exptime" id="time" step="any" min="0.001" max="24" value="24" type="number" required><br>
</span>
<!-- Modal -->
<div id="DeviceModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Device characteristics</h4>
</div>
<div class="modal-body">
<p><em>Exposed surface area</em> - Enter the patient contacting surface area of the component being evaluated in square centimeters.
This includes both direct and indirect patient contact.</p>
<p><em>Exposure type</em> - Select the appropriate exposure category: > 30 days = long-term, > 24 hours - 30 days = prolonged, &#8804; 24 hours = limited.
For limited exposures (&#8804; 24 hours), please enter the maximum exposure duration in hours.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">&#9432;</button> </h3>
Cumulative exposure duration(s):
<input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
<label for="exposure1d">1 day</label>
<input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
<label for="exposure30d">30 days</label>
<input type="checkbox" id="exposureuser" name="exposureuser" value="exposureuser" checked=True onclick="javascript:exposureuserCheck();">
<label for="exposureuser">Other duration (days)</label>
<span id="exposureuserspan" style="visibility:hidden">
&nbsp; <input name="exposureuserbox" id="exposureuserbox" step="any" min="0.001" max="36500" value="365" type="number" size=5 required><br><br>
</span>
Click to screen your device: <button type="submit">Estimate exposure</button>
<!-- Modal -->
<div id="ExposureModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Exposure assessment</h4>
</div>
<div class="modal-body">
<p><em>Cumulative exposure duration(s)</em> Check the boxes for the exposure duration(s) to use for cumulative release estimates. 1-day exposure is always calculated.
If the "Other duration" box is checked, enter the desired exposure duration in days (e.g., the maximum use duration of the device).
Note that this calculation assumes a single device is used for the entire duration. If multiple devices are used concurrently or sequentially (e.g., daily replacement), this should be accounted for during toxicological risk assessment.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</form>
<!-- Javascript to reveal/hide polymer input box (show/hide Tg) -->
<script type="text/javascript">
function polymerCheck() {
if (document.getElementById('polymer').value == 'Other polymer') {
document.getElementById('otherpolymer').style.visibility = 'visible';
} else {
document.getElementById('otherpolymer').style.visibility = 'hidden';
document.getElementById('polytg').value = '';
}
}
$(window).on('pageshow', function() { polymerCheck(); });
</script>
<!-- Javascript to reveal/hide exposure duration input box (limited contact) -->
<script type="text/javascript">
function exposureCheck() {
if (document.getElementById('limited').checked) {
document.getElementById('limitedtime').style.visibility = 'visible';
} else {
document.getElementById('limitedtime').style.visibility = 'hidden';
document.getElementById('time').value = '24';
}
}
$(window).on('pageshow', function() { exposureCheck(); });
</script>
<!-- Javascript to reveal/hide cumulative exposure duration box -->
<script type="text/javascript">
function exposureuserCheck() {
if (document.getElementById('exposureuser').checked) {
document.getElementById('exposureuserspan').style.visibility = 'visible';
} else {
document.getElementById('exposureuserspan').style.visibility = 'hidden';
document.getElementById('exposureuserspan').value = '365';
}
}
$(window).on('pageshow', function() { exposureuserCheck(); });
</script>
</body>
</html>