RCDPRTP2 ;ALB/LDB - CLAIMS MATCHING REPORT ;1/26/01  3:16 PM
 ;;4.5;Accounts Receivable;**151,276,303,315,338**;Mar 20, 1995;Build 69
 ;;Per VA Directive 6402, this routine should not be modified.
 ;
 ; Reference to $$TYP^IBRFN supported by DBIA# 2031
 ;
PRINT1 ;
 N REJECT,RCTYP
 ; double check the status to screen out cancelled third party bills
 I 'RCAN N TSTAT S TSTAT=$$STAT(RCTP) Q:TSTAT="CN"!(TSTAT="CB")  ;Added a last minute check for cancelled third party bills 
 ;
 I $Y>(IOSL-2) D PAUSE Q:$G(RCQ)  D HDR^RCDPRTP1,HDR1
 ; PRCA*4.5*276 - get EEOB indicator '%'and attach it to the bill number when applicable. Adjust report tabs to make room for EEOB indicator '%'.
 N RC430 S RC430=+$O(^PRCA(430,"B",""_$P(RCIBDAT,"^",4)_"",0))
 S RCEEOB=$$EEOB(RC430)
 ; #IA 6060 for $$BILLREJ^IBJTU6
 S REJECT=$S($$BILLREJ^IBJTU6($P($P(RCIBDAT,"^",4),"-",2)):"c",1:" ") ;PRCA*4.5*303 Add indicator for rejects
 W !,$S(RCTP=RCBILL:"*",$D(RCTP(RCTP)):"*",1:" "),$G(RCEEOB)_REJECT_$P(RCIBDAT,"^",4),?17,$P(RCIBDAT,"^",5),?24
 W $$STAT(RCTP),?31,$$DATE(+RCIBDAT),?42,$$DATE($P(RCIBDAT,"^",2))
 S Y=$S($G(RCTP(RCTP)):RCTP(RCTP),$G(^TMP("RCDPRTPB",$J,RCNAM,RCBILL)):^(RCBILL),1:"") I RCTP=RCBILL!($D(RCTP(RCTP))) W ?53,$$DATE(Y)
 S RCAMT=$P($G(^PRCA(430,+RCTP,0)),"^",3),RCAMT1=$P($G(^PRCA(430,+RCTP,7)),"^",7) W ?64,$J(RCAMT,9,2)
 W ?76,$J(RCAMT1,9,2) S RCAMT(0)=RCAMT(0)+RCAMT,RCAMT(1)=RCAMT(1)+RCAMT1
 W ?88,$E($P(RCIBDAT,"^",7),1,25)
 ; #IA 2031 for $$TYP^IBRFN
 S RCTYP=$$TYP^IBRFN(RCTP) ; get bill type for an Accounts Receivable
 ; Convert to single character care types for: 
 ; (I)npatient, (O)utpatient, (R)Prescription & (P)rosthetics
 S RCTYP=$S(RCTYP="":-1,RCTYP="PR":"P",RCTYP="PH":"R",1:RCTYP)
 W ?119,RCTYP
 K RCTP(RCTP)
 Q
 ;
PRINT2  ; Print the detail line for a first party bill.
 I $Y>(IOSL-2) D PAUSE Q:$G(RCQ)  D HDR^RCDPRTP1,HDR2
 W !," ",$P(RCIBDAT,"^",4),?14,$E($P(RCIBDAT,"^",6),1,18)  ;PRCA*4.5*338
 S RCIBFN=$P(RCIBDAT,"^",4) I RCIBFN S RCIBFN=$O(^PRCA(430,"B",RCIBFN,0))
 ; PRCA*4.5*276 - adjust report tabs to make room for EEOB indicator '%'.
 W ?36,$$STAT(RCIBFN),?42,$$DATE(+RCIBDAT),?54,$$DATE($P(RCIBDAT,"^",2))
 W ?66,$J($P(RCIBDAT,"^",5),9,2),?78,$P(RCIBDAT,"^",7)
 W ?87,$J($S($G(^PRCA(430,+RCIBFN,7)):+($P(^(7),"^")+$P(^(7),"^",2)+$P(^(7),"^",3)+$P(^(7),"^",4)+$P(^(7),"^",4)),1:0),9,2)
 Q
 ;
 ;
