root/trunk/grails-app/views/study/show.gsp @ 237

Revision 237, 13.9 KB (checked in by ademcan, 4 years ago)

EventGroup? in study view

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.show.label" args="[entityName]" /></title>
9  <script type="text/javascript">
10    $(function() {
11            $("#tabs").tabs();
12    });
13  </script>
14
15</head>
16<body>
17
18  <div class="nav">
19    <span class="menuButton"><a class="home" href="${createLink(uri: '/')}">Home</a></span>
20    <span class="menuButton"><g:link class="list" action="list"><g:message code="default.list.label" args="[entityName]" /></g:link></span>
21    <span class="menuButton"><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></span>
22  </div>
23
24  <div class="body">
25    <h1><g:message code="default.show.label" args="[entityName]" /></h1>
26    <g:if test="${flash.message}">
27      <div class="message">${flash.message}</div>
28    </g:if>
29    <div class="dialog">
30
31<% protocolList = dbnp.studycapturing.Protocol.list() %>
32
33      <div id="tabs">
34        <ul>
35          <li><a href="#study">Study Information</a></li>
36          <li><a href="#subjects">Subjects</a></li>
37          <li><a href="#groups">Groups</a></li>
38          <li><a href="#protocols">Protocols</a></li>
39          <li><a href="#events">Events</a></li>
40          <li><a href="#event-description">Event Description</a></li>
41          <li><a href="#event-group">Event Groups</a></li>
42          <li><a href="#assays">Assays</a></li>
43        </ul>
44
45        <div id="study">
46
47          <b> Id </b>: ${fieldValue(bean: studyInstance, field: "id")} <br>
48          <b>Template </b>:<g:link controller="template" action="show" id="${studyInstance?.template?.id}">${studyInstance?.template?.encodeAsHTML()}</g:link><br>
49          <b> Start </b>:<g:formatDate date="${studyInstance?.startDate}" /> <br>
50          <b> Events </b>:
51<% def eventList = [] %>
52
53          <g:each in="${studyInstance.events}" var="s">
54<%  eventList.add(s.eventDescription) %>
55          </g:each>
56
57          <g:if test="${eventList.size()==0}">
58            -
59          </g:if>
60
61          <g:else>
62<% def sampEvent = eventList.get(0).name %>
63${sampEvent}
64            <g:each in="${eventList}" var="samplingEvent">
65              <g:if test="${(samplingEvent.name!=sampEvent)}">
66${samplingEvent.name}
67              </g:if>
68            </g:each>
69          </g:else>
70          <br>
71
72
73          <b>Sampling Events </b>:
74<% def tmpList = [] %>
75
76          <g:each in="${studyInstance.samplingEvents}" var="s">
77<%  tmpList.add(s.eventDescription) %>
78          </g:each>
79
80          <g:if test="${tmpList.size()==0}">
81            -
82          </g:if>
83
84          <g:else>
85<% def sampEvent = tmpList.get(0).name %>
86${sampEvent}
87            <g:each in="${tmpList}" var="samplingEvent">
88              <g:if test="${(samplingEvent.name!=sampEvent)}">
89${samplingEvent.name}
90              </g:if>
91            </g:each>
92          </g:else>
93          <br>
94          <b>Last Updated </b>:<g:formatDate date="${studyInstance?.lastUpdated}" /><br>
95          <b>Readers </b>:
96
97          <g:if test="${studyInstance.readers.size()==0}">
98            -
99          </g:if>
100          <g:else>
101            <ul>
102              <g:each in="${studyInstance.readers}" var="r">
103                <li><g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link></li>
104              </g:each>
105            </ul>
106          </g:else>
107          <br>
108          <b>Code </b>: ${fieldValue(bean: studyInstance, field: "code")} <br>
109          <b>Editors </b>:
110          <g:if test="${studyInstance.editors.size()==0}">
111            -
112          </g:if>
113          <g:else>
114            <ul>
115              <g:each in="${studyInstance.editors}" var="e">
116                <li><g:link controller="user" action="show" id="${e.id}">${e?.encodeAsHTML()}</g:link></li>
117              </g:each>
118            </ul>
119          </g:else>
120          <br>
121          <b>EC Code </b>: ${fieldValue(bean: studyInstance, field: "ecCode")} <br>
122          <b>Research Question </b>: ${fieldValue(bean: studyInstance, field: "researchQuestion")} <br>
123          <b>Title </b>: ${fieldValue(bean: studyInstance, field: "title")} <br>
124          <b>Description </b>: ${fieldValue(bean: studyInstance, field: "description")} <br>
125          <b>Owner </b>:<g:link controller="user" action="show" id="${studyInstance?.owner?.id}">${studyInstance?.owner?.encodeAsHTML()}</g:link> <br>
126          <b>Date Created </b>:<g:formatDate date="${studyInstance?.dateCreated}" /> <br>
127        </div>
128
129        <div id="subjects">
130          <g:each in="${studyInstance.giveSubjectTemplates()}" var="template">
131            <table>
132              <tr>
133                <td><b>Id </b></td>
134                <td><b>Species</b></td>
135                <td><b>Name</b></td>
136              <g:each in="${template.fields}" var="g">
137                <td><b>
138                    <g:link controller="templateField" action="show" id="${g.id}">
139${g}</b></td>
140                </g:link>
141              </g:each>
142              </tr>
143
144              <g:each in="${studyInstance.subjects.findAll { it.template == template}}" var="s">
145                <tr>
146                  <td><g:link controller="subject" action="show" id="${s.id}">${s.id}</g:link></td>
147                <td>${s.species}</td>
148                <td>${s.name}</td>
149                <g:each in="${template.fields}" var="g">
150                  <td>
151<% print s.getFieldValue(g.toString())  %>
152                  </td>
153                </g:each>
154                </tr>
155              </g:each>
156
157            </table>
158
159          </g:each>
160        </div>
161
162        <div id="groups">
163          <g:if test="${studyInstance.groups.size()==0}">
164            No groups in this study
165          </g:if>
166          <g:else>
167            <g:each in="${studyInstance.groups}" var="g">
168${g.name}
169            </g:each>
170          </g:else>
171        </div>
172
173        <div id="protocols">
174          <table>
175            <tr>
176              <td><b>Id </b></td>
177              <td><b>Name</b></td>
178              <td><b>Parameters</b></td>
179              <td><b>Reference</b></td>
180            </tr>
181
182<% def protocol_list = [] %>
183<% def tmp_protocol = studyInstance.events.eventDescription.protocol.get(0) %>
184<% def tmpBis_protocol = studyInstance.samplingEvents.eventDescription.protocol.get(0) %>
185<% protocol_list.add(tmp_protocol) %>
186<% protocol_list.add(tmpBis_protocol) %>
187
188            <g:each in="${studyInstance.events.eventDescription.protocol}" var="s">
189<% if (!(protocol_list.contains(s))) {%>
190  <% protocol_list.add(s) %>
191  <%}%>
192            </g:each>
193
194            <g:each in="${studyInstance.samplingEvents.eventDescription.protocol}" var="g">
195<% if (!(protocol_list.contains(g))) {  %>
196  <% protocol_list.add(g) %>
197  <%}%>
198            </g:each>
199
200            <g:each in="${protocol_list}" var="protocol">
201              <tr>
202                <td><g:link controller="protocol" action="show" id="${protocol.id}">${protocol.id}</g:link></td>
203              <td>${protocol.name}</td>
204              <td>
205              <g:each in="${protocol.parameters}" var="p"><ul><li>
206                  <g:link controller="protocolParameter" action="show" id="${p.id}">${p.name}</g:link>
207                  </li></ul>
208              </g:each>
209              </td>
210              <td>${protocol.reference}</td>
211              </tr>
212
213            </g:each>
214          </table>
215        </div>
216
217        <div id="events">
218          <table>
219            <tr>
220
221              <td><b>Subject</b></td>
222              <td><b>Start Time</b></td>
223              <td><b>Duration</b></td>
224              <td><b>Event Description</b></td>
225              <td><b>Sampling Event</b></td>
226              <td><b>Parameters</b></td>
227            </tr>
228            <g:each in="${studyInstance.events}" var="e">
229              <tr>
230                <td>-</td>
231                <td>${e.getPrettyDuration(studyInstance.startDate,e.startTime)}</td>
232                <td>${e.getPrettyDuration()}</td>
233                <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
234              <td><g:checkBox name="event" disabled="${true}" value="${false}"/></td>
235
236              <td>
237              <g:if test="${e.parameterStringValues.size()>0}">
238${e.parameterStringValues}
239              </g:if>
240              <g:elseif test="${e.parameterIntegerValues.size()>0}">
241${e.parameterIntegerValues}
242              </g:elseif>
243              <g:elseif test="${e.parameterFloatValues.size()>0}">
244${e.parameterFloatValues}
245              </g:elseif>
246              </td>
247
248              </tr>
249            </g:each>
250
251            <g:each in="${studyInstance.samplingEvents}" var="e">
252              <tr>
253                <td>-</td>
254                <td>${e.getPrettyDuration(studyInstance.startDate,e.startTime)}</td>
255                <td>${e.getPrettyDuration()}</td>
256                <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
257              <td><g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/></td>
258              <td>
259              <g:if test="${e.parameterStringValues.size()>0}">
260${e.parameterStringValues}
261              </g:if>
262              <g:elseif test="${e.parameterIntegerValues.size()>0}">
263${e.parameterIntegerValues}
264              </g:elseif>
265              <g:elseif test="${e.parameterFloatValues.size()>0}">
266${e.parameterFloatValues}
267              </g:elseif>
268              </td>
269              </tr>
270            </g:each>
271
272          </table>
273        </div>
274
275        <div id="event-description">
276          <table>
277            <tr>
278
279              <td><b>Event Name</b></td>
280              <td><b>Parameters </b></td>
281            </tr>
282            <tr>
283              <td><b></b></td>
284              <td><b>Name</b></td>
285              <td><b>Description</b></td>
286              <td><b>Unit</b></td>
287              <td><b>Reference</b></td>
288              <td><b>Options</b></td>
289              <td><b>Type</b></td>
290            </tr>
291            <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
292              <g:if test="${(studyInstance.events.eventDescription.contains(e))}" >
293                <tr>
294                  <td>${e.name} </td></tr><tr>
295                <g:each in="${e.protocol.parameters}" var="p">
296                  <td></td>
297                  <td>${p.name}</td>
298                  <td>${p.description}</td>
299                  <td>${p.unit}</td>
300                  <td>${p.reference}</td>
301                  <g:if test="${(p.listEntries.size()==0)}" >
302                    <td>-</td>
303                  </g:if>
304                  <g:else>
305                    <td>${p.listEntries}</td>
306                  </g:else>
307                  <td>${p.type}</td>
308                  </tr>
309                </g:each>
310              </g:if>
311            </g:each>
312
313            <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
314              <g:if test="${(studyInstance.samplingEvents.eventDescription.contains(e))}" >
315                <tr>
316                  <td>${e.name} </td></tr><tr>
317                <g:each in="${e.protocol.parameters}" var="p">
318                  <td></td>
319                  <td>${p.name}</td>
320                  <td>${p.description}</td>
321                  <td>${p.unit}</td>
322                  <td>${p.reference}</td>
323                  <g:if test="${(p.listEntries.size()==0)}" >
324                    <td>-</td>
325                  </g:if>
326                  <g:else>
327                    <td>${p.listEntries}</td>
328                  </g:else>
329                  <td>${p.type}</td>
330                  </tr>
331                </g:each>
332              </g:if>
333            </g:each>
334
335          </table>
336
337          <g:form controller="eventDescription" action="create">
338            <INPUT TYPE=submit name=submit Value="New Event Description">
339          </g:form>
340
341        </div>
342
343        <div id="event-group">
344          <table>
345            <tr>
346              <td><b>Name</b></td>
347              <td><b>Events</b></td>
348              <td><b>Subjects</b></td>
349            </tr>
350            <g:each in="${studyInstance.eventGroups}" var="eventGroup">
351            <tr>
352              <td>${eventGroup.name}</td>
353              <td>${eventGroup.events}</td>
354              <td>${eventGroup.subjects.name}</td>
355          </tr>
356            </g:each>
357          </table>
358
359        </div>
360
361        <div id="assays">
362          <g:if test="${studyInstance.assays.size()==0}">
363            No assays in this study
364          </g:if>
365          <g:else>
366            <table>
367              <tr>
368                <td width="100"><b>Assay Name</b></td>
369                <td width="100"><b>Module</b></td>
370                <td><b>Type</b></td>
371                <td width="150"><b>Platform</b></td>
372                <td><b>Url</b></td>
373                <td><b>Samples</b></td>
374              </tr>
375              <g:each in="${studyInstance.assays}" var="assay">
376                <tr>
377                  <td>${assay.name}</td>
378                  <td>${assay.module.name}</td>
379                  <td>${assay.module.type}</td>
380                  <td>${assay.module.platform}</td>
381                  <td>${assay.module.url}</td>
382                  <td>
383                <g:each in="${assay.samples}" var="assaySample">
384${assaySample.name}<br>
385                </g:each>
386                </td>
387                </tr>
388              </g:each>
389
390            </table>
391          </g:else>
392        </div>
393
394      </div>
395    </div>
396    <br>
397    <div class="buttons">
398      <g:form>
399        <g:hiddenField name="id" value="${studyInstance?.id}" />
400        <span class="button"><g:actionSubmit class="edit" action="edit" value="${message(code: 'default.button.edit.label', default: 'Edit')}" /></span>
401        <span class="button"><g:actionSubmit class="delete" action="delete" value="${message(code: 'default.button.delete.label', default: 'Delete')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');" /></span>
402      </g:form>
403    </div>
404  </div>
405</div>
406</body>
407</html>
Note: See TracBrowser for help on using the browser.