Changeset 951

Show
Ignore:
Timestamp:
20-10-10 16:48:12 (3 years ago)
Author:
j.a.m.wesbeek@…
Message:

- resolved #2 ( https://trac.nbic.nl/gscf/ticket/2): "new samples are not added to sample list"

Location:
trunk/grails-app
Files:
2 modified

Legend:

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

    r863 r951  
    504504                        onRender { 
    505505                                flow.page = 5 
    506  
    507                                 // got samples? 
    508                                 if (!flow.study.samples) { 
    509                                         // generate samples 
    510                                         // iterate through eventGroups 
    511                                         flow.study.eventGroups.each() { eventGroup -> 
    512                                                 // iterate through samplingEvents 
    513                                                 eventGroup.samplingEvents.each() { samplingEvent -> 
    514                                                         println samplingEvent 
    515                                                         println samplingEvent.sampleTemplate 
    516                                                         println samplingEvent.sampleTemplate.getClass() 
    517  
    518                                                         def samplingEventName = this.ucwords(samplingEvent.template.name) 
    519  
    520                                                         // iterate through subjects 
    521                                                         eventGroup.subjects.each() { subject -> 
    522                                                                 def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(samplingEvent.startTime).toString()).replaceAll("([ ]{1,})", "") 
    523                                                                 def tempSampleIterator = 0 
    524                                                                 def tempSampleName = sampleName 
    525  
    526                                                                 // make sure sampleName is unique 
    527                                                                 if (flow.study.samples) { 
    528                                                                         while (flow.study.samples.find { it.name == tempSampleName }) { 
    529                                                                                 tempSampleIterator++ 
    530                                                                                 tempSampleName = sampleName + "_" + tempSampleIterator 
    531                                                                         } 
    532                                                                         sampleName = tempSampleName 
    533                                                                 } 
    534  
    535                                                                 // instantiate a sample 
    536                                                                 flow.study.addToSamples( 
    537                                                                         new Sample( 
    538                                                                                 parentSubject: subject, 
    539                                                                                 parentEvent: samplingEvent, 
    540                                                                                 name: sampleName, 
    541                                                                                 template: (samplingEvent.sampleTemplate) ? samplingEvent.sampleTemplate : '' 
    542                                                                         ) 
    543                                                                 ) 
    544                                                         } 
    545                                                 } 
    546  
    547                                         } 
    548                                 } 
    549  
    550506                                success() 
    551507                        } 
     
    11931149                                        // add to eventGroup 
    11941150                                        if (event instanceof SamplingEvent) { 
    1195                                                 eventGroup.addToSamplingEvents(event) 
     1151                                                // check if we are already in this eventGroup 
     1152                                                if (!eventGroup.samplingEvents.find { it.equals(event) }) { 
     1153                                                        // no, add it 
     1154                                                        eventGroup.addToSamplingEvents(event) 
     1155 
     1156                                                        // iterate through subjects for this eventGroup 
     1157                                                        eventGroup.subjects.each() { subject -> 
     1158                                                                // instantiate a sample for this subject / event 
     1159                                                                def samplingEventName = this.ucwords(event.template.name) 
     1160                                                                def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "") 
     1161                                                                def tempSampleIterator = 0 
     1162                                                                def tempSampleName = sampleName 
     1163 
     1164                                                                // make sure sampleName is unique 
     1165                                                                if (flow.study.samples) { 
     1166                                                                        while (flow.study.samples.find { it.name == tempSampleName }) { 
     1167                                                                                tempSampleIterator++ 
     1168                                                                                tempSampleName = sampleName + "_" + tempSampleIterator 
     1169                                                                        } 
     1170                                                                        sampleName = tempSampleName 
     1171                                                                } 
     1172 
     1173                                                                // instantiate a sample 
     1174                                                                flow.study.addToSamples( 
     1175                                                                        new Sample( 
     1176                                                                                parentSubject: subject, 
     1177                                                                                parentEvent: event, 
     1178                                                                                name: sampleName, 
     1179                                                                                template: (event.sampleTemplate) ? event.sampleTemplate : '' 
     1180                                                                        ) 
     1181                                                                ) 
     1182                                                        } 
     1183                                                } 
    11961184                                        } else { 
    11971185                                                eventGroup.addToEvents(event) 
     
    12001188                                        // remove from eventGroup 
    12011189                                        if (event instanceof SamplingEvent) { 
     1190                                                // iterate through subjects (if we have them) 
     1191                                                eventGroup.subjects.each() { subject -> 
     1192                                                        // find all samples for this subject / event 
     1193                                                        flow.study.samples.findAll { (it.parentEvent.equals(event) && it.parentSubject.equals(subject) ) }.each() { 
     1194                                                                // delete this sample 
     1195                                                                flow.study.removeFromSamples( it ) 
     1196                                                                it.delete() 
     1197                                                        } 
     1198                                                } 
     1199                                                 
    12021200                                                eventGroup.removeFromSamplingEvents(event) 
    12031201                                        } else { 
     
    12471245                        flow.study.subjects.each() { subject -> 
    12481246                                if (params.get('subject_' + subject.getIdentifier() + '_group_' + eventGroup.getIdentifier() )) { 
    1249                                         // add to eventGroup 
    1250                                         eventGroup.addToSubjects(subject) 
     1247                                        // check if this subject is already part of this eventGroup 
     1248                                        if ( !eventGroup.subjects.find { it.equals(subject) } ) { 
     1249                                                // add to eventGroup 
     1250                                                eventGroup.addToSubjects(subject) 
     1251 
     1252                                                // iterate through samplingEvents 
     1253                                                eventGroup.samplingEvents.each() { samplingEvent -> 
     1254                                                        def samplingEventName = this.ucwords(samplingEvent.template.name) 
     1255                                                        def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(samplingEvent.startTime).toString()).replaceAll("([ ]{1,})", "") 
     1256                                                        def tempSampleIterator = 0 
     1257                                                        def tempSampleName = sampleName 
     1258 
     1259                                                        // make sure sampleName is unique 
     1260                                                        if (flow.study.samples) { 
     1261                                                                while (flow.study.samples.find { it.name == tempSampleName }) { 
     1262                                                                        tempSampleIterator++ 
     1263                                                                        tempSampleName = sampleName + "_" + tempSampleIterator 
     1264                                                                } 
     1265                                                                sampleName = tempSampleName 
     1266                                                        } 
     1267 
     1268                                                        // instantiate a sample 
     1269                                                        flow.study.addToSamples( 
     1270                                                                new Sample( 
     1271                                                                        parentSubject: subject, 
     1272                                                                        parentEvent: samplingEvent, 
     1273                                                                        name: sampleName, 
     1274                                                                        template: (samplingEvent.sampleTemplate) ? samplingEvent.sampleTemplate : '' 
     1275                                                                ) 
     1276                                                        ) 
     1277                                                } 
     1278                                        } 
    12511279                                } else { 
    12521280                                        // remove from eventGroup 
    12531281                                        eventGroup.removeFromSubjects(subject) 
     1282 
     1283                                        // iterate through samplingEvents 
     1284                                        eventGroup.samplingEvents.each() { samplingEvent -> 
     1285                                                flow.study.samples.findAll { ( it.parentEvent.equals(samplingEvent) && it.parentSubject.equals(subject) ) }.each() { 
     1286                                                        // delete this sample 
     1287                                                        flow.study.removeFromSamples( it ) 
     1288                                                        it.delete() 
     1289                                                } 
     1290                                        } 
    12541291                                } 
    12551292                        } 
  • trunk/grails-app/views/wizard/pages/_samples_previous_warning.gsp

    r635 r951  
    4646        <span class="info"> 
    4747                <span class="warning">Warning!</span> 
    48                 Renaming, adding and removing subjects, sample events and / or grouping <i>may</i> result in (some of the) samples to be reset!<br /> 
     48                Renaming, adding and removing subjects, sample events and / or grouping <i>may</i> result in loss of samples!<br /> 
    4949                Continuing to the groups page in <span id="seconds"></span> seconds... 
    5050        </span>