| 1 | RCDPEWL6 ;ALB/TMK - ELECTRONIC EOB WORKLIST ACTIONS ;18-MAR-03
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**173,208,222**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | DISTADJ ; Distribute an adjustment that retracts a payment to other bill(s)
 | 
|---|
| 7 |  ; NOTE: RCSCR is assumed to be the IEN of the ERA entry in file 344.49
 | 
|---|
| 8 |  N RCDA,RCDA1,RCAMT,RCADJ,RCQUIT,Z,Z0,Z1,DIR,X,Y,CT,RCZ,RCZ1,RCZ2,RCADJOK,TOT,DTOUT,DUOUT
 | 
|---|
| 9 |  D FULL^VALM1
 | 
|---|
| 10 |  I $G(RCSCR("NOEDIT")) D NOEDIT^RCDPEWL G DISTQ
 | 
|---|
| 11 |  I $G(^TMP("RCBATCH_SELECTED",$J)) D NOBATCH^RCDPEWL G DISTQ
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  S Z=0,RCADJOK="" F  S Z=$O(^TMP("RCDPE-EOB_WLDX",$J,Z)) Q:'Z  S Z1=+$P($G(^(Z)),U,2),Z0=$G(^RCY(344.49,RCSCR,1,Z1,0)) D
 | 
|---|
| 14 |  . ;(^RCY(344.49,RCSCR,1,Z)) Q:'Z  S Z0=$G(^(Z,0)) D
 | 
|---|
| 15 |  . I $P(Z0,U)'["." S RCADJOK=($P(Z0,U,2)["**ADJ") Q
 | 
|---|
| 16 |  . I '$P(Z0,U,7),'RCADJOK Q  ; Suspense item cannot be used to adjust
 | 
|---|
| 17 |  . I $P(Z0,U,6)<0 S RCZ(Z)=$P(Z0,U,6)_U_Z1 Q
 | 
|---|
| 18 |  . I $P(Z0,U,6)>0 D  Q
 | 
|---|
| 19 |  .. N Q,ONHLD,IBA
 | 
|---|
| 20 |  .. S ONHLD=0
 | 
|---|
| 21 |  .. I $P(Z0,U,7) I $$IB^IBRUTL(+$P(Z0,U,7),1) S Q=0 F  S Q=$O(IBA(Q)) Q:'Q  I $P($G(^IB(+IBA(Q),0)),U,5)=8 S ONHLD=1 Q
 | 
|---|
| 22 |  .. S RCZ1(+$P(Z0,U,6),Z)=Z1_U_ONHLD,RCZ2(Z)=Z1_U_$P(Z0,U,6)_U_ONHLD Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  I $O(RCZ(0))="" D  G DISTQ
 | 
|---|
| 25 |  . S DIR(0)="EA",DIR("A",1)="NO LINES EXIST NEEDING ADJUSTMENT DISTRIBUTION",DIR("A")="PRESS RETURN TO CONTINUE" W ! D ^DIR K DIR
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  I $O(RCZ1(0))="" D  G DISTQ
 | 
|---|
| 28 |  . S DIR(0)="EA",DIR("A",1)="NO VALID LINES EXIST ON THIS ERA WHERE A DISTRIBUTION CAN BE MADE",DIR("A",2)=$$WHAT(RCSCR),DIR("A")="PRESS RETURN TO CONTINUE" W ! D ^DIR K DIR
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  S RCQUIT=0
 | 
|---|
| 31 |  F  S DIR(0)="NA^1:9999:3",DIR("A")="SELECT A LINE THAT NEEDS AN ADJUSTMENT AMOUNT DISTRIBUTED: " D  Q:RCQUIT
 | 
|---|
| 32 |  . S DIR("?",1)="THE FOLLOWING LINE(S) HAVE AN ADJUSTMENT THAT CAUSED A NEGATIVE NET PAYMENT.",DIR("?",2)="IN ORDER TO BALANCE THE RECEIPT AND THE DEPOSIT, THESE AMOUNTS WILL NEED TO",DIR("?",3)="  BE DISTRIBUTED TO OTHER LINE(S)",CT=3
 | 
|---|
| 33 |  . S Z=0
 | 
|---|
| 34 |  . F  S Z=$O(RCZ(Z)) Q:'Z  S CT=CT+1,DIR("?",CT)="  "_$J(Z,8)_"  "_$J($P(RCZ(Z),U),15,2)
 | 
