加载流口水指导决策表到Java列表/地图

发布于 2025-01-25 22:38:50 字数 2740 浏览 4 评论 0原文

嗨,我想知道是否有一种方法可以将指导决策表的所有内容加载到Java Collection(列表/MAP)?我通过使每个规则(行)调用Java方法来实现这一目标,在该方法中我将其添加到一个hashmap中,但是在性能方面确实很糟糕,我想知道是否有更好的方法可以这样做。提前致谢!

[![输入图像描述在此处]

   package MyPkg;

import com.abc.por.model.Bborder;
import com.abc.por.utils.BborderUtil;
import com.abc.por.utils.MyUtil;
import com.abc.por.model.constants.FE;

//from row number: 1
//PRE_Regression
rule "Row 1 HPDT"
    @RuleName(OnlyOnePharmacy)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" , requestDateTime < "03-May-2022" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGC" );
        myUtil.setPlanType( "RGC" );
        myUtil.setFeIndicator( "NO" );
        myUtil.setPharmacies( "RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

//from row number: 2
//PRE_Regression
rule "Row 2 HPDT"
    @RuleName(SinglePharmacy)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGA" );
        myUtil.setPlanType( "RGA" );
        myUtil.setFeIndicator( "NO" );
        myUtil.setPharmacies( "MPT,RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

//from row number: 3
//PRE_Regression
rule "Row 3 HPDT"
    @RuleName(FE=BE)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGB" );
        myUtil.setPlanType( "RGB" );
        myUtil.setFeIndicator( "YES" );
        myUtil.setPharmacies( "MPT,RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

Hi I was wondering if there is a way to load all the content of the guided decision table to java collection (list/map)? I achieved this by making each rule(row) calling a java method where I add this to a hashmap but performance-wise is really bad I was wondering if there is a better way to do so. Thanks in advance!

Guided Desion Table

[![enter image description here]

   package MyPkg;

import com.abc.por.model.Bborder;
import com.abc.por.utils.BborderUtil;
import com.abc.por.utils.MyUtil;
import com.abc.por.model.constants.FE;

//from row number: 1
//PRE_Regression
rule "Row 1 HPDT"
    @RuleName(OnlyOnePharmacy)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" , requestDateTime < "03-May-2022" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGC" );
        myUtil.setPlanType( "RGC" );
        myUtil.setFeIndicator( "NO" );
        myUtil.setPharmacies( "RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

//from row number: 2
//PRE_Regression
rule "Row 2 HPDT"
    @RuleName(SinglePharmacy)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGA" );
        myUtil.setPlanType( "RGA" );
        myUtil.setFeIndicator( "NO" );
        myUtil.setPharmacies( "MPT,RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

//from row number: 3
//PRE_Regression
rule "Row 3 HPDT"
    @RuleName(FE=BE)
    no-loop true
    lock-on-active true
    ruleflow-group "HighPayer"
    dialect "mvel"
    when
        borderUtil : BborderUtil( )
        Bborder( src : src == "SPECIAL" )
        border : Bborder( requestDateTime >= "24-Dec-2020" )
    then
        MyUtil myUtil = new MyUtil();
        myUtil.setPlanCode( "RGB" );
        myUtil.setPlanType( "RGB" );
        myUtil.setFeIndicator( "YES" );
        myUtil.setPharmacies( "MPT,RED" );
        insert( myUtil );
        modify( borderUtil ) {
                setRuleFired( true )
        }
        borderUtil.populateDrugDataToMap( null, myUtil, border );
        retract( myUtil);
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文