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

Code
Comments
Other
Rev Date Author Line
2123 06 Nov 13 nicklas 1 <%@ page
2123 06 Nov 13 nicklas 2   pageEncoding="UTF-8"
2123 06 Nov 13 nicklas 3   session="false"
2123 06 Nov 13 nicklas 4   import="net.sf.basedb.core.User"
2123 06 Nov 13 nicklas 5   import="net.sf.basedb.core.DbControl"
2123 06 Nov 13 nicklas 6   import="net.sf.basedb.core.SessionControl"
2123 06 Nov 13 nicklas 7   import="net.sf.basedb.core.Application"
2123 06 Nov 13 nicklas 8   import="net.sf.basedb.clients.web.Base"  
2124 08 Nov 13 nicklas 9   import="net.sf.basedb.clients.web.util.HTML"
2123 06 Nov 13 nicklas 10   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2123 06 Nov 13 nicklas 11   import="java.text.SimpleDateFormat"
2123 06 Nov 13 nicklas 12   import="java.util.Date"
2123 06 Nov 13 nicklas 13 %>
2123 06 Nov 13 nicklas 14 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2123 06 Nov 13 nicklas 15 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
2123 06 Nov 13 nicklas 16 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
2123 06 Nov 13 nicklas 17 <%
3976 26 May 16 nicklas 18 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
2123 06 Nov 13 nicklas 19 final String ID = sc.getId();
2123 06 Nov 13 nicklas 20 final float scale = Base.getScale(sc);
2123 06 Nov 13 nicklas 21 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
2123 06 Nov 13 nicklas 22 DbControl dc = null;
2123 06 Nov 13 nicklas 23 try
2123 06 Nov 13 nicklas 24 {
2123 06 Nov 13 nicklas 25   dc = sc.newDbControl();
2123 06 Nov 13 nicklas 26   final User user = User.getById(dc, sc.getLoggedInUserId());
2123 06 Nov 13 nicklas 27   final String today = new SimpleDateFormat("yyyyMMdd").format(new Date());
2124 08 Nov 13 nicklas 28   final String name = request.getParameter("name");
2123 06 Nov 13 nicklas 29 %>
2123 06 Nov 13 nicklas 30 <base:page type="default" >
2832 20 Oct 14 nicklas 31 <base:head 
2832 20 Oct 14 nicklas 32   scripts="~../reggie-2.js,~histology_score.js" 
2832 20 Oct 14 nicklas 33   styles="path.css,toolbar.css,~../css/reggie-2.css"
2832 20 Oct 14 nicklas 34   >
2123 06 Nov 13 nicklas 35 <style>
2123 06 Nov 13 nicklas 36
2832 20 Oct 14 nicklas 37 .input
2123 06 Nov 13 nicklas 38 {
2832 20 Oct 14 nicklas 39   padding: 0 !important;
2123 06 Nov 13 nicklas 40 }
2123 06 Nov 13 nicklas 41
2123 06 Nov 13 nicklas 42 input.score
2123 06 Nov 13 nicklas 43 {
2832 20 Oct 14 nicklas 44   width: 6em !important;
2123 06 Nov 13 nicklas 45   text-align: right;
2123 06 Nov 13 nicklas 46   padding-right: 4px;
3169 06 Mar 15 nicklas 47   box-sizing: border-box;
2123 06 Nov 13 nicklas 48 }
2123 06 Nov 13 nicklas 49
2123 06 Nov 13 nicklas 50 #he-glass-container
2123 06 Nov 13 nicklas 51 {
2123 06 Nov 13 nicklas 52   white-space: nowrap;
2123 06 Nov 13 nicklas 53   overflow: auto;
2123 06 Nov 13 nicklas 54 }
2123 06 Nov 13 nicklas 55
2123 06 Nov 13 nicklas 56 .he-glass
2123 06 Nov 13 nicklas 57 {
2123 06 Nov 13 nicklas 58   display: inline-block;
3026 11 Dec 14 nicklas 59   border-width: 1px;
2243 21 Feb 14 nicklas 60   margin: 1em 1em 0.5em 1em;
6051 12 Nov 20 nicklas 61   width: 22em;
2123 06 Nov 13 nicklas 62 }
2123 06 Nov 13 nicklas 63
2123 06 Nov 13 nicklas 64 .he-name
2123 06 Nov 13 nicklas 65 {
2123 06 Nov 13 nicklas 66   font-weight: bold; 
3026 11 Dec 14 nicklas 67   border-bottom-width: 1px; 
2123 06 Nov 13 nicklas 68   padding: 0.25em;
2123 06 Nov 13 nicklas 69 }
2123 06 Nov 13 nicklas 70
2123 06 Nov 13 nicklas 71 .he-info
2123 06 Nov 13 nicklas 72 {
2123 06 Nov 13 nicklas 73   background-color: #FFFFFF; 
3026 11 Dec 14 nicklas 74   border-bottom-width: 1px;
2123 06 Nov 13 nicklas 75   padding: 0.25em;
2123 06 Nov 13 nicklas 76   height: 5em;
2123 06 Nov 13 nicklas 77   overflow: auto;
2123 06 Nov 13 nicklas 78   white-space: normal;
2123 06 Nov 13 nicklas 79 }
2123 06 Nov 13 nicklas 80
3125 09 Feb 15 nicklas 81 .he-info .ihc:before
3125 09 Feb 15 nicklas 82 {
3125 09 Feb 15 nicklas 83   content: 'IHC: ';
3125 09 Feb 15 nicklas 84 }
3125 09 Feb 15 nicklas 85
2123 06 Nov 13 nicklas 86 .he-tray:before
2123 06 Nov 13 nicklas 87 {
2123 06 Nov 13 nicklas 88   content: 'Tray: ';
2123 06 Nov 13 nicklas 89 }
2123 06 Nov 13 nicklas 90
2123 06 Nov 13 nicklas 91 .he-position:before
2123 06 Nov 13 nicklas 92 {
2123 06 Nov 13 nicklas 93   content: 'Position: ';
2123 06 Nov 13 nicklas 94 }
2123 06 Nov 13 nicklas 95
2123 06 Nov 13 nicklas 96 .he-comment
2123 06 Nov 13 nicklas 97 {
2123 06 Nov 13 nicklas 98   font-style: italic;
2123 06 Nov 13 nicklas 99 }
2123 06 Nov 13 nicklas 100
6051 12 Nov 20 nicklas 101 .he-thumb
6051 12 Nov 20 nicklas 102 {
6055 13 Nov 20 nicklas 103   position: relative;
6055 13 Nov 20 nicklas 104   height: 94px;
6051 12 Nov 20 nicklas 105   overflow: hidden;
6051 12 Nov 20 nicklas 106   text-align: center;
6051 12 Nov 20 nicklas 107   margin-top: 4px;
6051 12 Nov 20 nicklas 108   font-style: italic;
6051 12 Nov 20 nicklas 109   color: #666666;
6051 12 Nov 20 nicklas 110 }
2123 06 Nov 13 nicklas 111
6051 12 Nov 20 nicklas 112 .ndpi-image
6051 12 Nov 20 nicklas 113 {
6051 12 Nov 20 nicklas 114   border-width: 1px;
6051 12 Nov 20 nicklas 115   padding: 2px;
6051 12 Nov 20 nicklas 116   cursor: pointer;
6051 12 Nov 20 nicklas 117   cursor: zoom-in;
6055 13 Nov 20 nicklas 118   background-color: white;
6055 13 Nov 20 nicklas 119   background-image: url('../images/loading.gif');
6055 13 Nov 20 nicklas 120   background-repeat: no-repeat;
6055 13 Nov 20 nicklas 121   background-position: 50% 50%;
6055 13 Nov 20 nicklas 122   min-width: 240px;
6055 13 Nov 20 nicklas 123   min-height: 80px;
6051 12 Nov 20 nicklas 124 }
6055 13 Nov 20 nicklas 125
6055 13 Nov 20 nicklas 126 .open-ndpi
6055 13 Nov 20 nicklas 127 {
6055 13 Nov 20 nicklas 128   position: absolute;
6055 13 Nov 20 nicklas 129   right: 5px;
6055 13 Nov 20 nicklas 130   bottom: 0;
6055 13 Nov 20 nicklas 131   background-color: rgba(255,255,255,0.4);
6055 13 Nov 20 nicklas 132 }
6055 13 Nov 20 nicklas 133
2123 06 Nov 13 nicklas 134 #score-container
2123 06 Nov 13 nicklas 135 {
2123 06 Nov 13 nicklas 136   clear: both;
2123 06 Nov 13 nicklas 137 }
2123 06 Nov 13 nicklas 138
2123 06 Nov 13 nicklas 139 .he-table
2123 06 Nov 13 nicklas 140 {
6055 13 Nov 20 nicklas 141   margin-top: 0.5em;
2123 06 Nov 13 nicklas 142   margin-bottom: 1em;
2123 06 Nov 13 nicklas 143   margin-left: auto;
2123 06 Nov 13 nicklas 144   margin-right: auto;
2123 06 Nov 13 nicklas 145   border: 1px solid #A0A0A0;
2981 25 Nov 14 nicklas 146   border-collapse: separate;
2123 06 Nov 13 nicklas 147 }
2123 06 Nov 13 nicklas 148
2123 06 Nov 13 nicklas 149 .he-table td
2123 06 Nov 13 nicklas 150 {
3169 06 Mar 15 nicklas 151   width: 10.5em;
3169 06 Mar 15 nicklas 152   height: 10.5em;
2123 06 Nov 13 nicklas 153   border: 1px solid #A0A0A0;
2123 06 Nov 13 nicklas 154   padding: 2px;
2123 06 Nov 13 nicklas 155   background: #FFFFFF;
2123 06 Nov 13 nicklas 156   background-position: center center;
2123 06 Nov 13 nicklas 157   background-repeat: no-repeat;
2123 06 Nov 13 nicklas 158   vertical-align: top;
2123 06 Nov 13 nicklas 159   text-align: center;
2123 06 Nov 13 nicklas 160   font-size: 75%;
2123 06 Nov 13 nicklas 161   color: #666666;
2123 06 Nov 13 nicklas 162   cursor: pointer;
2123 06 Nov 13 nicklas 163 }
2123 06 Nov 13 nicklas 164
3367 05 Jun 15 nicklas 165 .he-table td > div
3367 05 Jun 15 nicklas 166 {
3367 05 Jun 15 nicklas 167   position: relative;
3367 05 Jun 15 nicklas 168   height: 100%;
3367 05 Jun 15 nicklas 169 }
3367 05 Jun 15 nicklas 170
3169 06 Mar 15 nicklas 171 .he-table td.used:hover
2123 06 Nov 13 nicklas 172 {
2123 06 Nov 13 nicklas 173   border: 2px solid #2288AA;
2123 06 Nov 13 nicklas 174   border-radius: 4px;
2123 06 Nov 13 nicklas 175   padding: 1px;
2123 06 Nov 13 nicklas 176 }
2123 06 Nov 13 nicklas 177
3125 09 Feb 15 nicklas 178 .he-table td.ihc
3125 09 Feb 15 nicklas 179 {
3406 16 Jun 15 nicklas 180   background-image: url('../images/microscope-incomplete.png');
3406 16 Jun 15 nicklas 181 }
3406 16 Jun 15 nicklas 182
3406 16 Jun 15 nicklas 183 .he-table td.ihc.ihc-done
3406 16 Jun 15 nicklas 184 {
3126 10 Feb 15 nicklas 185   background-image: url('../images/microscope.png');
3125 09 Feb 15 nicklas 186 }
3125 09 Feb 15 nicklas 187
2123 06 Nov 13 nicklas 188 .he-table td.not-used
2123 06 Nov 13 nicklas 189 {
2123 06 Nov 13 nicklas 190   background-color: #D0D0D0;
2123 06 Nov 13 nicklas 191   background-image: url('../images/not-used.png');
2123 06 Nov 13 nicklas 192   cursor: default;
2123 06 Nov 13 nicklas 193 }
2123 06 Nov 13 nicklas 194
2123 06 Nov 13 nicklas 195 .he-table td.selected
2123 06 Nov 13 nicklas 196 {
2123 06 Nov 13 nicklas 197   background-color: #D8FFFF;
2123 06 Nov 13 nicklas 198 }
2123 06 Nov 13 nicklas 199
3169 06 Mar 15 nicklas 200 .he-table td.good-stain, .he-table td.ihc
2123 06 Nov 13 nicklas 201 {
2123 06 Nov 13 nicklas 202   font-weight: bold;
2123 06 Nov 13 nicklas 203   color: #000000;
2123 06 Nov 13 nicklas 204 }
2123 06 Nov 13 nicklas 205
2123 06 Nov 13 nicklas 206 .he-table td.good-stain.score-none
2123 06 Nov 13 nicklas 207 {
2123 06 Nov 13 nicklas 208   background-image: url('../images/score-none.png');
2123 06 Nov 13 nicklas 209 }
2123 06 Nov 13 nicklas 210
2123 06 Nov 13 nicklas 211 .he-table td.good-stain.score-incomplete
2123 06 Nov 13 nicklas 212 {
2123 06 Nov 13 nicklas 213   background-image: url('../images/score-incomplete.png');
2123 06 Nov 13 nicklas 214 }
2123 06 Nov 13 nicklas 215
2123 06 Nov 13 nicklas 216 .he-table td.good-stain.score-complete
2123 06 Nov 13 nicklas 217 {
2123 06 Nov 13 nicklas 218   background-image: url('../images/score-complete.png');
2123 06 Nov 13 nicklas 219 }
2123 06 Nov 13 nicklas 220
2244 21 Feb 14 nicklas 221 .he-table td.flag
2243 21 Feb 14 nicklas 222 {
2244 21 Feb 14 nicklas 223   background-image: url('../images/flag.png');
2243 21 Feb 14 nicklas 224 }
2243 21 Feb 14 nicklas 225
3367 05 Jun 15 nicklas 226 .he-table td.has-image .thumbnail
3367 05 Jun 15 nicklas 227 {
3367 05 Jun 15 nicklas 228   position: absolute;
3367 05 Jun 15 nicklas 229   bottom: 0;
3367 05 Jun 15 nicklas 230   left: 0;
6020 13 Oct 20 nicklas 231   width: 18px;
3367 05 Jun 15 nicklas 232   height: 18px;
3367 05 Jun 15 nicklas 233   background-image: url('../images/picture.png');
3367 05 Jun 15 nicklas 234   background-repeat: no-repeat;
3367 05 Jun 15 nicklas 235   background-position: 0 100%;
3367 05 Jun 15 nicklas 236 }
3367 05 Jun 15 nicklas 237
2125 08 Nov 13 nicklas 238 td.modified .sample-name:after
2125 08 Nov 13 nicklas 239 {
2125 08 Nov 13 nicklas 240   content: ' *';
2125 08 Nov 13 nicklas 241   color: #2244FF;
2125 08 Nov 13 nicklas 242 }
2125 08 Nov 13 nicklas 243
2123 06 Nov 13 nicklas 244 /* Hide progress by default */
2123 06 Nov 13 nicklas 245 .progress
2123 06 Nov 13 nicklas 246 {
2123 06 Nov 13 nicklas 247   display: none;
2123 06 Nov 13 nicklas 248 }
2123 06 Nov 13 nicklas 249
3125 09 Feb 15 nicklas 250 /* Show progress for GoodStain, IHC or total score > 0 */
3125 09 Feb 15 nicklas 251 td.good-stain .progress, td.score-incomplete .progress, td.score-complete .progress, td.ihc .progress
2123 06 Nov 13 nicklas 252 {
2123 06 Nov 13 nicklas 253   display: block;
2123 06 Nov 13 nicklas 254 }
2123 06 Nov 13 nicklas 255
2123 06 Nov 13 nicklas 256 td.score-incomplete .progress:before
2123 06 Nov 13 nicklas 257 {
2123 06 Nov 13 nicklas 258   content: '(';
2123 06 Nov 13 nicklas 259 }
2123 06 Nov 13 nicklas 260 td.score-incomplete .progress:after
2123 06 Nov 13 nicklas 261 {
2123 06 Nov 13 nicklas 262   content: ')';
2123 06 Nov 13 nicklas 263 }
2123 06 Nov 13 nicklas 264
2123 06 Nov 13 nicklas 265 .score-align
2123 06 Nov 13 nicklas 266 {
3169 06 Mar 15 nicklas 267   width: calc(6em + 2px);
2123 06 Nov 13 nicklas 268   display: inline-block;
2123 06 Nov 13 nicklas 269   padding: 3px;
2123 06 Nov 13 nicklas 270   text-align: right;
2123 06 Nov 13 nicklas 271 }
2123 06 Nov 13 nicklas 272
2123 06 Nov 13 nicklas 273 #score_total
2123 06 Nov 13 nicklas 274 {
2123 06 Nov 13 nicklas 275   font-weight: bold;
2123 06 Nov 13 nicklas 276   padding-right: 6px;
2123 06 Nov 13 nicklas 277 }
2123 06 Nov 13 nicklas 278
2124 08 Nov 13 nicklas 279 #select-uncompleted-heglass-menu
2124 08 Nov 13 nicklas 280 {
2124 08 Nov 13 nicklas 281   max-height: 20em;
2124 08 Nov 13 nicklas 282   overflow: auto;
2124 08 Nov 13 nicklas 283 }
2124 08 Nov 13 nicklas 284
2124 08 Nov 13 nicklas 285 #select-uncompleted-heglass .menuitem
2124 08 Nov 13 nicklas 286 {
2124 08 Nov 13 nicklas 287   padding-left: 16px;
2124 08 Nov 13 nicklas 288 }
2124 08 Nov 13 nicklas 289
2124 08 Nov 13 nicklas 290 #select-uncompleted-heglass .menuitem:hover
2124 08 Nov 13 nicklas 291 {
2124 08 Nov 13 nicklas 292   padding-left: 14px;
2124 08 Nov 13 nicklas 293   background-position: 0px 50%;
2124 08 Nov 13 nicklas 294 }
3367 05 Jun 15 nicklas 295
3368 08 Jun 15 nicklas 296 #he-layout.many-he-glass
3368 08 Jun 15 nicklas 297 {
3368 08 Jun 15 nicklas 298   table-layout: fixed;
3368 08 Jun 15 nicklas 299   width: 100%;
3368 08 Jun 15 nicklas 300 }
3368 08 Jun 15 nicklas 301
3367 05 Jun 15 nicklas 302 #he-image-container
3367 05 Jun 15 nicklas 303 {
3367 05 Jun 15 nicklas 304   margin-top: 1em;
3367 05 Jun 15 nicklas 305   text-align: center;
3368 08 Jun 15 nicklas 306   padding-left: 11px;
3368 08 Jun 15 nicklas 307   padding-right: 10px;
3367 05 Jun 15 nicklas 308 }
3367 05 Jun 15 nicklas 309
3367 05 Jun 15 nicklas 310 #he-image-title
3367 05 Jun 15 nicklas 311 {
3367 05 Jun 15 nicklas 312   font-weight: bold; 
3367 05 Jun 15 nicklas 313   padding: 0.25em;
3367 05 Jun 15 nicklas 314 }
3367 05 Jun 15 nicklas 315
3367 05 Jun 15 nicklas 316 #he-file-drop
3367 05 Jun 15 nicklas 317 {
3367 05 Jun 15 nicklas 318   border-width: 1px;
6055 13 Nov 20 nicklas 319   width: 406px;
6055 13 Nov 20 nicklas 320   height: 306px;
6055 13 Nov 20 nicklas 321   padding: 2px;
6055 13 Nov 20 nicklas 322   display: flex;
6055 13 Nov 20 nicklas 323   justify-content: center;
6055 13 Nov 20 nicklas 324   align-items: center;
3367 05 Jun 15 nicklas 325 }
3367 05 Jun 15 nicklas 326
3372 09 Jun 15 nicklas 327 #he-file-drop > *
3367 05 Jun 15 nicklas 328 {
3372 09 Jun 15 nicklas 329   display: none;
6055 13 Nov 20 nicklas 330   max-width: 400px;
6055 13 Nov 20 nicklas 331   max-height: 300px;
3367 05 Jun 15 nicklas 332 }
3367 05 Jun 15 nicklas 333
3369 08 Jun 15 nicklas 334 #he-image
3369 08 Jun 15 nicklas 335 {
3372 09 Jun 15 nicklas 336   cursor: pointer;
3372 09 Jun 15 nicklas 337   cursor: zoom-in;
3369 08 Jun 15 nicklas 338 }
3369 08 Jun 15 nicklas 339
3369 08 Jun 15 nicklas 340 .has-image #he-image
3369 08 Jun 15 nicklas 341 {
3369 08 Jun 15 nicklas 342   display: block;
3369 08 Jun 15 nicklas 343 }
3369 08 Jun 15 nicklas 344
3367 05 Jun 15 nicklas 345 #no-he-image
3367 05 Jun 15 nicklas 346 {
3372 09 Jun 15 nicklas 347   position: relative;
3369 08 Jun 15 nicklas 348   display: table-cell;
3367 05 Jun 15 nicklas 349   vertical-align: middle;
3369 08 Jun 15 nicklas 350   cursor: pointer;
3372 09 Jun 15 nicklas 351   line-height: 175%;
3372 09 Jun 15 nicklas 352   padding: 2em;
3367 05 Jun 15 nicklas 353 }
3367 05 Jun 15 nicklas 354
3372 09 Jun 15 nicklas 355 .has-image #no-he-image, .uploading #no-he-image
3369 08 Jun 15 nicklas 356 {
3369 08 Jun 15 nicklas 357   display: none;
3369 08 Jun 15 nicklas 358 }
3369 08 Jun 15 nicklas 359
3372 09 Jun 15 nicklas 360 .uploading #uploading
3372 09 Jun 15 nicklas 361 {
3372 09 Jun 15 nicklas 362   display: table-cell;
3372 09 Jun 15 nicklas 363   vertical-align: middle;
3372 09 Jun 15 nicklas 364   font-weight: bold;
3372 09 Jun 15 nicklas 365 }
3372 09 Jun 15 nicklas 366
3369 08 Jun 15 nicklas 367 #he-image-delete
3369 08 Jun 15 nicklas 368 {
3369 08 Jun 15 nicklas 369   display: none;
3369 08 Jun 15 nicklas 370 }
6055 13 Nov 20 nicklas 371 .has-image.can-delete #he-image-delete
3369 08 Jun 15 nicklas 372 {
3369 08 Jun 15 nicklas 373   display: inline;
3369 08 Jun 15 nicklas 374 }
3369 08 Jun 15 nicklas 375
3367 05 Jun 15 nicklas 376 #he-image-container.dragging #he-file-drop
3367 05 Jun 15 nicklas 377 {
3367 05 Jun 15 nicklas 378   border: 2px solid #2288AA;
3367 05 Jun 15 nicklas 379   border-radius: 4px;
3367 05 Jun 15 nicklas 380   margin: 0;
3367 05 Jun 15 nicklas 381 }
3367 05 Jun 15 nicklas 382
3372 09 Jun 15 nicklas 383 #tiff-note
3367 05 Jun 15 nicklas 384 {
3372 09 Jun 15 nicklas 385   position: absolute;
3372 09 Jun 15 nicklas 386   bottom: 0;
3372 09 Jun 15 nicklas 387   right: 0.5em;
3372 09 Jun 15 nicklas 388   font-size: 85%;
3367 05 Jun 15 nicklas 389 }
3367 05 Jun 15 nicklas 390
2123 06 Nov 13 nicklas 391 </style>
2123 06 Nov 13 nicklas 392
2123 06 Nov 13 nicklas 393 </base:head>
2832 20 Oct 14 nicklas 394 <base:body>
2123 06 Nov 13 nicklas 395
2123 06 Nov 13 nicklas 396   <p:path><p:pathelement 
2123 06 Nov 13 nicklas 397     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
2123 06 Nov 13 nicklas 398     /><p:pathelement title="Register HE glass score" 
2123 06 Nov 13 nicklas 399     /></p:path>
2123 06 Nov 13 nicklas 400
2832 20 Oct 14 nicklas 401   <div class="content">
2124 08 Nov 13 nicklas 402   
3125 09 Feb 15 nicklas 403   <div id="select-uncompleted-heglass" class="menu vertical bg-filled-100" style="width: 150px; display: none; z-index: 999;">
2124 08 Nov 13 nicklas 404     <div id="select-uncompleted-heglass-menu"></div>
2124 08 Nov 13 nicklas 405   </div>
2124 08 Nov 13 nicklas 406   
2832 20 Oct 14 nicklas 407   <form name="reggie" id="wizard" class="wizard">
3372 09 Jun 15 nicklas 408   <input id="selectFile" type="file" accept="image/jpeg,image/png,image/tiff"
3372 09 Jun 15 nicklas 409     style="visibility: hidden; position: absolute; top: 0; left: 0; height: 0; width: 0;">
3369 08 Jun 15 nicklas 410
2832 20 Oct 14 nicklas 411   <div id="page-data" class="datacontainer"
2832 20 Oct 14 nicklas 412     data-he-glass="<%=HTML.encodeTags(name)%>"
2832 20 Oct 14 nicklas 413   ></div>
2832 20 Oct 14 nicklas 414   
2832 20 Oct 14 nicklas 415   <div class="step" id="step-1">
2832 20 Oct 14 nicklas 416     <div class="step-no">1</div>
2832 20 Oct 14 nicklas 417     <div class="step-title">HE glass to score</div>
2832 20 Oct 14 nicklas 418     <div class="step-content">
2832 20 Oct 14 nicklas 419
3125 09 Feb 15 nicklas 420       <tbl:toolbar subclass="bottomborder bg-filled-50">
3125 09 Feb 15 nicklas 421         <tbl:label style="padding: 0; padding-left: 1em;" subclass="bg-filled-100">
2832 20 Oct 14 nicklas 422         <input type="text" name="findGlassName" id="findHeGlassName"
2832 20 Oct 14 nicklas 423           style="width: 12em;"
2124 08 Nov 13 nicklas 424           placeholder="Find HE glass" title="Enter a full HE glass name or the last digits in the it's number before the dot"
3125 09 Feb 15 nicklas 425           ><base:icon id="btnFindHeGlass" image="<%=home+"/images/gonext.png"%>"></base:icon>
2123 06 Nov 13 nicklas 426         </tbl:label>
2123 06 Nov 13 nicklas 427       
2123 06 Nov 13 nicklas 428         <tbl:button 
2832 20 Oct 14 nicklas 429           id="btnSelectHeGlass"
2123 06 Nov 13 nicklas 430           title="Select HE glass&hellip;" 
2123 06 Nov 13 nicklas 431           image="<%=home + "/images/microscope.png"%>" 
2123 06 Nov 13 nicklas 432           tooltip="Manually select a different HE glass"
2123 06 Nov 13 nicklas 433         />
2124 08 Nov 13 nicklas 434
2124 08 Nov 13 nicklas 435         <tbl:button
2832 20 Oct 14 nicklas 436           id="btnUncompletedHeGlass"
2124 08 Nov 13 nicklas 437           title="Loading..."
2124 08 Nov 13 nicklas 438           image="mini_scroll_down.png"
2124 08 Nov 13 nicklas 439           tooltip="This list contain HE glass with partial scores"
2124 08 Nov 13 nicklas 440         />
2124 08 Nov 13 nicklas 441
2123 06 Nov 13 nicklas 442       </tbl:toolbar>
2123 06 Nov 13 nicklas 443       
3368 08 Jun 15 nicklas 444       <table id="he-layout">
3367 05 Jun 15 nicklas 445       <tr>
3368 08 Jun 15 nicklas 446         <td style="width: calc(100% - 425px);">
3368 08 Jun 15 nicklas 447         <div id="he-glass-container" style="display: none;"></div>
3367 05 Jun 15 nicklas 448         </td>
6055 13 Nov 20 nicklas 449         <td >
3367 05 Jun 15 nicklas 450           <div id="he-image-container">
3369 08 Jun 15 nicklas 451             <div id="he-image-title">
3369 08 Jun 15 nicklas 452               Preview image for <span id="he-image-name"></span>
3369 08 Jun 15 nicklas 453               <base:icon id="he-image-delete" image="delete.png" style="float: right;" tooltip="Delete this image" />
3369 08 Jun 15 nicklas 454             </div>
3367 05 Jun 15 nicklas 455             <div id="he-file-drop">
3369 08 Jun 15 nicklas 456               <img id="he-image" title="Click to view full image">
3372 09 Jun 15 nicklas 457               <div id="no-he-image">
3372 09 Jun 15 nicklas 458                 <b>There is no image for this sample.</b><br><br>
6016 09 Oct 20 nicklas 459                 Use copy+paste or drag a <b>TIF¹</b>, </b><b>JPG</b> or <b>PNG</b> image to this space or 
6016 09 Oct 20 nicklas 460                 click to browse for a file. The image will be uploaded
3372 09 Jun 15 nicklas 461                 and stored on the server immediately. 
3372 09 Jun 15 nicklas 462                 
3372 09 Jun 15 nicklas 463                 <span id="tiff-note">¹ TIF images are automatically converted to JPG</span>
3367 05 Jun 15 nicklas 464               </div>
3372 09 Jun 15 nicklas 465               <div id="uploading">
3372 09 Jun 15 nicklas 466                 <base:icon image="<%=home+"/images/loading-small.gif"%>" /> Uploading image...
3372 09 Jun 15 nicklas 467               </div>
3367 05 Jun 15 nicklas 468             </div>
3368 08 Jun 15 nicklas 469             <div id="file-error" class="messagecontainer error" style="display: none;"></div>
3367 05 Jun 15 nicklas 470           </div>
3367 05 Jun 15 nicklas 471         </td>
3367 05 Jun 15 nicklas 472       </tr>
3367 05 Jun 15 nicklas 473       </table>
3368 08 Jun 15 nicklas 474
2123 06 Nov 13 nicklas 475       <div id="score-container" style="display: none;">
2832 20 Oct 14 nicklas 476         <div style="margin-left: 1em; margin-bottom: 0.5em;">
3126 10 Feb 15 nicklas 477           <base:icon image="<%=home + "/images/flag.png"%>" />=No GoodStain sample for that location. 
2832 20 Oct 14 nicklas 478           The Histology piece will be added to the <i>Flagged histology</i> list.
3169 06 Mar 15 nicklas 479           <base:icon image="<%=home + "/images/microscope.png"%>" />=IHC staining.
2832 20 Oct 14 nicklas 480         </div>
2832 20 Oct 14 nicklas 481         
2832 20 Oct 14 nicklas 482         <table class="step-form">
2832 20 Oct 14 nicklas 483         <tr class="section-header topborder bottomborder">
2832 20 Oct 14 nicklas 484           <td>Sample</td>
2832 20 Oct 14 nicklas 485           <td colspan="3" id="sample.name"></td>
2123 06 Nov 13 nicklas 486         </tr>
3169 06 Mar 15 nicklas 487         <tbody id="heSample">
2123 06 Nov 13 nicklas 488         <tr>
2123 06 Nov 13 nicklas 489           <td class="prompt">GoodStain</td>
2832 20 Oct 14 nicklas 490           <td class="input">
2832 20 Oct 14 nicklas 491             <span class="score-align"><input type="checkbox" name="good_stain" id="good_stain"
2123 06 Nov 13 nicklas 492             title="Mark this checkbox to overtake the GoodStain annotation"
2832 20 Oct 14 nicklas 493             ></span>
2832 20 Oct 14 nicklas 494           </td>
2123 06 Nov 13 nicklas 495           <td class="status" id="good_stain.status"></td>
2123 06 Nov 13 nicklas 496           <td class="help" rowspan="2">
2123 06 Nov 13 nicklas 497             Check to overtake the GoodStain annotation. 
2123 06 Nov 13 nicklas 498             Disabled if this sample is already annotated.
2123 06 Nov 13 nicklas 499           </td>
2123 06 Nov 13 nicklas 500         </tr>
2123 06 Nov 13 nicklas 501         
2123 06 Nov 13 nicklas 502         <tr>
2123 06 Nov 13 nicklas 503           <td class="prompt">Scores</td>
2123 06 Nov 13 nicklas 504           <td class="input"></td>
2123 06 Nov 13 nicklas 505           <td class="status"></td>
2123 06 Nov 13 nicklas 506         </tr>
2123 06 Nov 13 nicklas 507         <tr>
2123 06 Nov 13 nicklas 508           <td class="subprompt">Invasive cancer</td>
2832 20 Oct 14 nicklas 509           <td class="input">
2832 20 Oct 14 nicklas 510             <input type="text" class="score auto-init" name="score_invasive_cancer" id="score_invasive_cancer"
2832 20 Oct 14 nicklas 511               data-auto-init="focus-on-enter" data-next-focus="score_insitu_cancer"
2832 20 Oct 14 nicklas 512               maxlength="3">%
2832 20 Oct 14 nicklas 513           </td>
2123 06 Nov 13 nicklas 514           <td class="status" id="score_invasive_cancer.status"></td>
2123 06 Nov 13 nicklas 515           <td class="help" rowspan="2">
2123 06 Nov 13 nicklas 516             Enter the percentage for each cell type. 
2123 06 Nov 13 nicklas 517             They must sum up to 100% before scoring can be compeleted.
2123 06 Nov 13 nicklas 518           </td>
2123 06 Nov 13 nicklas 519         </tr>    
2123 06 Nov 13 nicklas 520
2123 06 Nov 13 nicklas 521         <tr>
2123 06 Nov 13 nicklas 522           <td class="subprompt">In situ cancer</td>
2832 20 Oct 14 nicklas 523           <td class="input">
2832 20 Oct 14 nicklas 524             <input type="text" class="score auto-init" name="score_insitu_cancer" id="score_insitu_cancer" 
2832 20 Oct 14 nicklas 525               data-auto-init="focus-on-enter" data-next-focus="score_lymphocytes"
2832 20 Oct 14 nicklas 526               maxlength="3">%
2832 20 Oct 14 nicklas 527           </td>
2123 06 Nov 13 nicklas 528           <td class="status" id="score_insitu_cancer.status"></td>
2123 06 Nov 13 nicklas 529         </tr>    
2123 06 Nov 13 nicklas 530         <tr>
2123 06 Nov 13 nicklas 531           <td class="subprompt">Lymphocytes</td>
2832 20 Oct 14 nicklas 532           <td class="input">
2832 20 Oct 14 nicklas 533             <input type="text" class="score auto-init" name="score_lymphocytes" id="score_lymphocytes"
2832 20 Oct 14 nicklas 534               data-auto-init="focus-on-enter" data-next-focus="score_normal"
2832 20 Oct 14 nicklas 535               maxlength="3">%
2832 20 Oct 14 nicklas 536           </td>
2123 06 Nov 13 nicklas 537           <td class="status" id="score_lymphocytes.status"></td>
2123 06 Nov 13 nicklas 538           <td class="help"></td>
2123 06 Nov 13 nicklas 539         </tr>    
2123 06 Nov 13 nicklas 540         <tr>
2123 06 Nov 13 nicklas 541           <td class="subprompt">Normal</td>
2832 20 Oct 14 nicklas 542           <td class="input">
2832 20 Oct 14 nicklas 543             <input type="text" class="score auto-init" name="score_normal" id="score_normal"
2832 20 Oct 14 nicklas 544               data-auto-init="focus-on-enter" data-next-focus="score_stroma"
2832 20 Oct 14 nicklas 545               maxlength="3">%
2832 20 Oct 14 nicklas 546           </td>
2123 06 Nov 13 nicklas 547           <td class="status" id="score_normal.status"></td>
2123 06 Nov 13 nicklas 548           <td class="help"></td>
2123 06 Nov 13 nicklas 549         </tr>    
2123 06 Nov 13 nicklas 550         <tr>
2123 06 Nov 13 nicklas 551           <td class="subprompt">Stroma</td>
2832 20 Oct 14 nicklas 552           <td class="input">
2832 20 Oct 14 nicklas 553             <input type="text" class="score auto-init" name="score_stroma" id="score_stroma"
2832 20 Oct 14 nicklas 554               data-auto-init="focus-on-enter" data-next-focus="score_fat"
2832 20 Oct 14 nicklas 555               maxlength="3">%
2832 20 Oct 14 nicklas 556           </td>
2123 06 Nov 13 nicklas 557           <td class="status" id="score_stroma.status"></td>
2123 06 Nov 13 nicklas 558           <td class="help"></td>
2123 06 Nov 13 nicklas 559         </tr>    
2123 06 Nov 13 nicklas 560         <tr>
2123 06 Nov 13 nicklas 561           <td class="subprompt">Fat</td>
2832 20 Oct 14 nicklas 562           <td class="input">
2832 20 Oct 14 nicklas 563             <input type="text" class="score auto-init" name="score_fat" id="score_fat"
2832 20 Oct 14 nicklas 564               data-auto-init="focus-on-enter" data-next-focus="comments"
2832 20 Oct 14 nicklas 565               maxlength="3">%
2832 20 Oct 14 nicklas 566           </td>
2123 06 Nov 13 nicklas 567           <td class="status" id="score_fat.status"></td>
2123 06 Nov 13 nicklas 568           <td class="help"></td>
2123 06 Nov 13 nicklas 569         </tr>
3026 11 Dec 14 nicklas 570         <tr class="section-header">
2832 20 Oct 14 nicklas 571           <td class="subprompt" style="font-weight: bold;">Total</td>
2123 06 Nov 13 nicklas 572           <td class="input" style="padding: 0;"><span class="score-align" id="score_total"></span>%</td>
2123 06 Nov 13 nicklas 573           <td class="status" id="score_total.status"></td>
2123 06 Nov 13 nicklas 574           <td class="help"><span class="message" id="score_total.message"></span></td>
2123 06 Nov 13 nicklas 575         </tr>
2123 06 Nov 13 nicklas 576         
2123 06 Nov 13 nicklas 577         <tr>
2123 06 Nov 13 nicklas 578           <td class="subprompt">Score complete</td>
2832 20 Oct 14 nicklas 579           <td class="input">
2832 20 Oct 14 nicklas 580             <span class="score-align"><input type="checkbox" name="score_complete" id="score_complete"
2832 20 Oct 14 nicklas 581               title="Uncheck if scoring is not complete"></span>
2832 20 Oct 14 nicklas 582           </td>
2123 06 Nov 13 nicklas 583           <td class="status" id="score_complete.status"></td>
2125 08 Nov 13 nicklas 584           <td class="help">
2125 08 Nov 13 nicklas 585             Uncheck if scoring is not complete. Disabled if some scores 
2125 08 Nov 13 nicklas 586             are missing or the total score is not 100%.
2123 06 Nov 13 nicklas 587           </td>
2123 06 Nov 13 nicklas 588         </tr>
3169 06 Mar 15 nicklas 589         </tbody>
2123 06 Nov 13 nicklas 590         
3169 06 Mar 15 nicklas 591         <tbody id="ihcSample">
3169 06 Mar 15 nicklas 592         <tr>
3169 06 Mar 15 nicklas 593           <td class="prompt">IHC</td>
3169 06 Mar 15 nicklas 594           <td class="input">
3169 06 Mar 15 nicklas 595             <span id="ihc_name"></span>
3169 06 Mar 15 nicklas 596           </td>
3169 06 Mar 15 nicklas 597           <td class="status" id="ihc.status"></td>
3169 06 Mar 15 nicklas 598           <td class="help"></td>
3169 06 Mar 15 nicklas 599         </tr>
3169 06 Mar 15 nicklas 600         <tr>
3169 06 Mar 15 nicklas 601           <td class="prompt">IHC quality</td>
3169 06 Mar 15 nicklas 602           <td class="input">
3169 06 Mar 15 nicklas 603             <select name="ihc_quality" id="ihc_quality" style="width: 8em;">
3169 06 Mar 15 nicklas 604               <option value="">
3169 06 Mar 15 nicklas 605               <option value="Good">Good
3169 06 Mar 15 nicklas 606               <option value="Fail">Fail
3549 19 Oct 15 nicklas 607               <option value="Inconclusive">Inconclusive
3169 06 Mar 15 nicklas 608             </select>
3169 06 Mar 15 nicklas 609           </td>
3169 06 Mar 15 nicklas 610           <td class="status" id="ihc_quality.status"></td>
3169 06 Mar 15 nicklas 611           <td class="help">
3169 06 Mar 15 nicklas 612             Select the IHC quality of this sample.
3169 06 Mar 15 nicklas 613           </td>
3169 06 Mar 15 nicklas 614         </tr>
3169 06 Mar 15 nicklas 615         </tbody>
3169 06 Mar 15 nicklas 616         
2832 20 Oct 14 nicklas 617         <tr class="align-top">
2832 20 Oct 14 nicklas 618           <td class="prompt">Comments</td>
2832 20 Oct 14 nicklas 619           <td class="input">
2832 20 Oct 14 nicklas 620             <textarea rows="3" name="comments" id="comments"></textarea>
2123 06 Nov 13 nicklas 621           </td>
2832 20 Oct 14 nicklas 622           <td class="status"></td>
2123 06 Nov 13 nicklas 623           <td class="help"></td>
2123 06 Nov 13 nicklas 624         </tr>
2123 06 Nov 13 nicklas 625         </table>
2832 20 Oct 14 nicklas 626       </div>
2832 20 Oct 14 nicklas 627     </div>
2832 20 Oct 14 nicklas 628   </div>
2832 20 Oct 14 nicklas 629   
2123 06 Nov 13 nicklas 630
2832 20 Oct 14 nicklas 631   <div id="wizard-status"></div>
2832 20 Oct 14 nicklas 632   
2832 20 Oct 14 nicklas 633   <table class="navigation" id="navigation">
2832 20 Oct 14 nicklas 634   <tr>
2832 20 Oct 14 nicklas 635     <td><base:button id="gonext" title="Next HE glass set" image="<%=home+"/images/gonext.png"%>" /></td>
2832 20 Oct 14 nicklas 636     <td><base:button id="goregister" title="Register" image="<%=home+"/images/gonext.png"%>"  /></td>
2832 20 Oct 14 nicklas 637     <td id="gonext-message" class="message"></td>
2123 06 Nov 13 nicklas 638   </tr>
2123 06 Nov 13 nicklas 639   </table>
2123 06 Nov 13 nicklas 640   
2123 06 Nov 13 nicklas 641   </form>
2123 06 Nov 13 nicklas 642   </div>
2123 06 Nov 13 nicklas 643   
2123 06 Nov 13 nicklas 644 </base:body>
2123 06 Nov 13 nicklas 645 </base:page>
2123 06 Nov 13 nicklas 646 <%
2123 06 Nov 13 nicklas 647 }
2123 06 Nov 13 nicklas 648 finally
2123 06 Nov 13 nicklas 649 {
2123 06 Nov 13 nicklas 650   if (dc != null) dc.close();
2123 06 Nov 13 nicklas 651 }
2123 06 Nov 13 nicklas 652 %>