source: trunk/grails-app/domain/dbnp/clinicaldata/ClinicalMeasurement.groovy @ 187

Last change on this file since 187 was 187, checked in by keesvb, 12 years ago

changed definition of clean data layer, implemented it for the clinical data module, added demonstration to the sandbox

  • Property svn:keywords set to
    Date
    Author
    Rev
File size: 1.1 KB
Line 
1package dbnp.clinicaldata
2
3import dbnp.data.FeatureType
4
5class ClinicalMeasurement
6 extends dbnp.data.FeatureBase {
7
8        // For now, let's assume that quantitative values are stored as float,
9        // and qualitative values as string
10        // We can always add an additional ClinicalMeasurementType datatype (FLOAT, INTEGER etc.) later (as was here until rev 186)
11
12        String referenceValues
13        float detectableLimit
14        String correctionMethod
15        boolean isDrug
16        boolean isIntake
17        boolean inSerum
18
19        static constraints = {
20                name(unique:true)
21                referenceValues(nullable: true, blank: true)
22                detectableLimit(nullable: true)
23                correctionMethod(nullable: true, blank: true)
24        }
25
26        Map getValues(long assayID, String[] sampleIDs) {
27                FeatureType featureType = type
28                switch(featureType) {
29                        case FeatureType.QUANTITATIVE:
30                                def values = ClinicalFloatData.withCriteria {
31                                        assay { eq("id",assayID) }
32                                        eq("measurement",this)
33                                        'in'("sample",sampleIDs)
34                                }
35                                def result = new HashMap<String,Float>();
36                                values.each {
37                                        result.put(it.sample,it.value)
38                                }
39                                return result
40                        default:
41                                throw new NoSuchFieldException("Feature type ${featureType} not supported")
42                }
43        }
44}
Note: See TracBrowser for help on using the repository browser.