Robert Elder commited on
Commit
b0786e9
·
1 Parent(s): 3455dc7

incorporating Echo feedback

Browse files
color3_module/colors.py CHANGED
@@ -71,6 +71,10 @@ def app_post():
71
  caIndex = (np.where(CAs == CA)[0])[0]
72
 
73
  TI = caData[caIndex][1]
 
 
 
 
74
  impurity = 1.
75
  isCA = True
76
  chemName = ''
@@ -130,6 +134,9 @@ def app_post():
130
  else:
131
  TTC = 0.0015
132
 
 
 
 
133
  polytg = ''
134
  use_qrf = False
135
  if polymer == 'Other polymer':
@@ -185,7 +192,7 @@ def app_post():
185
  #print(release_list, file=sys.stderr)
186
  frac_list = [str(SigFigs(r/amount*100,2))+'%' for r in release_list]
187
  release_list = [SigFigs(r,2) for r in release_list]
188
- df_rel = pd.DataFrame(np.transpose([tlist,release_list,frac_list]),columns=['Exposure time (days)','Cumulative release (mg)','Cumulative release (%)'])
189
  df_rel['Exposure time (days)'] = df_rel['Exposure time (days)'].astype(float)
190
  release_table = df_rel.sort_values(by='Exposure time (days)').to_html(index=False)
191
 
@@ -200,7 +207,7 @@ def app_post():
200
  #pngImageB64String = RatePlot(tarray, rates)
201
 
202
  return render_template('color3_report.html', caIndex=caIndex, TI=TI, isCA=isCA, show_properties=show_properties, polymers=polymers, pIndex=pIndex, release=release, release_table=release_table,
203
- area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC,
204
  MOS=MOS, chemName=chemName, MW=MW, LogP=LogP, rho=rho, mp=mp, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage,
205
  ceramic=is_ceramic, impurity=impurity, iMOS=iMOS, methods=[method,polytg,density])
206
 
 
71
  caIndex = (np.where(CAs == CA)[0])[0]
72
 
73
  TI = caData[caIndex][1]
74
+ units = request.form['units']
75
+ if units == 'µg':
76
+ TI *= 1000
77
+
78
  impurity = 1.
79
  isCA = True
80
  chemName = ''
 
134
  else:
135
  TTC = 0.0015
136
 
137
+ if units == 'µg':
138
+ TTC *= 1000
139
+
140
  polytg = ''
141
  use_qrf = False
142
  if polymer == 'Other polymer':
 
192
  #print(release_list, file=sys.stderr)
193
  frac_list = [str(SigFigs(r/amount*100,2))+'%' for r in release_list]
194
  release_list = [SigFigs(r,2) for r in release_list]
195
+ df_rel = pd.DataFrame(np.transpose([tlist,release_list,frac_list]),columns=['Exposure time (days)',f'Cumulative release ({units})','Cumulative release (%)'])
196
  df_rel['Exposure time (days)'] = df_rel['Exposure time (days)'].astype(float)
197
  release_table = df_rel.sort_values(by='Exposure time (days)').to_html(index=False)
198
 
 
207
  #pngImageB64String = RatePlot(tarray, rates)
208
 
209
  return render_template('color3_report.html', caIndex=caIndex, TI=TI, isCA=isCA, show_properties=show_properties, polymers=polymers, pIndex=pIndex, release=release, release_table=release_table,
210
+ area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC, units=units,
211
  MOS=MOS, chemName=chemName, MW=MW, LogP=LogP, rho=rho, mp=mp, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage,
212
  ceramic=is_ceramic, impurity=impurity, iMOS=iMOS, methods=[method,polytg,density])
213
 
color3_module/templates/color3_index.html CHANGED
@@ -46,7 +46,11 @@ Identity: <select name="CA" id="CA" onchange="javascript:caCheck();">
46
  Identifier: <input name="chemName" id="chemName" type="text" value="">
47
  </span> <br>
48
 
49
- Amount (mg): <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required> <br>
 
 
 
 
50
 
