Changeset 370 for trunk/grails-app/views


Ignore:
Timestamp:
Apr 22, 2010, 9:31:50 AM (12 years ago)
Author:
roberth
Message:

Updated studies list to handle the new data model.
Updated the bootstrap to contain some studies with attached events and persons in order to test the updated studies list
Added fieldExists method to TemplateEntity? to check whether a given field exists or not

Location:
trunk/grails-app/views/study
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/views/study/list.gsp

    r359 r370  
    7171
    7272        </tr>
     73        <g:if test="${studyInstance.fieldExists( 'Description' )}">
    7374        <tr>
    7475          <td></td>
    7576          <td colspan="3">
    7677            <b>${message(code: 'study.description.label', default: 'Description')} </b>:
    77 ${fieldValue(bean: studyInstance, field: "description")}</td>
     78            ${studyInstance.getFieldValue( 'Description' )}
     79           
     80          </td>
    7881        </tr>
     82        </g:if>
    7983        </table>
    8084      </g:each>
  • trunk/grails-app/views/study/list_extended.gsp

    r359 r370  
    2121  <% def tmpList = [] %>
    2222
     23
    2324  <div class="nav">
    2425    <span class="menuButton"><a class="home" href="${createLink(uri: '/')}">Home</a></span>
     
    4344     <% }} %>
    4445
    45     <% if (selectedStudies.size()>0) {%>
     46      <%
     47        /* Determine all template fields that are available in one or more templates used */
     48        def allTemplateFields = []
     49        selectedStudies.each { println it.giveFields(); allTemplateFields += it.giveFields() }
     50        allTemplateFields = allTemplateFields.unique();
     51      %>
     52     <g:if test="${selectedStudies.size()>0}">
    4653
    4754        <div id="tabs">
     
    4956        <li><a href="#study">Study Information</a></li>
    5057        <li><a href="#subjects">Subjects</a></li>
    51         <li><a href="#groups">Groups</a></li>
    52         <li><a href="#protocols">Protocols</a></li>
    5358        <li><a href="#events">Events</a></li>
    54         <li><a href="#event-description">Event Description</a></li>
    5559        <li><a href="#event-group">Event Groups</a></li>
    5660        <li><a href="#assays">Assays</a></li>
     61        <li><a href="#persons">Persons</a></li>
    5762      </ul>
    5863
     
    7479        </g:each>
    7580      </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>
     81      <tr>
     82        <td><b>Template</b></td>
     83        <g:each in="${selectedStudies}" status="k" var="studyIns">
     84          <td><g:link controller="template" action="show" id="${studyIns.template?.id}">
     85${studyInse?.template?.encodeAsHTML()}</g:link></td>
     86        </g:each>
     87      </tr>
     88
     89      <tr>
     90        <td><b>Title</b></td>
     91        <g:each in="${selectedStudies}" status="k" var="studyIns">
     92          <td>${fieldValue(bean: studyIns, field: "title")}</td>
     93        </g:each>
     94      </tr>
     95      <tr>
     96        <td><b>Start</b></td>
     97        <g:each in="${selectedStudies}" status="k" var="studyIns">
     98          <td><g:formatDate date="${studyIns?.startDate}" /></td>
     99        </g:each>
     100      </tr>
     101     
     102      <tr>
     103        <td><b>Date Created</b></td>
     104        <g:each in="${selectedStudies}" status="k" var="studyIns">
     105          <td><g:formatDate date="${studyIns?.dateCreated}" /></td>
     106        </g:each>
     107      </tr>
     108      <tr>
     109        <td><b>Last updated</b></td>
     110        <g:each in="${selectedStudies}" status="k" var="studyIns">
     111          <td><g:formatDate date="${studyIns?.lastUpdated}" /></td>
     112        </g:each>
     113      </tr>
     114
     115      <tr>
     116        <td><b>Events</b></td>
     117        <g:each in="${selectedStudies}" status="k" var="studyIns">
     118          <td>
     119            <g:if test="${studyIns.giveEventTemplates().size()==0}">
     120              -
     121            </g:if>
     122            <g:else>
     123             ${studyIns.giveEventTemplates().name}
     124            </g:else>
     125          </td>
     126        </g:each>
     127      </tr>
     128      <tr>
     129        <td><b>Sampling Events</b></td>
     130        <g:each in="${selectedStudies}" status="k" var="studyIns">
     131          <td>
     132            <g:if test="${studyIns.giveSamplingEventTemplates().size()==0}">
     133              -
     134            </g:if>
     135            <g:else>
     136             ${studyIns.giveSamplingEventTemplates().name}
     137            </g:else>
     138          </td>
     139        </g:each>
     140      </tr>
     141      <tr>
     142        <td><b>Owner</b></td>
     143        <g:each in="${selectedStudies}" status="k" var="studyIns">
     144          <td>
     145            <g:link controller="user" action="show" id="${studyIns?.owner?.id}">${studyIns?.owner?.encodeAsHTML()}</g:link>
     146          </td>
     147        </g:each>
     148      </tr>
     149
     150      <tr>
     151        <td><b>Readers</b></td>
     152        <g:each in="${selectedStudies}" status="k" var="studyIns">
     153          <td>
     154            <g:if test="${studyIns.readers.size()==0}">
     155              -
     156            </g:if>
     157            <g:else>
     158              <g:each in="${studyIns.readers}" var="r">
     159                <li><g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link></li>
     160              </g:each>
     161            </g:else>
     162          </td>
     163        </g:each>
     164      </tr>
     165      <tr>
     166        <td><b>Editors</b></td>
     167        <g:each in="${selectedStudies}" status="k" var="studyIns">
     168          <td>
     169            <g:if test="${studyIns.editors.size()==0}">
     170              -
     171            </g:if>
     172            <g:else>
     173              <g:each in="${studyIns.editors}" var="r">
     174                <li><g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link></li>
     175              </g:each>
     176            </g:else>
     177          </td>
     178        </g:each>
     179      </tr>
     180
     181      <!-- All template fields -->
     182      <g:each in="${allTemplateFields}" var="field">
     183        <tr>
     184          <td><b>${field.name}</b></td>
     185          <g:each in="${selectedStudies}" status="k" var="studyIns">
     186            <td>
     187              <g:if test="${studyIns.fieldExists(field.name)}">
     188                ${studyIns.getFieldValue(field.name)}
     189              </g:if>
     190              <g:else>
     191                -
     192              </g:else>
     193            </td>
    98194          </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>
     195        </tr>
    129196      </g:each>
    130197
     
    186253      </div>
    187254
    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 
    250255          <div id="events">
    251256          <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>
     257            <tr>
     258              <g:each in="${selectedStudies}" var="study">
     259                <td><center><b>${study.title}</b></center></td>
     260              </g:each>
     261            </tr>
     262
     263            <tr>
     264              <g:each in="${selectedStudies}" var="study">
     265                <td>
     266
     267                  <g:if test="${study.events.size()+study.samplingEvents.size()==0}">
     268                    No events in this study
     269                  </g:if>
     270                  <g:else>
     271                      <table>
     272                        <tr>
     273                          <td><b>Id </b></td>
     274                          <td><b>Start time</b></td>
     275                          <td><b>Duration</b></td>
     276                          <td><b>Type</b></td>
     277                          <td><b>Sampling event</b></td>
     278                          <td><b>Parameters</b></td>
     279                        </tr>
     280
     281                        <g:each in="${study.events + study.samplingEvents}" var="event">
     282                          <tr>
     283                            <td><g:link controller="event" action="show" id="${event.id}">${event.id}</g:link></td>
     284                            <td>${event.getPrettyDuration(study.startDate,event.startTime)}</td>
     285                            <td>${event.getPrettyDuration()}</td>
     286                            <td>${event.template.name}</td>
     287                            <td>
     288                              <g:if test="${event instanceof dbnp.studycapturing.SamplingEvent}">
     289                                <g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/>
     290                              </g:if>
     291                              <g:else>
     292                                <g:checkBox name="event" disabled="${true}" value="${false}" />
     293                              </g:else>
     294                            </td>
     295                            <td>
     296                              <g:set var="fieldCounter" value="${1}" />
     297                              <g:each in="${event.giveFields()}" var="field">
     298                                <g:if test="${event.getFieldValue(field.name)}">
     299                                  <g:if test="${fieldCounter > 1}">, </g:if>
     300                                    ${field.name} = ${event.getFieldValue( field.name )}
     301                                  <g:set var="fieldCounter" value="${fieldCounter + 1}" />
     302                                </g:if>
     303                              </g:each>
     304                            </td>
     305                          </tr>
     306                        </g:each>
     307                      </table>
     308
     309                  </g:else>
     310
     311                </td>
     312              </g:each>
     313            </tr>
     314          </table>
    305315
    306316      </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>
     317 
     318        <div id="event-group">
     319          <table border="2">
     320            <tr>
     321              <g:each in="${selectedStudies}" var="study">
     322                <td><center><b>${study.title}</b></center></td>
     323              </g:each>
     324            </tr>
     325
     326            <tr>
     327              <g:each in="${selectedStudies}" var="study">
     328
     329                <g:if test="${study.eventGroups.size()==0}">
     330                  No event groups in this study
     331                </g:if>
     332                <g:else>
     333                  <table>
     334                    <tr>
     335                      <td><b>Name</b></td>
     336                      <td colspan="${study.giveEventTemplates().size()}"><b>Events</b></td>
     337                      <td><b>Subjects</b></td>
     338                    </tr>
     339                    <tr>
     340                      <td></td>
     341                      <g:each in="${study.giveEventTemplates()}" var="eventTemplate">
     342                        <td><b>${eventTemplate.name}</b></td>
     343                      </g:each>
     344                      <td></td>
     345                    </tr>
     346                    <g:each in="${study.eventGroups}" var="eventGroup">
     347                      <tr>
     348                        <td>${eventGroup.name}</td>
     349
     350                        <g:each in="${study.giveEventTemplates()}" var="currentEventTemplate">
     351                          <td>
     352                            <g:each in="${eventGroup.events}" var="event">
     353                              <g:if test="${event.template.name==currentEventTemplate.name}">
     354
     355                                <g:set var="fieldCounter" value="${1}" />
     356                                <g:each in="${event.giveFields()}" var="field">
     357                                  <g:if test="${event.getFieldValue(field.name)}">
     358                                    <g:if test="${fieldCounter > 1}">, </g:if>
     359                                      ${field.name} = ${event.getFieldValue( field.name )}
     360                                    <g:set var="fieldCounter" value="${fieldCounter + 1}" />
     361                                  </g:if>
     362                                </g:each>
     363                              </g:if>
     364                            </g:each>
     365                           </td>
     366                        </g:each>
     367                        <td>${eventGroup.subjects.name.join( ', ' )}</td>
     368                      </tr>
     369                    </g:each>
     370                  </table>
     371                </g:else>
     372
     373              </g:each>
     374            </tr>
     375          </table>
     376        </div>
    387377
    388378          <div id="assays">
     
    438428      </div>
    439429
     430
     431      <div id="persons">
     432        <table border="2">
     433          <tr>
     434            <g:each in="${selectedStudies}" var="study">
     435              <td><center><b>${study.title}</b></center></td>
     436            </g:each>
     437          </tr>
     438          <tr>
     439            <g:each in="${selectedStudies}" var="study">
     440              <td>
     441                <g:if test="${study.persons.size()==0}">
     442                No persons involved in this study
     443                </g:if>
     444                <g:else>
     445                  <table>
     446                    <tr>
     447
     448                      <td><b>Name</b></td>
     449                      <td><b>Affiliations</b></td>
     450                      <td><b>Role</b></td>
     451                      <td><b>Phone</b></td>
     452                      <td><b>Email</b></td>
     453                    </tr>
     454                    <g:each in="${study.persons}" var="studyperson">
     455                      <tr>
     456                        <td>${studyperson.person.firstName} ${studyperson.person.midInitials} ${studyperson.person.lastName}</td>
     457                        <td>
     458                          ${studyperson.person.affiliations.name.join(', ')}
     459                        </td>
     460                        <td>${studyperson.role.name}</td>
     461                        <td>${studyperson.person.phone}</td>
     462                        <td>${studyperson.person.email}</td>
     463                      </tr>
     464                    </g:each>
     465                  </table>
     466                </g:else>
     467              </td>
     468           </g:each>
     469         </tr>
     470       </table>
     471
     472      </div>
     473
    440474    </div>
    441475
    442     <% } %>
     476    </g:if>
    443477   
    444      <% if (selectedStudies.size()==0) {%>
     478    <g:if test="${selectedStudies.size()==0}">
    445479    Please select studies to compare.
    446     <% } %>
     480    </g:if>
    447481
    448482    </div>
  • trunk/grails-app/views/study/show.gsp

    r359 r370  
    2929    <div class="dialog">
    3030
    31 <% protocolList = dbnp.studycapturing.Protocol.list() %>
    32 <% def study_eventsDescription = [] %>
    33 <% study_eventsDescription = studyInstance.events.eventDescription.unique() %>
    34 <% study_eventsDescription.addAll(studyInstance.samplingEvents.eventDescription.unique()) %>
    35 <% def study_events = [] %>
    36 <% study_events = studyInstance.events.unique() %>
    37 <% study_events.addAll(studyInstance.samplingEvents.unique()) %>
    38 
    3931      <div id="tabs">
    4032        <ul>
    4133          <li><a href="#study">Study Information</a></li>
    4234          <li><a href="#subjects">Subjects</a></li>
    43           <li><a href="#groups">Groups</a></li>
    44           <li><a href="#protocols">Protocols</a></li>
    4535          <li><a href="#events">Events</a></li>
    46           <li><a href="#event-description">Event Description</a></li>
    4736          <li><a href="#event-group">Event Groups</a></li>
    4837          <li><a href="#assays">Assays</a></li>
     38          <li><a href="#persons">Persons</a></li>
    4939        </ul>
    5040
     
    5545          <b> Start </b>:<g:formatDate date="${studyInstance?.startDate}" /> <br>
    5646          <b> Events </b>:
    57             <g:if test="${studyInstance.events.eventDescription.size()==0}">
     47            <g:if test="${studyInstance.giveEventTemplates().size()==0}">
    5848              -
    5949            </g:if>
    6050            <g:else>
    61             ${studyInstance.events.eventDescription.unique().toString().replaceAll("]"," ").
    62           substring(1,studyInstance.events.eventDescription.unique().toString().size())}
     51             ${studyInstance.giveEventTemplates().name}
    6352            </g:else>
    6453          <br>
    6554          <b>Sampling Events </b>:
    66             <g:if test="${studyInstance.samplingEvents.eventDescription.size()==0}">
     55            <g:if test="${studyInstance.giveSamplingEventTemplates().size()==0}">
    6756             -
    6857            </g:if>
    6958            <g:else>
    70              ${studyInstance.samplingEvents.eventDescription.unique().toString().replaceAll("]"," ").
    71                  substring(1,studyInstance.samplingEvents.eventDescription.unique().toString().size())}
     59              ${studyInstance.giveSamplingEventTemplates().name}
    7260            </g:else>
    7361          <br>
     
    8674          </g:else>
    8775          <br>
    88           <b>Code </b>: ${fieldValue(bean: studyInstance, field: "code")} <br>
     76
     77          <!-- All template fields -->
     78          <g:each in="${studyInstance.giveFields()}" var="field">
     79            <b>${field.name}</b>: ${studyInstance.getFieldValue(field.name)}<br />
     80          </g:each>
     81
    8982          <b>Editors </b>:
    9083          <g:if test="${studyInstance.editors.size()==0}">
     
    9992          </g:else>
    10093          <br>
    101           <b>EC Code </b>: ${fieldValue(bean: studyInstance, field: "ecCode")} <br>
    102           <b>Research Question </b>: ${fieldValue(bean: studyInstance, field: "researchQuestion")} <br>
    10394          <b>Title </b>: ${fieldValue(bean: studyInstance, field: "title")} <br>
    104           <b>Description </b>: ${fieldValue(bean: studyInstance, field: "description")} <br>
    10595          <b>Owner </b>:<g:link controller="user" action="show" id="${studyInstance?.owner?.id}">${studyInstance?.owner?.encodeAsHTML()}</g:link> <br>
    10696          <b>Date Created </b>:<g:formatDate date="${studyInstance?.dateCreated}" /> <br>
     
    129119                <g:each in="${template.fields}" var="g">
    130120                  <td>
    131 <% print s.getFieldValue(g.toString())  %>
     121                  <% print s.getFieldValue(g.toString())  %>
    132122                  </td>
    133123                </g:each>
     
    140130        </div>
    141131
    142         <div id="groups">
    143           <g:if test="${studyInstance.groups.size()==0}">
    144             No groups in this study
    145           </g:if>
    146           <g:else>
    147             <g:each in="${studyInstance.groups}" var="g">
    148 ${g.name}
    149             </g:each>
    150           </g:else>
    151         </div>
    152 
    153         <div id="protocols">
    154 <% def protocol_list = [] %>
    155 <% protocol_list= studyInstance.events.eventDescription.protocol.unique() %>
    156           <g:if test="${protocol_list.size()==0}">
    157             No protocols in this study
    158           </g:if>
    159           <g:else>
    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="${protocol_list}" var="protocol">
    168               <tr>
    169               <td><g:link controller="protocol" action="show" id="${protocol.id}">${protocol.id}</g:link></td>
    170               <td>${protocol.name}</td>
    171               <td>
    172               <g:each in="${protocol.parameters}" var="p">
    173                   <g:link controller="protocolParameter" action="show" id="${p.id}">${p.name}</g:link>
    174               </g:each>
    175               </td>
    176               <td>${protocol.reference}</td>
    177               </tr>
    178 
    179             </g:each>
    180           </table>
    181           </g:else>
    182         </div>
    183132
    184133        <div id="events">
    185           <g:if test="${study_events.size()==0}">
    186            No events in this study
    187           </g:if>
    188           <g:else>
    189           <table>
    190             <tr>
    191               <td><b>Subject</b></td>
    192               <td><b>Start Time</b></td>
    193               <td><b>Duration</b></td>
    194               <td><b>Event Description</b></td>
    195               <td><b>Sampling Event</b></td>
    196               <td><b>Parameters</b></td>
    197             </tr>
    198             <g:each in="${study_events}" var="e">
    199               <tr>
    200                 <td>-</td>
    201                 <td>${e.getPrettyDuration(studyInstance.startDate,e.startTime)}</td>
    202                 <td>${e.getPrettyDuration()}</td>
    203                 <td><g:link controller="event" action="show" id="${e.id}">  ${e.eventDescription.name}</g:link></td>
    204               <td>
    205               <g:if test="${e instanceof dbnp.studycapturing.SamplingEvent}">
    206                 <g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/>
    207               </g:if>
    208               <g:else>
    209                 <g:checkBox name="event" disabled="${true}" value="${false}"/>
    210               </g:else>
    211               </td>
    212               <td>
    213              <g:if test="${e.parameterStringValues.size()>0}">
    214 <% def stringValues = e.parameterStringValues.toString().replaceAll("}"," ") %>
    215 <% print stringValues.substring(1,stringValues.size()) %>
    216               </g:if>
    217               <g:elseif test="${e.parameterIntegerValues.size()>0}">
    218 <% def integerValues = e.parameterInteger.toString().replaceAll("}"," ") %>
    219 <% print integerValues.substring(1,integerValues.size()) %>
    220               </g:elseif>
    221               <g:elseif test="${e.parameterFloatValues.size()>0}">
    222 <% def floatValues = e.parameterFloatValues.toString().replaceAll("}"," ") %>
    223 <% print floatValues.substring(1,floatValues.size()) %>
    224               </g:elseif>
    225               </td>
    226               </tr>
    227             </g:each>
    228           </table>
    229           </g:else>
    230         </div>
    231 
    232         <div id="event-description">
    233           <g:if test="${study_eventsDescription.size()==0}">
    234             No events description in this study
    235           </g:if>
    236           <g:else>
    237             <table>
    238             <tr>
    239               <td><b>Event Name</b></td>
    240               <td><b>Parameters </b></td>
    241             </tr>
    242             <tr>
    243               <td><b></b></td>
    244               <td><b>Name</b></td>
    245               <td><b>Description</b></td>
    246               <td><b>Unit</b></td>
    247               <td><b>Reference</b></td>
    248               <td><b>Options</b></td>
    249               <td><b>Type</b></td>
    250            </tr>
    251             <g:each in="${study_eventsDescription}" var="e">
    252                 <tr>
    253                   <td>${e.name} </td>
    254                 <g:each in="${e.protocol.parameters}" var="p">
    255                   <td>${p.name}</td>
    256                   <td>${p.description}</td>
    257                   <td>${p.unit}</td>
    258                   <td>${p.reference}</td>
    259                   <g:if test="${(p.listEntries.size()==0)}" >
    260                     <td>-</td>
    261                   </g:if>
    262                   <g:else>
    263                     <td>${p.listEntries.toString().replaceAll("]"," ").substring(1,p.listEntries.toString().size())}</td>
    264                   </g:else>
    265                   <td>${p.type}</td>
     134          <g:if test="${studyInstance.events.size()==0}">
     135            No events in this study
     136          </g:if>
     137          <g:else>
     138
     139              <table>
     140                <tr>
     141                  <td><b>Id </b></td>
     142                  <td><b>Start time</b></td>
     143                  <td><b>Duration</b></td>
     144                  <td><b>Type</b></td>
     145                  <td><b>Sampling event</b></td>
     146                  <td><b>Parameters</b></td>
     147                </tr>
     148
     149                <g:each in="${studyInstance.events}" var="event">
     150                  <tr>
     151                    <td><g:link controller="event" action="show" id="${event.id}">${event.id}</g:link></td>
     152                    <td>${event.getPrettyDuration(studyInstance.startDate,event.startTime)}</td>
     153                    <td>${event.getPrettyDuration()}</td>
     154                    <td>${event.template.name}</td>
     155                    <td>
     156                      <g:if test="${event instanceof dbnp.studycapturing.SamplingEvent}">
     157                        <g:checkBox name="samplingEvent" disabled="${true}" value="${true}"/>
     158                      </g:if>
     159                      <g:else>
     160                        <g:checkBox name="event" disabled="${true}" value="${false}" />
     161                      </g:else>
     162                    </td>
     163                    <td>
     164                      <g:set var="fieldCounter" value="${1}" />
     165                      <g:each in="${event.giveFields()}" var="field">
     166                        <g:if test="${event.getFieldValue(field.name)}">
     167                          <g:if test="${fieldCounter > 1}">, </g:if>
     168                            ${field.name} = ${event.getFieldValue( field.name )}
     169                          <g:set var="fieldCounter" value="${fieldCounter + 1}" />
     170                        </g:if>
     171                      </g:each>
     172                    </td>
    266173                  </tr>
    267174                </g:each>
    268             </g:each>
    269           </table>
    270 
    271           <g:form controller="eventDescription" action="create">
    272             <INPUT TYPE=submit name=submit Value="New Event Description">
    273           </g:form>
    274 </g:else>
     175
     176              </table>
     177
     178          </g:else>
    275179        </div>
    276180
     
    280184          </g:if>
    281185          <g:else>
    282           <table>
    283             <tr>
    284               <td><b>Name</b></td>
    285               <td colspan="${study_eventsDescription.size()}"><b>Events</b></td>
    286               <td><b>Subjects</b></td>
    287             </tr>
    288             <tr>
    289               <td></td>
    290                 <g:each in="${study_eventsDescription}" var="list">
    291               <td>
    292                   <b>${list}</b>
    293           </td>
    294                 </g:each>
    295           </tr>
    296             <g:each in="${studyInstance.eventGroups}" var="eventGroup">
    297             <tr>
    298               <td>${eventGroup.name}</td>
    299 
    300                 <g:each in="${study_eventsDescription}" var="des">
    301                   <td>
    302               <g:each in="${eventGroup.events}" var="e">
    303                  <g:if test="${e.eventDescription==des}">
    304                    <g:if test="${e.parameterStringValues.size()>0}">
    305 <% def stringValues = e.parameterStringValues.toString().replaceAll("}"," ") %>
    306 <% print stringValues.substring(1,stringValues.size()) %>
    307               </g:if>
    308               <g:elseif test="${e.parameterIntegerValues.size()>0}">
    309 <% def integerValues = e.parameterInteger.toString().replaceAll("}"," ") %>
    310 <% print integerValues.substring(1,integerValues.size()) %>
    311               </g:elseif>
    312               <g:elseif test="${e.parameterFloatValues.size()>0}">
    313 <% def floatValues = e.parameterFloatValues.toString().replaceAll("}"," ") %>
    314 <% print floatValues.substring(1,floatValues.size()) %>
    315               </g:elseif>
    316                  </g:if>
    317                 </g:each>
    318                  </td>
    319               </g:each>
    320 
    321               <td>${eventGroup.subjects.name.toString().replaceAll("]"," ").
    322     substring(1,eventGroup.subjects.name.toString().size())}</td>
    323           </tr>
    324             </g:each>
    325           </table>
     186            <table>
     187              <tr>
     188                <td><b>Name</b></td>
     189                <td colspan="${studyInstance.giveEventTemplates().size()}"><b>Events</b></td>
     190                <td><b>Subjects</b></td>
     191              </tr>
     192              <tr>
     193                <td></td>
     194                <g:each in="${studyInstance.giveEventTemplates()}" var="eventTemplate">
     195                  <td><b>${eventTemplate.name}</b></td>
     196                </g:each>
     197                <td></td>
     198              </tr>
     199              <g:each in="${studyInstance.eventGroups}" var="eventGroup">
     200                <tr>
     201                  <td>${eventGroup.name}</td>
     202
     203                  <g:each in="${studyInstance.giveEventTemplates()}" var="currentEventTemplate">
     204                    <td>
     205                      <g:each in="${eventGroup.events}" var="event">
     206                        <g:if test="${event.template.name==currentEventTemplate.name}">
     207
     208                          <g:set var="fieldCounter" value="${1}" />
     209                          <g:each in="${event.giveFields()}" var="field">
     210                            <g:if test="${event.getFieldValue(field.name)}">
     211                              <g:if test="${fieldCounter > 1}">, </g:if>
     212                                ${field.name} = ${event.getFieldValue( field.name )}
     213                              <g:set var="fieldCounter" value="${fieldCounter + 1}" />
     214                            </g:if>
     215                          </g:each>
     216                        </g:if>
     217                      </g:each>
     218                     </td>
     219                  </g:each>
     220                  <td>${eventGroup.subjects.name.join( ', ' )}</td>
     221                </tr>
     222              </g:each>
     223            </table>
    326224          </g:else>
    327225        </div>
     
    360258        </div>
    361259
     260        <div id="persons">
     261          <g:if test="${studyInstance.persons.size()==0}">
     262            No persons involved in this study
     263          </g:if>
     264          <g:else>
     265            <table>
     266              <tr>
     267                  <td><b>Name</b></td>
     268                  <td><b>Affiliations</b></td>
     269                  <td><b>Role</b></td>
     270                  <td><b>Phone</b></td>
     271                  <td><b>Email</b></td>
     272              </tr>
     273              <g:each in="${studyInstance.persons}" var="studyperson">
     274                <tr>
     275                  <td>${studyperson.person.firstName} ${studyperson.person.midInitials} ${studyperson.person.lastName}</td>
     276                  <td>
     277                    ${studyperson.person.affiliations.name.join(', ')}
     278                  </td>
     279                  <td>${studyperson.role.name}</td>
     280                  <td>${studyperson.person.phone}</td>
     281                  <td>${studyperson.person.email}</td>
     282                </tr>
     283              </g:each>
     284            </table>
     285          </g:else>
     286        </div>
    362287      </div>
    363288    </div>
Note: See TracChangeset for help on using the changeset viewer.