extensions/net.sf.basedb.reggie/trunk/resources/mipsprep/flowcell_protocol2.jsp

Code
Comments
Other
Rev Date Author Line
5462 03 Jun 19 nicklas 1 <%@ page
5462 03 Jun 19 nicklas 2   pageEncoding="UTF-8"
5462 03 Jun 19 nicklas 3   session="false"
5462 03 Jun 19 nicklas 4   import="net.sf.basedb.core.User"
5462 03 Jun 19 nicklas 5   import="net.sf.basedb.core.DbControl"
5462 03 Jun 19 nicklas 6   import="net.sf.basedb.core.SessionControl"
5462 03 Jun 19 nicklas 7   import="net.sf.basedb.core.Application"
5462 03 Jun 19 nicklas 8   import="net.sf.basedb.core.Extract"
5462 03 Jun 19 nicklas 9   import="net.sf.basedb.core.BioMaterial"
5462 03 Jun 19 nicklas 10   import="net.sf.basedb.core.MeasuredBioMaterial"
5462 03 Jun 19 nicklas 11   import="net.sf.basedb.core.BioMaterialEventSource"
5462 03 Jun 19 nicklas 12   import="net.sf.basedb.core.BioPlate"
5462 03 Jun 19 nicklas 13   import="net.sf.basedb.core.BioWell"
5462 03 Jun 19 nicklas 14   import="net.sf.basedb.core.PermissionDeniedException"
5462 03 Jun 19 nicklas 15   import="net.sf.basedb.core.ItemQuery"
5462 03 Jun 19 nicklas 16   import="net.sf.basedb.core.query.Restrictions"
5462 03 Jun 19 nicklas 17   import="net.sf.basedb.core.query.Hql"
5462 03 Jun 19 nicklas 18   import="net.sf.basedb.util.Values"
5462 03 Jun 19 nicklas 19   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
5462 03 Jun 19 nicklas 20   import="net.sf.basedb.util.extensions.Extension"
5462 03 Jun 19 nicklas 21   import="net.sf.basedb.clients.web.Base"  
5462 03 Jun 19 nicklas 22   import="net.sf.basedb.clients.web.util.HTML"
5462 03 Jun 19 nicklas 23   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5462 03 Jun 19 nicklas 24   import="java.util.Arrays"
5462 03 Jun 19 nicklas 25 %>
5462 03 Jun 19 nicklas 26 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
5462 03 Jun 19 nicklas 27 <%
5462 03 Jun 19 nicklas 28 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
5462 03 Jun 19 nicklas 29 final String ID = sc.getId();
5462 03 Jun 19 nicklas 30 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
5462 03 Jun 19 nicklas 31 final String root = request.getContextPath();
5462 03 Jun 19 nicklas 32 DbControl dc = null;
5462 03 Jun 19 nicklas 33 try
5462 03 Jun 19 nicklas 34 {
5462 03 Jun 19 nicklas 35   dc = sc.newDbControl();
5462 03 Jun 19 nicklas 36   final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie");
5462 03 Jun 19 nicklas 37   final User user = User.getById(dc, sc.getLoggedInUserId());
5462 03 Jun 19 nicklas 38   
5462 03 Jun 19 nicklas 39   Integer[] flowCells = Values.getInt(request.getParameterValues("flowcells"));
5462 03 Jun 19 nicklas 40   
5462 03 Jun 19 nicklas 41 %>
5462 03 Jun 19 nicklas 42 <base:page id="protocol" type="iframe" favicon="<%=home+"/images/flowcell.png"%>" noskin="true">
5462 03 Jun 19 nicklas 43 <base:head
5462 03 Jun 19 nicklas 44   scripts="~../reggie-2.js,~flowcell_protocol.js" 
5462 03 Jun 19 nicklas 45   styles="~../css/reggie-2.css,~../css/printable.css"
5462 03 Jun 19 nicklas 46   >
5462 03 Jun 19 nicklas 47
5462 03 Jun 19 nicklas 48   <style>
5462 03 Jun 19 nicklas 49   h1
5462 03 Jun 19 nicklas 50   {
5462 03 Jun 19 nicklas 51     margin-top: 1em;
5462 03 Jun 19 nicklas 52   }
5462 03 Jun 19 nicklas 53   
5462 03 Jun 19 nicklas 54   h2
5462 03 Jun 19 nicklas 55   {
5462 03 Jun 19 nicklas 56     margin-bottom: 0;
5462 03 Jun 19 nicklas 57     font-size: 1.2em;
5462 03 Jun 19 nicklas 58   }
5462 03 Jun 19 nicklas 59   
5462 03 Jun 19 nicklas 60   table.protocolheader
5462 03 Jun 19 nicklas 61   {
5462 03 Jun 19 nicklas 62     width: 100%;
5462 03 Jun 19 nicklas 63     border: 1px solid #000000;
5462 03 Jun 19 nicklas 64     margin-bottom: 1em;
5462 03 Jun 19 nicklas 65     border-collapse: collapse;
5462 03 Jun 19 nicklas 66   }
5462 03 Jun 19 nicklas 67   
5462 03 Jun 19 nicklas 68   table.flowcell
5462 03 Jun 19 nicklas 69   {
5462 03 Jun 19 nicklas 70     min-height: 22em;
5462 03 Jun 19 nicklas 71     height: 22em;
5462 03 Jun 19 nicklas 72   }
5462 03 Jun 19 nicklas 73
5462 03 Jun 19 nicklas 74   table.protocolheader > tbody > tr
5462 03 Jun 19 nicklas 75   {
5462 03 Jun 19 nicklas 76     vertical-align: middle;
5462 03 Jun 19 nicklas 77     height: 2.5em;
5462 03 Jun 19 nicklas 78     max-height: 2.5em;
5462 03 Jun 19 nicklas 79     border-bottom: 1px solid #000000;
5462 03 Jun 19 nicklas 80     border-top: 1px solid #000000;
5462 03 Jun 19 nicklas 81   }
5462 03 Jun 19 nicklas 82
5462 03 Jun 19 nicklas 83   table.protocolheader > tbody > tr > th
5462 03 Jun 19 nicklas 84   {
5462 03 Jun 19 nicklas 85     text-align: left;
5462 03 Jun 19 nicklas 86     font-size: 1em;
5462 03 Jun 19 nicklas 87     background-color: #F0F0F0;
5462 03 Jun 19 nicklas 88     padding: 4px;
5462 03 Jun 19 nicklas 89     border-right: 1px solid #000000;
5462 03 Jun 19 nicklas 90   }
5462 03 Jun 19 nicklas 91
5462 03 Jun 19 nicklas 92   table.protocolheader > tbody > tr > th.subprompt
5462 03 Jun 19 nicklas 93   {
5462 03 Jun 19 nicklas 94     text-align: right;
5462 03 Jun 19 nicklas 95     font-weight: normal;
5462 03 Jun 19 nicklas 96   }
5462 03 Jun 19 nicklas 97
5462 03 Jun 19 nicklas 98   
5462 03 Jun 19 nicklas 99   table.protocolheader > tbody > tr > td
5462 03 Jun 19 nicklas 100   {
5462 03 Jun 19 nicklas 101     text-align: left;
5462 03 Jun 19 nicklas 102     font-size: 1em;
5462 03 Jun 19 nicklas 103     padding: 4px;
5462 03 Jun 19 nicklas 104   }
5462 03 Jun 19 nicklas 105   
5462 03 Jun 19 nicklas 106   .colorbox 
5462 03 Jun 19 nicklas 107   {
5462 03 Jun 19 nicklas 108     display: inline-block;
5462 03 Jun 19 nicklas 109     width: 0.75em; 
5462 03 Jun 19 nicklas 110     height: 0.75em; 
5462 03 Jun 19 nicklas 111     border: 1px solid #000000;
5462 03 Jun 19 nicklas 112     margin-left: 0em;
5462 03 Jun 19 nicklas 113     margin-right: 0.5em;
5462 03 Jun 19 nicklas 114   }
5462 03 Jun 19 nicklas 115   
5462 03 Jun 19 nicklas 116   .pools
5462 03 Jun 19 nicklas 117   {
5462 03 Jun 19 nicklas 118     width: 100%;
5462 03 Jun 19 nicklas 119     border-collapse: collapse;
5462 03 Jun 19 nicklas 120   }
5462 03 Jun 19 nicklas 121   
5462 03 Jun 19 nicklas 122   .pools tr
5462 03 Jun 19 nicklas 123   {
5462 03 Jun 19 nicklas 124     height: 2.5em;
5462 03 Jun 19 nicklas 125     border-bottom: 1px dotted #666666;
5462 03 Jun 19 nicklas 126   }
5462 03 Jun 19 nicklas 127
5462 03 Jun 19 nicklas 128   .pools tr:last-child
5462 03 Jun 19 nicklas 129   {
5462 03 Jun 19 nicklas 130     border-bottom: 0;
5462 03 Jun 19 nicklas 131   }
5462 03 Jun 19 nicklas 132   
5462 03 Jun 19 nicklas 133   .pools td, .pools th
5462 03 Jun 19 nicklas 134   {
5462 03 Jun 19 nicklas 135     text-align: left;
5462 03 Jun 19 nicklas 136     font-size: 1em;
5462 03 Jun 19 nicklas 137     padding: 2px;
5462 03 Jun 19 nicklas 138   }
5462 03 Jun 19 nicklas 139   
5462 03 Jun 19 nicklas 140   .pools th
5462 03 Jun 19 nicklas 141   {
5462 03 Jun 19 nicklas 142     background-color: #F0F0F0;
5462 03 Jun 19 nicklas 143     border-bottom: 1px solid #000000;
5462 03 Jun 19 nicklas 144   }
5462 03 Jun 19 nicklas 145   
5462 03 Jun 19 nicklas 146   .pools .lane-no
5462 03 Jun 19 nicklas 147   {
5462 03 Jun 19 nicklas 148     width: 5em;
5462 03 Jun 19 nicklas 149     text-align: center;
5462 03 Jun 19 nicklas 150   }
5462 03 Jun 19 nicklas 151   
5462 03 Jun 19 nicklas 152   .pools .pool-name
5462 03 Jun 19 nicklas 153   {
5462 03 Jun 19 nicklas 154     width: 8em;
5462 03 Jun 19 nicklas 155     text-align: center;
5462 03 Jun 19 nicklas 156   }
5462 03 Jun 19 nicklas 157   
5462 03 Jun 19 nicklas 158   .pool-legend
5462 03 Jun 19 nicklas 159   {
5462 03 Jun 19 nicklas 160     width: 8em;
5462 03 Jun 19 nicklas 161     text-align: center !important;
5462 03 Jun 19 nicklas 162   }
5462 03 Jun 19 nicklas 163   
5462 03 Jun 19 nicklas 164   .green
5462 03 Jun 19 nicklas 165   {
5462 03 Jun 19 nicklas 166     background-color: #D8F8D8;
5462 03 Jun 19 nicklas 167   }
5462 03 Jun 19 nicklas 168   .green.darker
5462 03 Jun 19 nicklas 169   {
5462 03 Jun 19 nicklas 170     background-color: #A0F8A0;
5462 03 Jun 19 nicklas 171   }
5462 03 Jun 19 nicklas 172   
5462 03 Jun 19 nicklas 173   .blue
5462 03 Jun 19 nicklas 174   {
5462 03 Jun 19 nicklas 175     background-color: #D8E8FF;
5462 03 Jun 19 nicklas 176   }
5462 03 Jun 19 nicklas 177   .blue.darker
5462 03 Jun 19 nicklas 178   {
5462 03 Jun 19 nicklas 179     background-color: #B8B8FF;
5462 03 Jun 19 nicklas 180   }
5462 03 Jun 19 nicklas 181   
5462 03 Jun 19 nicklas 182   .yellow
5462 03 Jun 19 nicklas 183   {
5462 03 Jun 19 nicklas 184     background-color: #FFFFD8;
5462 03 Jun 19 nicklas 185   }
5462 03 Jun 19 nicklas 186   .yellow.darker
5462 03 Jun 19 nicklas 187   {
5462 03 Jun 19 nicklas 188     background-color: #FFFFA0;
5462 03 Jun 19 nicklas 189   }
5462 03 Jun 19 nicklas 190   
5462 03 Jun 19 nicklas 191   .red
5462 03 Jun 19 nicklas 192   {
5462 03 Jun 19 nicklas 193     background-color: #FFC8C8;
5462 03 Jun 19 nicklas 194   }
5462 03 Jun 19 nicklas 195   .red.darker
5462 03 Jun 19 nicklas 196   {
5462 03 Jun 19 nicklas 197     background-color: #F8A0A0;
5462 03 Jun 19 nicklas 198   }
5462 03 Jun 19 nicklas 199   </style>
5462 03 Jun 19 nicklas 200 </base:head>
5462 03 Jun 19 nicklas 201 <base:body>
5462 03 Jun 19 nicklas 202   <div class="paper">
5462 03 Jun 19 nicklas 203   <form name="reggie" id="wizard">
5462 03 Jun 19 nicklas 204   
5462 03 Jun 19 nicklas 205   <div id="page-data" class="datacontainer"
5462 03 Jun 19 nicklas 206     data-flowcells="<%=Values.getString(Arrays.asList(flowCells), ",", true)%>"
5462 03 Jun 19 nicklas 207   ></div>
5462 03 Jun 19 nicklas 208   
5462 03 Jun 19 nicklas 209   <div id="wizard-status"></div>
5462 03 Jun 19 nicklas 210   
5462 03 Jun 19 nicklas 211   <div id="all-protocol" style="display: none;">
5462 03 Jun 19 nicklas 212
5462 03 Jun 19 nicklas 213   <div id="print-instructions" class="noprint fullwidth">
5462 03 Jun 19 nicklas 214     <base:button id="print-button" image="<%=home+"/images/print.png"%>" title="Print&hellip;" />
5462 03 Jun 19 nicklas 215     <span id="printNote">
5462 03 Jun 19 nicklas 216     <b>Note!</b> 
5462 03 Jun 19 nicklas 217     For better printing reduce margins to about <i>5mm</i> and set page orientation
5462 03 Jun 19 nicklas 218     to <i>portrait</i>.
5462 03 Jun 19 nicklas 219     </span>
5462 03 Jun 19 nicklas 220     <br clear="all">
5462 03 Jun 19 nicklas 221   </div>
5462 03 Jun 19 nicklas 222   <%
5462 03 Jun 19 nicklas 223   for (int fcNo = 0; fcNo < flowCells.length; ++fcNo)
5462 03 Jun 19 nicklas 224   {
5462 03 Jun 19 nicklas 225     if (fcNo > 0)
5462 03 Jun 19 nicklas 226     {
5462 03 Jun 19 nicklas 227       %>
5462 03 Jun 19 nicklas 228       <div class="pagebreak"></div>
5462 03 Jun 19 nicklas 229       <%
5462 03 Jun 19 nicklas 230     }
5462 03 Jun 19 nicklas 231     %>
5462 03 Jun 19 nicklas 232     <h1>Lab protocol for sequencing <span class="reggie">Reggie <%=reggie.getAbout().getVersion() %></span></h1>
5462 03 Jun 19 nicklas 233
5462 03 Jun 19 nicklas 234     <table class="protocolheader">
5462 03 Jun 19 nicklas 235     <tr id="all-pools-<%=fcNo%>">
5462 03 Jun 19 nicklas 236       <th style="width: 15%;">Used pools</th>
5462 03 Jun 19 nicklas 237     </tr>
5462 03 Jun 19 nicklas 238     </table>
5462 03 Jun 19 nicklas 239     
5462 03 Jun 19 nicklas 240     <table class="protocolheader flowcell">
5462 03 Jun 19 nicklas 241     <tr>
5462 03 Jun 19 nicklas 242       <th style="width: 20%;">Flow cell</th>
5462 03 Jun 19 nicklas 243       <td style="width: 40%;"><div id="flowCellName.<%=fcNo%>" >Flow cell name <%=fcNo%></div></td>
5462 03 Jun 19 nicklas 244       <td style="width: 30%; padding: 0; vertical-align: top; border-left: 1px solid #000000;" rowspan="9">
5462 03 Jun 19 nicklas 245         <table class="pools">
5462 03 Jun 19 nicklas 246         <tr>
5462 03 Jun 19 nicklas 247           <th class="lane-no">Lane</th>
5462 03 Jun 19 nicklas 248           <th class="pool-name">Pool name</th>
5462 03 Jun 19 nicklas 249           <th class="remarks">Remarks</th>
5462 03 Jun 19 nicklas 250         </tr>
5462 03 Jun 19 nicklas 251         <tbody id="pools.<%=fcNo%>"></tbody>
5462 03 Jun 19 nicklas 252         </table>
5462 03 Jun 19 nicklas 253       </td>
5462 03 Jun 19 nicklas 254     </tr>
5462 03 Jun 19 nicklas 255     <tr>
5462 03 Jun 19 nicklas 256       <th>Flow cell type</th>
5462 03 Jun 19 nicklas 257       <td id="flowCellType.<%=fcNo%>"></td>
5462 03 Jun 19 nicklas 258     </tr>
5462 03 Jun 19 nicklas 259     <tr>
5462 03 Jun 19 nicklas 260       <th>Flow cell ID</th>
5462 03 Jun 19 nicklas 261       <td id="flowCellId.<%=fcNo%>"></td>
5462 03 Jun 19 nicklas 262     </tr>
5462 03 Jun 19 nicklas 263
5462 03 Jun 19 nicklas 264     <tr>
5462 03 Jun 19 nicklas 265       <th>Start date</th>
5462 03 Jun 19 nicklas 266       <td></td>
5462 03 Jun 19 nicklas 267     </tr>
5462 03 Jun 19 nicklas 268     <tr>
5462 03 Jun 19 nicklas 269       <th>Operator</th>
5462 03 Jun 19 nicklas 270       <td></td>
5462 03 Jun 19 nicklas 271     </tr>
5462 03 Jun 19 nicklas 272
5462 03 Jun 19 nicklas 273     <tr>
5462 03 Jun 19 nicklas 274       <th>Sequencing machine</th>
5462 03 Jun 19 nicklas 275       <td></td>
5462 03 Jun 19 nicklas 276     </tr>
5462 03 Jun 19 nicklas 277     
5462 03 Jun 19 nicklas 278     <tr>
5462 03 Jun 19 nicklas 279       <th>Sequencer position</th>
5462 03 Jun 19 nicklas 280       <td><b><div class="colorbox"></div>A <span id="pos.b.<%=fcNo%>"><div class="colorbox" style="margin-left: 2em;"></div>B</span></b></td>
5462 03 Jun 19 nicklas 281     </tr>
5462 03 Jun 19 nicklas 282     
5462 03 Jun 19 nicklas 283     <tr>
5462 03 Jun 19 nicklas 284       <th>Sequencing cycles</th>
5462 03 Jun 19 nicklas 285       <td><span id="sequencingCycles.<%=fcNo%>"></span> <span style="color: #999999;">(Read1−Index1−Index2−Read2)</span></td>
5462 03 Jun 19 nicklas 286     </tr>
5462 03 Jun 19 nicklas 287     
5462 03 Jun 19 nicklas 288     <tr>
5462 03 Jun 19 nicklas 289       <th>End date+time</th>
5462 03 Jun 19 nicklas 290       <td></td>
5462 03 Jun 19 nicklas 291     </tr>
5462 03 Jun 19 nicklas 292     
5462 03 Jun 19 nicklas 293     <tr style="height: 10em; vertical-align: top;">
5462 03 Jun 19 nicklas 294       <th>Comments</th>
5462 03 Jun 19 nicklas 295       <td id="flowCellDescription.<%=fcNo%>"></td>
5462 03 Jun 19 nicklas 296     </tr>
5462 03 Jun 19 nicklas 297     </table>
5462 03 Jun 19 nicklas 298     
5462 03 Jun 19 nicklas 299     <%
5462 03 Jun 19 nicklas 300   }
5462 03 Jun 19 nicklas 301   %>
5462 03 Jun 19 nicklas 302   </div>
5462 03 Jun 19 nicklas 303   </form>
5462 03 Jun 19 nicklas 304   </div>
5462 03 Jun 19 nicklas 305 </base:body>
5462 03 Jun 19 nicklas 306 </base:page>
5462 03 Jun 19 nicklas 307 <%
5462 03 Jun 19 nicklas 308 }
5462 03 Jun 19 nicklas 309 finally
5462 03 Jun 19 nicklas 310 {
5462 03 Jun 19 nicklas 311   if (dc != null) dc.close();
5462 03 Jun 19 nicklas 312 }
5462 03 Jun 19 nicklas 313 %>