[rules-users] count with nested condition

Yoni Mazar y.mazar at gmail.com
Wed Jul 30 03:08:54 EDT 2008


Hi,
Yes, your proposed solution does work.
Unfortunately, the accumulate-count function is not well described in the
documentation.
In addition, I still have a concern. The required business functionality is
simple, but the implementing rule is very technical and not trivial. I can
hardly expect a business user to write such a rule. Providing a DSL for
accumulate looks (at least to my eyes) impossible.
Will it help to assert the LabResults to the working memory (in addition to
the LabEvents)? Will it help to split this logic to two rules (one filters
the LabEvents into a temporary collection, and one count this collection).

Thanks for the help, Yoni


Edson Tirelli-3 wrote:
> 
>     What about:
> 
> Number( intValue > 1 ) from accumulate(
>         LabEvent( eval( dateWithinLastMonths(effectiveTime,1)), results :
> laboratoryResult ) and
>         LabResult( value > 1.8 ) from results,
>         count( 1 ) )
> 
>    Accumulate supports multiple patterns and has the count() function.
> 
>    Try it out and let us know.
> 
>    []s
>    Edson
> 
> 2008/7/29 Yoni Mazar <y.mazar at gmail.com>
> 
>>
>> Hi all,
>>
>> Our object deals with the clinical domain. We have a class LabEvent that
>> represents a visit in the laboratory. Each event is associated (using the
>> laboratoryResult association) with one or more LabResult objects
>> (children),
>> each represents the results of a particular test.
>> in the rule LHS we want to express the following condition:
>> "At least two LabEvents in the last month, with a LabResult with value
>> greater than 1.8"
>> of note, the application asserts the LabEvent objects to the
>> workingMemory.
>>
>> in DRL we tried to write it as:
>> ArrayList(size>1) from collect(
>> LabEvent(eval( dateWithinLastMonths(effectiveTime,1)),
>> results:laboratoryResult)
>> LabResult( value >1.8) from results)
>>
>> Of course, the problem is that collect expects a single pattern...
>>
>> Does anyone has a simple idea how to express this business logic?
>>
>> Thanks, Yoni
>> --
>> View this message in context:
>> http://www.nabble.com/count-with-nested-condition-tp18710506p18710506.html
>> Sent from the drools - user mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
> 
> 
> 
> -- 
> Edson Tirelli
> JBoss Drools Core Development
> JBoss, a division of Red Hat @ www.jboss.com
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
-- 
View this message in context: http://www.nabble.com/count-with-nested-condition-tp18710506p18727321.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list