1591 |
21 Mar 12 |
nicklas |
1 |
<%@ page |
1591 |
21 Mar 12 |
nicklas |
2 |
pageEncoding="UTF-8" |
1591 |
21 Mar 12 |
nicklas |
3 |
session="false" |
1591 |
21 Mar 12 |
nicklas |
4 |
import="net.sf.basedb.core.User" |
1591 |
21 Mar 12 |
nicklas |
5 |
import="net.sf.basedb.core.DbControl" |
1591 |
21 Mar 12 |
nicklas |
6 |
import="net.sf.basedb.core.SessionControl" |
1591 |
21 Mar 12 |
nicklas |
7 |
import="net.sf.basedb.core.Application" |
1669 |
29 May 12 |
nicklas |
8 |
import="net.sf.basedb.core.Sample" |
3247 |
14 Apr 15 |
nicklas |
9 |
import="net.sf.basedb.core.ItemList" |
1669 |
29 May 12 |
nicklas |
10 |
import="net.sf.basedb.core.BioWell" |
1591 |
21 Mar 12 |
nicklas |
11 |
import="net.sf.basedb.core.BioPlate" |
1684 |
04 Jun 12 |
nicklas |
12 |
import="net.sf.basedb.core.AnyToAny" |
1681 |
01 Jun 12 |
nicklas |
13 |
import="net.sf.basedb.core.ItemQuery" |
1591 |
21 Mar 12 |
nicklas |
14 |
import="net.sf.basedb.core.PermissionDeniedException" |
1681 |
01 Jun 12 |
nicklas |
15 |
import="net.sf.basedb.core.query.Hql" |
1681 |
01 Jun 12 |
nicklas |
16 |
import="net.sf.basedb.core.query.Orders" |
1591 |
21 Mar 12 |
nicklas |
17 |
import="net.sf.basedb.util.Values" |
1591 |
21 Mar 12 |
nicklas |
18 |
import="net.sf.basedb.util.extensions.Extension" |
1591 |
21 Mar 12 |
nicklas |
19 |
import="net.sf.basedb.clients.web.Base" |
1591 |
21 Mar 12 |
nicklas |
20 |
import="net.sf.basedb.clients.web.util.HTML" |
1591 |
21 Mar 12 |
nicklas |
21 |
import="net.sf.basedb.clients.web.extensions.ExtensionsControl" |
1591 |
21 Mar 12 |
nicklas |
22 |
import="java.util.List" |
1591 |
21 Mar 12 |
nicklas |
23 |
import="java.util.ArrayList" |
1591 |
21 Mar 12 |
nicklas |
24 |
%> |
2785 |
10 Oct 14 |
nicklas |
25 |
<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> |
1591 |
21 Mar 12 |
nicklas |
26 |
<%! |
1669 |
29 May 12 |
nicklas |
27 |
String getSampleForLocation(List<Sample> samples, int offset, int position) |
1591 |
21 Mar 12 |
nicklas |
28 |
{ |
1667 |
23 May 12 |
nicklas |
29 |
String name = "<i>empty</i>"; |
1669 |
29 May 12 |
nicklas |
30 |
int index = offset + position - 1; |
1669 |
29 May 12 |
nicklas |
31 |
if (index < samples.size()) |
1591 |
21 Mar 12 |
nicklas |
32 |
{ |
1669 |
29 May 12 |
nicklas |
33 |
Sample s = samples.get(index); |
1669 |
29 May 12 |
nicklas |
34 |
name = "<b>" + HTML.encodeTags(s.getName()) + "</b>"; |
1591 |
21 Mar 12 |
nicklas |
35 |
try |
1591 |
21 Mar 12 |
nicklas |
36 |
{ |
1669 |
29 May 12 |
nicklas |
37 |
BioWell well = s.getBioWell(); |
1669 |
29 May 12 |
nicklas |
38 |
if (well != null) |
1591 |
21 Mar 12 |
nicklas |
39 |
{ |
1669 |
29 May 12 |
nicklas |
40 |
BioPlate plate = well.getPlate(); |
2172 |
11 Dec 13 |
nicklas |
41 |
name += "<br>" + plate.getName() + " " + well.getCoordinate(); |
1591 |
21 Mar 12 |
nicklas |
42 |
} |
1591 |
21 Mar 12 |
nicklas |
43 |
} |
1591 |
21 Mar 12 |
nicklas |
44 |
catch (PermissionDeniedException ex) |
1669 |
29 May 12 |
nicklas |
45 |
{} |
1591 |
21 Mar 12 |
nicklas |
46 |
} |
1591 |
21 Mar 12 |
nicklas |
47 |
return name; |
1591 |
21 Mar 12 |
nicklas |
48 |
} |
1591 |
21 Mar 12 |
nicklas |
49 |
%> |
1591 |
21 Mar 12 |
nicklas |
50 |
<% |
3976 |
26 May 16 |
nicklas |
51 |
final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true); |
1591 |
21 Mar 12 |
nicklas |
52 |
final String ID = sc.getId(); |
1591 |
21 Mar 12 |
nicklas |
53 |
final float scale = Base.getScale(sc); |
1591 |
21 Mar 12 |
nicklas |
54 |
final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie"); |
1669 |
29 May 12 |
nicklas |
55 |
final String root = request.getContextPath(); |
1591 |
21 Mar 12 |
nicklas |
56 |
final int BLOCKS_PER_PAGE = 3; |
1669 |
29 May 12 |
nicklas |
57 |
final int SAMPLES_PER_BLOCK = 5; |
1591 |
21 Mar 12 |
nicklas |
58 |
DbControl dc = null; |
1591 |
21 Mar 12 |
nicklas |
59 |
try |
1591 |
21 Mar 12 |
nicklas |
60 |
{ |
1591 |
21 Mar 12 |
nicklas |
61 |
dc = sc.newDbControl(); |
1591 |
21 Mar 12 |
nicklas |
62 |
final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie"); |
1591 |
21 Mar 12 |
nicklas |
63 |
final User user = User.getById(dc, sc.getLoggedInUserId()); |
1681 |
01 Jun 12 |
nicklas |
64 |
final int listId = Values.getInt(request.getParameter("workList")); |
3247 |
14 Apr 15 |
nicklas |
65 |
ItemList workList = ItemList.getById(dc, listId); |
1669 |
29 May 12 |
nicklas |
66 |
|
3247 |
14 Apr 15 |
nicklas |
67 |
ItemQuery<Sample> query = (ItemQuery<Sample>)workList.getMembers(); |
1681 |
01 Jun 12 |
nicklas |
68 |
|
1681 |
01 Jun 12 |
nicklas |
69 |
query.join(Hql.leftJoin(null, "bioWell", "bw", null, true)); |
1681 |
01 Jun 12 |
nicklas |
70 |
query.join(Hql.leftJoin("bw", "bioPlate", "bp", null, true)); |
1681 |
01 Jun 12 |
nicklas |
71 |
|
1681 |
01 Jun 12 |
nicklas |
72 |
// Sort by bioplate position |
1682 |
01 Jun 12 |
nicklas |
73 |
query.order(Orders.asc(Hql.expression("coalesce(bp.name, 'zzzz')", null))); |
1681 |
01 Jun 12 |
nicklas |
74 |
query.order(Orders.asc(Hql.property("bw", "row"))); |
1681 |
01 Jun 12 |
nicklas |
75 |
query.order(Orders.asc(Hql.property("bw", "column"))); |
1681 |
01 Jun 12 |
nicklas |
76 |
query.order(Orders.asc(Hql.property("id"))); |
1681 |
01 Jun 12 |
nicklas |
77 |
|
1681 |
01 Jun 12 |
nicklas |
78 |
List<Sample> histology = query.list(dc); |
1681 |
01 Jun 12 |
nicklas |
79 |
|
1681 |
01 Jun 12 |
nicklas |
80 |
int totalBlocks = 1 + (histology.size()-1) / SAMPLES_PER_BLOCK; |
1669 |
29 May 12 |
nicklas |
81 |
int totalPages = 1 + (totalBlocks-1) / BLOCKS_PER_PAGE; |
1591 |
21 Mar 12 |
nicklas |
82 |
%> |
3026 |
11 Dec 14 |
nicklas |
83 |
<base:page id="protocol" type="iframe" noskin="true" |
2785 |
10 Oct 14 |
nicklas |
84 |
favicon="<%=home+"/images/microscope.png"%>" |
2785 |
10 Oct 14 |
nicklas |
85 |
title="Lab protocol for FFPE/HE"> |
2785 |
10 Oct 14 |
nicklas |
86 |
<base:head |
2785 |
10 Oct 14 |
nicklas |
87 |
scripts="~../reggie-2.js,~histology_protocol.js" |
2785 |
10 Oct 14 |
nicklas |
88 |
styles="~../css/reggie-2.css,~../css/printable.css" |
2785 |
10 Oct 14 |
nicklas |
89 |
> |
1591 |
21 Mar 12 |
nicklas |
90 |
<style> |
1667 |
23 May 12 |
nicklas |
91 |
table.protocolheader |
1591 |
21 Mar 12 |
nicklas |
92 |
{ |
1667 |
23 May 12 |
nicklas |
93 |
width: 100%; |
2172 |
11 Dec 13 |
nicklas |
94 |
border: 1px solid #000000; |
2172 |
11 Dec 13 |
nicklas |
95 |
margin-bottom: 1em; |
2172 |
11 Dec 13 |
nicklas |
96 |
border-collapse: collapse; |
1667 |
23 May 12 |
nicklas |
97 |
} |
2172 |
11 Dec 13 |
nicklas |
98 |
|
1667 |
23 May 12 |
nicklas |
99 |
table.protocolheader > tbody > tr |
1667 |
23 May 12 |
nicklas |
100 |
{ |
2172 |
11 Dec 13 |
nicklas |
101 |
vertical-align: top; |
2172 |
11 Dec 13 |
nicklas |
102 |
height: 1.25em; |
1667 |
23 May 12 |
nicklas |
103 |
} |
1667 |
23 May 12 |
nicklas |
104 |
|
2172 |
11 Dec 13 |
nicklas |
105 |
table.protocolheader > tbody > tr > th |
1667 |
23 May 12 |
nicklas |
106 |
{ |
1667 |
23 May 12 |
nicklas |
107 |
text-align: left; |
1667 |
23 May 12 |
nicklas |
108 |
font-size: 1.25em; |
2172 |
11 Dec 13 |
nicklas |
109 |
background-color: #F0F0F0; |
2172 |
11 Dec 13 |
nicklas |
110 |
padding: 2px; |
1667 |
23 May 12 |
nicklas |
111 |
} |
1667 |
23 May 12 |
nicklas |
112 |
|
2172 |
11 Dec 13 |
nicklas |
113 |
table.protocolheader > tbody > tr > td |
2172 |
11 Dec 13 |
nicklas |
114 |
{ |
2172 |
11 Dec 13 |
nicklas |
115 |
text-align: left; |
2172 |
11 Dec 13 |
nicklas |
116 |
font-size: 1.25em; |
2172 |
11 Dec 13 |
nicklas |
117 |
padding: 2px; |
2172 |
11 Dec 13 |
nicklas |
118 |
} |
2172 |
11 Dec 13 |
nicklas |
119 |
|
2172 |
11 Dec 13 |
nicklas |
120 |
|
1667 |
23 May 12 |
nicklas |
121 |
div.paraffinblock |
1667 |
23 May 12 |
nicklas |
122 |
{ |
1591 |
21 Mar 12 |
nicklas |
123 |
margin-top: 1em; |
1699 |
12 Jun 12 |
nicklas |
124 |
margin-bottom: 2em; |
2172 |
11 Dec 13 |
nicklas |
125 |
height: 7cm; |
1591 |
21 Mar 12 |
nicklas |
126 |
} |
1591 |
21 Mar 12 |
nicklas |
127 |
|
2172 |
11 Dec 13 |
nicklas |
128 |
div.paraffinblock .header |
1591 |
21 Mar 12 |
nicklas |
129 |
{ |
2172 |
11 Dec 13 |
nicklas |
130 |
border: 1px solid #000000; |
2172 |
11 Dec 13 |
nicklas |
131 |
width: 100%; |
2172 |
11 Dec 13 |
nicklas |
132 |
border-collapse: collapse; |
2172 |
11 Dec 13 |
nicklas |
133 |
height: 7cm; |
1667 |
23 May 12 |
nicklas |
134 |
} |
1667 |
23 May 12 |
nicklas |
135 |
|
2172 |
11 Dec 13 |
nicklas |
136 |
div.paraffinblock .header th |
1667 |
23 May 12 |
nicklas |
137 |
{ |
2172 |
11 Dec 13 |
nicklas |
138 |
text-align: left; |
2172 |
11 Dec 13 |
nicklas |
139 |
font-size: 1em; |
2172 |
11 Dec 13 |
nicklas |
140 |
background-color: #F0F0F0; |
2172 |
11 Dec 13 |
nicklas |
141 |
padding: 2px; |
2172 |
11 Dec 13 |
nicklas |
142 |
} |
2172 |
11 Dec 13 |
nicklas |
143 |
|
2172 |
11 Dec 13 |
nicklas |
144 |
div.paraffinblock .header td |
2172 |
11 Dec 13 |
nicklas |
145 |
{ |
2172 |
11 Dec 13 |
nicklas |
146 |
|
2172 |
11 Dec 13 |
nicklas |
147 |
text-align: left; |
2172 |
11 Dec 13 |
nicklas |
148 |
font-size: 1em; |
2172 |
11 Dec 13 |
nicklas |
149 |
padding: 2px; |
2172 |
11 Dec 13 |
nicklas |
150 |
} |
2172 |
11 Dec 13 |
nicklas |
151 |
|
2172 |
11 Dec 13 |
nicklas |
152 |
div.paraffinblock .header .big |
2172 |
11 Dec 13 |
nicklas |
153 |
{ |
2172 |
11 Dec 13 |
nicklas |
154 |
font-size: 1.25em; |
2172 |
11 Dec 13 |
nicklas |
155 |
} |
2172 |
11 Dec 13 |
nicklas |
156 |
|
2172 |
11 Dec 13 |
nicklas |
157 |
div.paraffinblock .block |
2172 |
11 Dec 13 |
nicklas |
158 |
{ |
1591 |
21 Mar 12 |
nicklas |
159 |
width: 100%; |
2172 |
11 Dec 13 |
nicklas |
160 |
height: 7cm; |
1591 |
21 Mar 12 |
nicklas |
161 |
border-collapse: collapse; |
1591 |
21 Mar 12 |
nicklas |
162 |
border: 1px solid #000000; |
1591 |
21 Mar 12 |
nicklas |
163 |
} |
1591 |
21 Mar 12 |
nicklas |
164 |
|
2172 |
11 Dec 13 |
nicklas |
165 |
div.paraffinblock .block td |
1591 |
21 Mar 12 |
nicklas |
166 |
{ |
1591 |
21 Mar 12 |
nicklas |
167 |
vertical-align: top; |
1591 |
21 Mar 12 |
nicklas |
168 |
border: 1px solid #000000; |
2172 |
11 Dec 13 |
nicklas |
169 |
padding: 4px; |
1668 |
25 May 12 |
nicklas |
170 |
width: 50%; |
2172 |
11 Dec 13 |
nicklas |
171 |
text-align: center; |
1591 |
21 Mar 12 |
nicklas |
172 |
} |
1690 |
07 Jun 12 |
nicklas |
173 |
|
2172 |
11 Dec 13 |
nicklas |
174 |
div.paraffinblock .block td img |
1690 |
07 Jun 12 |
nicklas |
175 |
{ |
2172 |
11 Dec 13 |
nicklas |
176 |
float: left; |
2172 |
11 Dec 13 |
nicklas |
177 |
margin-right: -16px; |
1690 |
07 Jun 12 |
nicklas |
178 |
} |
1691 |
07 Jun 12 |
nicklas |
179 |
</style> |
2785 |
10 Oct 14 |
nicklas |
180 |
</base:head> |
2785 |
10 Oct 14 |
nicklas |
181 |
<base:body> |
2785 |
10 Oct 14 |
nicklas |
182 |
<div class="paper"> |
2785 |
10 Oct 14 |
nicklas |
183 |
|
2785 |
10 Oct 14 |
nicklas |
184 |
<form name="reggie" id="wizard"> |
1690 |
07 Jun 12 |
nicklas |
185 |
|
2785 |
10 Oct 14 |
nicklas |
186 |
<div id="all-protocol" style="display: none;"> |
2785 |
10 Oct 14 |
nicklas |
187 |
|
2785 |
10 Oct 14 |
nicklas |
188 |
<div id="print-instructions" class="noprint fullwidth"> |
2970 |
24 Nov 14 |
nicklas |
189 |
<base:button id="print-button" image="<%=home+"/images/print.png"%>" title="Print…" /> |
5309 |
15 Feb 19 |
nicklas |
190 |
<b>Download labels</b> |
5309 |
15 Feb 19 |
nicklas |
191 |
<base:icon subclass="link" id="downloadLabelsCsv" image="<%=home + "/images/download.png"%>" |
5309 |
15 Feb 19 |
nicklas |
192 |
data-list-id="<%=listId%>" data-format="csv" title="Download labels as a tab-separated text file (csv)">CSV</base:icon> |
5309 |
15 Feb 19 |
nicklas |
193 |
<base:icon subclass="link" id="downloadLabelsXlsx" image="<%=home + "/images/download.png"%>" |
5309 |
15 Feb 19 |
nicklas |
194 |
data-list-id="<%=listId%>" data-format="xlsx" title="Download lables as an Excel worksheet file (xlsx)">Excel</base:icon> |
2785 |
10 Oct 14 |
nicklas |
195 |
<br clear="all"> |
1591 |
21 Mar 12 |
nicklas |
196 |
</div> |
2785 |
10 Oct 14 |
nicklas |
197 |
|
1591 |
21 Mar 12 |
nicklas |
198 |
<% |
1591 |
21 Mar 12 |
nicklas |
199 |
int pageNo = 0; |
1669 |
29 May 12 |
nicklas |
200 |
for (int blockNo = 0; blockNo < totalBlocks; ++blockNo) |
1591 |
21 Mar 12 |
nicklas |
201 |
{ |
1684 |
04 Jun 12 |
nicklas |
202 |
AnyToAny link = AnyToAny.getByName(dc, workList, "block."+(blockNo+1)); |
1684 |
04 Jun 12 |
nicklas |
203 |
BioPlate block = (BioPlate)link.getTo(); |
1669 |
29 May 12 |
nicklas |
204 |
int offset = SAMPLES_PER_BLOCK * blockNo; |
1591 |
21 Mar 12 |
nicklas |
205 |
if (blockNo % BLOCKS_PER_PAGE == 0) |
1591 |
21 Mar 12 |
nicklas |
206 |
{ |
1591 |
21 Mar 12 |
nicklas |
207 |
pageNo++; |
1591 |
21 Mar 12 |
nicklas |
208 |
%> |
1591 |
21 Mar 12 |
nicklas |
209 |
<div class="<%=blockNo > 0 ? "pagebreak" : ""%>"></div> |
2785 |
10 Oct 14 |
nicklas |
210 |
<h1>Lab protocol for FFPE/HE v.1.0 <span class="reggie">Page <%=pageNo %> of <%=totalPages %></span></h1> |
2172 |
11 Dec 13 |
nicklas |
211 |
|
1667 |
23 May 12 |
nicklas |
212 |
<table class="protocolheader"> |
2172 |
11 Dec 13 |
nicklas |
213 |
<tr style="border-bottom: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
214 |
<th style="width: 15%;">Work list</th> |
2172 |
11 Dec 13 |
nicklas |
215 |
<td style="width: 30%; border-right: 1px solid #000000;"><%=HTML.encodeTags(workList.getName())%></td> |
1591 |
21 Mar 12 |
nicklas |
216 |
</tr> |
1591 |
21 Mar 12 |
nicklas |
217 |
<tr> |
2172 |
11 Dec 13 |
nicklas |
218 |
<td rowspan="1" colspan="2" style="width: 50%; border-right: 1px solid #000000;"><%=HTML.niceFormat(workList.getDescription()) %></td> |
1681 |
01 Jun 12 |
nicklas |
219 |
</tr> |
1591 |
21 Mar 12 |
nicklas |
220 |
</table> |
1591 |
21 Mar 12 |
nicklas |
221 |
<% |
1591 |
21 Mar 12 |
nicklas |
222 |
} |
1591 |
21 Mar 12 |
nicklas |
223 |
%> |
1667 |
23 May 12 |
nicklas |
224 |
<div class="paraffinblock"> |
2595 |
20 Aug 14 |
nicklas |
225 |
<table style="width: 100%; border: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
226 |
<tr> |
2172 |
11 Dec 13 |
nicklas |
227 |
<td style="width: 50%;"> |
2172 |
11 Dec 13 |
nicklas |
228 |
|
2172 |
11 Dec 13 |
nicklas |
229 |
<table class="header"> |
2172 |
11 Dec 13 |
nicklas |
230 |
<tr class="big"> |
2172 |
11 Dec 13 |
nicklas |
231 |
<th style="width: 35%;">Block</th> |
2172 |
11 Dec 13 |
nicklas |
232 |
<td colspan="2" style="width: 65%;"><%=block.getName() %></td> |
2172 |
11 Dec 13 |
nicklas |
233 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
234 |
|
2172 |
11 Dec 13 |
nicklas |
235 |
<tr style="border-top: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
236 |
<th>Storage box</th> |
2172 |
11 Dec 13 |
nicklas |
237 |
<td colspan="2" style="border-right: 1px solid #000000;"></td> |
2172 |
11 Dec 13 |
nicklas |
238 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
239 |
|
2172 |
11 Dec 13 |
nicklas |
240 |
<tr style="border-top: 1px solid #cccccc;"> |
2172 |
11 Dec 13 |
nicklas |
241 |
<th>Embedding</th> |
2172 |
11 Dec 13 |
nicklas |
242 |
<td style="width: 32%; border-right: 1px solid #cccccc;"></td> |
2172 |
11 Dec 13 |
nicklas |
243 |
<td style="width: 33%;"></td> |
2172 |
11 Dec 13 |
nicklas |
244 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
245 |
|
2172 |
11 Dec 13 |
nicklas |
246 |
<tr class="big" style="border-top: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
247 |
<th>Slides</th> |
2172 |
11 Dec 13 |
nicklas |
248 |
<td colspan="2"><%=block.getName().replace("PB", "HE") %>.#</td> |
2172 |
11 Dec 13 |
nicklas |
249 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
250 |
|
2172 |
11 Dec 13 |
nicklas |
251 |
<tr style="border-top: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
252 |
<th>Storage box/pos</th> |
2172 |
11 Dec 13 |
nicklas |
253 |
<td style="border-right: 1px solid #cccccc;"></td> |
2172 |
11 Dec 13 |
nicklas |
254 |
<td></td> |
2172 |
11 Dec 13 |
nicklas |
255 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
256 |
|
2172 |
11 Dec 13 |
nicklas |
257 |
<tr style="border-top: 1px solid #cccccc;"> |
2172 |
11 Dec 13 |
nicklas |
258 |
<th>Sectioning</th> |
2172 |
11 Dec 13 |
nicklas |
259 |
<td style="border-right: 1px solid #cccccc;"></td> |
2172 |
11 Dec 13 |
nicklas |
260 |
<td></td> |
2172 |
11 Dec 13 |
nicklas |
261 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
262 |
|
2172 |
11 Dec 13 |
nicklas |
263 |
<tr style="border-top: 1px solid #cccccc;"> |
2172 |
11 Dec 13 |
nicklas |
264 |
<th>Staining</th> |
2172 |
11 Dec 13 |
nicklas |
265 |
<td style="border-right: 1px solid #cccccc;"></td> |
2172 |
11 Dec 13 |
nicklas |
266 |
<td></td> |
2172 |
11 Dec 13 |
nicklas |
267 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
268 |
|
2172 |
11 Dec 13 |
nicklas |
269 |
<tr style="border-top: 1px solid #000000;"> |
2172 |
11 Dec 13 |
nicklas |
270 |
<td colspan="3" style="height: 5em;"> </td> |
2172 |
11 Dec 13 |
nicklas |
271 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
272 |
</table> |
2172 |
11 Dec 13 |
nicklas |
273 |
</td> |
2172 |
11 Dec 13 |
nicklas |
274 |
|
2172 |
11 Dec 13 |
nicklas |
275 |
<td style="width: 50%;"> |
2172 |
11 Dec 13 |
nicklas |
276 |
<table class="block"> |
2172 |
11 Dec 13 |
nicklas |
277 |
<tr> |
2172 |
11 Dec 13 |
nicklas |
278 |
<td> |
2172 |
11 Dec 13 |
nicklas |
279 |
<img src="../images/3.png"><%=getSampleForLocation(histology, offset, 3) %> |
1699 |
12 Jun 12 |
nicklas |
280 |
</td> |
2172 |
11 Dec 13 |
nicklas |
281 |
<td> |
2172 |
11 Dec 13 |
nicklas |
282 |
<img src="../images/6.png"><i>Not used</i> |
2172 |
11 Dec 13 |
nicklas |
283 |
</td> |
2172 |
11 Dec 13 |
nicklas |
284 |
</tr> |
1699 |
12 Jun 12 |
nicklas |
285 |
|
2172 |
11 Dec 13 |
nicklas |
286 |
<tr> |
2172 |
11 Dec 13 |
nicklas |
287 |
<td> |
2172 |
11 Dec 13 |
nicklas |
288 |
<img src="../images/2.png"><%=getSampleForLocation(histology, offset, 2) %> |
1699 |
12 Jun 12 |
nicklas |
289 |
</td> |
2172 |
11 Dec 13 |
nicklas |
290 |
<td> |
2172 |
11 Dec 13 |
nicklas |
291 |
<img src="../images/5.png"><%=getSampleForLocation(histology, offset, 5) %> |
2172 |
11 Dec 13 |
nicklas |
292 |
</td> |
2172 |
11 Dec 13 |
nicklas |
293 |
</tr> |
2172 |
11 Dec 13 |
nicklas |
294 |
|
2172 |
11 Dec 13 |
nicklas |
295 |
<tr> |
2172 |
11 Dec 13 |
nicklas |
296 |
<td> |
2172 |
11 Dec 13 |
nicklas |
297 |
<img src="../images/1.png"><%=getSampleForLocation(histology, offset, 1) %> |
2172 |
11 Dec 13 |
nicklas |
298 |
</td> |
2172 |
11 Dec 13 |
nicklas |
299 |
<td> |
2172 |
11 Dec 13 |
nicklas |
300 |
<img src="../images/4.png"><%=getSampleForLocation(histology, offset, 4) %> |
2172 |
11 Dec 13 |
nicklas |
301 |
</td> |
2172 |
11 Dec 13 |
nicklas |
302 |
</tr> |
1699 |
12 Jun 12 |
nicklas |
303 |
</table> |
1591 |
21 Mar 12 |
nicklas |
304 |
|
1591 |
21 Mar 12 |
nicklas |
305 |
</td> |
2172 |
11 Dec 13 |
nicklas |
306 |
</tr> |
1591 |
21 Mar 12 |
nicklas |
307 |
</table> |
2172 |
11 Dec 13 |
nicklas |
308 |
|
1591 |
21 Mar 12 |
nicklas |
309 |
</div> |
1591 |
21 Mar 12 |
nicklas |
310 |
<% |
1591 |
21 Mar 12 |
nicklas |
311 |
} |
1591 |
21 Mar 12 |
nicklas |
312 |
%> |
1849 |
18 Feb 13 |
nicklas |
313 |
</div> |
2785 |
10 Oct 14 |
nicklas |
314 |
</form> |
2785 |
10 Oct 14 |
nicklas |
315 |
</div> |
2785 |
10 Oct 14 |
nicklas |
316 |
</base:body> |
2785 |
10 Oct 14 |
nicklas |
317 |
</base:page> |
1591 |
21 Mar 12 |
nicklas |
318 |
<% |
1591 |
21 Mar 12 |
nicklas |
319 |
} |
1591 |
21 Mar 12 |
nicklas |
320 |
finally |
1591 |
21 Mar 12 |
nicklas |
321 |
{ |
1591 |
21 Mar 12 |
nicklas |
322 |
if (dc != null) dc.close(); |
1591 |
21 Mar 12 |
nicklas |
323 |
} |
1591 |
21 Mar 12 |
nicklas |
324 |
%> |