| 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 |  ;
 | 
|---|