51
  Total impurity concentration (%): <input name="impurity" id="impurity" value="0.1" step="any" min="0.000001" max='100.0' type="number" required> <br>
52
 
@@ -91,7 +95,8 @@ $(window).on('pageshow', function() { caCheck(); });
91
  Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.
92
  If you are evaluating an additive associated with a color additive please select "Other color additive associated compound" and
93
  follow the same procedure for "Other color additive".
94
- <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in milligrams.</p>
 
95
  <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>
96
  </div>
97
  <div class="modal-footer">
@@ -151,7 +156,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
151
  <input type="radio" name="exposure" id="prolonged" value="prolonged" onclick="javascript:exposureCheck();" > prolonged
152
  <input type="radio" name="exposure" id="limited" value="limited" onclick="javascript:exposureCheck();" > limited
153
  <span id="limitedtime" style="visibility:hidden">
154
- &nbsp; &rArr; Exposure time (h): <input name="exptime" id="time" step="any" min="0.001" max="24" value="24" type="number" required><br>
155
  </span>
156
 
157
  <!-- Modal -->
@@ -165,7 +170,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
165
  </div>
166
  <div class="modal-body">
167
  <p><em>Exposed surface area</em> - Enter the patient contacting surface area of the color additive containing component being evaluated in square centimeters. This includes both direct and indirect patient contact.</p>
168
- <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 time in hours.</p>
169
  </div>
170
  <div class="modal-footer">
171
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@@ -176,7 +181,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
176
  </div>
177
 
178
  <h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">&#9432;</button> </h3>
179
- Cumulative exposure time(s):
180
  <input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
181
  <label for="exposure1d">1 day</label>
182
  <input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
@@ -199,8 +204,9 @@ Click to screen your device: <button type="submit">Estimate exposure</button>
199
  <h4 class="modal-title">Exposure assessment</h4>
200
  </div>
201
  <div class="modal-body">
202
- <p><em>Cumulative exposure time(s)</em> Check the boxes for the exposure time(s) to use for cumulative release estimates. 1-day exposure is always calculated.
203
- If the "Other duration" box is checked, enter the desired exposure time in days.</p>
 
204
  </div>
205
  <div class="modal-footer">
