RCDPEWL2 ;ALB/TMK/KML - ELECTRONIC EOB WORKLIST ACTIONS ;7/7/10 6:43pm
 ;;4.5;Accounts Receivable;**173,208,269,298,303,318**;Mar 20, 1995;Build 37
 ;;Per VA Directive 6402, this routine should not be modified.
 ; IA for call to OPTION^IBJTLA = 4121
 ; IA for call to ASK^IBRREL = 306
 ; IA call for EN1AR^IBECEA = 4047
 ; IA call for MAIN^IBOHPT1 = 4048
 ; IA for read access to ^IBM(361.1 = 4051
 Q
 ;
VP(RCSCR,RCDAZ) ; View/Print EOB Detail data from file 361.1
 ; RCSCR = ien of entry in file 344.4
 ; RCDAZ = array subscripted by a sequential # and
 ;   RCDAZ(n) = one of 3 formats
 ;     ERA level adjustments
 ;          ADJ^the ien of the adj in 344.42
 ;     EOB exists in file 361.1:
 ;          ien of line in 344.41^ien of 361.1
 ;     EOB doesn't exist in 361.1:
 ;          ien of line in 344.41^-1
 ;
 N RCDA,%ZIS,ZTRTN,ZTSAVE,ZTDESC,POP
 ; Ask device
 S %ZIS="QM" D ^%ZIS G:POP VPQ
 I $D(IO("Q")) D  G VPQ
 . S ZTRTN="VPOUT^RCDPEWL2",ZTDESC="AR - Print EEOB Detail from Worklist"
 . S ZTSAVE("RC*")=""
 . D ^%ZTLOAD
 . W !!,$S($D(ZTSK):"Your task number "_ZTSK_" has been queued.",1:"Unable to queue this job.")
 . K ZTSK,IO("Q") D HOME^%ZIS
 U IO
 ;
VPOUT ; Entrypoint for queued job
 N Z,Z0,RCSTOP,RCPG,RCREF,RC3611,RCDASH,RCDT,RC1,RC3444,RCZ,RCZ0
 ;
 K ^TMP("PRCA_EOB",$J),^TMP("PRCA_EOB1",$J)
 S RCDT=DT,(RCSTOP,RCPG)=0,RC3444=RCSCR,RCDASH="",$P(RCDASH,"-",71)=""
 I '$O(RCDAZ(0)) G VPQ
 S RCZ=0 F  S RCZ=$O(RCDAZ(RCZ)) Q:'RCZ  D
 . S RCREF=$P(RCDAZ(RCZ),U),RC3611=+$P(RCDAZ(RCZ),U,2)
 . K ^TMP("PRCA_EOB1",$J,RC3611)
 . ;
 . I $E(RCREF,1,3)["ADJ" D  Q
 .. ;Display ERA level adj
 .. S RCZ0=$G(^RCY(344.4,RCSCR,2,RC3611,0))
 .. S ^TMP("PRCA_EOB",$J,"ADJ",1)="ERA LEVEL ADJUSTMENT #"_RC3611
 .. S ^TMP("PRCA_EOB",$J,"ADJ",2)="   ADJUSTMENT REFERENCE #: "_$P(RCZ0,U)
 .. S ^TMP("PRCA_EOB",$J,"ADJ",3)="   ADJUSTMENT REASON CODE: "_$P(RCZ0,U,2)
 .. S ^TMP("PRCA_EOB",$J,"ADJ",4)="        ADJUSTMENT AMOUNT: "_$J(+$P(RCZ0,U,3),"",2)
 .. S ^TMP("PRCA_EOB",$J,"ADJ",5)=RCDASH
 . ;
 . I $P(RCDAZ(RCZ),U,2)'>0 D  Q
 .. ;Display formatted raw data - no EOB data in 361.1
 .. K ^TMP($J,"RC_SUMRAW")
 .. D DISP^RCDPESR0("^RCY(344.4,"_RCSCR_",1,"_+RCDAZ(RCZ)_",1)","^TMP($J,""RC_SUMRAW"")",1,"^TMP(""PRCA_EOB"",$J,0)")
 .. S ^TMP("PRCA_EOB1",$J,RC3611,1)="CLAIM #: "_$$BILLREF^RCDPESR0(RCSCR,+RCDAZ(RCZ))_"*** NOT IDENTIFIED IN A/R ****"_$S($P($G(^RCY(344.4,RCSCR,1,+RCDAZ(RCZ),0)),U,14):" (REVERSAL)",1:"")
 .. K ^TMP($J,"RC_SUMRAW")
 .. S ^TMP("PRCA_EOB",$J,+$O(^TMP("PRCA_EOB",$J,""),-1)+1)=RCDASH
 . ;
 . K ^TMP("PRCA_EOB1",$J,RC3611)
 . S ^TMP("PRCA_EOB1",$J,RC3611,1)="CLAIM #: "_$$BILLREF^RCDPESR0(RCSCR,+RCDAZ(RCZ))_$S($P($G(^RCY(344.4,RCSCR,1,+RCDAZ(RCZ),0)),U,14):" (REVERSAL)",1:"")
 . D GETEOB^IBCECSA6(RC3611,2)
 . I $O(^IBM(361.1,RC3611,"ERR",0)) D GETERR^RCDPEDS(RC3611,+$O(^TMP("PRCA_EOB",$J,RC3611," "),-1)) ; get filing errors
 . S ^TMP("PRCA_EOB",$J,+$O(^TMP("PRCA_EOB",$J,""),-1)+1)=RCDASH
 . ;
 S RC3611="" F  S RC3611=$O(^TMP("PRCA_EOB",$J,RC3611)) Q:RC3611=""!RCSTOP  D
 . S RC1=1
 . S Z0=0 F  S Z0=$O(^TMP("PRCA_EOB",$J,RC3611,Z0)) Q:'Z0  D  Q:RCSTOP
 .. I $D(ZTQUEUED),$$S^%ZTLOAD S (RCSTOP,ZTSTOP)=1 K ZTREQ I +$G(RCPG) W !,"***TASK STOPPED BY USER***" Q
 .. I 'RCPG!(($Y+5)>IOSL) D  I RCSTOP Q
 ... D:RCPG ASK(.RCSTOP) I RCSTOP Q
 ... D RHDR(RCSCR,RCDT,.RCPG)
 .. I RC1 W !!,$G(^TMP("PRCA_EOB1",$J,RC3611,1)) S RC1=0
 .. W !,$G(^TMP("PRCA_EOB",$J,RC3611,Z0))
 I 'RCSTOP,RCPG D ASK(.RCSTOP)
 ;
 I $D(ZTQUEUED) S ZTREQ="@"
 I '$D(ZTQUEUED) D ^%ZISC
 ;
VPQ K ^TMP("PRCA_EOB",$J),^TMP("PRCA_EOB1",$J)
 S VALMBCK="R"
 Q
 ;
TPJI ; Jump to Third Party Joint Inquiry for the claim
 D FULL^VALM1
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G TPJIQ
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D OPTION^IBJTLA ; IA 4121
 D RESTMP^RCDPEWL6
 ;
TPJIQ S VALMBCK="R"
 Q
 ;
FAP ; Jump to Full Account Profile
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G FAPQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D EN^PRCAAPR("ALL"),RET K DTOUT
 D RESTMP^RCDPEWL6
 ;
FAPQ S VALMBCK="R"
 Q
 ;
RELHOLD ; Jump to Release Hold function
 N DIR,X,Y,RCDA,RCSCR
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G RELHQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D ^IBRREL,RET ; IA = 306
 D RESTMP^RCDPEWL6
 ;
RELHQ S VALMBCK="R"
 Q
 ;
CMRPT ; Jump to claims matching report
 N DIR,X,Y,RCIBY
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G CMQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D ^RCDPRTP,RET
 D RESTMP^RCDPEWL6
 ;
CMQ S VALMBCK="R"
 Q
 ;
CHGMNT ; Jump to charge maintenance
 N DIR,X,Y,RCSCR
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G CHMQ
 ;
 I $D(^XUSEC("PRCA EDI LOCKBOX CHARGES",DUZ)) D
 . M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 . D EN1AR^IBECEA ; IA 4047
 . D RESTMP^RCDPEWL6
 E  D
 . S DIR(0)="EA",DIR("A",1)="YOU DO NOT HAVE THE KEY NEEDED TO ACCESS THIS OPTION.",DIR("A")="PRESS RETURN TO CONTINUE " W ! D ^DIR K DIR
 ;
 S VALMBCK="R"
CHMQ Q
 ;
LSTHLD ; Jump to list current/on hold charges
 N DIR,X,Y,RCIBY
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G LHQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D MAIN^IBOHPT1,RET ; IA 4048
 D RESTMP^RCDPEWL6
 ;
 S VALMBCK="R"
LHQ Q
 ;
REEST ;EP - Protocol action - RCDPE EOB WORKLIST REESTABLISH
 ; Jump to re-establish bill
 N PRC
 D FULL^VALM1
 I '$D(^XUSEC("RCDPEAR",DUZ)) D  Q  ; PRCA*4.5*318 Added security key check
 . W !!,"This action can only be taken by users that have the RCDPEAR security key.",!
 . D PAUSE^VALM1
 . S VALMBCK="R"
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G REESTQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D ^PRCAWREA K DTOUT
 D RESTMP^RCDPEWL6
 D RET
 ;
REESTQ S VALMBCK="R"
 Q
 ;
BILLCOM ; Jump to bill comment log
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G BILLCOMQ
 ;
 M ^TMP("RC_SAVE_TMP",$J)=^TMP($J)
 D ^PRCACM K DTOUT
 D RET
 D RESTMP^RCDPEWL6
 ;
BILLCOMQ S VALMBCK="R"
 Q
 ;
ASK(RCSTOP) ;
 I $E(IOST,1,2)'["C-" Q
 N DIR,DIROUT,DIRUT,DTOUT,DUOUT
 S DIR(0)="E" W ! D ^DIR
 I ($D(DIRUT))!($D(DUOUT)) S RCSTOP=1 Q
 Q
 ;
RHDR(RCSCR,RCDT,RCPG) ;Prints EOB detail report heading
 N Z
 S Z=$G(^RCY(344.4,RCSCR,0))
 I RCPG!($E(IOST,1,2)="C-") W @IOF,*13
 S RCPG=RCPG+1
 W !,?15,"EDI LOCKBOX EEOB DETAIL FROM WORKLIST",?55,$$FMTE^XLFDT(RCDT,2),?70,"Page: ",RCPG
 ; HIPAA 5010 - TRACE # increased in length from 30 to 50 characters therefore it needs to be displayed on its own line
 W !!,$E(" ERA NUMBER: "_RCSCR_$J("",25),1,25)_"ERA DATE: "_$$FMTE^XLFDT($P(Z,U,4)),!,"INS COMPANY: "_$P(Z,U,6)_"/"_$P(Z,U,3)
 W !,"ERA TRACE #: "_$P(Z,U,2)
 W !,$TR($J("",IOM)," ","=")
 Q
 ;
RET ; Pause before returning to list
 N DIR,X,Y
 S DIR(0)="EA",DIR("A")="RETURN TO CONTINUE" W ! D ^DIR K DIR
 Q
 ;
NOWAY ; Msg for unidentified bill
 N DIR,X,Y
 S DIR(0)="EA",DIR("A",1)="THIS BILL IS NOT IDENTIFIED IN YOUR A/R",DIR("A")="THIS FUNCTION IS NOT AVAILABLE ... RETURN TO CONTINUE " W ! D ^DIR K DIR
 Q
 ;
NOWAY1 ; Msg for ERA level Adjustment 
 N DIR,X,Y
 S DIR(0)="EA",DIR("A",1)="THIS IS AN ERA LEVEL ADJUSTMENT - NO DATA EXISTS FOR IT IN YOUR AR",DIR("A")="PRESS ENTER TO CONTINUE" W ! D ^DIR K DIR
 Q
 ;
SET1(RCIBY,RCDA,RCDA1,RC3444,RCREF) ; Set up variables for receipt/ERA
 S RCDA1=+RCIBY("IBEOB"),RCDA=+$P(RCIBY("IBEOB"),U,2),RC3444=+$P(RCIBY("IBEOB"),U,3),RCREF=+$P(RCIBY("IBEOB"),U,4)
 Q
 ;
CHKFILE ; If the user leaves the split line screen without filing - double check
 ; that they didn't want to file it.
 N DIR,X,Y
 D FULL^VALM1 W !!
 I $G(^TMP("RCDPE_EOB_SPLIT_OK",$J)),$O(RCSPLIT(0)) D
 . S DIR(0)="YA",DIR("B")="NO",DIR("A",1)="YOU HAVE NOT FILED THESE CHANGES",DIR("A")="DO YOU WANT TO FILE THEM BEFORE YOU EXIT?: " D ^DIR K DIR
 . I Y=1 D FILESP^RCDPEWL8
 K ^TMP($J,"RCDPE_SPLIT_FILE")
 Q
 ;
EDITSP ; Action that edits the split lines
 ; RCLINE,RCSCR must already exist
 N DA,RCEDIT,RCDONE,RCDEF,RCSAVE,RCSAVE1
 D FULL^VALM1
 ;
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G EDITQ
 ;
 D SEL(.RCEDIT)
 G:'RCEDIT EDITQ
 S RCDONE=0
 M RCSAVE=RCSPLIT,RCSAVE1=RCDIR S RCDEF=$G(RCSPLIT(RCEDIT)),RCSPLIT=RCEDIT
 D EDIT^RCDPEWL3(RCSCR,RCLINE,.RCDIR,.RCSPLIT,RCDEF,.RCDONE)
 I '$D(RCSPLIT(RCSAVE)) K RCSPLIT M RCSPLIT=RCSAVE K RCDIR M RCDIR=RCSAVE1
 D INIT^RCDPEWL3
EDITQ S VALMBCK="R"
 Q
 ;
PREOB ; Print/View EOB detail
 N RCDA,RCDAZ,Z,Z0
 D FULL^VALM1
 D SEL^RCDPEWL(.RCDA)
 S RCDA=+$O(RCDA(0)),RCDA=$G(RCDA(RCDA))
 I RCDA="" G PREOBQ
 S RCDA=$P($G(^RCY(344.49,RCSCR,1,+RCDA,0)),U,9)
 F RCDAZ=1:1:$L(RCDA,",") S RCDAZ(RCDAZ)=$P(RCDA,",",RCDAZ)
 S Z=0 F  S Z=$O(RCDAZ(Z)) Q:'Z  D
 . ;
 . S Z0=RCDAZ(Z)
 . I $E(Z0,1,3)="ADJ" D  Q
 .. I $G(^RCY(344.4,RCSCR,2,+$P(Z0,"ADJ",2),0))'="" S RCDAZ(Z)="ADJ^"_+$P(Z0,"ADJ",2)
 . ;
 . S Z0=$G(^RCY(344.4,RCSCR,1,+Z0,0))
 . S RCDAZ(Z)=+Z0_U_$S($P(Z0,U,2):$P(Z0,U,2),1:-1) Q
 ;
 D VP(RCSCR,.RCDAZ)
 ;
PREOBQ S VALMBCK="R"
 Q
 ;
RESEARCH ; Invoke the research menu
 ;
 K ^TMP($J,"RC_VALMBG")
 S ^TMP($J,"RC_VALMBG")=$G(VALMBG)
 D FULL^VALM1
 I $G(RCSCR("NOEDIT"))=2 D NOTAV G RQ
 ;
 D EN^VALM("RCDPE EOB RESEARCH")
 ;
RQ K ^TMP($J,"RC_VALMBG")
 Q
 ;
SEL(RCEDIT) ;
 N VALMY
 D EN^VALM2($G(XQORNOD(0)),"S")
 S RCEDIT=+$O(VALMY(0))
 Q
 ;
EXIT ; Exits back to ERA menu actions from research
 S VALMBCK="Q"
 Q
 ;
WL(RCRCPT) ; Entrypoint to the ERA Worklist from Receipt Processing
 ;RCRCPT = ien of entry in file 344
 N DIR,X,Y,Z
 D FULL^VALM1
 ; if not at ERA summary level (344.4,.08), get a receipt match using the cross-reference at the ERA detail (RECEIPT (344.41, .25) 
 S Z=$S($O(^RCY(344.4,"AREC",RCRCPT,0)):+$O(^RCY(344.4,"AREC",RCRCPT,0)),1:+$O(^RCY(344.4,"H",RCRCPT,0)))
 I 'Z D  G WLQ
 . S DIR("A")="THIS RECEIPT IS NOT ASSOCIATED WITH AN ERA RECORD - PRESS RETURN TO CONTINUE ",DIR(0)="EA" W ! D ^DIR K DIR
 ;
 I '$D(^RCY(344.49,Z,0)) D  G WLQ
 . S DIR("A")="NO ERA WORKLIST SCRATCHPAD EXISTS FOR THIS ERA - PRESS RETURN TO CONTINUE ",DIR(0)="EA" W ! D ^DIR K DIR
 ;
 D DISP^RCDPEWL(Z,2)
 ;
WLQ S VALMBCK="R"
 Q
 ;
NOTAV ; Display not available msg
 N DIR,X,Y
 ;
 S DIR(0)="EA",DIR("A")="THIS ACTION NOT CURRENTLY AVAILABLE - PRESS RETURN TO CONTINUE " W ! D ^DIR K DIR
 S VALMBCK="R"
 Q
 ;
 ;PRCA*4.5*303 - Add jump to ECME Information from the ERA Worklist Research
 ; IA 1992 - BILL/CLAIMS file (#399)
 ; RCIENS exists before this code is called if coming from APAR
 ; RCERA, RCSCR are assumed to exist before this code is called
GOECME ; Select an EEOB and then jump to the [IBJT ECME RESP INFO SCREEN]
 N RCDA,RCDAZ,RCDG,Z,Z0,IBIFN,DFN,RCAPAR
 S RCAPAR=0
 I '$D(RCSCR) S RCAPAR=1,(RCERA,RCSCR)=$P($G(RCIENS),U,1) ; From APAR RCSCR & RCERA not defined
 G:($G(RCERA)="")!($G(RCSCR)="") GOEBQ
 D FULL^VALM1
 D SEL^RCDPEWL(.RCDA)
 S RCDA=+$O(RCDA(0)),RCDA=$G(RCDA(RCDA))
 I RCDA="" G GOEBQ
 S RCDA=$P($G(^RCY(344.49,RCSCR,1,+RCDA,0)),U,9)
 S IBIFN=$P($G(^RCY(344.4,RCERA,1,RCDA,0)),U,2) S:+IBIFN'=0 RCDG=$P($G(^IBM(361.1,IBIFN,0)),U,1)
 I $G(RCDG)="" W !!,"Problem with Bill IEN: "_IBIFN_", ERA: "_RCERA_" Please report this issue." D PAUSE^VALM1 G GOEBQ
 S DFN=$P($G(^DGCR(399,RCDG,0)),U,2)
 I RCAPAR S IBIFN=RCDG
 I '$$ISRX^IBCEF1(IBIFN) W !!,"Not available. This is not a Pharmacy Claim." D PAUSE^VALM1 G GOEBQ
 I $$ECME^IBTRE(IBIFN)="" W !!,"Not available. This is a Pharmacy Claim, but not an ECME Claim." D PAUSE^VALM1 G GOEBQ
 D EN^VALM("IBJT ECME RESP INFO")
 ;
GOEBQ S VALMBCK="R"
 I RCAPAR K RCSCR,RCERA ; Clean up if we are in APAR
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPEWL2   11500     printed  Sep 23, 2025@19:21:48                                                                                                                                                                                                   Page 2
RCDPEWL2  ;ALB/TMK/KML - ELECTRONIC EOB WORKLIST ACTIONS ;7/7/10 6:43pm
 +1       ;;4.5;Accounts Receivable;**173,208,269,298,303,318**;Mar 20, 1995;Build 37
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ; IA for call to OPTION^IBJTLA = 4121
 +4       ; IA for call to ASK^IBRREL = 306
 +5       ; IA call for EN1AR^IBECEA = 4047
 +6       ; IA call for MAIN^IBOHPT1 = 4048
 +7       ; IA for read access to ^IBM(361.1 = 4051
 +8        QUIT 
 +9       ;
VP(RCSCR,RCDAZ) ; View/Print EOB Detail data from file 361.1
 +1       ; RCSCR = ien of entry in file 344.4
 +2       ; RCDAZ = array subscripted by a sequential # and
 +3       ;   RCDAZ(n) = one of 3 formats
 +4       ;     ERA level adjustments
 +5       ;          ADJ^the ien of the adj in 344.42
 +6       ;     EOB exists in file 361.1:
 +7       ;          ien of line in 344.41^ien of 361.1
 +8       ;     EOB doesn't exist in 361.1:
 +9       ;          ien of line in 344.41^-1
 +10      ;
 +11       NEW RCDA,%ZIS,ZTRTN,ZTSAVE,ZTDESC,POP
 +12      ; Ask device
 +13       SET %ZIS="QM"
           DO ^%ZIS
           if POP
               GOTO VPQ
 +14       IF $DATA(IO("Q"))
               Begin DoDot:1
 +15               SET ZTRTN="VPOUT^RCDPEWL2"
                   SET ZTDESC="AR - Print EEOB Detail from Worklist"
 +16               SET ZTSAVE("RC*")=""
 +17               DO ^%ZTLOAD
 +18               WRITE !!,$SELECT($DATA(ZTSK):"Your task number "_ZTSK_" has been queued.",1:"Unable to queue this job.")
 +19               KILL ZTSK,IO("Q")
                   DO HOME^%ZIS
               End DoDot:1
               GOTO VPQ
 +20       USE IO
 +21      ;
VPOUT     ; Entrypoint for queued job
 +1        NEW Z,Z0,RCSTOP,RCPG,RCREF,RC3611,RCDASH,RCDT,RC1,RC3444,RCZ,RCZ0
 +2       ;
 +3        KILL ^TMP("PRCA_EOB",$JOB),^TMP("PRCA_EOB1",$JOB)
 +4        SET RCDT=DT
           SET (RCSTOP,RCPG)=0
           SET RC3444=RCSCR
           SET RCDASH=""
           SET $PIECE(RCDASH,"-",71)=""
 +5        IF '$ORDER(RCDAZ(0))
               GOTO VPQ
 +6        SET RCZ=0
           FOR 
               SET RCZ=$ORDER(RCDAZ(RCZ))
               if 'RCZ
                   QUIT 
               Begin DoDot:1
 +7                SET RCREF=$PIECE(RCDAZ(RCZ),U)
                   SET RC3611=+$PIECE(RCDAZ(RCZ),U,2)
 +8                KILL ^TMP("PRCA_EOB1",$JOB,RC3611)
 +9       ;
 +10               IF $EXTRACT(RCREF,1,3)["ADJ"
                       Begin DoDot:2
 +11      ;Display ERA level adj
 +12                       SET RCZ0=$GET(^RCY(344.4,RCSCR,2,RC3611,0))
 +13                       SET ^TMP("PRCA_EOB",$JOB,"ADJ",1)="ERA LEVEL ADJUSTMENT #"_RC3611
 +14                       SET ^TMP("PRCA_EOB",$JOB,"ADJ",2)="   ADJUSTMENT REFERENCE #: "_$PIECE(RCZ0,U)
 +15                       SET ^TMP("PRCA_EOB",$JOB,"ADJ",3)="   ADJUSTMENT REASON CODE: "_$PIECE(RCZ0,U,2)
 +16                       SET ^TMP("PRCA_EOB",$JOB,"ADJ",4)="        ADJUSTMENT AMOUNT: "_$JUSTIFY(+$PIECE(RCZ0,U,3),"",2)
 +17                       SET ^TMP("PRCA_EOB",$JOB,"ADJ",5)=RCDASH
                       End DoDot:2
                       QUIT 
 +18      ;
 +19               IF $PIECE(RCDAZ(RCZ),U,2)'>0
                       Begin DoDot:2
 +20      ;Display formatted raw data - no EOB data in 361.1
 +21                       KILL ^TMP($JOB,"RC_SUMRAW")
 +22                       DO DISP^RCDPESR0("^RCY(344.4,"_RCSCR_",1,"_+RCDAZ(RCZ)_",1)","^TMP($J,""RC_SUMRAW"")",1,"^TMP(""PRCA_EOB"",$J,0)")
 +23                       SET ^TMP("PRCA_EOB1",$JOB,RC3611,1)="CLAIM #: "_$$BILLREF^RCDPESR0(RCSCR,+RCDAZ(RCZ))_"*** NOT IDENTIFIED IN A/R ****"_$SELECT($PIECE($GET(^RCY(344.4,RCSCR,1,+RCDAZ(RCZ),0)),U,14):" (REVERSAL)",1:"")
 +24                       KILL ^TMP($JOB,"RC_SUMRAW")
 +25                       SET ^TMP("PRCA_EOB",$JOB,+$ORDER(^TMP("PRCA_EOB",$JOB,""),-1)+1)=RCDASH
                       End DoDot:2
                       QUIT 
 +26      ;
 +27               KILL ^TMP("PRCA_EOB1",$JOB,RC3611)
 +28               SET ^TMP("PRCA_EOB1",$JOB,RC3611,1)="CLAIM #: "_$$BILLREF^RCDPESR0(RCSCR,+RCDAZ(RCZ))_$SELECT($PIECE($GET(^RCY(344.4,RCSCR,1,+RCDAZ(RCZ),0)),U,14):" (REVERSAL)",1:"")
 +29               DO GETEOB^IBCECSA6(RC3611,2)
 +30      ; get filing errors
                   IF $ORDER(^IBM(361.1,RC3611,"ERR",0))
                       DO GETERR^RCDPEDS(RC3611,+$ORDER(^TMP("PRCA_EOB",$JOB,RC3611," "),-1))
 +31               SET ^TMP("PRCA_EOB",$JOB,+$ORDER(^TMP("PRCA_EOB",$JOB,""),-1)+1)=RCDASH
 +32      ;
               End DoDot:1
 +33       SET RC3611=""
           FOR 
               SET RC3611=$ORDER(^TMP("PRCA_EOB",$JOB,RC3611))
               if RC3611=""!RCSTOP
                   QUIT 
               Begin DoDot:1
 +34               SET RC1=1
 +35               SET Z0=0
                   FOR 
                       SET Z0=$ORDER(^TMP("PRCA_EOB",$JOB,RC3611,Z0))
                       if 'Z0
                           QUIT 
                       Begin DoDot:2
 +36                       IF $DATA(ZTQUEUED)
                               IF $$S^%ZTLOAD
                                   SET (RCSTOP,ZTSTOP)=1
                                   KILL ZTREQ
                                   IF +$GET(RCPG)
                                       WRITE !,"***TASK STOPPED BY USER***"
                                       QUIT 
 +37                       IF 'RCPG!(($Y+5)>IOSL)
                               Begin DoDot:3
 +38                               if RCPG
                                       DO ASK(.RCSTOP)
                                   IF RCSTOP
                                       QUIT 
 +39                               DO RHDR(RCSCR,RCDT,.RCPG)
                               End DoDot:3
                               IF RCSTOP
                                   QUIT 
 +40                       IF RC1
                               WRITE !!,$GET(^TMP("PRCA_EOB1",$JOB,RC3611,1))
                               SET RC1=0
 +41                       WRITE !,$GET(^TMP("PRCA_EOB",$JOB,RC3611,Z0))
                       End DoDot:2
                       if RCSTOP
                           QUIT 
               End DoDot:1
 +42       IF 'RCSTOP
               IF RCPG
                   DO ASK(.RCSTOP)
 +43      ;
 +44       IF $DATA(ZTQUEUED)
               SET ZTREQ="@"
 +45       IF '$DATA(ZTQUEUED)
               DO ^%ZISC
 +46      ;
VPQ        KILL ^TMP("PRCA_EOB",$JOB),^TMP("PRCA_EOB1",$JOB)
 +1        SET VALMBCK="R"
 +2        QUIT 
 +3       ;
TPJI      ; Jump to Third Party Joint Inquiry for the claim
 +1        DO FULL^VALM1
 +2        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO TPJIQ
 +3        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +4       ; IA 4121
           DO OPTION^IBJTLA
 +5        DO RESTMP^RCDPEWL6
 +6       ;
TPJIQ      SET VALMBCK="R"
 +1        QUIT 
 +2       ;
FAP       ; Jump to Full Account Profile
 +1        DO FULL^VALM1
 +2       ;
 +3        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO FAPQ
 +4       ;
 +5        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +6        DO EN^PRCAAPR("ALL")
           DO RET
           KILL DTOUT
 +7        DO RESTMP^RCDPEWL6
 +8       ;
FAPQ       SET VALMBCK="R"
 +1        QUIT 
 +2       ;
RELHOLD   ; Jump to Release Hold function
 +1        NEW DIR,X,Y,RCDA,RCSCR
 +2        DO FULL^VALM1
 +3       ;
 +4        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO RELHQ
 +5       ;
 +6        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +7       ; IA = 306
           DO ^IBRREL
           DO RET
 +8        DO RESTMP^RCDPEWL6
 +9       ;
RELHQ      SET VALMBCK="R"
 +1        QUIT 
 +2       ;
CMRPT     ; Jump to claims matching report
 +1        NEW DIR,X,Y,RCIBY
 +2        DO FULL^VALM1
 +3       ;
 +4        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO CMQ
 +5       ;
 +6        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +7        DO ^RCDPRTP
           DO RET
 +8        DO RESTMP^RCDPEWL6
 +9       ;
CMQ        SET VALMBCK="R"
 +1        QUIT 
 +2       ;
CHGMNT    ; Jump to charge maintenance
 +1        NEW DIR,X,Y,RCSCR
 +2        DO FULL^VALM1
 +3       ;
 +4        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO CHMQ
 +5       ;
 +6        IF $DATA(^XUSEC("PRCA EDI LOCKBOX CHARGES",DUZ))
               Begin DoDot:1
 +7                MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +8       ; IA 4047
                   DO EN1AR^IBECEA
 +9                DO RESTMP^RCDPEWL6
               End DoDot:1
 +10      IF '$TEST
               Begin DoDot:1
 +11               SET DIR(0)="EA"
                   SET DIR("A",1)="YOU DO NOT HAVE THE KEY NEEDED TO ACCESS THIS OPTION."
                   SET DIR("A")="PRESS RETURN TO CONTINUE "
                   WRITE !
                   DO ^DIR
                   KILL DIR
               End DoDot:1
 +12      ;
 +13       SET VALMBCK="R"
CHMQ       QUIT 
 +1       ;
LSTHLD    ; Jump to list current/on hold charges
 +1        NEW DIR,X,Y,RCIBY
 +2        DO FULL^VALM1
 +3       ;
 +4        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO LHQ
 +5       ;
 +6        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +7       ; IA 4048
           DO MAIN^IBOHPT1
           DO RET
 +8        DO RESTMP^RCDPEWL6
 +9       ;
 +10       SET VALMBCK="R"
LHQ        QUIT 
 +1       ;
REEST     ;EP - Protocol action - RCDPE EOB WORKLIST REESTABLISH
 +1       ; Jump to re-establish bill
 +2        NEW PRC
 +3        DO FULL^VALM1
 +4       ; PRCA*4.5*318 Added security key check
           IF '$DATA(^XUSEC("RCDPEAR",DUZ))
               Begin DoDot:1
 +5                WRITE !!,"This action can only be taken by users that have the RCDPEAR security key.",!
 +6                DO PAUSE^VALM1
 +7                SET VALMBCK="R"
               End DoDot:1
               QUIT 
 +8       ;
 +9        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO REESTQ
 +10      ;
 +11       MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +12       DO ^PRCAWREA
           KILL DTOUT
 +13       DO RESTMP^RCDPEWL6
 +14       DO RET
 +15      ;
REESTQ     SET VALMBCK="R"
 +1        QUIT 
 +2       ;
BILLCOM   ; Jump to bill comment log
 +1        DO FULL^VALM1
 +2       ;
 +3        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO BILLCOMQ
 +4       ;
 +5        MERGE ^TMP("RC_SAVE_TMP",$JOB)=^TMP($JOB)
 +6        DO ^PRCACM
           KILL DTOUT
 +7        DO RET
 +8        DO RESTMP^RCDPEWL6
 +9       ;
BILLCOMQ   SET VALMBCK="R"
 +1        QUIT 
 +2       ;
ASK(RCSTOP) ;
 +1        IF $EXTRACT(IOST,1,2)'["C-"
               QUIT 
 +2        NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT
 +3        SET DIR(0)="E"
           WRITE !
           DO ^DIR
 +4        IF ($DATA(DIRUT))!($DATA(DUOUT))
               SET RCSTOP=1
               QUIT 
 +5        QUIT 
 +6       ;
RHDR(RCSCR,RCDT,RCPG) ;Prints EOB detail report heading
 +1        NEW Z
 +2        SET Z=$GET(^RCY(344.4,RCSCR,0))
 +3        IF RCPG!($EXTRACT(IOST,1,2)="C-")
               WRITE @IOF,*13
 +4        SET RCPG=RCPG+1
 +5        WRITE !,?15,"EDI LOCKBOX EEOB DETAIL FROM WORKLIST",?55,$$FMTE^XLFDT(RCDT,2),?70,"Page: ",RCPG
 +6       ; HIPAA 5010 - TRACE # increased in length from 30 to 50 characters therefore it needs to be displayed on its own line
 +7        WRITE !!,$EXTRACT(" ERA NUMBER: "_RCSCR_$JUSTIFY("",25),1,25)_"ERA DATE: "_$$FMTE^XLFDT($PIECE(Z,U,4)),!,"INS COMPANY: "_$PIECE(Z,U,6)_"/"_$PIECE(Z,U,3)
 +8        WRITE !,"ERA TRACE #: "_$PIECE(Z,U,2)
 +9        WRITE !,$TRANSLATE($JUSTIFY("",IOM)," ","=")
 +10       QUIT 
 +11      ;
RET       ; Pause before returning to list
 +1        NEW DIR,X,Y
 +2        SET DIR(0)="EA"
           SET DIR("A")="RETURN TO CONTINUE"
           WRITE !
           DO ^DIR
           KILL DIR
 +3        QUIT 
 +4       ;
NOWAY     ; Msg for unidentified bill
 +1        NEW DIR,X,Y
 +2        SET DIR(0)="EA"
           SET DIR("A",1)="THIS BILL IS NOT IDENTIFIED IN YOUR A/R"
           SET DIR("A")="THIS FUNCTION IS NOT AVAILABLE ... RETURN TO CONTINUE "
           WRITE !
           DO ^DIR
           KILL DIR
 +3        QUIT 
 +4       ;
NOWAY1    ; Msg for ERA level Adjustment 
 +1        NEW DIR,X,Y
 +2        SET DIR(0)="EA"
           SET DIR("A",1)="THIS IS AN ERA LEVEL ADJUSTMENT - NO DATA EXISTS FOR IT IN YOUR AR"
           SET DIR("A")="PRESS ENTER TO CONTINUE"
           WRITE !
           DO ^DIR
           KILL DIR
 +3        QUIT 
 +4       ;
SET1(RCIBY,RCDA,RCDA1,RC3444,RCREF) ; Set up variables for receipt/ERA
 +1        SET RCDA1=+RCIBY("IBEOB")
           SET RCDA=+$PIECE(RCIBY("IBEOB"),U,2)
           SET RC3444=+$PIECE(RCIBY("IBEOB"),U,3)
           SET RCREF=+$PIECE(RCIBY("IBEOB"),U,4)
 +2        QUIT 
 +3       ;
CHKFILE   ; If the user leaves the split line screen without filing - double check
 +1       ; that they didn't want to file it.
 +2        NEW DIR,X,Y
 +3        DO FULL^VALM1
           WRITE !!
 +4        IF $GET(^TMP("RCDPE_EOB_SPLIT_OK",$JOB))
               IF $ORDER(RCSPLIT(0))
                   Begin DoDot:1
 +5                    SET DIR(0)="YA"
                       SET DIR("B")="NO"
                       SET DIR("A",1)="YOU HAVE NOT FILED THESE CHANGES"
                       SET DIR("A")="DO YOU WANT TO FILE THEM BEFORE YOU EXIT?: "
                       DO ^DIR
                       KILL DIR
 +6                    IF Y=1
                           DO FILESP^RCDPEWL8
                   End DoDot:1
 +7        KILL ^TMP($JOB,"RCDPE_SPLIT_FILE")
 +8        QUIT 
 +9       ;
EDITSP    ; Action that edits the split lines
 +1       ; RCLINE,RCSCR must already exist
 +2        NEW DA,RCEDIT,RCDONE,RCDEF,RCSAVE,RCSAVE1
 +3        DO FULL^VALM1
 +4       ;
 +5        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO EDITQ
 +6       ;
 +7        DO SEL(.RCEDIT)
 +8        if 'RCEDIT
               GOTO EDITQ
 +9        SET RCDONE=0
 +10       MERGE RCSAVE=RCSPLIT,RCSAVE1=RCDIR
           SET RCDEF=$GET(RCSPLIT(RCEDIT))
           SET RCSPLIT=RCEDIT
 +11       DO EDIT^RCDPEWL3(RCSCR,RCLINE,.RCDIR,.RCSPLIT,RCDEF,.RCDONE)
 +12       IF '$DATA(RCSPLIT(RCSAVE))
               KILL RCSPLIT
               MERGE RCSPLIT=RCSAVE
               KILL RCDIR
               MERGE RCDIR=RCSAVE1
 +13       DO INIT^RCDPEWL3
EDITQ      SET VALMBCK="R"
 +1        QUIT 
 +2       ;
PREOB     ; Print/View EOB detail
 +1        NEW RCDA,RCDAZ,Z,Z0
 +2        DO FULL^VALM1
 +3        DO SEL^RCDPEWL(.RCDA)
 +4        SET RCDA=+$ORDER(RCDA(0))
           SET RCDA=$GET(RCDA(RCDA))
 +5        IF RCDA=""
               GOTO PREOBQ
 +6        SET RCDA=$PIECE($GET(^RCY(344.49,RCSCR,1,+RCDA,0)),U,9)
 +7        FOR RCDAZ=1:1:$LENGTH(RCDA,",")
               SET RCDAZ(RCDAZ)=$PIECE(RCDA,",",RCDAZ)
 +8        SET Z=0
           FOR 
               SET Z=$ORDER(RCDAZ(Z))
               if 'Z
                   QUIT 
               Begin DoDot:1
 +9       ;
 +10               SET Z0=RCDAZ(Z)
 +11               IF $EXTRACT(Z0,1,3)="ADJ"
                       Begin DoDot:2
 +12                       IF $GET(^RCY(344.4,RCSCR,2,+$PIECE(Z0,"ADJ",2),0))'=""
                               SET RCDAZ(Z)="ADJ^"_+$PIECE(Z0,"ADJ",2)
                       End DoDot:2
                       QUIT 
 +13      ;
 +14               SET Z0=$GET(^RCY(344.4,RCSCR,1,+Z0,0))
 +15               SET RCDAZ(Z)=+Z0_U_$SELECT($PIECE(Z0,U,2):$PIECE(Z0,U,2),1:-1)
                   QUIT 
               End DoDot:1
 +16      ;
 +17       DO VP(RCSCR,.RCDAZ)
 +18      ;
PREOBQ     SET VALMBCK="R"
 +1        QUIT 
 +2       ;
RESEARCH  ; Invoke the research menu
 +1       ;
 +2        KILL ^TMP($JOB,"RC_VALMBG")
 +3        SET ^TMP($JOB,"RC_VALMBG")=$GET(VALMBG)
 +4        DO FULL^VALM1
 +5        IF $GET(RCSCR("NOEDIT"))=2
               DO NOTAV
               GOTO RQ
 +6       ;
 +7        DO EN^VALM("RCDPE EOB RESEARCH")
 +8       ;
RQ         KILL ^TMP($JOB,"RC_VALMBG")
 +1        QUIT 
 +2       ;
SEL(RCEDIT) ;
 +1        NEW VALMY
 +2        DO EN^VALM2($GET(XQORNOD(0)),"S")
 +3        SET RCEDIT=+$ORDER(VALMY(0))
 +4        QUIT 
 +5       ;
EXIT      ; Exits back to ERA menu actions from research
 +1        SET VALMBCK="Q"
 +2        QUIT 
 +3       ;
WL(RCRCPT) ; Entrypoint to the ERA Worklist from Receipt Processing
 +1       ;RCRCPT = ien of entry in file 344
 +2        NEW DIR,X,Y,Z
 +3        DO FULL^VALM1
 +4       ; if not at ERA summary level (344.4,.08), get a receipt match using the cross-reference at the ERA detail (RECEIPT (344.41, .25) 
 +5        SET Z=$SELECT($ORDER(^RCY(344.4,"AREC",RCRCPT,0)):+$ORDER(^RCY(344.4,"AREC",RCRCPT,0)),1:+$ORDER(^RCY(344.4,"H",RCRCPT,0)))
 +6        IF 'Z
               Begin DoDot:1
 +7                SET DIR("A")="THIS RECEIPT IS NOT ASSOCIATED WITH AN ERA RECORD - PRESS RETURN TO CONTINUE "
                   SET DIR(0)="EA"
                   WRITE !
                   DO ^DIR
                   KILL DIR
               End DoDot:1
               GOTO WLQ
 +8       ;
 +9        IF '$DATA(^RCY(344.49,Z,0))
               Begin DoDot:1
 +10               SET DIR("A")="NO ERA WORKLIST SCRATCHPAD EXISTS FOR THIS ERA - PRESS RETURN TO CONTINUE "
                   SET DIR(0)="EA"
                   WRITE !
                   DO ^DIR
                   KILL DIR
               End DoDot:1
               GOTO WLQ
 +11      ;
 +12       DO DISP^RCDPEWL(Z,2)
 +13      ;
WLQ        SET VALMBCK="R"
 +1        QUIT 
 +2       ;
NOTAV     ; Display not available msg
 +1        NEW DIR,X,Y
 +2       ;
 +3        SET DIR(0)="EA"
           SET DIR("A")="THIS ACTION NOT CURRENTLY AVAILABLE - PRESS RETURN TO CONTINUE "
           WRITE !
           DO ^DIR
           KILL DIR
 +4        SET VALMBCK="R"
 +5        QUIT 
 +6       ;
 +7       ;PRCA*4.5*303 - Add jump to ECME Information from the ERA Worklist Research
 +8       ; IA 1992 - BILL/CLAIMS file (#399)
 +9       ; RCIENS exists before this code is called if coming from APAR
 +10      ; RCERA, RCSCR are assumed to exist before this code is called
GOECME    ; Select an EEOB and then jump to the [IBJT ECME RESP INFO SCREEN]
 +1        NEW RCDA,RCDAZ,RCDG,Z,Z0,IBIFN,DFN,RCAPAR
 +2        SET RCAPAR=0
 +3       ; From APAR RCSCR & RCERA not defined
           IF '$DATA(RCSCR)
               SET RCAPAR=1
               SET (RCERA,RCSCR)=$PIECE($GET(RCIENS),U,1)
 +4        if ($GET(RCERA)="")!($GET(RCSCR)="")
               GOTO GOEBQ
 +5        DO FULL^VALM1
 +6        DO SEL^RCDPEWL(.RCDA)
 +7        SET RCDA=+$ORDER(RCDA(0))
           SET RCDA=$GET(RCDA(RCDA))
 +8        IF RCDA=""
               GOTO GOEBQ
 +9        SET RCDA=$PIECE($GET(^RCY(344.49,RCSCR,1,+RCDA,0)),U,9)
 +10       SET IBIFN=$PIECE($GET(^RCY(344.4,RCERA,1,RCDA,0)),U,2)
           if +IBIFN'=0
               SET RCDG=$PIECE($GET(^IBM(361.1,IBIFN,0)),U,1)
 +11       IF $GET(RCDG)=""
               WRITE !!,"Problem with Bill IEN: "_IBIFN_", ERA: "_RCERA_" Please report this issue."
               DO PAUSE^VALM1
               GOTO GOEBQ
 +12       SET DFN=$PIECE($GET(^DGCR(399,RCDG,0)),U,2)
 +13       IF RCAPAR
               SET IBIFN=RCDG
 +14       IF '$$ISRX^IBCEF1(IBIFN)
               WRITE !!,"Not available. This is not a Pharmacy Claim."
               DO PAUSE^VALM1
               GOTO GOEBQ
 +15       IF $$ECME^IBTRE(IBIFN)=""
               WRITE !!,"Not available. This is a Pharmacy Claim, but not an ECME Claim."
               DO PAUSE^VALM1
               GOTO GOEBQ
 +16       DO EN^VALM("IBJT ECME RESP INFO")
 +17      ;
GOEBQ      SET VALMBCK="R"
 +1       ; Clean up if we are in APAR
           IF RCAPAR
               KILL RCSCR,RCERA
 +2        QUIT