extensions/net.sf.basedb.meludi/trunk/resources/reports/samplereportgenerator.jsp

Code
Comments
Other
Rev Date Author Line
2933 14 Nov 14 olle 1 <%@ page
2933 14 Nov 14 olle 2   pageEncoding="UTF-8"
2933 14 Nov 14 olle 3   session="false"
2933 14 Nov 14 olle 4   import="net.sf.basedb.core.User"
2933 14 Nov 14 olle 5   import="net.sf.basedb.core.DbControl"
2933 14 Nov 14 olle 6   import="net.sf.basedb.core.SessionControl"
2933 14 Nov 14 olle 7   import="net.sf.basedb.core.Application"
2933 14 Nov 14 olle 8   import="net.sf.basedb.clients.web.Base"  
2933 14 Nov 14 olle 9   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2933 14 Nov 14 olle 10 %>
2933 14 Nov 14 olle 11 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2933 14 Nov 14 olle 12 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
2933 14 Nov 14 olle 13 <%
2933 14 Nov 14 olle 14 final SessionControl sc = Base.getExistingSessionControl(request, true);
2933 14 Nov 14 olle 15 final String ID = sc.getId();
2933 14 Nov 14 olle 16 final float scale = Base.getScale(sc);
2933 14 Nov 14 olle 17 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.meludi");
2933 14 Nov 14 olle 18 DbControl dc = null;
2933 14 Nov 14 olle 19 try
2933 14 Nov 14 olle 20 {
2933 14 Nov 14 olle 21   dc = sc.newDbControl();
2933 14 Nov 14 olle 22   final User user = User.getById(dc, sc.getLoggedInUserId());
2933 14 Nov 14 olle 23   %>
2933 14 Nov 14 olle 24 <base:page type="default" >
2933 14 Nov 14 olle 25 <base:head 
2933 14 Nov 14 olle 26   scripts="~../meludi-2.js,~samplereportgenerator.js" 
2933 14 Nov 14 olle 27   styles="path.css,~../css/meludi-2.css,~../css/report.css"
2933 14 Nov 14 olle 28 />
2933 14 Nov 14 olle 29   <base:body>
2933 14 Nov 14 olle 30     <p:path><p:pathelement 
2933 14 Nov 14 olle 31       title="" href="<%="../index.jsp?ID="+ID%>" 
2933 14 Nov 14 olle 32       /><p:pathelement title="Sample source report" 
2933 14 Nov 14 olle 33       /></p:path>
2933 14 Nov 14 olle 34
2933 14 Nov 14 olle 35     <div class="content">
2933 14 Nov 14 olle 36     <form name="meludi" id="wizard" class="wizard">
2933 14 Nov 14 olle 37
2933 14 Nov 14 olle 38       <div class="step" id="step-1">
2933 14 Nov 14 olle 39         <div class="step-no">1</div>
2933 14 Nov 14 olle 40         <div class="step-title">Report type</div>
2933 14 Nov 14 olle 41         <div class="step-content">
2933 14 Nov 14 olle 42
2933 14 Nov 14 olle 43           <table class="step-form">
2933 14 Nov 14 olle 44           <tr>
2933 14 Nov 14 olle 45             <td class="prompt">Report</td>
2933 14 Nov 14 olle 46             <td class="input">
2933 14 Nov 14 olle 47               <select name="reporttype">
2933 14 Nov 14 olle 48                 <option value="samplecount" selected="yes">Sample count report</option>
2933 14 Nov 14 olle 49 <!--
2933 14 Nov 14 olle 50                 <option value="consentcount">Consent count report</option>
2933 14 Nov 14 olle 51 -->
2933 14 Nov 14 olle 52                 <option value="patientcount">Patient count report</option>
2933 14 Nov 14 olle 53                 <option value="overviewreport">Overview report</option>
2933 14 Nov 14 olle 54                 <option value="missingsampledatareport">Missing sample data report</option>
2933 14 Nov 14 olle 55               </select>
2933 14 Nov 14 olle 56             </td>
2933 14 Nov 14 olle 57             <td class="status" id="reporttype.status"></td>
2933 14 Nov 14 olle 58             <td class="help">
2933 14 Nov 14 olle 59               <span id="reporttype.message" class="message"></span>
2933 14 Nov 14 olle 60               Select which report to generate.
2933 14 Nov 14 olle 61             </td>
2933 14 Nov 14 olle 62           </tr>
2933 14 Nov 14 olle 63           </table>
2933 14 Nov 14 olle 64         </div>
2933 14 Nov 14 olle 65       </div>
2933 14 Nov 14 olle 66
2933 14 Nov 14 olle 67       <div class="step" id="step-2">
2933 14 Nov 14 olle 68         <div class="step-no">2</div>
2933 14 Nov 14 olle 69         <div class="step-title">Report parameters</div>
2933 14 Nov 14 olle 70         <div class="step-content">
2933 14 Nov 14 olle 71       
2933 14 Nov 14 olle 72           <table class="step-form">
2933 14 Nov 14 olle 73           <tr id="report-period">
2933 14 Nov 14 olle 74             <td class="prompt">Report period</td>
2933 14 Nov 14 olle 75             <td class="input">
2933 14 Nov 14 olle 76               From <input type="text" name="fromdate" id="fromdate" 
2933 14 Nov 14 olle 77                 style="width: 8em;" maxlength="8">&nbsp;
2933 14 Nov 14 olle 78               To <input type="text" name="todate" id="todate" 
2933 14 Nov 14 olle 79                 style="width: 8em;" maxlength="8">
2933 14 Nov 14 olle 80             </td>
2933 14 Nov 14 olle 81             <td class="status" id="period.status"></td>
2933 14 Nov 14 olle 82             <td class="help">
2933 14 Nov 14 olle 83               <span id="period.message" class="message"></span>
2933 14 Nov 14 olle 84               [YY]YYMMDD. Define which period the report should cover. Empty fields will include all data.
2933 14 Nov 14 olle 85             </td>
2933 14 Nov 14 olle 86           </tr>
2933 14 Nov 14 olle 87           <tr id="view-type">
2933 14 Nov 14 olle 88             <td class="prompt">View type</td>
2933 14 Nov 14 olle 89             <td class="input">
2933 14 Nov 14 olle 90               <select name="viewtype" id="viewtype">
2933 14 Nov 14 olle 91                 <option value="AUTO" selected="yes">Auto</option>
2933 14 Nov 14 olle 92                 <option value="WEEK">Week</option>
2933 14 Nov 14 olle 93                 <option value="MONTH">Month</option>
2933 14 Nov 14 olle 94                 <option value="QUARTER">Quarter</option>
2933 14 Nov 14 olle 95                 <option value="YEAR">Year</option>
2933 14 Nov 14 olle 96               </select>
2933 14 Nov 14 olle 97             </td>
2933 14 Nov 14 olle 98             <td class="status" id="viewtype.status"></td>
2933 14 Nov 14 olle 99             <td class="help">
2933 14 Nov 14 olle 100               <span id="viewtype.message" class="message"></span>
2933 14 Nov 14 olle 101               Auto will adjust the report depending on the size of the period.
2933 14 Nov 14 olle 102               <ul>
2933 14 Nov 14 olle 103                 <li>Period shorter than 3 months - items per week</li>
2933 14 Nov 14 olle 104                 <li>Period shorter than 13 months - items per month</li>
2933 14 Nov 14 olle 105                 <li>Period shorter than 3 years - items per quarter</li>
2933 14 Nov 14 olle 106                 <li>Period is 3 years or greater - items per year</li>
2933 14 Nov 14 olle 107               </ul>                 
2933 14 Nov 14 olle 108             </td>
2933 14 Nov 14 olle 109           </tr>
2933 14 Nov 14 olle 110           <tr id="projectfocus-filter">
2933 14 Nov 14 olle 111             <td class="prompt">Project focus filter</td>
2933 14 Nov 14 olle 112             <td class="input">
2933 14 Nov 14 olle 113               <select name="projectfocusfilter" id="projectfocusfilter">
2933 14 Nov 14 olle 114                 <option value="none" selected="yes">None</option>
2933 14 Nov 14 olle 115                 <option value="melanoma">Melanoma</option>
2933 14 Nov 14 olle 116                 <option value="lungcancer">Lung cancer</option>
3058 19 Dec 14 olle 117                 <option value="coloncancer">Colon cancer</option>
3139 16 Feb 15 olle 118                 <option value="GIST">GIST (Gastrointestinal stromal tumour)</option>
4196 31 Oct 16 olle 119                 <option value="breastcancer">Breast cancer</option>
2933 14 Nov 14 olle 120                 <option value="">unknown</option>
2933 14 Nov 14 olle 121               </select>
2933 14 Nov 14 olle 122             </td>
2933 14 Nov 14 olle 123             <td class="status" id="projectfocusfilter.status"></td>
2933 14 Nov 14 olle 124             <td class="help">
2933 14 Nov 14 olle 125               <span id="projectfocusfilter.message" class="message"></span>
2933 14 Nov 14 olle 126               Select project focus filter for report.
2933 14 Nov 14 olle 127             </td>
2933 14 Nov 14 olle 128           </tr>
2933 14 Nov 14 olle 129 <!--
2933 14 Nov 14 olle 130           <tr id="sample-type">
2933 14 Nov 14 olle 131             <td class="prompt">Sample type</td>
2933 14 Nov 14 olle 132             <td class="input">
2933 14 Nov 14 olle 133               <select name="sampletype" id="sampletype">
2933 14 Nov 14 olle 134                 <option value="specimen" selected="yes">Specimen</option>
2933 14 Nov 14 olle 135                 <option value="nospecimen">No specimen</option>
2933 14 Nov 14 olle 136                 <option value="blood">Blood</option>
2933 14 Nov 14 olle 137               </select>
2933 14 Nov 14 olle 138             </td>
2933 14 Nov 14 olle 139             <td class="status" id="sampletype.status"></td>
2933 14 Nov 14 olle 140             <td class="help">
2933 14 Nov 14 olle 141               <span id="sampletype.message" class="message"></span>
2933 14 Nov 14 olle 142               Select sample type for report.
2933 14 Nov 14 olle 143             </td>
2933 14 Nov 14 olle 144           </tr>
2933 14 Nov 14 olle 145           <tr id="table-alternatives">
2933 14 Nov 14 olle 146             <td class="prompt">Table alternatives</td>
2933 14 Nov 14 olle 147             <td class="input">
2933 14 Nov 14 olle 148               <select name="tablealternatives" id="tablealternatives">
2933 14 Nov 14 olle 149                 <option value="full_blood_sample_tables" selected="yes">9 tables with different blood sample choices</option>
2933 14 Nov 14 olle 150                 <option value="blood_sample_table_with_filter">1 table with optional blood sample filter</option>
2933 14 Nov 14 olle 151               </select>
2933 14 Nov 14 olle 152             </td>
2933 14 Nov 14 olle 153             <td class="status" id="tablealternatives.status"></td>
2933 14 Nov 14 olle 154             <td class="help">
2933 14 Nov 14 olle 155               <span id="tablealternatives.message" class="message"></span>
2933 14 Nov 14 olle 156               Select table alternative for report (only used if sample type = 'Blood').
2933 14 Nov 14 olle 157             </td>
2933 14 Nov 14 olle 158           </tr>
2933 14 Nov 14 olle 159           <tr id="blood-filter">
2933 14 Nov 14 olle 160             <td class="prompt">Blood sample filter</td>
2933 14 Nov 14 olle 161             <td class="input">
2933 14 Nov 14 olle 162               <select name="bloodsamplefilter" id="bloodsamplefilter">
2933 14 Nov 14 olle 163                 <option value="none" selected="yes">None</option>
2933 14 Nov 14 olle 164                 <option value="followup">Follow-up</option>
2933 14 Nov 14 olle 165                 <option value="notfollowup">Not follow-up</option>
2933 14 Nov 14 olle 166                 <option value="">unknown</option>
2933 14 Nov 14 olle 167                 <option value="PreNeo">PreNeo</option>
2933 14 Nov 14 olle 168                 <option value="PreOp">PreOp</option>
2933 14 Nov 14 olle 169                 <option value="FollowUp06">FollowUp06</option>
2933 14 Nov 14 olle 170                 <option value="FollowUp12">FollowUp12</option>
2933 14 Nov 14 olle 171                 <option value="FollowUp36">FollowUp36</option>
2933 14 Nov 14 olle 172               </select>
2933 14 Nov 14 olle 173             </td>
2933 14 Nov 14 olle 174             <td class="status" id="bloodsamplefilter.status"></td>
2933 14 Nov 14 olle 175             <td class="help">
2933 14 Nov 14 olle 176               <span id="bloodsamplefilter.message" class="message"></span>
2933 14 Nov 14 olle 177               Select blood sample filter for report (only used if sample type = 'Blood').
2933 14 Nov 14 olle 178             </td>
2933 14 Nov 14 olle 179           </tr>
2933 14 Nov 14 olle 180 -->
2933 14 Nov 14 olle 181           </table>
2933 14 Nov 14 olle 182         </div>
2933 14 Nov 14 olle 183       </div>
2933 14 Nov 14 olle 184       
2933 14 Nov 14 olle 185       <div class="step" id="step-3">
2933 14 Nov 14 olle 186         <div class="step-no">3</div>
2933 14 Nov 14 olle 187         <div class="step-title">Generated report
2933 14 Nov 14 olle 188           <span id="printButton" class="link"><img src="../images/print.png">Print version&hellip;</span>
2933 14 Nov 14 olle 189         </div>
2933 14 Nov 14 olle 190         <div class="step-content" id="step-3-content">
2933 14 Nov 14 olle 191           <div id="reportdiv"></div>
2933 14 Nov 14 olle 192         </div>
2933 14 Nov 14 olle 193       </div>
2933 14 Nov 14 olle 194       
2933 14 Nov 14 olle 195       
2933 14 Nov 14 olle 196     <div id="wizard-status"></div>
2933 14 Nov 14 olle 197
2933 14 Nov 14 olle 198     <table class="navigation" id="navigation">
2933 14 Nov 14 olle 199     <tr>
2933 14 Nov 14 olle 200       <td><base:button id="gocancel" title="Cancel" /></td>
2933 14 Nov 14 olle 201       <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
2933 14 Nov 14 olle 202       <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
2933 14 Nov 14 olle 203       <td><base:button id="gocreate" title="Generate" image="<%=home+"/images/gonext.png"%>" /></td>          
2933 14 Nov 14 olle 204       <td id="gonext-message" class="message"></td>
2933 14 Nov 14 olle 205     </tr>
2933 14 Nov 14 olle 206     </table>      
2933 14 Nov 14 olle 207
2933 14 Nov 14 olle 208     </form>
2933 14 Nov 14 olle 209     </div>
2933 14 Nov 14 olle 210   </base:body>
2933 14 Nov 14 olle 211   </base:page>
2933 14 Nov 14 olle 212   <%
2933 14 Nov 14 olle 213 }
2933 14 Nov 14 olle 214 finally
2933 14 Nov 14 olle 215 {
2933 14 Nov 14 olle 216   if (dc != null) dc.close();
2933 14 Nov 14 olle 217 }
2933 14 Nov 14 olle 218 %>