206
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@@ -229,7 +235,7 @@ function polymerCheck() {
229
  $(window).on('pageshow', function() { polymerCheck(); });
230
  </script>
231
 
232
- <!-- Javascript to reveal/hide exposure time input box (limited contact) -->
233
 
234
  <script type="text/javascript">
235
  function exposureCheck() {
 
46
  Identifier: <input name="chemName" id="chemName" type="text" value="">
47
  </span> <br>
48
 
49
+ Amount: <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required>
50
+ Amount units: <select name="units">
51
+ <option value="µg" selected>µg</option>
52
+ <option value="mg" >mg</option>
53
+ </select> <br>
54
 
55
  Total impurity concentration (%): <input name="impurity" id="impurity" value="0.1" step="any" min="0.000001" max='100.0' type="number" required> <br>
56
 
 
95
  Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.
96
  If you are evaluating an additive associated with a color additive please select "Other color additive associated compound" and
97
  follow the same procedure for "Other color additive".
98
+ <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in micrograms or milligrams.</p>
99
+ <p><em>Amount units</em> - Select the appropriate units for the amount, micrograms (µg) or milligrams (mg).</p>
100
  <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>
101
  </div>
102
  <div class="modal-footer">
 
156
  <input type="radio" name="exposure" id="prolonged" value="prolonged" onclick="javascript:exposureCheck();" > prolonged
157
  <input type="radio" name="exposure" id="limited" value="limited" onclick="javascript:exposureCheck();" > limited
158
  <span id="limitedtime" style="visibility:hidden">
159
+ &nbsp; &rArr; Exposure duration (h): <input name="exptime" id="time" step="any" min="0.001" max="24" value="24" type="number" required><br>
160
  </span>
161
 
162
  <!-- Modal -->
 
170
  </div>
171
  <div class="modal-body">
172
  <p><em>Exposed surface area</em> - Enter the patient contacting surface area of the color additive containing component being evaluated in square centimeters. This includes both direct and indirect patient contact.</p>
173
+ <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>
174
  </div>
175
  <div class="modal-footer">
176
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
181
  </div>
182
 
183
  <h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">&#9432;</button> </h3>
184
+ Cumulative exposure duration(s):
185
  <input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
186
  <label for="exposure1d">1 day</label>
187
  <input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
 
204
  <h4 class="modal-title">Exposure assessment</h4>
205
  </div>
206
  <div class="modal-body">
207
+ <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.
208
+ If the "Other duration" box is checked, enter the desired exposure duration in days (e.g., the maximum use duration of the device).
209
+ 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>
210
  </div>
211
  <div class="modal-footer">
212
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
235
  $(window).on('pageshow', function() { polymerCheck(); });
236
  </script>
237
 
238
+ <!-- Javascript to reveal/hide exposure duration input box (limited contact) -->
239
 
240
  <script type="text/javascript">
241
  function exposureCheck() {
color3_module/templates/color3_report.html CHANGED
@@ -32,6 +32,10 @@
32
 
33
  </head>
34
 
 
 
 
 
35
  <header>
36
  <h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) Report - Color additives (v3)</h1>
37
  </header>
@@ -71,16 +75,16 @@
71
  <p>
72
  {% if methods[0]=="category" %}
73
  <u> Diffusion calculation for leaching from {{polymers[pIndex]}} estimates a worst case single day
74
- exposure = {{release}} mg. </u>
75
  {% elif methods[0]=="wc" %}
76
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because no T<sub>g</sub> was specified) estimates a worst case single day
77
- exposure = {{release}} mg. </u>
78
  {% elif methods[0]=="qrf" %}
79
  <u> Diffusion calculation for leaching from the polymer (with density = {{methods[2]}} g/cm<sup>3</sup> and T<sub>g</sub> = {{methods[1]}} &deg;C) estimates a worst case single day
80
- exposure = {{release}} mg. </u>
81
  {% elif methods[0]=="qrf/wc" %}
82
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because this system is outside the model training domain) estimates a worst case single day
83
- exposure = {{release}} mg. </u>
84
  {% endif %}
85
  <p>
86
 
@@ -104,13 +108,13 @@ where \( \tau= D t A^2 / V^2 \) and \( A \) and \( V \) are the surface area and
104
  <p>
105
  \( A \) = {{area}} cm<sup>2</sup> <br>
106
  \( V \) = {{vol}} cm<sup>3</sup> <br>
107
- \( M_0 \) = {{amount}} mg <br>
108
  \( D \) = {{diff}} cm<sup>2</sup>/s <br>
109
  \( t \) = {{time}} h <br>
110
  <p>
111
 
112
  <p>
113
- It can be helpful to examine the cumulative amount released over various exposure times:
114
  </p>
115
 
116
  <div>
@@ -124,7 +128,7 @@ It can be helpful to examine the cumulative amount released over various exposur
124
  {% if caIndex > 10 %}
125
 
126
  <p>
127
- The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}} mg. Based on the exposure estimation
128
  this results in a margin of safety (MOS) of {{MOS}}.
129
  </p>
130
 
@@ -135,6 +139,10 @@ The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}
135
  for systemic biocompatibility endpoints. </font>
136
  </p>
137
 
 
 
 
 
138
  <p>
139
  <font color="red"> *Note*: This assessment assumes that the chemical is not in the cohort of concern. </font>
140
  </p>
@@ -151,8 +159,8 @@ The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}
151
 
152
  {% else %}
153
 
154
- The tolerable intake value for your color additive is {{TI}} mg/kg/day. Assuming a 50 kg patient, the tolerable
155
- exposure value would be {{50*TI}} mg/day. Based on the exposure estimation this results in a margin of safety (MOS)
156
  of {{MOS}}.
157
 
158
  {% if MOS >= 1 %}
@@ -162,6 +170,10 @@ of {{MOS}}.
162
  is needed for systemic biocompatibility endpoints. </font>
163
  </p>
