Changeset 2153 for trunk


Ignore:
Timestamp:
Jan 26, 2012, 5:12:54 PM (5 years ago)
Author:
ferryjagers@…
Message:

studyWizardController.Event - sampleName + templateName fix

Location:
trunk/grails-app
Files:
2 edited

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}
Note: See TracChangeset for help on using the changeset viewer.