extensions/net.sf.basedb.reggie/trunk/resources/personal/retraction_protocol2.jsp

Code
Comments
Other
Rev Date Author Line
2839 20 Oct 14 olle 1 <%@ page
2839 20 Oct 14 olle 2   pageEncoding="UTF-8"
2839 20 Oct 14 olle 3   session="false"
2839 20 Oct 14 olle 4   import="net.sf.basedb.core.User"
2839 20 Oct 14 olle 5   import="net.sf.basedb.core.DbControl"
2839 20 Oct 14 olle 6   import="net.sf.basedb.core.SessionControl"
2839 20 Oct 14 olle 7   import="net.sf.basedb.core.Application"
2839 20 Oct 14 olle 8   import="net.sf.basedb.core.Extract"
2839 20 Oct 14 olle 9   import="net.sf.basedb.core.BioMaterial"
2839 20 Oct 14 olle 10   import="net.sf.basedb.core.MeasuredBioMaterial"
2839 20 Oct 14 olle 11   import="net.sf.basedb.core.BioMaterialEventSource"
2839 20 Oct 14 olle 12   import="net.sf.basedb.core.BioPlate"
2839 20 Oct 14 olle 13   import="net.sf.basedb.core.BioWell"
2839 20 Oct 14 olle 14   import="net.sf.basedb.core.PermissionDeniedException"
2839 20 Oct 14 olle 15   import="net.sf.basedb.core.ItemQuery"
2839 20 Oct 14 olle 16   import="net.sf.basedb.core.query.Restrictions"
2839 20 Oct 14 olle 17   import="net.sf.basedb.core.query.Hql"
2839 20 Oct 14 olle 18   import="net.sf.basedb.util.Values"
2839 20 Oct 14 olle 19   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
2839 20 Oct 14 olle 20   import="net.sf.basedb.util.extensions.Extension"
2839 20 Oct 14 olle 21   import="net.sf.basedb.clients.web.Base"  
2839 20 Oct 14 olle 22   import="net.sf.basedb.clients.web.util.HTML"
2839 20 Oct 14 olle 23   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2839 20 Oct 14 olle 24   import="java.util.Arrays"
2839 20 Oct 14 olle 25   import="java.util.Enumeration"
2839 20 Oct 14 olle 26   import="java.util.Collections"
2839 20 Oct 14 olle 27 %>
2839 20 Oct 14 olle 28 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2839 20 Oct 14 olle 29 <%
3976 26 May 16 nicklas 30 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
2839 20 Oct 14 olle 31 final String ID = sc.getId();
2839 20 Oct 14 olle 32 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
2839 20 Oct 14 olle 33 final String root = request.getContextPath();
2839 20 Oct 14 olle 34 DbControl dc = null;
2839 20 Oct 14 olle 35 try
2839 20 Oct 14 olle 36 {
2839 20 Oct 14 olle 37   dc = sc.newDbControl();
2839 20 Oct 14 olle 38   final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie");
2839 20 Oct 14 olle 39   final User user = User.getById(dc, sc.getLoggedInUserId());
2839 20 Oct 14 olle 40
5639 03 Oct 19 nicklas 41   String caseName = Values.getStringOrNull(request.getParameter("caseName"));
5639 03 Oct 19 nicklas 42   int patientId = Values.getInt(request.getParameter("patientId"));
2839 20 Oct 14 olle 43 %>
3026 11 Dec 14 nicklas 44 <base:page id="protocol" type="iframe" favicon="<%=home+"/images/report.png"%>" noskin="true">
2839 20 Oct 14 olle 45 <base:head
2839 20 Oct 14 olle 46   scripts="~../reggie-2.js,~retraction_protocol.js" 
2839 20 Oct 14 olle 47   styles="~../css/reggie-2.css,~../css/printable.css"
2839 20 Oct 14 olle 48   >
2839 20 Oct 14 olle 49
2839 20 Oct 14 olle 50   <style>
2839 20 Oct 14 olle 51   h1
2839 20 Oct 14 olle 52   {
2839 20 Oct 14 olle 53     margin-top: 1em;
2839 20 Oct 14 olle 54   }
2839 20 Oct 14 olle 55   
2839 20 Oct 14 olle 56   h2
2839 20 Oct 14 olle 57   {
2839 20 Oct 14 olle 58     margin-bottom: 0;
2839 20 Oct 14 olle 59     font-size: 1.2em;
2839 20 Oct 14 olle 60   }
2839 20 Oct 14 olle 61   
2839 20 Oct 14 olle 62   table.protocolheader
2839 20 Oct 14 olle 63   {
2839 20 Oct 14 olle 64     width: 100%;
2839 20 Oct 14 olle 65     border: 1px solid #000000;
2839 20 Oct 14 olle 66     margin-bottom: 1em;
2839 20 Oct 14 olle 67     border-collapse: collapse;
2839 20 Oct 14 olle 68   }
2839 20 Oct 14 olle 69   
5639 03 Oct 19 nicklas 70   table.protocolheader tr
2839 20 Oct 14 olle 71   {
2839 20 Oct 14 olle 72     vertical-align: middle;
2839 20 Oct 14 olle 73     height: 2.5em;
2839 20 Oct 14 olle 74     max-height: 2.5em;
2839 20 Oct 14 olle 75   }
2839 20 Oct 14 olle 76
5639 03 Oct 19 nicklas 77   table.protocolheader th
2839 20 Oct 14 olle 78   {
2839 20 Oct 14 olle 79     text-align: left;
2839 20 Oct 14 olle 80     font-size: 1em;
2839 20 Oct 14 olle 81     background-color: #F0F0F0;
2839 20 Oct 14 olle 82     padding: 4px;
5639 03 Oct 19 nicklas 83     border: 1px solid #000000;
2839 20 Oct 14 olle 84   }
2839 20 Oct 14 olle 85
5639 03 Oct 19 nicklas 86   table.protocolheader th.subprompt
2839 20 Oct 14 olle 87   {
2839 20 Oct 14 olle 88     text-align: right;
2839 20 Oct 14 olle 89     font-weight: normal;
2839 20 Oct 14 olle 90   }
2839 20 Oct 14 olle 91
2839 20 Oct 14 olle 92   
5639 03 Oct 19 nicklas 93   table.protocolheader td
2839 20 Oct 14 olle 94   {
2839 20 Oct 14 olle 95     text-align: left;
2839 20 Oct 14 olle 96     font-size: 1em;
2839 20 Oct 14 olle 97     padding: 4px;
5639 03 Oct 19 nicklas 98     border: 1px solid #000000;
2839 20 Oct 14 olle 99   }
2839 20 Oct 14 olle 100   
6731 05 May 22 nicklas 101   .label
6731 05 May 22 nicklas 102   {
6731 05 May 22 nicklas 103     white-space: nowrap;
6731 05 May 22 nicklas 104   }
6731 05 May 22 nicklas 105   
6731 05 May 22 nicklas 106   .nolabels .label
6731 05 May 22 nicklas 107   {
6731 05 May 22 nicklas 108     display: none;
6731 05 May 22 nicklas 109   }
6731 05 May 22 nicklas 110   
2839 20 Oct 14 olle 111   .colorbox 
2839 20 Oct 14 olle 112   {
2839 20 Oct 14 olle 113     display: inline-block;
5639 03 Oct 19 nicklas 114     width: 0.85em; 
5639 03 Oct 19 nicklas 115     height: 0.85em; 
2839 20 Oct 14 olle 116     border: 1px solid #000000;
2839 20 Oct 14 olle 117     margin-left: 0em;
2839 20 Oct 14 olle 118     margin-right: 0.5em;
2839 20 Oct 14 olle 119   }
2839 20 Oct 14 olle 120   
5642 04 Oct 19 nicklas 121   tr.destroyed
5642 04 Oct 19 nicklas 122   {
5642 04 Oct 19 nicklas 123     color: #999999;
5642 04 Oct 19 nicklas 124     text-decoration: line-through;
5642 04 Oct 19 nicklas 125   }
5642 04 Oct 19 nicklas 126   
2839 20 Oct 14 olle 127   </style>
2839 20 Oct 14 olle 128 </base:head>
2839 20 Oct 14 olle 129 <base:body>
2839 20 Oct 14 olle 130   <div class="paper">
2839 20 Oct 14 olle 131   <form name="reggie" id="wizard">
2839 20 Oct 14 olle 132
2839 20 Oct 14 olle 133   <div id="page-data" class="datacontainer"
5639 03 Oct 19 nicklas 134     data-casename="<%=HTML.encodeTags(caseName)%>"
5639 03 Oct 19 nicklas 135     data-patient-id="<%=patientId%>"
2839 20 Oct 14 olle 136   ></div>
2839 20 Oct 14 olle 137   
2839 20 Oct 14 olle 138   <div id="wizard-status"></div>
2839 20 Oct 14 olle 139   
2839 20 Oct 14 olle 140   <div id="all-protocol" style="display: none;">
2839 20 Oct 14 olle 141
2839 20 Oct 14 olle 142   <div id="print-instructions" class="noprint fullwidth">
2970 24 Nov 14 nicklas 143     <base:button id="print-button" image="<%=home+"/images/print.png"%>" title="Print&hellip;" />
2970 24 Nov 14 nicklas 144     <span id="printNote">
2839 20 Oct 14 olle 145     <b>Note!</b> 
2839 20 Oct 14 olle 146     For better printing reduce margins to about <i>5mm</i> and set page orientation
2839 20 Oct 14 olle 147     to <i>portrait</i>.
2970 24 Nov 14 nicklas 148     </span>
2839 20 Oct 14 olle 149     <br clear="all">
2839 20 Oct 14 olle 150   </div>
2839 20 Oct 14 olle 151
2839 20 Oct 14 olle 152   <h1>Lab protocol for extract destruction at retracted consent <span class="reggie">Reggie <%=reggie.getAbout().getVersion() %></span></h1>
2839 20 Oct 14 olle 153
2839 20 Oct 14 olle 154   <h2>1. Source with retracted consent</h2>
2839 20 Oct 14 olle 155       
2839 20 Oct 14 olle 156   <table class="protocolheader">
5639 03 Oct 19 nicklas 157     <tr>
2839 20 Oct 14 olle 158       <th style="width: 15%;">Patient</th>
5639 03 Oct 19 nicklas 159       <td id="patient"></td>
2839 20 Oct 14 olle 160     </tr>
5639 03 Oct 19 nicklas 161     <tr>
2839 20 Oct 14 olle 162       <th style="width: 15%;">Case(s)</th>
5639 03 Oct 19 nicklas 163       <td id="allcases"></td>
2839 20 Oct 14 olle 164     </tr>
2839 20 Oct 14 olle 165   </table>
2839 20 Oct 14 olle 166
2839 20 Oct 14 olle 167   <h2>2. Samples/extracts to be destroyed</h2>
2839 20 Oct 14 olle 168
6731 05 May 22 nicklas 169   <table id="itemTable" class="protocolheader nolabels">
5639 03 Oct 19 nicklas 170     <thead>
5639 03 Oct 19 nicklas 171     <tr>
2839 20 Oct 14 olle 172       <th style="width: 10%;">Item type</th>
2839 20 Oct 14 olle 173       <th style="width: 10%;">Name</th>
6731 05 May 22 nicklas 174       <th style="width: 10%;" class="label">Label¹</th>
5639 03 Oct 19 nicklas 175       <th style="width: 15%;">Storage Box</th>
4114 19 Sep 16 nicklas 176       <th style="width: 50%;">Storage position</th>
4114 19 Sep 16 nicklas 177       <th style="width: 15%;">Result/Comment</th>
2839 20 Oct 14 olle 178     </tr>
5639 03 Oct 19 nicklas 179     </thead>
5639 03 Oct 19 nicklas 180     <tbody id="itemList"></tbody>
2839 20 Oct 14 olle 181   </table>
6731 05 May 22 nicklas 182   <div id="protocol-footer" style="display: none; margin-bottom: 1em;">
6731 05 May 22 nicklas 183     ¹ Some SCAN-B tubes have a non-standard label.
6731 05 May 22 nicklas 184   </div>
2839 20 Oct 14 olle 185
2839 20 Oct 14 olle 186   <h2>3. Lab representative certification</h2>
2839 20 Oct 14 olle 187       
2839 20 Oct 14 olle 188   <table class="protocolheader">
2839 20 Oct 14 olle 189     <tr>
2839 20 Oct 14 olle 190       <th style="width: 15%;">Date</th>
2839 20 Oct 14 olle 191       <td style="width: 85%;"></td>
2839 20 Oct 14 olle 192     </tr>
2839 20 Oct 14 olle 193     <tr>
2839 20 Oct 14 olle 194       <th style="width: 15%;">Name</th>
2839 20 Oct 14 olle 195       <td style="width: 85%;"></td>
2839 20 Oct 14 olle 196     </tr>
2839 20 Oct 14 olle 197
2839 20 Oct 14 olle 198     <tr>
2839 20 Oct 14 olle 199       <th style="width: 15%;">Signature</th>
2839 20 Oct 14 olle 200       <td style="width: 85%;"></td>
2839 20 Oct 14 olle 201     </tr>
2839 20 Oct 14 olle 202
2839 20 Oct 14 olle 203     <tr style="height: 10em; vertical-align: top;">
2839 20 Oct 14 olle 204       <th style="width: 15%;">Comments</th>
2839 20 Oct 14 olle 205       <td style="width: 85%;"></td>
2839 20 Oct 14 olle 206     </tr>
6731 05 May 22 nicklas 207   </table>
2839 20 Oct 14 olle 208       
2839 20 Oct 14 olle 209   </div>
2839 20 Oct 14 olle 210   </form>
2839 20 Oct 14 olle 211   </div>
2839 20 Oct 14 olle 212 </base:body>
2839 20 Oct 14 olle 213 </base:page>
2839 20 Oct 14 olle 214 <%
2839 20 Oct 14 olle 215 }
2839 20 Oct 14 olle 216 finally
2839 20 Oct 14 olle 217 {
2839 20 Oct 14 olle 218   if (dc != null) dc.close();
2839 20 Oct 14 olle 219 }
2839 20 Oct 14 olle 220 %>