|---|
| 35 |  . S DIR("?")=" "
 | 
|---|
| 36 |  . I $O(RCZ(0))=$O(RCZ(""),-1) S DIR("B")=$O(RCZ(0))
 | 
|---|
| 37 |  . W ! D ^DIR K DIR
 | 
|---|
| 38 |  . I $D(DUOUT)!$D(DTOUT)!(Y="") S RCQUIT=1,RCDA="" Q
 | 
|---|
| 39 |  . I '$D(^TMP("RCDPE-EOB_WLDX",$J,Y)) W !,"THIS LINE DOES NOT EXIST FOR THIS ERA" W ! Q
 | 
|---|
| 40 |  . I '$D(RCZ(Y)) D  Q:Y=""
 | 
|---|
| 41 |  .. I Y'[".",$D(RCZ(Y_".001")),$O(RCZ(Y+1),-1)=(Y_".001") S Y=Y_".001" Q
 | 
|---|
| 42 |  .. W !,$S(Y["."!($O(RCZ(Y))\1'=(Y\1)):"THIS LINE DOESN'T NEED AN ADJUSTMENT DISTRIBUTION",1:"PLEASE ENTER THE ENTIRE LINE # (Such as: 1.001)") W !
 | 
|---|
| 43 |  .. S Y=""
 | 
|---|
| 44 |  . W !,"  LINE #: "_+Y_"  AMOUNT NEEDED TO DISTRIBUTE: "_$J(+RCZ(Y),"",2),!
 | 
|---|
| 45 |  . ; RCDA = the ien of the line in file 344.491
 | 
|---|
| 46 |  . ; RCDA(1) = the line #        RCDA(2) = the amount to be adjusted (+)
 | 
|---|
| 47 |  . S RCDA=$P(RCZ(Y),U,2),RCDA(1)=Y,RCQUIT=1,RCDA(2)=-$P(RCZ(Y),U)
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  G:$G(RCDA)="" DISTQ
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  S RCQUIT=0
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  S (TOT,Z)=0 F  S Z=$O(RCZ1(Z)) Q:'Z  S TOT=TOT+Z
 | 
|---|
| 54 |  I TOT<RCDA(2) D  G DISTQ
 | 
|---|
| 55 |  . S DIR(0)="EA",DIR("A",1)="THE ERA DOES NOT HAVE ENOUGH VALID PAYMENTS TO OFFSET THIS DISTRIBUTION",DIR("A",2)=$$WHAT(RCSCR),DIR("A")="PRESS RETURN TO CONTINUE" W ! D ^DIR K DIR
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  F  S DIR(0)="NA^1:9999:3",DIR("A")="SELECT A LINE TO DISTRIBUTE THE ADJUSTMENT AMOUNT TO: " D  Q:RCQUIT
 | 
|---|
| 58 |  . S DIR("?",1)="THE FOLLOWING LINE(S) HAVE A NET PAYMENT THAT CAN BE USED TO OFFSET THE",DIR("?",2)="  NEGATIVE NET PAYMENT FOR LINE "_RCDA(1)_" ("_$J(+$P(RCZ(RCDA(1)),U),"",2)_"):",CT=2
 | 
|---|
| 59 |  . S Z="" F  S Z=$O(RCZ1(Z),-1) Q:'Z  S Z0=0 F  S Z0=$O(RCZ1(Z,Z0)) Q:'Z0  S CT=CT+1,DIR("?",CT)="  "_$J(Z0,8)_"  "_$J(+Z,15,2)_$S($P(RCZ1(Z,Z0),U,2):" On hold exists",1:"")
 | 
|---|
| 60 |  . S DIR("?")=" "
 | 
|---|
| 61 |  . I $O(RCZ2(0))=$O(RCZ2(""),-1) S DIR("B")=$O(RCZ2(0))
 | 
|---|
| 62 |  . W ! D ^DIR K DIR
 | 
|---|
| 63 |  . I $D(DUOUT)!$D(DTOUT)!(Y="") S RCQUIT=1,RCDA1="" Q
 | 
|---|
| 64 |  . I '$D(^TMP("RCDPE-EOB_WLDX",$J,Y)) W !,"THIS LINE DOES NOT EXIST FOR THIS ERA" W ! Q
 | 
|---|
| 65 |  . I '$D(RCZ2(Y)) D  Q:Y=""
 | 
|---|
| 66 |  .. I Y'[".",$D(RCZ2(Y_".001")),$O(RCZ2(Y+1),-1)=(Y_".001") S Y=Y_".001" Q
 | 
|---|
| 67 |  .. I Y'[".",$O(RCZ2(Y))\1'=Y S Y=Y_"."
 | 
|---|
| 68 |  .. W !,$S(Y[".":"THIS LINE CANNOT BE USED FOR AN ADJUSTMENT DISTRIBUTION",1:"PLEASE ENTER THE ENTIRE LINE # (Such as: 1.001)") W !
 | 
|---|
| 69 |  .. S Y=""
 | 
|---|
| 70 |  . I $P(RCZ2(Y),U,3) W !,"Warning - on-hold exists for this claim",!
 | 
|---|
| 71 |  . W !,"  LINE #: "_+Y_"  LINE BALANCE: "_$J(+$P(RCZ2(Y),U,2),"",2),!
 | 
|---|
| 72 |  . ; RCDA1 = the ien of the line in file 344.491
 | 
|---|
| 73 |  . ; RCDA1(1) = the line # in the display
 | 
|---|
| 74 |  . S RCDA1(1)=Y,RCDA1=+$G(RCZ2(Y)),RCQUIT=1
 | 
|---|
| 75 |  . S Z=$O(^RCY(344.49,RCSCR,1,"B",RCDA1(1)\1,0))
 | 
|---|
| 76 |  . S RCADJ=0
 | 
|---|
| 77 |  . I $P($G(^RCY(344.49,RCSCR,1,Z,0)),U,2)["**ADJ" S RCADJ=1 W !,"THE LINE SELECTED IS AN ADDITIONAL PAYMENT LINE, NOT SPECIFIC TO A CLAIM",!,"THE AMT WILL BE DISTRIBUTED, BUT A DECREASE ADJUSTMENT WILL NOT BE PERFORMED",!
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  G:'$G(RCDA1) DISTQ
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  S DIR("B")=$S(RCDA(2)<$P(RCZ2(RCDA1(1)),U,2):$J(RCDA(2),"",2),1:$J($P(RCZ2(+RCDA1(1)),U,2),"",2))
 | 
|---|
| 82 |  S DIR(0)="NA^.01:"_DIR("B")_":2",DIR("A")="ADJUSTMENT AMOUNT TO DISTRIBUTE: "
 | 
|---|
| 83 |  S DIR("?",1)="THIS IS THE AMOUNT OF THE ADJUSTMENT THAT SHOULD BE APPLIED TO THIS",DIR("?")="PAYMENT LINE.  THE AMT ENTERED MUST BE BETWEEN .01 AND "_$J(DIR("B"),"",2)
 | 
|---|
| 84 |  D ^DIR K DIR
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  I $D(DUOUT)!$D(DTOUT)!'Y D  G DISTQ
 | 
|---|
| 87 |  . S DIR(0)="EA",DIR("A",1)="NO AMOUNT WAS ENTERED - TRY AGAIN LATER",DIR("A")="PRESS RETURN TO CONTINUE " D ^DIR K DIR
 | 
|---|
| 88 |  S RCAMT=$J(Y,"",2)
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  D ^DIR K DIR
 | 
|---|
| 91 |  I $D(DUOUT)!$D(DTOUT) D  G DISTQ
 | 
|---|
| 92 |  . S DIR(0)="EA",DIR("A")="USER ABORT - PRESS RETURN TO CONTINUE " D ^DIR K DIR
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  S Y=""
 | 
|---|
| 95 |  I 'RCADJ D  G:'$D(RCDA) DISTQ
 | 
|---|
| 96 |  . N Z,RCA
 | 
|---|
| 97 |  . S RCA=0,Z1=+$P($G(^TMP("RCDPE-EOB_WLDX",$J,RCDA(1)\1)),U,2),Z=$G(^RCY(344.49,RCSCR,1,Z1,0)),RCA("#")=+$P($P(Z,U,2),"**ADJ",2)
 | 
|---|
| 98 |  . I $P(Z,U,2)["**ADJ" D
 | 
|---|
| 99 |  .. S RCA=1
 | 
|---|
| 100 |  .. S RCA("REF")=$S(RCA("#"):$P($G(^RCY(344.4,RCSCR,2,RCA("#"),0)),U),1:$P(Z,U,9))
 | 
|---|
| 101 |  . S Z=$S(RCA:RCA("#"),1:$G(^RCY(344.49,RCSCR,1,RCDA,0)))
 | 
|---|
| 102 |  . S DIR(0)="FAO^1:60",DIR("A")="  > ",DIR("A",1)="DECREASE ADJ COMMENT (1-60 CHARACTERS): "
 | 
|---|
| 103 |  . S DIR("B")="RETRACTED FOR "
 | 
|---|
| 104 |  . S DIR("B")=DIR("B")_$S(RCA:"ERA ADJ #"_Z_" Ref: "_RCA("REF"),1:"CLAIM "_$S($P(Z,U,2)'="":$P(Z,U,2),1:"UNKNOWN"))
 | 
|---|
| 105 |  . I $L(DIR("B"))>60 S DIR("B")=$E(DIR("B"),1,60)
 | 
|---|
| 106 |  . D ^DIR K DIR
 | 
|---|
| 107 |  . ;
 | 
|---|
| 108 |  . I $D(DUOUT)!$D(DTOUT) D  Q
 | 
|---|
| 109 |  .. K RCDA
 | 
|---|
| 110 |  .. S DIR(0)="EA",DIR("A")="USER ABORT - PRESS RETURN TO CONTINUE " D ^DIR K DIR
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  D DISTADJ^RCDPEWL4(RCDA,RCDA1,RCAMT,Y)
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 | DISTQ S VALMBCK="R"
 | 
|---|
| 115 |  Q
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | REFRESH ; Refresh the entry in file 344.49 to remove all user adjustments
 | 
|---|
| 118 |  N RCREDEF,RCQUIT,DIR,X,Y,Z,Z0,DA,DIK
 | 
|---|
| 119 |  D FULL^VALM1
 | 
|---|
| 120 |  I $G(RCSCR("NOEDIT")) D NOEDIT^RCDPEWL G REFQ
 | 
|---|
| 121 |  I $G(^TMP("RCBATCH_SELECTED",$J)) D NOBATCH^RCDPEWL G REFQ
 | 
|---|
| 122 |  S DIR(0)="YA"
 | 
|---|
| 123 |  S DIR("A",1)="THIS ACTION WILL DELETE AND REBUILD THIS EEOB WORKLIST SCRATCH PAD ENTRY",DIR("A",2)="ALL EDITS/SPLITS/DISTRIBUTE ADJUSTMENTS ENTERED FOR THIS ERA WILL BE ERASED"
 | 
|---|
| 124 |  S DIR("A",3)="AND ALL ENTRIES MARKED AS MANUALLY VERIFIED WILL BE UNMARKED",DIR("A",4)=" "
 | 
|---|
| 125 |  S DIR("A")="ARE YOU SURE YOU WANT TO DO THIS?: "
 | 
|---|
| 126 |  W ! D ^DIR K DIR
 | 
|---|
| 127 |  I Y'=1 G REFQ
 | 
|---|
| 128 |  I $O(^RCY(344.49,RCSCR,3,0)) S RCQUIT=0 D  I RCQUIT G REFQ
 | 
|---|
| 129 |  . S DIR(0)="YA",DIR("A")="DO YOU WANT TO REDEFINE YOUR BATCHES TOO?: ",DIR("B")="NO" W ! D ^DIR K DIR
 | 
|---|
| 130 |  . I $D(DTOUT)!$D(DUOUT) S RCQUIT=1 Q
 | 
|---|
| 131 |  . S RCREDEF=+Y
 | 
|---|
| 132 |  . K ^TMP($J,"BATCHES")
 | 
|---|
| 133 |  . S Z=0 F  S Z=$O(^RCY(344.49,RCSCR,3,Z)) Q:'Z  S Z0=$G(^(Z,0)) D
 | 
|---|
| 134 |  .. I RCREDEF S DA=Z,DA(1)=RCSCR,DIK="^RCY(344.49,"_DA(1)_",3," D ^DIK Q
 | 
|---|
| 135 |  .. S ^TMP($J,"BATCHES",+$P(Z0,U,6),$P(Z0,U,7))=+Z0_U_$P(Z0,U,8)
 | 
|---|
| 136 |  . I 'RCREDEF S ^TMP($J,"BATCHES")=+$O(^TMP($J,"BATCHES",0))
 | 
|---|
| 137 |  . I RCREDEF D SETBATCH^RCDPEWLB(RCSCR)
 | 
|---|
| 138 |  D ADDLINES^RCDPEWLA(RCSCR)
 | 
|---|
| 139 |  D BLD^RCDPEWL1($G(^TMP($J,"RC_SORTPARM")))
 | 
|---|
| 140 |  K ^TMP($J,"BATCHES")
 | 
|---|
| 141 | REFQ S VALMBG=1,VALMBCK="R"
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | WHAT(RCSCR) ; Text for what to do if not enough funds found for dist adj
 | 
|---|
| 145 |  Q $S($O(^RCY(344.31,"AERA",+RCSCR,0)):"THIS ERA MUST BE MOVED TO SUSPENSE",1:"THIS ERA'S RECEIPT MUST BE ENTERED MANUALLY")
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | ADJUST ; Allow entry into increase/decrease adjustment functions
 | 
|---|
| 148 |  N DIR,X,Y,RCTYP,RCY,DIC
 | 
|---|
| 149 |  D FULL^VALM1
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 |  I $G(RCSCR("NOEDIT"))=2 D NOTAV^RCDPEWL2 G ADJUSTQ
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 |  S DIR(0)="SA^D:DECREASE ADJUSTMENT;I:INCREASE ADJUSTMENT",DIR("B")="DECREASE ADJUSTMENT",DIR("A")="TYPE OF ADJUSTMENT: "
 | 
|---|
| 154 |  W ! D ^DIR K DIR
 | 
|---|
| 155 |  M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 | 
|---|
| 156 |  I $D(DUOUT)!$D(DTOUT)!(Y="") G ADJUSTQ
 | 
|---|
| 157 |  ;
 | 
|---|
| 158 |  S RCTYP=$S(Y="D":"DECREASE",1:"INCREASE")
 | 
|---|
| 159 |  F  S RCY=$$GETABILL^RCBEUBIL Q:RCY<0!(RCY'<1)
 | 
|---|
| 160 |  G:RCY<1 ADJUSTQ
 | 
|---|
| 161 |  D ADJUST^RCBEADJ(RCTYP,RCY_";"_RCSCR)
 | 
|---|
| 162 |  I $D(^TMP("RC_BILL",$J,RCY)) D
 | 
|---|
| 163 |  . D UPDBAL(RCY)
 | 
|---|
| 164 |  . W !,"Claim balance is now: ",$J(+$P($$BILL^RCJIBFN2(RCY),U,3),"",2)
 | 
|---|
| 165 |  ;
 | 
|---|
| 166 | ADJUSTQ D RESTMP
 | 
|---|
| 167 |  D RET^RCDPEWL2
 | 
|---|
| 168 |  S VALMBCK="R"
 | 
|---|
| 169 |  Q
 | 
|---|
| 170 |  ;
 | 
|---|
| 171 | RESTMP ;
 | 
|---|
| 172 |  I $D(^TMP("RC_SAVE_TMP",$J)) M ^TMP($J)=^TMP("RC_SAVE_TMP",$J) K ^TMP("RC_SAVE_TMP")
 | 
|---|
| 173 |  Q
 | 
|---|
| 174 |  ;
 | 
|---|
| 175 | UPDBAL(RCY) ; Updates the claim balance if bill exists in list
 | 
|---|
| 176 |  ; RCY = ien of bill in file 430
 | 
|---|
| 177 |  ;
 | 
|---|
| 178 |  N X,Y,Z,Z0,Z1
 | 
|---|
| 179 |  S Z0=$J(+$P($$BILL^RCJIBFN2(RCY),U,3),"",2)
 | 
|---|
| 180 |  S Z=0 F  S Z=$O(^TMP("RC_BILL",$J,RCY,Z)) Q:'Z  D
 | 
|---|
| 181 |  . S X=+$G(^TMP("RCDPE-EOB_WLDX",$J,Z))
 | 
|---|
| 182 |  . Q:'X
 | 
|---|
| 183 |  . S Y=$G(^TMP("RCDPE-EOB_WL",$J,X+1,0))
 | 
|---|
| 184 |  . I Y["Claim Bal: " S Z1=$P(Y,"Claim Bal: ")_"Claim Bal: "_Z0_$G(^TMP("RC_BILL",$J,RCY,Z)),^TMP("RCDPE-EOB_WL",$J,X+1,0)=Z1
 | 
|---|
| 185 |  Q
 | 
|---|
| 186 |  ;
 | 
|---|