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

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