Skip to main content
summaryrefslogtreecommitdiffstats
blob: 0c20c50092885d7232524c05733c4a020406b6b1 (plain) (blame)
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
<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

#*****************************************************************************
#
# template.php
#
# Author: 		Yossi Mesika
# Date:			2009-07-19
#
# Description: Main web page for STEM
#
#
#****************************************************************************

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "STEM Introduction";
$pageKeywords	= "STEM";
$pageAuthor		= "Stefan Edlund, Yossi Mesika";

# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);


# End: page-specific settings
#
	function getRssFeed()
	{
		$rssFilePath = "http://dev.eclipse.org/newslists/news.eclipse.stem/maillist.rss";
		//$rssFilePath = $_SERVER['DOCUMENT_ROOT'] . "/stem/feeds/news.xml";

		$xmlData = file_get_contents($rssFilePath);

		$xmlResult = new SimpleXMLElement($xmlData);

		$rssResults = $xmlResult->channel->item;

		$rssMaxResults = 5;


		if (sizeof($rssResults) > 0) {
			$rssCount = 0;
			foreach ($rssResults as $rssResult) {
				if ($rssCount >= $rssMaxResults) {
					break;
				}

				$title = $rssResult->title;
				$title = substr($title, 20); // Skip [news.eclipse.stem]
				$url = $rssResult->link;

				$date = strtotime($rssResult->pubDate);
				if (!$date || $date === -1) {
					$date = time();
				}
				$formattedDate = date('d-M y', $date);
				echo "<img src=\"images/arrow.jpg\" width=\"11\" height=\"10\" alt=\"\" border=\"0\">&nbsp;" .$formattedDate . ": &nbsp;<a href=\"". $url ."\" target=\"_blank\">". $title ."</a><br />";

				$rssCount++;
			}
		}
	}

	function getData($file, $maxresults)
	{
		$filePath = $_SERVER['DOCUMENT_ROOT'] . $file;

		$xmlData = file_get_contents($filePath);

		$xmlResult = new SimpleXMLElement($xmlData);

		$results = $xmlResult->item;

		echo $results;
		if (sizeof($results) > 0) {
			$count = 0;
			foreach ($results as $result) {
				if ($count >= $maxresults) {
					break;
				}

				$title = $result->title;
				$url = $result->link;
				$authors = $result->authors;
				$source = $result->source;
				$other = $result->other;

				$markup = "";
				if(!empty($authors))
				   $markup = $markup. $authors;
				if(!empty($url))
					$markup = $markup. "<a href=\"". $url ."\" target=\"_blank\">";
				if(!empty($title))
					$markup = $markup. $title."</a>&nbsp;";
				if(!empty($source))
					$markup = $markup. "<div style=\"font-style: italic;\">".$source."</div>";
				if(!empty($other))
					$markup = $markup. "&nbsp;" . $other;
				$markup = $markup . "<br/>";

				echo $markup;
				$count++;
			}
		}
	}

