Changeset 2153 for trunk

Show
Ignore:
Timestamp:
26-01-12 17:12:54 (2 years ago)
Author:
ferryjagers@…
Message:

studyWizardController.Event - sampleName + templateName fix

Location:
trunk/grails-app
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/StudyWizardController.groovy

    r2122 r2153  
    17011701                                name = "" 
    17021702                        } 
     1703             
     1704            // handle the (sampling) events 
     1705            ( ((flow.study.events) ? flow.study.events : []) + ((flow.study.samplingEvents) ? flow.study.samplingEvents : []) ) .each() { event -> 
     1706                event.giveFields().each() { field -> 
     1707                    event.setFieldValue( 
     1708                        field.name, 
     1709                        params.get( 'event_' + event.getIdentifier() + '_' + field.escapedName() ) 
     1710                    ) 
     1711                } 
     1712     
     1713                // validate event 
     1714                if (!event.validate()) { 
     1715                    errors = true 
     1716                    this.appendErrors(event, flash.wizardErrors) 
     1717                } 
     1718            } 
    17031719 
    17041720                        // handle eventGrouping 
     
    17151731                                                        eventGroup.subjects.each() { subject -> 
    17161732                                                                // instantiate a sample for this subject / event 
    1717                                                                 def samplingEventName = ucwords(event.template.name) 
    1718                                                                 def eventGroupName = ucwords(eventGroup.name).replaceAll("([ ]{1,})", "") 
    1719                                                                 def sampleName = (ucwords(subject.name) + '_' + samplingEventName + '_' + eventGroupName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "") 
    1720                                                                 def tempSampleIterator = 0 
    1721                                                                 def tempSampleName = sampleName 
    1722  
    1723                                                                 // make sure sampleName is unique 
    1724                                                                 if (flow.study.samples) { 
    1725                                                                         while (flow.study.samples.find { it.name == tempSampleName }) { 
    1726                                                                                 tempSampleIterator++ 
    1727                                                                                 tempSampleName = sampleName + "_" + tempSampleIterator 
    1728                                                                         } 
    1729                                                                         sampleName = tempSampleName 
    1730                                                                 } 
     1733 
     1734                                def sampleName = Sample.generateSampleName(flow, subject, eventGroup, event) 
    17311735 
    17321736                                                                // instantiate a sample 
     
    17721776                } 
    17731777 
    1774                 // handle the (sampling) events 
    1775                 ( ((flow.study.events) ? flow.study.events : []) + ((flow.study.samplingEvents) ? flow.study.samplingEvents : []) ) .each() { event -> 
    1776                         event.giveFields().each() { field -> 
    1777                                 event.setFieldValue( 
    1778                                         field.name, 
    1779                                         params.get( 'event_' + event.getIdentifier() + '_' + field.escapedName() ) 
    1780                                 ) 
    1781                         } 
    1782  
    1783                         // validate event 
    1784                         if (!event.validate()) { 
    1785                                 errors = true 
    1786                                 this.appendErrors(event, flash.wizardErrors) 
    1787                         } 
    1788                 } 
    1789  
    17901778                return !errors 
    17911779        } 
     
    18181806                                                // iterate through samplingEvents 
    18191807                                                eventGroup.samplingEvents.each() { samplingEvent -> 
    1820                                                         def samplingEventName = ucwords(samplingEvent.template.name) 
    1821                                                         def eventGroupName = ucwords(eventGroup.name) 
    1822                                                         def sampleTemplateName = (samplingEvent.sampleTemplate) ? ucwords(samplingEvent.sampleTemplate.name) : '' 
    1823                                                         def sampleName = (ucwords(subject.name) + '_' + samplingEventName + '_' + eventGroupName + '_' + new RelTime(samplingEvent.startTime).toString() + sampleTemplateName).replaceAll("([ ]{1,})", "") 
    1824                                                         def tempSampleIterator = 0 
    1825                                                         def tempSampleName = sampleName 
    1826  
    1827                                                         // make sure sampleName is unique 
    1828                                                         if (flow.study.samples) { 
    1829                                                                 while (flow.study.samples.find { it.name == tempSampleName }) { 
    1830                                                                         tempSampleIterator++ 
    1831                                                                         tempSampleName = sampleName + "_" + tempSampleIterator 
    1832                                                                 } 
    1833                                                                 sampleName = tempSampleName 
    1834                                                         } 
     1808 
     1809                            def sampleName = Sample.generateSampleName(flow, subject, eventGroup, samplingEvent) 
    18351810 
    18361811                                                        // instantiate a sample 
     
    19941969 
    19951970                return !errors 
    1996         } 
    1997  
    1998         /** 
    1999          * groovy / java equivalent of php's ucwords function 
    2000          * 
    2001          * Capitalize all first letters of separate words 
    2002          * 
    2003          * @param String 
    2004          * @return String 
    2005          */ 
    2006         public static ucwords(String text) { 
    2007                 def newText = '' 
    2008  
    2009                 // change case to lowercase 
    2010                 text = text.toLowerCase() 
    2011  
    2012                 // iterate through words 
    2013                 text.split(" ").each() { 
    2014                         newText += it[0].toUpperCase() + it.substring(1) + " " 
    2015                 } 
    2016  
    2017                 return newText.substring(0, newText.size()-1) 
    20181971        } 
    20191972 
  • trunk/grails-app/domain/dbnp/studycapturing/Sample.groovy

    r1969 r2153  
    208208   } 
    209209 
     210    public static String generateSampleName(flow, subject, eventGroup, samplingEvent) { 
     211        def samplingEventName = ucwords(samplingEvent.template.name) 
     212        def eventGroupName = ucwords(eventGroup.name).replaceAll("([ ]{1,})", "") 
     213        def sampleTemplateName = (samplingEvent.sampleTemplate) ? ucwords(samplingEvent.sampleTemplate.name) : '' 
     214        def sampleName = (ucwords(subject.name) + '_' + samplingEventName + '_' + eventGroupName + '_' + new RelTime(samplingEvent.startTime).toString() + '_' + sampleTemplateName).replaceAll("([ ]{1,})", "") 
     215        def tempSampleIterator = 0 
     216        def tempSampleName = sampleName 
     217 
     218        // make sure sampleName is unique 
     219        if (flow.study.samples) { 
     220            while (flow.study.samples.find { it.name == tempSampleName }) { 
     221                tempSampleIterator++ 
     222                tempSampleName = sampleName + "_" + tempSampleIterator 
     223            } 
     224            sampleName = tempSampleName 
     225        } 
     226        return sampleName 
     227    } 
     228 
     229    /** 
     230         * groovy / java equivalent of php's ucwords function 
     231         * 
     232         * Capitalize all first letters of separate words 
     233         * 
     234         * @param String 
     235         * @return String 
     236         */ 
     237        public static ucwords(String text) { 
     238                def newText = '' 
     239 
     240                // change case to lowercase 
     241                text = text.toLowerCase() 
     242 
     243                // iterate through words 
     244                text.split(" ").each() { 
     245                        newText += it[0].toUpperCase() + it.substring(1) + " " 
     246                } 
     247 
     248                return newText.substring(0, newText.size()-1) 
     249        } 
    210250}