source: main/trunk/ibisph-view/src/main/webapp/xslt/html/indicator/profile/Indicator.xslt @ 22407

Last change on this file since 22407 was 22407, checked in by GarthBraithwaite_STG, 8 months ago

view - qm ds and di fixes. ContentContainer? title level to headingLevel to better match use. Fixed SORT_ORDER typo. Removed additionalClasses" select="'Text'.

File size: 48.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="3.0" 
4        xmlns:xs="http://www.w3.org/2001/XMLSchema"
5        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
6        xmlns:ibis="http://www.ibisph.org"
7
8        exclude-result-prefixes="xs xsl ibis"
9>
10
11        <ibis:doc>
12                <name>html/indicator/profile/Indicator</name>
13                <summary>Provides standard INDICATOR parameters and templates</summary>
14                <description>
15                        This XSLT provides 'indicator.xxx' profile API parameters and templates.
16                        These templates include all the core INDICATOR data element fields as
17                        well as defining a global 'indicator' variable.
18                </description>
19        </ibis:doc>
20
21
22        <!-- ==================== VARIABLES and PARAMETERS ===================== -->
23        <xsl:param name="xmlURL"
24                ibis:doc="Parameter that is used by the IBISPH-Admin system for previewing
25                        an indicator/view prior to publishing.  This parameter is mainly passed
26                        to the view's chart call so that the charting controller knows to get
27                        the XML data from the admin app and not the local XML directory.  This
28                        parameter is also used by the related indicators section when building
29                        the links.  As of 11/2010, the admin app can serve up IP and IPV XML
30                        content based on the same path.  This was done to simplify the XSLT
31                        code needed to retrieve the related indicator or view XML content
32                        (if the paths are not the same then the xmlURL needs to be modified
33                        to the correct path).
34                        NOTE: This mechanism has limitations for preview usage.  All preview
35                        pages will NOT be able to link/navigate to any other preview content
36                        page.  This issue can be overcome with via XSLT code that implements
37                        all of xmlURL manipulation and with different site specific properties
38                        and spring config URL values (and possibly some additional Java
39                        controller code."
40        />
41
42        <xsl:param name="Indicator.indicator" select="
43                        if(exists(/INDICATOR_VIEW))then
44                                document(concat(/INDICATOR_VIEW/INDICATOR_NAME, '.xml'), /)/INDICATOR
45                        else
46                                /INDICATOR
47                "
48                ibis:doc="Common indicator that is defined for convenience and
49                        to serve as a common way to interface for both indicator and view
50                        XML source documents.  This enables all the indicator profile xslts
51                        to be coded to the $indicator and not have to worry about where it's
52                        from an INDICATOR_VIEW or an INDICATOR XML document.  A similar
53                        param exists for the indicatorView.
54
55                        NOTE: for previews, the xmlURL is only needed/used when the XML request
56                        path differs from the indicator profile XML path.  As of 11/2010, the
57                        admin app serves up IP and IPV XML files via the same path so all that
58                        is needed is to open the document relative to the current IPV XML with
59                        the IP XML filename (otherwise the URL path needs to manipulated via
60                        script - search and replace strings).
61                "
62        />
63        <xsl:param name="Indicator.indicatorView" select="
64                        if(exists(/INDICATOR))then
65                                document(concat(/INDICATOR/DEFAULT_INDICATOR_VIEW_NAME, '.xml'), /)/INDICATOR_VIEW
66                        else
67                                /INDICATOR_VIEW
68                "
69                ibis:doc="Common indicatorView that is defined for convenience and
70                        to serve as a common way to interface for both indicator and view
71                        XML source documents.  This enables all the indicator view xslt code
72                        to be coded to the $indicatorView and not have to worry about where 
73                        it's from an INDICATOR_VIEW or an INDICATOR XML document.  A similar
74                        param exists for the indicator.
75                "
76        />
77
78        <xsl:param name="Indicator.useExternalXML" select="true()"
79                ibis:doc="Controls where the supplemental XML data resides.  If true then
80                        the XML to be referenced is an external XML file which is injected
81                        as a parameter via the java controller code.  If false then the
82                        XML resides within the IP XML file.  Put another way, adopters that
83                        want 100% self contained IP XML set the admin publish all set
84                        indicatorDataBeanToXMLService.includeDependentXML to true and this
85                        to false.  For centralized data XML file referencing set to true.
86
87                        NOTE: it doesn't matter if the includeDependentXML is set T/F when
88                        using external XML.  The advantage of using external is that when
89                        that external XML is updated/published the IP will use it v.s.
90                        requiring the IP XML to be republished.  Both ways have pros/cons.
91                "
92        />
93        <xsl:param name="AncillaryValues"/>
94        <xsl:param name="Indicator.ancillaryValues" select="if($Indicator.useExternalXML) then $AncillaryValues/ANCILLARY_VALUES else $Indicator.indicator/ANCILLARY_VALUES"/>
95        <xsl:param name="DataSources"/>
96        <xsl:param name="Indicator.dataSources"     select="if($Indicator.useExternalXML) then $DataSources/DATA_SOURCES else $Indicator.indicator/DATA_SOURCES"/>
97        <xsl:param name="Dimensions"/>
98        <xsl:param name="Indicator.dimensions"      select="if($Indicator.useExternalXML) then $Dimensions/DIMENSIONS else $Indicator.indicator/DIMENSIONS"/>
99        <xsl:param name="Measures"/>
100        <xsl:param name="Indicator.measure"         select="if($Indicator.useExternalXML) then $Measures/MEASURES/MEASURE[NAME=$Indicator.indicatorView/MEASURE_NAME] else $Indicator.indicator/MEASURES/MEASURE[NAME=$Indicator.indicatorView/MEASURE_NAME]"/>
101        <xsl:param name="Indicator.measureValueFormatPattern" select="($Indicator.valueTypes/VALUE_TYPE[NAME = $Indicator.measure/VALUE_TYPE_NAME]/XSLT_FORMAT_PATTERN)[1]"/>
102
103        <xsl:param name="ValueTypes"/>
104        <xsl:param name="Indicator.valueTypes"      select="if($Indicator.useExternalXML) then $ValueTypes/VALUE_TYPES else $Indicator.indicator/VALUE_TYPES"/>
105        <xsl:param name="ValueAttributes"/>
106        <xsl:param name="Indicator.valueAttributes" select="if($Indicator.useExternalXML) then $ValueAttributes/VALUE_ATTRIBUTES else $Indicator.indicator/VALUE_ATTRIBUTES"/>
107
108        <xsl:param name="Indicator.datasetRecords" select="$Indicator.indicator/DATASETS/DATASET[NAME = $Indicator.indicatorView/DATASET_NAMES/DATASET_NAME]/RECORDS"/>
109        <xsl:param name="Indicator.recordDimensionFields">
110                <xsl:call-template name="Interactive.recordDimensionFields">
111                        <xsl:with-param name="dimensions"      select="$Indicator.dimensions"/>
112                        <xsl:with-param name="dimensionUsages" select="$Indicator.indicatorView/DIMENSION_USAGES"/>
113                </xsl:call-template>
114        </xsl:param>
115        <xsl:param name="Indicator.indicatorViewDatasetRecords">
116                <xsl:call-template name="Interactive.indicatorViewDatasetRecords">
117                        <xsl:with-param name="datasetRecords"  select="$Indicator.datasetRecords"/>
118                        <xsl:with-param name="dimensionUsages" select="$Indicator.indicatorView/DIMENSION_USAGES"/>
119                        <xsl:with-param name="recordDimensionFields" select="$Indicator.recordDimensionFields"/>
120                </xsl:call-template>
121        </xsl:param>
122        <xsl:param name="Indicator.valueAttributeNames" select="distinct-values($Indicator.indicatorViewDatasetRecords//VALUE_ATTRIBUTE_NAME)"/>
123
124        <xsl:param name="Indicator.showMap" ibis:doc="Exposed so that SS can access."
125                select="ibis:DataViz.showMap(
126                        $Indicator.indicatorView/MAP_NAME,
127                        $Indicator.indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='category']/NAME,
128                        $Indicator.indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='series']/NAME,
129                        $Indicator.dimensions
130                )"
131        /> 
132        <xsl:param name="Indicator.showChart" select="ibis:DataViz.showChart($Indicator.indicatorView/CHART_NAME)"/>
133        <xsl:param name="Indicator.showGrid"  select="true()"/>
134
135
136        <xsl:param name="Indicator.contentBlockType" select="$ContentContainer.defaultContentBlockType"/>
137        <xsl:param name="Indicator.contentBlockHeadingLevel" select="2"/>
138
139
140
141        <!-- ======== BASIC INDICATOR ELEMENT CONTENT BLOCK TEMPLATES ========== -->
142        <xsl:template name="Indicator.contentBlock"
143                ibis:doc="Centralizes setting headingLevel and fixed/expandable blocks for
144                        IP fields.  In previous versions the content was processed for
145                        converting (2) crs to (2) br tags.  Since wiki does this that code
146                        is no longer needed and was removed.
147                "
148        >
149                <xsl:param name="contentBlockType"  select="$Indicator.contentBlockType" 
150                        ibis:doc="Optional param to control the block type.  Default is
151                                ContentContainer.contentBlockType.
152                        "
153                />
154                <xsl:param name="title"/>
155                <xsl:param name="headingLevel" select="$Indicator.contentBlockHeadingLevel"/>
156                <xsl:param name="description"/>
157                <xsl:param name="content"/>
158                <xsl:param name="addWikiAttribute" select="true()"/>
159
160<!--
161GARTH TODO: Decide and keep or remove.
162<xsl:variable name="additionalClasses">
163        <xsl:if test="contains($additionalClasses, 'Text')">
164                <xsl:if test="500 &lt; string-length($content)"><xsl:value-of select="$additionalClasses"/></xsl:if>
165        </xsl:if>
166        <xsl:if test="not(contains($additionalClasses, 'Text')) and 0 != string-length($additionalClasses)"><xsl:value-of select="$additionalClasses"/></xsl:if>
167</xsl:variable>
168<xsl:variable name="content">
169        <xsl:if test="contains($additionalClasses, 'Text')">
170                <p><xsl:copy-of select="$content/text()"/></p>
171        </xsl:if>
172        <xsl:if test="not(contains($additionalClasses, 'Text'))">
173                <xsl:copy-of select="$content/text()"/>
174        </xsl:if>
175</xsl:variable>
176
177                        <xsl:with-param name="additionalClasses" select="$additionalClasses"/>
178-->
179
180                <xsl:call-template name="ContentContainer.contentBlock">
181                        <xsl:with-param name="title"        select="$title"/>
182                        <xsl:with-param name="headingLevel" select="$headingLevel"/>
183                        <xsl:with-param name="content"      select="$content"/>
184                        <xsl:with-param name="description"  select="$description"/>
185
186                        <xsl:with-param name="contentBlockType" select="$contentBlockType"/>
187                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
188                </xsl:call-template>
189        </xsl:template>
190
191
192        <xsl:template name="Indicator.definition"
193                ibis:doc="Creates a titled content block that contains the
194                        'INDICATOR/DEFINITION' XML contents."
195        >
196                <xsl:param name="indicator" select="$Indicator.indicator"/>
197                <xsl:call-template name="Indicator.contentBlock">
198                        <xsl:with-param name="title"   select="'Definition'"/>
199                        <xsl:with-param name="content" select="$indicator/DEFINITION"/>
200                        <xsl:with-param name="description" select="'Definition of this indicator'"/>
201                </xsl:call-template>
202        </xsl:template>
203
204
205        <xsl:template name="Indicator.numerator"
206                ibis:doc="Creates a titled content block that contains the
207                        'INDICATOR/NUMERATOR' XML contents."
208        >
209                <xsl:param name="indicator"     select="$Indicator.indicator"/>
210                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
211                <xsl:call-template name="Indicator.contentBlock">
212                        <xsl:with-param name="title"   select="'Numerator'"/>
213                        <xsl:with-param name="content" select="if(0 = string-length($indicatorView/NUMERATOR_OVERRIDE)) then $indicator/NUMERATOR else $indicatorView/NUMERATOR_OVERRIDE"/>
214                        <xsl:with-param name="description" select="'Definition of this datasets numerator used to calculate the data values'"/>
215                </xsl:call-template>
216        </xsl:template>
217
218
219        <xsl:template name="Indicator.denominator"
220                ibis:doc="Creates a titled content block that contains the
221                        'INDICATOR/DENOMINATOR' XML contents."
222        >
223                <xsl:param name="indicator"     select="$Indicator.indicator"/>
224                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
225
226                <xsl:call-template name="Indicator.contentBlock">
227                        <xsl:with-param name="title"   select="'Denominator'"/>
228                        <xsl:with-param name="content" select="if(0 = string-length($indicatorView/DENOMINATOR_OVERRIDE)) then $indicator/DENOMINATOR else $indicatorView/DENOMINATOR_OVERRIDE"/>
229                        <xsl:with-param name="description" select="'Definition of this datasets denominator used to calculate the data values'"/>
230                </xsl:call-template>
231        </xsl:template>
232
233
234        <xsl:template name="Indicator.howCalculatedTable"
235                ibis:doc="Creates a titled content block that contains a small
236                        table with the 'INDICATOR/NUMERATOR' and 'INDICATOR/DENOMINATOR' XML
237                        contents which represent how the data are calculated."
238        >
239                <xsl:param name="indicator"     select="$Indicator.indicator"/>
240                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
241
242                <xsl:call-template name="Indicator.contentBlock">
243                        <xsl:with-param name="title"   select="'How the Measure is Calculated'"/>
244                        <xsl:with-param name="content">
245                                <table cellpadding="0" cellspacing="0">
246                                        <tr title="Definition of this datasets numerator used to calculate the data values">
247                                                <td class="Bold">Numerator:</td>
248                                                <td>
249                                                        <xsl:value-of select="if(0 = string-length($indicatorView/NUMERATOR_OVERRIDE)) then $indicator/NUMERATOR else $indicatorView/NUMERATOR_OVERRIDE"/>
250                                                </td>
251                                        </tr>
252                                        <tr title="Definition of this datasets denominator used to calculate the data values">
253                                                <td class="Bold" style="padding-right: 5px;">Denominator:</td>
254                                                <td>
255                                                        <xsl:value-of select="if(0 = string-length($indicatorView/DENOMINATOR_OVERRIDE)) then $indicator/DENOMINATOR else $indicatorView/DENOMINATOR_OVERRIDE"/>
256                                                </td>
257                                        </tr>
258                                </table>
259                        </xsl:with-param>
260                        <xsl:with-param name="description" select="'Describes the numerator and denominator and how these values are used to calculate the values'"/>
261                </xsl:call-template>
262        </xsl:template>
263
264
265        <xsl:template name="Indicator.howCalculated"
266                ibis:doc="Creates a titled content block that contains a small
267                        table with the 'INDICATOR/NUMERATOR' and 'INDICATOR/DENOMINATOR' XML
268                        contents which represent how the data are calculated."
269        >
270                <xsl:param name="indicator"     select="$Indicator.indicator"/>
271                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
272
273                <xsl:call-template name="Indicator.contentBlock">
274                        <xsl:with-param name="title"   select="'How the Measure is Calculated'"/>
275                        <xsl:with-param name="content">
276                                <ul>
277                                        <li>
278                                                <h4 title="Definition of this datasets numerator used to calculate the data values">Numerator: </h4>
279                                                <xsl:value-of select="if(0 = string-length($indicatorView/NUMERATOR_OVERRIDE)) then $indicator/NUMERATOR else $indicatorView/NUMERATOR_OVERRIDE"/>
280                                        </li>
281                                        <li>
282                                                <h4 title="Definition of this datasets denominator used to calculate the data values">Denominator: </h4>
283                                                <xsl:value-of select="if(0 = string-length($indicatorView/DENOMINATOR_OVERRIDE)) then $indicator/DENOMINATOR else $indicatorView/DENOMINATOR_OVERRIDE"/>
284                                        </li>
285                                </ul>
286                        </xsl:with-param>
287                        <xsl:with-param name="description" select="'Describes the numerator and denominator and how these values are used to calculate the values'"/>
288                </xsl:call-template>
289        </xsl:template>
290
291
292        <xsl:template name="Indicator.riskFactors"
293                ibis:doc="Creates a titled content block that contains the
294                        'INDICATOR/RELATIONS/RELATION[NAME='RiskFactors']' XML contents."
295        >
296                <xsl:param name="indicator" select="$Indicator.indicator"/>
297                <xsl:call-template name="Indicator.contentBlock">
298                        <xsl:with-param name="title"   select="'Risk Factors'"/>
299                        <xsl:with-param name="content" select="$indicator/RELATIONS/RELATION[NAME='RiskFactors']/TEXT"/>
300                        <xsl:with-param name="description" select="'Potential health risk factors'"/>
301                </xsl:call-template>
302        </xsl:template>
303
304
305        <xsl:template name="Indicator.whyImportant"
306                ibis:doc="Creates a titled content block that contains the
307                        'INDICATOR/WHY_IMPORTANT' XML contents."
308        >
309                <xsl:param name="indicator" select="$Indicator.indicator"/>
310                <xsl:call-template name="Indicator.contentBlock">
311                        <xsl:with-param name="title"   select="'Why Is This Important?'"/>
312                        <xsl:with-param name="content" select="$indicator/WHY_IMPORTANT"/>
313                        <xsl:with-param name="description" select="'Text that describes why this indicator is important to the populations overall health'"/>
314                </xsl:call-template>
315        </xsl:template>
316
317
318
319        <xsl:template name="Indicator.initiatives"
320                ibis:doc="Creates a titled content block that contains the
321                        'INDICATOR/INITIATIVES/*' XML contents."
322        >
323                <xsl:param name="indicator"             select="$Indicator.indicator"/>
324                <xsl:param name="initiatives"   select="$indicator/INITIATIVES/INITIATIVE"/>
325                <xsl:param name="title"/>
326
327                <xsl:if test="0 != count($initiatives)">
328                        <xsl:call-template name="Indicator.contentBlock">
329                                <xsl:with-param name="title"   select="$title"/>
330                                <xsl:with-param name="description" select="'Provides details on the associated Health Initiatives'"/>
331                                <xsl:with-param name="content">
332                                        <xsl:if test="1 = count($initiatives)">
333                                                <xsl:call-template name="Indicator.initiative">
334                                                        <xsl:with-param name="indicator" select="$indicator"/>
335                                                        <xsl:with-param name="initiative" select="$initiatives[1]"/>
336                                                </xsl:call-template>
337                                        </xsl:if>
338                                        <xsl:if test="1 &lt; count($initiatives)">
339                                                <ul>
340                                                        <xsl:for-each select="$initiatives">
341                                                                <xsl:sort select="SORT_ORDER" order="ascending" data-type="number"/>
342                                                                <li>
343                                                                        <xsl:call-template name="Indicator.initiative">
344                                                                                <xsl:with-param name="indicator" select="$indicator"/>
345                                                                                <xsl:with-param name="initiative" select="."/>
346                                                                        </xsl:call-template>
347                                                                </li>
348                                                        </xsl:for-each>
349                                                </ul>
350                                        </xsl:if>
351                                </xsl:with-param>
352                        </xsl:call-template>
353                </xsl:if>
354        </xsl:template>
355
356
357
358
359        <xsl:template name="Indicator.initiative"
360                ibis:doc="Creates a titled content block that contains the
361                                'INDICATOR/INITIATIVES/*' XML contents.
362                                GARTH TODO: Needs to be defined.  What measure name to compare etc.
363                        "
364        >
365                <xsl:param name="indicator" select="$Indicator.indicator"/>
366                <xsl:param name="initiative"/>
367        </xsl:template>
368       
369
370
371
372        <xsl:template name="Indicator.initiative-TEST"
373                ibis:doc="Creates a titled content block that contains the
374                                'INDICATOR/INITIATIVES/*' XML contents.
375                                GARTH TODO: Needs to be defined.  What measure name to compare etc.
376                        "
377        >
378                <xsl:param name="indicator" select="$Indicator.indicator"/>
379                <xsl:param name="initiative"/>
380
381                <h3 title="{$initiative/DESCRIPTION}">
382                        <xsl:if test="0 != string-length($initiative/URL)">
383                                <a href="{$initiative/URL}"><xsl:value-of select="$initiative/TITLE"/></a>,
384                        </xsl:if>
385                        <xsl:if test="0 = string-length($initiative/URL)">
386                                <xsl:value-of select="$initiative/TITLE"/>,
387                        </xsl:if>
388
389                        <xsl:if test="0 != string-length($initiative/INITIATIVE_TOPIC/URL)">
390                                <a href="{$initiative/INITIATIVE_TOPIC/URL}"><xsl:value-of select="$initiative/INITIATIVE_TOPIC/TITLE"/></a>:
391                        </xsl:if>
392                        <xsl:if test="0 = string-length($initiative/INITIATIVE_TOPIC/URL)">
393                                <xsl:value-of select="$initiative/INITIATIVE_TOPIC/TITLE"/>:
394                        </xsl:if>
395
396                        <xsl:if test="0 != string-length($initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/URL)">
397                                <a href="{$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/URL}" 
398                                        title="{$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/DESCRIPTION}"
399                                        ><xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TITLE"/>
400                                </a>
401                        </xsl:if>
402                        <xsl:if test="0 = string-length($initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/URL)">
403                                <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TITLE"/>
404                        </xsl:if>
405                </h3>
406                <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/NARRATIVE"/><br/>
407                <span class="Bold"><xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_LABEL"/></span>:
408                <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_GOAL_VALUE"/>,
409                <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_NARRATIVE"/>
410
411<xsl:variable name="indicatorComparisonValues" select="/">
412<!--
413        <xsl:call-template name="ComparisonValues.indicatorStateUSComparisonValues">
414                <xsl:with-param name="indicator"               select="$indicator"/>
415                                <xsl:with-param name="dimensions" select="$Indicator.dimensions"/>
416                                <xsl:with-param name="measures"   select="$Indicator.measures"/>
417                                <xsl:with-param name="valueTypes" select="$Indicator.valueTypes"/>
418
419                <xsl:with-param name="communityDimensionName"  select="'GeoState'"/>
420                <xsl:with-param name="communityDimensionValue" select="'35'"/>
421        </xsl:call-template>
422-->
423</xsl:variable>
424
425<br/>
426                baseline value: <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_BASELINE_VALUE"/><br/>
427                goal value: <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_GOAL_VALUE"/><br/>
428                measure name: <xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/MEASURE_NAME"/><br/>
429                COMMUNITY VALUE: <xsl:value-of select="$indicatorComparisonValues/COMMUNITY/VALUE/TITLE"/><br/>
430                COMMUNITY DESIRABLE_VALUE: <xsl:value-of select="$indicatorComparisonValues/COMMUNITY/DESIRABLE_VALUE"/><br/>
431                COMMUNITY RELIABILITY: <xsl:value-of select="$indicatorComparisonValues/COMMUNITY/RELIABILITY"/><br/>
432                STATE compare value: <xsl:value-of select="$indicatorComparisonValues/STATE/VALUE/TITLE"/><br/>
433                US compare value: <xsl:value-of select="$indicatorComparisonValues/US/VALUE/TITLE"/><br/>
434                PERIOD DIMENSION: <xsl:value-of select="$indicatorComparisonValues/PERIOD_DIMENSION/VALUE/TITLE"/><br/>
435<xsl:message select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/MEASURE_NAME"/>
436<xsl:message select="count($indicator/DATASETS//RECORD[MEASURE/NAME = $initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/MEASURE_NAME])"/>
437        <div id="boxplot"></div>
438        <div id="chart-temp"></div>
439        <div id="gauge"/>
440        <div id="thermo_gauge"/>
441
442    <script>
443                function createChart()
444                {
445                        $("#chart-temp").kendoChart(
446                        {
447                                "legend": {"visible": false } // doesn't matter
448                                ,"series":
449                                [{
450                                        "type": "bullet"
451                                        ,"data": [[25, 22]]     // , 15, 16, 17  -  only does 2 data points
452                                }]
453                                ,"categoryAxis":
454                                {
455                                        "majorGridLines": {"visible": false}
456                                        ,"majorTicks": {"visible": false}
457                                }
458                                ,"valueAxis":
459                                [
460                                        {
461                                                "reverse": true
462                                                ,"plotBands":
463                                                [
464                                                         {"from":  0, "to": 10, "color": "yellow", "opacity": .3}
465                                                        ,{"from": 10, "to": 20, "color": "orange", "opacity": .3}
466                                                        ,{"from": 20, "to": 30, "color": "red",    "opacity": .3}
467                                                ]
468                                                ,"majorGridLines": {"visible": false}
469                                                ,"min": 5
470                                                ,"max": 45
471                                                ,"minorTicks": {"visible": true}
472                                        }
473                                ]
474                                ,"tooltip":
475                                {
476                                        "visible": true
477                                        ,"template": "Maximum: #= value.target # <br/> Average: #= value.current #"
478                                }
479                        });
480
481
482$("#boxplot").kendoChart({
483        "series":
484        [
485                {
486                        "type": "verticalBoxPlot"
487                        ,q1Field: 'q1'
488                        ,q3Field: 'q3'
489                        ,lowerField: 'lower'
490                        ,upperField: 'upper'
491                        ,medianField: 'median'
492                        ,meanField: 'mean'
493                        ,outliersField: 'outliers'
494                }
495        ]
496        ,dataSource:
497        {
498                "data": [
499                                { year: 2004, lower: 1.8, q1: 2.75, median: 3.35, q3: 3.825, upper: 4.9, mean: 3.4 },
500                                { year: 2005, lower: 1.7, q1: 2.275, median: 3.2, q3: 3.825, upper: 5.5, outliers: [0.5, 6.7] },
501                                { year: 2006, lower: 1.2, q1: 1.95, median: 2.45, q3: 3.075, upper: 3.5, mean: 2.5 },
502                                { year: 2007, lower: 1.3, q1: 1.9, median: 3.05, q3: 3.425, upper: 4, mean: 2.7, outliers: [7, 8.5] }
503                ]
504        }
505        ,categoryAxis:
506        {
507                field: 'year'
508        }
509        ,"tooltip": {"visible": true}
510});
511
512$("#gauge").kendoArcGauge({
513        value: "<xsl:value-of select="$indicatorComparisonValues/STATE/VALUE/text()"/>"
514        ,centerTemplate: "State: <xsl:value-of select="$indicatorComparisonValues/STATE/VALUE/TITLE"/>"
515        ,scale:
516        {
517                reverse: false
518                ,startAngle: 90
519                ,endAngle: 360
520                ,min: 10
521                ,max: 50
522                ,labels: {visible: true}
523                ,majorTicks: {visible: true}
524        }
525});
526
527$("#thermo_gauge").kendoLinearGauge({
528                vertical: false,
529                pointer: [{
530                value: 10,
531                color: "#c20000",
532                shape: "arrow"
533                }, {
534                value: 70,
535                color: "#ff7a00",
536                margin: 10
537                }, {
538                value: 140,
539                color: "#ffc700"
540                }],
541                scale: {
542                vertical: false,
543                minorUnit: 5,
544                min: 0,
545                max: 180
546                }
547});
548
549                }       // End of function createChart
550
551                $(document).ready(createChart);
552    </script>
553
554        <style>
555                table.Info tr {background-color: yellow;}
556                table.Info tr td {background-color: transparent;}
557        </style>
558<table class="Info">
559        <tr>
560                <th>Year</th>
561                <th>Base</th>
562                <th>Goal</th>
563                <th>State Value</th>
564                <th>U.S. Value</th>
565        </tr>
566        <tr>
567                <td><xsl:value-of select="$indicatorComparisonValues/PERIOD_DIMENSION/VALUE/TITLE"/></td>
568                <td><xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_BASELINE_VALUE"/></td>
569                <td><xsl:value-of select="$initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/TARGET_GOAL_VALUE"/></td>
570                <td><xsl:value-of select="$indicatorComparisonValues/STATE/VALUE/TITLE"/></td>
571                <td><xsl:value-of select="$indicatorComparisonValues/US/VALUE/TITLE"/></td>
572        </tr>
573</table>
574<br/><br/>
575
576<textarea rows="10" cols="80">
577<xsl:copy-of select="$indicatorComparisonValues"/>
578</textarea>
579<br/>
580
581<!--
582GARTH TODO:
583<xsl:message select="$indicatorComparisonValues"/>
584<xsl:message select="'yyyyyyyyyyyyyyyyyyyyyyyyy'"/>
585
586
587<xsl:copy-of select="$indicator/DATASETS//RECORD[(MEASURE/NAME = $initiative/INITIATIVE_TOPIC/INITIATIVE_TOPIC_OBJECTIVE/MEASURE_NAME) and exists(DIMENSIONS/DIMENSION[(NAME='GeoState') and (VALUE='35')]) ]"/>
588                <link rel="stylesheet" type="text/css" href="{$ibis.baseRequestPath}css/_community.css"/>
589-->
590<!--
591<xsl:call-template name="Highlight.communityStateUSComparisonTable">
592        <xsl:with-param name="communityTitle"
593                select="'my title'"
594        />
595        <xsl:with-param name="indicatorComparisonValues" select="$indicatorComparisonValues"/>
596        <xsl:with-param name="communityValue" select="$indicatorComparisonValues/STATE/VALUE/text()"/>
597</xsl:call-template>
598-->
599               
600<!-- GARTH TODO: Could implement the worse, same, better logic here... -->
601        </xsl:template>
602
603
604
605
606
607        <xsl:template name="Indicator.otherObjectives"
608                ibis:doc="Creates a titled content block that contains the
609                        'INDICATOR/OTHER_OBJECTIVE_DESCRIPTION' XML contents."
610        >
611                <xsl:param name="indicator" select="$Indicator.indicator"/>
612                <xsl:call-template name="Indicator.contentBlock">
613                        <xsl:with-param name="title"   select="'Other Objectives'"/>
614                        <xsl:with-param name="content" select="$indicator/OTHER_OBJECTIVE_DESCRIPTION"/>
615                        <xsl:with-param name="description" select="'Describes any other health initiative objectives'"/>
616                </xsl:call-template>
617        </xsl:template>
618
619
620        <xsl:template name="Indicator.howDoing"
621                ibis:doc="Creates a titled content block that contains the
622                        'INDICATOR/HOW_DOING' XML contents."
623        >
624                <xsl:param name="indicator" select="$Indicator.indicator"/>
625                <xsl:call-template name="Indicator.contentBlock">
626                        <xsl:with-param name="title"   select="'How Are We Doing?'"/>
627                        <xsl:with-param name="content" select="$indicator/HOW_DOING"/>
628                        <xsl:with-param name="description" select="'Provides a status on how the state is doing'"/>
629                </xsl:call-template>
630        </xsl:template>
631
632
633        <xsl:template name="Indicator.howCompare"
634                ibis:doc="Creates a titled content block that contains the
635                        'INDICATOR/STATE_VS_US' XML contents."
636        >
637                <xsl:param name="indicator" select="$Indicator.indicator"/>
638                <xsl:call-template name="Indicator.contentBlock">
639                        <xsl:with-param name="title"   select="'How Do We Compare With the U.S.?'"/>
640                        <xsl:with-param name="content" select="$indicator/STATE_VS_US"/>
641                        <xsl:with-param name="description" select="'Provides a How Doing comparison between the state and the U.S.'"/>
642                </xsl:call-template>
643        </xsl:template>
644
645
646        <xsl:template name="Indicator.whatDoing"
647                ibis:doc="Creates a titled content block that contains the
648                        'INDICATOR/WHAT_DOING' XML contents."
649        >
650                <xsl:param name="indicator" select="$Indicator.indicator"/>
651                <xsl:call-template name="Indicator.contentBlock">
652                        <xsl:with-param name="title"   select="'What Is Being Done?'"/>
653                        <xsl:with-param name="content" select="$indicator/WHAT_DOING"/>
654                        <xsl:with-param name="description" select="'Describes what is being done to help the population'"/>
655                </xsl:call-template>
656        </xsl:template>
657
658
659        <xsl:template name="Indicator.evidenceBasedPractices"
660                ibis:doc="Creates a titled content block that contains the
661                        'INDICATOR/EVIDENCE_BASED_PRACTICES' XML contents."
662        >
663                <xsl:param name="indicator" select="$Indicator.indicator"/>
664                <xsl:call-template name="Indicator.contentBlock">
665                        <xsl:with-param name="title"   select="'Evidence-based Practices'"/>
666                        <xsl:with-param name="content" select="$indicator/EVIDENCE_BASED_PRACTICES"/>
667                        <xsl:with-param name="description" select="'Describes what evidence-based interventions are recommended'"/>
668                </xsl:call-template>
669        </xsl:template>
670
671
672        <xsl:template name="Indicator.footnoteReferences"
673                ibis:doc="Creates a titled content block that contains the
674                        'INDICATOR/FOOTNOTE_REFERENCES' XML contents."
675        >
676                <xsl:param name="indicator" select="$Indicator.indicator"/>
677                <xsl:call-template name="Indicator.contentBlock">
678                        <xsl:with-param name="title"   select="'Footnote References'"/>
679                        <xsl:with-param name="content" select="$indicator/FOOTNOTE_REFERENCES"/>
680                        <xsl:with-param name="description" select="'Footnote References'"/>
681                </xsl:call-template>
682        </xsl:template>
683
684
685        <xsl:template name="Indicator.availableServices"
686                ibis:doc="Creates a titled content block that contains the
687                        'INDICATOR/SERVICES_AVAILABLE_TO_PUBLIC' XML contents."
688        >
689                <xsl:param name="indicator" select="$Indicator.indicator"/>
690                <xsl:call-template name="Indicator.contentBlock">
691                        <xsl:with-param name="title"   select="'Available Services'"/>
692                        <xsl:with-param name="content" select="$indicator/SERVICES_AVAILABLE_TO_PUBLIC"/>
693                        <xsl:with-param name="description" select="'Provides text and links that can be referenced'"/>
694                </xsl:call-template>
695        </xsl:template>
696
697
698        <xsl:template name="Indicator.moreResources"
699                ibis:doc="Creates a titled content block that contains the
700                        'INDICATOR/MORE_RESOURCES' XML contents."
701        >
702                <xsl:param name="indicator" select="$Indicator.indicator"/>
703                <xsl:call-template name="Indicator.contentBlock">
704                        <xsl:with-param name="title"   select="'More Resources'"/>
705                        <xsl:with-param name="content" select="$indicator/MORE_RESOURCES"/>
706                        <xsl:with-param name="description" select="'Additional resources'"/>
707                </xsl:call-template>
708        </xsl:template>
709
710
711        <xsl:template name="Indicator.otherInformation"
712                ibis:doc="Creates a titled content block that contains the
713                        'INDICATOR/OTHER_PROGRAM_INFORMATION' XML contents."
714        >
715                <xsl:param name="indicator" select="$Indicator.indicator"/>
716                <xsl:call-template name="Indicator.contentBlock">
717                        <xsl:with-param name="title"   select="'Health Program Information'"/>
718                        <xsl:with-param name="content" select="$indicator/OTHER_PROGRAM_INFORMATION"/>
719                        <xsl:with-param name="description" select="'Additional information that does not fit into any of the above categories'"/>
720                </xsl:call-template>
721        </xsl:template>
722
723
724        <xsl:template name="Indicator.allDates"
725                ibis:doc="Creates a titled content block that contains the 'INDICATOR'
726                        date elements inside a div with the class style of 'Center'."
727        >
728                <xsl:param name="indicator" select="$Indicator.indicator"/>
729                <div class="DataDates" title="Data source/data as of date and when these data were published to this site">
730                        Indicator Data Last Updated On <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>,
731                        Published on <xsl:value-of select="$indicator/PUBLISHED_DATE"/>
732<!-- Lois does not want this showing on public site 5-14-07.
733                        Data as of: <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>,
734                        Last Modified: <xsl:value-of select="$indicator/MODIFIED_DATE"/>,
735                        Published: <xsl:value-of select="$indicator/PUBLISHED_DATE"/>
736-->
737                </div>
738        </xsl:template>
739
740
741        <xsl:template name="Indicator.modifiedDate"
742                ibis:doc="Creates a titled content block that contains the
743                        'INDICATOR/MODIFIED_DATE' XML contents."
744        >
745                <xsl:param name="indicator" select="$Indicator.indicator"/>
746                <xsl:element name="h{$Indicator.contentBlockHeadingLevel}">
747                        <xsl:attribute name="title" select="'Date these data were last modified by the admin system.'"/>
748                        Data Modified Date
749                </xsl:element>
750                These data were last modified on: <xsl:value-of select="$indicator/MODIFIED_DATE"/>
751        </xsl:template>
752
753
754        <xsl:template name="Indicator.dataSourceDate"
755                ibis:doc="Creates a titled content block that contains the
756                        'INDICATOR/DATA_AS_OF_DATE' XML contents (data as of)."
757        >
758                <xsl:param name="indicator" select="$Indicator.indicator"/>
759<!--
760                <h2 title="Data source date - date these data points are as of.">Data As Of Date</h2>
761                <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>
762                <br/><br/>
763
764                <div class="DataDate" title="Data source date - date these data points are as of.">
765                        Updated On <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>
766                </div>
767-->
768                <xsl:element name="h{$Indicator.contentBlockHeadingLevel}">
769                        <xsl:attribute name="title" select="'Data source date - date these data points are as of.'"/>
770                        Date Indicator Content Last Updated: <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>
771                </xsl:element>
772        </xsl:template>
773
774
775
776
777        <!-- =================== MORE SPECIALIZED TEMPLATES =================== -->
778        <xsl:template name="Indicator.viewDataNotes"
779                ibis:doc="Creates a titled content block that has list of the
780                        indicator's MEASURE DATA_NOTE and the IPV's DATA_NOTE.
781                "
782        >
783                <xsl:param name="measure"       select="$Indicator.measure"/>
784                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
785                <xsl:param name="title"         select="'Data Notes'"/>
786
787                <xsl:variable name="dataNotes">
788                        <xsl:copy-of select="$measure/DATA_NOTE"/>
789                        <xsl:copy-of select="$indicatorView/DATA_NOTE"/>
790                </xsl:variable>
791                <xsl:variable name="dataNoteCount" select="count($dataNotes/*)"/>
792
793                <xsl:call-template name="Indicator.contentBlock">
794                        <xsl:with-param name="title"   select="$title"/>
795                        <xsl:with-param name="content">
796                                <xsl:if test="1 = $dataNoteCount">
797                                        <xsl:value-of select="$dataNotes/DATA_NOTE"/>
798                                </xsl:if>
799                                <xsl:if test="1 &lt; $dataNoteCount">
800                                        <ul>
801                                                <xsl:for-each select="$dataNotes/DATA_NOTE">
802                                                        <li><xsl:value-of select="."/></li>
803                                                </xsl:for-each>
804                                        </ul>
805                                </xsl:if>
806                        </xsl:with-param>
807                        <xsl:with-param name="description" select="'Data notes about the indicator data'"/>
808                </xsl:call-template>
809        </xsl:template>
810
811
812        <xsl:template name="Indicator.viewDataSources"
813                ibis:doc="Creates a titled content block that builds a ';'
814                        separated text block based on all the applicable indicator's
815                        DATASET/DATA_SOURCES/DATA_SOURCE elements text.  This template handles
816                        removing/not including any indicator DATASET DATA_SORUCE element that
817                        already exist in the indicator's DATA_SOURCE elements."
818        >
819                <xsl:param name="indicator"     select="$Indicator.indicator"     ibis:doc="indicator that contains the datasets which contain the data sources."/>
820                <xsl:param name="indicatorView" select="$Indicator.indicatorView" ibis:doc="indicator view element."/>
821
822                <xsl:param name="indicatorDatasets" select="$indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]"/>
823                <xsl:param name="indicatorDatasetDataSourceNames" select="$indicatorDatasets/DATA_SOURCE_USAGES/DATA_SOURCE_USAGE/NAME"/>
824                <xsl:param name="dataSources" select="$Indicator.dataSources/DATA_SOURCE[NAME = $indicatorDatasetDataSourceNames]"/>
825                <xsl:param name="title"       select="if(count($dataSources) = 1)then 'Data Source' else 'Data Sources'"/>
826
827                <!-- Tried bunch of things to remove dup data sources.  keys are only good within given node set.
828                         even though ind and ind view ds structs are the same and had exactly the same values the
829                         key wouldn't match!!! Finally went to doing a simple boolean exists test and it works.
830                         Tried unioning node sets (which was supposed to remove dups) - same result as keys.
831                         Tried unioning and then doing a [not(.=preceding-sibling:: ==> same result.
832                -->
833
834                <xsl:call-template name="Indicator.contentBlock">
835                        <xsl:with-param name="title" select="$title"/>
836                        <xsl:with-param name="content">
837                                <xsl:if test="count($dataSources) = 1">
838                                        <xsl:value-of select="$dataSources[1]/TEXT"/>
839                                </xsl:if>
840                                <xsl:if test="count($dataSources) &gt; 1">
841                                        <ul>
842                                                <xsl:for-each-group select="$dataSources" group-by="NAME">
843                                                        <xsl:sort select="SORT_ORDER" order="ascending" data-type="number"/>
844                                                        <li>
845                                                                <xsl:value-of select="TEXT"/>
846                                                                <xsl:if test="0 != string-length(URL)">
847                                                                        <br/>
848                                                                        (<a href="{URL}"><xsl:value-of select="URL"/></a>)
849                                                                </xsl:if>
850                                                        </li>
851                                                </xsl:for-each-group>
852                                        </ul>
853                                </xsl:if>
854                        </xsl:with-param>
855                        <xsl:with-param name="description" select="'Metadata about this indicator profiles data source(s)'"/>
856                </xsl:call-template>
857        </xsl:template>
858
859
860        <xsl:template name="Indicator.viewDataIssues"
861                ibis:doc="Creates a titled content block that contains the list of a) IPV
862                        DATA_ISSUES and 2) DATASOURCE/DATA_ISSUES assoc with the view.
863                "
864        >
865                <xsl:param name="indicator"     select="$Indicator.indicator"/>
866                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
867                <xsl:param name="title"         select="'Data Issues'"/>
868
869                <xsl:param name="indicatorDatasets" select="$indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]"/>
870                <xsl:param name="indicatorDatasetDataSourceNames" select="$indicatorDatasets/DATA_SOURCE_USAGES/DATA_SOURCE_USAGE/NAME"/>
871                <xsl:param name="dataSources" select="$Indicator.dataSources/DATA_SOURCE[(NAME = $indicatorDatasetDataSourceNames) and (0 != string-length(DATA_ISSUES))]"/>
872
873                <xsl:variable name="dataIssuesCount" select="count($dataSources/DATA_ISSUES)"/>
874                <xsl:call-template name="Indicator.contentBlock">
875                        <xsl:with-param name="title"   select="$title"/>
876                        <xsl:with-param name="content">
877                                <xsl:if test="1 &lt; $dataIssuesCount">
878                                        <ul>
879                                                <xsl:for-each select="$dataSources/DATA_ISSUES">
880                                                        <li><xsl:value-of select="."/></li>
881                                                </xsl:for-each>
882                                        </ul>
883                                </xsl:if>
884                                <xsl:if test="1 = $dataIssuesCount">
885                                        <xsl:value-of select="$dataSources/DATA_ISSUES"/>
886                                </xsl:if>
887                        </xsl:with-param>
888                        <xsl:with-param name="description" select="'Current data issues that should be noted and considered'"/>
889                </xsl:call-template>
890        </xsl:template>
891
892
893        <xsl:template name="Indicator.views" ibis:doc="Creates a list of other indicator profile view links.">
894                <xsl:param name="indicator"   select="$Indicator.indicator"/>
895                <xsl:param name="currentIndicatorViewName"/>
896                <xsl:param name="title"       select="concat($indicator/TITLE, ' Views')"/>
897                <xsl:param name="description" select="concat('Chart views for ', $indicator/TITLE)"/>
898                <xsl:param name="indicatorBaseRequsetPath" select="concat($ibis.baseRequestPath, 'indicator/')"/>
899
900                <xsl:variable name="indicatorViews" select="if(string-length($currentIndicatorViewName) != 0) then $indicator/INDICATOR_VIEWS/INDICATOR_VIEW[NAME != $currentIndicatorViewName] else $indicator/INDICATOR_VIEWS/INDICATOR_VIEW"/>
901                <xsl:if test="exists($indicatorViews[1]/NAME)">
902                        <xsl:call-template name="ContentContainer.contentBlock">
903                                <xsl:with-param name="title"       select="$title"/>
904                                <xsl:with-param name="description" select="$description"/>
905                                <xsl:with-param name="content">
906                                        <ul>
907                                        <xsl:for-each select="$indicatorViews">
908                                                <xsl:variable name="indicatorViewTitle" select="TITLE"/>
909                                                <li><a href="{$indicatorBaseRequsetPath}view/{NAME}.html" 
910                                                                title="Another view for {$indicatorViewTitle}"
911                                                        ><xsl:value-of select="$indicatorViewTitle"/> 
912                                                </a></li>
913                                        </xsl:for-each>
914                                        </ul>
915                                </xsl:with-param>
916                        </xsl:call-template>
917                </xsl:if>
918        </xsl:template>
919
920
921        <xsl:template name="Indicator.relatedIndicators"
922                ibis:doc="Localizes handling/display control of the 'INDICATOR/RELATIONS/
923                        RELATION' elements.  This displays the relation text and title (if
924                        the text exists), followed by a list of related indicator profile
925                        links.  If preview (e.g. existance of the xmlURL parameter then the
926                        list is all the RELATED_INDIACTOR elements.  Else - live then display
927                        realted links only for those indicator's that are published."
928        >
929                <xsl:param name="indicator" select="$Indicator.indicator"/>
930                <xsl:param name="relations" select="$indicator/RELATIONS/RELATION"/>
931                <xsl:param name="previewFlag"   select="string-length($xmlURL) != 0"/>
932                <xsl:param name="indicatorBaseRequsetPath" select="concat($ibis.baseRequestPath, 'indicator/')"/>
933
934                <xsl:for-each select="$relations/RELATION">
935                        <xsl:variable name="relatedIndicators" select="RELATED_INDICATORS/RELATED_INDICATOR"/>
936                        <xsl:call-template name="Indicator.contentBlock">
937                                <xsl:with-param name="title"   select="TITLE"/>
938                                <xsl:with-param name="content" select="TEXT"/>
939                        </xsl:call-template>
940
941                        <xsl:call-template name="Indicator.contentBlock">
942                                <xsl:with-param name="title"   select="concat('Related ', TITLE, ' Indicators: ')"/>
943                                <xsl:with-param name="content">
944                                        <xsl:if test="count($relatedIndicators) != 0">
945                                                <ul>
946                                                <xsl:for-each select="$relatedIndicators">
947                                                        <xsl:sort select="SORT_ORDER" order="ascending" data-type="number"/>
948                                                        <li>
949                                                                <a href="{if($previewFlag) then '#' else concat($indicatorBaseRequsetPath, 'view/', NAME, '.html')}">
950                                                                        <xsl:value-of select="TITLE"/>
951                                                                </a>
952                                                        </li>
953                                                </xsl:for-each>
954                                                </ul>
955                                        </xsl:if>
956                                </xsl:with-param>
957                        </xsl:call-template>
958
959                </xsl:for-each>
960        </xsl:template>
961
962
963        <xsl:template name="Indicator.relatedTopics" ibis:doc="Creates a list of topic links.">
964                <xsl:param name="indicator"   select="$Indicator.indicator"/>
965                <xsl:param name="title"       select="concat('Health Topic Pages Related to: ', $indicator/TITLE)"/>
966                <xsl:param name="description" select="concat('Associated topics for ', $indicator/TITLE)"/>
967
968                <xsl:if test="exists($indicator/TOPICS/TOPIC)">
969                        <xsl:call-template name="ContentContainer.contentBlock">
970                                <xsl:with-param name="title"        select="$title"/>
971                                <xsl:with-param name="headingLevel" select="2"/>
972                                <xsl:with-param name="description"  select="$description"/>
973                                <xsl:with-param name="content">
974                                        <ul>
975                                        <xsl:for-each select="$indicator/TOPICS/TOPIC">
976                                                <xsl:sort select="SORT_ORDER" order="ascending" data-type="number"/>
977                                                <li><a href="{ibis:getRequestURL(URL)}" title="Topic {TITLE}"
978                                                        ><xsl:value-of select="TITLE"/> 
979                                                </a></li>
980                                        </xsl:for-each>
981                                        </ul>
982                                </xsl:with-param>
983                        </xsl:call-template>
984                </xsl:if>
985        </xsl:template>
986
987
988        <xsl:template name="Indicator.relatedQueries" ibis:doc="Creates a list of ds query links.">
989                <xsl:param name="indicator"   select="$Indicator.indicator"/>
990                <xsl:param name="title"       select="concat('Dataset Queries Related to: ', $indicator/TITLE)"/>
991                <xsl:param name="description" select="concat('Associated queryable datasets for ', $indicator/TITLE)"/>
992
993                <xsl:variable name="countOfQueries" select="count($indicator//DATASET/QUERY)"/>
994                <xsl:if test="0 != $countOfQueries">
995                        <xsl:call-template name="ContentContainer.contentBlock">
996                                <xsl:with-param name="title"       select="$title"/>
997                                <xsl:with-param name="description" select="$description"/>
998                                <xsl:with-param name="content">
999                                        <ul>
1000                                        <xsl:for-each select="$indicator//DATASET/QUERY">
1001                                                <xsl:sort select="SORT_ORDER" order="ascending" data-type="number"/>
1002                                                <li><a href="{ibis:getRequestURL(URL)}" title="Dataset Query {TITLE}"
1003                                                        ><xsl:value-of select="TITLE"/> 
1004                                                </a></li>
1005                                        </xsl:for-each>
1006                                        </ul>
1007                                </xsl:with-param>
1008                        </xsl:call-template>
1009                </xsl:if>
1010        </xsl:template>
1011
1012
1013        <xsl:template name="Indicator.moreResourcesAndLinks"
1014                ibis:doc="Localizes handling/display control of the More Resources And
1015                        Links section.
1016
1017GARTH TODO: SCRUTINIZE! and fix/update links???
1018                "
1019        >
1020                <xsl:param name="indicator" select="$Indicator.indicator"/>
1021
1022                <!-- IMPORTANT NOTE: This is the same information displayed when the
1023                        Indicator.moreInformation template is called.
1024                -->
1025                <xsl:if test="string-length($indicator/RESOURCES_REFERENCES_LINKS) != 0">
1026                        <xsl:call-template name="ContentContainer.contentBlock">
1027                                <xsl:with-param name="title"        select="'References and Community Resources'"/>
1028                                <xsl:with-param name="headingLevel" select="2"/>
1029                                <xsl:with-param name="content"      select="$indicator/RESOURCES_REFERENCES_LINKS"/>
1030                                <xsl:with-param name="addWikiAttribute" select="true()"/>
1031                        </xsl:call-template>
1032                        <br/>
1033                </xsl:if>
1034
1035                <!-- More Resources Text -->
1036                <h2>More Resources and Links</h2>
1037
1038                Evidence-based community health improvement ideas and interventions may be found at the following sites:<br/>
1039                <ul>
1040                        <li><a href="http://www.thecommunityguide.org/index.html">The Guide to Community Preventive Services </a></li>
1041                        <li><a href="http://www.countyhealthrankings.org">County Health Rankings</a></li>
1042                        <li><a href="http://www.healthypeople.gov">Healthy People 2020 Website</a></li>
1043                </ul><br/>
1044
1045                Additional indicator data by state and county may be found on these Websites:<br/>
1046                <ul>
1047                        <li><a href="http://www.countyhealthrankings.org">County Health Rankings</a></li>
1048                        <li>Kaiser Family Foundation's <a href="http://www.statehealthfacts.org/">StateHealthFacts.org</a></li>
1049                        <li>CDC WONDER's <a href="http://wonder.cdc.gov/data2010/">DATA2010</a>, the Healthy People 2010 Database.</li>
1050                </ul><br/>
1051
1052                Medical literature can be queried at the <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?">PubMed</a> website.
1053                <br/><br/>
1054                For an on-line medical dictionary, click on this <a href="http://www.nlm.nih.gov/medlineplus/mplusdictionary.html">Dictionary</a> link.
1055        </xsl:template>
1056
1057
1058        <xsl:template name="Indicator.externalDataViz">
1059                <xsl:param name="indicatorView" select="$Indicator.indicatorView"/>
1060
1061                <xsl:if test="string-length($indicatorView/EXTERNAL_DATAVIZ_VALUE) != 0">
1062                        <div class="DataViz ExternalDataViz">
1063                                <xsl:if test="string-length($indicatorView/EXTERNAL_DATAVIZ_TITLE) != 0">
1064                                        <h2><xsl:value-of select="$indicatorView/EXTERNAL_DATAVIZ_TITLE"/></h2>
1065                                </xsl:if>
1066
1067                                <div>
1068                                <xsl:choose>
1069                                        <xsl:when test="'IMG_SRC' = $indicatorView/EXTERNAL_DATAVIZ_TYPE">
1070                                                <img src="{$indicatorView/EXTERNAL_DATAVIZ_VALUE}" alt="supplemental image"/>
1071                                        </xsl:when>
1072                                        <xsl:when test="'EMBED_SRC' = $indicatorView/EXTERNAL_DATAVIZ_TYPE">
1073                                                <embed src="{$indicatorView/EXTERNAL_DATAVIZ_VALUE}" alt="supplemental image"/>
1074                                        </xsl:when>
1075                                        <xsl:when test="'IFRAME_SRC' = $indicatorView/EXTERNAL_DATAVIZ_TYPE">
1076                                                <iframe src="{$indicatorView/EXTERNAL_DATAVIZ_VALUE}" alt="supplemental image"/>
1077                                        </xsl:when>
1078                                        <xsl:when test="'HTML' = $indicatorView/EXTERNAL_DATAVIZ_TYPE">
1079                                                <xsl:value-of select="$indicatorView/EXTERNAL_DATAVIZ_VALUE" disable-output-escaping="yes" />
1080                                        </xsl:when>
1081                                        <xsl:otherwise>
1082                                                <div class="Error">Invalid External DataViz Type</div>
1083                                        </xsl:otherwise>
1084                                </xsl:choose>
1085                                </div>
1086
1087                                <xsl:if test="string-length($indicatorView/EXTERNAL_DATAVIZ_NARRATIVE) != 0">
1088                                        <xsl:call-template name="ContentContainer.contentBlock">
1089                                                <xsl:with-param name="content" select="$indicatorView/EXTERNAL_DATAVIZ_NARRATIVE"/>
1090                                                <xsl:with-param name="addWikiAttribute" select="true()"/>
1091                                        </xsl:call-template>
1092                                </xsl:if>
1093                        </div>
1094                </xsl:if>
1095        </xsl:template>
1096
1097
1098        <xsl:template name="Indicator.recordAncillaryValueFields" 
1099                ibis:doc="Centralized handling of the AVs to avoid dup AV field records. 
1100                        Note that only the first dataset AV of its kind is used for a view.
1101                        This because there's no way to know which DS AV def to be used when
1102                        a view refs 2 or more datasets - so the first one is always used.
1103                "
1104        >
1105                <xsl:param name="indicator"                             select="$Indicator.indicator"/>
1106                <xsl:param name="indicatorView"                         select="$Indicator.indicatorView"/>
1107                <xsl:param name="ancillaryValues"                       select="$Indicator.ancillaryValues"/>
1108                <xsl:param name="valueTypes"                            select="$Indicator.valueTypes"/>
1109                <xsl:param name="measureValueFormatPattern" select="$Indicator.measureValueFormatPattern"/>
1110
1111                <xsl:variable name="ancillaryValueNames" select="distinct-values($indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/DATASET_ANCILLARY_VALUES/DATASET_ANCILLARY_VALUE/ANCILLARY_VALUE_NAME)"/>
1112                <xsl:variable name="datasetAncillaryValues">
1113                        <xsl:for-each select="$ancillaryValueNames">
1114                                <xsl:copy-of select="($indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/DATASET_ANCILLARY_VALUES/DATASET_ANCILLARY_VALUE[ANCILLARY_VALUE_NAME = current()])[1]"/> 
1115                        </xsl:for-each>
1116                </xsl:variable>
1117                <xsl:call-template name="Interactive.recordAncillaryValueFields">
1118                        <xsl:with-param name="datasetAncillaryValues"           select="$datasetAncillaryValues"/>
1119                        <xsl:with-param name="ancillaryValues"                          select="$ancillaryValues"/>
1120                        <xsl:with-param name="valueTypes"                                       select="$valueTypes"/>
1121                        <xsl:with-param name="measureValueFormatPattern"        select="$measureValueFormatPattern"/>
1122                </xsl:call-template>
1123        </xsl:template>
1124
1125</xsl:stylesheet>
1126<!-- ============================= End of File ============================= -->
1127
Note: See TracBrowser for help on using the repository browser.