164
 
 
 
 
 
165
  <p>
166
  <font color="red"> *Note*: This calculation assumes an adult patient population with a worst-case body weight of 50 kg.
167
  If the intended patient population of your device is different, please adjust the tolerable exposure calculation
@@ -194,10 +206,14 @@ of {{MOS}}.
194
 
195
  {% if iMOS >= 1 %}
196
 
197
- <font color="green"> The total additive impurity level is {{impurity}} mg. When compared to TTC this results in
198
  an MOS = {{iMOS}}. Therefore, no further analysis is needed for the impact of impurities on systemic
199
  biocompatibility endpoints. </font>
200
 
 
 
 
 
201
  <p>
202
  <font color="red"> *Note*: This assessment assumes that any impurities present are not in the cohort of concern. </font>
203
  </p>
@@ -214,7 +230,7 @@ of {{MOS}}.
214
  {% else %}
215
 
216
  <p>
217
- <font color="red"> The total additive impurity level is {{impurity}} mg. When compared to TTC this results in
218
  an MOS = {{iMOS}}. Therefore, further analysis is needed to address the impact of impurities on systemic
219
  biocompatibility endpoints. Guidance on alternative methods to address impurities is provided
220
  <a href="color_module/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >here</a>. </font>
 
32
 
33
  </head>
34
 
35
+ <img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
36
+ <img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
37
+ <br clear="all" />
38
+
39
  <header>
40
  <h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) Report - Color additives (v3)</h1>
41
  </header>
 
75
  <p>
76
  {% if methods[0]=="category" %}
77
  <u> Diffusion calculation for leaching from {{polymers[pIndex]}} estimates a worst case single day
78
+ exposure = {{release}} {{units}}. </u>
79
  {% elif methods[0]=="wc" %}
80
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because no T<sub>g</sub> was specified) estimates a worst case single day
81
+ exposure = {{release}} {{units}}. </u>
82
  {% elif methods[0]=="qrf" %}
83
  <u> Diffusion calculation for leaching from the polymer (with density = {{methods[2]}} g/cm<sup>3</sup> and T<sub>g</sub> = {{methods[1]}} &deg;C) estimates a worst case single day
84
+ exposure = {{release}} {{units}}. </u>
85
  {% elif methods[0]=="qrf/wc" %}
86
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because this system is outside the model training domain) estimates a worst case single day
87
+ exposure = {{release}} {{units}}. </u>
88
  {% endif %}
89
  <p>
90
 
 
108
  <p>
109
  \( A \) = {{area}} cm<sup>2</sup> <br>
110
  \( V \) = {{vol}} cm<sup>3</sup> <br>
111
+ \( M_0 \) = {{amount}} {{units}} <br>
112
  \( D \) = {{diff}} cm<sup>2</sup>/s <br>
113
  \( t \) = {{time}} h <br>
114
  <p>
115
 
116
  <p>
117
+ It can be helpful to examine the cumulative amount released over various exposure times. For example, the 30-day cumulative exposure may be compared to the TSL<sub>&le;30 d</sub> as recommended in ISO 10993-17:2023. 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.
118
  </p>
119
 
120
  <div>
 
128
  {% if caIndex > 10 %}
129
 
130
  <p>
131
+ The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}} {{units}}/day. Based on the exposure estimation
132
  this results in a margin of safety (MOS) of {{MOS}}.
133
  </p>
134
 
 
139
  for systemic biocompatibility endpoints. </font>
140
  </p>
141
 
142
+ <p>
143
+ <font color="red"> *Note*: This assessment assumes that the amount (\( M_0 \)) accounts for the number of devices used concurrently (i.e., multiply the per-device amount by the number of devices used concurrently). </font>
144
+ </p>
145
+
146
  <p>
147
  <font color="red"> *Note*: This assessment assumes that the chemical is not in the cohort of concern. </font>
148
  </p>
 
159
 
160
  {% else %}
161
 
