I am passing a glucose decision object with a value of 12, and have a state object that starts out with its flag set false. The desired behavior is that the value will be recognized as "extremeHypoglycemia" by the first rule, and then the second rule will recommend giving a glucose bolus.

When I pass both objects in without "true" to cause automatic updating, then the first rule fires, the output is

false
Fired detect extreme hypoglycemia
true

and then the program stops.  It does not fire the second rule.

When I add true to the insertion of these objects, then the program recurses, and still never hits the second rule. Interestingly, the output is

true
Fired detect extreme hypoglycemia
true
true
Fired detect extreme hypoglycemia
true
...
ETC.


rule "First rule: Detect extreme hypoglycemia"
        no-loop true
        when
                decision : GlucoseDecision( serumGlucoseConcentration < 40 )
                decisionState : GlucoseDecisionState(extremeHypoglycemia == 
false)
        then
                System.out.println("Fired detect extreme hypoglycemia");
                System.out.println(decisionState.isExtremeHypoglycemia());
                decisionState.setExtremeHypoglycemia(true);
                decision.setRationaleText(decision.getRationaleText() +
                        "Extreme hypoglycemia (Current glucose is " +
                        decision.getSerumGlucoseConcentration() +" mg/dL).\n");
                System.out.println(decisionState.isExtremeHypoglycemia());      
                update(decision);       
end

rule "Second rule: Give glucose bolus for extreme hypoglycemia"
        no-loop true
        when
                decision : GlucoseDecision()
                decisionState : GlucoseDecisionState(extremeHypoglycemia == 
true )
        then
        System.out.println("Fired glucose bolus rule");
                decisionState.setRecommendedGlucoseBolus(true);
                decision.setRationaleText(decision.getRationaleText() +
                        "Glucose bolus recommended because of extreme 
hypoglycemia.\n");
end
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to