David Saylor commited on
Commit
6587a4e
·
1 Parent(s): eb61edf

added impurity eval back in

Browse files
Files changed (3) hide show
  1. CHRISv1.py +11 -1
  2. templates/index.html +8 -1
  3. templates/report.html +21 -7
CHRISv1.py CHANGED
@@ -78,18 +78,23 @@ def app_post():
78
  caIndex = (np.where(CAs==CA)[0])[0]
79
 
80
  TI = caData[caIndex][1]
 
 
81
  if caIndex<11:
82
  isCA = True
83
  MW = caData[caIndex][2]
84
  chemName = caData[caIndex][0].decode('UTF-8')
 
85
  if caIndex == 11:
86
  isCA = True
87
  MW = caData[caIndex][2]
88
  chemName = request.form["chemName"]
 
89
  if caIndex == 12:
90
  isCA = True
91
  MW = float(request.form["MW"])
92
  chemName = request.form["chemName"]
 
93
  if caIndex == 13:
94
  isCA = False
95
  MW = float(request.form["MW"])
@@ -121,12 +126,17 @@ def app_post():
121
  else:
122
  MOS = 50.*TI/release
123
 
 
 
124
  release = SigFigs(release,2)
125
  MOS = SigFigs(MOS,2)
126
  diff = SigFigs(diff,2)
 
 
127
 
128
  return render_template('report.html', polymers=polymers, pIndex=pIndex, caIndex=caIndex, release=release, assume=assume, \
129
- area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC, isCA=isCA, TI=TI, MOS=MOS, chemName=chemName)
 
130
 
131
  def CalcExposure(MW,amount,vol,area,exposure,time,pIndex):
132
  Ap = np.array((16.9,11.7,8.2,2.6))
 
78
  caIndex = (np.where(CAs==CA)[0])[0]
79
 
80
  TI = caData[caIndex][1]
81
+ impurity = 1.
82
+
83
  if caIndex<11:
84
  isCA = True
85
  MW = caData[caIndex][2]
86
  chemName = caData[caIndex][0].decode('UTF-8')
87
+ impurity = float(request.form["impurity"])*amount*1e-2
88
  if caIndex == 11:
89
  isCA = True
90
  MW = caData[caIndex][2]
91
  chemName = request.form["chemName"]
92
+ impurity = float(request.form["impurity"])*amount*1e-2
93
  if caIndex == 12:
94
  isCA = True
95
  MW = float(request.form["MW"])
96
  chemName = request.form["chemName"]
97
+ impurity = float(request.form["impurity"])*amount*1e-2
98
  if caIndex == 13:
99
  isCA = False
100
  MW = float(request.form["MW"])
 
126
  else:
127
  MOS = 50.*TI/release
128
 
129
+ iMOS = TTC/impurity
130
+
131
  release = SigFigs(release,2)
132
  MOS = SigFigs(MOS,2)
133
  diff = SigFigs(diff,2)
134
+ iMOS = SigFigs(iMOS,2)
135
+ impurity = SigFigs(impurity,2)
136
 
137
  return render_template('report.html', polymers=polymers, pIndex=pIndex, caIndex=caIndex, release=release, assume=assume, \
138
+ area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC, isCA=isCA, TI=TI, MOS=MOS, \
139
+ chemName=chemName, impurity=impurity, iMOS=iMOS)
140
 
141
  def CalcExposure(MW,amount,vol,area,exposure,time,pIndex):
142
  Ap = np.array((16.9,11.7,8.2,2.6))
templates/index.html CHANGED
@@ -56,7 +56,7 @@ body {font-family: Arial, Helvetica, sans-serif;}
56
  <h2>Color Hazard and RISk calculator (CHRIS)</h2>
57
  </header>
58
 
59
- <p><strong>Disclaimer: CHRIS only addresses risk associated with the presence of color additives and additives and impurities associated with the color additive. Therefore, a favorable outcome by CHRIS does not imply acceptable biological risk for the final finished form of a medical device. Further, a successful CHRIS evaluation does not address local biocompatibility endpoints, and therefore additional testing may be needed despite a positive outcome from CHRIS. Because there may be additional restrictions based on specific device guidance and code of federal regulation (CFR) listings, users should also review the relevant documents for their device type and color additive. </strong></p>
60
 