162
+ The tolerable intake value for your color additive is {{TI}} {{units}}/kg/day. Assuming a 50 kg patient, the tolerable
163
+ exposure value would be {{50*TI}} {{units}}/day. Based on the exposure estimation this results in a margin of safety (MOS)
164
  of {{MOS}}.
165
 
166
  {% if MOS >= 1 %}
 
170
  is needed for systemic biocompatibility endpoints. </font>
171
  </p>
172
 
173
+ <p>
174
+ <font color="red"> *Note*: This assessment assumes that the amount (\( M_0 \)) accounts for the number of devices used concurrently (i.e., multiply the per-device amount by the number of devices used concurrently). </font>
175
+ </p>
176
+
177
  <p>
178
  <font color="red"> *Note*: This calculation assumes an adult patient population with a worst-case body weight of 50 kg.
179
  If the intended patient population of your device is different, please adjust the tolerable exposure calculation
 
206
 
207
  {% if iMOS >= 1 %}
208
 
209
+ <font color="green"> The total additive impurity level is {{impurity}} {{units}}. When compared to TTC this results in
210
  an MOS = {{iMOS}}. Therefore, no further analysis is needed for the impact of impurities on systemic
211
  biocompatibility endpoints. </font>
212
 
213
+ <p>
214
+ <font color="red"> *Note*: This assessment assumes that the amount (\( M_0 \)) accounts for the number of devices used concurrently (i.e., multiply the per-device amount by the number of devices used concurrently). </font>
215
+ </p>
216
+
217
  <p>
218
  <font color="red"> *Note*: This assessment assumes that any impurities present are not in the cohort of concern. </font>
219
  </p>
 
230
  {% else %}
231
 
232
  <p>
233
+ <font color="red"> The total additive impurity level is {{impurity}} {{units}}. When compared to TTC this results in
234
  an MOS = {{iMOS}}. Therefore, further analysis is needed to address the impact of impurities on systemic
235
  biocompatibility endpoints. Guidance on alternative methods to address impurities is provided
236
  <a href="color_module/FAQ.html#how-does-chris-deal-with-color-additive-impurities" >here</a>. </font>
exposure3_module/exposure.py CHANGED
@@ -109,6 +109,10 @@ def exp_post():
109
  else:
110
  TTC = 0.0015
111
 
 
 
 
 
112
  polytg = ''
113
  use_qrf = False
114
  if polymer == 'Other polymer':
@@ -162,7 +166,7 @@ def exp_post():
162
  #print(release_list, file=sys.stderr)
163
  frac_list = [str(SigFigs(r/amount*100,2))+'%' for r in release_list]
164
  release_list = [SigFigs(r,2) for r in release_list]
165
- df_rel = pd.DataFrame(np.transpose([tlist,release_list,frac_list]),columns=['Exposure time (days)','Cumulative release (mg)','Cumulative release (%)'])
166
  df_rel['Exposure time (days)'] = df_rel['Exposure time (days)'].astype(float)
167
  release_table = df_rel.sort_values(by='Exposure time (days)').to_html(index=False)
168
 
@@ -171,7 +175,7 @@ def exp_post():
171
  diff = SigFigs(diff, 2)
172
 
173
  return render_template('exposure3_report.html', show_properties=show_properties, polymers=polymers, pIndex=pIndex, release=release, release_table=release_table,
174
- area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC,
175
  MOS=MOS, chemName=chemName, MW=MW, LogP=LogP, rho=rho, mp=mp, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage,
176
  LogP_origin=LogP_origin, rho_origin=rho_origin, mp_origin=mp_origin, ceramic=is_ceramic, methods=[method,polytg,density])
177
 
 
109
  else:
110
  TTC = 0.0015
111
 
112
+ units = request.form['units']
113
+ if units == 'µg':
114
+ TTC *= 1000
115
+
116
  polytg = ''
117
  use_qrf = False
118
  if polymer == 'Other polymer':
 
166
  #print(release_list, file=sys.stderr)
167
  frac_list = [str(SigFigs(r/amount*100,2))+'%' for r in release_list]
168
  release_list = [SigFigs(r,2) for r in release_list]
