cancel
Showing results for 
Search instead for 
Did you mean: 

Groovy calculation for pass/fail

suniba
Occasional Visitor

Groovy calculation for pass/fail

Hi,

 

I need help with a calculation rule. I am defining a result field where people have to do data entry in 20 fields. All the data entry is numeric. I have a calculation rule that finds out maximum, minimum and lists all the values in a line.

 

Now I want reuslts to show fail when more than two values are above 80 in all 20fields. How can I do that.

 

I am using following rule for max, min and list:


class CRSAL{
def crystals = [] //Capture all the crystal entry

def addCrystals(List itm){
def crys = itm.flatten()
//add the list item
for(reading in crys){
if(isReal(reading)){crystals.add(reading)}
}
}

Boolean isReal(def Assay){
if(Assay != null && Assay != "" ) { return true }
else { return false }
}

def minCrystal(){
if(crystals.isEmpty()){return "ND"}
else{return crystals.min()}
}

def maxCrystal(){
if(crystals.isEmpty()){return "ND"}
else{return crystals.max()}
}

//Return list of crystals
def lstCrystals(){crystals.sort()}

def reportCrystals(){
if(crystals.isEmpty()){return "ND"}
String report = ""
lstCrystals()
for(itm in crystals){
report = report + " " + itm
}
return report[1..-1]
}
}


CRSAL C1 = new CRSAL()
C1.addCrystals([${Slide 1 (1 of 5);Minimum;*}])
C1.addCrystals([${Slide 1 (1 of 5);Maximum;*}])
C1.addCrystals([${Slide 1 (2 of 5);Minimum;*}])
C1.addCrystals([${Slide 1 (2 of 5);Maximum;*}])
C1.addCrystals([${Slide 1 (3 of 5);Minimum;*}])
C1.addCrystals([${Slide 1 (3 of 5);Maximum;*}])
C1.addCrystals([${Slide 1 (4 of 5);Minimum;*}])
C1.addCrystals([${Slide 1 (4 of 5);Maximum;*}])
C1.addCrystals([${Slide 1 (5 of 5);Minimum;*}])
C1.addCrystals([${Slide 1 (5 of 5);Maximum;*}])

C1.addCrystals([${Slide 2 (1 of 5);Minimum;*}])
C1.addCrystals([${Slide 2 (1 of 5);Maximum;*}])
C1.addCrystals([${Slide 2 (2 of 5);Minimum;*}])
C1.addCrystals([${Slide 2 (2 of 5);Maximum;*}])
C1.addCrystals([${Slide 2 (3 of 5);Minimum;*}])
C1.addCrystals([${Slide 2 (3 of 5);Maximum;*}])
C1.addCrystals([${Slide 2 (4 of 5);Minimum;*}])
C1.addCrystals([${Slide 2 (4 of 5);Maximum;*}])
C1.addCrystals([${Slide 2 (5 of 5);Minimum;*}])
C1.addCrystals([${Slide 2 (5 of 5);Maximum;*}])

${Is Test Performed;Informational} == 'Y'
? C1.reportCrystals()
: ''

 

New Here?
Join us and watch the welcome video: