You don't need forall to solve your problem. The following rule prints all
patient names which don't have problem 4711; omitting the 'not' prints
those suffering from Colognitis.
rule lookJoe
when
$patient: Patient()
not ( Problem( code == "4711" ) from $patient.problemList )
then
System.out.println( $patient.getName() );
end
'not' implies quantification (or exhaustive search over the domain).
Without 'not' also searches all Problem entries of the current Patient
so it would fire again if the patient has a problem stored more than
once.
-W2009/3/20 howard goldberg <goldberg.howard@gmail.com>_______________________________________________Trying to check whether a patient has a particular problem on their problem list:
when
$patient : Patient()
forall ( Problem( code != "195967001") from $patient.problemList)
but I get the following parsing error--
[29,41]: [ERR 101] Line 29:41 mismatched input 'FROM' expecting ')' in rule "Dumb no asthma Rule"
[29,66]: [ERR 101] Line 29:66 mismatched input ')' expecting '(' in rule "Dumb no asthma Rule" in pattern $patient.problemList
What is the correct way to check for this condition?
Thanks,
Howard
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users