61
 
62
  <p> For details on how to use CHRIS, please read the <a href="{{url_for('static', filename='README.html')}}"> instructions.</a> and <a href="{{url_for('static', filename='COU.html')}}"> context of use (COU)</a>. Answers to frequently asked questions can be found <a href="{{url_for('static', filename='FAQ.html')}}"> here</a>.</p>
@@ -83,6 +83,8 @@ Molecular weight (g/mol): <input name="MW" id="MW" step="any" value="1100" min="
83
 
84
  Amount (mg): <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number"> <br>
85
 
 
 
86
  <!-- Javascript to reveal/hide CA selection box -->
87
 
88
  <script type="text/javascript">
@@ -93,7 +95,11 @@ function caCheck() {
93
 
94
  document.getElementById("MW").value = parseFloat(caMW[iCA]);
95
  document.getElementById('MW').disabled = true;
 
96
 
 
 
 
97
  if (iCA >= 12) {
98
  document.getElementById('MW').disabled = false;
99
  }
@@ -119,6 +125,7 @@ function caCheck() {
119
  <p><em>Identity</em> - Select the color additive in the component being evaluated via the pull down list. If the color additive is not explicitly listed, please choose either "Other metal oxide color additive" or "Other non-metal oxide color additive" and enter the chemical name, including CAS # if known. If "Other non-metal oxide color additive" is selected, please enter the molecular weight of the color additive in grams per mole. If you are evaluating an additive or impurity associated with a color additive please select "Other compound (non-color additive)" and enter the chemical name and molecular weight. Note that the CHRIS is limited to color additive associated substances with molecular weight between 100 and 1100 g/mol. For compounds with molecular weight > 1100 g/mol, this value can be used for a conservative exposure estimate.
120
  <p><em>Molecular weight</em> - Enter the molecular weight of the substance in grams per mole.</p>
121
  <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in milligrams.</p>
 
122
  </div>
123
  <div class="modal-footer">
124
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
56
  <h2>Color Hazard and RISk calculator (CHRIS)</h2>
57
  </header>
58
 
59
+ <p><strong>Disclaimer: CHRIS only addresses risk associated with the presence of color additives and additives and impurities associated with the color additive. Therefore, a favorable outcome by CHRIS does not imply acceptable biological risk for the final finished form of a medical device. Further, a successful CHRIS evaluation does not address local biocompatibility endpoints, and therefore additional testing may be needed despite a positive outcome from CHRIS. Because there may be additional restrictions based on specific device guidance and code of federal regulation (CFR) listings, users should also review the relevant documents for their device type and color additive. </strong></p>
60
 
61
 
62
  <p> For details on how to use CHRIS, please read the <a href="{{url_for('static', filename='README.html')}}"> instructions.</a> and <a href="{{url_for('static', filename='COU.html')}}"> context of use (COU)</a>. Answers to frequently asked questions can be found <a href="{{url_for('static', filename='FAQ.html')}}"> here</a>.</p>
 
83
 
84
  Amount (mg): <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number"> <br>
85
 
86
+ Total impurity concentration (%): <input name="impurity" id="impurity" value="0.1" step="any" min="0.000001" max='100.0' type="number"> <br>
87
+
88
  <!-- Javascript to reveal/hide CA selection box -->
89
 
90
  <script type="text/javascript">
 
95
 
96
  document.getElementById("MW").value = parseFloat(caMW[iCA]);
97
  document.getElementById('MW').disabled = true;
98
+ document.getElementById('impurity').disabled = false;
99
 
100
+ if (iCA >= 13) {
101
+ document.getElementById('impurity').disabled = true;
102
+ }
103
  if (iCA >= 12) {
104
  document.getElementById('MW').disabled = false;
105
  }
 
125
  <p><em>Identity</em> - Select the color additive in the component being evaluated via the pull down list. If the color additive is not explicitly listed, please choose either "Other metal oxide color additive" or "Other non-metal oxide color additive" and enter the chemical name, including CAS # if known. If "Other non-metal oxide color additive" is selected, please enter the molecular weight of the color additive in grams per mole. If you are evaluating an additive or impurity associated with a color additive please select "Other compound (non-color additive)" and enter the chemical name and molecular weight. Note that the CHRIS is limited to color additive associated substances with molecular weight between 100 and 1100 g/mol. For compounds with molecular weight > 1100 g/mol, this value can be used for a conservative exposure estimate.
126
  <p><em>Molecular weight</em> - Enter the molecular weight of the substance in grams per mole.</p>
127
  <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in milligrams.</p>
128
+ <p><em>Total impurity concentration</em> - If you have selected a color additive, please enter the combined concentration of all impurities associated with the color additive as a percentage (% mass/mass).</p>
129
  </div>
130
  <div class="modal-footer">
131
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
templates/report.html CHANGED
@@ -141,16 +141,30 @@ The tolerable intake value for your color additive is {{TI}} mg/kg/day. Assumin
141
  <font color="red"> *Note*: This assessment assumes that the color additive complies with all relevant medical device specific guidance documents and all relevant Code of Federal Regulations (CFR) color additive listings, if they exist for the color additive. Examples of CFR listings are provided in the <a href="static/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >FAQ</a>.</font>
142
  </p>
143
 
 
 
 
 
 
 
 
 
 
 
144
  <p>
145
- <font color="red"> *Note*: This assessment does not address the risk of additives or impurities that may be associated with {{chemName}}. For any impurities present, users should first conduct a separate assessment using the tool for each impurity. If the impurities are unknown, the total amount of impurities associated with the color additive can be compared to the relevant TTC value. Second, the user should review and confirm compliance with the relevant Code of Federal Regulations (CFR) listings as part of the submission package, i.e. in addition to any output of CHRIS. A list of relevant CFR listings is provided <a href="static/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >here</a>.</font>
146
  </p>
147
 
148
- <p><font color="red"> If the total amount of impurities exceeds the relevant CFR listing and/or TTC value, one can:
149
- <ul>
150
- <li>Use information from a material supplier (e.g., certificate of analysis) or analytical chemistry to determine the level of an impurity, AND</li>
151
- <li>Derive a chemical-specific tolerable intake for each impurity and justify that the level in your device will be acceptable.</li>
152
- </ul>
153
- </font></p>
 
 
 
 
154
 
155
  {% endif %}
156
 
 
141
  <font color="red"> *Note*: This assessment assumes that the color additive complies with all relevant medical device specific guidance documents and all relevant Code of Federal Regulations (CFR) color additive listings, if they exist for the color additive. Examples of CFR listings are provided in the <a href="static/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >FAQ</a>.</font>
142
  </p>
143
 
144
+ {% endif %}
145
+
146
+ {% if isCA == true %}
147
+
148
+ <h3> Color additive impurities </h3>
149
+
150
+ {% if iMOS >= 1 %}
151
+
152
+ <font color="green"> The total color additive impurity level is {{impurity}} mg. When compared to TTC this results in an MOS = {{iMOS}}. Therefore, no further analysis is needed for the impact of impurities on systemic biocompatibility endpoints. </font>
153
+
154
  <p>
155
+ <font color="red"> *Note*: This assessment assumes that any impurities present are not in the cohort of concern. </font>
156
  </p>
157
 
158
+ <p>
159
+ <font color="red"> *Note*: Users should review and confirm compliance of impurity levels with any relevant Code of Federal Regulations (CFR) listings as part of the submission package, i.e. in addition to any output of CHRIS. A list of relevant CFR listings is provided <a href="static/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >here</a>.</font>
160
+ </p>
161
+
162
+ {% else %}
163
+
164
+ <font color="red"> The total color additive impurity level is {{impurity}} mg. When compared to TTC this results in an MOS = {{iMOS}}. Therefore, further analysis is needed to address the impact of impurities on systemic biocompatibility endpoints. Guidance on alternative methods to address impurities is provided <a href="static/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >here</a>. </font>
165
+
166
+
167
+ {% endif %}
168
 
169
  {% endif %}
170