source: trunk/grails-app/views/study/list_extended.gsp @ 223

Last change on this file since 223 was 223, checked in by ademcan, 13 years ago

Study List and Study Comparaison

File size: 13.2 KB
Line 
1
2<%@ page import="dbnp.studycapturing.Study" %>
3<html>
4  <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6    <meta name="layout" content="main" />
7  <g:set var="entityName" value="${message(code: 'study.label', default: 'Study')}" />
8  <title><g:message code="default.list.label" args="[entityName]" /></title>
9
10  <my:jqueryui/>
11  <script type="text/javascript">
12    $(function() {
13            $("#tabs").tabs();
14    });
15  </script>
16
17</head>
18<body>
19
20  <% studyList = dbnp.studycapturing.Study.list() %>
21  <% def att_list = ['template','startDate','events','samplingEvents','lastUpdated','readers','code','editors','ecCode','researchQuestion','title','description','owner','dateCreated'] %>
22  <% def selectedStudies = [] %>
23  <% def tmpList = [] %>
24
25  <div class="nav">
26    <span class="menuButton"><a class="home" href="${createLink(uri: '/')}">Home</a></span>
27    <span class="menuButton"><g:link class="list" action="list"><g:message code="default.list.label" args="[entityName]" /></g:link></span>
28    <span class="menuButton"><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></span>
29  </div>
30
31  <div class="body">
32    <h1>Studies Comparison</h1>
33    <g:if test="${flash.message}">
34      <div class="message">${flash.message}</div>
35    </g:if>
36
37    <% params.each{key,values-> %>
38    <% if (values=="on"){ %>
39      <% tmpList.add(key) %>
40    <%  } }%>
41
42    <% for (i in studyList) {%>
43    <% if (tmpList.contains(i.getTitle())) { %>
44      <% selectedStudies.add(i) %>
45     <% }} %>
46
47    <% if (selectedStudies.size()>0) {%>
48
49
50        <div id="tabs">
51      <ul>
52        <li><a href="#study">Study Information</a></li>
53        <li><a href="#subjects">Subjects</a></li>
54        <li><a href="#groups">Groups</a></li>
55        <li><a href="#protocols">Protocols</a></li>
56        <li><a href="#events">Events</a></li>
57        <li><a href="#event-description">Event Description</a></li>
58        <li><a href="#event-group">Event Groups</a></li>
59        <li><a href="#assays">Assays</a></li>
60      </ul>
61
62
63    <div id="study">
64      <br>
65      <table>
66      <tr>
67        <td></td>
68        <g:each in="${selectedStudies}" status="j" var="studyIns">
69          <td width="50%"><b>${studyIns.title}</b></td>
70        </g:each>
71      </tr>
72      <tr>
73        <td><b>Id</b></td>
74        <g:each in="${selectedStudies}" status="k" var="studyIns">
75          <td><g:link action="show" id="${studyIns.id}">
76${fieldValue(bean: studyIns, field: "id")}</g:link></td>
77        </g:each>
78      </tr>
79
80      <g:each in="${att_list}" var="att">
81      <tr>
82        <td><b>${att[0].toUpperCase()+att.substring(1)}</b></td>
83        <g:each in="${selectedStudies}" status="k" var="studyIns">
84
85   <g:if test="${att == 'events'}">
86     <td>
87  <% def eventList = [] %>
88             <g:each in="${studyIns.events}" var="s">
89              <%  eventList.add(s.eventDescription) %>
90             </g:each>
91  <g:if test="${eventList.size()==0}">
92          -
93         </g:if>
94        <g:else>
95           <% def sampEvent = eventList.get(0).name %>
96           ${sampEvent}
97         <g:each in="${eventList}" var="event">
98           <g:if test="${(event.name!=sampEvent)}">
99            ${event.name}
100         </g:if>
101          </g:each>
102         </g:else>
103          </td>
104        </g:if>
105
106<g:elseif test="${att == 'samplingEvents'}">
107     <td>
108  <% def SampeventList = [] %>
109             <g:each in="${studyIns.samplingEvents}" var="s">
110              <%  SampeventList.add(s.eventDescription) %>
111             </g:each>
112  <g:if test="${SampeventList.size()==0}">
113          -
114         </g:if>
115        <g:else>
116           <% def samplEvent = SampeventList.get(0).name %>
117           ${samplEvent}
118         <g:each in="${SampeventList}" var="samplingEvent">
119           <g:if test="${(samplingEvent.name!=samplEvent)}">
120            ${samplingEvent.name}
121         </g:if>
122          </g:each>
123         </g:else>
124          </td>
125</g:elseif>
126
127          <g:else>
128<td>${fieldValue(bean: studyIns, field: att)}</td>
129          </g:else>
130        </g:each>
131      </tr>
132      </g:each>
133
134      </table>
135    </div>
136
137          <div id="subjects">
138       
139       <table border="2">
140         <tr>
141         <g:each in="${selectedStudies}" var="study">
142           <td><center><b>${study.title}</b></center></td>
143         </g:each>
144       </tr>
145
146         <tr>
147         <g:each in="${selectedStudies}" var="stud">
148             <td>
149
150               <table>
151          <tr>
152            <td><b>Id </b></td>
153            <td><b>Species</b></td>
154            <td><b>Name</b></td>
155          <g:each in="${stud.template.subjectFields}" var="g">
156            <td><b>
157              <g:link controller="templateSubjectField" action="show" id="${g.id}">
158              ${g}</b></td>
159            </g:link>
160          </g:each>
161          </tr>
162
163          <g:each in="${stud.subjects}" var="s">
164            <tr>
165              <td><g:link controller="subject" action="show" id="${s.id}">${s.id}</g:link></td>
166              <td>${s.species}</td>
167              <td>${s.name}</td>
168
169                <g:each in="${stud.template.subjectFields}" var="g">
170               <td>
171                  <% print s.getFieldValue(g.toString())  %>
172            </td>
173          </g:each>
174          </tr>
175          </g:each>
176          </table>
177
178             </td>
179           </g:each>
180         </tr>
181       </table>
182       
183      </div>
184
185          <div id="groups">
186<table border="2">
187  <tr>
188         <g:each in="${selectedStudies}" var="study">
189           <td width="50%"><center><b>${study.title}</b></center></td>
190         </g:each>
191       </tr>
192         <tr>
193         <g:each in="${selectedStudies}" var="study">
194           <td>
195  <g:if test="${study.groups.size()==0}"> No groups in this study </g:if>
196  <g:else><center><b>${study.groups}</b></center></g:else>
197         </td>
198         </g:each>
199       </tr>
200</table>
201        </div>
202
203          <div id="protocols">
204         <table border="2">
205         <tr>
206         <g:each in="${selectedStudies}" var="study">
207           <td width="50%"><center><b>${study.title}</b></center></td>
208         </g:each>
209       </tr>
210
211         <tr>
212         <g:each in="${selectedStudies}" var="stud">
213             <td>
214                <table>
215          <tr>
216            <td><b>Id </b></td>
217            <td><b>Name</b></td>
218            <td><b>Parameters</b></td>
219            <td><b>Reference</b></td>
220          </tr>
221
222          <% def protocol_list = [] %>
223          <% def tmp_protocol = stud.events.eventDescription.protocol.get(0) %>
224          <% def tmpBis_protocol = stud.samplingEvents.eventDescription.protocol.get(0) %>
225          <% protocol_list.add(tmp_protocol) %>
226          <% protocol_list.add(tmpBis_protocol) %>
227
228          <g:each in="${stud.events.eventDescription.protocol}" var="s">
229          <% if (tmp_protocol!=s) { %>
230            <% protocol_list.add(s) %>
231            <%}%>
232          </g:each>
233
234 <g:each in="${stud.samplingEvents.eventDescription.protocol}" var="s">
235          <% if (tmpBis_protocol!=s) { %>
236            <% protocol_list.add(s) %>
237            <%}%>
238          </g:each>
239
240          <g:each in="${protocol_list}" var="protocol">
241            <tr>
242              <td><g:link controller="protocol" action="show" id="${protocol.id}">${protocol.id}</g:link></td>
243          <td>${protocol.name}</td>
244          <td>
245          <g:each in="${protocol.parameters}" var="p"><ul><li>
246            <g:link controller="protocolParameter" action="show" id="${p.id}">${p.name}</g:link>
247            </li></ul>
248          </g:each>
249          </td>
250          <td>${protocol.reference}</td>
251          </tr>
252          </g:each>
253             </table>
254
255        </td>
256           </g:each>
257         </tr>
258       </table>
259       </div>
260
261          <div id="events">
262          <table border="2">
263         <tr>
264         <g:each in="${selectedStudies}" var="study">
265           <td><center><b>${study.title}</b></center></td>
266         </g:each>
267       </tr>
268
269         <tr>
270         <g:each in="${selectedStudies}" var="stud">
271             <td>
272
273        <table>
274          <tr>
275            <td><b>Event Description</b></td>
276            <td><b>Subject</b></td>
277            <td><b>Start Time</b></td>
278            <td><b>Duration</b></td>
279            <td><b>Sampling Event</b></td>
280            <td><b>Parameters</b></td>
281          </tr>
282
283          <g:each in="${stud.events}" var="e">
284            <tr>
285              <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
286          <td>${e.subject.id}</td>
287          <td>${e.getPrettyDuration(stud.startDate,e.startTime)}</td>
288          <td>${e.getPrettyDuration()}</td>
289           <td><g:checkBox name="event" disabled="${true}" value="${false}"/></td>
290          <g:each in="${e.eventDescription.protocol.parameters}" var="param">
291          <td>
292            ${param.name} : ${param.listEntries}
293          </td>
294            </g:each>
295            </tr>
296          </g:each>
297
298          <g:each in="${stud.samplingEvents}" var="e">
299          <tr>
300          <td><g:link controller="event" action="show" id="${e.id}">${e.eventDescription.name}</g:link></td>
301          <td>${e.subject.id}</td>
302          <td>${e.getPrettyDuration(stud.startDate,e.startTime)}</td>
303          <td>${e.getPrettyDuration()}</td>
304            <td><g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/></td>
305
306            <g:each in="${e.eventDescription.protocol.parameters}" var="param">
307          <td>
308            ${param.name} : ${param.listEntries}
309          </td>
310            </g:each>
311          </tr>
312          </g:each>
313
314
315        </table>
316        </td>
317           </g:each>
318         </tr>
319       </table>
320
321      </div>
322         
323          <div id="event-description">
324  <table border="2">
325  <tr>
326         <g:each in="${selectedStudies}" var="study">
327          <td><center><b>${study.title}</b></center></td>
328         </g:each>
329  </tr>
330   <tr>
331         <g:each in="${selectedStudies}" var="stud">
332           <td>
333           <table>
334          <tr>
335
336            <td><b>Event Name</b></td>
337            <td><b>Parameters </b></td>
338          </tr>
339          <tr>
340            <td><b></b></td>
341            <td><b>Name</b></td>
342            <td><b>Description</b></td>
343            <td><b>Unit</b></td>
344            <td><b>Reference</b></td>
345            <td><b>Options</b></td>
346            <td><b>Type</b></td>
347          </tr>
348          <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
349          <g:if test="${(stud.events.eventDescription.contains(e))}" >
350            <tr>
351              <td>${e.name} </td></tr><tr>
352            <g:each in="${e.protocol.parameters}" var="p">
353              <td></td>
354          <td>${p.name}</td>
355          <td>${p.description}</td>
356          <td>${p.unit}</td>
357          <td>${p.reference}</td>
358          <g:if test="${(p.listEntries.size()==0)}" >
359          <td>-</td>
360            </g:if>
361          <g:else>
362          <td>${p.listEntries}</td>
363          </g:else>
364          <td>${p.type}</td>
365            </tr>
366            </g:each>
367            </g:if>
368            </g:each>
369
370           <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
371          <g:if test="${(stud.samplingEvents.eventDescription.contains(e))}" >
372            <tr>
373              <td>${e.name} </td></tr><tr>
374            <g:each in="${e.protocol.parameters}" var="p">
375              <td></td>
376          <td>${p.name}</td>
377          <td>${p.description}</td>
378          <td>${p.unit}</td>
379          <td>${p.reference}</td>
380          <g:if test="${(p.listEntries.size()==0)}" >
381          <td>-</td>
382            </g:if>
383          <g:else>
384          <td>${p.listEntries}</td>
385          </g:else>
386          <td>${p.type}</td>
387            </tr>
388            </g:each>
389            </g:if>
390            </g:each>
391
392  </table>
393        </td>
394           </g:each>
395         </tr>
396       </table>
397
398          </div>
399
400          <div id="event-group">
401          </div>
402
403          <div id="assays">
404   <table border="2">
405  <tr>
406         <g:each in="${selectedStudies}" var="study">
407          <td><center><b>${study.title}</b></center></td>
408         </g:each>
409  </tr>
410   <tr>
411         <g:each in="${selectedStudies}" var="stud">
412           <td>
413           <table>
414             <tr><td>
415  <g:if test="${stud.assays.size()==0}">
416          No assays in this study
417        </g:if>
418        <g:else>
419          <table>
420            <tr>
421
422              <td width="100"><b>Assay Name</b></td>
423              <td width="100"><b>Module</b></td>
424              <td><b>Type</b></td>
425              <td width="150"><b>Platform</b></td>
426              <td><b>Url</b></td>
427              <td><b>Samples</b></td>
428            </tr>
429          <g:each in="${stud.assays}" var="assay">
430            <tr>
431            <td>${assay.name}</td>
432            <td>${assay.module.name}</td>
433            <td>${assay.module.type}</td>
434            <td>${assay.module.platform}</td>
435            <td>${assay.module.url}</td>
436            <td>
437              <g:each in="${assay.samples}" var="assaySample">
438                ${assaySample.name}<br>
439              </g:each>
440            </td>
441          </tr>
442          </g:each>
443          </table>
444        </g:else>
445
446
447  </table>
448        </td>
449           </g:each>
450         </tr>
451       </table>
452
453      </div>
454
455    </div>
456
457    <% } %>
458   
459     <% if (selectedStudies.size()==0) {%>
460    Please select studies to compare.
461    <% } %>
462
463    </div>
464
465
466</body>
467</html>
Note: See TracBrowser for help on using the repository browser.