extensions/net.sf.basedb.reggie/trunk/resources/personal/inca-statistics.jsp

Code
Comments
Other
Rev Date Author Line
3963 20 May 16 olle 1 <%@ page
3963 20 May 16 olle 2   pageEncoding="UTF-8"
3963 20 May 16 olle 3   session="false"
3963 20 May 16 olle 4   import="net.sf.basedb.core.Application"
3963 20 May 16 olle 5   import="net.sf.basedb.core.User"
3963 20 May 16 olle 6   import="net.sf.basedb.core.DbControl"
3963 20 May 16 olle 7   import="net.sf.basedb.core.SessionControl"
3963 20 May 16 olle 8   import="net.sf.basedb.clients.web.Base"
3963 20 May 16 olle 9   import="net.sf.basedb.clients.web.util.HTML"
3963 20 May 16 olle 10   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
3963 20 May 16 olle 11   import="net.sf.basedb.util.Values"
3963 20 May 16 olle 12   import="net.sf.basedb.util.formatter.DateFormatter"
5287 08 Feb 19 nicklas 13   import="java.util.Date"
3963 20 May 16 olle 14 %>
3963 20 May 16 olle 15 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
3963 20 May 16 olle 16 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
3963 20 May 16 olle 17 <%
3976 26 May 16 nicklas 18 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
3963 20 May 16 olle 19 final String ID = sc.getId();
3963 20 May 16 olle 20 final float scale = Base.getScale(sc);
3963 20 May 16 olle 21 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
3963 20 May 16 olle 22
3963 20 May 16 olle 23 DbControl dc = null;
3963 20 May 16 olle 24 try
3963 20 May 16 olle 25 {
3963 20 May 16 olle 26   dc = sc.newDbControl();
3963 20 May 16 olle 27   final User user = User.getById(dc, sc.getLoggedInUserId());
5287 08 Feb 19 nicklas 28   DateFormatter dateFormat = new DateFormatter("yyyyMMdd");
3963 20 May 16 olle 29 %>
3963 20 May 16 olle 30 <base:page type="default" >
3963 20 May 16 olle 31 <base:head 
3963 20 May 16 olle 32   scripts="~../reggie-2.js,~inca-statistics.js" 
3963 20 May 16 olle 33   styles="path.css,~../css/reggie-2.css"
3963 20 May 16 olle 34 >
3963 20 May 16 olle 35 <style>
3963 20 May 16 olle 36
5291 11 Feb 19 nicklas 37 .stat-table
5291 11 Feb 19 nicklas 38 {
5302 15 Feb 19 nicklas 39   width: 70em;
5292 12 Feb 19 nicklas 40   margin-left: 2em;
5292 12 Feb 19 nicklas 41   margin-bottom: 1em;
5292 12 Feb 19 nicklas 42   border-collapse: collapse;
5291 11 Feb 19 nicklas 43 }
5291 11 Feb 19 nicklas 44
5292 12 Feb 19 nicklas 45 .stat-header
5292 12 Feb 19 nicklas 46 {
5302 15 Feb 19 nicklas 47   border-width: 1px;
5292 12 Feb 19 nicklas 48   font-weight: bold;
5292 12 Feb 19 nicklas 49 }
5292 12 Feb 19 nicklas 50
5292 12 Feb 19 nicklas 51 .stat-sub-header
5292 12 Feb 19 nicklas 52 {
5292 12 Feb 19 nicklas 53   font-weight: normal;
5292 12 Feb 19 nicklas 54 }
5292 12 Feb 19 nicklas 55
5291 11 Feb 19 nicklas 56 .stat-table td
5291 11 Feb 19 nicklas 57 {
5291 11 Feb 19 nicklas 58   text-align: right;
5292 12 Feb 19 nicklas 59   padding: 1px 0.5em;
5291 11 Feb 19 nicklas 60 }
5292 12 Feb 19 nicklas 61
5302 15 Feb 19 nicklas 62 .stat-table td.count
5302 15 Feb 19 nicklas 63 {
5302 15 Feb 19 nicklas 64   border-left-style: dotted;
5302 15 Feb 19 nicklas 65   border-left-width: 1px;
5302 15 Feb 19 nicklas 66 }
5302 15 Feb 19 nicklas 67
5302 15 Feb 19 nicklas 68 .stat-table td.percentage
5302 15 Feb 19 nicklas 69 {
5302 15 Feb 19 nicklas 70   text-align: left;
5302 15 Feb 19 nicklas 71 }
5302 15 Feb 19 nicklas 72
5292 12 Feb 19 nicklas 73 tr.stat-var 
5291 11 Feb 19 nicklas 74 {
5292 12 Feb 19 nicklas 75   border-top-width: 1px;
5292 12 Feb 19 nicklas 76   border-top-style: dotted;
5291 11 Feb 19 nicklas 77 }
5291 11 Feb 19 nicklas 78
5292 12 Feb 19 nicklas 79 .stat-table td.stat-var-name
5291 11 Feb 19 nicklas 80 {
5292 12 Feb 19 nicklas 81   text-align: left;
5291 11 Feb 19 nicklas 82   font-weight: bold;
5291 11 Feb 19 nicklas 83 }
5291 11 Feb 19 nicklas 84
5292 12 Feb 19 nicklas 85 .stat-table td.stat-var-unit
5291 11 Feb 19 nicklas 86 {
5292 12 Feb 19 nicklas 87   text-align: left;
5291 11 Feb 19 nicklas 88 }
5291 11 Feb 19 nicklas 89
5292 12 Feb 19 nicklas 90 .stat-table td.stat-grp-name
5291 11 Feb 19 nicklas 91 {
5292 12 Feb 19 nicklas 92   text-align: left;
5291 11 Feb 19 nicklas 93 }
5291 11 Feb 19 nicklas 94
5292 12 Feb 19 nicklas 95 .stat-table[data-check-type="simplestatistics"] .fullstatistics
5291 11 Feb 19 nicklas 96 {
5291 11 Feb 19 nicklas 97   display: none;
5291 11 Feb 19 nicklas 98 }
5291 11 Feb 19 nicklas 99
5292 12 Feb 19 nicklas 100 .stat-table[data-check-type="fullstatistics"] .simplestatistics
5292 12 Feb 19 nicklas 101 {
5292 12 Feb 19 nicklas 102   display: none;
5292 12 Feb 19 nicklas 103 }
5292 12 Feb 19 nicklas 104
3963 20 May 16 olle 105 </style>
3963 20 May 16 olle 106 </base:head>
3963 20 May 16 olle 107 <base:body>
3963 20 May 16 olle 108
3963 20 May 16 olle 109   <p:path><p:pathelement 
3963 20 May 16 olle 110     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
3963 20 May 16 olle 111     /><p:pathelement title="INCA statistics" 
3963 20 May 16 olle 112     /></p:path>
3963 20 May 16 olle 113
3963 20 May 16 olle 114   <div class="content">
3963 20 May 16 olle 115   <form name="reggie" id="wizard" class="wizard">
3963 20 May 16 olle 116   
5292 12 Feb 19 nicklas 117   <div class="step auto-hide" id="step-1">
3963 20 May 16 olle 118     <div class="step-no">1</div>
3963 20 May 16 olle 119     <div class="step-title">Select INCA file</div>
3963 20 May 16 olle 120     <div class="step-content">
3963 20 May 16 olle 121       
3963 20 May 16 olle 122       <table class="step-form">
3963 20 May 16 olle 123       <tr>
3968 23 May 16 olle 124         <td class="prompt">Statistics date variable</td>
3968 23 May 16 olle 125         <td class="input">
3968 23 May 16 olle 126           <select name="statisticsDateVar" id="statisticsDateVar"
3968 23 May 16 olle 127             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="startDate">
3968 23 May 16 olle 128             <option selected value="diagnosis" >Diagnosis date
3968 23 May 16 olle 129             <option value="operation">Operation date
3968 23 May 16 olle 130           </select>
3968 23 May 16 olle 131         </td>
3968 23 May 16 olle 132         <td class="status" id="statisticsDateVar.status"></td>
3968 23 May 16 olle 133         <td class="help">
3968 23 May 16 olle 134           <span id="statisticsDateVar.message" class="message"></span>
3968 23 May 16 olle 135           Date variable to use for statistics time filter.
3968 23 May 16 olle 136         </td>
3968 23 May 16 olle 137       </tr>
3968 23 May 16 olle 138       <tr>
3963 20 May 16 olle 139         <td class="prompt">Statistics start date</td>
3963 20 May 16 olle 140         <td class="input">
3963 20 May 16 olle 141           <input type="text" name="startDate" id="startDate"
5287 08 Feb 19 nicklas 142             value="20100101"
3968 23 May 16 olle 143             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="endDate"
3963 20 May 16 olle 144             style="width: 8em;" maxlength="10">
3963 20 May 16 olle 145             <base:icon 
3963 20 May 16 olle 146               id="startDateCalendar"
3963 20 May 16 olle 147               subclass="auto-init"
3963 20 May 16 olle 148               data-auto-init="calendar"
3963 20 May 16 olle 149               data-textarea-id="startDate"
3963 20 May 16 olle 150               data-date-format="yyyyMMdd"
3963 20 May 16 olle 151               data-title="INCA statistics start date"
3963 20 May 16 olle 152               image="calendar.png" 
3963 20 May 16 olle 153               tooltip="Select a date from a calendar" 
3963 20 May 16 olle 154               tabindex="-1"
3963 20 May 16 olle 155             />
3963 20 May 16 olle 156         </td>
3963 20 May 16 olle 157         <td class="status" id="startDate.status"></td>
3963 20 May 16 olle 158         <td class="help">
3963 20 May 16 olle 159           <span id="startDate.message" class="message" style="display: none;"></span>
3963 20 May 16 olle 160           (YYYYMMDD or MMDD) The INCA statistics start date.
3963 20 May 16 olle 161         </td>
3963 20 May 16 olle 162       </tr>
3963 20 May 16 olle 163       <tr>
3963 20 May 16 olle 164         <td class="prompt">Statistics end date</td>
3963 20 May 16 olle 165         <td class="input">
3963 20 May 16 olle 166           <input type="text" name="endDate" id="endDate"
5287 08 Feb 19 nicklas 167             value="<%=dateFormat.format(new Date()) %>"
3972 25 May 16 olle 168             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="cancerType"
3963 20 May 16 olle 169             style="width: 8em;" maxlength="10">
3963 20 May 16 olle 170             <base:icon 
3963 20 May 16 olle 171               id="endDateCalendar"
3963 20 May 16 olle 172               subclass="auto-init"
3963 20 May 16 olle 173               data-auto-init="calendar"
3963 20 May 16 olle 174               data-textarea-id="endDate"
3963 20 May 16 olle 175               data-date-format="yyyyMMdd"
3963 20 May 16 olle 176               data-title="INCA statistics end date"
3963 20 May 16 olle 177               image="calendar.png" 
3963 20 May 16 olle 178               tooltip="Select a date from a calendar" 
3963 20 May 16 olle 179               tabindex="-1"
3963 20 May 16 olle 180             />
3963 20 May 16 olle 181         </td>
3963 20 May 16 olle 182         <td class="status" id="endDate.status"></td>
3963 20 May 16 olle 183         <td class="help">
3963 20 May 16 olle 184           <span id="endDate.message" class="message" style="display: none;"></span>
3963 20 May 16 olle 185           (YYYYMMDD or MMDD) The INCA statistics end date.
3963 20 May 16 olle 186         </td>
3963 20 May 16 olle 187       </tr>
3972 25 May 16 olle 188       <tr>
3972 25 May 16 olle 189         <td class="prompt">Cancer type[s]</td>
3972 25 May 16 olle 190         <td class="input">
3972 25 May 16 olle 191           <select name="cancerType" id="cancerType"
3972 25 May 16 olle 192             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="incafile">
5288 08 Feb 19 nicklas 193             <option selected value="">All
4704 16 Mar 18 nicklas 194             <option value="invasive">Invasive cancer with or without cancer in situ
4704 16 Mar 18 nicklas 195             <option value="insitu">Cancer in situ only
3972 25 May 16 olle 196           </select>
3972 25 May 16 olle 197         </td>
3972 25 May 16 olle 198         <td class="status" id="cancerType.status"></td>
3972 25 May 16 olle 199         <td class="help">
3972 25 May 16 olle 200           <span id="cancerType.message" class="message"></span>
3972 25 May 16 olle 201           Cancer type filter. Option "All" is equal to not applying a cancer type filter. Note that an entry may be labeled both "Invasive" and "In situ".
3972 25 May 16 olle 202         </td>
3972 25 May 16 olle 203       </tr>
3963 20 May 16 olle 204       <tr class="align-top">
3963 20 May 16 olle 205         <td class="prompt">INCA file</td>
3963 20 May 16 olle 206         <td class="input">
3963 20 May 16 olle 207           <table style="width: 100%;">
3963 20 May 16 olle 208           <tr>
3963 20 May 16 olle 209           <td>
3963 20 May 16 olle 210             <input type="file" name="incafile" id="incafile" class="required" style="width: 95%;" accept=".csv,.tsv">
3963 20 May 16 olle 211           </td>
3963 20 May 16 olle 212           </tr>
3963 20 May 16 olle 213           </table>
3963 20 May 16 olle 214         </td>
3963 20 May 16 olle 215         <td class="status" id="incafile.status"></td>
3963 20 May 16 olle 216         <td class="help"><span id="incafile.message" class="message"></span>
3963 20 May 16 olle 217           Select INCA file to be used for INCA statistics. The file should be a text file in tab-separated format, where the first line contains column names.
3963 20 May 16 olle 218         </td>
3963 20 May 16 olle 219       </tr>
3963 20 May 16 olle 220       </table>
3963 20 May 16 olle 221     </div>
3963 20 May 16 olle 222   </div>
3963 20 May 16 olle 223
3963 20 May 16 olle 224   <div class="step" id="step-2">
3963 20 May 16 olle 225     <div class="step-no">2</div>
3963 20 May 16 olle 226     <div class="step-title">INCA file check</div>
3963 20 May 16 olle 227     <div class="step-content">
3963 20 May 16 olle 228
5287 08 Feb 19 nicklas 229       <table class="step-form" id="statisticscheck">
5287 08 Feb 19 nicklas 230       <tbody>
5287 08 Feb 19 nicklas 231         <tr>
5287 08 Feb 19 nicklas 232           <td class="prompt">File</td>
5287 08 Feb 19 nicklas 233           <td class="input" id="filename"></td>
5287 08 Feb 19 nicklas 234           <td class="status" id="filename.status"></td>
5287 08 Feb 19 nicklas 235           <td class="help"></td>
5287 08 Feb 19 nicklas 236         </tr>
5287 08 Feb 19 nicklas 237         <tr>
5287 08 Feb 19 nicklas 238           <td class="prompt">Is follow-up file</td>
5287 08 Feb 19 nicklas 239           <td class="input" id="isFollowUp"></td>
5287 08 Feb 19 nicklas 240           <td class="status" id="isFollowUp.status"></td>
5287 08 Feb 19 nicklas 241           <td class="help">
5287 08 Feb 19 nicklas 242           </td>
5287 08 Feb 19 nicklas 243         </tr>
5287 08 Feb 19 nicklas 244         <tr>
5287 08 Feb 19 nicklas 245           <td class="prompt">Header columns</td>
5287 08 Feb 19 nicklas 246           <td class="input" id="headerCount"></td>
5287 08 Feb 19 nicklas 247           <td class="status" id="headerCount.status"></td>
5287 08 Feb 19 nicklas 248           <td class="help"></td>
5287 08 Feb 19 nicklas 249         </tr>
5287 08 Feb 19 nicklas 250       </tbody>
5287 08 Feb 19 nicklas 251       
5287 08 Feb 19 nicklas 252       <tbody class="info-section">
5287 08 Feb 19 nicklas 253         <tr>
5287 08 Feb 19 nicklas 254           <td class="prompt">Required but missing</td>
5287 08 Feb 19 nicklas 255           <td class="info" id="headerMissing"></td>
5287 08 Feb 19 nicklas 256           <td class="status" id="headerMissing.status"></td>
5287 08 Feb 19 nicklas 257           <td class="help"><span id="headerMissing.message"></span></td>
5287 08 Feb 19 nicklas 258         </tr>
5287 08 Feb 19 nicklas 259         <tr>
5288 08 Feb 19 nicklas 260           <td class="prompt">Missing INCA annotations</td>
5288 08 Feb 19 nicklas 261           <td class="info" id="headerMissingAnnotationTypes"></td>
5288 08 Feb 19 nicklas 262           <td class="status" id="headerMissingAnnotationTypes.status"></td>
5288 08 Feb 19 nicklas 263           <td class="help"><span id="headerMissingAnnotationTypes.message"></span></td>
5288 08 Feb 19 nicklas 264         </tr>
5288 08 Feb 19 nicklas 265         <tr>
5287 08 Feb 19 nicklas 266           <td class="prompt">Duplicates</td>
5287 08 Feb 19 nicklas 267           <td class="info" id="headerDuplicates"></td>
5287 08 Feb 19 nicklas 268           <td class="status" id="headerDuplicates.status"></td>
5287 08 Feb 19 nicklas 269           <td class="help"><span id="headerDuplicates.message"></span></td>
5287 08 Feb 19 nicklas 270         </tr>
5287 08 Feb 19 nicklas 271       </tbody>
5287 08 Feb 19 nicklas 272       <tbody>
5287 08 Feb 19 nicklas 273         <tr>
5287 08 Feb 19 nicklas 274           <td class="prompt">Data lines</td>
5287 08 Feb 19 nicklas 275           <td class="input" id="lineCount"></td>
5287 08 Feb 19 nicklas 276           <td class="status" id="lineCount.status"></td>
5287 08 Feb 19 nicklas 277           <td class="help"><span id="lineCount.message"></span></td>
5287 08 Feb 19 nicklas 278         </tr>
5287 08 Feb 19 nicklas 279       </tbody>
5287 08 Feb 19 nicklas 280       <tbody class="info-section">
5287 08 Feb 19 nicklas 281         <tr>
5287 08 Feb 19 nicklas 282           <td class="prompt">Lines that can be used</td>
5287 08 Feb 19 nicklas 283           <td class="input" id="statisticsLineCount"></td>
5287 08 Feb 19 nicklas 284           <td class="status" id="statisticsLineCount.status"></td>
5287 08 Feb 19 nicklas 285           <td class="help"><span id="statisticsLineCount.message"></span></td>
5287 08 Feb 19 nicklas 286         </tr>
5287 08 Feb 19 nicklas 287         <tr>
5287 08 Feb 19 nicklas 288           <td class="prompt">Excluded lines</td>
5287 08 Feb 19 nicklas 289           <td class="info" id="totalExcluded"></td>
5287 08 Feb 19 nicklas 290           <td class="status" id="totalExcluded.status"></td>
5287 08 Feb 19 nicklas 291           <td class="help"><span id="totalExcluded.message"></span></td>
5287 08 Feb 19 nicklas 292         </tr>
5287 08 Feb 19 nicklas 293         <tr id="tooManyColumns.row">
5287 08 Feb 19 nicklas 294           <td class="subprompt">- too many columns</td>
5287 08 Feb 19 nicklas 295           <td class="info" id="tooManyColumns"></td>
5287 08 Feb 19 nicklas 296           <td class="status" id="tooManyColumns.status"></td>
5287 08 Feb 19 nicklas 297           <td class="help"><span id="tooManyColumns.message"></span></td>
5287 08 Feb 19 nicklas 298         </tr>
5287 08 Feb 19 nicklas 299         <tr id="tooFewColumns.row">
5287 08 Feb 19 nicklas 300           <td class="subprompt">- too few columns</td>
5287 08 Feb 19 nicklas 301           <td class="info" id="tooFewColumns"></td>
5287 08 Feb 19 nicklas 302           <td class="status" id="tooFewColumns.status"></td>
5287 08 Feb 19 nicklas 303           <td class="help"><span id="tooFewColumns.message"></span></td>
5287 08 Feb 19 nicklas 304         </tr>
5287 08 Feb 19 nicklas 305         <tr id="missingLaterality.row">
5287 08 Feb 19 nicklas 306           <td class="subprompt">- missing or invalid laterality</td>
5287 08 Feb 19 nicklas 307           <td class="info" id="missingLaterality"></td>
5287 08 Feb 19 nicklas 308           <td class="status" id="missingLaterality.status"></td>
5287 08 Feb 19 nicklas 309           <td class="help"><span id="missingLaterality.message"></span></td>
5287 08 Feb 19 nicklas 310         </tr>
5287 08 Feb 19 nicklas 311         <tr id="duplicateLaterality.row">
5287 08 Feb 19 nicklas 312           <td class="subprompt">- duplicate laterality</td>
5287 08 Feb 19 nicklas 313           <td class="info" id="duplicateLaterality"></td>
5287 08 Feb 19 nicklas 314           <td class="status" id="duplicateLaterality.status"></td>
5287 08 Feb 19 nicklas 315           <td class="help"><span id="duplicateLaterality.message"></span></td>
5287 08 Feb 19 nicklas 316         </tr>
5287 08 Feb 19 nicklas 317         <tr id="invalidDataValue.row">
5287 08 Feb 19 nicklas 318           <td class="subprompt">- invalid data value</td>
5287 08 Feb 19 nicklas 319           <td class="info" id="invalidDataValue"></td>
5287 08 Feb 19 nicklas 320           <td class="status" id="invalidDataValue.status"></td>
5287 08 Feb 19 nicklas 321           <td class="help"><span id="invalidDataValue.message"></span></td>
5287 08 Feb 19 nicklas 322         </tr>
5288 08 Feb 19 nicklas 323         <tr id="filteredByDate.row">
5288 08 Feb 19 nicklas 324           <td class="subprompt">- filtered by date</td>
5288 08 Feb 19 nicklas 325           <td class="info" id="filteredByDate"></td>
5288 08 Feb 19 nicklas 326           <td class="status" id="filteredByDate.status"></td>
5288 08 Feb 19 nicklas 327           <td class="help"><span id="filteredByDate.message"></span></td>
5287 08 Feb 19 nicklas 328         </tr>
5288 08 Feb 19 nicklas 329         <tr id="filteredByCancerType.row">
5288 08 Feb 19 nicklas 330           <td class="subprompt">- filtered by cancer type</td>
5288 08 Feb 19 nicklas 331           <td class="info" id="filteredByCancerType"></td>
5288 08 Feb 19 nicklas 332           <td class="status" id="filteredByCancerType.status"></td>
5288 08 Feb 19 nicklas 333           <td class="help"><span id="filteredByCancerType.message"></span></td>
5287 08 Feb 19 nicklas 334         </tr>
5287 08 Feb 19 nicklas 335       </tbody>
5287 08 Feb 19 nicklas 336       </table>
3963 20 May 16 olle 337     </div>
3963 20 May 16 olle 338   </div>
3963 20 May 16 olle 339
3963 20 May 16 olle 340   <div id="wizard-status"></div>
3963 20 May 16 olle 341   <div id="wizard-progress"></div>
3963 20 May 16 olle 342
5292 12 Feb 19 nicklas 343   <table class="stat-table" id="stat-table" style="display: none;">
5292 12 Feb 19 nicklas 344     <tbody class="stat-header bg-filled-100">
5292 12 Feb 19 nicklas 345     <tr>
5292 12 Feb 19 nicklas 346       <td style="text-align:left;">Variable</td>
5292 12 Feb 19 nicklas 347       <td style="text-align:left;">Value</td>
5302 15 Feb 19 nicklas 348       <td style="text-align:center;" colspan="2">Total</td>
5302 15 Feb 19 nicklas 349       <td style="text-align:center;" class="fullstatistics" colspan="2">Accrued</td>
5302 15 Feb 19 nicklas 350       <td style="text-align:center;" colspan="2">Accrued</td>
5302 15 Feb 19 nicklas 351       <td style="text-align:center;" colspan="2">NotAccrued</td>
5292 12 Feb 19 nicklas 352     </tr>
5292 12 Feb 19 nicklas 353     <tr class="fullstatistics stat-sub-header">
5292 12 Feb 19 nicklas 354       <td></td>
5292 12 Feb 19 nicklas 355       <td></td>
5302 15 Feb 19 nicklas 356       <td style="text-align:center;" colspan="2"></td>
5302 15 Feb 19 nicklas 357       <td style="text-align:center;" colspan="2">specimen</td>
5302 15 Feb 19 nicklas 358       <td style="text-align:center;" colspan="2">no specimen</td>
5302 15 Feb 19 nicklas 359       <td style="text-align:center;" colspan="2"></td>
5292 12 Feb 19 nicklas 360     </tr>
5292 12 Feb 19 nicklas 361     </tbody>
5302 15 Feb 19 nicklas 362     <tbody id="stat-data" style="border-width: 1px;"></tbody>
5302 15 Feb 19 nicklas 363     <tbody>
5302 15 Feb 19 nicklas 364     <tr>
5302 15 Feb 19 nicklas 365       <td colspan="10" style="text-align: left;">Percentage values are not including N/A entries.</td>
5302 15 Feb 19 nicklas 366     </tr>
5302 15 Feb 19 nicklas 367     </tbody>
5292 12 Feb 19 nicklas 368   </table>
5292 12 Feb 19 nicklas 369
5287 08 Feb 19 nicklas 370   <div id="reportfiles" style="margin-left: 2em; margin-top: 0.5em;">
5287 08 Feb 19 nicklas 371     <base:icon id="downloadreportfile" style="display: none;" 
5287 08 Feb 19 nicklas 372       image="<%=home+"/images/download.png"%>"
5287 08 Feb 19 nicklas 373       data-report-type="statistics"
5287 08 Feb 19 nicklas 374       >Download report file</base:icon>
5287 08 Feb 19 nicklas 375     <base:icon id="downloadoutputfile" style="display: none;" 
5287 08 Feb 19 nicklas 376       image="<%=home+"/images/download.png"%>"
5287 08 Feb 19 nicklas 377       data-report-type="statistics_csv"
5287 08 Feb 19 nicklas 378       >Download output CSV file</base:icon>
5287 08 Feb 19 nicklas 379   </div>
3963 20 May 16 olle 380
3963 20 May 16 olle 381   <table class="navigation" id="navigation">
3963 20 May 16 olle 382   <tr>
3963 20 May 16 olle 383     <td><base:button id="gocancel" title="Cancel" /></td>
3963 20 May 16 olle 384     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
5292 12 Feb 19 nicklas 385     <td><base:button id="simplestatistics" title="Simple statistics" image="<%=home+"/images/gonext.png"%>" /></td>
5292 12 Feb 19 nicklas 386     <td><base:button id="fullstatistics" title="Full statistics" image="<%=home+"/images/gonext.png"%>" /></td>
3963 20 May 16 olle 387     <td id="gonext-message" class="message"></td>
3963 20 May 16 olle 388   </tr>
3963 20 May 16 olle 389   </table>
3963 20 May 16 olle 390   
5292 12 Feb 19 nicklas 391   <div id="explainFileCheck" class="messagecontainer note" style="margin-left: 2em; padding: 0.5em;width: 55em;">
5292 12 Feb 19 nicklas 392     <ul>
5292 12 Feb 19 nicklas 393     <li style="margin-bottom: 0.25em;"><b>Simple statistics</b>: Checks that the INCA data file is well formed, 
5292 12 Feb 19 nicklas 394       that required information is present and that data values are valid. Statistics is calculated based
5292 12 Feb 19 nicklas 395       only on the information that is in the file. This is typically very quick and 
5292 12 Feb 19 nicklas 396       should only take a few seconds to complete.
5292 12 Feb 19 nicklas 397     <li><b>Full statistics</b>: Statistics is calculated based on both information that is 
5292 12 Feb 19 nicklas 398       in the file and in the database. 
5292 12 Feb 19 nicklas 399     </ul>
5292 12 Feb 19 nicklas 400   </div>
5292 12 Feb 19 nicklas 401   
3963 20 May 16 olle 402   </form>
3963 20 May 16 olle 403   </div>
3963 20 May 16 olle 404   
3963 20 May 16 olle 405 </base:body>
3963 20 May 16 olle 406 </base:page>
3963 20 May 16 olle 407 <%
3963 20 May 16 olle 408 }
3963 20 May 16 olle 409 finally
3963 20 May 16 olle 410 {
3963 20 May 16 olle 411   if (dc != null) dc.close();
3963 20 May 16 olle 412 }
3963 20 May 16 olle 413 %>