OCXOED10 ;SLC/RJS,CLA - Rule Editor (Element Expression Options) ;10/29/98 12:37 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998 ; ; S ; ; Q EN(OCXD0,OCXR1,OCXRD,OCXACT) ; ; ; N OCXTHLN,OCXTNLN,OCXTRLN,OCXTULN,OCXTNLN ; S OCXTNLN=$C(27,91,48,109),OCXTRLN=$C(27,91,55,109),OCXTULN=$C(27,91,52,109),OCXTHLN=$C(27,91,49,109) ; S OCXOPT=$$GETOPT^OCXOEDT(.OCXACT) Q:(OCXOPT=U) 1 X:$L(OCXOPT) OCXOPT ; Q 0 ; ; EDEXP(OCXD0,OCXD1) ; N X,DA S DA=OCXD1,DA(1)=OCXD0 S X=$$DIE("^OCXS(860.3,"_OCXD0_",""COND"",",.DA,"1PRIMARY DATA FIELD~") Q:'$D(^OCXS(860.3,OCXD0,"COND",OCXD1)) S X=$$DIE("^OCXS(860.3,"_OCXD0_",""COND"",",.DA,"2") S OCXP=$$PARNUM(+$G(^OCXS(860.3,OCXD0,"COND",OCXD1,"OPER"))) Q:(OCXP=1) I (OCXP=2) D .N OCXP .S X=$$DIE("^OCXS(860.3,"_OCXD0_",""COND"",",.DA,"3COMPARE VALUE~;S:$L(X) Y=""@1"";4COMPARE DATA FIELD~;@1") I (OCXP=3) D .N OCXP .S X=$$DIE("^OCXS(860.3,"_OCXD0_",""COND"",",.DA,"3COMPARE VALUE 1~;S:$L(X) Y=""@1"";4COMPARE DATA FIELD 1~;@1") .W !!,"AND",!! .S X=$$DIE("^OCXS(860.3,"_OCXD0_",""COND"",",.DA,"3.1COMPARE VALUE 2~;S:$L(X) Y=""@1"";5COMPARE DATA FIELD 2~;@1") Q ; EDDF(OCXD0) ; D EN^OCXOED11(OCXD0) Q ; PARNUM(OCXOPER) ; ; N OCXPF,OCXPFN S OCXPF=$O(^OCXS(863.9,+OCXOPER,"PAR","B","OCXO GENERATE CODE FUNCTION",0)) Q:'OCXPF 0 S OCXPF=$G(^OCXS(863.9,+OCXOPER,"PAR",+OCXPF,"VAL")) Q:'$L(OCXPF) 0 I OCXPF S OCXPFN=OCXPF E S OCXPFN=0 F S OCXPFN=$O(^OCXS(863.7,"B",$E(OCXPF,1,30),OCXPFN)) Q:'OCXPFN Q:($P($G(^OCXS(863.7,+OCXPFN,0)),U,1)=OCXPF) Q:'OCXPFN 0 Q +$O(^OCXS(863.7,+OCXPFN,"PAR",999),-1) ; ; READ(OCXZ0,OCXZA,OCXZB,OCXZL) ; N OCXLINE,DIR,DTOUT,DUOUT,DIRUT,DIROUT Q:'$L($G(OCXZ0)) U S DIR(0)=OCXZ0 S:$L($G(OCXZA)) DIR("A")=OCXZA S:$L($G(OCXZB)) DIR("B")=OCXZB F OCXLINE=1:1:($G(OCXZL)-1) W ! D ^DIR I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) Q U Q Y ; DIE(DIE,DA,DR) ; ; D RM(IOM) N DUOUT,DTOUT,DIC S DIC=DIE D ^DIE D RM(0) Q:$G(DTOUT) 0 Q:$G(DUOUT) 0 Q 1 ; RM(X) X ^%ZOSF("RM") Q ; DIC(OCXDIC,OCXDIC0,OCXDICA,OCXX,OCXDICS,OCXDR,DA) ; ; N DIC,X,Y S DIC=$G(OCXDIC) Q:'$L(DIC) -1 S DIC(0)=$G(OCXDIC0) S:$L($G(OCXX)) X=OCXX S:$L($G(OCXDICS)) DIC("S")=OCXDICS S:$L($G(OCXDICA)) DIC("A")=OCXDICA S:$L($G(OCXDR)) DIC("DR")=OCXDR D ^DIC Q:(Y<1) 0 Q Y ;