extensions/net.sf.basedb.reggie/trunk/resources/libprep/mrna_protocol2.jsp

Code
Comments
Other
Rev Date Author Line
1745 27 Nov 12 nicklas 1 <%@ page
1745 27 Nov 12 nicklas 2   pageEncoding="UTF-8"
1745 27 Nov 12 nicklas 3   session="false"
1745 27 Nov 12 nicklas 4   import="net.sf.basedb.core.User"
1745 27 Nov 12 nicklas 5   import="net.sf.basedb.core.DbControl"
1745 27 Nov 12 nicklas 6   import="net.sf.basedb.core.SessionControl"
1745 27 Nov 12 nicklas 7   import="net.sf.basedb.core.Application"
1745 27 Nov 12 nicklas 8   import="net.sf.basedb.core.Extract"
1745 27 Nov 12 nicklas 9   import="net.sf.basedb.core.BioMaterial"
1745 27 Nov 12 nicklas 10   import="net.sf.basedb.core.MeasuredBioMaterial"
1745 27 Nov 12 nicklas 11   import="net.sf.basedb.core.BioMaterialEventSource"
1745 27 Nov 12 nicklas 12   import="net.sf.basedb.core.BioPlate"
1745 27 Nov 12 nicklas 13   import="net.sf.basedb.core.BioWell"
1745 27 Nov 12 nicklas 14   import="net.sf.basedb.core.PermissionDeniedException"
1745 27 Nov 12 nicklas 15   import="net.sf.basedb.core.ItemQuery"
1745 27 Nov 12 nicklas 16   import="net.sf.basedb.core.query.Restrictions"
1745 27 Nov 12 nicklas 17   import="net.sf.basedb.core.query.Hql"
1745 27 Nov 12 nicklas 18   import="net.sf.basedb.util.Values"
1745 27 Nov 12 nicklas 19   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
1745 27 Nov 12 nicklas 20   import="net.sf.basedb.util.extensions.Extension"
1745 27 Nov 12 nicklas 21   import="net.sf.basedb.clients.web.Base"  
1745 27 Nov 12 nicklas 22   import="net.sf.basedb.clients.web.util.HTML"
1745 27 Nov 12 nicklas 23   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
1745 27 Nov 12 nicklas 24   import="java.util.List"
1745 27 Nov 12 nicklas 25   import="java.util.ArrayList"
1745 27 Nov 12 nicklas 26 %>
2668 15 Sep 14 nicklas 27 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1745 27 Nov 12 nicklas 28 <%
3976 26 May 16 nicklas 29 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
1745 27 Nov 12 nicklas 30 final String ID = sc.getId();
1745 27 Nov 12 nicklas 31 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
1745 27 Nov 12 nicklas 32 final String root = request.getContextPath();
1745 27 Nov 12 nicklas 33 DbControl dc = null;
1745 27 Nov 12 nicklas 34 try
1745 27 Nov 12 nicklas 35 {
1745 27 Nov 12 nicklas 36   dc = sc.newDbControl();
1745 27 Nov 12 nicklas 37   final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie");
1745 27 Nov 12 nicklas 38   final User user = User.getById(dc, sc.getLoggedInUserId());
1745 27 Nov 12 nicklas 39   int mRnaPlateId = Values.getInt(request.getParameter("bioplate"));
1794 18 Dec 12 nicklas 40   final Float stratageneConc = Values.getFloat(request.getParameter("stratageneConc"), null);
1807 23 Jan 13 nicklas 41   String poolSchema = request.getParameter("poolSchema");
1745 27 Nov 12 nicklas 42   
1745 27 Nov 12 nicklas 43   BioPlate plate = BioPlate.getById(dc, mRnaPlateId);
1793 18 Dec 12 nicklas 44   int columns = plate.getColumns();
1793 18 Dec 12 nicklas 45   int rows = plate.getRows();
1745 27 Nov 12 nicklas 46   String view = Values.getString(request.getParameter("view"), "list");
2668 15 Sep 14 nicklas 47   String title = "Lab protocol for " + HTML.encodeTags(plate.getName()) + " - " + (view.equals("list") ? "list" : "table");
1745 27 Nov 12 nicklas 48 %>
3026 11 Dec 14 nicklas 49 <base:page id="protocol" type="iframe" favicon="<%=home+"/images/pipette.png"%>" title="<%=title%>" noskin="true">
2668 15 Sep 14 nicklas 50 <base:head
2668 15 Sep 14 nicklas 51   scripts="~../reggie-2.js,~pools.js,~plate.js,~mrna_protocol.js" 
2668 15 Sep 14 nicklas 52   styles="~../css/reggie-2.css,~../css/printable.css,~../css/plate.css"
2668 15 Sep 14 nicklas 53   >
1745 27 Nov 12 nicklas 54   <style>
1745 27 Nov 12 nicklas 55   table.protocolheader
1745 27 Nov 12 nicklas 56   {
1745 27 Nov 12 nicklas 57     width: 100%;
1996 28 May 13 nicklas 58     border: 1px solid #000000;
1996 28 May 13 nicklas 59     margin-bottom: 1em;
1996 28 May 13 nicklas 60     border-collapse: collapse;
1745 27 Nov 12 nicklas 61   }
1745 27 Nov 12 nicklas 62
1745 27 Nov 12 nicklas 63   table.protocolheader > tbody > tr
1745 27 Nov 12 nicklas 64   {
1996 28 May 13 nicklas 65     vertical-align: top;
1745 27 Nov 12 nicklas 66     height: 1.25em;
1745 27 Nov 12 nicklas 67   }
1745 27 Nov 12 nicklas 68
1745 27 Nov 12 nicklas 69   table.protocolheader > tbody > tr > th
1745 27 Nov 12 nicklas 70   {
1745 27 Nov 12 nicklas 71     text-align: left;
1745 27 Nov 12 nicklas 72     font-size: 1em;
1996 28 May 13 nicklas 73     background-color: #F0F0F0;
1996 28 May 13 nicklas 74     padding: 2px;
1745 27 Nov 12 nicklas 75   }
1745 27 Nov 12 nicklas 76   
1996 28 May 13 nicklas 77   table.protocolheader > tbody > tr > td
1996 28 May 13 nicklas 78   {
1996 28 May 13 nicklas 79     text-align: left;
1996 28 May 13 nicklas 80     font-size: 1em;
1996 28 May 13 nicklas 81     padding: 2px;
1996 28 May 13 nicklas 82   }
1996 28 May 13 nicklas 83   
1793 18 Dec 12 nicklas 84   #listview
1745 27 Nov 12 nicklas 85   {
1745 27 Nov 12 nicklas 86     width: 100%;
1745 27 Nov 12 nicklas 87     font-size: 85%;
1745 27 Nov 12 nicklas 88     border-collapse: collapse;
1745 27 Nov 12 nicklas 89     border: 1px solid #000000;
1745 27 Nov 12 nicklas 90   }
1745 27 Nov 12 nicklas 91   
1745 27 Nov 12 nicklas 92   #listview tr.evencol
1745 27 Nov 12 nicklas 93   {
1898 07 Mar 13 nicklas 94     background-color: #F0F0F0;
1745 27 Nov 12 nicklas 95   }
1745 27 Nov 12 nicklas 96   
1745 27 Nov 12 nicklas 97   #listview thead
1745 27 Nov 12 nicklas 98   {
1745 27 Nov 12 nicklas 99     border: 1px solid #000000;
1898 07 Mar 13 nicklas 100     background-color: #F0F0F0;
1745 27 Nov 12 nicklas 101   }
1745 27 Nov 12 nicklas 102   
1793 18 Dec 12 nicklas 103   #listview tbody
1793 18 Dec 12 nicklas 104   {
1793 18 Dec 12 nicklas 105     page-break-inside: avoid;
1793 18 Dec 12 nicklas 106     border-top: 1px solid #000000;
1793 18 Dec 12 nicklas 107     border-bottom: 1px solid #000000;
1793 18 Dec 12 nicklas 108   }
1793 18 Dec 12 nicklas 109   
1745 27 Nov 12 nicklas 110   #listview th
1745 27 Nov 12 nicklas 111   {
1745 27 Nov 12 nicklas 112     border-left: 1px solid #000000;
1745 27 Nov 12 nicklas 113   }
1745 27 Nov 12 nicklas 114   
1745 27 Nov 12 nicklas 115   #listview td
1745 27 Nov 12 nicklas 116   {
1745 27 Nov 12 nicklas 117     border-left: 1px solid #000000;
1745 27 Nov 12 nicklas 118     border-top: 1px dotted #666666;
1745 27 Nov 12 nicklas 119     vertical-align: middle;
3757 18 Feb 16 nicklas 120     padding: 1px;
1745 27 Nov 12 nicklas 121   }
1745 27 Nov 12 nicklas 122   
1793 18 Dec 12 nicklas 123   #listview .col-num
1793 18 Dec 12 nicklas 124   {
1793 18 Dec 12 nicklas 125     width: 1.75em;
1793 18 Dec 12 nicklas 126     text-align: center;
1793 18 Dec 12 nicklas 127     font-size: 125%;
1793 18 Dec 12 nicklas 128     font-weight: bold;
1793 18 Dec 12 nicklas 129     vertical-align: top;
1793 18 Dec 12 nicklas 130   }
1793 18 Dec 12 nicklas 131   
1745 27 Nov 12 nicklas 132   #listview .rna
1745 27 Nov 12 nicklas 133   {
3757 18 Feb 16 nicklas 134     width: 10em;
1793 18 Dec 12 nicklas 135     text-align: center;
3757 18 Feb 16 nicklas 136     white-space: nowrap;
1745 27 Nov 12 nicklas 137   }
1793 18 Dec 12 nicklas 138   
1793 18 Dec 12 nicklas 139   #listview .empty .rna
1793 18 Dec 12 nicklas 140   {
1793 18 Dec 12 nicklas 141     font-style: italic;
1793 18 Dec 12 nicklas 142     color: #666666;
1793 18 Dec 12 nicklas 143     text-align: center;
1793 18 Dec 12 nicklas 144   }
1793 18 Dec 12 nicklas 145   
1919 10 Apr 13 nicklas 146   .external .rna:before
1898 07 Mar 13 nicklas 147   {
1898 07 Mar 13 nicklas 148     content: '[';
1898 07 Mar 13 nicklas 149   }
1919 10 Apr 13 nicklas 150   .external .rna:after
1898 07 Mar 13 nicklas 151   {
1898 07 Mar 13 nicklas 152     content: ']';
1898 07 Mar 13 nicklas 153   }
1898 07 Mar 13 nicklas 154   
6727 05 May 22 nicklas 155   #listview .label
6727 05 May 22 nicklas 156   {
6727 05 May 22 nicklas 157     width: 10em;
6727 05 May 22 nicklas 158     text-align: center;
6727 05 May 22 nicklas 159     white-space: nowrap;
6727 05 May 22 nicklas 160   }
6727 05 May 22 nicklas 161   
1745 27 Nov 12 nicklas 162   #listview .box
1745 27 Nov 12 nicklas 163   {
1793 18 Dec 12 nicklas 164     width: 8em;
1745 27 Nov 12 nicklas 165     text-align: center;
6727 05 May 22 nicklas 166     white-space: nowrap;
1745 27 Nov 12 nicklas 167   }
1745 27 Nov 12 nicklas 168   #listview .workplate
1745 27 Nov 12 nicklas 169   {
1745 27 Nov 12 nicklas 170     width: 5em;
1745 27 Nov 12 nicklas 171     text-align: center;
1745 27 Nov 12 nicklas 172   }
6218 20 Apr 21 nicklas 173   #listview .conc
1745 27 Nov 12 nicklas 174   {
1745 27 Nov 12 nicklas 175     width: 4.5em;
1793 18 Dec 12 nicklas 176     padding-right: 0.5em;
1745 27 Nov 12 nicklas 177     text-align: right;
1745 27 Nov 12 nicklas 178   }
1745 27 Nov 12 nicklas 179   #listview .remain
1745 27 Nov 12 nicklas 180   {
1745 27 Nov 12 nicklas 181     width: 4.5em;
1793 18 Dec 12 nicklas 182     padding-right: 0.5em;
1745 27 Nov 12 nicklas 183     text-align: right;
1745 27 Nov 12 nicklas 184   }
1745 27 Nov 12 nicklas 185   #listview .volume
1745 27 Nov 12 nicklas 186   {
1745 27 Nov 12 nicklas 187     width: 3.5em;
1793 18 Dec 12 nicklas 188     padding-right: 0.5em;
1745 27 Nov 12 nicklas 189     text-align: right;
1745 27 Nov 12 nicklas 190     color: #C80000;
1745 27 Nov 12 nicklas 191   }
1745 27 Nov 12 nicklas 192   #listview .water
1745 27 Nov 12 nicklas 193   {
1745 27 Nov 12 nicklas 194     width: 3.5em;
1793 18 Dec 12 nicklas 195     padding-right: 0.5em;
1745 27 Nov 12 nicklas 196     text-align: right;
1745 27 Nov 12 nicklas 197     color: #0000C8;
1745 27 Nov 12 nicklas 198   }
1745 27 Nov 12 nicklas 199   #listview .remarks
1745 27 Nov 12 nicklas 200   {
1745 27 Nov 12 nicklas 201     vertical-align: top;
1745 27 Nov 12 nicklas 202     padding-left: 0.25em;
1745 27 Nov 12 nicklas 203   }
1745 27 Nov 12 nicklas 204   
6727 05 May 22 nicklas 205   .nolabels .label
6727 05 May 22 nicklas 206   {
6727 05 May 22 nicklas 207     display: none;
6727 05 May 22 nicklas 208   }
6727 05 May 22 nicklas 209   
1814 30 Jan 13 nicklas 210   /* Divide the 12 wells across the full page */
1745 27 Nov 12 nicklas 211   #plateview .well
1745 27 Nov 12 nicklas 212   {
1745 27 Nov 12 nicklas 213     width: 8.2%;
1745 27 Nov 12 nicklas 214     max-width: 8.2%;
1745 27 Nov 12 nicklas 215     min-width: 8.2%;
1919 10 Apr 13 nicklas 216     background-color: #FFFFFF;
1919 10 Apr 13 nicklas 217     padding: 4px;
1745 27 Nov 12 nicklas 218   }
1919 10 Apr 13 nicklas 219   
1919 10 Apr 13 nicklas 220   #plateview .well:hover
1919 10 Apr 13 nicklas 221   {
1919 10 Apr 13 nicklas 222     padding: 3px;
1919 10 Apr 13 nicklas 223   }
1745 27 Nov 12 nicklas 224     
1745 27 Nov 12 nicklas 225   #plateview .rowheader
1745 27 Nov 12 nicklas 226   {
1745 27 Nov 12 nicklas 227     width: 2em;
1745 27 Nov 12 nicklas 228   }
1745 27 Nov 12 nicklas 229   
1745 27 Nov 12 nicklas 230   #plateview .rna
1745 27 Nov 12 nicklas 231   {
1745 27 Nov 12 nicklas 232     font-weight: bold;
1919 10 Apr 13 nicklas 233     margin-bottom: 0.25em;
1745 27 Nov 12 nicklas 234   }
1919 10 Apr 13 nicklas 235   #plateview .box
1919 10 Apr 13 nicklas 236   {
1919 10 Apr 13 nicklas 237     margin-bottom: 0.25em;
1919 10 Apr 13 nicklas 238   }
6218 20 Apr 21 nicklas 239   #plateview .conc
1745 27 Nov 12 nicklas 240   {
1745 27 Nov 12 nicklas 241     display: none;
1745 27 Nov 12 nicklas 242   }
1745 27 Nov 12 nicklas 243   #plateview .remain
1745 27 Nov 12 nicklas 244   {
1745 27 Nov 12 nicklas 245     display: none;
1745 27 Nov 12 nicklas 246   }
1745 27 Nov 12 nicklas 247   #plateview .volume
1745 27 Nov 12 nicklas 248   {
1745 27 Nov 12 nicklas 249     color: #C80000;
1745 27 Nov 12 nicklas 250   }
1745 27 Nov 12 nicklas 251   #plateview .water
1745 27 Nov 12 nicklas 252   {
1745 27 Nov 12 nicklas 253     color: #0000C8;
1919 10 Apr 13 nicklas 254     float: right;
1745 27 Nov 12 nicklas 255   }
1745 27 Nov 12 nicklas 256   #plateview .remarks
1745 27 Nov 12 nicklas 257   {
1745 27 Nov 12 nicklas 258     color: #C80000;
1745 27 Nov 12 nicklas 259     font-style: italic;
1745 27 Nov 12 nicklas 260   }
1745 27 Nov 12 nicklas 261   #plateview .qc
1745 27 Nov 12 nicklas 262   {
1745 27 Nov 12 nicklas 263     background-image: url('../images/mrnaqc.png');
1938 17 Apr 13 nicklas 264     background-position: 95% 25%;
1745 27 Nov 12 nicklas 265     background-repeat: no-repeat;
1745 27 Nov 12 nicklas 266   }
3757 18 Feb 16 nicklas 267   
3757 18 Feb 16 nicklas 268   #plateview .yellow-specimen .if-yellow
3757 18 Feb 16 nicklas 269   {
3757 18 Feb 16 nicklas 270     background-image: url('../images/yellow-label-small.png');
3757 18 Feb 16 nicklas 271     background-position: 1px 50%;
3757 18 Feb 16 nicklas 272     background-repeat: no-repeat;
3757 18 Feb 16 nicklas 273     /* Grow background without shifting text position veritcally, move to right to make room for icon*/
3757 18 Feb 16 nicklas 274     padding: 4px 4px 3px 14px;
3757 18 Feb 16 nicklas 275     margin: -4px -4px -1px -4px;
3757 18 Feb 16 nicklas 276   }
3757 18 Feb 16 nicklas 277   
3757 18 Feb 16 nicklas 278   
1745 27 Nov 12 nicklas 279   </style>
2668 15 Sep 14 nicklas 280 </base:head>
2668 15 Sep 14 nicklas 281 <base:body>
2668 15 Sep 14 nicklas 282
1793 18 Dec 12 nicklas 283   <div class="paper <%=view.equals("list") ? "" : "landscape"%>">
2668 15 Sep 14 nicklas 284
2668 15 Sep 14 nicklas 285   <form name="reggie" id="wizard">
2668 15 Sep 14 nicklas 286   
2668 15 Sep 14 nicklas 287   <div id="page-data" class="datacontainer"
2668 15 Sep 14 nicklas 288     data-view="<%=view%>"
2668 15 Sep 14 nicklas 289     data-mrna-plate="<%=mRnaPlateId %>"
2668 15 Sep 14 nicklas 290     data-stratagene-conc="<%=stratageneConc%>"
3757 18 Feb 16 nicklas 291     data-home-url="<%=home%>"
2668 15 Sep 14 nicklas 292   ></div>
2668 15 Sep 14 nicklas 293   
2668 15 Sep 14 nicklas 294   <div id="wizard-status"></div>
2668 15 Sep 14 nicklas 295
2668 15 Sep 14 nicklas 296   <div id="all-protocol" style="display: none;">
2668 15 Sep 14 nicklas 297   <div id="print-instructions" class="noprint fullwidth">
2970 24 Nov 14 nicklas 298     <base:button id="print-button" image="<%=home+"/images/print.png"%>" title="Print&hellip;" />
2970 24 Nov 14 nicklas 299     <span id="printNote">
1793 18 Dec 12 nicklas 300     <b>Note!</b> 
1793 18 Dec 12 nicklas 301     <%
1793 18 Dec 12 nicklas 302     if (view.equals("list"))
1793 18 Dec 12 nicklas 303     {
1793 18 Dec 12 nicklas 304       %>
1793 18 Dec 12 nicklas 305       For better printing reduce margins to about <i>5mm</i> and set page orientation
1793 18 Dec 12 nicklas 306       to <i>portrait</i>. To fit everything on a single page, scale down to <i>60-70%</i>.
1792 17 Dec 12 nicklas 307       <%
1793 18 Dec 12 nicklas 308     }
1793 18 Dec 12 nicklas 309     else
1793 18 Dec 12 nicklas 310     {
1792 17 Dec 12 nicklas 311       %>
1793 18 Dec 12 nicklas 312       For better printing reduce margins to about <i>5mm</i> and set page orientation
1793 18 Dec 12 nicklas 313       to <i>landscape</i>. The recommended scale is <i>100%</i>.
1793 18 Dec 12 nicklas 314       <%
1793 18 Dec 12 nicklas 315     }
1793 18 Dec 12 nicklas 316     %>
2970 24 Nov 14 nicklas 317     </span>
1793 18 Dec 12 nicklas 318     <br clear="all">
1745 27 Nov 12 nicklas 319   </div>
2668 15 Sep 14 nicklas 320
1745 27 Nov 12 nicklas 321   
1891 01 Mar 13 nicklas 322   <h1>Lab protocol for mRNA and cDNA preparation <span class="reggie">Reggie <%=reggie.getAbout().getVersion() %></span></h1>
1745 27 Nov 12 nicklas 323
1929 12 Apr 13 nicklas 324   <table style="width: 100%;" class="protocolheader">
1996 28 May 13 nicklas 325   <tr style="border-bottom: 1px solid #000000;">
1996 28 May 13 nicklas 326     <th style="width: 15%;">Work plate</th>
1996 28 May 13 nicklas 327     <td style="width: 30%; border-right: 1px solid #000000;"><%=HTML.encodeTags(plate.getName())%></td>
1996 28 May 13 nicklas 328     <th style="width: 15%;">mRNA</th>
1996 28 May 13 nicklas 329     <th style="width: 20%;">Date</th>
1996 28 May 13 nicklas 330     <th style="width: 20%;">Operator</th>
1745 27 Nov 12 nicklas 331   </tr>
1996 28 May 13 nicklas 332   <tr>
1996 28 May 13 nicklas 333     <td rowspan="5" colspan="2" style="width: 50%; border-right: 1px solid #000000;"><%=HTML.niceFormat(plate.getDescription()) %></td>
1996 28 May 13 nicklas 334     <td style="border-right: 1px solid #000000;">Dilution</td>
2509 16 Jun 14 nicklas 335     <td style="border-right: 1px solid #000000;" id="dilution-date"></td>
2509 16 Jun 14 nicklas 336     <td id="dilution-operator"></td>
1745 27 Nov 12 nicklas 337   </tr>
1996 28 May 13 nicklas 338   <tr style="border-top: 1px solid #CCCCCC;">
1996 28 May 13 nicklas 339     <td style="border-right: 1px solid #000000;">Purification</td>
1996 28 May 13 nicklas 340     <td style="border-right: 1px solid #000000;"></td>
1996 28 May 13 nicklas 341     <td></td>
1745 27 Nov 12 nicklas 342   </tr>
1996 28 May 13 nicklas 343   <tr style="border-top: 1px solid #CCCCCC;">
1996 28 May 13 nicklas 344     <td style="border-right: 1px solid #000000;">Fragmentation</td>
1996 28 May 13 nicklas 345     <td style="border-right: 1px solid #000000;"></td>
1996 28 May 13 nicklas 346     <td></td>
1996 28 May 13 nicklas 347   </tr>
1996 28 May 13 nicklas 348   <tr style="border-top: 1px solid #CCCCCC;">
1996 28 May 13 nicklas 349     <td style="border-right: 1px solid #000000;">Cleanup</td>
1996 28 May 13 nicklas 350     <td style="border-right: 1px solid #000000;"></td>
1996 28 May 13 nicklas 351     <td></td>
1996 28 May 13 nicklas 352   </tr>
1996 28 May 13 nicklas 353   <tr valign="top" style="border-top: 1px solid #000000;">
1996 28 May 13 nicklas 354     <th style="border-right: 1px solid #000000;">cDNA synth.</th>
1996 28 May 13 nicklas 355     <td style="border-right: 1px solid #000000;"></td>
1996 28 May 13 nicklas 356     <td></td>
1996 28 May 13 nicklas 357   </tr>
1745 27 Nov 12 nicklas 358   </table>
1745 27 Nov 12 nicklas 359
1745 27 Nov 12 nicklas 360   <%
1745 27 Nov 12 nicklas 361   if (view.equals("list"))
1745 27 Nov 12 nicklas 362   {
1745 27 Nov 12 nicklas 363     %>
6727 05 May 22 nicklas 364     <table style="width: 100%;" id="listview" class="nolabels">
1793 18 Dec 12 nicklas 365     <thead>
1793 18 Dec 12 nicklas 366       <tr class="toprow">
1793 18 Dec 12 nicklas 367         <th></th>
1793 18 Dec 12 nicklas 368         <th class="rna"></th>
6727 05 May 22 nicklas 369         <th class="label"></th>
1793 18 Dec 12 nicklas 370         <th class="box">Storage</th>
6218 20 Apr 21 nicklas 371         <th>Conc.</th>
1793 18 Dec 12 nicklas 372         <th>Remain</th>
1919 10 Apr 13 nicklas 373         <th class="workplate">Work</th>
1793 18 Dec 12 nicklas 374         <th colspan="2">Volume</th>
1793 18 Dec 12 nicklas 375         <th></th>
1793 18 Dec 12 nicklas 376       </tr>
1793 18 Dec 12 nicklas 377       <tr>
1793 18 Dec 12 nicklas 378         <th></th>
1793 18 Dec 12 nicklas 379         <th class="rna">RNA</th>
6727 05 May 22 nicklas 380         <th class="label">Label¹</th>
1793 18 Dec 12 nicklas 381         <th class="box">box</th>
1793 18 Dec 12 nicklas 382         <th>(ng/µl)</th>
1793 18 Dec 12 nicklas 383         <th>(µg)</th>
1919 10 Apr 13 nicklas 384         <th class="workplate">plate</th>
1793 18 Dec 12 nicklas 385         <th>(µl)</th>
1793 18 Dec 12 nicklas 386         <th>H<sub>2</sub>O</th>
1793 18 Dec 12 nicklas 387         <th>Remarks</th>
1793 18 Dec 12 nicklas 388       </tr>
1793 18 Dec 12 nicklas 389     </thead>
1745 27 Nov 12 nicklas 390     <%
1793 18 Dec 12 nicklas 391     WellCoordinateFormatter rowF = new WellCoordinateFormatter(true);
1793 18 Dec 12 nicklas 392     WellCoordinateFormatter colF = new WellCoordinateFormatter(false);
1793 18 Dec 12 nicklas 393     for (int c = 0; c < columns; ++c)
1793 18 Dec 12 nicklas 394     {
1793 18 Dec 12 nicklas 395       String rowClass = c % 2 == 0 ? "evencol" : "oddcol";
1793 18 Dec 12 nicklas 396       %>
1793 18 Dec 12 nicklas 397       <tbody>
1793 18 Dec 12 nicklas 398       <%
1793 18 Dec 12 nicklas 399       for (int r = 0; r < rows; ++r)
1793 18 Dec 12 nicklas 400       {
1793 18 Dec 12 nicklas 401         String idSuffix = c + "." + r;
1793 18 Dec 12 nicklas 402         %>
1793 18 Dec 12 nicklas 403         <tr class="<%=rowClass%> empty" id="row.<%=idSuffix%>">
1793 18 Dec 12 nicklas 404           <%
1793 18 Dec 12 nicklas 405           if (r == 0)
1793 18 Dec 12 nicklas 406           {
1793 18 Dec 12 nicklas 407             %>
1793 18 Dec 12 nicklas 408             <td class="col-num" rowspan="<%=rows%>"><%=c+1%></td>
1793 18 Dec 12 nicklas 409             <%
1793 18 Dec 12 nicklas 410           }
1793 18 Dec 12 nicklas 411           %>
3757 18 Feb 16 nicklas 412           <td class="rna if-yellow" id="rna.<%=idSuffix%>">empty</td>
6727 05 May 22 nicklas 413           <td class="label if-yellow" id="label.<%=idSuffix%>"></td>
1793 18 Dec 12 nicklas 414           <td class="box" id="box.<%=idSuffix%>"></td>
6218 20 Apr 21 nicklas 415           <td class="conc" id="conc.<%=idSuffix%>"></td>
1793 18 Dec 12 nicklas 416           <td class="remain" id="remain.<%=idSuffix%>"></td>
1919 10 Apr 13 nicklas 417           <td class="workplate"><%=rowF.format(r)+colF.format(c)%></td>
1793 18 Dec 12 nicklas 418           <td class="volume" id="volume.<%=idSuffix%>"></td>
1793 18 Dec 12 nicklas 419           <td class="water" id="water.<%=idSuffix%>"></td>
1793 18 Dec 12 nicklas 420           <td class="remarks" id="remarks.<%=idSuffix%>"></td>
1793 18 Dec 12 nicklas 421         </tr>
1793 18 Dec 12 nicklas 422         <%
1793 18 Dec 12 nicklas 423       }
1793 18 Dec 12 nicklas 424       %>
1793 18 Dec 12 nicklas 425       </tbody>
1793 18 Dec 12 nicklas 426       <%
1793 18 Dec 12 nicklas 427     }
1793 18 Dec 12 nicklas 428     %>
1793 18 Dec 12 nicklas 429     </table>
6727 05 May 22 nicklas 430     <div id="protocol-footer" style="display: none;">
6727 05 May 22 nicklas 431       ¹ Some SCAN-B tubes have a non-standard label.
6727 05 May 22 nicklas 432     </div>
1793 18 Dec 12 nicklas 433     <%
1745 27 Nov 12 nicklas 434   }
1745 27 Nov 12 nicklas 435   else
1745 27 Nov 12 nicklas 436   {
1745 27 Nov 12 nicklas 437     %>
2668 15 Sep 14 nicklas 438     <table class="plate" style="margin: 0em 0 0 0; width: 100%;" id="plateview">
1745 27 Nov 12 nicklas 439     <%
1745 27 Nov 12 nicklas 440     WellCoordinateFormatter rowF = new WellCoordinateFormatter(true);
1745 27 Nov 12 nicklas 441     WellCoordinateFormatter colF = new WellCoordinateFormatter(false);
1745 27 Nov 12 nicklas 442     %>
1745 27 Nov 12 nicklas 443     <tr class="header">
1745 27 Nov 12 nicklas 444       <th></th>
1745 27 Nov 12 nicklas 445       <%
1745 27 Nov 12 nicklas 446       for (int c = 0; c < columns; ++c)
1745 27 Nov 12 nicklas 447       {
1745 27 Nov 12 nicklas 448         %>
1802 16 Jan 13 nicklas 449         <th id="col.<%=c%>"><%=colF.format(c)%></th>
1745 27 Nov 12 nicklas 450         <%
1745 27 Nov 12 nicklas 451       }
1745 27 Nov 12 nicklas 452       %>
1745 27 Nov 12 nicklas 453     </tr>
1745 27 Nov 12 nicklas 454     <tbody>
1745 27 Nov 12 nicklas 455     <%
1745 27 Nov 12 nicklas 456     for (int r = 0; r < rows; ++r)
1745 27 Nov 12 nicklas 457     {
1745 27 Nov 12 nicklas 458       String row = rowF.format(r);
1745 27 Nov 12 nicklas 459       %>
1745 27 Nov 12 nicklas 460       <tr class="row-<%=r%>">
1745 27 Nov 12 nicklas 461         <th id="row.<%=r%>" class="rowheader"><%=row%></th>
1745 27 Nov 12 nicklas 462         <%
1745 27 Nov 12 nicklas 463         for (int c = 0; c < columns; ++c)
1745 27 Nov 12 nicklas 464         {
1745 27 Nov 12 nicklas 465           %>
1807 23 Jan 13 nicklas 466           <td class="well col-<%=c%>" id="well.<%=r%>.<%=c%>"></td>
1745 27 Nov 12 nicklas 467           <%
1745 27 Nov 12 nicklas 468         }
1745 27 Nov 12 nicklas 469         %>
1745 27 Nov 12 nicklas 470       </tr>
1745 27 Nov 12 nicklas 471       <%
1745 27 Nov 12 nicklas 472     }
1745 27 Nov 12 nicklas 473     %>
1745 27 Nov 12 nicklas 474     </tbody>
1807 23 Jan 13 nicklas 475     <tr id="pool-row">
3299 04 May 15 nicklas 476       <th colspan=<%=columns+1 %>>&nbsp;</th>
1745 27 Nov 12 nicklas 477     </tr>
1745 27 Nov 12 nicklas 478     </table>
1745 27 Nov 12 nicklas 479     <%
1745 27 Nov 12 nicklas 480   }
1745 27 Nov 12 nicklas 481   %>
6727 05 May 22 nicklas 482   Low quantity = The remaining quantity is too low for the RNA to be re-processed one more time
2668 15 Sep 14 nicklas 483 </div>
2668 15 Sep 14 nicklas 484 </form>
2668 15 Sep 14 nicklas 485 </div>
2668 15 Sep 14 nicklas 486   
2668 15 Sep 14 nicklas 487 </base:body>
2668 15 Sep 14 nicklas 488 </base:page>
1745 27 Nov 12 nicklas 489 <%
1745 27 Nov 12 nicklas 490 }
1745 27 Nov 12 nicklas 491 finally
1745 27 Nov 12 nicklas 492 {
1745 27 Nov 12 nicklas 493   if (dc != null) dc.close();
1745 27 Nov 12 nicklas 494 }
1745 27 Nov 12 nicklas 495 %>