RCDPEWL ;ALB/TMK/KML - ELECTRONIC EOB MESSAGE WORKLIST ;Jun 06, 2014@19:11:19
;;4.5;Accounts Receivable;**173,208,269,298,317,318,326,349,367**;Mar 20, 1995;Build 11
;Per VA Directive 6402, this routine should not be modified.
; IA for read access to ^IBM(361.1 = 4051
;
EN ; Main entry point
N RCFASTXT,DA,DIC,X,Y,RCERA,RCNOED,RCQUIT ;PRCA*4.5*317 Added RCQUIT
D FULL^VALM1
;
S DIR(0)="SA^L:LIST;S:SPECIFIC"
S DIR("A")="Do you want a (L)IST of ERAs or a (S)PECIFIC one?: "
S DIR("?",1)="Enter LIST to see a list of ERAs."
S DIR("?")="Enter SPECIFIC to see a selected ERA."
S DIR("B")="LIST"
W !
D ^DIR
K DIR
Q:$D(DTOUT)!$D(DUOUT)
I Y="S" D Q
. S DIC="^RCY(344.4,",DIC(0)="AEMQ"
. D ^DIC
. I Y>0 D WL^RCDPEWL7(+Y)
;
; Calling Preferred View API in Menu Option Mode
D PARAMS^RCDPEWL0("MO")
Q:$G(RCQUIT)
D EN^VALM("RCDPE WORKLIST ERA LIST")
Q
;
DISP(RCERA,RCNOED) ; Entry to worklist from receipt processing
; RCERA = ien of entry in file 344.49
; RCNOED = 1 if receipt exists/no editing allowed
; = 2 if no edit and called from receipt processing
; ; prca*4.5*298 - added AUTOPOST input argument
; AUTOPOST = "" if ERA is non-autopost
; = 0 if auto-posted ERA is in UNPOSTED status
; = 1 if auto-posted ERA is in PARTIAL posted status
; = 2 if auto-posted ERA is in COMPLETE status
;
N DUOUT,DTOUT,DIC,DIK,X,Y,DIR,RCQUIT,DA,DIE,DR,RCSCR,RC0,RC5,RCDAT,RCTRACE,RCUNM
;
S RCSCR("NOEDIT")=+$G(RCNOED)
S RCQUIT=0,RC0=$G(^RCY(344.4,RCERA,0)),RC5=$G(^RCY(344.4,RCERA,5))
S RCTRACE=$P(RC0,"^",2) ; PRCA*4.5*367 - Trace Number
I 'RCSCR("NOEDIT"),'$O(^RCY(344.49,"B",RCERA,0)) D G:RCQUIT DISPQ
. ;allow additional selections
. S DIR("A",1)="No worklist scratchpad entry exists for this ERA."
. S DIR("A")="(C)reate scratchpad, (V)iew ERA details or (E)xit:"
. S DIR(0)="SAO^C:CREATE SCRATCHPAD;V:VIEW ERA DETAILS;E:EXIT"
. W ! D ^DIR K DIR
. I (Y'="V")&(Y'="C")&(Y'="E") S RCERA=-1,RCQUIT=1 Q
. I Y="V" S RCSCR=RCERA D PRERA1^RCDPEWL0 S RCERA=-1,RCQUIT=1 Q
. I Y="E" S RCERA=-1,RCQUIT=1 Q
. ; prca*4.5*298 Y is = "C" therefore perform the pre-existing scratchpad creation/editing algorithm
. I $P(RC0,U,15)'="" W !!,"PAYMENT METHOD CODE REPORTED: "_$P(RC0,U,15),!
. I $P(RC0,U,15)="" W !!,"NO PAYMENT METHOD CODE REPORTED",!
. I $P(RC0,U,9)=0,$P(RC5,U,2)="" D Q:RCQUIT
.. S RCQUIT=0,RCUNM=0
.. I +$P(RC0,U,5)=0,"ACH"'[(U_$P(RC0,U,15)_U) D Q:RCQUIT!RCUNM
... S DIR("A",1)="This ERA has no payment associated with it and can be marked as",DIR("A",2)="'MATCH-0 PAYMENT' to remove it from the ERA AGING REPORT if no paper check or",DIR("A",3)="EFT is expected to be received for this ERA"
... S DIR("?")="Do NOT respond YES here unless you are sure there will be no EFT or paper",DIR("?",1)=" check to be received for this 0-PAYMENT ERA"
... S DIR("A")="Do you want to do this?: "
... S DIR(0)="YA"
... D ^DIR K DIR
... I $D(DTOUT)!$D(DUOUT) S RCQUIT=1 Q
... I Y'=1 Q
... S DIE="^RCY(344.4,",DR=".09////3;.14////3",DA=RCERA D ^DIE S RCUNM=1
.. ; PRCA*4.5*367 - Skip prompt for check number if the ERA is for a TDA
.. I 'RCUNM,$$HACERA^RCDPEU(RCERA) D
... W !!,"This ERA does NOT have a matching EFT"
... W !,"ERA #",RCERA," (TRACE #"_RCTRACE_") matched to TDA ",RCTRACE
... S DIR("A")="Has the TDA been received by FMS?: ",DIR("B")="YES"
... S DIR(0)="YA" D ^DIR K DIR
... I $D(DTOUT)!$D(DUOUT)!'Y S RCQUIT=1 Q
... ;
... ; Null check number field but file date matched and USER
... S DIE="^RCY(344.4,",DA=RCERA
... S DR=".13////@;.09////5;5.03///"_$$DT^XLFDT()_";5.04///"_$G(DUZ)
... D ^DIE
.. E I 'RCUNM D
... S DIR("A",1)="This ERA does NOT have a matching EFT",DIR("A")="Enter the number of the paper check you received for this ERA: ",DIR(0)="344.01,.07A"
... I $P(RC5,U,2)'="" S DIR("B")=$P(RC5,U,2)
... I $G(DIR("B"))="",$P(RC0,U,2)'="" S DIR("B")=$P(RC0,U,2)
... W ! D ^DIR K DIR
... I $D(DTOUT)!$D(DUOUT)!(Y="") D S RCQUIT=1 Q
.... S DIR(0)="EA",DIR("A",1)="There must be either a paper check or an EFT for this ERA",DIR("A")="PRESS RETURN TO CONTINUE " W !! D ^DIR K DIR
... S RCDAT("CHECK#")=Y
... S DIR(0)="344.01,.1O",DIR("B")=$$FMTE^XLFDT($P(RC0,U,4),2)
... W ! D ^DIR K DIR
... I $D(DTOUT)!$D(DUOUT) S RCQUIT=1 Q
... S RCDAT("CHECKDT")=Y
... S DIR(0)="344.01,.08O"
... W ! D ^DIR K DIR
... I $D(DTOUT)!$D(DUOUT) S RCQUIT=1 Q
... S RCDAT("BANK")=Y
... S DIR("A",1)="ERA #"_RCERA_" (TRACE #:"_$P(RC0,U,2)_") matched to paper check "_RCDAT("CHECK#"),DIR("A")="Is this correct?: ",DIR(0)="YA",DIR("B")="YES" W ! D ^DIR K DIR
... I Y'=1 S RCQUIT=1 Q
... S DIE="^RCY(344.4,",DA=RCERA
... ; PRCA*4.5*326 - Add date matched and user for check match
... S DR=".13////"_RCDAT("CHECK#")_";.09////2;5.03///"_$$DT^XLFDT()_";5.04///"_$G(DUZ)
... D ^DIE
;
S RCSCR=+$O(^RCY(344.49,"B",RCERA,0))
I 'RCSCR D ; Build the entry in file 344.49
. I RCSCR("NOEDIT") D Q
.. S DIR("A")="NO worklist entry exists for this ERA - PRESS RETURN TO CONTINUE ",DIR(0)="EA" W ! D ^DIR K DIR
. ;
. S RCSCR=+$$ADDREC(RCERA,.RCDAT)
. I RCSCR D Q:'RCSCR
.. F X=1:1:6 L +^RCY(344.4,RCSCR):5 Q:$T I X=6 D Q
... S DA=RCSCR,DIK="^RCY(344.49," D ^DIK S RCSCR=0
... S DIR(0)="EA",DIR("A",1)="Another user has locked this entry - NEW RECORD NOT CREATED",DIR("A")="PRESS RETURN TO CONTINUE " W ! D ^DIR K DIR
.. Q:'RCSCR
.. ; prca*4.5*298 per patch requirements, keep code related to
.. ; creating/maintaining batches but just remove from execution.
.. ;D SETBATCH^RCDPEWLB(RCSCR) ; prca*4.5*298
.. D ADDLINES^RCDPEWLA(RCSCR)
.. K ^TMP($J,"BATCHES")
;
I RCSCR D G:'RCSCR DISPQ
. ; prca*4.5*298 per patch requirements, keep code related to
. ; creating/maintaining batches but just remove from execution.
. ;Q:'$$BAT^RCDPEWL7(RCSCR)
. ;I 'RCSCR("NOEDIT"),'$G(^TMP("RCBATCH_SELECTED",$J)) L +^RCY(344.4,RCSCR):5 I '$T W !!,"Another user is currently editing this entry",! S DIR(0)="E" D ^DIR K DIR S RCSCR=0 Q
. I 'RCSCR("NOEDIT") L +^RCY(344.4,RCSCR):5 I '$T W !!,"Another user is currently editing this entry",! S DIR(0)="E" D ^DIR K DIR S RCSCR=0 Q
. D EN^VALM("RCDPE EOB WORKLIST")
;
DISPQ L -^RCY(344.4,+$G(RCERA))
Q
;
INIT ; -- set up initial variables
N RCQUIT,RCREV
S VALMCNT=0,VALMBG=1
S RCQUIT=0
; PRCA*4.5*298: Removed functionality for retrieving/storing user preferences in file #344.49
; and replaced with the use of parameters handled by PARAMS^RCDPEWLA.
D PARAMS^RCDPEWLA("MO") I $G(RCQUIT) S VALMQUIT=1 Q
D BLD^RCDPEWL1($G(^TMP($J,"RC_SORTPARM")))
Q
;
CV ; Change View Action for EEOB Worklist
D FULL^VALM1
D PARAMS^RCDPEWLA("CV")
D BLD^RCDPEWL1($G(^TMP($J,"RC_SORTPARM"))),HDR
S VALMBCK="R",VALMBG=1
Q
;
ADDREC(RCERA,RCDAT) ; Add a record to file 344.49
; RCERA = ien of file 344.4
; RCDAT = array containing additional data to add to new entry
;
N DIC,DLAYGO,X,Y,DO,DD,RCY,DINUM
S RCY=0,DIC("DR")=""
S DIC(0)="L",DLAYGO=344.49,(DINUM,X)=RCERA,DIC="^RCY(344.49,"
I $G(RCDAT("CHECK#"))'="" S DIC("DR")=".04////"_RCDAT("CHECK#")_";"
I $G(RCDAT("CHECKDT"))'="" S DIC("DR")=DIC("DR")_".05////"_RCDAT("CHECKDT")_";"
I $G(RCDAT("BANK"))'="" S DIC("DR")=DIC("DR")_".06////"_RCDAT("BANK")_";"
K DD,DO D FILE^DICN K DIC
I Y>0 S RCY=+Y
Q RCY
;
HDR ; Creates header lines for the selected ERA display
; PRCA*4.5*349 - Reorganized NEW list & added XX temp. variable
N I,RCARC,RCEEOBPU,RCSORTBY,RC,RC4,RC5,X,XX,Z ; PRCA*4.5*326 - RCARC added
S RCSORTBY=$G(^TMP($J,"RC_SORTPARM")) ; PRCA*4.5*349 - Moved to top of subroutine
S RCEEOBPU=$G(^TMP($J,"RC_EEOBPOST")) ; PRCA*4.5*349 - Moved to top of subroutine
F I=1:1:6 S VALMHDR(I)="" ; PRCA*4.5*349 - Add a line to the header
I '$G(RCSCR) S VALMQUIT=1 Q
S RC=$G(^RCY(344.4,+RCSCR,0)),RC5=$G(^RCY(344.4,+RCSCR,5))
S RC4=$G(^RCY(344.4,+RCSCR,4)) ;prca*4.5*298
; PRCA*4.5*349 - Begin Modified Code Block - Reorder header information
S VALMHDR(1)="ERA Entry #: "_$P(RC,U)
S $E(VALMHDR(1),43)="Total Amount Paid: "_$J(+$P(RC,U,5),"",2)
S XX=$S(RCSORTBY="F":"ZERO-PAYMENTS FIRST",RCSORTBY="L":"ZERO-PAYMENTS LAST",1:"NO SORT ORDER")
S VALMHDR(2)="Payment Order: "_XX
S XX=$S(RCEEOBPU="P":"POSTED EEOBs ONLY",RCEEOBPU="U":"UNPOSTED EEOBs ONLY",1:"ALL EEOBS")
S $E(VALMHDR(2),39)="Disp Auto-Posted ERAs: "_XX
; PRCA*4.5*349 - End Modified Code Block
S Z=+$O(^RCY(344.31,"AERA",+RCSCR,0))
I Z S VALMHDR(3)="EFT #/TRACE #: "_$$GET1^DIQ(344.31,Z_",",.01,"E")_"/"_$E($P(RC,U,2),1,40) ; PRCA*4.5*326
I 'Z,$P(RC5,U,2)'="" S VALMHDR(3)="PAPER CHECK #: "_$P(RC5,U,2)
S VALMHDR(4)=$P(RC,U,6)_"/"_$P(RC,U,3) ; PRCA*4.5*349 - Give all of fourth line to payer name/id
; prca*4.5*298 per patch requirements, keep code related to creating/maintaining
; batches but just remove from execution.
;I $G(^TMP("RCBATCH_SELECTED",$J)) D
;. N Z,Z0
;. S Z=+$G(^TMP("RCBATCH_SELECTED",$J)),Z0=$G(^RCY(344.49,RCSCR,3,Z,0))
;. S RCT=RCT+1,VALMHDR(RCT)="BATCH: "_Z_" "_$P(Z0,U,2)_" "_$$EXTERNAL^DILFD(344.493,.03,"",$P(Z0,U,3))
I $G(RCSCR("NOEDIT")) D
. S VALMHDR(5)="*** RECEIPT(S) ALREADY CREATED *** ("_$$RECEIPTS(RCSCR)_")" ; PRCA*4.5*349 - Shift down a line
I $P(RC4,U,2)]"" D ;AUTO-POST STATUS (344.4, 4.02); if not null, then the selected ERA is designated for auto-post
. ; Setting the Auto-Post info in the header
. N AUTOPSTS
. S AUTOPSTS="Auto-Post Status: "_$S($P(RC4,U,2)=0:"Unposted",$P(RC4,U,2)=1:"Partial",1:"Complete")
. S AUTOPSTS=AUTOPSTS_" Auto-Post Date: "_$S($P(RC4,U,2)>0:$$FMTE^XLFDT($P(RC4,U)),1:"") ; PRCA*4.5*318
. S VALMHDR(6)=AUTOPSTS ; PRCA*4.5*349 - Shift down a line
; BEGIN PRCA*4,.5*326
; Check for auto-decrease CARCs if this is a denial ERA
I $$GET1^DIQ(344.4,+RCSCR,.15)="NON" D
.N RCARC
.S RCARC=$$WLH^RCDPEWLZ(+RCSCR)
.S:RCARC]"" VALMHDR(5)=RCARC ; PRCA*4.5*349 - Shift down a line
; ENd PRCA*4,.5*326
; Displaying Current View (PRCA*4.5*298)
; PRCA*4.5*349 - Moved to top of routine and restructured
Q
;
FNL ; -- Clean up list
K ^TMP("RCDPE-EOB_WLDX",$J),^TMP("RCDPE-EOB_WL",$J),^TMP($J,"RC_SORTPARM"),^TMP($J,"RC_BILL")
D CLEAN^VALM10,CLEAR^VALM1
K RCFASTXT
Q
;
SEL(RCDA) ; Select entry from worklist scratch pad screen
; RCDA = array returned if selections made
; RCDA(n)=ien of entry(s) in file 344.41
; where n = the line # selected
K RCDA
N VALMY
D EN^VALM2($G(XQORNOD(0)),"S")
S RCDA=0 F S RCDA=$O(VALMY(RCDA)) Q:'RCDA S RCDA(RCDA)=$P($G(^TMP("RCDPE-EOB_WLDX",$J,RCDA)),U,2,5)
Q
;
NOEDIT ; Display no edit allowed if receipt exists
N DIR,X,Y
S DIR(0)="EA",DIR("A",1)="This action is NOT available since the ERA already has a receipt."
S DIR("A")="PRESS RETURN TO CONTINUE "
W ! D ^DIR K DIR W !
Q
;
NOBATCH ; Display action not allowed if working at batch level not the ERA level
N DIR,X,Y
S DIR(0)="EA",DIR("A",1)="This action is NOT valid when in a batch within the ERA."
S DIR("A")="PRESS RETURN TO CONTINUE "
W ! D ^DIR K DIR W !
Q
;
RECEIPTS(RCSCR) ; get list of receipts for the ERA
; Input: RCSCR: ERA File (#344.4) IEN
; Output: "" - No Receipt / REC# - One Receipt / REC#A-REC#Z - Range of Receipts
N X,RECEIPT,CTR,RC0
K ARRAY,STR
S X=0,CTR=1,(STR,RECEIPT)=""
F S X=$O(^RCY(344.4,RCSCR,1,"RECEIPT",X)) Q:'X D
. S:X RECEIPT=$P($G(^RCY(344,X,0)),U) ; get external form of receipt
. I RECEIPT]"" S ARRAY(RECEIPT)=""
; array of receipts does not exist so this could be a non auto-posted ERA; so only 1 receipt will be assigned; retrieve at 344.4, .08
I '$D(ARRAY),$$GET1^DIQ(344.4,RCSCR,.08)'="" S ARRAY($$GET1^DIQ(344.4,RCSCR,.08))=""
;
I $O(ARRAY($O(ARRAY(""))))'="" D
. S STR=$O(ARRAY(""))_"-"_$O(ARRAY(""),-1)
E D
. S STR=$O(ARRAY(""))
Q STR
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPEWL 11980 printed Oct 16, 2024@17:46:29 Page 2
RCDPEWL ;ALB/TMK/KML - ELECTRONIC EOB MESSAGE WORKLIST ;Jun 06, 2014@19:11:19
+1 ;;4.5;Accounts Receivable;**173,208,269,298,317,318,326,349,367**;Mar 20, 1995;Build 11
+2 ;Per VA Directive 6402, this routine should not be modified.
+3 ; IA for read access to ^IBM(361.1 = 4051
+4 ;
EN ; Main entry point
+1 ;PRCA*4.5*317 Added RCQUIT
NEW RCFASTXT,DA,DIC,X,Y,RCERA,RCNOED,RCQUIT
+2 DO FULL^VALM1
+3 ;
+4 SET DIR(0)="SA^L:LIST;S:SPECIFIC"
+5 SET DIR("A")="Do you want a (L)IST of ERAs or a (S)PECIFIC one?: "
+6 SET DIR("?",1)="Enter LIST to see a list of ERAs."
+7 SET DIR("?")="Enter SPECIFIC to see a selected ERA."
+8 SET DIR("B")="LIST"
+9 WRITE !
+10 DO ^DIR
+11 KILL DIR
+12 if $DATA(DTOUT)!$DATA(DUOUT)
QUIT
+13 IF Y="S"
Begin DoDot:1
+14 SET DIC="^RCY(344.4,"
SET DIC(0)="AEMQ"
+15 DO ^DIC
+16 IF Y>0
DO WL^RCDPEWL7(+Y)
End DoDot:1
QUIT
+17 ;
+18 ; Calling Preferred View API in Menu Option Mode
+19 DO PARAMS^RCDPEWL0("MO")
+20 if $GET(RCQUIT)
QUIT
+21 DO EN^VALM("RCDPE WORKLIST ERA LIST")
+22 QUIT
+23 ;
DISP(RCERA,RCNOED) ; Entry to worklist from receipt processing
+1 ; RCERA = ien of entry in file 344.49
+2 ; RCNOED = 1 if receipt exists/no editing allowed
+3 ; = 2 if no edit and called from receipt processing
+4 ; ; prca*4.5*298 - added AUTOPOST input argument
+5 ; AUTOPOST = "" if ERA is non-autopost
+6 ; = 0 if auto-posted ERA is in UNPOSTED status
+7 ; = 1 if auto-posted ERA is in PARTIAL posted status
+8 ; = 2 if auto-posted ERA is in COMPLETE status
+9 ;
+10 NEW DUOUT,DTOUT,DIC,DIK,X,Y,DIR,RCQUIT,DA,DIE,DR,RCSCR,RC0,RC5,RCDAT,RCTRACE,RCUNM
+11 ;
+12 SET RCSCR("NOEDIT")=+$GET(RCNOED)
+13 SET RCQUIT=0
SET RC0=$GET(^RCY(344.4,RCERA,0))
SET RC5=$GET(^RCY(344.4,RCERA,5))
+14 ; PRCA*4.5*367 - Trace Number
SET RCTRACE=$PIECE(RC0,"^",2)
+15 IF 'RCSCR("NOEDIT")
IF '$ORDER(^RCY(344.49,"B",RCERA,0))
Begin DoDot:1
+16 ;allow additional selections
+17 SET DIR("A",1)="No worklist scratchpad entry exists for this ERA."
+18 SET DIR("A")="(C)reate scratchpad, (V)iew ERA details or (E)xit:"
+19 SET DIR(0)="SAO^C:CREATE SCRATCHPAD;V:VIEW ERA DETAILS;E:EXIT"
+20 WRITE !
DO ^DIR
KILL DIR
+21 IF (Y'="V")&(Y'="C")&(Y'="E")
SET RCERA=-1
SET RCQUIT=1
QUIT
+22 IF Y="V"
SET RCSCR=RCERA
DO PRERA1^RCDPEWL0
SET RCERA=-1
SET RCQUIT=1
QUIT
+23 IF Y="E"
SET RCERA=-1
SET RCQUIT=1
QUIT
+24 ; prca*4.5*298 Y is = "C" therefore perform the pre-existing scratchpad creation/editing algorithm
+25 IF $PIECE(RC0,U,15)'=""
WRITE !!,"PAYMENT METHOD CODE REPORTED: "_$PIECE(RC0,U,15),!
+26 IF $PIECE(RC0,U,15)=""
WRITE !!,"NO PAYMENT METHOD CODE REPORTED",!
+27 IF $PIECE(RC0,U,9)=0
IF $PIECE(RC5,U,2)=""
Begin DoDot:2
+28 SET RCQUIT=0
SET RCUNM=0
+29 IF +$PIECE(RC0,U,5)=0
IF "ACH"'[(U_$PIECE(RC0,U,15)_U)
Begin DoDot:3
+30 SET DIR("A",1)="This ERA has no payment associated with it and can be marked as"
SET DIR("A",2)="'MATCH-0 PAYMENT' to remove it from the ERA AGING REPORT if no paper check or"
SET DIR("A",3)="EFT is expected to be received for this ERA"
+31 SET DIR("?")="Do NOT respond YES here unless you are sure there will be no EFT or paper"
SET DIR("?",1)=" check to be received for this 0-PAYMENT ERA"
+32 SET DIR("A")="Do you want to do this?: "
+33 SET DIR(0)="YA"
+34 DO ^DIR
KILL DIR
+35 IF $DATA(DTOUT)!$DATA(DUOUT)
SET RCQUIT=1
QUIT
+36 IF Y'=1
QUIT
+37 SET DIE="^RCY(344.4,"
SET DR=".09////3;.14////3"
SET DA=RCERA
DO ^DIE
SET RCUNM=1
End DoDot:3
if RCQUIT!RCUNM
QUIT
+38 ; PRCA*4.5*367 - Skip prompt for check number if the ERA is for a TDA
+39 IF 'RCUNM
IF $$HACERA^RCDPEU(RCERA)
Begin DoDot:3
+40 WRITE !!,"This ERA does NOT have a matching EFT"
+41 WRITE !,"ERA #",RCERA," (TRACE #"_RCTRACE_") matched to TDA ",RCTRACE
+42 SET DIR("A")="Has the TDA been received by FMS?: "
SET DIR("B")="YES"
+43 SET DIR(0)="YA"
DO ^DIR
KILL DIR
+44 IF $DATA(DTOUT)!$DATA(DUOUT)!'Y
SET RCQUIT=1
QUIT
+45 ;
+46 ; Null check number field but file date matched and USER
+47 SET DIE="^RCY(344.4,"
SET DA=RCERA
+48 SET DR=".13////@;.09////5;5.03///"_$$DT^XLFDT()_";5.04///"_$GET(DUZ)
+49 DO ^DIE
End DoDot:3
+50 IF '$TEST
IF 'RCUNM
Begin DoDot:3
+51 SET DIR("A",1)="This ERA does NOT have a matching EFT"
SET DIR("A")="Enter the number of the paper check you received for this ERA: "
SET DIR(0)="344.01,.07A"
+52 IF $PIECE(RC5,U,2)'=""
SET DIR("B")=$PIECE(RC5,U,2)
+53 IF $GET(DIR("B"))=""
IF $PIECE(RC0,U,2)'=""
SET DIR("B")=$PIECE(RC0,U,2)
+54 WRITE !
DO ^DIR
KILL DIR
+55 IF $DATA(DTOUT)!$DATA(DUOUT)!(Y="")
Begin DoDot:4
+56 SET DIR(0)="EA"
SET DIR("A",1)="There must be either a paper check or an EFT for this ERA"
SET DIR("A")="PRESS RETURN TO CONTINUE "
WRITE !!
DO ^DIR
KILL DIR
End DoDot:4
SET RCQUIT=1
QUIT
+57 SET RCDAT("CHECK#")=Y
+58 SET DIR(0)="344.01,.1O"
SET DIR("B")=$$FMTE^XLFDT($PIECE(RC0,U,4),2)
+59 WRITE !
DO ^DIR
KILL DIR
+60 IF $DATA(DTOUT)!$DATA(DUOUT)
SET RCQUIT=1
QUIT
+61 SET RCDAT("CHECKDT")=Y
+62 SET DIR(0)="344.01,.08O"
+63 WRITE !
DO ^DIR
KILL DIR
+64 IF $DATA(DTOUT)!$DATA(DUOUT)
SET RCQUIT=1
QUIT
+65 SET RCDAT("BANK")=Y
+66 SET DIR("A",1)="ERA #"_RCERA_" (TRACE #:"_$PIECE(RC0,U,2)_") matched to paper check "_RCDAT("CHECK#")
SET DIR("A")="Is this correct?: "
SET DIR(0)="YA"
SET DIR("B")="YES"
WRITE !
DO ^DIR
KILL DIR
+67 IF Y'=1
SET RCQUIT=1
QUIT
+68 SET DIE="^RCY(344.4,"
SET DA=RCERA
+69 ; PRCA*4.5*326 - Add date matched and user for check match
+70 SET DR=".13////"_RCDAT("CHECK#")_";.09////2;5.03///"_$$DT^XLFDT()_";5.04///"_$GET(DUZ)
+71 DO ^DIE
End DoDot:3
End DoDot:2
if RCQUIT
QUIT
End DoDot:1
if RCQUIT
GOTO DISPQ
+72 ;
+73 SET RCSCR=+$ORDER(^RCY(344.49,"B",RCERA,0))
+74 ; Build the entry in file 344.49
IF 'RCSCR
Begin DoDot:1
+75 IF RCSCR("NOEDIT")
Begin DoDot:2
+76 SET DIR("A")="NO worklist entry exists for this ERA - PRESS RETURN TO CONTINUE "
SET DIR(0)="EA"
WRITE !
DO ^DIR
KILL DIR
End DoDot:2
QUIT
+77 ;
+78 SET RCSCR=+$$ADDREC(RCERA,.RCDAT)
+79 IF RCSCR
Begin DoDot:2
+80 FOR X=1:1:6
LOCK +^RCY(344.4,RCSCR):5
if $TEST
QUIT
IF X=6
Begin DoDot:3
+81 SET DA=RCSCR
SET DIK="^RCY(344.49,"
DO ^DIK
SET RCSCR=0
+82 SET DIR(0)="EA"
SET DIR("A",1)="Another user has locked this entry - NEW RECORD NOT CREATED"
SET DIR("A")="PRESS RETURN TO CONTINUE "
WRITE !
DO ^DIR
KILL DIR
End DoDot:3
QUIT
+83 if 'RCSCR
QUIT
+84 ; prca*4.5*298 per patch requirements, keep code related to
+85 ; creating/maintaining batches but just remove from execution.
+86 ;D SETBATCH^RCDPEWLB(RCSCR) ; prca*4.5*298
+87 DO ADDLINES^RCDPEWLA(RCSCR)
+88 KILL ^TMP($JOB,"BATCHES")
End DoDot:2
if 'RCSCR
QUIT
End DoDot:1
+89 ;
+90 IF RCSCR
Begin DoDot:1
+91 ; prca*4.5*298 per patch requirements, keep code related to
+92 ; creating/maintaining batches but just remove from execution.
+93 ;Q:'$$BAT^RCDPEWL7(RCSCR)
+94 ;I 'RCSCR("NOEDIT"),'$G(^TMP("RCBATCH_SELECTED",$J)) L +^RCY(344.4,RCSCR):5 I '$T W !!,"Another user is currently editing this entry",! S DIR(0)="E" D ^DIR K DIR S RCSCR=0 Q
+95 IF 'RCSCR("NOEDIT")
LOCK +^RCY(344.4,RCSCR):5
IF '$TEST
WRITE !!,"Another user is currently editing this entry",!
SET DIR(0)="E"
DO ^DIR
KILL DIR
SET RCSCR=0
QUIT
+96 DO EN^VALM("RCDPE EOB WORKLIST")
End DoDot:1
if 'RCSCR
GOTO DISPQ
+97 ;
DISPQ LOCK -^RCY(344.4,+$GET(RCERA))
+1 QUIT
+2 ;
INIT ; -- set up initial variables
+1 NEW RCQUIT,RCREV
+2 SET VALMCNT=0
SET VALMBG=1
+3 SET RCQUIT=0
+4 ; PRCA*4.5*298: Removed functionality for retrieving/storing user preferences in file #344.49
+5 ; and replaced with the use of parameters handled by PARAMS^RCDPEWLA.
+6 DO PARAMS^RCDPEWLA("MO")
IF $GET(RCQUIT)
SET VALMQUIT=1
QUIT
+7 DO BLD^RCDPEWL1($GET(^TMP($JOB,"RC_SORTPARM")))
+8 QUIT
+9 ;
CV ; Change View Action for EEOB Worklist
+1 DO FULL^VALM1
+2 DO PARAMS^RCDPEWLA("CV")
+3 DO BLD^RCDPEWL1($GET(^TMP($JOB,"RC_SORTPARM")))
DO HDR
+4 SET VALMBCK="R"
SET VALMBG=1
+5 QUIT
+6 ;
ADDREC(RCERA,RCDAT) ; Add a record to file 344.49
+1 ; RCERA = ien of file 344.4
+2 ; RCDAT = array containing additional data to add to new entry
+3 ;
+4 NEW DIC,DLAYGO,X,Y,DO,DD,RCY,DINUM
+5 SET RCY=0
SET DIC("DR")=""
+6 SET DIC(0)="L"
SET DLAYGO=344.49
SET (DINUM,X)=RCERA
SET DIC="^RCY(344.49,"
+7 IF $GET(RCDAT("CHECK#"))'=""
SET DIC("DR")=".04////"_RCDAT("CHECK#")_";"
+8 IF $GET(RCDAT("CHECKDT"))'=""
SET DIC("DR")=DIC("DR")_".05////"_RCDAT("CHECKDT")_";"
+9 IF $GET(RCDAT("BANK"))'=""
SET DIC("DR")=DIC("DR")_".06////"_RCDAT("BANK")_";"
+10 KILL DD,DO
DO FILE^DICN
KILL DIC
+11 IF Y>0
SET RCY=+Y
+12 QUIT RCY
+13 ;
HDR ; Creates header lines for the selected ERA display
+1 ; PRCA*4.5*349 - Reorganized NEW list & added XX temp. variable
+2 ; PRCA*4.5*326 - RCARC added
NEW I,RCARC,RCEEOBPU,RCSORTBY,RC,RC4,RC5,X,XX,Z
+3 ; PRCA*4.5*349 - Moved to top of subroutine
SET RCSORTBY=$GET(^TMP($JOB,"RC_SORTPARM"))
+4 ; PRCA*4.5*349 - Moved to top of subroutine
SET RCEEOBPU=$GET(^TMP($JOB,"RC_EEOBPOST"))
+5 ; PRCA*4.5*349 - Add a line to the header
FOR I=1:1:6
SET VALMHDR(I)=""
+6 IF '$GET(RCSCR)
SET VALMQUIT=1
QUIT
+7 SET RC=$GET(^RCY(344.4,+RCSCR,0))
SET RC5=$GET(^RCY(344.4,+RCSCR,5))
+8 ;prca*4.5*298
SET RC4=$GET(^RCY(344.4,+RCSCR,4))
+9 ; PRCA*4.5*349 - Begin Modified Code Block - Reorder header information
+10 SET VALMHDR(1)="ERA Entry #: "_$PIECE(RC,U)
+11 SET $EXTRACT(VALMHDR(1),43)="Total Amount Paid: "_$JUSTIFY(+$PIECE(RC,U,5),"",2)
+12 SET XX=$SELECT(RCSORTBY="F":"ZERO-PAYMENTS FIRST",RCSORTBY="L":"ZERO-PAYMENTS LAST",1:"NO SORT ORDER")
+13 SET VALMHDR(2)="Payment Order: "_XX
+14 SET XX=$SELECT(RCEEOBPU="P":"POSTED EEOBs ONLY",RCEEOBPU="U":"UNPOSTED EEOBs ONLY",1:"ALL EEOBS")
+15 SET $EXTRACT(VALMHDR(2),39)="Disp Auto-Posted ERAs: "_XX
+16 ; PRCA*4.5*349 - End Modified Code Block
+17 SET Z=+$ORDER(^RCY(344.31,"AERA",+RCSCR,0))
+18 ; PRCA*4.5*326
IF Z
SET VALMHDR(3)="EFT #/TRACE #: "_$$GET1^DIQ(344.31,Z_",",.01,"E")_"/"_$EXTRACT($PIECE(RC,U,2),1,40)
+19 IF 'Z
IF $PIECE(RC5,U,2)'=""
SET VALMHDR(3)="PAPER CHECK #: "_$PIECE(RC5,U,2)
+20 ; PRCA*4.5*349 - Give all of fourth line to payer name/id
SET VALMHDR(4)=$PIECE(RC,U,6)_"/"_$PIECE(RC,U,3)
+21 ; prca*4.5*298 per patch requirements, keep code related to creating/maintaining
+22 ; batches but just remove from execution.
+23 ;I $G(^TMP("RCBATCH_SELECTED",$J)) D
+24 ;. N Z,Z0
+25 ;. S Z=+$G(^TMP("RCBATCH_SELECTED",$J)),Z0=$G(^RCY(344.49,RCSCR,3,Z,0))
+26 ;. S RCT=RCT+1,VALMHDR(RCT)="BATCH: "_Z_" "_$P(Z0,U,2)_" "_$$EXTERNAL^DILFD(344.493,.03,"",$P(Z0,U,3))
+27 IF $GET(RCSCR("NOEDIT"))
Begin DoDot:1
+28 ; PRCA*4.5*349 - Shift down a line
SET VALMHDR(5)="*** RECEIPT(S) ALREADY CREATED *** ("_$$RECEIPTS(RCSCR)_")"
End DoDot:1
+29 ;AUTO-POST STATUS (344.4, 4.02); if not null, then the selected ERA is designated for auto-post
IF $PIECE(RC4,U,2)]""
Begin DoDot:1
+30 ; Setting the Auto-Post info in the header
+31 NEW AUTOPSTS
+32 SET AUTOPSTS="Auto-Post Status: "_$SELECT($PIECE(RC4,U,2)=0:"Unposted",$PIECE(RC4,U,2)=1:"Partial",1:"Complete")
+33 ; PRCA*4.5*318
SET AUTOPSTS=AUTOPSTS_" Auto-Post Date: "_$SELECT($PIECE(RC4,U,2)>0:$$FMTE^XLFDT($PIECE(RC4,U)),1:"")
+34 ; PRCA*4.5*349 - Shift down a line
SET VALMHDR(6)=AUTOPSTS
End DoDot:1
+35 ; BEGIN PRCA*4,.5*326
+36 ; Check for auto-decrease CARCs if this is a denial ERA
+37 IF $$GET1^DIQ(344.4,+RCSCR,.15)="NON"
Begin DoDot:1
+38 NEW RCARC
+39 SET RCARC=$$WLH^RCDPEWLZ(+RCSCR)
+40 ; PRCA*4.5*349 - Shift down a line
if RCARC]""
SET VALMHDR(5)=RCARC
End DoDot:1
+41 ; ENd PRCA*4,.5*326
+42 ; Displaying Current View (PRCA*4.5*298)
+43 ; PRCA*4.5*349 - Moved to top of routine and restructured
+44 QUIT
+45 ;
FNL ; -- Clean up list
+1 KILL ^TMP("RCDPE-EOB_WLDX",$JOB),^TMP("RCDPE-EOB_WL",$JOB),^TMP($JOB,"RC_SORTPARM"),^TMP($JOB,"RC_BILL")
+2 DO CLEAN^VALM10
DO CLEAR^VALM1
+3 KILL RCFASTXT
+4 QUIT
+5 ;
SEL(RCDA) ; Select entry from worklist scratch pad screen
+1 ; RCDA = array returned if selections made
+2 ; RCDA(n)=ien of entry(s) in file 344.41
+3 ; where n = the line # selected
+4 KILL RCDA
+5 NEW VALMY
+6 DO EN^VALM2($GET(XQORNOD(0)),"S")
+7 SET RCDA=0
FOR
SET RCDA=$ORDER(VALMY(RCDA))
if 'RCDA
QUIT
SET RCDA(RCDA)=$PIECE($GET(^TMP("RCDPE-EOB_WLDX",$JOB,RCDA)),U,2,5)
+8 QUIT
+9 ;
NOEDIT ; Display no edit allowed if receipt exists
+1 NEW DIR,X,Y
+2 SET DIR(0)="EA"
SET DIR("A",1)="This action is NOT available since the ERA already has a receipt."
+3 SET DIR("A")="PRESS RETURN TO CONTINUE "
+4 WRITE !
DO ^DIR
KILL DIR
WRITE !
+5 QUIT
+6 ;
NOBATCH ; Display action not allowed if working at batch level not the ERA level
+1 NEW DIR,X,Y
+2 SET DIR(0)="EA"
SET DIR("A",1)="This action is NOT valid when in a batch within the ERA."
+3 SET DIR("A")="PRESS RETURN TO CONTINUE "
+4 WRITE !
DO ^DIR
KILL DIR
WRITE !
+5 QUIT
+6 ;
RECEIPTS(RCSCR) ; get list of receipts for the ERA
+1 ; Input: RCSCR: ERA File (#344.4) IEN
+2 ; Output: "" - No Receipt / REC# - One Receipt / REC#A-REC#Z - Range of Receipts
+3 NEW X,RECEIPT,CTR,RC0
+4 KILL ARRAY,STR
+5 SET X=0
SET CTR=1
SET (STR,RECEIPT)=""
+6 FOR
SET X=$ORDER(^RCY(344.4,RCSCR,1,"RECEIPT",X))
if 'X
QUIT
Begin DoDot:1
+7 ; get external form of receipt
if X
SET RECEIPT=$PIECE($GET(^RCY(344,X,0)),U)
+8 IF RECEIPT]""
SET ARRAY(RECEIPT)=""
End DoDot:1
+9 ; array of receipts does not exist so this could be a non auto-posted ERA; so only 1 receipt will be assigned; retrieve at 344.4, .08
+10 IF '$DATA(ARRAY)
IF $$GET1^DIQ(344.4,RCSCR,.08)'=""
SET ARRAY($$GET1^DIQ(344.4,RCSCR,.08))=""
+11 ;
+12 IF $ORDER(ARRAY($ORDER(ARRAY(""))))'=""
Begin DoDot:1
+13 SET STR=$ORDER(ARRAY(""))_"-"_$ORDER(ARRAY(""),-1)
End DoDot:1
+14 IF '$TEST
Begin DoDot:1
+15 SET STR=$ORDER(ARRAY(""))
End DoDot:1
+16 QUIT STR