PRINT3 ; Print patient detail information.
 N RCNAM1,RCBILL0,RCDFN,RCDOB,DOB
 I $Y>(IOSL-5) D PAUSE Q:$G(RCQ)  D HDR^RCDPRTP1
 S RCNAM1=^TMP("RCDPRTPB",$J,RCNAM)
 S RCBILL0=$G(^PRCA(430,RCBILL,0)) ;PRCA*4.3*315
 S RCDFN=$P($G(^PRCA(430,RCBILL,0)),U,7)
 S RCDOB=$P($G(^DPT(RCDFN,0)),U,3)
 S DOB=$$FMTE^XLFDT(RCDOB,"5Z")
 W !!,RCLINE
 W !,"NAME: ",$P(RCNAM,"^"),?44,"SSN: ",$E(RCNAM,1)_$E($P(RCNAM1,"^",3),6,9)
 W !,"Prim. Elig: ",$P(RCNAM1,"^",2)
 W ?44,"DOB: ",DOB
 W ?61,"RX COVERAGE: ",$S('$G(^TMP("IBRBT",$J,RCBILL)):"NO",1:"YES")
 W !,RCLINE
 Q
 ;
HDR1    ;
 W !!,"Third Party Bills: * -> bill for which payment was posted"
 W !,"============================="
 ; PRCA*4.5*276 - adjust report tabs to make room for EEOB indicator '%'.
 ; PRCA*4.5*315 - added 1-char. care type (I)npatient, (O)utpatient, (R)x or (P)rosthetics) under new Type column
 W !!,"Bill #",?15,"P/S/T",?22,"Status",?30,"Bill From",?42,"Bill To",?53,"Posted",?63,"Amt Billed",?76,"Amt Paid",?88,"Payor",?115,"Care Type"
 W !,"-------------",?15,"-----",?22,"------",?30,"---------",?42,"--------",?53,"--------",?63,"----------",?75,"----------",?88,"-------------------------",?115,"---------"
 Q
 ;
HDR2 ;
 W !!,"Associated First Party Charges:"
 W !,"==============================="
 W !," Bill #",?14,"Charge Type",?34,"Status",?42,"From/Fill",?54,"To/Rel",?65,"Amt Billed",?78,"On Hold",?87,"  Balance"
 W !,"-----------",?14,"----------------",?34,"------",?42,"---------",?54,"---------",?65,"----------",?78,"-------",?87," ----------"
 Q
 ;
STAT(RCIBFN) ;AR Status
 I '$G(RCIBFN) Q ""
 N RCSTAT
 S RCSTAT=$P($G(^PRCA(430,+RCIBFN,0)),"^",8),RCSTAT=$P($G(^PRCA(430.3,+RCSTAT,0)),"^",2)
 Q RCSTAT
 ;
DATE(X) ; Convert FileMan date to mm/dd/yy
 Q $S($G(X):$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3),1:"")
 ;
 ;
PAUSE ; Page break.
 I $E(IOST,1,2)'="C-" Q
 N RCX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
 I IOSL<100 F RCX=$Y:1:(IOSL-3) W !
 S DIR(0)="E" D ^DIR I $D(DIRUT)!($D(DUOUT)) S RCQ=1
 Q
 ;
