Changeset 1864 for trunk/grails-app/services
- Timestamp:
- May 23, 2011, 4:36:00 PM (11 years ago)
- Location:
- trunk/grails-app/services/dbnp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/services/dbnp/modules/ModuleCommunicationService.groovy
r1852 r1864 15 15 package dbnp.modules 16 16 17 import dbnp.studycapturing.*18 import dbnp.authentication.*19 17 import grails.converters.* 20 18 import javax.servlet.http.HttpServletResponse … … 75 73 } 76 74 77 75 /** 78 76 * Calls a rest method on a module 79 77 * -
trunk/grails-app/services/dbnp/studycapturing/AssayService.groovy
r1853 r1864 50 50 } 51 51 52 def moduleError = '', moduleMeasurements = [] 53 54 try { 55 moduleMeasurements = requestModuleMeasurementNames(assay) 56 } catch (e) { 57 moduleError = e.message 58 } 59 52 60 def samples = assay.samples 53 61 [ 'Subject Data' : getUsedTemplateFields( samples*."parentSubject".unique() ), … … 55 63 'Sample Data' : getUsedTemplateFields( samples ), 56 64 'Event Group' : [[name: 'name', comment: 'Name of Event Group', displayName: 'name']], 57 58 // If module is not reachable, only the field 'module error' is returned, and is filled later on. 59 'Module Measurement Data': moduleCommunicationService.isModuleReachable(assay.module.url) ? requestModuleMeasurementNames(assay) : [ [ name: "Module error" ] ] 65 'Module Measurement Data': moduleMeasurements, 66 'ModuleError': moduleError 60 67 ] 61 68 … … 83 90 headerFields.inject([:]) { map, headerField -> 84 91 85 map + [(headerField.displayName): templateEntities.collect { 92 map + [(headerField.displayName): templateEntities.collect { entity -> 86 93 87 94 // default to an empty string 88 95 def val = '' 89 96 90 def field 91 try { 92 93 val = it.getFieldValue(headerField.name) 94 95 // Convert RelTime fields to human readable strings 96 field = it.getField(headerField.name) 97 if (field.type == TemplateFieldType.RELTIME) 98 val = new RelTime( val as long ) 99 100 } catch (NoSuchFieldException e) { /* pass */ } 97 if (entity) { 98 def field 99 try { 100 101 val = entity.getFieldValue(headerField.name) 102 103 // Convert RelTime fields to human readable strings 104 field = entity.getField(headerField.name) 105 if (field.type == TemplateFieldType.RELTIME) 106 val = new RelTime( val as long ) 107 108 } catch (NoSuchFieldException e) { /* pass */ } 109 } 101 110 102 111 (val instanceof Number) ? val : val.toString()}] … … 177 186 } 178 187 188 def moduleError = '', moduleMeasurementData = [:] 189 190 if (measurementTokens) { 191 192 try { 193 moduleMeasurementData = requestModuleMeasurements(assay, measurementTokens, samples) 194 } catch (e) { 195 moduleMeasurementData = ['error' : ['Module error, module not available or unknown assay'] * samples.size() ] 196 moduleError = e.message 197 } 198 199 } 200 179 201 [ 'Subject Data' : getFieldValues(samples, fieldMap['Subject Data'], 'parentSubject'), 180 202 'Sampling Event Data' : getFieldValues(samples, fieldMap['Sampling Event Data'], 'parentEvent'), 181 203 'Sample Data' : getFieldValues(samples, fieldMap['Sample Data']), 182 204 'Event Group' : eventFieldMap, 183 184 // If module is not reachable, only the message 'module not reachable' is given for each sample 185 'Module Measurement Data': moduleCommunicationService.isModuleReachable(assay.module.url) ? 186 ( measurementTokens ? requestModuleMeasurements(assay, measurementTokens, samples) : [:] ) : 187 [ "Module error": [ "Module not reachable" ] * samples.size() ] 205 'Module Measurement Data' : moduleMeasurementData, 206 'ModuleError' : moduleError 188 207 ] 189 208 } … … 249 268 250 269 def path = moduleUrl + "/rest/getMeasurements/query" 251 def query = "assayToken=$ assay.assayUUID"270 def query = "assayToken=${assay.giveUUID()}" 252 271 def jsonArray 253 272 … … 274 293 * @param assay Assay for which the module measurements should be retrieved 275 294 * @param measurementTokens List with the names of the fields to be retrieved. Format: [ 'measurementName1', 'measurementName2' ] 276 * @param samples Samples for which the module295 * @param samples Samples to collect measurements for 277 296 * @return 278 297 */ … … 329 348 measurements << null 330 349 } else { 331 measurements << ( moduleData[ valueIndex ] == JSONObject.NULL ? "" : moduleData[ valueIndex ].toDouble() ); 350 351 def val 352 def measurement = moduleData[ valueIndex ] 353 354 if (measurement == JSONObject.NULL) val = "" 355 else if (measurement instanceof Number) val = measurement 356 else if (measurement.isDouble()) val = measurement.toDouble() 357 else val = measurement.toString() 358 measurements << val 332 359 } 333 360 } else { … … 487 514 // transpose d into row wise data and combine with header rows 488 515 headers + d.transpose() 489 } 516 } else [] 490 517 491 518 }
Note: See TracChangeset
for help on using the changeset viewer.