RCDPENR5 ;ALB/CNF - EPay National Reports - ERA/EFT Report Utilities ;12/14/15
;;4.5;Accounts Receivable;**446**;Mar 20, 1995;Build 15
;;Per VA Directive 6402, this routine should not be modified.
;
Q
;
GETRPT(RCMNFLG) ;
; PRCA*4.5*446 - Moved from RCDPENR2 for size
;
;RCMNFLG - Ask to print the Main report (Detailed) report. 0=No, 1=Yes
N X,Y,DTOUT,DUOUT,DIR,DIROUT,DIRUT
;
; Prompt with Main (EFT/ERA Trending report (from RCDPENR2))
I $G(RCMNFLG) D
. S DIR("A")="Print (M)AIN Report, (S)UMMARY by Payer or (G)RAND TOTALS ONLY: "
. S DIR(0)="SA^M:MAIN;S:SUMMARY;G:GRAND TOTAL"
;
; Prompt w/o main (Volume Statistics report (from RCDPENR1))
I '$G(RCMNFLG) D
. S DIR("A")="(S)UMMARY by Payer or (G)RAND TOTALS ONLY: "
. S DIR(0)="SA^S:SUMMARY;G:GRAND TOTAL"
;
S DIR("?")="Select the type of report to Generate."
S DIR("B")="G"
D ^DIR K DIR
I $D(DTOUT)!$D(DUOUT)!(Y="") Q -1
Q Y
;
GRAND(RCPUZ) ; PRCA*4.5*446 - Moved from RCDPENR2 for size
; Input RCPUZ - P: Payment EEOBs, U: Unmatched EEOBs, Z: Zero Payment EEOBs, A: All ;PRCA*4.5*446
;
S:'$L($G(RCPUZ)) RCPUZ="A"
I $G(RCEXCEL) Q 0
;
N I,I1,I2,I3,J,RCDATA,RCEFT,RCERA,RCERAFLG,RCEFTTXT,RCERATXT,RCERATYP,RCSTRING,RCSTOP ; PRCA*4.5*349, PRCA*4.5*446 I1,I2,I3
;
S RCSTOP=0
; Print the Grand Total Banner
I $Y>(IOSL-7),RCDISP D ASK^RCDPEADP(.RCSTOP,0) Q:RCSTOP D HEADER^RCDPENR2
I RCSUMFLG'="G",RCDISP D
. W !,"GRAND TOTALS ALL PAYERS",!!
. W RCLINE,!
;
; PRCA*4.5*446, add I1,I2,I3
S I1=1,I2=1,I3=5 ; default for RCPUZ="A", ALL
I RCPUZ="U" S I1=4,I3=4 ;Unposted contains Zero Pay and Unmatched
I RCPUZ="Z" S I1=5,I3=5 ;Unposted contains Zero Pay and Unmatched
I RCPUZ="P" S I3=3 ;Don't include Unposted
;
; Print all EOB/Payment combinations
F J="AUTOPOST","MANUAL","UNPOSTED","TOTAL" Q:RCSTOP F I=I1:I2:I3 D Q:RCSTOP ; PRCA*4.5*349, PRCA*4.5*446 use I1,I2,I3
. ;
. ; PRCA*4.5*446 filter for RCPUZ
. I (RCPUZ="U")!(RCPUZ="Z") I (J="AUTOPOST")!(J="MANUAL") Q
. I (RCPUZ="U")!(RCPUZ="Z") I J="TOTAL" Q ; For Unmatched and Zero Pay, there are not 2 categories to total together like Autopost+Manual
. I RCPUZ="P" I J="UNPOSTED" Q
. ;
. I J="AUTOPOST",I>1 Q ; Only EFT/ERA can be auto-posted - PRCA*4.5*349
. I J="MANUAL",I>3 Q ; Unmatched and Zero pay are Unposted
. I J="UNPOSTED",I<4 Q ; Unmatched and Zero pay are Unposted
. I '("/Z/U/"[("/"_RCPUZ_"/")) I (RCAUTO="A"&(J="MANUAL"))!(RCAUTO="N"&(J="AUTOPOST"))!(RCAUTO'="B"&(J="TOTAL")) Q ; PRCA*4.5*349, PRCA*4.5*446 check RCPUZ
. I RCPUZ="P" I J="UNPOSTED" Q ; PRCA*4.5*446, If user wants to see Posted, exclude Zero Pay and Unmatched (Unposted)
. S RCDATA=$G(^TMP("RCDPENR2",$J,"GTOT",J,I)) ; PRCA*4.5*349
. S RCERATYP=$S(I=1:"EFT/ERA",I=2:"PAPER CHECK/ERA",I=3:"EFT/PAPER EOB",I=4:"/UNMATCHED ERA",1:"/ZERO PAYMENTS") ; PRCA*4.5*446
. S RCERAFLG=0
. S RCEFTTXT=$P(RCERATYP,"/")
. S RCERATXT=$P(RCERATYP,"/",2)
. S RCEFT=$S(RCEFTTXT="EFT":"AN EFT",RCEFTTXT="PAPER CHECK":"A PAPER CHECK",1:"") ; PRCA*4.5*446
. I '((I=4)!(I=5)) S RCSTRING=RCERATXT_" MATCHED TO "_RCEFT_" - "_J ; PRCA*4.5*349, PRCA*4.5**446 If not unmatched or zero pay
. I ((I=4)!(I=5)) S RCSTRING=RCERATXT ; PRCA*4.5**446 If not unmatched or zero pay
. I (RCEFTTXT="EFT"),(RCERATXT["ERA") S RCERAFLG=1
. I (I=4)!(I=5) S RCERAFLG=1 ; PRCA*4.5*446 If unmatched or zero pay, then set ERA flag
. D PRINTGT(RCSTRING,RCDATA,RCDISP,RCERAFLG,RCEXCEL,RCPUZ)
;
Q RCSTOP
;
;Print the Grand Total/Summary data, Moved from ^RCDPENR3 because of routine size PRCA*4.5*446
PRINTGT(RCTITLE,RCDATA,RCDISP,RCERAFLG,RCEXCEL,RCPUZ) ;PRCA*4.5*332 - added comments below, 20 August 2018
; Print the Grand Total/Summary data for the EFT/ERA Trending Report
; Input: RCTITLE - Name of the report
; RCDATA - Array of compiled data being processed. RCDATA("A") autoposted, RCDATA("M") manually posted
; RCDISP - 1 - Display to screen, 0 otherwise
; RCERAFLG - 1 if we're in the ERA matched to an EFT section
; 0 otherwise
; RCEXCEL - 1 output to excel, 0 otherwise
; RCPUZ - P: Payment EEOBs, U: Unmatched EEOBs, Z: Zero Payment EEOBs, A: All ;PRCA*4.5*446
; RCSTOP - Initialized to 0
; Output: RCSTOP - User stopped the display of the report
;
; Undeclared Parameter(s) - RCRPIEN,RCLINE,RCSTOP
; RCRPIEN - IEN of the archive file (344.91(
; RCLINE - String of '-' (separator line)
; RCSUMFLG - 'M' - Main Report
; 'G' - Grand totals
; 'S' - Summary
;
;PRCA*4.5*332 comments end
;
N RCCOUNT,RCBILL,RCPAID,RCPCT,RCBECT,RCBEDY,RCAVGBE,RCEECT,RCEEDY
N RCEPCT,RCEPDY,RCAVGEP,RCBPCT,RCBPDY,RCAVGBP,RCBORDER,RCSCDATA
N RCC,RCB,RCAVGEE,RCLTXT,RCNA,I,RCSTRDTA,RCSTRNG,RCDTXT
;
I '$L($G(RCPUZ)) S RCPUZ="A" ;PRCA*4.5*446
S RCERAFLG=+$G(RCERAFLG),RCDISP=$G(RCDISP)
I $Y>(IOSL-7),RCDISP D ASK^RCDPEADP(.RCSTOP,0) Q:RCSTOP D HEADER^RCDPENR2
;
; Display report type being displayed
D PRINTHDR^RCDPENR2(RCTITLE,79) ; PRCA*4.5*446, 79 (line length)
;
; Extract data from string and build string for output
S $P(RCSCDATA,U,1)=+$P(RCDATA,U)
S RCBILL=+$P(RCDATA,U,2)
S RCPAID=+$P(RCDATA,U,3)
S $P(RCSCDATA,U,2)=RCBILL
S $P(RCSCDATA,U,3)=RCPAID
S $P(RCSCDATA,U,4)=$S(+RCBILL=0:0,1:RCPAID/RCBILL)*100 ; Convert to percent format
S RCBECT=+$P(RCDATA,U,4)
S RCBEDY=+$P(RCDATA,U,5)
S $P(RCSCDATA,U,6)=$FN($S(+RCBECT=0:0,1:RCBEDY/RCBECT),"",0)
S RCEECT=+$P(RCDATA,U,6)
S RCEEDY=+$P(RCDATA,U,7)
S $P(RCSCDATA,U,7)=$FN($S(+RCEECT=0:0,1:RCEEDY/RCEECT),"",0)
S RCEPCT=+$P(RCDATA,U,8)
S RCEPDY=+$P(RCDATA,U,9)
S $P(RCSCDATA,U,8)=$FN($S(+RCEPCT=0:0,1:RCEPDY/RCEPCT),"",0)
S RCBPCT=+$P(RCDATA,U,10)
S RCBPDY=+$P(RCDATA,U,11)
S $P(RCSCDATA,U,9)=$FN($S(+RCBPCT=0:0,1:RCBPDY/RCBPCT),"",0)
S $P(RCSCDATA,U,11)=+$P(RCDATA,U,12)
S $P(RCSCDATA,U,12)=+$P(RCDATA,U,13)
S $P(RCSCDATA,U,14)=+$P(RCDATA,U,14)
S $P(RCSCDATA,U,15)=+$P(RCDATA,U,15)
S $P(RCSCDATA,U,16)=RCPAID-$P(RCDATA,U,15)
;
; PRCA*4.5*446 Correct data for Unmatched and Zero Payments
S RCNA=0 I (RCTITLE["UNMATCHED")!(RCTITLE["ZERO") S RCNA=1 F I=7,8,9,14 S $P(RCSCDATA,U,I)="N/A"
;
F I=1:1:16 D Q:RCSTOP
. ; PRC*4.5*332, added (RCSUMFLG'="G") below
. I (RCSUMFLG'="G"),RCDISP,($Y>(IOSL-4)) D Q:RCSTOP
. . D ASK^RCDPEADP(.RCSTOP,0)
. . Q:RCSTOP
. . D HEADER^RCDPENR2
. ;if printing from monthly background job save in file and quit
. ;Otherwise print to screen
. S (RCLTXT,RCDTXT)=$P($T(GDTXT+I),";;",2)
. I RCTITLE["PAPER" D
. . I (I>5),(I<9) D ; correct display for lines 6,7,8,16
. . . I (I=6),RCTITLE["CHECK" Q ;Dont change line 6 if Paper check section
. . . S RCB="EFT",RCC="CHK" ; Correct display for Paper check section
. . . I RCTITLE["EOB" S RCB="ERA",RCC="EOB" ;correct display for paper eob
. . . S RCDTXT=$P(RCLTXT,RCB,1)_RCC_$P(RCLTXT,RCB,2)
. I 'RCDISP!RCEXCEL D Q
. . S RCSTRDTA=$P(RCSCDATA,U,I)
. . ;Format lines: lines 2&3 are amounts, 4 is a percentage, remainder are integers.
. . S RCSTRNG=RCDTXT_"^"_$S(I=4:$J($P(RCSTRDTA,"."),2)_"%",1:RCSTRDTA)
. . I 'RCDISP D SAVEDATA^RCDPENR1(RCSTRNG,RCRPIEN) Q
. .;if printing in an EXCEL format, print "^" delimited and quit
. . I RCEXCEL W RCSTRNG,! Q
. ;Output to screen
. ;currency format
. I (I=2)!(I=3)!(I=15) W RCDTXT,?65,$J($P(RCSCDATA,U,I),13,2),! Q
. ; For the line items that are percentages. Not using $J formatting due to rounding errors.
. I I=4 W RCDTXT,?65,$J($P($P(RCSCDATA,U,I),"."),12),"%",! Q
. ;Otherwise print Number format
. I (I=16) D Q
. . W:RCERAFLG RCDTXT,?65,$J($P(RCSCDATA,U,I),13,2),!
. W RCDTXT,?65,$J($P(RCSCDATA,U,I),13),!
I RCSTOP Q RCSTOP
I RCDISP W RCLINE,! ;Otherwise print Number format
I 'RCDISP D SAVEDATA^RCDPENR1(RCLINE,RCRPIEN)
Q RCSTOP
;
GDTXT ; Moved from ^RCDPENR3 because of routine size PRCA*4.5*446
;;TOTAL NUMBER OF CLAIMS
;;TOTAL AMOUNT BILLED
;;TOTAL AMOUNT PAID
;;PERCENTAGE AMOUNT PAID: (%Total Paid/Billed)
;;
;;AVG #DAYS BETWEEN BILLED/ERA
;;AVG #DAYS BETWEEN ERA/EFT
;;AVG #DAYS BETWEEN ERA+EFT REC'D/PMT POSTED
;;AVG #DAYS BETWEEN BILLED/PMT POSTED
;;
;;TOTAL NUMBER OF ERAs
;;TOTAL NUMBER OF EEOBs
;;
;;TOTAL NUMBER OF EFTs
;;TOTAL AMOUNT COLLECTED
;;TOTAL DIFFERENCE BETWEEN ERAs (PAID) - EFTs (COLLECTED):
Q
;
PRINTHDR(RCTITLE,RCLL,RCNOLINE) ;
; PRCA*4.5*446 - Moved from RCDPENR2 for size, add RCLL as parameter for line length, add RCNOLINE to suppress line
;
; Undeclared parameters
; RCLINE - line of "-" for report formating
; RCSUMFLG - Type of report (M=Main,S=Summary,G=Grand Total)
; RCDISP - Is the report being email (0) or Printed (1)
; RCRPIEN - IEN to store the report if emailing
;
I '$L($G(RCNOLINE)) S RCNOLINE=0 ;PRCA*4.5*446
I 'RCLL S RCLL=79 ;PRCA*4.5*446 If Line Length isn't set, make it 79
I $G(RCEXCEL) Q 0
N PAD,PAD1,PAD2,RCBORDER,RCSTOP,RCSTR,X ;PRCA*4.5*446 Add PAD,PAD1,PAD2,X
;
S RCBORDER="",$P(RCBORDER,"*",20)="",$P(PAD," ",132)="",RCSTOP=0 ;PRCA*4.5*446 PAD is a variable of spaces to pad title
I $Y>(IOSL-7),RCDISP D
. D ASK^RCDPEADP(.RCSTOP,0)
. Q:RCSTOP
. D HEADER^RCDPENR2
I RCSTOP Q RCSTOP
;
; Display report type being displayed
S X=$L(RCBORDER)+$L(RCTITLE)+$L(RCBORDER)
S X=RCLL-X
S PAD1=$E(PAD,1,(X/2\1)),PAD2=$E(PAD,1,(X/2+.5\1)) ;PRCA*4.5*446 Calculate # spaces for PAD1, PAD2 to center title
I 'RCDISP D Q
. S RCSTR=RCBORDER_PAD1_RCTITLE_PAD2_RCBORDER ;PRCA*4.5*446 Replace spaces with PAD1, PAD2 to center title
. D SAVEDATA^RCDPENR1(RCSTR,RCRPIEN)
. D SAVEDATA^RCDPENR1(RCLINE,RCRPIEN)
I RCDISP D
. W RCBORDER,PAD1,RCTITLE,PAD2,RCBORDER,! ;PRCA*4.5*446 Replace spaces with PAD1, PAD2 to center title
. W:'RCNOLINE RCLINE,! ;PRCA*4.5*446
;
Q RCSTOP
;
ASKSORT() ; EP from RCDPENR2 - added for PRCA*4.5*446
; Input: N/A
; Returns: -1 - User ^ or timed out
; P - Sort by Payer
; A - Sort by Amount of payment
;
N DA,DIR,DTOUT,DUOUT,X,Y,DIRUT,DIROUT,RCTYPE,RETURN
S RCTYPE=""
S DIR("?",1)="Enter 'P' to sort by Payer"
S DIR("?")=" 'A' to sort by Amount of payment"
S DIR(0)="SA^P:PAYER;A:AMOUNT OF PAYMENT"
S DIR("A")="SORT BY (P)AYER or (A)MOUNT OF PAYMENT: "
S DIR("B")=$S($G(DEF)'="":DEF,1:"PAYER")
D ^DIR
K DIR
I $D(DTOUT)!$D(DUOUT) Q -1
Q:Y="" "P"
S RETURN=$E(Y)
Q RETURN
;
;Print the Detailed portion of the report, sort by amount
MAINAMT(RCPUZ,RCAUTO,RCEXCEL) ;
; ***** IMPORTANT ***** If this section needs to be modified, also check MAIN^RCDPENR2
; New subroutine for PRCA*4.5*446, copied from MAIN^RCDPENR2 and modified for sort by amount
;
S:'$L($G(RCPUZ)) RCPUZ="A" ; PRCA*4.5*446
;
N I,RCERATYP,RCDATA,RCERATXT,RCSTRING,RCEFTTXT,RCEFT,RCERA,RCCLAIM,RCBILL
N RCAMTBL,RCPAID,RCBILLDT,RCERADT,RCEFTDT,RCPOSTDT,RCTRACE,RCATPST,RCIDX,RCAMTPD
N RCETRAN,RCERA,RCEOB,RCEFTNO,RCBEDY,RCEEDY,RCEPDY,RCBPDY,RCMETHOD,RCNOLINE,RCTOTDY,RCTMP,RCSTOP,RCIDX,RCSUB6
;
S RCMETHOD="",RCSTOP=0
S RCNOLINE=1
F S RCMETHOD=$O(^TMP("RCDPENR2",$J,"MAINAMT",RCMETHOD)) Q:RCMETHOD="" D Q:RCSTOP
. I (RCAUTO="A"&(RCMETHOD="MANUAL"))!(RCAUTO="N"&(RCMETHOD="AUTOPOST")) Q ; PRCA*4.5*349
. I RCPUZ="U" I RCMETHOD'="UNPOSTED" Q
. I RCPUZ="Z" I RCMETHOD'="UNPOSTED" Q
. I RCPUZ="P" I RCMETHOD="UNPOSTED" Q
. ;
. S RCSTOP=$$PRINTHDR^RCDPENR5(RCMETHOD,131,RCNOLINE) ;PRCA*4.5*446 131=line length, RCNOLINE
. Q:RCSTOP
. ;
. I '$G(RCEXCEL),$O(^TMP("RCDPENR2",$J,"MAINAMT",RCMETHOD,""))="" D ; PRCA*4.5*349
. . W "No data captured for this section during the specified time period.",! ; PRCA*4.5*349
. ;
. S RCAMTBL=""
. F S RCAMTBL=$O(^TMP("RCDPENR2",$J,"MAINAMT",RCMETHOD,RCAMTBL)) Q:RCAMTBL="" D Q:RCSTOP
. . S RCSUB6=""
. . F S RCSUB6=$O(^TMP("RCDPENR2",$J,"MAINAMT",RCMETHOD,RCAMTBL,RCSUB6)) Q:RCSUB6="" D Q:RCSTOP
. . . S RCDATA=^TMP("RCDPENR2",$J,"MAINAMT",RCMETHOD,RCAMTBL,RCSUB6)
. . . S I=$P(RCDATA,U,19)
. . . I RCPUZ="U" I I'=4 Q
. . . I RCPUZ="Z" I I'=5 Q
. . . I RCPUZ="P" I I>3 Q
. . . I RCPUZ="P" I RCMETHOD="AUTOPOST" I I'=1 Q ; Must be EFT/ERA(1) for autopost. Exclude Paper Check(2), Paper EOB(3)
. . . ;If RCPUZ="A" for all and user selected AUTOPOST, exclude 2, 3 but keep 1, 4, 5. This case is handled inside next for loop.
. . . ;
. . . I RCMETHOD="MANUAL",I>3 Q ; Unmatched and Zero pay are Unposted
. . . I RCMETHOD="AUTOPOST",I>1 Q ; Only EFT/ERA can be auto-posted - PRCA*4.5*349
. . . I RCMETHOD="UNPOSTED",I<4 Q ; Unmatched and Zero pay are Unposted
. . . ;
. . . I $Y>(IOSL-5) D ASK^RCDPEADP(.RCSTOP,0) Q:RCSTOP D HEADER^RCDPENR2
. . . ;Init display values for the days
. . . S RCCLAIM=$P(RCDATA,U,20)
. . . S (RCBEDY,RCEEDY,RCEPDY,RCBPDY)=""
. . . S RCBILL=$$GET1^DIQ(399,+RCCLAIM_",",".01","E")
. . . I $P(RCDATA,U,9),$P(RCDATA,U,8) S RCBEDY=$$FMTH^XLFDT($P(RCDATA,U,9),1)-$$FMTH^XLFDT($P(RCDATA,U,8),1)
. . . I $P(RCDATA,U,10),$P(RCDATA,U,9) S RCEEDY=$$FMTH^XLFDT($P(RCDATA,U,10),1)-$$FMTH^XLFDT($P(RCDATA,U,9),1)
. . . S RCIDX=$S($$FMTH^XLFDT($P(RCDATA,U,10),1)>$$FMTH^XLFDT($P(RCDATA,U,10),1):10,1:9) ; Find the latest date between ERA and EFT
. . . I $P(RCDATA,U,11),$P(RCDATA,U,RCIDX) S RCEPDY=$$FMTH^XLFDT($P(RCDATA,U,11),1)-$$FMTH^XLFDT($P(RCDATA,U,RCIDX),1) ; Use latest date to determ days btw ERA/EFT and Posting
. . . I $P(RCDATA,U,11),$P(RCDATA,U,8) S RCBPDY=$$FMTH^XLFDT($P(RCDATA,U,11),1)-$$FMTH^XLFDT($P(RCDATA,U,8),1)
. . . I (I=4)!(I=5) S RCEPDY="N/A",RCBPDY="N/A" I I=4 S RCEEDY="N/A" ;PRCA*4.5*446 some fields are N/A for Unmatched and Zero Pay
. . . I RCEXCEL D
. . . . S RCTMP=RCBILL_"^"_$$FMTE^XLFDT($P(RCDATA,U,5),2)_"^"_$P(RCDATA,U,6)_"^"_$P(RCDATA,U,7)_"^"_$$FMTE^XLFDT($P(RCDATA,U,8),2)
. . . . S RCTMP=RCTMP_"^"_$$FMTE^XLFDT($P(RCDATA,U,9),2)_"^"_$$FMTE^XLFDT($P(RCDATA,U,10),2)_"^"_$$FMTE^XLFDT($P(RCDATA,U,11),2)_"^"_$P(RCDATA,U,12)_"^"_$P(RCDATA,U,13)
. . . . S RCTMP=RCTMP_"^"_$P(RCDATA,U,14)_"^"_$P(RCDATA,U,2)_"^"_$P(RCDATA,U,15)_"^"_$P(RCDATA,U,3)_"^"
. . . . S RCTMP=RCTMP_RCBEDY_"^"_RCEEDY_"^"_RCEPDY_"^"_RCBPDY
. . . . I I=4 S $P(RCTMP,"^",8)="N/A" ;PRCA*4.5*446 posted date is N/A for Unmatched and Zero Pay
. . . . W RCTMP,!
. . . I 'RCEXCEL D
. . . . W RCBILL,?21,$$FMTE^XLFDT($P(RCDATA,U,5),2),?30,$J($P(RCDATA,U,6),10,2),?41,$J($P(RCDATA,U,7),10,2),?52,$$FMTE^XLFDT($P(RCDATA,U,8),2)
. . . . W ?61,$$FMTE^XLFDT($P(RCDATA,U,9),2),?75,$$FMTE^XLFDT($P(RCDATA,U,10),2),?89,$$FMTE^XLFDT($P(RCDATA,U,11),2),?98,$P(RCDATA,U,12),?109,$P(RCDATA,U,13),!
. . . . W ?5,$P(RCDATA,U,14),?17,$P(RCDATA,U,2),?28,$J($P(RCDATA,U,15),6),?39,$P(RCDATA,U,3),?50,$J(RCBEDY,8)
. . . . W ?67,$J(RCEEDY,8),?83,$J(RCEPDY,8),?106,$J(RCBPDY,8),!
. . . . W ?10,$P(RCDATA,U,17),!
. ;I '$G(RCEXCEL) W RCLINE,! ; PRCA*4.5*466, Remove line of "-"
;
I RCSTOP Q RCSTOP
; Section break - ask user if they wish to continue...
;
Q RCSTOP
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPENR5 14963 printed Jan 29, 2026@14:43:38 Page 2
RCDPENR5 ;ALB/CNF - EPay National Reports - ERA/EFT Report Utilities ;12/14/15
+1 ;;4.5;Accounts Receivable;**446**;Mar 20, 1995;Build 15
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;
+4 QUIT
+5 ;
GETRPT(RCMNFLG) ;
+1 ; PRCA*4.5*446 - Moved from RCDPENR2 for size
+2 ;
+3 ;RCMNFLG - Ask to print the Main report (Detailed) report. 0=No, 1=Yes
+4 NEW X,Y,DTOUT,DUOUT,DIR,DIROUT,DIRUT
+5 ;
+6 ; Prompt with Main (EFT/ERA Trending report (from RCDPENR2))
+7 IF $GET(RCMNFLG)
Begin DoDot:1
+8 SET DIR("A")="Print (M)AIN Report, (S)UMMARY by Payer or (G)RAND TOTALS ONLY: "
+9 SET DIR(0)="SA^M:MAIN;S:SUMMARY;G:GRAND TOTAL"
End DoDot:1
+10 ;
+11 ; Prompt w/o main (Volume Statistics report (from RCDPENR1))
+12 IF '$GET(RCMNFLG)
Begin DoDot:1
+13 SET DIR("A")="(S)UMMARY by Payer or (G)RAND TOTALS ONLY: "
+14 SET DIR(0)="SA^S:SUMMARY;G:GRAND TOTAL"
End DoDot:1
+15 ;
+16 SET DIR("?")="Select the type of report to Generate."
+17 SET DIR("B")="G"
+18 DO ^DIR
KILL DIR
+19 IF $DATA(DTOUT)!$DATA(DUOUT)!(Y="")
QUIT -1
+20 QUIT Y
+21 ;
GRAND(RCPUZ) ; PRCA*4.5*446 - Moved from RCDPENR2 for size
+1 ; Input RCPUZ - P: Payment EEOBs, U: Unmatched EEOBs, Z: Zero Payment EEOBs, A: All ;PRCA*4.5*446
+2 ;
+3 if '$LENGTH($GET(RCPUZ))
SET RCPUZ="A"
+4 IF $GET(RCEXCEL)
QUIT 0
+5 ;
+6 ; PRCA*4.5*349, PRCA*4.5*446 I1,I2,I3
NEW I,I1,I2,I3,J,RCDATA,RCEFT,RCERA,RCERAFLG,RCEFTTXT,RCERATXT,RCERATYP,RCSTRING,RCSTOP
+7 ;
+8 SET RCSTOP=0
+9 ; Print the Grand Total Banner
+10 IF $Y>(IOSL-7)
IF RCDISP
DO ASK^RCDPEADP(.RCSTOP,0)
if RCSTOP
QUIT
DO HEADER^RCDPENR2
+11 IF RCSUMFLG'="G"
IF RCDISP
Begin DoDot:1
+12 WRITE !,"GRAND TOTALS ALL PAYERS",!!
+13 WRITE RCLINE,!
End DoDot:1
+14 ;
+15 ; PRCA*4.5*446, add I1,I2,I3
+16 ; default for RCPUZ="A", ALL
SET I1=1
SET I2=1
SET I3=5
+17 ;Unposted contains Zero Pay and Unmatched
IF RCPUZ="U"
SET I1=4
SET I3=4
+18 ;Unposted contains Zero Pay and Unmatched
IF RCPUZ="Z"
SET I1=5
SET I3=5
+19 ;Don't include Unposted
IF RCPUZ="P"
SET I3=3
+20 ;
+21 ; Print all EOB/Payment combinations
+22 ; PRCA*4.5*349, PRCA*4.5*446 use I1,I2,I3
FOR J="AUTOPOST","MANUAL","UNPOSTED","TOTAL"
if RCSTOP
QUIT
FOR I=I1:I2:I3
Begin DoDot:1
+23 ;
+24 ; PRCA*4.5*446 filter for RCPUZ
+25 IF (RCPUZ="U")!(RCPUZ="Z")
IF (J="AUTOPOST")!(J="MANUAL")
QUIT
+26 ; For Unmatched and Zero Pay, there are not 2 categories to total together like Autopost+Manual
IF (RCPUZ="U")!(RCPUZ="Z")
IF J="TOTAL"
QUIT
+27 IF RCPUZ="P"
IF J="UNPOSTED"
QUIT
+28 ;
+29 ; Only EFT/ERA can be auto-posted - PRCA*4.5*349
IF J="AUTOPOST"
IF I>1
QUIT
+30 ; Unmatched and Zero pay are Unposted
IF J="MANUAL"
IF I>3
QUIT
+31 ; Unmatched and Zero pay are Unposted
IF J="UNPOSTED"
IF I<4
QUIT
+32 ; PRCA*4.5*349, PRCA*4.5*446 check RCPUZ
IF '("/Z/U/"[("/"_RCPUZ_"/"))
IF (RCAUTO="A"&(J="MANUAL"))!(RCAUTO="N"&(J="AUTOPOST"))!(RCAUTO'="B"&(J="TOTAL"))
QUIT
+33 ; PRCA*4.5*446, If user wants to see Posted, exclude Zero Pay and Unmatched (Unposted)
IF RCPUZ="P"
IF J="UNPOSTED"
QUIT
+34 ; PRCA*4.5*349
SET RCDATA=$GET(^TMP("RCDPENR2",$JOB,"GTOT",J,I))
+35 ; PRCA*4.5*446
SET RCERATYP=$SELECT(I=1:"EFT/ERA",I=2:"PAPER CHECK/ERA",I=3:"EFT/PAPER EOB",I=4:"/UNMATCHED ERA",1:"/ZERO PAYMENTS")
+36 SET RCERAFLG=0
+37 SET RCEFTTXT=$PIECE(RCERATYP,"/")
+38 SET RCERATXT=$PIECE(RCERATYP,"/",2)
+39 ; PRCA*4.5*446
SET RCEFT=$SELECT(RCEFTTXT="EFT":"AN EFT",RCEFTTXT="PAPER CHECK":"A PAPER CHECK",1:"")
+40 ; PRCA*4.5*349, PRCA*4.5**446 If not unmatched or zero pay
IF '((I=4)!(I=5))
SET RCSTRING=RCERATXT_" MATCHED TO "_RCEFT_" - "_J
+41 ; PRCA*4.5**446 If not unmatched or zero pay
IF ((I=4)!(I=5))
SET RCSTRING=RCERATXT
+42 IF (RCEFTTXT="EFT")
IF (RCERATXT["ERA")
SET RCERAFLG=1
+43 ; PRCA*4.5*446 If unmatched or zero pay, then set ERA flag
IF (I=4)!(I=5)
SET RCERAFLG=1
+44 DO PRINTGT(RCSTRING,RCDATA,RCDISP,RCERAFLG,RCEXCEL,RCPUZ)
End DoDot:1
if RCSTOP
QUIT
+45 ;
+46 QUIT RCSTOP
+47 ;
+48 ;Print the Grand Total/Summary data, Moved from ^RCDPENR3 because of routine size PRCA*4.5*446
PRINTGT(RCTITLE,RCDATA,RCDISP,RCERAFLG,RCEXCEL,RCPUZ) ;PRCA*4.5*332 - added comments below, 20 August 2018
+1 ; Print the Grand Total/Summary data for the EFT/ERA Trending Report
+2 ; Input: RCTITLE - Name of the report
+3 ; RCDATA - Array of compiled data being processed. RCDATA("A") autoposted, RCDATA("M") manually posted
+4 ; RCDISP - 1 - Display to screen, 0 otherwise
+5 ; RCERAFLG - 1 if we're in the ERA matched to an EFT section
+6 ; 0 otherwise
+7 ; RCEXCEL - 1 output to excel, 0 otherwise
+8 ; RCPUZ - P: Payment EEOBs, U: Unmatched EEOBs, Z: Zero Payment EEOBs, A: All ;PRCA*4.5*446
+9 ; RCSTOP - Initialized to 0
+10 ; Output: RCSTOP - User stopped the display of the report
+11 ;
+12 ; Undeclared Parameter(s) - RCRPIEN,RCLINE,RCSTOP
+13 ; RCRPIEN - IEN of the archive file (344.91(
+14 ; RCLINE - String of '-' (separator line)
+15 ; RCSUMFLG - 'M' - Main Report
+16 ; 'G' - Grand totals
+17 ; 'S' - Summary
+18 ;
+19 ;PRCA*4.5*332 comments end
+20 ;
+21 NEW RCCOUNT,RCBILL,RCPAID,RCPCT,RCBECT,RCBEDY,RCAVGBE,RCEECT,RCEEDY
+22 NEW RCEPCT,RCEPDY,RCAVGEP,RCBPCT,RCBPDY,RCAVGBP,RCBORDER,RCSCDATA
+23 NEW RCC,RCB,RCAVGEE,RCLTXT,RCNA,I,RCSTRDTA,RCSTRNG,RCDTXT
+24 ;
+25 ;PRCA*4.5*446
IF '$LENGTH($GET(RCPUZ))
SET RCPUZ="A"
+26 SET RCERAFLG=+$GET(RCERAFLG)
SET RCDISP=$GET(RCDISP)
+27 IF $Y>(IOSL-7)
IF RCDISP
DO ASK^RCDPEADP(.RCSTOP,0)
if RCSTOP
QUIT
DO HEADER^RCDPENR2
+28 ;
+29 ; Display report type being displayed
+30 ; PRCA*4.5*446, 79 (line length)
DO PRINTHDR^RCDPENR2(RCTITLE,79)
+31 ;
+32 ; Extract data from string and build string for output
+33 SET $PIECE(RCSCDATA,U,1)=+$PIECE(RCDATA,U)
+34 SET RCBILL=+$PIECE(RCDATA,U,2)
+35 SET RCPAID=+$PIECE(RCDATA,U,3)
+36 SET $PIECE(RCSCDATA,U,2)=RCBILL
+37 SET $PIECE(RCSCDATA,U,3)=RCPAID
+38 ; Convert to percent format
SET $PIECE(RCSCDATA,U,4)=$SELECT(+RCBILL=0:0,1:RCPAID/RCBILL)*100
+39 SET RCBECT=+$PIECE(RCDATA,U,4)
+40 SET RCBEDY=+$PIECE(RCDATA,U,5)
+41 SET $PIECE(RCSCDATA,U,6)=$FNUMBER($SELECT(+RCBECT=0:0,1:RCBEDY/RCBECT),"",0)
+42 SET RCEECT=+$PIECE(RCDATA,U,6)
+43 SET RCEEDY=+$PIECE(RCDATA,U,7)
+44 SET $PIECE(RCSCDATA,U,7)=$FNUMBER($SELECT(+RCEECT=0:0,1:RCEEDY/RCEECT),"",0)
+45 SET RCEPCT=+$PIECE(RCDATA,U,8)
+46 SET RCEPDY=+$PIECE(RCDATA,U,9)
+47 SET $PIECE(RCSCDATA,U,8)=$FNUMBER($SELECT(+RCEPCT=0:0,1:RCEPDY/RCEPCT),"",0)
+48 SET RCBPCT=+$PIECE(RCDATA,U,10)
+49 SET RCBPDY=+$PIECE(RCDATA,U,11)
+50 SET $PIECE(RCSCDATA,U,9)=$FNUMBER($SELECT(+RCBPCT=0:0,1:RCBPDY/RCBPCT),"",0)
+51 SET $PIECE(RCSCDATA,U,11)=+$PIECE(RCDATA,U,12)
+52 SET $PIECE(RCSCDATA,U,12)=+$PIECE(RCDATA,U,13)
+53 SET $PIECE(RCSCDATA,U,14)=+$PIECE(RCDATA,U,14)
+54 SET $PIECE(RCSCDATA,U,15)=+$PIECE(RCDATA,U,15)
+55 SET $PIECE(RCSCDATA,U,16)=RCPAID-$PIECE(RCDATA,U,15)
+56 ;
+57 ; PRCA*4.5*446 Correct data for Unmatched and Zero Payments
+58 SET RCNA=0
IF (RCTITLE["UNMATCHED")!(RCTITLE["ZERO")
SET RCNA=1
FOR I=7,8,9,14
SET $PIECE(RCSCDATA,U,I)="N/A"
+59 ;
+60 FOR I=1:1:16
Begin DoDot:1
+61 ; PRC*4.5*332, added (RCSUMFLG'="G") below
+62 IF (RCSUMFLG'="G")
IF RCDISP
IF ($Y>(IOSL-4))
Begin DoDot:2
+63 DO ASK^RCDPEADP(.RCSTOP,0)
+64 if RCSTOP
QUIT
+65 DO HEADER^RCDPENR2
End DoDot:2
if RCSTOP
QUIT
+66 ;if printing from monthly background job save in file and quit
+67 ;Otherwise print to screen
+68 SET (RCLTXT,RCDTXT)=$PIECE($TEXT(GDTXT+I),";;",2)
+69 IF RCTITLE["PAPER"
Begin DoDot:2
+70 ; correct display for lines 6,7,8,16
IF (I>5)
IF (I<9)
Begin DoDot:3
+71 ;Dont change line 6 if Paper check section
IF (I=6)
IF RCTITLE["CHECK"
QUIT
+72 ; Correct display for Paper check section
SET RCB="EFT"
SET RCC="CHK"
+73 ;correct display for paper eob
IF RCTITLE["EOB"
SET RCB="ERA"
SET RCC="EOB"
+74 SET RCDTXT=$PIECE(RCLTXT,RCB,1)_RCC_$PIECE(RCLTXT,RCB,2)
End DoDot:3
End DoDot:2
+75 IF 'RCDISP!RCEXCEL
Begin DoDot:2
+76 SET RCSTRDTA=$PIECE(RCSCDATA,U,I)
+77 ;Format lines: lines 2&3 are amounts, 4 is a percentage, remainder are integers.
+78 SET RCSTRNG=RCDTXT_"^"_$SELECT(I=4:$JUSTIFY($PIECE(RCSTRDTA,"."),2)_"%",1:RCSTRDTA)
+79 IF 'RCDISP
DO SAVEDATA^RCDPENR1(RCSTRNG,RCRPIEN)
QUIT
+80 ;if printing in an EXCEL format, print "^" delimited and quit
+81 IF RCEXCEL
WRITE RCSTRNG,!
QUIT
End DoDot:2
QUIT
+82 ;Output to screen
+83 ;currency format
+84 IF (I=2)!(I=3)!(I=15)
WRITE RCDTXT,?65,$JUSTIFY($PIECE(RCSCDATA,U,I),13,2),!
QUIT
+85 ; For the line items that are percentages. Not using $J formatting due to rounding errors.
+86 IF I=4
WRITE RCDTXT,?65,$JUSTIFY($PIECE($PIECE(RCSCDATA,U,I),"."),12),"%",!
QUIT
+87 ;Otherwise print Number format
+88 IF (I=16)
Begin DoDot:2
+89 if RCERAFLG
WRITE RCDTXT,?65,$JUSTIFY($PIECE(RCSCDATA,U,I),13,2),!
End DoDot:2
QUIT
+90 WRITE RCDTXT,?65,$JUSTIFY($PIECE(RCSCDATA,U,I),13),!
End DoDot:1
if RCSTOP
QUIT
+91 IF RCSTOP
QUIT RCSTOP
+92 ;Otherwise print Number format
IF RCDISP
WRITE RCLINE,!
+93 IF 'RCDISP
DO SAVEDATA^RCDPENR1(RCLINE,RCRPIEN)
+94 QUIT RCSTOP
+95 ;
GDTXT ; Moved from ^RCDPENR3 because of routine size PRCA*4.5*446
+1 ;;TOTAL NUMBER OF CLAIMS
+2 ;;TOTAL AMOUNT BILLED
+3 ;;TOTAL AMOUNT PAID
+4 ;;PERCENTAGE AMOUNT PAID: (%Total Paid/Billed)
+5 ;;
+6 ;;AVG #DAYS BETWEEN BILLED/ERA
+7 ;;AVG #DAYS BETWEEN ERA/EFT
+8 ;;AVG #DAYS BETWEEN ERA+EFT REC'D/PMT POSTED
+9 ;;AVG #DAYS BETWEEN BILLED/PMT POSTED
+10 ;;
+11 ;;TOTAL NUMBER OF ERAs
+12 ;;TOTAL NUMBER OF EEOBs
+13 ;;
+14 ;;TOTAL NUMBER OF EFTs
+15 ;;TOTAL AMOUNT COLLECTED
+16 ;;TOTAL DIFFERENCE BETWEEN ERAs (PAID) - EFTs (COLLECTED):
+17 QUIT
+18 ;
PRINTHDR(RCTITLE,RCLL,RCNOLINE) ;
+1 ; PRCA*4.5*446 - Moved from RCDPENR2 for size, add RCLL as parameter for line length, add RCNOLINE to suppress line
+2 ;
+3 ; Undeclared parameters
+4 ; RCLINE - line of "-" for report formating
+5 ; RCSUMFLG - Type of report (M=Main,S=Summary,G=Grand Total)
+6 ; RCDISP - Is the report being email (0) or Printed (1)
+7 ; RCRPIEN - IEN to store the report if emailing
+8 ;
+9 ;PRCA*4.5*446
IF '$LENGTH($GET(RCNOLINE))
SET RCNOLINE=0
+10 ;PRCA*4.5*446 If Line Length isn't set, make it 79
IF 'RCLL
SET RCLL=79
+11 IF $GET(RCEXCEL)
QUIT 0
+12 ;PRCA*4.5*446 Add PAD,PAD1,PAD2,X
NEW PAD,PAD1,PAD2,RCBORDER,RCSTOP,RCSTR,X
+13 ;
+14 ;PRCA*4.5*446 PAD is a variable of spaces to pad title
SET RCBORDER=""
SET $PIECE(RCBORDER,"*",20)=""
SET $PIECE(PAD," ",132)=""
SET RCSTOP=0
+15 IF $Y>(IOSL-7)
IF RCDISP
Begin DoDot:1
+16 DO ASK^RCDPEADP(.RCSTOP,0)
+17 if RCSTOP
QUIT
+18 DO HEADER^RCDPENR2
End DoDot:1
+19 IF RCSTOP
QUIT RCSTOP
+20 ;
+21 ; Display report type being displayed
+22 SET X=$LENGTH(RCBORDER)+$LENGTH(RCTITLE)+$LENGTH(RCBORDER)
+23 SET X=RCLL-X
+24 ;PRCA*4.5*446 Calculate # spaces for PAD1, PAD2 to center title
SET PAD1=$EXTRACT(PAD,1,(X/2\1))
SET PAD2=$EXTRACT(PAD,1,(X/2+.5\1))
+25 IF 'RCDISP
Begin DoDot:1
+26 ;PRCA*4.5*446 Replace spaces with PAD1, PAD2 to center title
SET RCSTR=RCBORDER_PAD1_RCTITLE_PAD2_RCBORDER
+27 DO SAVEDATA^RCDPENR1(RCSTR,RCRPIEN)
+28 DO SAVEDATA^RCDPENR1(RCLINE,RCRPIEN)
End DoDot:1
QUIT
+29 IF RCDISP
Begin DoDot:1
+30 ;PRCA*4.5*446 Replace spaces with PAD1, PAD2 to center title
WRITE RCBORDER,PAD1,RCTITLE,PAD2,RCBORDER,!
+31 ;PRCA*4.5*446
if 'RCNOLINE
WRITE RCLINE,!
End DoDot:1
+32 ;
+33 QUIT RCSTOP
+34 ;
ASKSORT() ; EP from RCDPENR2 - added for PRCA*4.5*446
+1 ; Input: N/A
+2 ; Returns: -1 - User ^ or timed out
+3 ; P - Sort by Payer
+4 ; A - Sort by Amount of payment
+5 ;
+6 NEW DA,DIR,DTOUT,DUOUT,X,Y,DIRUT,DIROUT,RCTYPE,RETURN
+7 SET RCTYPE=""
+8 SET DIR("?",1)="Enter 'P' to sort by Payer"
+9 SET DIR("?")=" 'A' to sort by Amount of payment"
+10 SET DIR(0)="SA^P:PAYER;A:AMOUNT OF PAYMENT"
+11 SET DIR("A")="SORT BY (P)AYER or (A)MOUNT OF PAYMENT: "
+12 SET DIR("B")=$SELECT($GET(DEF)'="":DEF,1:"PAYER")
+13 DO ^DIR
+14 KILL DIR
+15 IF $DATA(DTOUT)!$DATA(DUOUT)
QUIT -1
+16 if Y=""
QUIT "P"
+17 SET RETURN=$EXTRACT(Y)
+18 QUIT RETURN
+19 ;
+20 ;Print the Detailed portion of the report, sort by amount
MAINAMT(RCPUZ,RCAUTO,RCEXCEL) ;
+1 ; ***** IMPORTANT ***** If this section needs to be modified, also check MAIN^RCDPENR2
+2 ; New subroutine for PRCA*4.5*446, copied from MAIN^RCDPENR2 and modified for sort by amount
+3 ;
+4 ; PRCA*4.5*446
if '$LENGTH($GET(RCPUZ))
SET RCPUZ="A"
+5 ;
+6 NEW I,RCERATYP,RCDATA,RCERATXT,RCSTRING,RCEFTTXT,RCEFT,RCERA,RCCLAIM,RCBILL
+7 NEW RCAMTBL,RCPAID,RCBILLDT,RCERADT,RCEFTDT,RCPOSTDT,RCTRACE,RCATPST,RCIDX,RCAMTPD
+8 NEW RCETRAN,RCERA,RCEOB,RCEFTNO,RCBEDY,RCEEDY,RCEPDY,RCBPDY,RCMETHOD,RCNOLINE,RCTOTDY,RCTMP,RCSTOP,RCIDX,RCSUB6
+9 ;
+10 SET RCMETHOD=""
SET RCSTOP=0
+11 SET RCNOLINE=1
+12 FOR
SET RCMETHOD=$ORDER(^TMP("RCDPENR2",$JOB,"MAINAMT",RCMETHOD))
if RCMETHOD=""
QUIT
Begin DoDot:1
+13 ; PRCA*4.5*349
IF (RCAUTO="A"&(RCMETHOD="MANUAL"))!(RCAUTO="N"&(RCMETHOD="AUTOPOST"))
QUIT
+14 IF RCPUZ="U"
IF RCMETHOD'="UNPOSTED"
QUIT
+15 IF RCPUZ="Z"
IF RCMETHOD'="UNPOSTED"
QUIT
+16 IF RCPUZ="P"
IF RCMETHOD="UNPOSTED"
QUIT
+17 ;
+18 ;PRCA*4.5*446 131=line length, RCNOLINE
SET RCSTOP=$$PRINTHDR^RCDPENR5(RCMETHOD,131,RCNOLINE)
+19 if RCSTOP
QUIT
+20 ;
+21 ; PRCA*4.5*349
IF '$GET(RCEXCEL)
IF $ORDER(^TMP("RCDPENR2",$JOB,"MAINAMT",RCMETHOD,""))=""
Begin DoDot:2
+22 ; PRCA*4.5*349
WRITE "No data captured for this section during the specified time period.",!
End DoDot:2
+23 ;
+24 SET RCAMTBL=""
+25 FOR
SET RCAMTBL=$ORDER(^TMP("RCDPENR2",$JOB,"MAINAMT",RCMETHOD,RCAMTBL))
if RCAMTBL=""
QUIT
Begin DoDot:2
+26 SET RCSUB6=""
+27 FOR
SET RCSUB6=$ORDER(^TMP("RCDPENR2",$JOB,"MAINAMT",RCMETHOD,RCAMTBL,RCSUB6))
if RCSUB6=""
QUIT
Begin DoDot:3
+28 SET RCDATA=^TMP("RCDPENR2",$JOB,"MAINAMT",RCMETHOD,RCAMTBL,RCSUB6)
+29 SET I=$PIECE(RCDATA,U,19)
+30 IF RCPUZ="U"
IF I'=4
QUIT
+31 IF RCPUZ="Z"
IF I'=5
QUIT
+32 IF RCPUZ="P"
IF I>3
QUIT
+33 ; Must be EFT/ERA(1) for autopost. Exclude Paper Check(2), Paper EOB(3)
IF RCPUZ="P"
IF RCMETHOD="AUTOPOST"
IF I'=1
QUIT
+34 ;If RCPUZ="A" for all and user selected AUTOPOST, exclude 2, 3 but keep 1, 4, 5. This case is handled inside next for loop.
+35 ;
+36 ; Unmatched and Zero pay are Unposted
IF RCMETHOD="MANUAL"
IF I>3
QUIT
+37 ; Only EFT/ERA can be auto-posted - PRCA*4.5*349
IF RCMETHOD="AUTOPOST"
IF I>1
QUIT
+38 ; Unmatched and Zero pay are Unposted
IF RCMETHOD="UNPOSTED"
IF I<4
QUIT
+39 ;
+40 IF $Y>(IOSL-5)
DO ASK^RCDPEADP(.RCSTOP,0)
if RCSTOP
QUIT
DO HEADER^RCDPENR2
+41 ;Init display values for the days
+42 SET RCCLAIM=$PIECE(RCDATA,U,20)
+43 SET (RCBEDY,RCEEDY,RCEPDY,RCBPDY)=""
+44 SET RCBILL=$$GET1^DIQ(399,+RCCLAIM_",",".01","E")
+45 IF $PIECE(RCDATA,U,9)
IF $PIECE(RCDATA,U,8)
SET RCBEDY=$$FMTH^XLFDT($PIECE(RCDATA,U,9),1)-$$FMTH^XLFDT($PIECE(RCDATA,U,8),1)
+46 IF $PIECE(RCDATA,U,10)
IF $PIECE(RCDATA,U,9)
SET RCEEDY=$$FMTH^XLFDT($PIECE(RCDATA,U,10),1)-$$FMTH^XLFDT($PIECE(RCDATA,U,9),1)
+47 ; Find the latest date between ERA and EFT
SET RCIDX=$SELECT($$FMTH^XLFDT($PIECE(RCDATA,U,10),1)>$$FMTH^XLFDT($PIECE(RCDATA,U,10),1):10,1:9)
+48 ; Use latest date to determ days btw ERA/EFT and Posting
IF $PIECE(RCDATA,U,11)
IF $PIECE(RCDATA,U,RCIDX)
SET RCEPDY=$$FMTH^XLFDT($PIECE(RCDATA,U,11),1)-$$FMTH^XLFDT($PIECE(RCDATA,U,RCIDX),1)
+49 IF $PIECE(RCDATA,U,11)
IF $PIECE(RCDATA,U,8)
SET RCBPDY=$$FMTH^XLFDT($PIECE(RCDATA,U,11),1)-$$FMTH^XLFDT($PIECE(RCDATA,U,8),1)
+50 ;PRCA*4.5*446 some fields are N/A for Unmatched and Zero Pay
IF (I=4)!(I=5)
SET RCEPDY="N/A"
SET RCBPDY="N/A"
IF I=4
SET RCEEDY="N/A"
+51 IF RCEXCEL
Begin DoDot:4
+52 SET RCTMP=RCBILL_"^"_$$FMTE^XLFDT($PIECE(RCDATA,U,5),2)_"^"_$PIECE(RCDATA,U,6)_"^"_$PIECE(RCDATA,U,7)_"^"_$$FMTE^XLFDT($PIECE(RCDATA,U,8),2)
+53 SET RCTMP=RCTMP_"^"_$$FMTE^XLFDT($PIECE(RCDATA,U,9),2)_"^"_$$FMTE^XLFDT($PIECE(RCDATA,U,10),2)_"^"_$$FMTE^XLFDT($PIECE(RCDATA,U,11),2)_"^"_$PIECE(RCDATA,U,12)_"^"_$PIECE(RCDATA,U,13)
+54 SET RCTMP=RCTMP_"^"_$PIECE(RCDATA,U,14)_"^"_$PIECE(RCDATA,U,2)_"^"_$PIECE(RCDATA,U,15)_"^"_$PIECE(RCDATA,U,3)_"^"
+55 SET RCTMP=RCTMP_RCBEDY_"^"_RCEEDY_"^"_RCEPDY_"^"_RCBPDY
+56 ;PRCA*4.5*446 posted date is N/A for Unmatched and Zero Pay
IF I=4
SET $PIECE(RCTMP,"^",8)="N/A"
+57 WRITE RCTMP,!
End DoDot:4
+58 IF 'RCEXCEL
Begin DoDot:4
+59 WRITE RCBILL,?21,$$FMTE^XLFDT($PIECE(RCDATA,U,5),2),?30,$JUSTIFY($PIECE(RCDATA,U,6),10,2),?41,$JUSTIFY($PIECE(RCDATA,U,7),10,2),?52,$$FMTE^XLFDT($PIECE(RCDATA,U,8),2)
+60 WRITE ?61,$$FMTE^XLFDT($PIECE(RCDATA,U,9),2),?75,$$FMTE^XLFDT($PIECE(RCDATA,U,10),2),?89,$$FMTE^XLFDT($PIECE(RCDATA,U,11),2),?98,$PIECE(RCDATA,U,12),?109,$PIECE(RCDATA,U,13),!
+61 WRITE ?5,$PIECE(RCDATA,U,14),?17,$PIECE(RCDATA,U,2),?28,$JUSTIFY($PIECE(RCDATA,U,15),6),?39,$PIECE(RCDATA,U,3),?50,$JUSTIFY(RCBEDY,8)
+62 WRITE ?67,$JUSTIFY(RCEEDY,8),?83,$JUSTIFY(RCEPDY,8),?106,$JUSTIFY(RCBPDY,8),!
+63 WRITE ?10,$PIECE(RCDATA,U,17),!
End DoDot:4
End DoDot:3
if RCSTOP
QUIT
End DoDot:2
if RCSTOP
QUIT
+64 ;I '$G(RCEXCEL) W RCLINE,! ; PRCA*4.5*466, Remove line of "-"
End DoDot:1
if RCSTOP
QUIT
+65 ;
+66 IF RCSTOP
QUIT RCSTOP
+67 ; Section break - ask user if they wish to continue...
+68 ;
+69 QUIT RCSTOP
+70 ;