EEOB(RCBILL) ; PRCA*4.5*276 - get EEOB indicator for a bill
 ; Interaction with IB file #361.1 covered by IA #4051.
 ; RCBILL is the IEN of the bill in files #399/#430 and must be valid,
 ; Exclude an EOB type of MRA when getting payment information. Return
 ; the EEOB indicator '%' if payment activity was found.
 ;
 N RCEEOB,RCVAL,Z
 I $G(RCBILL)=0 Q ""
 I '$O(^IBM(361.1,"B",RCBILL,0)) Q ""  ; no matching entry for bill
 I $P($G(^DGCR(399,RCBILL,0)),"^",13)=1 Q ""  ;avoid 'ENTERED/NOT REVIEWED' status
 ; handle both single and multiple bill entries in file #361.1
 S Z=0 F  S Z=$O(^IBM(361.1,"B",RCBILL,Z)) Q:'Z  D  Q:$G(RCEEOB)="%"
 . S RCVAL=$G(^IBM(361.1,Z,0))
 . S RCEEOB=$S($P(RCVAL,"^",4)=1:"",$P(RCVAL,"^",4)=0:"%",1:"")
 Q RCEEOB  ; EEOB indicator for 1st/3rd party payment on bill
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPRTP2   5198     printed  Sep 23, 2025@19:22:34                                                                                                                                                                                                    Page 2
RCDPRTP2  ;ALB/LDB - CLAIMS MATCHING REPORT ;1/26/01  3:16 PM
 +1       ;;4.5;Accounts Receivable;**151,276,303,315,338**;Mar 20, 1995;Build 69
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;
 +4       ; Reference to $$TYP^IBRFN supported by DBIA# 2031
 +5       ;
PRINT1    ;
 +1        NEW REJECT,RCTYP
 +2       ; double check the status to screen out cancelled third party bills
 +3       ;Added a last minute check for cancelled third party bills 
           IF 'RCAN
               NEW TSTAT
               SET TSTAT=$$STAT(RCTP)
               if TSTAT="CN"!(TSTAT="CB")
                   QUIT 
 +4       ;
 +5        IF $Y>(IOSL-2)
               DO PAUSE
               if $GET(RCQ)
                   QUIT 
               DO HDR^RCDPRTP1
               DO HDR1
 +6       ; PRCA*4.5*276 - get EEOB indicator '%'and attach it to the bill number when applicable. Adjust report tabs to make room for EEOB indicator '%'.
 +7        NEW RC430
           SET RC430=+$ORDER(^PRCA(430,"B",""_$PIECE(RCIBDAT,"^",4)_"",0))
 +8        SET RCEEOB=$$EEOB(RC430)
 +9       ; #IA 6060 for $$BILLREJ^IBJTU6
 +10      ;PRCA*4.5*303 Add indicator for rejects
           SET REJECT=$SELECT($$BILLREJ^IBJTU6($PIECE($PIECE(RCIBDAT,"^",4),"-",2)):"c",1:" ")
 +11       WRITE !,$SELECT(RCTP=RCBILL:"*",$DATA(RCTP(RCTP)):"*",1:" "),$GET(RCEEOB)_REJECT_$PIECE(RCIBDAT,"^",4),?17,$PIECE(RCIBDAT,"^",5),?24
 +12       WRITE $$STAT(RCTP),?31,$$DATE(+RCIBDAT),?42,$$DATE($PIECE(RCIBDAT,"^",2))
 +13       SET Y=$SELECT($GET(RCTP(RCTP)):RCTP(RCTP),$GET(^TMP("RCDPRTPB",$JOB,RCNAM,RCBILL)):^(RCBILL),1:"")
           IF RCTP=RCBILL!($DATA(RCTP(RCTP)))
               WRITE ?53,$$DATE(Y)
 +14       SET RCAMT=$PIECE($GET(^PRCA(430,+RCTP,0)),"^",3)
           SET RCAMT1=$PIECE($GET(^PRCA(430,+RCTP,7)),"^",7)
           WRITE ?64,$JUSTIFY(RCAMT,9,2)
 +15       WRITE ?76,$JUSTIFY(RCAMT1,9,2)
           SET RCAMT(0)=RCAMT(0)+RCAMT
           SET RCAMT(1)=RCAMT(1)+RCAMT1
 +16       WRITE ?88,$EXTRACT($PIECE(RCIBDAT,"^",7),1,25)
 +17      ; #IA 2031 for $$TYP^IBRFN
 +18      ; get bill type for an Accounts Receivable
           SET RCTYP=$$TYP^IBRFN(RCTP)
 +19      ; Convert to single character care types for: 
 +20      ; (I)npatient, (O)utpatient, (R)Prescription & (P)rosthetics
 +21       SET RCTYP=$SELECT(RCTYP="":-1,RCTYP="PR":"P",RCTYP="PH":"R",1:RCTYP)
 +22       WRITE ?119,RCTYP
 +23       KILL RCTP(RCTP)
 +24       QUIT 
 +25      ;
