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

Code
Comments
Other
Rev Date Author Line
1668 25 May 12 nicklas 1 <%@ page
1668 25 May 12 nicklas 2   pageEncoding="UTF-8"
1668 25 May 12 nicklas 3   session="false"
1668 25 May 12 nicklas 4   import="net.sf.basedb.core.User"
1668 25 May 12 nicklas 5   import="net.sf.basedb.core.DbControl"
1668 25 May 12 nicklas 6   import="net.sf.basedb.core.SessionControl"
1668 25 May 12 nicklas 7   import="net.sf.basedb.core.Application"
1668 25 May 12 nicklas 8   import="net.sf.basedb.clients.web.Base"  
1668 25 May 12 nicklas 9   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
1668 25 May 12 nicklas 10   import="java.text.SimpleDateFormat"
1668 25 May 12 nicklas 11   import="java.util.Date"
1668 25 May 12 nicklas 12 %>
1668 25 May 12 nicklas 13 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1668 25 May 12 nicklas 14 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
1668 25 May 12 nicklas 15 <%
3976 26 May 16 nicklas 16 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
1668 25 May 12 nicklas 17 final String ID = sc.getId();
1668 25 May 12 nicklas 18 final float scale = Base.getScale(sc);
1668 25 May 12 nicklas 19 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
1668 25 May 12 nicklas 20 DbControl dc = null;
1668 25 May 12 nicklas 21 try
1668 25 May 12 nicklas 22 {
1668 25 May 12 nicklas 23   dc = sc.newDbControl();
1668 25 May 12 nicklas 24   final User user = User.getById(dc, sc.getLoggedInUserId());
1668 25 May 12 nicklas 25   final String today = new SimpleDateFormat("yyyyMMdd").format(new Date());
1668 25 May 12 nicklas 26 %>
1668 25 May 12 nicklas 27 <base:page type="default" >
2794 13 Oct 14 nicklas 28 <base:head 
2794 13 Oct 14 nicklas 29   scripts="~../reggie-2.js,~histology_glass.js" 
2794 13 Oct 14 nicklas 30   styles="path.css,~../css/reggie-2.css"
2794 13 Oct 14 nicklas 31   >
2794 13 Oct 14 nicklas 32 <style>
2794 13 Oct 14 nicklas 33   table#paraffinblock
1668 25 May 12 nicklas 34   {
2794 13 Oct 14 nicklas 35     margin: 0em 1em 1em 1em;
2794 13 Oct 14 nicklas 36     border: 1px solid #A0A0A0;
1668 25 May 12 nicklas 37   }
1686 04 Jun 12 nicklas 38   
2794 13 Oct 14 nicklas 39   table#paraffinblock > tbody > tr > td
1686 04 Jun 12 nicklas 40   {
2794 13 Oct 14 nicklas 41     width: 50%;
2794 13 Oct 14 nicklas 42     border: 1px solid #A0A0A0;
2794 13 Oct 14 nicklas 43     padding: 0.5em !important;
1686 04 Jun 12 nicklas 44   }
1668 25 May 12 nicklas 45
2794 13 Oct 14 nicklas 46   table#paraffinblock span.status
1668 25 May 12 nicklas 47   {
2794 13 Oct 14 nicklas 48     display: inline-block;
2794 13 Oct 14 nicklas 49     width: 20px;
2794 13 Oct 14 nicklas 50     height: 20px;
1668 25 May 12 nicklas 51   }
1668 25 May 12 nicklas 52   
2794 13 Oct 14 nicklas 53   table#paraffinblock .comment input
1668 25 May 12 nicklas 54   {
2794 13 Oct 14 nicklas 55     width: 95%;
1668 25 May 12 nicklas 56   }
1668 25 May 12 nicklas 57
1668 25 May 12 nicklas 58   #existingGlass img
1668 25 May 12 nicklas 59   {
1668 25 May 12 nicklas 60     float: left;
2794 13 Oct 14 nicklas 61     padding-right: 0.5em;
1668 25 May 12 nicklas 62   }
1668 25 May 12 nicklas 63
1694 08 Jun 12 nicklas 64   #glassTable
1694 08 Jun 12 nicklas 65   {
2794 13 Oct 14 nicklas 66     width: 56em; 
1694 08 Jun 12 nicklas 67     border-collapse: collapse;
1694 08 Jun 12 nicklas 68   }
1694 08 Jun 12 nicklas 69   
1694 08 Jun 12 nicklas 70   #glassTable th
1694 08 Jun 12 nicklas 71   {
1694 08 Jun 12 nicklas 72     padding-left: 2px;
1694 08 Jun 12 nicklas 73     padding-right: 2px;
1694 08 Jun 12 nicklas 74     text-align: left;
1694 08 Jun 12 nicklas 75   }
1694 08 Jun 12 nicklas 76   
1694 08 Jun 12 nicklas 77   #glassTable td
1694 08 Jun 12 nicklas 78   {
1694 08 Jun 12 nicklas 79     padding: 2px;
1694 08 Jun 12 nicklas 80   }
2244 21 Feb 14 nicklas 81   
1668 25 May 12 nicklas 82 </style>
1668 25 May 12 nicklas 83
1668 25 May 12 nicklas 84 </base:head>
2794 13 Oct 14 nicklas 85 <base:body>
1668 25 May 12 nicklas 86
1668 25 May 12 nicklas 87   <p:path><p:pathelement 
1915 21 Mar 13 nicklas 88     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
1668 25 May 12 nicklas 89     /><p:pathelement title="Register histology HE glass information" 
1668 25 May 12 nicklas 90     /></p:path>
1668 25 May 12 nicklas 91
1668 25 May 12 nicklas 92   <div class="content">
1668 25 May 12 nicklas 93
2794 13 Oct 14 nicklas 94   <form name="reggie" id="wizard" class="wizard">
2794 13 Oct 14 nicklas 95
2794 13 Oct 14 nicklas 96   <div class="step" id="step-1">
2794 13 Oct 14 nicklas 97     <div class="step-no">1</div>
2794 13 Oct 14 nicklas 98     <div class="step-title">Select paraffin block</div>
2794 13 Oct 14 nicklas 99     <div class="step-content">
1668 25 May 12 nicklas 100   
2794 13 Oct 14 nicklas 101       <table class="step-form">
2794 13 Oct 14 nicklas 102       <tr class="align-top">
1668 25 May 12 nicklas 103         <td class="prompt">Paraffin blocks</td>
2794 13 Oct 14 nicklas 104         <td class="input">
2794 13 Oct 14 nicklas 105           <select name="plates" id="plates" class="required"></select>
1668 25 May 12 nicklas 106         
1668 25 May 12 nicklas 107           <base:buttongroup style="margin-top: 0.5em;">
2794 13 Oct 14 nicklas 108             <base:button title="Select manually&hellip;" id="btnSelectParaffinBlock" />
1668 25 May 12 nicklas 109           </base:buttongroup>
1668 25 May 12 nicklas 110         </td>
1668 25 May 12 nicklas 111         <td class="status" id="plates.status"></td>
2794 13 Oct 14 nicklas 112         <td class="help">
2794 13 Oct 14 nicklas 113           <span id="plates.message" class="message"></span>
1668 25 May 12 nicklas 114           The list contain all paraffin blocks with no child HEglass plates.
1668 25 May 12 nicklas 115         </td>
1668 25 May 12 nicklas 116       </tr>
1668 25 May 12 nicklas 117       </table>
2794 13 Oct 14 nicklas 118     </div>
2794 13 Oct 14 nicklas 119   </div>
1668 25 May 12 nicklas 120   
2794 13 Oct 14 nicklas 121   <div class="step" id="step-2">
2794 13 Oct 14 nicklas 122     <div class="step-no">2</div>
2794 13 Oct 14 nicklas 123     <div class="step-title">Enter index of best stained samples</div>
2794 13 Oct 14 nicklas 124     <div class="step-content">
1668 25 May 12 nicklas 125   
2794 13 Oct 14 nicklas 126       <table class="step-form">
2794 13 Oct 14 nicklas 127       <tr>
2794 13 Oct 14 nicklas 128         <td class="prompt">Stain date</td>
2794 13 Oct 14 nicklas 129         <td class="input">
2794 13 Oct 14 nicklas 130           <input type="text" name="stainDate" id="stainDate"
2794 13 Oct 14 nicklas 131             class="auto-init" data-auto-init="focus-on-enter" data-next-focus="stainingProtocol"
2794 13 Oct 14 nicklas 132             style="width: 8em;" maxlength="10">
2794 13 Oct 14 nicklas 133             <base:icon 
2794 13 Oct 14 nicklas 134               id="stainDateCalendar"
2794 13 Oct 14 nicklas 135               subclass="auto-init"
2794 13 Oct 14 nicklas 136               data-auto-init="calendar"
2794 13 Oct 14 nicklas 137               data-textarea-id="stainDate"
2794 13 Oct 14 nicklas 138               data-date-format="yyyyMMdd"
2794 13 Oct 14 nicklas 139               data-title="Stain date"
2794 13 Oct 14 nicklas 140               image="calendar.png" 
2794 13 Oct 14 nicklas 141               tooltip="Select a date from a calendar" 
2794 13 Oct 14 nicklas 142               tabindex="-1"
2794 13 Oct 14 nicklas 143             />
2794 13 Oct 14 nicklas 144         </td>
2794 13 Oct 14 nicklas 145         <td class="status" id="stainDate.status"></td>
2794 13 Oct 14 nicklas 146         <td class="help">
2794 13 Oct 14 nicklas 147           <span id="stainDate.message" class="message" style="display: none;"></span>
2794 13 Oct 14 nicklas 148           (YYYYMMDD or MMDD)
2794 13 Oct 14 nicklas 149         </td>
2794 13 Oct 14 nicklas 150       </tr>
2794 13 Oct 14 nicklas 151       
2794 13 Oct 14 nicklas 152       <tr>
2794 13 Oct 14 nicklas 153         <td class="prompt">Protocol</td>
2794 13 Oct 14 nicklas 154         <td class="input">
2794 13 Oct 14 nicklas 155           <select name="stainingProtocol" id="stainingProtocol"></select>
2794 13 Oct 14 nicklas 156         </td>
2794 13 Oct 14 nicklas 157         <td class="status" id="stainingProtocol.status"></td>
2794 13 Oct 14 nicklas 158         <td class="help">
2794 13 Oct 14 nicklas 159           <span id="stainingProtocol.message" class="message"></span>
2794 13 Oct 14 nicklas 160           Select the protocol which was used for staining.
2794 13 Oct 14 nicklas 161         </td>
2794 13 Oct 14 nicklas 162       </tr>
2794 13 Oct 14 nicklas 163
2794 13 Oct 14 nicklas 164       <tr>
2794 13 Oct 14 nicklas 165         <td class="prompt">Paraffin block</td>
2794 13 Oct 14 nicklas 166         <td class="input"><span id="blockName"></span></td>
2794 13 Oct 14 nicklas 167         <td class="status" id="paraffinblock.status"></td>
2794 13 Oct 14 nicklas 168         <td class="help"></td>
2794 13 Oct 14 nicklas 169       </tr>
2794 13 Oct 14 nicklas 170       <tr class="align-top">
2794 13 Oct 14 nicklas 171         <td class="subprompt">- comment</td>
2794 13 Oct 14 nicklas 172         <td class="input"><textarea name="comment" id="comment" rows="2"></textarea></td>
2794 13 Oct 14 nicklas 173         <td class="status" id="comment.status"></td>
2794 13 Oct 14 nicklas 174         <td class="help">
2794 13 Oct 14 nicklas 175           <span id="comment.message" class="message"></span>        
2794 13 Oct 14 nicklas 176         </td>
2794 13 Oct 14 nicklas 177       </tr>
2794 13 Oct 14 nicklas 178       <tr>
3121 06 Feb 15 nicklas 179         <td class="prompt">Slides created</td>
2794 13 Oct 14 nicklas 180         <td class="input">
2794 13 Oct 14 nicklas 181           <input type="text" class="required" name="numberOfHEGlass" id="numberOfHEGlass"
3125 09 Feb 15 nicklas 182             value="3" style="width: 4em;">
2794 13 Oct 14 nicklas 183         </td>
2794 13 Oct 14 nicklas 184         <td class="status" id="numberOfHEGlass.status"></td>
2794 13 Oct 14 nicklas 185         <td class="help">
2794 13 Oct 14 nicklas 186           <span id="numberOfHEGlass.message" class="message"></span>
3126 10 Feb 15 nicklas 187           Enter the total number of glass slides, including HE and IHC slides, that has been created 
3126 10 Feb 15 nicklas 188           from the selected paraffin block.
2794 13 Oct 14 nicklas 189         </td>
2794 13 Oct 14 nicklas 190       </tr>
1668 25 May 12 nicklas 191         
2794 13 Oct 14 nicklas 192       <tr class="align-top">
2794 13 Oct 14 nicklas 193         <td colspan="2">
2794 13 Oct 14 nicklas 194         
2794 13 Oct 14 nicklas 195           <table class="step-form" id="paraffinblock">
2794 13 Oct 14 nicklas 196           <tr>
2794 13 Oct 14 nicklas 197             <td>
2794 13 Oct 14 nicklas 198               <b>3</b>: <span id="his.0.0"><i>empty</i></span>
6646 17 Mar 22 nicklas 199               <span id="input.0.0" style="display: none;">
2794 13 Oct 14 nicklas 200               <input type="text" name="idx.0.0" id="idx.0.0"
2794 13 Oct 14 nicklas 201                 class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="idx.1.0"
2794 13 Oct 14 nicklas 202                 style="width: 2em;">
2794 13 Oct 14 nicklas 203               <span id="idx.0.0.status" class="status">&nbsp;</span>
2794 13 Oct 14 nicklas 204               <div class="comment">
2794 13 Oct 14 nicklas 205                 <input type="text" name="comment.0.0" placeholder="Comments">
2794 13 Oct 14 nicklas 206               </div>
6646 17 Mar 22 nicklas 207               </span>
2794 13 Oct 14 nicklas 208             </td>
2794 13 Oct 14 nicklas 209             <td>
2794 13 Oct 14 nicklas 210             </td>
2794 13 Oct 14 nicklas 211           </tr>
2794 13 Oct 14 nicklas 212           <tr>
2794 13 Oct 14 nicklas 213             <td>
2794 13 Oct 14 nicklas 214               <b>2</b>: <span id="his.1.0"><i>empty</i></span>
6646 17 Mar 22 nicklas 215               <span id="input.1.0" style="display: none;">
2794 13 Oct 14 nicklas 216               <input type="text" name="idx.1.0" id="idx.1.0"
2794 13 Oct 14 nicklas 217                 class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="idx.1.1"
2794 13 Oct 14 nicklas 218                 style="width: 2em;">
2794 13 Oct 14 nicklas 219               <span id="idx.1.0.status" class="status">&nbsp;</span>
2794 13 Oct 14 nicklas 220               <div class="comment">
2794 13 Oct 14 nicklas 221                 <input type="text" name="comment.1.0" placeholder="Comments">
2794 13 Oct 14 nicklas 222               </div>
6646 17 Mar 22 nicklas 223               </span>
2794 13 Oct 14 nicklas 224             </td>
2794 13 Oct 14 nicklas 225             <td>
2794 13 Oct 14 nicklas 226               <b>5</b>: <span id="his.1.1"><i>empty</i></span>
6646 17 Mar 22 nicklas 227               <span id="input.1.1" style="display: none;">
2794 13 Oct 14 nicklas 228               <input type="text" name="idx.1.1" id="idx.1.1"
2794 13 Oct 14 nicklas 229                 class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="idx.2.0"
2794 13 Oct 14 nicklas 230                 style="width: 2em;">
2794 13 Oct 14 nicklas 231               <span id="idx.1.1.status" class="status">&nbsp;</span>
2794 13 Oct 14 nicklas 232               <div class="comment">
2794 13 Oct 14 nicklas 233                 <input type="text" name="comment.1.1" placeholder="Comments">
2794 13 Oct 14 nicklas 234               </div>
6646 17 Mar 22 nicklas 235               </span>
2794 13 Oct 14 nicklas 236             </td>
2794 13 Oct 14 nicklas 237           </tr>
2794 13 Oct 14 nicklas 238           <tr>
2794 13 Oct 14 nicklas 239             <td>
2794 13 Oct 14 nicklas 240               <b>1</b>: <span id="his.2.0"><i>empty</i></span>
6646 17 Mar 22 nicklas 241               <span id="input.2.0" style="display: none;">
2794 13 Oct 14 nicklas 242               <input type="text" name="idx.2.0" id="idx.2.0"
2794 13 Oct 14 nicklas 243                 class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="idx.2.1"
2794 13 Oct 14 nicklas 244                 style="width: 2em;">
2794 13 Oct 14 nicklas 245               <span id="idx.2.0.status" class="status">&nbsp;</span>
2794 13 Oct 14 nicklas 246               <div class="comment">
2794 13 Oct 14 nicklas 247                 <input type="text" name="comment.2.0" placeholder="Comments">
2794 13 Oct 14 nicklas 248               </div>
6646 17 Mar 22 nicklas 249               </span>
2794 13 Oct 14 nicklas 250             </td>
2794 13 Oct 14 nicklas 251             <td>
2794 13 Oct 14 nicklas 252               <b>4</b>: <span id="his.2.1"><i>empty</i></span>
6646 17 Mar 22 nicklas 253               <span id="input.2.1" style="display: none;">
2794 13 Oct 14 nicklas 254               <input type="text" name="idx.2.1" id="idx.2.1"
2794 13 Oct 14 nicklas 255                 class="required" style="width: 2em;">
2794 13 Oct 14 nicklas 256               <span id="idx.2.1.status" class="status">&nbsp;</span>
2794 13 Oct 14 nicklas 257               <div class="comment">
2794 13 Oct 14 nicklas 258                 <input type="text" name="comment.2.1" placeholder="Comments">
2794 13 Oct 14 nicklas 259               </div>
6646 17 Mar 22 nicklas 260               </span>
2794 13 Oct 14 nicklas 261             </td>
1668 25 May 12 nicklas 262             </tr>
2794 13 Oct 14 nicklas 263           </table>
2794 13 Oct 14 nicklas 264           
2794 13 Oct 14 nicklas 265           <div id="existingGlass" class="messagecontainer note" style="display:none;"></div>
1668 25 May 12 nicklas 266
2794 13 Oct 14 nicklas 267         </td>
2794 13 Oct 14 nicklas 268         <td class="status" id="index.status"></td>
2794 13 Oct 14 nicklas 269         <td class="help">
2794 13 Oct 14 nicklas 270           <span id="index.message" class="message"></span>
2794 13 Oct 14 nicklas 271           Enter the index number (starting at 1) of the HE glass that 
2794 13 Oct 14 nicklas 272           contains the best stain for each sample. Use <b>0</b> if there is no
3126 10 Feb 15 nicklas 273           good stain at all for a sample. All slides are created
2794 13 Oct 14 nicklas 274           with names HE<i>nnnnn</i>.1, HE<i>nnnnn</i>.2, etc. where <i>nnnnn</i> 
2794 13 Oct 14 nicklas 275           is the number from the paraffin block name.
2794 13 Oct 14 nicklas 276         </td>
2794 13 Oct 14 nicklas 277       </tr>
2794 13 Oct 14 nicklas 278       </table>
2794 13 Oct 14 nicklas 279     </div>
1668 25 May 12 nicklas 280   </div>
1668 25 May 12 nicklas 281   
2794 13 Oct 14 nicklas 282   <div class="step" id="step-3">
2794 13 Oct 14 nicklas 283     <div class="step-no">3</div>
2794 13 Oct 14 nicklas 284     <div class="step-title">Storage location for HE glass</div>
2794 13 Oct 14 nicklas 285     <div class="step-content">
2794 13 Oct 14 nicklas 286
2794 13 Oct 14 nicklas 287       <table class="step-form">
2794 13 Oct 14 nicklas 288       <tr valign="top">
2794 13 Oct 14 nicklas 289         <td class="input" tyle="width: 54em;">
2794 13 Oct 14 nicklas 290           <div id="glassBoxInput"></div>
2794 13 Oct 14 nicklas 291         </td>
2794 13 Oct 14 nicklas 292         <td class="help">
2794 13 Oct 14 nicklas 293           <span id="glassBox.message" class="message"></span>
3126 10 Feb 15 nicklas 294           Enter the box number/name and position in which the stained slides are stored.
3126 10 Feb 15 nicklas 295           <br>
3126 10 Feb 15 nicklas 296           ยน If staining with something else than HE, select that from the
3126 10 Feb 15 nicklas 297           IHC list. Only slides without any "best" stain can be selected.
2794 13 Oct 14 nicklas 298         </td>
2794 13 Oct 14 nicklas 299       </tr>
2794 13 Oct 14 nicklas 300       </table>
2794 13 Oct 14 nicklas 301     </div>
1694 08 Jun 12 nicklas 302   </div>
1694 08 Jun 12 nicklas 303   
2794 13 Oct 14 nicklas 304   <div id="wizard-status"></div>
1668 25 May 12 nicklas 305   
2794 13 Oct 14 nicklas 306   <table class="navigation" id="navigation">
2794 13 Oct 14 nicklas 307   <tr>
2794 13 Oct 14 nicklas 308     <td><base:button id="gocancel" title="Cancel" /></td>
2794 13 Oct 14 nicklas 309     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
2794 13 Oct 14 nicklas 310     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
2794 13 Oct 14 nicklas 311     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
2794 13 Oct 14 nicklas 312     <td id="gonext-message" class="message"></td>
2794 13 Oct 14 nicklas 313   </tr>
1668 25 May 12 nicklas 314   </table>
2794 13 Oct 14 nicklas 315
1668 25 May 12 nicklas 316   </form>
1668 25 May 12 nicklas 317   </div>
1668 25 May 12 nicklas 318   
1668 25 May 12 nicklas 319 </base:body>
1668 25 May 12 nicklas 320 </base:page>
1668 25 May 12 nicklas 321 <%
1668 25 May 12 nicklas 322 }
1668 25 May 12 nicklas 323 finally
1668 25 May 12 nicklas 324 {
1668 25 May 12 nicklas 325   if (dc != null) dc.close();
1668 25 May 12 nicklas 326 }
1668 25 May 12 nicklas 327 %>