169
+ df_rel = pd.DataFrame(np.transpose([tlist,release_list,frac_list]),columns=['Exposure time (days)',f'Cumulative release ({units})','Cumulative release (%)'])
170
  df_rel['Exposure time (days)'] = df_rel['Exposure time (days)'].astype(float)
171
  release_table = df_rel.sort_values(by='Exposure time (days)').to_html(index=False)
172
 
 
175
  diff = SigFigs(diff, 2)
176
 
177
  return render_template('exposure3_report.html', show_properties=show_properties, polymers=polymers, pIndex=pIndex, release=release, release_table=release_table,
178
+ area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC, units=units,
179
  MOS=MOS, chemName=chemName, MW=MW, LogP=LogP, rho=rho, mp=mp, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage,
180
  LogP_origin=LogP_origin, rho_origin=rho_origin, mp_origin=mp_origin, ceramic=is_ceramic, methods=[method,polytg,density])
181
 
exposure3_module/templates/exposure3_index.html CHANGED
@@ -41,7 +41,11 @@ For a history of updates, please see the <a href="{{url_for('.static', filename=
41
 
42
  Identifier: <input name="chemName" id="chemName" type="text" value="" required><br>
43
 
44
- Amount (mg): <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required> <br>
 
 
 
 
45
 
46
  <!-- Modal -->
47
  <div id="LeachModal" class="modal fade" role="dialog">
@@ -59,7 +63,8 @@ For a history of updates, please see the <a href="{{url_for('.static', filename=
59
  be found for many chemicals using <a href="https://pubchem.ncbi.nlm.nih.gov">PubChem</a> or generated based on
60
  the molecular structure using tools such as <a href="https://cactus.nci.nih.gov/cgi-bin/osra/index.cgi">OSRA</a>.
61
  Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.</p>
62
- <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in milligrams.</p>
 
63
  </div>
64
  <div class="modal-footer">
65
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@@ -118,7 +123,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
118
  <input type="radio" name="exposure" id="prolonged" value="prolonged" onclick="javascript:exposureCheck();" > prolonged
119
  <input type="radio" name="exposure" id="limited" value="limited" onclick="javascript:exposureCheck();" > limited
120
  <span id="limitedtime" style="visibility:hidden">
121
- &nbsp; &rArr; Exposure time (h): <input name="exptime" id="time" step="any" min="0.001" max="24" value="24" type="number" required><br>
122
  </span>
123
 
124
  <!-- Modal -->
@@ -134,7 +139,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
134
  <p><em>Exposed surface area</em> - Enter the patient contacting surface area of the component being evaluated in square centimeters.
135
  This includes both direct and indirect patient contact.</p>
136
  <p><em>Exposure type</em> - Select the appropriate exposure category: > 30 days = long-term, > 24 hours - 30 days = prolonged, &#8804; 24 hours = limited.
