Changeset 1612


Ignore:
Timestamp:
Mar 10, 2011, 9:54:52 AM (6 years ago)
Author:
robert@…
Message:

Update simple wizard to import subject without a name correctly and import date values in the right way

Location:
trunk/grails-app
Files:
2 edited

Legend:

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

    r1611 r1612  
    717717                                        // Determine entity class and add a parent. Add the entity to the study
    718718                                        def preferredIdentifier = importerService.givePreferredIdentifier( entity.class );
    719                                         def equalClosure = { it.getFieldValue( preferredIdentifier.name ) == entity.getFieldValue( preferredIdentifier.name ) }
     719                                        def equalClosure = { it.getIdentifier() == entity.getIdentifier() }
    720720                                        def entityName = entity.class.name[ entity.class.name.lastIndexOf( "." ) + 1 .. -1 ]
    721721
     
    724724                                        switch( entity.class ) {
    725725                                                case Sample:
    726                                                         if( !preferredIdentifier || !study.samples?.find( equalClosure ) ) {
     726                                                        if( !study.samples?.find( equalClosure ) ) {
    727727                                                                study.addToSamples( entity );
    728728                                                        }
     
    743743                                                        break;
    744744                                                case Subject:
    745                                                         // Subjects should have unique names; if the user has entered the same name multiple times,
    746                                                         // the subject will be renamed
    747                                                         def subjectFound = study.subjects?.find( equalClosure ) ;
    748                                                         if( preferredIdentifier && subjectFound ) {
    749                                                                 def baseName = entity.getFieldValue( preferredIdentifier.name )
    750                                                                 def counter = 1;
     745                                                        if( !study.samples?.find( equalClosure ) ) {
    751746                                                               
    752                                                                 while( study.subjects?.find { it.getFieldValue( preferredIdentifier.name ) == entity.getFieldValue( preferredIdentifier.name ) } ) {
    753                                                                         entity.setFieldValue( preferredIdentifier.name, baseName + " (" + counter++ + ")" )
     747                                                                if( preferredIdentifier ) {
     748                                                                        // Subjects without a name should just be called 'subject'
     749                                                                        if( !entity.getFieldValue( preferredIdentifier.name ) )
     750                                                                                entity.setFieldValue( preferredIdentifier.name, "Subject" );
     751                                                               
     752                                                                        // Subjects should have unique names; if the user has entered the same name multiple times,
     753                                                                        // the subject will be renamed
     754                                                                        def baseName = entity.getFieldValue( preferredIdentifier.name )
     755                                                                        def counter = 2;
     756                                                                       
     757                                                                        while( study.subjects?.find { it.getFieldValue( preferredIdentifier.name ) == entity.getFieldValue( preferredIdentifier.name ) } ) {
     758                                                                                entity.setFieldValue( preferredIdentifier.name, baseName + " (" + counter++ + ")" )
     759                                                                        }
    754760                                                                }
     761                                                               
     762                                                                study.addToSubjects( entity );
     763                                                       
    755764                                                        }
    756                                                         study.addToSubjects( entity );
    757765                                                       
    758766                                                        break;
    759767                                                case Event:
    760                                                         if( !preferredIdentifier || !study.events?.find( equalClosure ) ) {
     768                                                        if( !study.events?.find( equalClosure ) ) {
    761769                                                                study.addToEvents( entity );
    762770                                                        }
     
    769777                                                        }
    770778                                               
    771                                                         if( !preferredIdentifier || !study.samplingEvents?.find( equalClosure ) ) {
     779                                                        if( !study.samplingEvents?.find( equalClosure ) ) {
    772780                                                                study.addToSamplingEvents( entity );
    773781                                                        }
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r1611 r1612  
    413413                                if (mc != null && !mc.dontimport && mc.entityclass == entity) {
    414414                                        try {
    415                                                 value = formatValue(df.formatCellValue(cell), mc.templatefieldtype)
     415                                                if( cell.getCellType() == Cell.CELL_TYPE_NUMERIC && DateUtil.isCellDateFormatted(cell) ) {
     416                                                        // The format for date template fields is dd/mm/yyyy
     417                                                        def date = cell.getDateCellValue();
     418                                                        value = date.format( "dd/MM/yyyy" )
     419                                                        println "Date value: " + value + " - " + formatValue(df.formatCellValue(cell), mc.templatefieldtype);
     420                                                } else {
     421                                                        value = formatValue(df.formatCellValue(cell), mc.templatefieldtype)
     422                                                }
    416423                                        } catch (NumberFormatException nfe) {
    417424                                                value = ""
Note: See TracChangeset for help on using the changeset viewer.