extensions/net.sf.basedb.reggie/trunk/resources/sampleproc/partitionform.jsp

Code
Comments
Other
Rev Date Author Line
1403 11 Oct 11 martin 1 <%@ page
1403 11 Oct 11 martin 2   pageEncoding="UTF-8"
1403 11 Oct 11 martin 3   session="false"
1403 11 Oct 11 martin 4   import="net.sf.basedb.core.User"
1403 11 Oct 11 martin 5   import="net.sf.basedb.core.DbControl"
1403 11 Oct 11 martin 6   import="net.sf.basedb.core.SessionControl"
1538 21 Feb 12 nicklas 7   import="net.sf.basedb.core.Application"
2740 06 Oct 14 nicklas 8   import="net.sf.basedb.util.formatter.DateFormatter"
2740 06 Oct 14 nicklas 9   import="net.sf.basedb.util.formatter.Formatter"
1403 11 Oct 11 martin 10   import="net.sf.basedb.clients.web.Base"  
1538 21 Feb 12 nicklas 11   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2740 06 Oct 14 nicklas 12   import="java.util.Date"
1403 11 Oct 11 martin 13 %>
1403 11 Oct 11 martin 14 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1403 11 Oct 11 martin 15 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
1403 11 Oct 11 martin 16 <%
3976 26 May 16 nicklas 17 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
1403 11 Oct 11 martin 18 final String ID = sc.getId();
1403 11 Oct 11 martin 19 final float scale = Base.getScale(sc);
1538 21 Feb 12 nicklas 20 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
1403 11 Oct 11 martin 21 DbControl dc = null;
1403 11 Oct 11 martin 22 try
1403 11 Oct 11 martin 23 {
1403 11 Oct 11 martin 24   dc = sc.newDbControl();
1403 11 Oct 11 martin 25   final User user = User.getById(dc, sc.getLoggedInUserId());
2740 06 Oct 14 nicklas 26   final Formatter dateFormat = new DateFormatter("yyyyMMdd");
1403 11 Oct 11 martin 27 %>
1403 11 Oct 11 martin 28 <base:page type="default" >
2740 06 Oct 14 nicklas 29 <base:head 
2740 06 Oct 14 nicklas 30   scripts="~../reggie-2.js,~partitionform.js" 
2740 06 Oct 14 nicklas 31   styles="path.css,~../css/reggie-2.css"
2740 06 Oct 14 nicklas 32   >
1649 16 May 12 nicklas 33 <style>
1649 16 May 12 nicklas 34
1649 16 May 12 nicklas 35 #weightsTable
1649 16 May 12 nicklas 36 {
1649 16 May 12 nicklas 37   width: 100%; 
1649 16 May 12 nicklas 38   border-collapse: collapse;
1649 16 May 12 nicklas 39 }
1649 16 May 12 nicklas 40
1649 16 May 12 nicklas 41 #weightsTable th
1649 16 May 12 nicklas 42 {
1649 16 May 12 nicklas 43   padding-left: 2px;
1649 16 May 12 nicklas 44   padding-right: 2px;
1649 16 May 12 nicklas 45 }
1649 16 May 12 nicklas 46
1649 16 May 12 nicklas 47 #weightsTable td
1649 16 May 12 nicklas 48 {
1649 16 May 12 nicklas 49   text-align: center;
1659 21 May 12 nicklas 50   padding-top: 3px;
1659 21 May 12 nicklas 51   padding-bottom: 3px;
3170 06 Mar 15 nicklas 52   max-width: 30em;
3170 06 Mar 15 nicklas 53   overflow: hidden;
3170 06 Mar 15 nicklas 54   text-overflow: ellipsis;
1659 21 May 12 nicklas 55 }
1659 21 May 12 nicklas 56
1649 16 May 12 nicklas 57 #weightsTable td.help
1649 16 May 12 nicklas 58 {
1649 16 May 12 nicklas 59   text-align: left;
3170 06 Mar 15 nicklas 60   max-width: none;
1649 16 May 12 nicklas 61 }
2740 06 Oct 14 nicklas 62 #weightsTable .message
2740 06 Oct 14 nicklas 63 {
2740 06 Oct 14 nicklas 64   float: right;
2740 06 Oct 14 nicklas 65 }
3026 11 Dec 14 nicklas 66
6721 03 May 22 nicklas 67 #weightsTable .highlight
6721 03 May 22 nicklas 68 {
6721 03 May 22 nicklas 69   border-bottom-width: 1px;
6721 03 May 22 nicklas 70   border-bottom-color: transparent;
6721 03 May 22 nicklas 71 }
6721 03 May 22 nicklas 72
3149 26 Feb 15 nicklas 73 .old-location
3149 26 Feb 15 nicklas 74 {
3149 26 Feb 15 nicklas 75   color: #999999;
3149 26 Feb 15 nicklas 76   font-size: 80%;
3149 26 Feb 15 nicklas 77 }
3738 11 Feb 16 nicklas 78
5933 08 May 20 nicklas 79 .updated-location
5933 08 May 20 nicklas 80 {
5933 08 May 20 nicklas 81   background-color: #FFFF00;
5933 08 May 20 nicklas 82   font-weight: bold;
5933 08 May 20 nicklas 83   padding: 3px;
5933 08 May 20 nicklas 84   outline: 2px dashed #000;
5933 08 May 20 nicklas 85   display: inline-block;
5933 08 May 20 nicklas 86 }
5933 08 May 20 nicklas 87
1649 16 May 12 nicklas 88 </style>
1403 11 Oct 11 martin 89 </base:head>
2740 06 Oct 14 nicklas 90 <base:body>
1403 11 Oct 11 martin 91
1538 21 Feb 12 nicklas 92   <p:path><p:pathelement 
1915 21 Mar 13 nicklas 93     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
1538 21 Feb 12 nicklas 94     /><p:pathelement title="Partition registration" 
1538 21 Feb 12 nicklas 95     /></p:path>
1538 21 Feb 12 nicklas 96
1538 21 Feb 12 nicklas 97   <div class="content">
1403 11 Oct 11 martin 98
2740 06 Oct 14 nicklas 99   <form name="reggie" id="wizard" class="wizard">
1403 11 Oct 11 martin 100   
3145 25 Feb 15 nicklas 101   <div class="step auto-hide" id="step-1">
2740 06 Oct 14 nicklas 102     <div class="step-no">1</div>
3195 19 Mar 15 nicklas 103     <div class="step-title">Select specimen tubes<base:help helpid="net.sf.basedb.reggie.partition.1" /></div>
2740 06 Oct 14 nicklas 104     <div class="step-content">
2740 06 Oct 14 nicklas 105   
2740 06 Oct 14 nicklas 106       <table class="step-form">
3145 25 Feb 15 nicklas 107       <tr class="align-top" id="regularFlowRow">
5782 11 Dec 19 nicklas 108         <td class="prompt">Specimen tubes
5782 11 Dec 19 nicklas 109           <div style="font-weight: normal; padding-left: 0.5em;">• regular flow</div>
5782 11 Dec 19 nicklas 110         </td>
2740 06 Oct 14 nicklas 111         <td class="input">
3738 11 Feb 16 nicklas 112           <select name="specimentubes" id="specimentubes" multiple size="12" class="yellow-label-support"></select></td>
2740 06 Oct 14 nicklas 113         <td class="status" id="specimentubes.status"></td>
2740 06 Oct 14 nicklas 114         <td class="help">
2740 06 Oct 14 nicklas 115           <span id="specimentubes.message" class="message"></span>
2740 06 Oct 14 nicklas 116           Select specimen tubes to include in the partition.<br>
3738 11 Feb 16 nicklas 117           * = There is unsaved partitioning information for this tube<br>
3738 11 Feb 16 nicklas 118           <base:icon image="<%=home+"/images/yellow-label.png"%>" /> = YellowLabel specimen
1532 07 Feb 12 nicklas 119         </td>
1403 11 Oct 11 martin 120       </tr>
3145 25 Feb 15 nicklas 121       <tr class="align-top" id="reExtractionRow" style="display: none;">
5782 11 Dec 19 nicklas 122         <td class="prompt">Specimen tubes
5782 11 Dec 19 nicklas 123           <div style="font-weight: normal; padding-left: 0.5em;">
5782 11 Dec 19 nicklas 124           • re-extraction<br>
5782 11 Dec 19 nicklas 125           • paused<br>
5782 11 Dec 19 nicklas 126           • external
5782 11 Dec 19 nicklas 127           </div>
5782 11 Dec 19 nicklas 128         </td>
3145 25 Feb 15 nicklas 129         <td class="input">
3738 11 Feb 16 nicklas 130           <select name="reextraction" id="reextraction" multiple size="12" class="yellow-label-support"></select></td>
3145 25 Feb 15 nicklas 131         <td class="status" id="reextraction.status"></td>
3145 25 Feb 15 nicklas 132         <td class="help">
3145 25 Feb 15 nicklas 133           <span id="reextraction.message" class="message"></span>
3145 25 Feb 15 nicklas 134           Select specimen tubes to include in the partition.<br>
3145 25 Feb 15 nicklas 135           * = There is unsaved partitioning information for this tube
3145 25 Feb 15 nicklas 136         </td>
3145 25 Feb 15 nicklas 137       </tr>
1403 11 Oct 11 martin 138       </table>
2740 06 Oct 14 nicklas 139     </div>
2740 06 Oct 14 nicklas 140   </div>
1403 11 Oct 11 martin 141   
1403 11 Oct 11 martin 142   <!-- 2. General partition information -->
2740 06 Oct 14 nicklas 143   <div class="step" id="step-2">
2740 06 Oct 14 nicklas 144     <div class="step-no">2</div>
3195 19 Mar 15 nicklas 145     <div class="step-title">Weights and other partition information<base:help helpid="net.sf.basedb.reggie.partition.2" /></div>
2740 06 Oct 14 nicklas 146     <div class="step-content">
2740 06 Oct 14 nicklas 147     
2740 06 Oct 14 nicklas 148       <table class="step-form">
2740 06 Oct 14 nicklas 149       <tr>
2740 06 Oct 14 nicklas 150         <td class="prompt">Partition date</td>
2740 06 Oct 14 nicklas 151         <td class="input">
2740 06 Oct 14 nicklas 152           <input type="text" name="partitionDate" id="partitionDate"
2740 06 Oct 14 nicklas 153             data-disallow-future-date="1"
2740 06 Oct 14 nicklas 154             value="<%=dateFormat.format(new Date()) %>" 
2740 06 Oct 14 nicklas 155             class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="bloody.0"
2740 06 Oct 14 nicklas 156             style="width: 8em;" maxlength="10">
2740 06 Oct 14 nicklas 157             <base:icon 
2740 06 Oct 14 nicklas 158               id="partitionDateCalendar"
2740 06 Oct 14 nicklas 159               subclass="auto-init"
2740 06 Oct 14 nicklas 160               data-auto-init="calendar"
2740 06 Oct 14 nicklas 161               data-textarea-id="partitionDate"
2740 06 Oct 14 nicklas 162               data-date-format="yyyyMMdd"
2740 06 Oct 14 nicklas 163               data-title="Partition date"
2740 06 Oct 14 nicklas 164               image="calendar.png" 
2740 06 Oct 14 nicklas 165               tooltip="Select a date from a calendar" 
2740 06 Oct 14 nicklas 166               tabindex="-1"
2740 06 Oct 14 nicklas 167             />
2740 06 Oct 14 nicklas 168         </td>
2740 06 Oct 14 nicklas 169         <td class="status" id="partitionDate.status"></td>
2740 06 Oct 14 nicklas 170         <td class="help">
2740 06 Oct 14 nicklas 171           <span id="partitionDate.message" class="message"></span>
2740 06 Oct 14 nicklas 172           (YYYYMMDD or MMDD) The date when the partition was done.
2740 06 Oct 14 nicklas 173         </td>
2740 06 Oct 14 nicklas 174       </tr>
2740 06 Oct 14 nicklas 175       <tr>
2740 06 Oct 14 nicklas 176         <td class="prompt">Download label file</td>
2740 06 Oct 14 nicklas 177         <td class="input">
5813 22 Jan 20 nicklas 178           <label id="includeHisLabelsLbl"><input type="checkbox" name="includeHisLabels" checked
5813 22 Jan 20 nicklas 179             id="includeHisLabels">Include Histology labels</label><br>
3146 25 Feb 15 nicklas 180           <label id="includeAllHisLabelsLbl" style="display: none;"><input type="checkbox" name="includeAllHisLabels" 
3146 25 Feb 15 nicklas 181             id="includeAllHisLabels">Include Histology labels for re-extraction</label>
5299 14 Feb 19 nicklas 182           <div style="margin-top: 0.25em; margin-bottom: 0.5em;">
5299 14 Feb 19 nicklas 183           <base:icon subclass="link" id="downloadLabelsCsv" image="<%=home + "/images/download.png"%>" 
5299 14 Feb 19 nicklas 184             data-format="csv" title="Download labels as a tab-separated text file (csv)">CSV</base:icon>
5299 14 Feb 19 nicklas 185           <base:icon subclass="link" id="downloadLabelsXlsx" image="<%=home + "/images/download.png"%>" 
5299 14 Feb 19 nicklas 186             data-format="xlsx" title="Download lables as an Excel worksheet file (xlsx)">Excel</base:icon>
5813 22 Jan 20 nicklas 187           </div>
2740 06 Oct 14 nicklas 188         </td>
2740 06 Oct 14 nicklas 189         <td class="status" id="downloadfile.status"></td>
2740 06 Oct 14 nicklas 190         <td class="help">
2740 06 Oct 14 nicklas 191           <span id="downloadfile.message" class="message"></span>
5299 14 Feb 19 nicklas 192           Download label file for the selected tubes in either CSV or Excel format. 
5299 14 Feb 19 nicklas 193           Histology labels are normally not created for specimen that are re-extracted, 
5299 14 Feb 19 nicklas 194           but can be included by selecting the checkbox.
2740 06 Oct 14 nicklas 195         </td>
2740 06 Oct 14 nicklas 196       </tr>        
2740 06 Oct 14 nicklas 197       </table>
1649 16 May 12 nicklas 198         
3145 25 Feb 15 nicklas 199       <div class="bg-filled-50" style="padding: 4px; border-top-width: 1px; border-style: dotted;">
2740 06 Oct 14 nicklas 200         Use the table below to register appearance, weight and other properties for each specimen.
2740 06 Oct 14 nicklas 201         Normally, the <i>AllPrep</i> piece has highest priority and an <i>ApWeight</i> should always be given,
2740 06 Oct 14 nicklas 202         but 0 is allowed as a special case. The <i>Histology</i> piece is second in priority.
2740 06 Oct 14 nicklas 203         <br>
2740 06 Oct 14 nicklas 204         ¹ Check the box if multiple (Mult) specimen pieces are sampled for the AllPrep piece.
2740 06 Oct 14 nicklas 205       </div>
2740 06 Oct 14 nicklas 206       
2740 06 Oct 14 nicklas 207       <div id="weightInputs"></div>
2740 06 Oct 14 nicklas 208     </div>
2740 06 Oct 14 nicklas 209   </div>
1652 16 May 12 nicklas 210     
2740 06 Oct 14 nicklas 211   <div id="wizard-status"></div>
2740 06 Oct 14 nicklas 212
2740 06 Oct 14 nicklas 213   <table class="navigation" id="navigation">
2740 06 Oct 14 nicklas 214   <tr>
2740 06 Oct 14 nicklas 215     <td><base:button id="gocancel" title="Cancel" /></td>
2740 06 Oct 14 nicklas 216     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
3145 25 Feb 15 nicklas 217     <td><base:button id="goprint" title="Pick list&hellip;" image="<%=home+"/images/print.png"%>" /></td>
2740 06 Oct 14 nicklas 218     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
2740 06 Oct 14 nicklas 219     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
2740 06 Oct 14 nicklas 220     <td id="gonext-message" class="message"></td>
2740 06 Oct 14 nicklas 221   </tr>
2740 06 Oct 14 nicklas 222   </table>
1403 11 Oct 11 martin 223   
1403 11 Oct 11 martin 224   </form>
1538 21 Feb 12 nicklas 225   </div>
1403 11 Oct 11 martin 226   
1403 11 Oct 11 martin 227 </base:body>
1403 11 Oct 11 martin 228 </base:page>
1403 11 Oct 11 martin 229 <%
1403 11 Oct 11 martin 230 }
1403 11 Oct 11 martin 231 finally
1403 11 Oct 11 martin 232 {
1403 11 Oct 11 martin 233   if (dc != null) dc.close();
1403 11 Oct 11 martin 234 }
1403 11 Oct 11 martin 235 %>