| [613] | 1 | IBCEF6 ;ALB/TMP - EDI TRANSMISSION RULES DISPLAY ;28-APR-99 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**137**;21-MAR-94 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | EN ; -- main entry point for IBCE RULES | 
|---|
|  | 5 | N IBACTIVE | 
|---|
|  | 6 | S DIR("A")="Press RETURN to continue: ",DIR("A",1)="",$P(DIR("A",1),"*",54)="",DIR("A",1)=$J("",10)_DIR("A",1) | 
|---|
|  | 7 | S DIR("A",2)=$J("",10)_"*  WARNING -  MAKING CHANGES TO THE TRANSMISSION    *",DIR("A",3)=$J("",10)_"*  RULES USING THIS OPTION CAN SERIOUSLY AFFECT THE *" | 
|---|
|  | 8 | S DIR("A",4)=$J("",10)_"*  SITE'S ABILITY TO BILL.  BE EXTREMELY CAUTIOUS   *" | 
|---|
|  | 9 | S DIR("A",5)=$J("",10)_"*  WHEN USING THIS OPTION.                          *" | 
|---|
|  | 10 | S DIR("A",6)=DIR("A",1),DIR("A",7)=" " | 
|---|
|  | 11 | S DIR(0)="EA" | 
|---|
|  | 12 | D ^DIR K DIR | 
|---|
|  | 13 | I 'Y G ENQ | 
|---|
|  | 14 | D EN^VALM("IBCE RULES") | 
|---|
|  | 15 | ENQ Q | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | HDR ; -- header code | 
|---|
|  | 18 | S VALMHDR(1)=" " | 
|---|
|  | 19 | S VALMHDR(2)="     FORM    TRANSMIT   INSURANCE  RULE" | 
|---|
|  | 20 | S VALMHDR(3)=" #   TYPE      TYPE       OPTION   NUM    SHORT DESCRIPTION"_$J("",30)_"ACTIVE DATE    INACTIVE DATE" | 
|---|
|  | 21 | Q | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | INIT ; -- init variables and list array | 
|---|
|  | 24 | N IBI,IBR,IBRT | 
|---|
|  | 25 | S VALMCNT=0,VALMBG=1 | 
|---|
|  | 26 | ; -- build list of rules | 
|---|
|  | 27 | D REBLD(0) | 
|---|
|  | 28 | Q | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | REBLD(IBACTIVE) ; Set up formatted global | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | N IBI,IBR,IBS,IBRT,IBCNT,X,IB0,IBIN,IBNEXT,TEXT,Z | 
|---|
|  | 33 | D CLEAN^VALM10 | 
|---|
|  | 34 | K ^TMP("IBCE-RULE",$J),^TMP("IBCE-RULEDX",$J) | 
|---|
|  | 35 | S (IBI,IBR)=0 | 
|---|
|  | 36 | F  S IBI=$O(^IBE(364.4,IBI)) Q:'IBI  S IB0=$G(^(IBI,0)) D | 
|---|
|  | 37 | . S IBRT=+$P(IB0,U,11) | 
|---|
|  | 38 | . ;Extract rules by rule type and keep inactive rules at end | 
|---|
|  | 39 | . S IBIN=$S($P(IB0,U,2)&($P(IB0,U,2)>DT):800,$P(IB0,U,6)&($P(IB0,U,6)'>DT):900,1:0) ; Is rule inactive? | 
|---|
|  | 40 | . Q:IBIN&$G(IBACTIVE)  ; Only active rules displayed | 
|---|
|  | 41 | . S IBNEXT=$O(IBR(IBRT,800),-1)+1 | 
|---|
|  | 42 | . I IBIN D | 
|---|
|  | 43 | .. S IBNEXT=$O(IBR(IBRT,IBIN+99),-1)+1 | 
|---|
|  | 44 | .. I IBNEXT<IBIN S IBNEXT=IBIN | 
|---|
|  | 45 | . S IBR(IBRT,IBNEXT)=IBI | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | S (VALMCNT,IBCNT)=0,IBRT="" | 
|---|
|  | 48 | F  S IBRT=$O(IBR(IBRT)) Q:IBRT=""  D | 
|---|
|  | 49 | . ; -- add rule type to list | 
|---|
|  | 50 | . ; Add 1 blank line between types | 
|---|
|  | 51 | . I $O(IBR(""))'=IBRT D SET(" ",.VALMCNT,IBCNT) | 
|---|
|  | 52 | . S X="- "_$$EXPAND^IBTRE(364.4,.11,IBRT)_" -" | 
|---|
|  | 53 | . S IBS=(80-$L(X))\2 | 
|---|
|  | 54 | . S X=$J("",IBS)_X | 
|---|
|  | 55 | . D SET(X,.VALMCNT,$S(IBCNT:IBCNT,1:1)) | 
|---|
|  | 56 | . D CNTRL^VALM10(VALMCNT,IBS+1,$L(X)-IBS,IORVON,IORVOFF) | 
|---|
|  | 57 | . D SET(" ",.VALMCNT,$S(IBCNT:IBCNT,1:1)) | 
|---|
|  | 58 | . S IBS=0 F  S IBS=$O(IBR(IBRT,IBS)) Q:'IBS  S IBRULE=+$G(IBR(IBRT,IBS)) I IBRULE D | 
|---|
|  | 59 | .. S IB0=$G(^IBE(364.4,IBRULE,0)) | 
|---|
|  | 60 | .. S X="" | 
|---|
|  | 61 | .. S IBCNT=IBCNT+1 | 
|---|
|  | 62 | .. S X=$J(IBCNT,3)_"  "_$S($P(IB0,U,5)=1:"INST",$P(IB0,U,5)=2:"PROF",1:"BOTH")_"  "_$E($S($P(IB0,U,3)=1:"EDI ONLY",$P(IB0,U,3)=2:"MRA ONLY",1:"BOTH EDI/MRA")_$J("",14),1,14) | 
|---|
|  | 63 | .. S X=X_$E($S($P(IB0,U,7)=1:"INCLUDES",$P(IB0,U,7)=2:"EXCLUDES",1:"ALL")_$J("",11),1,11)_$E($P(IB0,U)_$S(IBS'<800:"*",1:"")_$J("",6),1,6) | 
|---|
|  | 64 | .. S X=X_$E($P(IB0,U,8)_$J("",47),1,47)_$E($$EXPAND^IBTRE(364.4,.02,$P(IB0,U,2))_$J("",15),1,15)_$$EXPAND^IBTRE(364.4,.06,$P(IB0,U,6)) | 
|---|
|  | 65 | .. D SET(X,.VALMCNT,IBCNT,IBRULE) | 
|---|
|  | 66 | . S VALMSG=$S('$G(IBACTIVE):"Rule #'s followed by an * are currently inactive",1:"Only currently active rules are displayed") | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | I '$D(^TMP("IBCE-RULE",$J)) S VALMCNT=2,IBCNT=2,^TMP("IBCE-RULE",$J,1,0)=" ",^TMP("IBCE-RULE",$J,2,0)="    No "_$S('$G(IBACTIVE):"",1:"Active")_" Transmission Rules Found",^TMP("IBCE-RULE",$J,"IDX",1,1)="",^TMP("IBCE-RULE",$J,"IDX",2,2)="" | 
|---|
|  | 69 | Q | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | SET(X,VALMCNT,IBCNT,IBRULE) ; | 
|---|
|  | 72 | ; X = Text to set into display global | 
|---|
|  | 73 | ; VALMCNT = returned if passed by ref = the last line set in display | 
|---|
|  | 74 | ; IBCNT = entry number to use if the line is selectable; non-select = 0 | 
|---|
|  | 75 | ; IBRULE = ien of rule being displayed | 
|---|
|  | 76 | ; | 
|---|
|  | 77 | S VALMCNT=VALMCNT+1,^TMP("IBCE-RULE",$J,VALMCNT,0)=X | 
|---|
|  | 78 | D SET^VALM10(VALMCNT,X,IBCNT) | 
|---|
|  | 79 | I $G(IBRULE) D | 
|---|
|  | 80 | . S ^TMP("IBCE-RULEDX",$J,IBCNT)=VALMCNT_U_IBRULE | 
|---|
|  | 81 | Q | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | HELP ; -- help code | 
|---|
|  | 84 | S X="?" D DISP^XQORM1 W !! | 
|---|
|  | 85 | Q | 
|---|
|  | 86 | ; | 
|---|
|  | 87 | EXIT ; -- exit code | 
|---|
|  | 88 | K ^TMP("IBCE-RULE",$J),^TMP("IBCE-RULEDX",$J),IBRULE | 
|---|
|  | 89 | D FULL^VALM1 | 
|---|
|  | 90 | Q | 
|---|
|  | 91 | ; | 
|---|
|  | 92 | EXPND ; -- expand code | 
|---|
|  | 93 | Q | 
|---|
|  | 94 | ; | 
|---|