source: extensions/net.sf.basedb.reggie/trunk/resources/index.jsp @ 2509

Last change on this file since 2509 was 2509, checked in by Nicklas Nordborg, 9 years ago

Merge Reggie 2.15.3 to the trunk.

File size: 23.5 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  if (!isAdmin)
39  {
40    try
41    {
42      Role admin = Role.getById(dc, SystemItems.getId(Role.ADMINISTRATOR));
43      isAdmin = sc.isMemberOf(admin);
44    }
45    catch (RuntimeException ex)
46    {}
47  }
48  try
49  {
50    ItemQuery<Group> query = Group.getQuery();
51    query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string("PatientCurator")));
52    List<Group> result = query.list(dc);
53    if (result.size() == 1)
54    {
55      isPatientCurator = sc.isMemberOf(result.get(0));
56    }
57  }
58  catch (RuntimeException ex)
59  {}
60%>
61<base:page type="default" >
62<base:head styles="path.css,~css/reggie.css" scripts="~index.js,~reggie.js">
63<style>
64dl
65{
66  margin-top: 0px;
67  padding: 3px;
68}
69dt
70{
71  margin-top: 0.5em;
72  margin-left: 0.5em;
73}
74dd
75{
76  margin-left: 0.5em;
77  margin-bottom: 0.5em;
78  padding-left: 3em;
79}
80ul
81{
82  margin-top: 0px;
83  margin-bottom: 0px;
84  margin-left: 0em;
85  padding-left: 0em;
86}
87li
88{
89  margin-left: 0em;
90}
91img
92{
93  vertical-align: text-bottom;
94}
95h3
96{
97  color: #333377;
98  background: #E8E8E8;
99  font-weight: bold;
100  margin-bottom: 0em;
101  padding: 1px 4px 1px 4px;
102  border: 1px solid #A0A0A0;
103  font-size: 1em;
104}
105.not-implemented
106{
107  filter: url(css/filters.svg#grayscale); /* Firfox, etc */
108  filter: gray; /* IE */
109  opacity: 0.75;
110  pointer-events: none;
111}
112
113.not-implemented:after
114{
115  content: ' -- coming soon';
116}
117.counter
118{
119  color: #999999;
120  font-style: italic;
121}
122
123.require-permission
124{
125  color: #999999;
126  font-style: italic;
127}
128
129</style>
130</base:head>
131<base:body>
132
133  <p:path><p:pathelement title="Reggie" /></p:path>
134
135  <div class="content">
136    <form name="reggie">
137    <div class="absolutefull" style="width: 33%;">
138      <div class="absolutefull" style="left: 1em; right: 0.5em; ">
139     
140        <h3>Sample processing wizards</h3>
141        <dl class="leftborder rightborder bottomborder has-lib-prep">
142
143        <dt>
144          <base:icon image="<%=home+"/images/specimen.png" %>" />
145          <span class="require-permission" data-role="SamplePrep" data-link="sampleproc/specimentube.jsp?ID=<%=ID%>"
146            >Specimen tube registration</span>
147        </dt>
148        <dd>
149          <ul>
150          <li>Register new specimen tubes.
151          <li>Update existing specimen tubes.
152          </ul>
153        </dd>
154
155        <dt>
156          <base:icon image="<%=home+"/images/partition.png" %>" />
157          <span class="require-permission" data-role="SamplePrep" data-link="sampleproc/partitionform.jsp?ID=<%=ID%>"
158            >Partition wizard</span>
159        </dt>
160        <dd>
161          <ul>
162          <li>Register new partitions of existing specimens
163            <span class="counter" id="count.specimen"
164              data-servlet="PartitionRegistration.servlet?cmd=CountSpecimenTubes" 
165              title="Number of unpartitioned specimen"><img src="images/loading-small.gif"></span>
166          </ul>
167        </dd>
168         
169        <dt>
170          <base:icon image="<%=home+"/images/extraction.png" %>" />
171          DNA/RNA extraction wizards
172        </dt>
173        <dd>
174          <ul>
175          <li><span class="require-permission" data-role="SamplePrep" data-link="sampleproc/allprep_protocol.jsp?ID=<%=ID%>"
176            >Lab tracking protocol for Allprep isolation</span> 
177            <span class="counter" id="count.lysate.1" 
178              data-servlet="Extraction.servlet?cmd=CountUnprocessedLysates"
179              title="Number of unprocessed lysates"><img src="images/loading-small.gif"></span>
180
181          <li><span class="require-permission" data-role="SamplePrep" data-link="sampleproc/extraction_registration.jsp?ID=<%=ID%>"
182            >DNA/RNA/FlowThrough registration</span> 
183            <span class="counter" id="count.lysate.2" 
184              data-copy-from="count.lysate.1"
185              title="Number of unprocessed lysates"><img src="images/loading-small.gif"></span>
186          </ul>
187        </dd>
188        <dt>
189          <base:icon image="<%=home+"/images/rnaqc.png" %>" />
190          RNA quality control wizards
191        </dt>
192        <dd>
193          <ul>
194          <li><span class="require-permission" data-role="SamplePrep" data-link="sampleproc/rnaqc_aliquot.jsp?ID=<%=ID%>"
195            >Create aliquots on Bioanalyzer/Caliper plates</span> 
196            <span class="counter" id="count.rnaqc" 
197              data-servlet="RnaQc.servlet?cmd=CountRnaExtractsWithoutQc"
198              title="Number of RNA waiting for QC"><img src="images/loading-small.gif"></span>
199         
200          <li><span class="require-permission" data-role="SamplePrep" data-link="sampleproc/rnaqc_plate_export.jsp?ID=<%=ID%>"
201            >Export Caliper sample names and run parameters</span> 
202            <span class="counter" id="count.caliper-plates.1" 
203              data-servlet="RnaQc.servlet?cmd=CountActiveRnaQcBioPlates"
204              title="Number of active Caliper plates"><img src="images/loading-small.gif"></span>
205         
206          <li><span class="require-permission" data-role="SamplePrep" data-link="sampleproc/rnaqc_plate_import.jsp?ID=<%=ID%>"
207            >Import RQS scores from Caliper well table file</span> 
208            <span class="counter" id="count.caliper-plates.2" 
209              data-copy-from="count.caliper-plates.1"
210              title="Number of active Caliper plates"><img src="images/loading-small.gif"></span>
211          </ul>
212        </dd>     
213        </dl>
214     
215        <h3>Histology wizards</h3>
216        <dl class="leftborder rightborder bottomborder">     
217        <dt>
218          <base:icon image="<%=home+"/images/histology.png" %>" />
219          Embedding and staining wizards
220        </dt>
221        <dd>
222          <ul>
223          <li><span class="require-permission" data-role="Histology" data-link="sampleproc/histology_protocol.jsp?ID=<%=ID%>"
224            >Lab tracking protocol for FFPE/HE</span> 
225            <span class="counter" id="count.histology-lists" 
226              data-servlet="Histology.servlet?cmd=CountActiveHistologyWorkLists"
227              title="Number of active histology work lists"><img src="images/loading-small.gif"></span>
228         
229          <li><span class="require-permission" data-role="Histology" data-link="sampleproc/histology_block.jsp?ID=<%=ID%>"
230            >Register paraffin blocks</span> 
231            <span class="counter" id="count.paraffin-blocks"
232              data-servlet="Histology.servlet?cmd=CountParaffinBlocks"
233              title="Number of paraffin blocks waiting for registration"><img src="images/loading-small.gif"></span>
234
235          <li><span class="require-permission" data-role="Histology" data-link="sampleproc/histology_labels.jsp?ID=<%=ID%>"
236            >Download HE glass labels</span>
237         
238          <li><span class="require-permission" data-role="Histology" data-link="sampleproc/histology_glass.jsp?ID=<%=ID%>"
239            >Register HE glass</span> 
240            <span class="counter" id="count.paraffin-blocks-without-heglass" 
241              data-servlet="Histology.servlet?cmd=CountParaffinBlocksWithoutHeGlass"
242              title="Number of paraffin blocks without HE glass"><img src="images/loading-small.gif"></span>
243        </dd>
244       
245        <dt>
246          <base:icon image="<%=home+"/images/microscope.png" %>" />
247          Scoring wizard
248        </dt>
249        <dd>
250          <li><span class="require-permission" data-role="Histology" data-link="sampleproc/histology_score.jsp?ID=<%=ID%>"
251            >Score HE glass</span> 
252            <span class="counter" id="count.unscored-heglass" 
253              data-servlet="Histology.servlet?cmd=CountUnscoredHeGlass"
254              title="Number of unscored HE glass"><img src="images/loading-small.gif"></span>
255          </ul>
256        </dd>
257        </dl>
258     
259     
260        <h3>Library preparation wizards</h3>
261        <dl class="leftborder rightborder bottomborder">
262     
263        <dt>
264          <base:icon image="<%=home+"/images/pipette.png" %>" />
265          RNA to cDNA wizards
266        </dt>
267        <dd>
268          <ul>
269          <li><span class="require-permission" data-role="LibraryPlateDesigner" data-link="libprep/select_rna.jsp?ID=<%=ID%>"
270            >Create new mRNA plate</span> 
271            <span class="counter" id="count.rna-without-mrna" 
272              data-servlet="MRna.servlet?cmd=CountRnaWithoutMRna"
273              title="Number of RNA with no mRNA"><img src="images/loading-small.gif"></span>
274         
275          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/mrna_protocol.jsp?ID=<%=ID%>"
276            >Lab protocols for mRNA and cDNA preparation</span> 
277            <span class="counter" id="count.mrna-plates" 
278              data-servlet="MRna.servlet?cmd=CountUnprocessedPlates&plateType=MRNA"
279              title="Number of mRNA plates waiting for registration"><img src="images/loading-small.gif"></span>
280         
281          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/rna_dilution_registration.jsp?ID=<%=ID%>"
282            >RNA dilution registration</span>
283            <span class="counter" id="count.undiluted-mrna-plates" 
284              data-servlet="MRna.servlet?cmd=CountUndilutedMRNAPlates"
285              title="Number of mRNA plates waiting for dilution"><img src="images/loading-small.gif"></span>
286         
287          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/mrna_registration.jsp?ID=<%=ID%>"
288            >mRNA registration and quality control results</span> 
289            <span class="counter" id="count.diluted-mrna-plates" 
290              data-servlet="MRna.servlet?cmd=CountDilutedMRNAPlates"
291              title="Number of mRNA plates waiting for registration"><img src="images/loading-small.gif"></span>
292         
293          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/cdna_registration.jsp?ID=<%=ID%>"
294            >cDNA registration</span> 
295            <span class="counter" id="count.cdna-plates.1" 
296              data-servlet="MRna.servlet?cmd=CountUnprocessedPlates&plateType=CDNA"
297              title="Number of cDNA plates waiting for registration"><img src="images/loading-small.gif"></span>
298          </ul>
299        </dd>
300       
301        <dt>
302          <base:icon image="<%=home+"/images/libprep.png" %>" />
303          Library preparation wizards
304        </dt>
305        <dd>
306          <ul>
307          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/assign_barcode.jsp?ID=<%=ID%>"
308            >Assign barcodes to cDNA plate</span> 
309            <span class="counter" id="count.cdna-plates-for-barcoding" 
310              data-servlet="LibPrep.servlet?cmd=CountCDNAPlatesForBarcoding"
311              title="Number of cDNA plates waiting for barcode layout"><img src="images/loading-small.gif"></span>
312         
313          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/libprep_protocol.jsp?ID=<%=ID%>"
314            >Lab protocols and files for library preparation</span> 
315            <span class="counter" id="count.lib-plates.1" 
316              data-servlet="LibPrep.servlet?cmd=CountLibPlatesForLibPrep"
317              title="Number of Lib plates waiting for registration"><img src="images/loading-small.gif"></span>
318         
319          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/libqc_registration.jsp?ID=<%=ID%>"
320            >Register quality control results</span> 
321            <span class="counter" id="count.lib-plates.2" 
322              data-copy-from="count.lib-plates.1"
323              title="Number of Lib plates waiting for registration"><img src="images/loading-small.gif"></span>
324         
325          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/lib_registration.jsp?ID=<%=ID%>"
326            >Library registration</span> 
327            <span class="counter" id="count.lib-plates.3" 
328              data-copy-from="count.lib-plates.1"
329              title="Number of Lib plates waiting for registration"><img src="images/loading-small.gif"></span>
330          </ul>
331        </dd>
332        <dt>
333          <base:icon image="<%=home+"/images/pool.png" %>" />
334          Pooling wizards
335        </dt>
336        <dd>
337          <ul>
338          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/create_pools.jsp?ID=<%=ID%>"
339            >Create pooled libraries</span> 
340            <span class="counter" id="count.lib-plates-for-pooling"
341              data-servlet="Pool.servlet?cmd=CountLibraryPlatesForPooling" 
342              title="Number of Lib plates waiting for pooling"><img src="images/loading-small.gif"></span>
343         
344          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/pool_protocol.jsp?ID=<%=ID%>"
345            >Lab protocols for pooling</span> 
346            <span class="counter" id="count.pools.1" 
347              data-servlet="Pool.servlet?cmd=CountUnprocessedPools"
348              title="Number of pools waiting for registration"><img src="images/loading-small.gif"></span>
349         
350          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/pool_registration.jsp?ID=<%=ID%>"
351            >Register pooled libraries</span> 
352            <span class="counter" id="count.pools.2" 
353              data-copy-from="count.pools.1"
354              title="Number of pools waiting for registration"><img src="images/loading-small.gif"></span>
355          </ul>
356        </dd>
357       
358        <dt>
359          <base:icon image="<%=home+"/images/flowcell.png" %>" />
360          Clustering and sequencing wizards
361        </dt>
362        <dd>
363          <ul>
364          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/create_flowcells.jsp?ID=<%=ID%>"
365            >Create flow cells</span> 
366            <span class="counter" id="count.unused-pools" 
367              data-servlet="FlowCell.servlet?cmd=CountUnusedPools"
368              title="Number of pools waiting for sequencing"><img src="images/loading-small.gif"></span>
369         
370          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/flowcell_protocol.jsp?ID=<%=ID%>"
371            >Lab protocol for clustering and sequencing</span> 
372            <span class="counter" id="count.flow-cells.1" 
373              data-servlet="FlowCell.servlet?cmd=CountUnprocessedFlowCells"
374              title="Number of flow cells waiting for clustering"><img src="images/loading-small.gif"></span>
375         
376          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/flowcell_registration.jsp?ID=<%=ID%>"
377            >Register clustering</span> 
378            <span class="counter" id="count.flow-cells.2" 
379              data-copy-from="count.flow-cells.1"
380              title="Number of flow cells waiting for clustering"><img src="images/loading-small.gif"></span>
381
382          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/sequencing_started.jsp?ID=<%=ID%>"
383            >Register sequencing started</span> 
384            <span class="counter" id="count.clustered-flow-cells"
385              data-servlet="FlowCell.servlet?cmd=CountClusteredFlowCells" 
386              title="Number of flow cells waiting for sequencing"><img src="images/loading-small.gif"></span>
387
388          <li><span class="require-permission" data-role="LibraryPrep" data-link="libprep/sequencing_ended.jsp?ID=<%=ID%>"
389            >Register sequencing ended</span> 
390            <span class="counter" id="count.sequencing-run" 
391              data-servlet="SequencingRun.servlet?cmd=CountActiveSequencingRuns"
392              title="Number of active sequencing runs"><img src="images/loading-small.gif"></span>
393          </ul>
394        </dd>
395       
396        </dl>
397      </div>
398    </div>
399   
400    <div class="absolutefull" style="width: 34%; left: 33%; right: auto;">
401      <div class="absolutefull" style="left: 0.5em; right: 0.5em;">
402        <h3>Secondary analysis wizards</h3>
403        <dl class="leftborder rightborder bottomborder">
404          <dt>
405            <base:icon image="<%=home+"/images/server.png" %>" />
406            Demux and merge wizards
407          </dt>
408          <dd>
409            <ul>
410            <li><span class="require-permission" data-role="SecondaryAnalysis" data-link="analysis/sequencing_confirm.jsp?ID=<%=ID%>"
411              >Confirm sequencing completed</span> 
412              <span class="counter" id="count.unconfirmed-sequencing-run" 
413                data-servlet="SequencingRun.servlet?cmd=CountUnconfirmedSequencingRuns"
414                title="Number of ended but not confirmed sequencing runs"><img src="images/loading-small.gif"></span>
415           
416            <li><span class="require-permission" data-role="SecondaryAnalysis" data-link="analysis/demux_start.jsp?ID=<%=ID%>"
417              >Start demux and merge</span> 
418              <span class="counter" id="count.confirmed-sequencing-run" 
419                data-servlet="DemuxMerge.servlet?cmd=CountConfirmedSequencingRuns"
420                title="Number of confirmed sequencing runs waiting to be demuxed"><img src="images/loading-small.gif"></span>
421           
422            <li><span class="require-permission" data-role="SecondaryAnalysis" data-link="analysis/demux_confirm.jsp?ID=<%=ID%>"
423              >Confirm demux and merge completed</span> 
424              <span class="counter" id="count.unconfirmed-demux-jobs" 
425                data-servlet="DemuxMerge.servlet?cmd=CountUnconfirmedDemuxJobs"
426                title="Number of demux jobs waiting for confirmation"><img src="images/loading-small.gif"></span>
427            </ul>
428          </dd>
429         
430          <dt>
431            <base:icon image="<%=home+"/images/align.png" %>" />
432            Masking and alignment wizards
433          </dt>
434          <dd>
435            <ul>
436            <li><span class="require-permission" data-role="SecondaryAnalysis" data-link="analysis/align_start.jsp?ID=<%=ID%>"
437              >Start masking and alignment</span> 
438              <span class="counter" id="count.merged-sequences-for-alignment" 
439                data-servlet="MaskAlign.servlet?cmd=CountMergedSequencesForAlignment"
440                title="Number of merged sequences waiting for alignment"><img src="images/loading-small.gif"></span>
441               
442            <li><span class="require-permission" data-role="SecondaryAnalysis" data-link="analysis/align_confirm.jsp?ID=<%=ID%>"
443              >Confirm masking and alignment completed</span> 
444              <span class="counter" id="count.merged-unconfirmed-aligned-sequences" 
445                data-servlet="MaskAlign.servlet?cmd=CountUnconfirmedAlignedSequences"
446                title="Number of aligned sequences waiting for confirmation"><img src="images/loading-small.gif"></span>
447            </ul>
448          </dd>
449          <dt>
450         
451            <base:icon image="<%=home+"/images/wizard.png" %>" />
452            Feature extraction wizards
453          </dt>
454          <dd>
455            <ul>
456            <li><span class="require-permission not-implemented" data-role="SecondaryAnalysis" data-link="analysis/feature_start.jsp?ID=<%=ID%>"
457              >Start feature extraction</span> 
458            <li><span class="require-permission not-implemented" data-role="SecondaryAnalysis" data-link="analysis/feature_end.jsp?ID=<%=ID%>"
459              >Confirm feature extraction completed</span> 
460            </ul>
461          </dd>
462        </dl>
463      </div>
464    </div>
465   
466    <div class="absolutefull" style="width: 33%; left: auto;">
467      <div class="absolutefull" style="left: 0.5em; right: 1em;">
468        <%
469        if (isAdmin)
470        {
471          %>
472          <h3>Server administrator wizards</h3>
473          <dl class="leftborder rightborder bottomborder">
474          <dt>
475            <base:icon image="<%=home + "/images/install.png" %>" />
476            <span class="require-permission" data-role="Administrator" data-link="admin/install.jsp?ID=<%=ID%>">Installation wizard</span>
477          </dt>
478          <dd>
479            <ul>
480            <li>Check that annotation types and other items used by Reggie exists in BASE.
481            <li>Create missing items.
482            </ul>
483          </dd>
484          <dt>
485            <base:icon image="<%=home + "/images/ogs-cluster.png"%>" />
486            <span class="require-permission" data-role="Administrator" data-link="admin/grid/list-clusters.jsp?ID=<%=ID%>">Open Grid Scheduler</span>
487          </dl>
488          <%
489        }
490        if (isPatientCurator || isAdmin)
491        {
492          %>
493          <h3>Personal information wizards</h3>
494          <dl class="leftborder rightborder bottomborder">
495          <dt>
496            <base:icon image="<%=home + "/images/personal.png" %>"/>
497            <span class="require-permission" data-role="PatientCurator" data-link="personal/persinfo.jsp?ID=<%=ID%>"
498              >Pathology referral form registration</span>
499          </dt>
500          <dd>
501            <ul>
502            <li>Register new cases and patients.
503            <li>Update existing cases and specimen tubes.
504            </ul>
505          </dd>
506         
507          <dt>
508            <base:icon image="<%=home + "/images/blood.png" %>"/>
509            Blood referral form registration
510          </dt>
511          <dd>
512            <ul>
513            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/bloodform.jsp?ID=<%=ID%>"
514              >Register new/updated blood referral forms and patients</span>
515             
516            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/bloodfollowupform.jsp?ID=<%=ID%>"
517              >Register new/updated follow-up blood referral forms</span>
518            </ul>
519          </dd>
520         
521          <dt>
522            <base:icon image="<%=home+"/images/consent.png" %>"/>
523            <span class="require-permission" data-role="PatientCurator" data-link="personal/consentform.jsp?ID=<%=ID%>"
524              >Consent form registration</span>
525          </dt>
526          <dd>
527            <ul>
528            <li>Register consent forms.
529            </ul>
530          </dd>
531         
532          <dt>
533            <base:icon image="<%=home+"/images/export_import.png" %>" />
534            Export/import information to/from external registers.
535          </dt>
536          <dd>
537            <ul>
538            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/export-monthly-oplist.jsp?ID=<%=ID%>"
539              >Export monthly operation list</span>
540             
541            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/export-inca.jsp?ID=<%=ID%>"
542              >INCA export</span>
543
544            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/export_missing_data_sample_list.jsp?ID=<%=ID%>"
545              >Export missing data sample list</span>
546
547            <li><span class="require-permission" data-role="PatientCurator" data-link="personal/export_missing_consent_data_sample_list.jsp?ID=<%=ID%>"
548              >Export missing consent data sample list</span>
549            </ul>
550          </dd>
551          </dl>
552          <%
553        }
554        %>
555       
556        <h3>Statistics and reporting wizards</h3>
557        <dl class="leftborder rightborder bottomborder">
558          <dt>
559            <base:icon image="<%=home+"/images/case_summary.png" %>" />
560            Case summary
561          </dt>
562          <dd>
563            <table>
564            <tr>
565              <td><input type="text" class="text" 
566                name="caseName" id="caseName" title="Please enter a 7-digit case id" 
567                style="width: 25em;"></td>
568              <td><base:button id="btnCaseSummary" title="Go" image="<%=home+"/images/gonext.png"%>" /></td>
569            </tr>
570            </table>
571          </dd>
572       
573          <dt>
574            <base:icon image="<%=home+"/images/report.png" %>" />
575            <a href="reports/samplereportgenerator.jsp?ID=<%=ID%>">Sample source report</a>
576          </dt>       
577          <dd>       
578            <ul>
579            <li>Sample count report</li> 
580            <li>Consent count report</li> 
581            <li>Patient count report</li> 
582            <li>Overview report</li> 
583            <li>Missing sample data report</li> 
584            </ul>
585          </dd>
586          <dt>
587            <base:icon image="<%=home+"/images/chart_bar.png" %>" />
588            <a href="reports/scanbquartermonthreportgenerator.jsp?ID=<%=ID%>">Sample processing statistics</a>
589          </dt>       
590          <dd>       
591            <ul>
592            <li>SCAN-B quarter/month report</li> 
593            </ul>
594          </dd>
595        </dl>
596      </div>
597    </div>
598    </form>
599  </div>
600 
601</base:body>
602</base:page>
603<%
604}
605finally
606{
607  if (dc != null) dc.close();
608}
609%>
Note: See TracBrowser for help on using the repository browser.