2903 |
06 Nov 14 |
nicklas |
1 |
<%@ page |
2903 |
06 Nov 14 |
nicklas |
2 |
pageEncoding="UTF-8" |
2903 |
06 Nov 14 |
nicklas |
3 |
session="false" |
2903 |
06 Nov 14 |
nicklas |
4 |
import="net.sf.basedb.core.User" |
2903 |
06 Nov 14 |
nicklas |
5 |
import="net.sf.basedb.core.DbControl" |
2903 |
06 Nov 14 |
nicklas |
6 |
import="net.sf.basedb.core.SessionControl" |
2903 |
06 Nov 14 |
nicklas |
7 |
import="net.sf.basedb.core.Application" |
2903 |
06 Nov 14 |
nicklas |
8 |
import="net.sf.basedb.util.Values" |
2903 |
06 Nov 14 |
nicklas |
9 |
import="net.sf.basedb.util.formatter.DateFormatter" |
2903 |
06 Nov 14 |
nicklas |
10 |
import="net.sf.basedb.util.formatter.Formatter" |
2903 |
06 Nov 14 |
nicklas |
11 |
import="net.sf.basedb.util.extensions.Extension" |
2903 |
06 Nov 14 |
nicklas |
12 |
import="net.sf.basedb.clients.web.Base" |
2903 |
06 Nov 14 |
nicklas |
13 |
import="net.sf.basedb.clients.web.util.HTML" |
2903 |
06 Nov 14 |
nicklas |
14 |
import="net.sf.basedb.clients.web.extensions.ExtensionsControl" |
2903 |
06 Nov 14 |
nicklas |
15 |
import="java.util.Arrays" |
2903 |
06 Nov 14 |
nicklas |
16 |
import="java.util.Date" |
2903 |
06 Nov 14 |
nicklas |
17 |
%> |
2903 |
06 Nov 14 |
nicklas |
18 |
<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> |
2903 |
06 Nov 14 |
nicklas |
19 |
<%@ taglib prefix="p" uri="/WEB-INF/path.tld" %> |
2903 |
06 Nov 14 |
nicklas |
20 |
<% |
3976 |
26 May 16 |
nicklas |
21 |
final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true); |
2903 |
06 Nov 14 |
nicklas |
22 |
final String ID = sc.getId(); |
2903 |
06 Nov 14 |
nicklas |
23 |
final float scale = Base.getScale(sc); |
2903 |
06 Nov 14 |
nicklas |
24 |
final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie"); |
2903 |
06 Nov 14 |
nicklas |
25 |
final Formatter dateFormat = new DateFormatter("yyyyMMdd"); |
2903 |
06 Nov 14 |
nicklas |
26 |
DbControl dc = null; |
2903 |
06 Nov 14 |
nicklas |
27 |
try |
2903 |
06 Nov 14 |
nicklas |
28 |
{ |
2903 |
06 Nov 14 |
nicklas |
29 |
dc = sc.newDbControl(); |
2903 |
06 Nov 14 |
nicklas |
30 |
final Extension reggie = ExtensionsControl.get(dc).getExtension("net.sf.basedb.reggie"); |
2903 |
06 Nov 14 |
nicklas |
31 |
final User user = User.getById(dc, sc.getLoggedInUserId()); |
2903 |
06 Nov 14 |
nicklas |
32 |
String[] rna = request.getParameterValues("rna"); |
2903 |
06 Nov 14 |
nicklas |
33 |
if (request.getParameter("restart") != null) rna = null; |
2903 |
06 Nov 14 |
nicklas |
34 |
%> |
2903 |
06 Nov 14 |
nicklas |
35 |
<base:page type="default" > |
2903 |
06 Nov 14 |
nicklas |
36 |
<base:head |
2903 |
06 Nov 14 |
nicklas |
37 |
scripts="~../reggie-2.js,~rna_normalization.js" |
5360 |
12 Apr 19 |
nicklas |
38 |
styles="path.css,~../css/reggie-2.css,~../css/normalize_extract.css" |
2903 |
06 Nov 14 |
nicklas |
39 |
> |
2903 |
06 Nov 14 |
nicklas |
40 |
|
2903 |
06 Nov 14 |
nicklas |
41 |
<style> |
2903 |
06 Nov 14 |
nicklas |
42 |
tr.highlight |
2903 |
06 Nov 14 |
nicklas |
43 |
{ |
3026 |
11 Dec 14 |
nicklas |
44 |
border-top-width: 1px; |
3026 |
11 Dec 14 |
nicklas |
45 |
border-top-style: dotted; |
2903 |
06 Nov 14 |
nicklas |
46 |
} |
2903 |
06 Nov 14 |
nicklas |
47 |
|
5360 |
12 Apr 19 |
nicklas |
48 |
#extractTable |
2903 |
06 Nov 14 |
nicklas |
49 |
{ |
3026 |
11 Dec 14 |
nicklas |
50 |
border-width: 0; |
2903 |
06 Nov 14 |
nicklas |
51 |
font-size: 100%; |
2903 |
06 Nov 14 |
nicklas |
52 |
} |
2903 |
06 Nov 14 |
nicklas |
53 |
|
5360 |
12 Apr 19 |
nicklas |
54 |
#extractTable td:first-child, #extractTable th:first-child |
2903 |
06 Nov 14 |
nicklas |
55 |
{ |
3026 |
11 Dec 14 |
nicklas |
56 |
border-left-width: 0; |
2903 |
06 Nov 14 |
nicklas |
57 |
} |
2903 |
06 Nov 14 |
nicklas |
58 |
|
2903 |
06 Nov 14 |
nicklas |
59 |
#protocol-header |
2903 |
06 Nov 14 |
nicklas |
60 |
{ |
2903 |
06 Nov 14 |
nicklas |
61 |
display: none; |
2903 |
06 Nov 14 |
nicklas |
62 |
} |
6726 |
04 May 22 |
nicklas |
63 |
#protocol-footer |
6726 |
04 May 22 |
nicklas |
64 |
{ |
6726 |
04 May 22 |
nicklas |
65 |
border-top-width: 1px; |
6726 |
04 May 22 |
nicklas |
66 |
padding: 0.5em; |
6726 |
04 May 22 |
nicklas |
67 |
} |
2903 |
06 Nov 14 |
nicklas |
68 |
</style> |
2903 |
06 Nov 14 |
nicklas |
69 |
|
2903 |
06 Nov 14 |
nicklas |
70 |
</base:head> |
2903 |
06 Nov 14 |
nicklas |
71 |
<base:body> |
2903 |
06 Nov 14 |
nicklas |
72 |
|
2903 |
06 Nov 14 |
nicklas |
73 |
<p:path><p:pathelement |
2903 |
06 Nov 14 |
nicklas |
74 |
title="Reggie" href="<%="../index.jsp?ID="+ID%>" |
2903 |
06 Nov 14 |
nicklas |
75 |
/><p:pathelement title="RNA concentration normalization" |
2903 |
06 Nov 14 |
nicklas |
76 |
/></p:path> |
2903 |
06 Nov 14 |
nicklas |
77 |
|
2903 |
06 Nov 14 |
nicklas |
78 |
<div class="content"> |
2903 |
06 Nov 14 |
nicklas |
79 |
|
2903 |
06 Nov 14 |
nicklas |
80 |
<div id="page-data" class="datacontainer" |
2903 |
06 Nov 14 |
nicklas |
81 |
data-rna-id="[<%=rna == null ? "" : Values.getString(Arrays.asList(rna), ",", true) %>]" |
3741 |
12 Feb 16 |
nicklas |
82 |
data-home-url="<%=home%>" |
2903 |
06 Nov 14 |
nicklas |
83 |
></div> |
2903 |
06 Nov 14 |
nicklas |
84 |
|
2903 |
06 Nov 14 |
nicklas |
85 |
<form name="reggie" id="wizard" class="wizard"> |
2903 |
06 Nov 14 |
nicklas |
86 |
|
2903 |
06 Nov 14 |
nicklas |
<!-- 1. RNA selection --> |
2903 |
06 Nov 14 |
nicklas |
88 |
<div class="step auto-hide" id="step-1"> |
2903 |
06 Nov 14 |
nicklas |
89 |
<div class="step-no">1</div> |
2903 |
06 Nov 14 |
nicklas |
90 |
<div class="step-title">Select RNA</div> |
2903 |
06 Nov 14 |
nicklas |
91 |
<div class="step-content"> |
2903 |
06 Nov 14 |
nicklas |
92 |
|
2903 |
06 Nov 14 |
nicklas |
93 |
<table class="step-form"> |
2903 |
06 Nov 14 |
nicklas |
94 |
<tr class="align-top"> |
2903 |
06 Nov 14 |
nicklas |
95 |
<td class="prompt">RNA extracts</td> |
2903 |
06 Nov 14 |
nicklas |
96 |
<td class="input" rowspan="2"> |
3741 |
12 Feb 16 |
nicklas |
97 |
<select name="rna" id="rna" class="yellow-label-support" multiple size="15"></select> |
2903 |
06 Nov 14 |
nicklas |
98 |
|
2903 |
06 Nov 14 |
nicklas |
99 |
<base:buttongroup style="margin-top: 0.5em;"> |
2903 |
06 Nov 14 |
nicklas |
100 |
<base:button id="btnSelectRna" title="Select manually…" /> |
2903 |
06 Nov 14 |
nicklas |
101 |
</base:buttongroup> |
2903 |
06 Nov 14 |
nicklas |
102 |
</td> |
2903 |
06 Nov 14 |
nicklas |
103 |
<td class="status" id="rna.status"></td> |
2903 |
06 Nov 14 |
nicklas |
104 |
<td class="help"> |
2903 |
06 Nov 14 |
nicklas |
105 |
<span id="rna.message" class="message"></span> |
2903 |
06 Nov 14 |
nicklas |
106 |
The list contain RNA extracts that has been selected |
2903 |
06 Nov 14 |
nicklas |
107 |
for pre-normalization. The list is sorted by Qiacube run and |
2903 |
06 Nov 14 |
nicklas |
108 |
position. |
3741 |
12 Feb 16 |
nicklas |
109 |
Use the <b>Select manually</b> button for free selection.<br> |
3741 |
12 Feb 16 |
nicklas |
110 |
<base:icon image="<%=home+"/images/yellow-label.png"%>" /> = YellowLabel specimen |
2903 |
06 Nov 14 |
nicklas |
111 |
</td> |
2903 |
06 Nov 14 |
nicklas |
112 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
113 |
</table> |
2903 |
06 Nov 14 |
nicklas |
114 |
</div> |
2903 |
06 Nov 14 |
nicklas |
115 |
</div> |
2903 |
06 Nov 14 |
nicklas |
116 |
|
2903 |
06 Nov 14 |
nicklas |
117 |
<div class="step" id="step-2"> |
2903 |
06 Nov 14 |
nicklas |
118 |
<div class="step-no">2</div> |
2903 |
06 Nov 14 |
nicklas |
119 |
<div class="step-title">Normalization protocol</div> |
2903 |
06 Nov 14 |
nicklas |
120 |
<div class="step-content"> |
2903 |
06 Nov 14 |
nicklas |
121 |
|
3269 |
23 Apr 15 |
nicklas |
122 |
<table class="step-form"> |
3269 |
23 Apr 15 |
nicklas |
123 |
<tr class="align-top"> |
3269 |
23 Apr 15 |
nicklas |
124 |
<td class="prompt">Normalization protocol</td> |
3269 |
23 Apr 15 |
nicklas |
125 |
<td class="input" rowspan="2"> |
3269 |
23 Apr 15 |
nicklas |
126 |
<select name="normalizationProtocol" id="normalizationProtocol" class="required"></select> |
3269 |
23 Apr 15 |
nicklas |
127 |
</td> |
3269 |
23 Apr 15 |
nicklas |
128 |
<td class="status" id="normalizationProtocol.status"></td> |
3269 |
23 Apr 15 |
nicklas |
129 |
<td class="help"> |
3269 |
23 Apr 15 |
nicklas |
130 |
<span id="normalizationProtocol.message" class="message"></span> |
3269 |
23 Apr 15 |
nicklas |
131 |
Select the protocol that match the intended library preparation |
3269 |
23 Apr 15 |
nicklas |
132 |
protocol for the selected RNA items. RNA that |
3269 |
23 Apr 15 |
nicklas |
133 |
doesn't have enough remaining quantity for the selected |
3269 |
23 Apr 15 |
nicklas |
134 |
protocol are flagged with the NotEnoughRemainingQuantity |
3269 |
23 Apr 15 |
nicklas |
135 |
annotation. |
3269 |
23 Apr 15 |
nicklas |
136 |
</td> |
3269 |
23 Apr 15 |
nicklas |
137 |
</tr> |
3269 |
23 Apr 15 |
nicklas |
138 |
</table> |
2903 |
06 Nov 14 |
nicklas |
139 |
|
3269 |
23 Apr 15 |
nicklas |
140 |
<div id="full-protocol" class="topborder"> |
3269 |
23 Apr 15 |
nicklas |
141 |
|
2903 |
06 Nov 14 |
nicklas |
142 |
<div id="protocol-header"> |
2903 |
06 Nov 14 |
nicklas |
143 |
<h1>Lab Protocol for RNA normalization <span class="reggie">Reggie <%=reggie.getAbout().getVersion() %></span></h1> |
2903 |
06 Nov 14 |
nicklas |
144 |
|
2903 |
06 Nov 14 |
nicklas |
145 |
<table class="protocolheader"> |
2903 |
06 Nov 14 |
nicklas |
146 |
<tbody id="qiacube-info" style="display: none;"> |
2903 |
06 Nov 14 |
nicklas |
147 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
148 |
<th>Qiacube date</th> |
2903 |
06 Nov 14 |
nicklas |
149 |
<td id="qiacube-date"></td> |
2903 |
06 Nov 14 |
nicklas |
150 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
151 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
152 |
<th>Qiacube run</th> |
2903 |
06 Nov 14 |
nicklas |
153 |
<td id="qiacube-run"></td> |
2903 |
06 Nov 14 |
nicklas |
154 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
155 |
</tbody> |
2903 |
06 Nov 14 |
nicklas |
156 |
<tr> |
3269 |
23 Apr 15 |
nicklas |
157 |
<th>Normalization protocol</th> |
3269 |
23 Apr 15 |
nicklas |
158 |
<td id="normalization-protocol"></td> |
3269 |
23 Apr 15 |
nicklas |
159 |
</tr> |
3269 |
23 Apr 15 |
nicklas |
160 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
161 |
<th>Normalization date</th> |
2903 |
06 Nov 14 |
nicklas |
162 |
<td></td> |
2903 |
06 Nov 14 |
nicklas |
163 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
164 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
165 |
<th>Normalization operator</th> |
2903 |
06 Nov 14 |
nicklas |
166 |
<td></td> |
2903 |
06 Nov 14 |
nicklas |
167 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
168 |
</table> |
2903 |
06 Nov 14 |
nicklas |
169 |
</div> |
2903 |
06 Nov 14 |
nicklas |
170 |
|
2903 |
06 Nov 14 |
nicklas |
171 |
<div id="rnaNormalize"></div> |
2903 |
06 Nov 14 |
nicklas |
172 |
|
2903 |
06 Nov 14 |
nicklas |
173 |
</div> |
2903 |
06 Nov 14 |
nicklas |
174 |
|
2903 |
06 Nov 14 |
nicklas |
175 |
</div> |
2903 |
06 Nov 14 |
nicklas |
176 |
</div> |
2903 |
06 Nov 14 |
nicklas |
177 |
|
2903 |
06 Nov 14 |
nicklas |
178 |
<div class="step" id="step-3"> |
2903 |
06 Nov 14 |
nicklas |
179 |
<div class="step-no">3</div> |
2903 |
06 Nov 14 |
nicklas |
180 |
<div class="step-title">Register normalization</div> |
2903 |
06 Nov 14 |
nicklas |
181 |
<div class="step-content"> |
2903 |
06 Nov 14 |
nicklas |
182 |
|
2903 |
06 Nov 14 |
nicklas |
183 |
<table class="step-form"> |
2903 |
06 Nov 14 |
nicklas |
184 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
185 |
<td class="prompt">Normalization date</td> |
2903 |
06 Nov 14 |
nicklas |
186 |
<td class="input"> |
2903 |
06 Nov 14 |
nicklas |
187 |
<input type="text" name="normalizationDate" id="normalizationDate" |
2903 |
06 Nov 14 |
nicklas |
188 |
value="<%=dateFormat.format(new Date()) %>" |
2903 |
06 Nov 14 |
nicklas |
189 |
class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="normalizationOperator" |
2903 |
06 Nov 14 |
nicklas |
190 |
style="width: 12em;" maxlength="10"> |
2903 |
06 Nov 14 |
nicklas |
191 |
<base:icon |
2903 |
06 Nov 14 |
nicklas |
192 |
id="normalizationDateCalendar" |
2903 |
06 Nov 14 |
nicklas |
193 |
subclass="auto-init" |
2903 |
06 Nov 14 |
nicklas |
194 |
data-auto-init="calendar" |
2903 |
06 Nov 14 |
nicklas |
195 |
data-textarea-id="normalizationDate" |
2903 |
06 Nov 14 |
nicklas |
196 |
data-date-format="yyyyMMdd" |
2903 |
06 Nov 14 |
nicklas |
197 |
data-title="Normalization date" |
2903 |
06 Nov 14 |
nicklas |
198 |
image="calendar.png" |
2903 |
06 Nov 14 |
nicklas |
199 |
tooltip="Select a date from a calendar" |
2903 |
06 Nov 14 |
nicklas |
200 |
tabindex="-1" |
2903 |
06 Nov 14 |
nicklas |
201 |
/> |
2903 |
06 Nov 14 |
nicklas |
202 |
</td> |
2903 |
06 Nov 14 |
nicklas |
203 |
<td class="status" id="normalizationDate.status"></td> |
2903 |
06 Nov 14 |
nicklas |
204 |
<td class="help"> |
2903 |
06 Nov 14 |
nicklas |
205 |
<span id="normalizationDate.message" class="message"></span> |
2903 |
06 Nov 14 |
nicklas |
206 |
Date the RNA was normalized (YYYYMMDD or MMDD) |
2903 |
06 Nov 14 |
nicklas |
207 |
</td> |
2903 |
06 Nov 14 |
nicklas |
208 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
209 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
210 |
<td class="prompt">Operator</td> |
2903 |
06 Nov 14 |
nicklas |
211 |
<td class="input"> |
2903 |
06 Nov 14 |
nicklas |
212 |
<input type="text" name="normalizationOperator" id="normalizationOperator" |
2903 |
06 Nov 14 |
nicklas |
213 |
value="<%=HTML.encodeTags(user.getName()) %>" maxlength="255"> |
2903 |
06 Nov 14 |
nicklas |
214 |
</td> |
2903 |
06 Nov 14 |
nicklas |
215 |
<td class="status" id="normalizationOperator.status"></td> |
2903 |
06 Nov 14 |
nicklas |
216 |
<td class="help"> |
2903 |
06 Nov 14 |
nicklas |
217 |
<span id="normalizationOperator.message" class="message"></span> |
2903 |
06 Nov 14 |
nicklas |
218 |
</td> |
2903 |
06 Nov 14 |
nicklas |
219 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
220 |
</table> |
2903 |
06 Nov 14 |
nicklas |
221 |
|
2903 |
06 Nov 14 |
nicklas |
222 |
</div> |
2903 |
06 Nov 14 |
nicklas |
223 |
</div> |
2903 |
06 Nov 14 |
nicklas |
224 |
|
2903 |
06 Nov 14 |
nicklas |
225 |
<div id="wizard-status"></div> |
2903 |
06 Nov 14 |
nicklas |
226 |
|
2903 |
06 Nov 14 |
nicklas |
227 |
<table class="navigation" id="navigation"> |
2903 |
06 Nov 14 |
nicklas |
228 |
<tr> |
2903 |
06 Nov 14 |
nicklas |
229 |
<td><base:button id="gocancel" title="Cancel" /></td> |
2903 |
06 Nov 14 |
nicklas |
230 |
<td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td> |
2903 |
06 Nov 14 |
nicklas |
231 |
<td><base:button id="goprint" title="Print…" image="<%=home+"/images/print.png"%>" /></td> |
2903 |
06 Nov 14 |
nicklas |
232 |
<td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>" /></td> |
2903 |
06 Nov 14 |
nicklas |
233 |
<td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td> |
2903 |
06 Nov 14 |
nicklas |
234 |
<td id="gonext-message" class="message"></td> |
2903 |
06 Nov 14 |
nicklas |
235 |
</tr> |
2903 |
06 Nov 14 |
nicklas |
236 |
</table> |
2903 |
06 Nov 14 |
nicklas |
237 |
|
2903 |
06 Nov 14 |
nicklas |
238 |
</form> |
2903 |
06 Nov 14 |
nicklas |
239 |
</div> |
2903 |
06 Nov 14 |
nicklas |
240 |
|
2903 |
06 Nov 14 |
nicklas |
241 |
</base:body> |
2903 |
06 Nov 14 |
nicklas |
242 |
</base:page> |
2903 |
06 Nov 14 |
nicklas |
243 |
<% |
2903 |
06 Nov 14 |
nicklas |
244 |
} |
2903 |
06 Nov 14 |
nicklas |
245 |
finally |
2903 |
06 Nov 14 |
nicklas |
246 |
{ |
2903 |
06 Nov 14 |
nicklas |
247 |
if (dc != null) dc.close(); |
2903 |
06 Nov 14 |
nicklas |
248 |
} |
2903 |
06 Nov 14 |
nicklas |
249 |
%> |