[613] | 1 | RCDPEWL1 ;ALB/TMK - ELECTRONIC EOB WORKLIST SCREEN ;26-NOV-02
|
---|
| 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 | ; IA for read access to ^IBM(361.1 = 4051
|
---|
| 5 | ; IA for call to ^DGENA = 3812
|
---|
| 6 | Q
|
---|
| 7 | ;
|
---|
| 8 | BLD(RCSORT) ; Build the detail display record for the WL scratch pad record
|
---|
| 9 | ; Assume RCSCR = ien from file 344.49
|
---|
| 10 | ; RCSORT = "" or 'N' for no sort 'F' for 0-pays first, 'L' for last
|
---|
| 11 | ;
|
---|
| 12 | N A,A0,B,B0,Q,Q0,Q1,QQ,V1,X,Y,Z,Z0,Z3,ZZ,ZZ1,RCT,RCZ,RCZ0,RCZZ0,RCSA,RCAZ,RCAZ0,RCSCT,RCS1,RCLI1,RCY34441,RCZERO,RCTS,RCTL
|
---|
| 13 | S RCSORT=$P($G(RCSORT),U),RCSORT=$S(RCSORT="":"N",1:RCSORT),RCTS=0
|
---|
| 14 | K ^TMP("RCDPE-EOB_WL",$J),^TMP("RCDPE-EOB_WLDX",$J),^TMP($J,"RCS"),^TMP("RC_BILL",$J)
|
---|
| 15 | ;
|
---|
| 16 | S VALMCNT=0
|
---|
| 17 | S Z=0 F S Z=$O(^RCY(344.49,RCSCR,1,"B",Z)) Q:'Z I Z#1=0 S ZZ=+$O(^RCY(344.49,RCSCR,1,"B",Z,0)) I ZZ D
|
---|
| 18 | . S RCZ=ZZ,RCZ0=$G(^RCY(344.49,RCSCR,1,ZZ,0)),RCS1=$P(RCZ0,U,6)
|
---|
| 19 | . Q:$S('$G(^TMP("RCBATCH_SELECTED",$J)):0,1:$P(RCZ0,U,14)'=+^TMP("RCBATCH_SELECTED",$J)) ; Must be entire ERA or match the selected batch to continue
|
---|
| 20 | . S RCZERO=$S($P(RCZ0,U,2)["**ADJ":"-1",RCSORT="N":1,RCSORT="F":+RCS1'=0,1:+RCS1=0)
|
---|
| 21 | . ;
|
---|
| 22 | . ; This is a top-level entry - find the sublines
|
---|
| 23 | . S Z0=Z F S Z0=$O(^RCY(344.49,RCSCR,1,"B",Z0)) Q:((Z0\1)'=(Z\1)) S Z=Z0,ZZ1=+$O(^RCY(344.49,RCSCR,1,"B",Z0,0)) I ZZ1 D
|
---|
| 24 | .. S ^TMP($J,"RCS",RCZERO,ZZ,ZZ1)=""
|
---|
| 25 | . S ^TMP($J,"RCS",RCZERO,ZZ)=""
|
---|
| 26 | ;
|
---|
| 27 | S RCZERO="",RCTS=0 F S RCZERO=$O(^TMP($J,"RCS",RCZERO)) Q:RCZERO="" S ZZ=0 F S ZZ=$O(^TMP($J,"RCS",RCZERO,ZZ)) Q:'ZZ D
|
---|
| 28 | . N A
|
---|
| 29 | . S RCZ0=$G(^RCY(344.49,RCSCR,1,ZZ,0)),RCS1=$P(RCZ0,U,6),RCTS=RCTS+1,RCY34441=$G(^RCY(344.4,RCSCR,1,+$P(RCZ0,U,9),0))
|
---|
| 30 | . S A=$$TOPLINE(RCZ0,RCTS)
|
---|
| 31 | . D SET(A,RCTS,RCTS,ZZ)
|
---|
| 32 | . I $P(RCY34441,U,11) D
|
---|
| 33 | .. D SET("EEOB TRANSFERRED TO "_$E($P($G(^DIC(4,+$P(RCY34441,U,11),0)),U),1,20)_" "_$$FMTE^XLFDT($P(RCY34441,U,12),"2D")_" STATUS: "_$$EXTERNAL^DILFD(344.41,.1,"",+$P(RCY34441,U,10)),RCTS,RCTS,ZZ)
|
---|
| 34 | . ;
|
---|
| 35 | . S RCT=RCTS
|
---|
| 36 | . S ZZ1=0 F S ZZ1=$O(^TMP($J,"RCS",RCZERO,ZZ,ZZ1)) Q:'ZZ1 D
|
---|
| 37 | .. S RCT=RCT+.001
|
---|
| 38 | .. S RCTL=$L(RCT)
|
---|
| 39 | .. S RCZZ0=$G(^RCY(344.49,RCSCR,1,ZZ1,0))
|
---|
| 40 | .. S V1=$S($P(RCZ0,U,2)'["**ADJ":"",$P($P(RCZ0,U,2),"ADJ",2):"***ADJUSTMENT AT ERA LEVEL",1:"*** ADJUSTMENT LINE FOR TOTALS MISMATCH")
|
---|
| 41 | .. S RCLI1=$S(V1="":" Claim #: "_$P(RCZZ0,U,2)_" Patient/Last 4: "_$S($P(RCZZ0,U,7):$$PNM4("","",$P(RCZZ0,U,7)),'$P($G(^RCY(344.49,RCSCR,1,ZZ1,2)),U,3):$$PNM4(+$G(^RCY(344.49,RCSCR,0)),RCZ),1:"??"),1:V1)
|
---|
| 42 | .. D SET($J("",4)_$P(" ^(V)",U,$P(RCZZ0,U,13)+1)_RCT_RCLI1,RCTS,RCT,ZZ1)
|
---|
| 43 | .. I '$P(RCZZ0,U,7),$P(RCZ0,U,2)'["**ADJ" D SET($J("",4+RCTL)_"***CLAIM NOT FOUND IN YOUR AR ***",RCTS,RCT,ZZ1)
|
---|
| 44 | .. I $P(RCZZ0,U,7) D
|
---|
| 45 | ... N A,RCX,Q
|
---|
| 46 | ... S A("OA")=$$ORI^PRCAFN(+$P(RCZZ0,U,7)),A("SDT")=$P($G(^DGCR(399,+$P(RCZZ0,U,7),"U")),U),A("DFN")=+$P($G(^(0)),U,2),A("ENRPR")=""
|
---|
| 47 | ... ; Find Rx copay status
|
---|
| 48 | ... S A("RXCP")=$S('A("SDT"):"",1:$$RXST^IBARXEU(A("DFN"),A("SDT"))),A("RXCP")=$S($P(A("RXCP"),U)'="":$P(A("RXCP"),U,2),1:"UNKNOWN") ;IA #10147
|
---|
| 49 | ... ; Find M/T status
|
---|
| 50 | ... S RCX=$$LST^DGMTU(A("DFN"),A("SDT")),A("M/T")=$P(RCX,U,4)
|
---|
| 51 | ... S A("M/T")=$S('RCX:"??",A("M/T")="P":"PEN",A("M/T")="C":"YES",A("M/T")="G":"GMT",A("M/T")="R":"REQ",1:"NO")
|
---|
| 52 | ... ;
|
---|
| 53 | ... S QQ=" Billed Amt: "_$J(A("OA"),"",2)_" Amt To Post: "_$J(+$P(RCZZ0,U,3),"",2)
|
---|
| 54 | ... D SET($J("",4+RCTL)_"Claim Bal: "_$J(+$P($$BILL^RCJIBFN2(+$P(RCZZ0,U,7)),U,3),"",2)_QQ,RCTS,RCT,ZZ1)
|
---|
| 55 | ... S ^TMP("RC_BILL",$J,$P(RCZZ0,U,7),RCT)=QQ
|
---|
| 56 | ... S Z3=$J("",4+RCTL)_"Svc Dt: "_$S(A("SDT")'="":$$FMTE^XLFDT(A("SDT"),2),1:"UNKNOWN")
|
---|
| 57 | ... S Z3=Z3_" COB: "_$S($D(^DGCR(399,+$P(RCZZ0,U,7),"I"_($$COBN(+$P(RCZZ0,U,7))+1))):"YES",1:"NO ")
|
---|
| 58 | ... D SET(Z3_" Rx Copay: "_$E(A("RXCP"),1,17)_" Means Tst: "_A("M/T"),RCTS,RCT,ZZ1)
|
---|
| 59 | .. ;
|
---|
| 60 | .. D SET($J("",4+RCTL)_"Payment Amt: "_$J(+$P(RCZZ0,U,5),"",2)_" Total Adjustments: "_$J(+$P(RCZZ0,U,8),"",2)_" Net: "_$J($P(RCZZ0,U,5)+$P(RCZZ0,U,8),"",2),RCTS,RCT,ZZ1)
|
---|
| 61 | .. I $P(RCZZ0,U,10)'="" D SET($J("",9)_"Receipt Comment: "_$P(RCZZ0,U,10),RCTS,RCT,ZZ1)
|
---|
| 62 | .. I $O(^RCY(344.49,RCSCR,1,ZZ1,1,0)) D
|
---|
| 63 | ... S Z3=""
|
---|
| 64 | ... D SET($J("",4+RCTL)_"ADJUSTMENTS:",RCTS,RCT,ZZ1)
|
---|
| 65 | ... S RCAZ=0 F S RCAZ=$O(^RCY(344.49,RCSCR,1,ZZ1,1,RCAZ)) Q:'RCAZ S RCAZ0=$G(^(RCAZ,0)) D
|
---|
| 66 | .... S Z3=$J("",6+RCTL)_+RCAZ0_". ",Q=$L(Z3)
|
---|
| 67 | .... ;
|
---|
| 68 | .... I $P(RCAZ0,U,2)=0 S Z3=Z3_"Distributed adj dec for retraction "_$P(RCAZ0,U,4)_": "_$P(RCAZ0,U,3)
|
---|
| 69 | .... I $P(RCAZ0,U,2)=1 S Z3=Z3_"Adjustment distribution to balance receipt: "_$P(RCAZ0,U,3)
|
---|
| 70 | .... ;
|
---|
| 71 | .... I $P(RCAZ0,U,2)=2!($P(RCAZ0,U,2)=4) D
|
---|
| 72 | ..... S Z3=Z3_"ERA payment adjusted from "_$J($P(RCZZ0,U,5)-$P(RCZZ0,U,6),"",2)_" to "_$J(+$P(RCZZ0,U,5),"",2)_" NET: "_$J($P(RCZZ0,U,5)+$P(RCAZ0,U,3),"",2)
|
---|
| 73 | .... I $P(RCAZ0,U,2)=5 S Z3=Z3_"Non-specific payment (ref# "_$P(RCAZ0,U,4)_"): "_$P(RCAZ0,U,3)
|
---|
| 74 | .... I $P(RCAZ0,U,2)=3 S Z3=Z3_"Non-specific retraction (ref# "_$P(RCAZ0,U,4)_"): "_$P(RCAZ0,U,3)
|
---|
| 75 | .... D SET(Z3,RCTS,RCT,ZZ1)
|
---|
| 76 | .... I $P(RCAZ0,U,9)'="" D SET($J("",Q)_$P(RCAZ0,U,9),RCTS,RCT,ZZ1)
|
---|
| 77 | .. ;
|
---|
| 78 | .. I $P($G(^TMP($J,"RC_SORTPARM")),U,2) D
|
---|
| 79 | ... S A=$J("",10)_"REVIEW STATUS: ("_$S($P(RCZ0,U,11)="I":"REVIEW IN PROCESS",$P(RCZ0,U,11)=1:"REVIEWED",1:"NOT REVIEWED")
|
---|
| 80 | ... I $P(RCZ0,U,12) S A=A_" SET BY: "_$E($P($G(^VA(200,$P(RCZ0,U,12),0)),U),1,20)
|
---|
| 81 | ... D SET(A_")",+RCTS,RCT,ZZ1)
|
---|
| 82 | ... S A=0 F S A=$O(^RCY(344.49,RCSCR,1,ZZ,4,A)) Q:'A S A0=$G(^(A,0)) D
|
---|
| 83 | .... D SET($J("",12)_$$FMTE^XLFDT($P(A0,U),2)_" "_$P($G(^VA(200,+$P(A0,U,2),0)),U)_$S($P(A0,U,4):" LAST EDIT: "_$$FMTE^XLFDT($P(A0,U,4),2),1:""),RCTS,RCT,ZZ1)
|
---|
| 84 | .... S B=0 F S B=$O(^RCY(344.49,RCSCR,1,ZZ,4,A,1,B)) Q:'B S B0=$G(^(B,0)) D
|
---|
| 85 | ..... I $L(B0)>64 D SET($J("",15)_$E(B0,1,64),RCTS,RCT,ZZ1) S B0=" "_$E(B0,65,$L(B0)) ; Split line if > 64 characters in comment line
|
---|
| 86 | ..... D SET($J("",15)_B0,RCTS,RCT,ZZ1)
|
---|
| 87 | .. S A="",$P(A,".",79)="" D SET(A,RCTS,RCT,ZZ1)
|
---|
| 88 | ;
|
---|
| 89 | I VALMCNT=0,$G(^TMP("RCBATCH_SELECTED",$J)) D SET("THERE ARE NO EEOBs ASSIGNED TO THIS BATCH")
|
---|
| 90 | K ^TMP($J,"RCS")
|
---|
| 91 | Q
|
---|
| 92 | ;
|
---|
| 93 | TOPLINE(RCZ0,RCTS) ; Function returns the top line of the EEOB display
|
---|
| 94 | ; RCZ0 = the 0-node of the whole number entry line for the EEOB
|
---|
| 95 | ; RCTS = the selectable line #
|
---|
| 96 | N A
|
---|
| 97 | S A=" "_$S($P(RCZ0,U,13):"(V)",1:" ")_"EEOB Seq #"_$S($P(RCZ0,U,9)[",":"'s",1:"")_" On ERA: "_$S($P(RCZ0,U,9)'="":$P(RCZ0,U,9),1:"None")_" Net Payment Amt: "_$J(+$P(RCZ0,U,6),"",2)
|
---|
| 98 | I $P($G(^TMP($J,"RC_SORTPARM")),U,2) S A=A_" Reviewed?: "_$S($P(RCZ0,U,11)="":"NO",1:$$EXTERNAL^DILFD(344.491,.11,,$P(RCZ0,U,11)))
|
---|
| 99 | S A=$E(RCTS_$J("",4),1,4)_A
|
---|
| 100 | Q A
|
---|
| 101 | ;
|
---|
| 102 | INIT ;
|
---|
| 103 | S VALMBG=$G(^TMP($J,"RC_VALMBG"))
|
---|
| 104 | Q
|
---|
| 105 | ;
|
---|
| 106 | HDR ;
|
---|
| 107 | D HDR^RCDPEWL
|
---|
| 108 | Q
|
---|
| 109 | ;
|
---|
| 110 | FNL ; -- Clean up list
|
---|
| 111 | K RCFASTXT
|
---|
| 112 | Q
|
---|
| 113 | ;
|
---|
| 114 | SET(X,RCSEQ,RCSEQ1,RCZ9) ; -- set arrays
|
---|
| 115 | ; X = the data to set into the global
|
---|
| 116 | ; RCSEQ = the selectable line #
|
---|
| 117 | ; RCSEQ1 = the sub line #
|
---|
| 118 | ; RCZ9 = reference to the line(s) in file 344.41 or to the subline in
|
---|
| 119 | ; file 344.49 for RCSEQ having a decimal
|
---|
| 120 | S VALMCNT=VALMCNT+1,^TMP("RCDPE-EOB_WL",$J,VALMCNT,0)=X
|
---|
| 121 | I $G(RCSEQ) S ^TMP("RCDPE-EOB_WL",$J,"IDX",VALMCNT,RCSEQ)=""
|
---|
| 122 | I $G(RCSEQ1),'$D(^TMP("RCDPE-EOB_WLDX",$J,RCSEQ1)) S ^TMP("RCDPE-EOB_WLDX",$J,RCSEQ1)=VALMCNT_U_$G(RCZ9)
|
---|
| 123 | Q
|
---|
| 124 | ;
|
---|
| 125 | PNM4(RCIFN,RCDA,RC) ; Returns either the patient name or patient name/last 4
|
---|
| 126 | ; RCIFN = ien of file 344.4
|
---|
| 127 | ; RCDA = ien of file 344.41
|
---|
| 128 | ; RC = the ien of file 430
|
---|
| 129 | N Z,Z0,Q
|
---|
| 130 | S Z=""
|
---|
| 131 | I $G(RCIFN)'="" D
|
---|
| 132 | . S Z0=$G(^RCY(344.4,RCIFN,1,RCDA,0)),Z=""
|
---|
| 133 | . I $P(Z0,U,2) S Q=+$P($G(^DGCR(399,+$G(^IBM(361.1,+$P(Z0,U,2),0)),0)),U,2),Z=$P($G(^DPT(Q,0)),U)_"/"_$E($P($G(^(0)),U,9),6,9) ; IA 4051
|
---|
| 134 | . I $TR(Z,"/")="" S Z=$P(Z0,U,15)
|
---|
| 135 | I $G(RC)'="" D
|
---|
| 136 | . S Q=+$P($G(^PRCA(430,RC,0)),U,7)
|
---|
| 137 | . I Q S Z=$P($G(^DPT(Q,0)),U)_"/"_$E($P($G(^(0)),U,9),6,9)
|
---|
| 138 | Q Z
|
---|
| 139 | ;
|
---|
| 140 | COBN(RC,A) ; Return seq # of selected payer
|
---|
| 141 | ; A = 'PST' or null to get current bill payer seq #
|
---|
| 142 | I $G(A)="" S A=$P($G(^DGCR(399,RC,0)),U,21) S:A="" A="P" S:"PST"'[A A="P"
|
---|
| 143 | I 'A S A=$F("PST",A)-1 S:A<1 A=1
|
---|
| 144 | Q A
|
---|
| 145 | ;
|
---|
| 146 | COPAY(RCIFN) ; Returns 1 if any not cancelled 1st party bills exist for
|
---|
| 147 | ; a 3rd party bill or any bills related to this 3rd party bill
|
---|
| 148 | ; RCIFN = the 3rd party bill #
|
---|
| 149 | N FIRST,RCTP0,RCTP1,RCTP2
|
---|
| 150 | K ^TMP("IBRBF",$J),^TMP($J,"IBRBF")
|
---|
| 151 | D RELBILL^IBRFN(RCIFN) ; DBIA 3124
|
---|
| 152 | S RCTP0=0 F S RCTP0=$O(^TMP("IBRBF",$J,RCIFN,RCTP0)) Q:RCTP0="" S RCTP1=$G(^(RCTP0)) D
|
---|
| 153 | . I $P(RCTP1,U,3) K ^TMP("IBRBF",$J,RCIFN,RCTP0) Q ; IB cancelled
|
---|
| 154 | . S RCTP2=$O(^PRCA(430,"B",+$P(RCTP1,U,4),0)) I $P($G(^PRCA(430,+RCTP2,0)),U,8)=39 K ^TMP("IBRBF",$J,RCIFN,RCTP0) ; AR cancelled
|
---|
| 155 | S FIRST=$S($O(^TMP("IBRBF",$J,RCIFN,0)):1,1:0)
|
---|
| 156 | K ^TMP("IBRBF",$J),^TMP($J,"IBRBF")
|
---|
| 157 | Q FIRST
|
---|
| 158 | ;
|
---|