PRINT2    ; Print the detail line for a first party bill.
 +1        IF $Y>(IOSL-2)
               DO PAUSE
               if $GET(RCQ)
                   QUIT 
               DO HDR^RCDPRTP1
               DO HDR2
 +2       ;PRCA*4.5*338
           WRITE !," ",$PIECE(RCIBDAT,"^",4),?14,$EXTRACT($PIECE(RCIBDAT,"^",6),1,18)
 +3        SET RCIBFN=$PIECE(RCIBDAT,"^",4)
           IF RCIBFN
               SET RCIBFN=$ORDER(^PRCA(430,"B",RCIBFN,0))
 +4       ; PRCA*4.5*276 - adjust report tabs to make room for EEOB indicator '%'.
 +5        WRITE ?36,$$STAT(RCIBFN),?42,$$DATE(+RCIBDAT),?54,$$DATE($PIECE(RCIBDAT,"^",2))
 +6        WRITE ?66,$JUSTIFY($PIECE(RCIBDAT,"^",5),9,2),?78,$PIECE(RCIBDAT,"^",7)
 +7        WRITE ?87,$JUSTIFY($SELECT($GET(^PRCA(430,+RCIBFN,7)):+($PIECE(^(7),"^")+$PIECE(^(7),"^",2)+$PIECE(^(7),"^",3)+$PIECE(^(7),"^",4)+$PIECE(^(7),"^",4)),1:0),9,2)
 +8        QUIT 
 +9       ;
 +10      ;
PRINT3    ; Print patient detail information.
 +1        NEW RCNAM1,RCBILL0,RCDFN,RCDOB,DOB
 +2        IF $Y>(IOSL-5)
               DO PAUSE
               if $GET(RCQ)
                   QUIT 
               DO HDR^RCDPRTP1
 +3        SET RCNAM1=^TMP("RCDPRTPB",$JOB,RCNAM)
 +4       ;PRCA*4.3*315
           SET RCBILL0=$GET(^PRCA(430,RCBILL,0))
 +5        SET RCDFN=$PIECE($GET(^PRCA(430,RCBILL,0)),U,7)
 +6        SET RCDOB=$PIECE($GET(^DPT(RCDFN,0)),U,3)
 +7        SET DOB=$$FMTE^XLFDT(RCDOB,"5Z")
 +8        WRITE !!,RCLINE
 +9        WRITE !,"NAME: ",$PIECE(RCNAM,"^"),?44,"SSN: ",$EXTRACT(RCNAM,1)_$EXTRACT($PIECE(RCNAM1,"^",3),6,9)
 +10       WRITE !,"Prim. Elig: ",$PIECE(RCNAM1,"^",2)
 +11       WRITE ?44,"DOB: ",DOB
 +12       WRITE ?61,"RX COVERAGE: ",$SELECT('$GET(^TMP("IBRBT",$JOB,RCBILL)):"NO",1:"YES")
 +13       WRITE !,RCLINE
 +14       QUIT 
 +15      ;
HDR1      ;
 +1        WRITE !!,"Third Party Bills: * -> bill for which payment was posted"
 +2        WRITE !,"============================="
 +3       ; PRCA*4.5*276 - adjust report tabs to make room for EEOB indicator '%'.
 +4       ; PRCA*4.5*315 - added 1-char. care type (I)npatient, (O)utpatient, (R)x or (P)rosthetics) under new Type column
 +5        WRITE !!,"Bill #",?15,"P/S/T",?22,"Status",?30,"Bill From",?42,"Bill To",?53,"Posted",?63,"Amt Billed",?76,"Amt Paid",?88,"Payor",?115,"Care Type"
 +6        WRITE !,"-------------",?15,"-----",?22,"------",?30,"---------",?42,"--------",?53,"--------",?63,"----------",?75,"----------",?88,"-------------------------",?115,"---------"
 +7        QUIT 
 +8       ;