# Paste your HTML content between the EOHTML markers!
ob_start();
?>

    <div id="maincontent">
    	<div style="padding:3px;">
          	<img alt="STEM Banner" src="/stem/images/STEM_TOP_BAR.gif" width="750" height="63"/>
         </div>
	<div id="midcolumn">

		
		 <div class="homeitem3col">
			<a name="about"></a>
			<h3>More About STEM ... </h3>
          
        </div>
		<h1><center>The Spatiotemporal Epidemiological Modeler (STEM) </center></h1>

		<div class="homeitem3col">
			<b>
			<a name="introduction"></a>
			</b>
			<p>An open source tool, the 
			Spatiotemporal Epidemiological Modeler (STEM) allows users to create 
			spatial and temporal models of emerging infectious diseases. 
			Designed to be extensible, flexible and re-usable, STEM provides a 
			set of <a href="http://wiki.eclipse.org/Analysis">validation tools</a>
			researchers and public health officials can 
			use to understand the spread of disease in space and time and to 
			assess the impact of 
			<a href="http://wiki.eclipse.org/Batch_Mode_%28Running_Experiments%29">preventive actions</a> 
			in an increasingly global world. 
			</p>
			<p>
			Platform independent, STEM is available in versions for Microsoft, 
			Apple, and Linux operating systems. Users can access all its main 
			components as separate <a href="http://wiki.eclipse.org/index.php/STEM#STEM_Plugins">plug-ins</a> 
			to build on existing models and create new ones.
			</p>
			<p>
			Users can independently deploy the plug-ins - the core 
			representational framework, graphical user interface, simulation 
			engine, disease model computations, and various data sets - and use 
			them with declarative software extension points to develop, run, and 
			analyze sophisticated simulations.
			 </p>
			 <p>
			STEM's 
			<a href="http://wiki.eclipse.org/index.php/STEM#Data">data sets</a> describe 
			the geography, transportation systems (including airports and roads), 
			and population for the world's 244 countries and dependent areas down to administrative level 2 for 
			most countries (the county level in the United States).
			</p>
			<p>
			Its disease model computations are based on 
			<a href="http://wiki.eclipse.org/Introduction_to_Compartment_Models">compartment models</a> 
			Parameters within the models can be modified 
			by the researcher who, for example, may wish to adjust the 
			infectious period or the initial number of infectious individuals.
			STEM is designed to make it easy for developers and researchers to plug in their choice of models. 
			It comes with a large number of existing compartment models and a new model building framework that allows 
			users to rapidly extend existing models or to create entirely new models. The model building framework provides 
			a simple graphical users interface and automatically generates all of the model code and hot injects the code 
			into STEM at runtime. In many cases, no knowledge of Eclipse or Java is required. The STEM code generator even 
			allows users to build models affected by changes in climate data.
			</p>
			<p>
			Any STEM model can be run either stochastically or deterministically - simply by switching between solver plugins. 
			Users can choose between many different numerical solvers of ordinary differential equations (including finite difference, 
			Runge-Kutta, 4 solvers from The Apache Commons Mathematics Library, and Stochastic). The stochastic solver computes integer 
			(individual) based transitions picking randomly from a binomial distribution (also from Apach Math). Simulation results can 
			be output with a choice of pluggable loggers, including delimiting files, video loggers, and map loggers. STEM can be used 
			to study quite complex models (for example a model of Dengue Fever with 51 differential equations) and can run global scale 
			simulations. <a href="http://wiki.eclipse.org/index.php/STEM">Click here</a> for the complete STEM documentation. 
			</p>
			<p>
			Tools provided by STEM support researchers in a range of functions, 
			as they perform analysis, fitting, and model comparisons across 
			multiple simulations and data sets.
			</p>
			<p>
			Using the <a href="http://wiki.eclipse.org/Analysis">Analysis Perspective</a>, 
			researchers can visualize the results of STEM scenarios from log files and compare two scenarios 
			side-by-side across different dimensions. Utilities in this 
			perspective can estimate disease parameters from imported time 
			series data and integrate historic incidence data to arrive at 
			counts for disease models over time.
			</p>
			<p>
			Using the <a href="http://wiki.eclipse.org/Creating_a_STEM_Scenario">Designer Perspective</a>, 
			users can create custom <a href="http://wiki.eclipse.org/Batch_Mode_%28Running_Experiments%29">experiments</a>,  
			which express public health policies as a collection of
			predicates, modifiers, and triggers. Researchers can run a collection of simulations, 
			based on a single scenario, modifying each 
			simulation slightly by varying one or more parameters, and examine 
			how the model is affected.
			</p>
			<p>
			With the <a href="http://wiki.eclipse.org/STEM_Design_Document">components</a>
			STEM provides, users can create their own model 
			for a country, a region, or even the entire world. If there is a 
			sub-model for the area under study, it can simply be plugged into 
			simulations by referencing it. For example, a country model can 
			contain a sub-model for its transportation infrastructure and that 
			sub-model itself can contain sub-models for air, rail, and/or roads.
			</p>
			<p>
			The ability of one STEM model to contain another allows researchers 
			to plug detailed and highly complex subcomponents into a single 
			encompassing model. Because the underlying components are the same, 
			models can be easily shared and their components validated. One 
			researcher can import another researcher's specialized disease 
			model, combine it with an existing country model that includes 
			population demographics, and re-export the new combination for 
			others to use.
			</p>
			<p>
			By making data (with descriptive metadata) available as plug-ins, 
			STEM makes new avenues of collaboration possible. For example, 
			biologists studying bird migrations can contribute data of use to 
			epidemiologists studying avian influenza. Economists studying 
			workforce productivity contribute data of use to public health 
			officials studying the economic impact of pandemic influenza. 
			</p>
			<p>
			By providing a common collaborative platform and components that are 
			extensible, flexible and re-usable, STEM makes possible greater 
			understanding of the phenomena that affect public health and 
			potentially have social, economic, and environmental impacts as 
			well. <br>
			</p>
			<p>
            <a href="./index.php">... home</a>
            </p>
            </p>
		</div>
	</div>

	<div id="rightcolumn">
		<div class="sideitem">
			<h6>Videos and presentations</h6>
			<?php getData('/stem/data/videos.xml', 10); ?>
		</div>
		<div class="sideitem">
			<h6>Downloadable Scenarios</h6>
			<?php getData('/stem/data/scenarios.xml', 10); ?>
		</div>
		<div class="sideitem">
			<h6>Upcoming talks</h6>
			<?php getData('/stem/data/talks.xml', 10); ?>
		</div>
		<div class="sideitem">
			<h6>Recent Publications</h6>
			<?php getData('/stem/data/pubs.xml', 10); ?>
			<br.>
			<i><a href="http://wiki.eclipse.org/STEM#Publications_and_Presentations_on_STEM">more...</a></i>
		</div>
		<div class="sideitem">
			<h6>Acknowledgements</h6>
			<img alt="Development of STEM is supported in part by USAF/SG" src="/stem/images/usaf.gif" style="float: left;width:150px;"/>
			<?php getData('/stem/data/acknowledgements.xml', 10); ?>
		</div>
	</div>

</div>

<?php

$html .= ob_get_contents();
ob_end_clean();

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords,$pageTitle, $html);

?>

Back to the top