source: trunk/grails-app/views/study/show.gsp @ 212

Last change on this file since 212 was 212, checked in by keesvb, 9 years ago

refactored template entity code into TemplateEntity?, added more template field types, updated BootStrap? with some more details on PPSH, changed code in study overview to get template field contents in a nicer way

File size: 11.4 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.show.label" args="[entityName]" /></title>
9      <script type="text/javascript">
10        $(function() {
11                $("#accordion").accordion();
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="accordion">
34      <a href="#"> Study Information </a>
35       
36       <div><b> Id </b>: ${fieldValue(bean: studyInstance, field: "id")} <br>
37         <b>Template </b>:<g:link controller="template" action="show" id="${studyInstance?.template?.id}">${studyInstance?.template?.encodeAsHTML()}</g:link><br>
38         <b> Start </b>:<g:formatDate date="${studyInstance?.startDate}" /> <br>
39         <b> Events </b>:
40         <% def eventList = [] %>
41
42          <g:each in="${studyInstance.events}" var="s">
43            <%  eventList.add(s.eventDescription) %>
44          </g:each>
45
46         <g:if test="${eventList.size()==0}">
47          -
48         </g:if>
49
50         <g:else>
51           <% def sampEvent = eventList.get(0).name %>
52           ${sampEvent}
53         <g:each in="${eventList}" var="samplingEvent">
54           <g:if test="${(samplingEvent.name!=sampEvent)}">
55            ${samplingEvent.name}
56         </g:if>
57          </g:each>
58         </g:else>
59           <br>
60
61
62         <b>Sampling Events </b>:
63           <% def tmpList = [] %>
64
65          <g:each in="${studyInstance.samplingEvents}" var="s">
66            <%  tmpList.add(s.eventDescription) %>
67          </g:each>
68
69         <g:if test="${tmpList.size()==0}">
70          -
71         </g:if>
72
73         <g:else>
74           <% def sampEvent = tmpList.get(0).name %>
75           ${sampEvent}
76         <g:each in="${tmpList}" var="samplingEvent">
77           <g:if test="${(samplingEvent.name!=sampEvent)}">
78            ${samplingEvent.name}
79         </g:if>
80          </g:each>
81         </g:else>
82           <br>
83        <b>Last Updated </b>:<g:formatDate date="${studyInstance?.lastUpdated}" /><br>
84        <b>Readers </b>:
85
86        <g:if test="${studyInstance.readers.size()==0}">
87          -
88        </g:if>
89        <g:else>
90        <ul>
91          <g:each in="${studyInstance.readers}" var="r">
92            <li><g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link></li>
93          </g:each>
94        </ul>
95        </g:else>
96          <br>
97        <b>Code </b>: ${fieldValue(bean: studyInstance, field: "code")} <br>
98        <b>Editors </b>:
99          <g:if test="${studyInstance.editors.size()==0}">
100          -
101        </g:if>
102        <g:else>
103        <ul>
104          <g:each in="${studyInstance.editors}" var="e">
105            <li><g:link controller="user" action="show" id="${e.id}">${e?.encodeAsHTML()}</g:link></li>
106          </g:each>
107        </ul>
108        </g:else>
109          <br>
110        <b>EC Code </b>: ${fieldValue(bean: studyInstance, field: "ecCode")} <br>
111        <b>Research Question </b>: ${fieldValue(bean: studyInstance, field: "researchQuestion")} <br>
112        <b>Title </b>: ${fieldValue(bean: studyInstance, field: "title")} <br>
113        <b>Description </b>: ${fieldValue(bean: studyInstance, field: "description")} <br>
114        <b>Owner </b>:<g:link controller="user" action="show" id="${studyInstance?.owner?.id}">${studyInstance?.owner?.encodeAsHTML()}</g:link> <br>
115        <b>Date Created </b>:<g:formatDate date="${studyInstance?.dateCreated}" /> <br>
116       </div>
117
118      <a href="#"> Subjects </a><div>
119        <table>
120          <tr>
121            <td><b>Id </b></td>
122            <td><b>Species</b></td>
123            <td><b>Name</b></td>
124          <g:each in="${studyInstance.template.subjectFields}" var="g">
125            <td><b>
126              <g:link controller="templateSubjectField" action="show" id="${g.id}">
127              ${g}</b></td>
128            </g:link>
129          </g:each>
130          </tr>
131
132          <g:each in="${studyInstance.subjects}" var="s">
133            <tr>
134              <td><g:link controller="subject" action="show" id="${s.id}">${s.id}</g:link></td>
135              <td>${s.species}</td>
136              <td>${s.name}</td>
137
138                <g:each in="${studyInstance.template.subjectFields}" var="g">
139               <td>
140                  <% print s.getFieldValue(g.toString())  %>
141            </td>
142          </g:each>
143          </tr>
144          </g:each>
145          </table>
146      </div>
147
148       <a href="#"> Groups </a> <div>
149         <g:if test="${studyInstance.groups.size()==0}">
150           No groups in this study
151         </g:if>
152         <g:else>
153          <g:each in="${studyInstance.groups}" var="g">
154            ${g.name}
155          </g:each>
156         </g:else>
157         </div>
158
159       <a href="#"> Protocols </a><div>
160             <table>
161          <tr>
162            <td><b>Id </b></td>
163            <td><b>Name</b></td>
164            <td><b>Parameters</b></td>
165            <td><b>Reference</b></td>
166          </tr>
167          <g:each in="${dbnp.studycapturing .Protocol.list()}" var="s">
168           
169            <% if  ((studyInstance.events.eventDescription.protocol.contains(s))||
170              (studyInstance.samplingEvents.eventDescription.protocol.contains(s))) { %>
171           
172            <tr>
173              <td><g:link controller="protocol" action="show" id="${s.id}">${s.id}</g:link></td>
174          <td>${s.name}</td>
175          <td>
176          <g:each in="${s.parameters}" var="p"><ul><li>
177            <g:link controller="protocolParameter" action="show" id="${p.id}">${p.name}</g:link>
178            </li></ul>
179          </g:each>
180          </td>
181          <td>${s.reference}</td>
182          </tr>
183 <%  } %>
184
185          </g:each>
186             </table>
187       </div>
188
189      <a href="#"> Events </a><div>
190          <table>
191          <tr>
192           
193            <td><b>Subject</b></td>
194            <td><b>Start Time</b></td>
195            <td><b>Duration</b></td>
196            <td><b>Event Description</b></td>
197            <td><b>Sampling Event</b></td>
198            <td><b>Parameters</b></td>
199          </tr>
200          <g:each in="${studyInstance.events}" var="e">
201            <tr>
202          <td><g:link controller="event" action="edit" id="${e.id}">${e.subject.id}</g:link></td>
203          <td>${e.getPrettyDuration(studyInstance.startDate,e.startTime)}</td>
204          <td>${e.getPrettyDuration()}</td>
205           <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
206            <td><g:checkBox name="event" disabled="${true}" value="${false}"/></td>
207          <td>${e.eventDescription.protocol.parameters.name}</td>
208          </tr>
209          </g:each>
210
211          <g:each in="${studyInstance.samplingEvents}" var="e">
212            <tr>
213          <td><g:link controller="event" action="edit" id="${e.id}">${e.subject.id}</g:link></td>
214          <td>${e.getPrettyDuration(studyInstance.startDate,e.startTime)}</td>
215          <td>${e.getPrettyDuration()}</td>
216           <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
217            <td><g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/>
218            </td>
219          <td>${e.eventDescription.protocol.parameters.name}</td>
220          </tr>
221          </g:each>
222
223          </table>
224      </div>
225
226      <a href="#"> Event Description </a><div>
227          <table>
228          <tr>
229
230            <td><b>Event Name</b></td>
231            <td><b>Parameters </b></td>
232          </tr>
233          <tr>
234            <td><b></b></td>
235            <td><b>Name</b></td>
236            <td><b>Description</b></td>
237            <td><b>Unit</b></td>
238            <td><b>Reference</b></td>
239            <td><b>Options</b></td>
240            <td><b>Type</b></td>
241          </tr>
242          <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
243          <g:if test="${(studyInstance.events.eventDescription.contains(e))}" >
244            <tr>
245              <td>${e.name} </td></tr><tr>
246            <g:each in="${e.protocol.parameters}" var="p">
247              <td></td>
248          <td>${p.name}</td>
249          <td>${p.description}</td>
250          <td>${p.unit}</td>
251          <td>${p.reference}</td>
252          <g:if test="${(p.listEntries.size()==0)}" >
253          <td>-</td>
254            </g:if>
255          <g:else>
256          <td>${p.listEntries}</td>
257          </g:else>
258          <td>${p.type}</td>
259            </tr>
260            </g:each>
261            </g:if>
262            </g:each>
263
264           <g:each in="${dbnp.studycapturing.EventDescription.list()}" var="e">
265          <g:if test="${(studyInstance.samplingEvents.eventDescription.contains(e))}" >
266            <tr>
267              <td>${e.name} </td></tr><tr>
268            <g:each in="${e.protocol.parameters}" var="p">
269              <td></td>
270          <td>${p.name}</td>
271          <td>${p.description}</td>
272          <td>${p.unit}</td>
273          <td>${p.reference}</td>
274          <g:if test="${(p.listEntries.size()==0)}" >
275          <td>-</td>
276            </g:if>
277          <g:else>
278          <td>${p.listEntries}</td>
279          </g:else>
280          <td>${p.type}</td>
281            </tr>
282            </g:each>
283            </g:if>
284            </g:each>
285
286          </table>
287
288        <g:form controller="eventDescription" action="create">
289         <INPUT TYPE=submit name=submit Value="New Event Description">
290    </g:form>
291
292      </div>
293
294      <a href="#"> Assays </a><div>
295        <g:if test="${studyInstance.assays.size()==0}">
296          No assays in this study
297        </g:if>
298        <g:else>
299          <table>
300            <tr>
301              <td width="100"><b>Assay Name</b></td>
302              <td width="100"><b>Module</b></td>
303              <td><b>Type</b></td>
304              <td width="150"><b>Platform</b></td>
305              <td><b>Url</b></td>
306              <td><b>Samples</b></td>
307            </tr>
308          <g:each in="${studyInstance.assays}" var="assay">
309            <tr>
310            <td>${assay.name}</td>
311            <td>${assay.module.name}</td>
312            <td>${assay.module.type}</td>
313            <td>${assay.module.platform}</td>
314            <td>${assay.module.url}</td>
315            <td>
316              <g:each in="${assay.samples}" var="assaySample">
317                ${assaySample.name}<br>
318              </g:each>
319            </td>
320            </tr>
321          </g:each>
322
323          </table>
324        </g:else>
325      </div>
326
327  </div>
328    </div>
329  <br>
330  <div class="buttons">
331    <g:form>
332      <g:hiddenField name="id" value="${studyInstance?.id}" />
333      <span class="button"><g:actionSubmit class="edit" action="edit" value="${message(code: 'default.button.edit.label', default: 'Edit')}" /></span>
334      <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>
335    </g:form>
336  </div>
337</div>
338</div>
339</body>
340</html>
Note: See TracBrowser for help on using the repository browser.