source: extensions/net.sf.basedb.reggie/branches/ticket-422/resources/index.jsp @ 1815

Last change on this file since 1815 was 1815, checked in by Nicklas Nordborg, 10 years ago

References #422 and #423. Rearranged the Reggie main page since it was becoming a bit unbalanced. Moved all lab-related wizards to the left column and all administrative wizards to the right column. Added a new section for pooling and flow-cell related wizards and changed the icon for the barcoding and library preparation wizards.

File size: 9.3 KB
Line 
1<%@ page
2  pageEncoding="UTF-8"
3  session="false"
4  import="net.sf.basedb.core.Application"
5  import="net.sf.basedb.core.User"
6  import="net.sf.basedb.core.Role"
7  import="net.sf.basedb.core.Group"
8  import="net.sf.basedb.core.DbControl"
9  import="net.sf.basedb.core.Item"
10  import="net.sf.basedb.core.Permission"
11  import="net.sf.basedb.core.SessionControl"
12  import="net.sf.basedb.core.SystemItems"
13  import="net.sf.basedb.core.ItemQuery"
14  import="net.sf.basedb.core.query.Expressions"
15  import="net.sf.basedb.core.query.Hql"
16  import="net.sf.basedb.core.query.Restrictions"
17  import="net.sf.basedb.clients.web.Base"
18  import="net.sf.basedb.clients.web.util.HTML"
19  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
20  import="net.sf.basedb.util.Values"
21  import="java.util.List"
22%>
23<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
24<%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
25<%
26final SessionControl sc = Base.getExistingSessionControl(request, true);
27final String ID = sc.getId();
28final float scale = Base.getScale(sc);
29final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
30DbControl dc = null;
31try
32{
33  dc = sc.newDbControl();
34  final User user = User.getById(dc, sc.getLoggedInUserId());
35 
36  boolean isAdmin = user.getId() == SystemItems.getId(User.ROOT);
37  boolean isPatientCurator = false;
38  boolean hasCreateSamplePermission = sc.hasPermission(Permission.CREATE, Item.SAMPLE);
39  boolean hasCreateExtractPermission = sc.hasPermission(Permission.CREATE, Item.EXTRACT);
40  boolean hasCreateBioPlatePermission = sc.hasPermission(Permission.CREATE, Item.BIOPLATE);
41  if (!isAdmin)
42  {
43    try
44    {
45      Role admin = Role.getById(dc, SystemItems.getId(Role.ADMINISTRATOR));
46      isAdmin = sc.isMemberOf(admin);
47    }
48    catch (RuntimeException ex)
49    {}
50  }
51  try
52  {
53    ItemQuery<Group> query = Group.getQuery();
54    query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string("PatientCurator")));
55    List<Group> result = query.list(dc);
56    if (result.size() == 1)
57    {
58      isPatientCurator = sc.isMemberOf(result.get(0));
59    }
60  }
61  catch (RuntimeException ex)
62  {}
63%>
64<base:page type="default" >
65<base:head styles="path.css">
66  <link rel="stylesheet" type="text/css" href="css/reggie.css">
67<style>
68dl
69{
70  margin-top: 0px;
71  padding: 3px;
72}
73dt
74{
75  margin-top: 0.5em;
76  margin-left: 0.5em;
77}
78dd
79{
80  margin-left: 0.5em;
81  margin-bottom: 0.5em;
82}
83ul
84{
85  margin-top: 0px;
86  margin-bottom: 0px;
87}
88img
89{
90  vertical-align: text-bottom;
91}
92h3
93{
94  color: #333377;
95  background: #E8E8E8;
96  font-weight: bold;
97  margin-bottom: 0em;
98  padding: 1px 4px 1px 4px;
99  border: 1px solid #A0A0A0;
100  font-size: 1em;
101}
102</style>
103</base:head>
104<base:body>
105
106  <p:path><p:pathelement title="Reggie" /></p:path>
107
108  <div class="content">
109    <div class="absolutefull" style="width: 50%;">
110      <div class="absolutefull" style="left: 1em; right: 0.5em; ">
111     
112        <h3>Sample processing wizards</h3>
113        <dl class="leftborder rightborder bottomborder">
114        <%
115        if (hasCreateSamplePermission)
116        {
117          %>
118          <dt>
119            <base:icon image="<%=home+"/images/specimen.png" %>" />
120            <a href="specimentube.jsp?ID=<%=ID%>">Specimen tube registration</a>
121          </dt>
122          <dd>
123            <ul>
124            <li>Register new specimen tubes.
125            <li>Update existing specimen tubes.
126            </ul>
127          </dd>
128          <%
129        }
130        if (hasCreateSamplePermission && hasCreateExtractPermission)
131        {
132          %>
133          <dt>
134            <base:icon image="<%=home+"/images/partition.png" %>" />
135            <a href="partitionform.jsp?ID=<%=ID%>">Partition wizard</a>
136          </dt>
137          <dd>
138            <ul>
139            <li>Register new partitions of existing specimens.
140            </ul>
141          </dd>
142          <%
143        }
144        if (hasCreateSamplePermission && hasCreateBioPlatePermission)
145        {
146          %>
147          <dt>
148            <base:icon image="<%=home+"/images/microscope.png" %>" />
149            Histology wizards
150          </dt>
151          <dd>
152            <ul>
153            <li><a href="histology_protocol.jsp?ID=<%=ID%>">Lab tracking protocol for FFPE/HE</a>
154            <li><a href="histology_block.jsp?ID=<%=ID%>">Register paraffin blocks</a>
155            <li><a href="histology_glass.jsp?ID=<%=ID%>">Register histology HE glass information</a>
156            </ul>
157          </dd>
158          <%
159        }
160        if (hasCreateExtractPermission)
161        {
162          %>
163          <dt>
164            <base:icon image="<%=home+"/images/extraction.png" %>" />
165            DNA/RNA extraction wizards
166          </dt>
167          <dd>
168            <ul>
169            <li><a href="allprep_protocol.jsp?ID=<%=ID%>">Lab tracking protocol for Allprep isolation</a>
170            <li><a href="extraction_registration.jsp?ID=<%=ID%>">DNA/RNA/FlowThrough registration</a>
171            </ul>
172          </dd>
173          <dt>
174            <base:icon image="<%=home+"/images/rnaqc.png" %>" />
175            RNA quality control wizards
176          </dt>
177          <dd>
178            <ul>
179            <li><a href="rnaqc_aliquot.jsp?ID=<%=ID%>">Create aliquots on Bioanalyzer/Caliper plates</a>
180            <li><a href="rnaqc_plate_export.jsp?ID=<%=ID%>">Export Caliper sample names and run parameters</a>
181            <li><a href="rnaqc_plate_import.jsp?ID=<%=ID%>">Import RQS scores from Caliper well table file</a>
182            </ul>
183          </dd>
184          <%
185        }
186        %>       
187        </dl>
188     
189     
190        <h3>Library preparation wizards</h3>
191        <dl class="leftborder rightborder bottomborder">
192        <%
193        if (hasCreateExtractPermission && hasCreateBioPlatePermission)
194        {
195          %>
196          <dt>
197            <base:icon image="<%=home+"/images/pipette.png" %>" />
198            RNA to cDNA wizards
199          </dt>
200          <dd>
201            <ul>
202            <li><a href="libprep/select_rna.jsp?ID=<%=ID%>">Create new mRNA plate</a>
203            <li><a href="libprep/mrna_protocol.jsp?ID=<%=ID%>">Lab protocols and files for mRNA and cDNA preparation</a>
204            <li><a href="libprep/mrna_registration.jsp?ID=<%=ID%>">mRNA registration and quality control results</a>
205            <li><a href="libprep/cdna_registration.jsp?ID=<%=ID%>">cDNA registration</a>
206            </ul>
207          </dd>
208         
209          <dt>
210            <base:icon image="<%=home+"/images/libprep.png" %>" />
211            Library preparation wizards
212          </dt>
213          <dd>
214            <ul>
215            <li><a href="libprep/assign_barcode.jsp?ID=<%=ID%>">Assign barcodes to cDNA plate</a>
216            <li><a href="libprep/libprep_protocol.jsp?ID=<%=ID%>">Lab protocols and files for library preparation</a>
217            <li><a href="libprep/lib_registration.jsp?ID=<%=ID%>">Library registration and quality control results</a>
218            </ul>
219          </dd>
220          <dt>
221            <base:icon image="<%=home+"/images/flowcell.png" %>" />
222            Pooling and clustering wizards
223          </dt>
224          <dd>
225            <ul>
226            <li><a href="libprep/pool_registration.jsp?ID=<%=ID%>">Register pooled libraries</a>
227            <li><a href="libprep/flowcell_registration.jsp?ID=<%=ID%>">Register flow cells</a>
228            </ul>
229          </dd>
230          <%
231        }
232        %>
233        </dl>
234      </div>
235    </div>
236   
237    <div class="absolutefull" style="width: 50%; left: auto;">
238      <div class="absolutefull" style="left: 0.5em; right: 1em;">
239        <%
240        if (isAdmin)
241        {
242          %>
243          <h3>Server administrator wizards</h3>
244          <dl class="leftborder rightborder bottomborder">
245          <dt>
246            <base:icon image="<%=home + "/images/install.png" %>" />
247            <a href="install.jsp?ID=<%=ID%>">Installation wizard</a>
248          </dt>
249          <dd>
250            <ul>
251            <li>Check that annotation types and other items used by Reggie exists in BASE.
252            <li>Create missing items.
253            </ul>
254          </dd>
255          </dl>
256          <%
257        }
258        if (isPatientCurator || isAdmin)
259        {
260          %>
261          <h3>Personal information wizards</h3>
262          <dl class="leftborder rightborder bottomborder">
263          <dt>
264            <base:icon image="<%=home + "/images/personal.png" %>"/>
265            <a href="persinfo.jsp?ID=<%=ID%>">Pathology referral form registration</a>
266          </dt>
267          <dd>
268            <ul>
269            <li>Register new cases and patients.
270            <li>Update existing cases and specimen tubes.
271            </ul>
272          </dd>
273         
274          <dt>
275            <base:icon image="<%=home + "/images/blood.png" %>"/>
276            <a href="bloodform.jsp?ID=<%=ID%>">Blood referral form registration</a>
277          </dt>
278          <dd>
279            <ul>
280            <li>Register new blood referral forms and patients.
281            <li>Update information for existing blood referral forms.
282            </ul>
283          </dd>
284         
285          <dt>
286            <base:icon image="<%=home+"/images/consent.png" %>"/>
287            <a href="consentform.jsp?ID=<%=ID%>">Consent form registration</a>
288          </dt>
289          <dd>
290            <ul>
291            <li>Register consent forms.
292            </ul>
293          </dd>
294         
295          <dt>
296            <base:icon image="<%=home+"/images/export_import.png" %>" />
297            Export/import information to/from external registers.
298          </dt>
299          <dd>
300            <ul>
301            <li><a href="export_monthly_oplist.jsp?ID=<%=ID%>">Export monthly operation list</a>
302            </ul>
303          </dd>
304          </dl>
305          <%
306        }
307        %>
308       
309        <h3>Statistics and reporting wizards</h3>
310        <dl class="leftborder rightborder bottomborder">
311          <dt>
312            <base:icon image="<%=home+"/images/report.png" %>" />
313            <a href="samplereportgenerator.jsp?ID=<%=ID%>">Report generator</a>
314          </dt>       
315          <dd>       
316            <ul>
317            <li>Sample count report</li> 
318            <li>Consent count report</li> 
319            <li>Patient count report</li> 
320            <li>Overview report</li> 
321            <li>Missing sample data report</li> 
322            </ul>
323          </dd>
324        </dl>
325
326      </div>
327    </div>
328
329  </div>
330 
331</base:body>
332</base:page>
333<%
334}
335finally
336{
337  if (dc != null) dc.close();
338}
339%>
Note: See TracBrowser for help on using the repository browser.