Ignore:
Timestamp:
Jan 31, 2011, 8:16:03 PM (6 years ago)
Author:
robert@…
Message:
  • Implemented a cache for module rest calls, to increase performance (see moduleCommunicationService)
  • Implemented searching in module data.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/groovy/dbnp/query/StudySearch.groovy

    r1456 r1458  
    1515package dbnp.query
    1616
     17import java.util.List;
     18
    1719import dbnp.studycapturing.*
     20import org.dbnp.gdt.*
    1821
    1922class StudySearch extends Search {
     
    7376                studies = filterOnAssayCriteria( studies );
    7477
     78                studies = filterOnModuleCriteria( studies );
     79               
    7580                // Save matches
    7681                results = studies;
    7782        }
    78 
     83       
    7984        /**
    8085         * Filters the given list of studies on the study criteria
    8186         * @param studies       Original list of studies
    82          * @return                      List with all studies that match the Study-criteria
     87         * @return                      List with all studies that match the Study criteria
    8388         */
    8489        protected List filterOnStudyCriteria( List studies ) {
    85                 return filterEntityList( studies, getEntityCriteria( 'Study' ), { study, criterion ->
    86                         return criterion.matchOne( study );
    87                 });
     90                return filterOnTemplateEntityCriteria(studies, "Study", { study, criterion -> return criterion.getFieldValue( study ) })
    8891        }
    8992
     
    9497         */
    9598        protected List filterOnSubjectCriteria( List studies ) {
    96                 return filterEntityList( studies, getEntityCriteria( 'Subject' ), { study, criterion ->
    97                         if( !study.subjects?.size() )
    98                                 return false
    99 
    100                         return criterion.matchAny( study.subjects );
    101                 });
     99                return filterOnTemplateEntityCriteria(studies, "Subject", { study, criterion ->
     100                        return study.subjects?.collect { criterion.getFieldValue( it ); }
     101                })
    102102        }
    103103
     
    108108         */
    109109        protected List filterOnSampleCriteria( List studies ) {
    110                 return filterEntityList( studies, getEntityCriteria( 'Sample' ), { study, criterion ->
    111                         if( !study.samples?.size() )
    112                                 return false
    113 
    114                         return criterion.matchAny( study.samples );
    115                 });
     110                return filterOnTemplateEntityCriteria(studies, "Sample", { study, criterion ->
     111                        return study.samples?.collect { criterion.getFieldValue( it ); }
     112                })
    116113        }
    117114
     
    122119         */
    123120        protected List filterOnEventCriteria( List studies ) {
    124                 return filterEntityList( studies, getEntityCriteria( 'Event' ), { study, criterion ->
    125                         if( !study.events?.size() )
    126                                 return false
    127 
    128                         return criterion.matchAny( study.events );
    129                 });
     121                return filterOnTemplateEntityCriteria(studies, "Event", { study, criterion ->
     122                        return study.events?.collect { criterion.getFieldValue( it ); }
     123                })
    130124        }
    131125       
     
    136130        */
    137131   protected List filterOnSamplingEventCriteria( List studies ) {
    138            return filterEntityList( studies, getEntityCriteria( 'SamplingEvent' ), { study, criterion ->
    139                    if( !study.samplingEvents?.size() )
    140                            return false
    141 
    142                         return criterion.matchAny( study.samplingEvents );
    143            });
     132                return filterOnTemplateEntityCriteria(studies, "SamplingEvent", { study, criterion ->
     133                        return study.samplingEvents?.collect { criterion.getFieldValue( it ); }
     134                })
    144135   }
    145 
    146136       
    147137        /**
     
    151141         */
    152142        protected List filterOnAssayCriteria( List studies ) {
    153                 return filterEntityList( studies, getEntityCriteria( 'Assay' ), { study, criterion ->
    154                         if( !study.assays?.size() )
    155                                 return false
    156 
    157                         return criterion.matchAny( study.assays );
    158                 });
     143                return filterOnTemplateEntityCriteria(studies, "Assay", { study, criterion ->
     144                        return study.assays?.collect { criterion.getFieldValue( it ); }
     145                })
    159146        }
    160147}
Note: See TracChangeset for help on using the changeset viewer.