137
- For limited exposures (&#8804; 24 hours), please enter the maximum exposure time in hours.</p>
138
  </div>
139
  <div class="modal-footer">
140
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@@ -145,7 +150,7 @@ Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value=
145
  </div>
146
 
147
  <h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">&#9432;</button> </h3>
148
- Cumulative exposure time(s):
149
  <input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
150
  <label for="exposure1d">1 day</label>
151
  <input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
@@ -168,8 +173,9 @@ Click to screen your device: <button type="submit">Estimate exposure</button>
168
  <h4 class="modal-title">Exposure assessment</h4>
169
  </div>
170
  <div class="modal-body">
171
- <p><em>Cumulative exposure time(s)</em> Check the boxes for the exposure time(s) to use for cumulative release estimates. 1-day exposure is always calculated.
172
- If the "Other duration" box is checked, enter the desired exposure time in days.</p>
 
173
  </div>
174
  <div class="modal-footer">
175
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@@ -195,7 +201,7 @@ function polymerCheck() {
195
  $(window).on('pageshow', function() { polymerCheck(); });
196
  </script>
197
 
198
- <!-- Javascript to reveal/hide exposure time input box (limited contact) -->
199
 
200
  <script type="text/javascript">
201
  function exposureCheck() {
 
41
 
42
  Identifier: <input name="chemName" id="chemName" type="text" value="" required><br>
43
 
44
+ Amount: <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required>
45
+ Amount units: <select name="units">
46
+ <option value="µg" selected>µg</option>
47
+ <option value="mg" >mg</option>
48
+ </select> <br>
49
 
50
  <!-- Modal -->
51
  <div id="LeachModal" class="modal fade" role="dialog">
 
63
  be found for many chemicals using <a href="https://pubchem.ncbi.nlm.nih.gov">PubChem</a> or generated based on
64
  the molecular structure using tools such as <a href="https://cactus.nci.nih.gov/cgi-bin/osra/index.cgi">OSRA</a>.
65
  Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.</p>
66
+ <p><em>Amount</em> - Enter the total mass of the substance in the component being evaluated expressed in micrograms or milligrams.</p>
67
+ <p><em>Amount units</em> - Select the appropriate units for the amount, micrograms (µg) or milligrams (mg).</p>
68
  </div>
69
  <div class="modal-footer">
70
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
123
  <input type="radio" name="exposure" id="prolonged" value="prolonged" onclick="javascript:exposureCheck();" > prolonged
124
  <input type="radio" name="exposure" id="limited" value="limited" onclick="javascript:exposureCheck();" > limited
125
  <span id="limitedtime" style="visibility:hidden">
126
+ &nbsp; &rArr; Exposure duration (h): <input name="exptime" id="time" step="any" min="0.001" max="24" value="24" type="number" required><br>
127
  </span>
128
 
129
  <!-- Modal -->
 
139
  <p><em>Exposed surface area</em> - Enter the patient contacting surface area of the component being evaluated in square centimeters.
140
  This includes both direct and indirect patient contact.</p>
141
  <p><em>Exposure type</em> - Select the appropriate exposure category: > 30 days = long-term, > 24 hours - 30 days = prolonged, &#8804; 24 hours = limited.
142
+ For limited exposures (&#8804; 24 hours), please enter the maximum exposure duration in hours.</p>
143
  </div>
144
  <div class="modal-footer">
145
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
150
  </div>
151
 
152
  <h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">&#9432;</button> </h3>
153
+ Cumulative exposure duration(s):
154
  <input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
155
  <label for="exposure1d">1 day</label>
156
  <input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
 
173
  <h4 class="modal-title">Exposure assessment</h4>
174
  </div>
175
  <div class="modal-body">
176
+ <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.
177
+ If the "Other duration" box is checked, enter the desired exposure duration in days (e.g., the maximum use duration of the device).
178
+ 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>
179
  </div>
180
  <div class="modal-footer">
181
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 
201
  $(window).on('pageshow', function() { polymerCheck(); });
202
  </script>
203
 
204
+ <!-- Javascript to reveal/hide exposure duration input box (limited contact) -->
205
 
206
  <script type="text/javascript">
207
  function exposureCheck() {
exposure3_module/templates/exposure3_report.html CHANGED
@@ -74,16 +74,16 @@
74
  <p>
75
  {% if methods[0]=="category" %}
76
  <u> Diffusion calculation for leaching from {{polymers[pIndex]}} estimates a worst case single day
77
- exposure = {{release}} mg. </u>
78
  {% elif methods[0]=="wc" %}
79
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because no T<sub>g</sub> was specified) estimates a worst case single day
80
- exposure = {{release}} mg. </u>
81
  {% elif methods[0]=="qrf" %}
82
  <u> Diffusion calculation for leaching from the polymer (with density = {{methods[2]}} g/cm<sup>3</sup> and T<sub>g</sub> = {{methods[1]}} &deg;C) estimates a worst case single day
83
- exposure = {{release}} mg. </u>
84
  {% elif methods[0]=="qrf/wc" %}
85
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because this system is outside the model training domain) estimates a worst case single day
86
- exposure = {{release}} mg. </u>
87
  {% endif %}
88
  <p>
89
 
@@ -104,13 +104,13 @@ where \( \tau= D t A^2 / V^2 \) and \( A \) and \( V \) are the surface area and
104
  <p>
105
  \( A \) = {{area}} cm<sup>2</sup> <br>
106
  \( V \) = {{vol}} cm<sup>3</sup> <br>
107
- \( M_0 \) = {{amount}} mg <br>
108
  \( D \) = {{diff}} cm<sup>2</sup>/s <br>
109
  \( t \) = {{time}} h <br>
110
  </p>
111
 
112
  <p>
113
- It can be helpful to examine the cumulative amount released over various exposure times:
114
  </p>
115
 
116
  <div>
@@ -122,7 +122,7 @@ It can be helpful to examine the cumulative amount released over various exposur
122
  <h2> Screening level toxicological risk assessment </h2>
123
 
124
  <p>
125
- The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}} mg. Based on the exposure estimation this results in a margin of safety (MOS) of {{MOS}}.
126
  </p>
127
 
128
  {% if MOS >= 1 %}
@@ -131,6 +131,10 @@ The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}
131
  <font color="green"> The MOS based on the mutagenic TTC is greater than one; therefore, no further analysis is needed for systemic biocompatibility endpoints. </font>