HDR2      ;
 +1        WRITE !!,"Associated First Party Charges:"
 +2        WRITE !,"==============================="
 +3        WRITE !," Bill #",?14,"Charge Type",?34,"Status",?42,"From/Fill",?54,"To/Rel",?65,"Amt Billed",?78,"On Hold",?87,"  Balance"
 +4        WRITE !,"-----------",?14,"----------------",?34,"------",?42,"---------",?54,"---------",?65,"----------",?78,"-------",?87," ----------"
 +5        QUIT 
 +6       ;
STAT(RCIBFN) ;AR Status
 +1        IF '$GET(RCIBFN)
               QUIT ""
 +2        NEW RCSTAT
 +3        SET RCSTAT=$PIECE($GET(^PRCA(430,+RCIBFN,0)),"^",8)
           SET RCSTAT=$PIECE($GET(^PRCA(430.3,+RCSTAT,0)),"^",2)
 +4        QUIT RCSTAT
 +5       ;
DATE(X)   ; Convert FileMan date to mm/dd/yy
 +1        QUIT $SELECT($GET(X):$EXTRACT(X,4,5)_"/"_$EXTRACT(X,6,7)_"/"_$EXTRACT(X,2,3),1:"")
 +2       ;
 +3       ;
PAUSE     ; Page break.
 +1        IF $EXTRACT(IOST,1,2)'="C-"
               QUIT 
 +2        NEW RCX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
 +3        IF IOSL<100
               FOR RCX=$Y:1:(IOSL-3)
                   WRITE !
 +4        SET DIR(0)="E"
           DO ^DIR
           IF $DATA(DIRUT)!($DATA(DUOUT))
               SET RCQ=1
 +5        QUIT 
 +6       ;
EEOB(RCBILL) ; PRCA*4.5*276 - get EEOB indicator for a bill
 +1       ; Interaction with IB file #361.1 covered by IA #4051.
 +2       ; RCBILL is the IEN of the bill in files #399/#430 and must be valid,
 +3       ; Exclude an EOB type of MRA when getting payment information. Return
 +4       ; the EEOB indicator '%' if payment activity was found.
 +5       ;
 +6        NEW RCEEOB,RCVAL,Z
 +7        IF $GET(RCBILL)=0
               QUIT ""
 +8       ; no matching entry for bill
           IF '$ORDER(^IBM(361.1,"B",RCBILL,0))
               QUIT ""
 +9       ;avoid 'ENTERED/NOT REVIEWED' status
           IF $PIECE($GET(^DGCR(399,RCBILL,0)),"^",13)=1
               QUIT ""
 +10      ; handle both single and multiple bill entries in file #361.1
 +11       SET Z=0
           FOR 
               SET Z=$ORDER(^IBM(361.1,"B",RCBILL,Z))
               if 'Z
                   QUIT 
               Begin DoDot:1
 +12               SET RCVAL=$GET(^IBM(361.1,Z,0))
 +13               SET RCEEOB=$SELECT($PIECE(RCVAL,"^",4)=1:"",$PIECE(RCVAL,"^",4)=0:"%",1:"")
               End DoDot:1
               if $GET(RCEEOB)="%"
                   QUIT 
 +14      ; EEOB indicator for 1st/3rd party payment on bill
           QUIT RCEEOB