-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
324 lines (306 loc) · 19.7 KB
/
index.php
File metadata and controls
324 lines (306 loc) · 19.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
<?php
require_once 'vendor/Mobile-Detect/Mobile_Detect.php';
require_once 'util/Constants.inc';
require_once('util/FileUtilities.inc');
$device_type = 'computer';
if(isset($_GET['site_type'])) {
$device_type = $_GET['site_type'];
} else {
$detect = new Mobile_Detect();
$device_type = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
$script_version = $detect->getScriptVersion();
}
if($device_type == 'phone') {
header('Location: ' . Constants::getSiteBase() . '/m/index.php');
} elseif($device_type == 'tablet') {
header('Location: ' . Constants::getSiteBase() . '/m/index.php');
} else {
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>HAZEL Web</title>
<link rel="stylesheet" type="text/css" href="css/index.css" media="screen" />
<link rel="stylesheet" type="text/css" href="<?php echo Constants::WHERE_IS_DOJO . 'dijit/themes/claro/claro.css'; ?>" media="screen">
</head>
<body class="claro">
<form>
<input id="api_url" type="hidden" value="<?php echo Constants::WHERE_IS_FREDWEB_API; ?>" />
</form>
<div id="border_cntnr_main" class="demoLayout" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<!-- Header Panel -->
<div id="header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<!-- This is the Pitt Banner. The right-hand links are listed at the bottom of the HTML page. -->
<!-- ======================================================================================== -->
<div id="pitt_header" class="white">
<!-- PITT HEADER RIGHT-HAND LINKS -->
<!-- ======================================================================================== -->
<ul id="hazel_links">
<li id="p_home">
<a href="http://www.pitt.edu/" title="Pitt Home">Pitt Home</a> |
<a href="<?php echo Constants::getSiteBase(); ?>" title="HAZEL Home">Home</a> |
<a href="<?php echo Constants::getSiteBase() . '/contact.php'; ?>" title="Contact Us">Contact Us</a>
</li>
</ul>
</div><!-- end pitt-header -->
</div><!-- end header_content_pane -->
<!-- Begin Tab Container -->
<div id="center_tab_cntnr" class="centerPanel" data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region: 'center', tabPosition: 'bottom'">
<!-- Begin Splash Tab -->
<div id="tab_panel_splash_page" data-dojo-type="dijit/layout/ContentPane" title="Welcome">
<div id="border_cntnr_splash_page" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_splash_page_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>Welcome to HAZEL</h1>
Current scenario is <span id="tab_splash_page_scenario">Baseline</span>
</div>
<div id="tab_splash_page_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<video id="simulation_video" width="640" height="640" controls="controls">
<source src="" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
</div>
</div> <!-- End Splash Tab -->
<!-- Begin Healthcare Demand Tab -->
<div id="tab_panel_hc_demand" data-dojo-type="dijit/layout/ContentPane" title="Healthcare Demand">
<div id="border_cntnr_hc_demand" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_hc_demand_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>Healthcare Demand</h1>
Current scenario is <span id="tab_hc_demand_scenario">Baseline</span>
</div>
<div id="tab_hc_demand_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<div class="chart_title">Healthcare Deficit</div>
<div class="chart_area">
<div id="hc_avail_chrt"></div>
<div id="hc_avail_chrt_legend"></div>
</div>
<div class="chart_title">Patients</div>
<div class="chart_area">
<div id="patnt_evac_chrt"></div>
<div id="patnt_evac_chrt_legend"></div>
</div>
</div>
</div>
</div> <!-- End Healthcare Demand Tab -->
<!-- Begin Practice Tab -->
<div id="tab_panel_practices" data-dojo-type="dijit/layout/ContentPane" title="Practices">
<div id="border_cntnr_practices" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_practices_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>Practice Information</h1>
Current scenario is <span id="tab_practices_scenario">Baseline</span>
</div>
<div id="tab_practices_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<div class="chart_title">Practices</div>
<div class="chart_area" >
<div id="practices_chrt"></div>
<div id="practices_chrt_legend"></div>
</div>
<div class="chart_title">Open Practice Capacity</div>
<div class="chart_area">
<div id="open_practice_cap_chrt"></div>
<div id="open_practice_cap_chrt_legend"></div>
</div>
</div>
</div>
</div>
<div id="tab_panel_patient" data-dojo-type="dijit/layout/ContentPane" title="Additional Patient Information">
<div id="border_cntnr_patient" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_patient_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>Patient Information</h1>
Current scenario is <span id="tab_patient_scenario">Baseline</span>
</div>
<div id="tab_patient_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<div class="chart_title">Healthcare Deficit for Patients by Chronic Condition</div>
<div class="chart_area">
<div id="chronic_cndtn_patnt_chrt"></div>
<div id="chronic_cndtn_patnt_chrt_legend"></div>
</div>
<div class="chart_title">Healthcare Deficit for Patients by Health Insurance</div>
<div class="chart_area">
<div id="hc_insrnc_patnt_chrt"></div>
<div id="hc_insrnc_patnt_chrt_legend"></div>
</div>
</div>
</div>
</div><!-- End Practice Tab -->
<!-- Begin About Tab -->
<div id="tab_panel_about_page" data-dojo-type="dijit/layout/ContentPane" title="About">
<div id="border_cntnr_about_page" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_about_page_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>About HAZEL</h1>
Current scenario is <span id="tab_about_page_scenario">Baseline</span>
</div>
<div id="tab_about_page_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<div>
<figure style="float: right; display: inline-block;" >
<img src="image/access_deficit.tiff"
alt="Visual representation of the access deficit post-Sandy (gap between population need and healthcare provider capacity)"
title="Visual representation of the access deficit post-Sandy (gap between population need and healthcare provider capacity)"/>
<figcaption>
Conceptual representation of relationship between provider capacity<br />
and population need for primary care before and after Superstorm Sandy.
</figcaption>
</figure>
<p class="about">
Disasters can disrupt primary care services, resulting in a gap between the ability of healthcare providers to deliver
care, and the increased healthcare needs of the population. <span class="h3_about">This gap is called the access deficit.</span>
The impact of Superstorm Sandy on primary care capacity in the Rockaway Peninsula, Queens, New York provides a unique case
study for understanding the access deficit and how to reduce it.
</p>
</div>
<p class="about">
<span class="h3_about">HAZEL (hazard-area primary care locator)</span> is a modeling tool designed to simulate primary care strategies
implemented and/or considered during and after Superstorm Sandy in the Rockaways; with further development, HAZEL can become widely
available to help in restoring post-disaster primary care access for other locales.
</p>
<p class="about">
<span class="h3_about">HAZEL parameters</span> describe the <span class="h3_about">access deficit</span> for primary care services
resulting from the dynamics of provider capacity and population need during and after a disaster. Data include: population demographics,
evacuation patterns, health insurance source and status, healthcare utilization, local infrastructure, primary care sites, pharmacies,
topology, and relevant laws, policies, and emergency orders. The HAZEL model for Superstorm Sandy in the Rockaways can be adapted for
other geographic settings and other future disasters.
</p>
<hr />
<p class="disclaimer">
This project is funded through the University of Pittsburgh Center for Public Health Practice by the Assistant Secretary for Preparedness
and Response Cooperative Agreement Number 1 HITEP130004-01-00.<br />
Data for this study was provided by the New York City Department of Health and Mental Hygiene (NYC DOHMH). The opinions, results,
findings and/or interpretations of data contained herein are solely the responsibility of the authors and do not represent the opinions,
interpretation, or policy of NYC DOHMH or the City of New York.
</p>
</div>
</div>
</div> <!-- End About Tab -->
<!-- Begin Team Tab -->
<div id="tab_panel_team_page" data-dojo-type="dijit/layout/ContentPane" title="Team">
<div id="border_cntnr_team_page" data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline', gutters: true, liveSplitters: false">
<div id="tab_team_page_header_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'top'">
<h1>HAZEL Team</h1>
Current scenario is <span id="tab_team_page_scenario">Baseline</span>
</div>
<div id="tab_team_page_center_content_pane" class="edgePanel" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'">
<img class="centered" src="image/hazel_team.png" alt="HAZEL Team" />
</div>
</div>
</div> <!-- End Team Tab -->
</div>
<div id="left_accrdn_cntnr" data-dojo-id="left_accrdn_cntnr" data-dojo-type="dijit/layout/AccordionContainer" data-dojo-props="minSize: 20, region: 'left', splitter: true">
<div data-dojo-type="dijit/layout/ContentPane" id="cntnt_pn_slct_scnrio" data-dojo-id="cntnt_pn_slct_scnrio" title="Select Scenario" selected="true">
<form id="frm_selected_scenario">
<fieldset>
<legend>Selected Scenarios</legend>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_scenario" id="rb_baseline" checked="checked" value="FRRN1"/>
<label for="rb_baseline">Baseline</label><br />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_scenario" id="rb_50pct" value="FRRN2"/>
<label for="rb_50pct">Add Capacity 50%</label><br />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_scenario" id="rb_6vans_actual" value="FRRN3"/>
<label for="rb_6vans_actual">Activate 6 Vans<br /><span style="padding-left: 1em; font-style: italic;">(Actual Locations)</span></label><br />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_scenario" id="rb_6vans_deficit_based" value="FRRN4"/>
<label for="rb_6vans_deficit_based">Activate 6 Vans<br /><span style="padding-left: 1em; font-style: italic;">(Deficit-based)</span></label><br />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_scenario" id="rb_6vans_population_based" value="FRRN5"/>
<label for="rb_6vans_population_based">Activate 6 Vans<br /><span style="padding-left: 1em; font-style: italic;">(Population-based)</span></label>
</fieldset>
<button id="btn_chng_scenario" data-dojo-type="dijit/form/Button" type="button">
Change Scenario
</button>
</form>
<div data-dojo-type="dijit/ProgressBar" style="width:120px; height:10px; font-size:x-small;" data-dojo-props="maximum:100"
data-dojo-id="prgrss_bar_selected_scenario" id="prgrss_bar_selected_scenario"></div>
</div>
<div data-dojo-type="dijit/layout/ContentPane" id="cntnt_pn_chs_scnrio" data-dojo-id="cntnt_pn_chs_scnrio" title="Custom Scenario">
<form id="frm_choose_scenario">
<fieldset>
<legend>Add Mobile Vans</legend>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_mobile_van" id="rb_mobile_van_true" value="true"/>
<label for="rb_mobile_van_true">Yes</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_mobile_van" id="rb_mobile_van_false" checked="checked" value="false"/>
<label for="rb_mobile_van_false">No</label><br />
</fieldset>
<fieldset>
<legend>Van Count</legend>
<input data-dojo-type="dijit/form/NumberSpinner"
id="num_spn_mobile_van_cnt"
value="1"
style="width: 10em;"
data-dojo-props="maxLength:1, disabled:true, smallDelta:1, constraints:{min:1, max:6, places:0}"
name="num_spn_mobile_van_cnt" />
</fieldset>
<fieldset>
<legend>Exceed Capacity</legend>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_exceed_cap" id="rb_exceed_cap_true" value="true"/>
<label for="rb_exceed_cap_true">Yes</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="rb_exceed_cap" id="rb_exceed_cap_false" checked="checked" value="false"/>
<label for="rb_exceed_cap_false">No</label><br />
</fieldset>
<fieldset>
<legend>% Addtnl Cap</legend>
<input data-dojo-type="dijit/form/NumberSpinner"
id="num_spn_exceed_cap_pct"
value="10"
style="width: 10em;"
data-dojo-props="maxLength:2, disabled:true, smallDelta:10, constraints:{min:10, max:90, places:0}"
name="num_spn_exceed_cap_pct" />
</fieldset>
<span style="text-align:center;">
<button id="btn_chng_chsn_scenario" data-dojo-type="dijit/form/Button" type="button">
Change Scenario
</button>
</span>
</form>
<div data-dojo-type="dijit/ProgressBar" style="width:120px; height:10px; font-size:x-small; visibility: hidden;" data-dojo-props="maximum:100"
data-dojo-id="prgrss_bar_selected_chsn_scenario" id="prgrss_bar_selected_chsn_scenario"></div>
</div>
<div data-dojo-type="dijit/layout/ContentPane" id="cntnt_pn_results" data-dojo-id="cntnt_pn_results" title="Results Data">
<div id="resultDiv">Results will go here</div>
</div>
</div><!-- end AccordionContainer -->
</div>
<!-- configure Dojo -->
<script>
// Instead of using data-dojo-config, we're creating a dojoConfig
// object *before* we load dojo.js; they're functionally identical,
// it's just easier to read this approach with a larger configuration.
var dojoConfig = {
async: true,
parseOnLoad: false,
// This code registers the correct location of the "custom"
// package
packages: [
{
name: 'custom',
location: location.pathname.replace(/\/[^/]+$/, '') + '/js/custom/'
}
]
};
</script>
<!-- load dojo -->
<script type="text/javascript" src="<?php echo Constants::WHERE_IS_DOJO . 'dojo/dojo.js'; ?>"></script>
<script>
require(["dojo/parser",
"dijit/layout/BorderContainer",
"dijit/layout/TabContainer",
"dijit/layout/ContentPane",
"dijit/layout/AccordionContainer",
"dijit/ProgressBar",
"dijit/form/RadioButton",
"dijit/form/Button",
"dijit/form/NumberSpinner",
"dijit/form/Form",
"custom/IndexModule",
"dojo/domReady!"],
function(parser, BorderContainer, TabContainer, ContentPane, AccordionContainer, ProgressBar, RadioButton, Button, NumberSpinner, Form, IndexModule) {
parser.parse();
}
);
</script>
</body>
</html>