132
  </p>
133
 
 
 
 
 
134
  <p>
135
  <font color="red"> *Note*: This assessment assumes that the chemical is not in the cohort of concern. </font>
136
  </p>
 
74
  <p>
75
  {% if methods[0]=="category" %}
76
  <u> Diffusion calculation for leaching from {{polymers[pIndex]}} estimates a worst case single day
77
+ exposure = {{release}} {{units}}. </u>
78
  {% elif methods[0]=="wc" %}
79
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because no T<sub>g</sub> was specified) estimates a worst case single day
80
+ exposure = {{release}} {{units}}. </u>
81
  {% elif methods[0]=="qrf" %}
82
  <u> Diffusion calculation for leaching from the polymer (with density = {{methods[2]}} g/cm<sup>3</sup> and T<sub>g</sub> = {{methods[1]}} &deg;C) estimates a worst case single day
83
+ exposure = {{release}} {{units}}. </u>
84
  {% elif methods[0]=="qrf/wc" %}
85
  <u> Diffusion calculation for leaching from the polymer (with worst-case diffusion in water assumed because this system is outside the model training domain) estimates a worst case single day
86
+ exposure = {{release}} {{units}}. </u>
87
  {% endif %}
88
  <p>
89
 
 
104
  <p>
105
  \( A \) = {{area}} cm<sup>2</sup> <br>
106
  \( V \) = {{vol}} cm<sup>3</sup> <br>
107
+ \( M_0 \) = {{amount}} {{units}} <br>
108
  \( D \) = {{diff}} cm<sup>2</sup>/s <br>
109
  \( t \) = {{time}} h <br>
110
  </p>
111
 
112
  <p>
113
+ It can be helpful to examine the cumulative amount released over various exposure times. For example, the 30-day cumulative exposure may be compared to the TSL<sub>&le;30 d</sub> as recommended in ISO 10993-17:2023. 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.
114
  </p>
115
 
116
  <div>
 
122
  <h2> Screening level toxicological risk assessment </h2>
123
 
124
  <p>
125
+ The threshold for toxicological concern (TTC) for {{exposure}} contact is {{TTC}} {{units}}/day. Based on the exposure estimation this results in a margin of safety (MOS) of {{MOS}}.
126
  </p>
127
 
128
  {% if MOS >= 1 %}
 
131
  <font color="green"> The MOS based on the mutagenic TTC is greater than one; therefore, no further analysis is needed for systemic biocompatibility endpoints. </font>
132
  </p>
133
 
134
+ <p>
135
+ <font color="red"> *Note*: This assessment assumes that the amount (\( M_0 \)) accounts for the number of devices used concurrently (i.e., multiply the per-device amount by the number of devices used concurrently). </font>
136
+ </p>
137
+
138
  <p>
139
  <font color="red"> *Note*: This assessment assumes that the chemical is not in the cohort of concern. </font>
140
  </p>