PRCAWOF ;WASH-ISC@ALTOONA,PA/RGY-AR WRITE-OFF REPORT ;8/23/95  9:00 AM
V ;;4.5;Accounts Receivable;**20*,104*;Mar 20, 1995
 ;;Per VHA Directive 10-93-142, this routine should not be modified.
 NEW BEG,DIR,DIROUT,DIRUT,DTOUT,DUOUT,END,IOS,X,Y,%DT,%ZIS,ZTSK
BEG ;
 W ! D NOW^%DTC S %DT(0)=-%,%DT="AEXP",%DT("A")="Starting Date: " D ^%DT G:Y<0 Q S BEG=Y
 S %DT="AEX",%DT("A")="  Ending Date: " D ^%DT G:Y<0 Q S END=Y
 I BEG>END W !!,*7,"*** Beginning date is Greater than or equal to Ending date ***",! G BEG
 S %ZIS="MQ" D ^%ZIS G:POP Q
 I $D(IO("Q")) S ZTRTN="DQ^PRCAWOF",ZTSAVE("BEG")="",ZTSAVE("END")="",ZTDESC="Write-Off Report" D ^%ZTLOAD G Q
 U IO D DQ
Q D ^%ZISC Q
DQ ;
 NEW DATE,DEBT,BILL,PAGE,PRI
 S (DEBT,PAGE)=0
 W:$E(IOST)="C" @IOF D HDR1
 F  S DEBT=$O(^PRCA(433,"ATD",DEBT)) Q:'DEBT  S PRI=1 F DATE=BEG-.0001:0 S DATE=$O(^PRCA(433,"ATD",DEBT,DATE)) Q:DATE>(END+.9999)!'DATE  F TRAN=0:0 S TRAN=$O(^PRCA(433,"ATD",DEBT,DATE,TRAN)) Q:'TRAN  D
 . I $G(^RCD(340,+DEBT,0))'["DPT" Q
 . I ","_$O(^PRCA(430.3,"AC",2,0))_","_$O(^PRCA(430.3,"AC",20,0))_","'[(","_$P($G(^PRCA(433,TRAN,1)),"^",2)_",") Q
 . I PRI F BILL=0:0 S BILL=$O(^PRCA(430,"C",DEBT,BILL)) Q:'BILL  D  Q:DEBT="Z"
 ..  I $P($G(^PRCA(430,BILL,0)),"^",8)'=$O(^PRCA(430.3,"AC",109,0)) G Q2
 ..  I PRI D:$Y+5>IOSL HDR G:DEBT="Z" Q2 W !,$P($G(^DPT(+$P(^RCD(340,DEBT,0),"^"),0)),"^") S X=$P(^(0),"^",9) W " (",$E(X,1,3),"-",$E(X,4,5),"-",$E(X,6,9),")" S PRI=0
 ..  D:$Y+5>IOSL HDR G:DEBT="Z" Q2
 ..  W !?5,"Bill # ",$P(^PRCA(430,BILL,0),"^") S X=$G(^PRCA(430,BILL,7)) W ?25,"Amt: ",$J($P(X,"^")+$P(X,"^",2)+$P(X,"^",3)+$P(X,"^",4)+$P(X,"^",5),7,2)
 ..  F X=0:0 S X=$O(^PRCA(433,"C",BILL,X)) Q:'X  I ",9,29,8,10,11,"[(","_$P($G(^PRCA(433,X,1)),"^",2)_",") W ?45,$P(^PRCA(430.3,+$P(^PRCA(433,X,1),"^",2),0),"^") Q
 ..  W:'X ?40,"Unknown Type"
Q2 ..  Q
 . I DEBT="Z" G Q1
 . I PRI S DEBT=DEBT_.1 G Q1
 . D:$Y+5>IOS HDR G:DEBT="Z" Q1
 . W !?5,"Trans #: ",TRAN,?20,"Date: ",$$SLH^RCFN01(DATE) S X=$G(^PRCA(433,TRAN,3)) W ?40,"Amt: ",$J($P(X,"^")+$P(X,"^",2)+$P(X,"^",3)+$P(X,"^",4)+$P(X,"^",5),7,2)
 . W ?60,$P(^PRCA(430.3,+$P(^PRCA(433,TRAN,1),"^",2),0),"^")
Q1 . Q
 Q
HDR ;Print Header of report
 I $E(IOST)="C" R !!,"Press return to continue: ",X:DTIME S:'$T DTOUT=1 I X["^"!$D(DTOUT) S DEBT="Z" G Q3
 W @IOF
HDR1 ;
 S PAGE=PAGE+1
 W !!,"Payments Received for Patient Accounts with Written-off Bills",?IOM-($L(PAGE)+7),"Page: ",PAGE
 W !,"From ",$$SLH^RCFN01(BEG)," thru ",$$SLH^RCFN01(END) S X="Date: "_$$SLH^RCFN01(DT) W ?IOM-$L(X)-1,X,!
 S X="",$P(X,"-",80)="" W X,!
Q3 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCAWOF   2577     printed  Sep 23, 2025@19:18:08                                                                                                                                                                                                     Page 2
PRCAWOF   ;WASH-ISC@ALTOONA,PA/RGY-AR WRITE-OFF REPORT ;8/23/95  9:00 AM
V         ;;4.5;Accounts Receivable;**20*,104*;Mar 20, 1995
 +1       ;;Per VHA Directive 10-93-142, this routine should not be modified.
 +2        NEW BEG,DIR,DIROUT,DIRUT,DTOUT,DUOUT,END,IOS,X,Y,%DT,%ZIS,ZTSK
BEG       ;
 +1        WRITE !
           DO NOW^%DTC
           SET %DT(0)=-%
           SET %DT="AEXP"
           SET %DT("A")="Starting Date: "
           DO ^%DT
           if Y<0
               GOTO Q
           SET BEG=Y
 +2        SET %DT="AEX"
           SET %DT("A")="  Ending Date: "
           DO ^%DT
           if Y<0
               GOTO Q
           SET END=Y
 +3        IF BEG>END
               WRITE !!,*7,"*** Beginning date is Greater than or equal to Ending date ***",!
               GOTO BEG
 +4        SET %ZIS="MQ"
           DO ^%ZIS
           if POP
               GOTO Q
 +5        IF $DATA(IO("Q"))
               SET ZTRTN="DQ^PRCAWOF"
               SET ZTSAVE("BEG")=""
               SET ZTSAVE("END")=""
               SET ZTDESC="Write-Off Report"
               DO ^%ZTLOAD
               GOTO Q
 +6        USE IO
           DO DQ
Q          DO ^%ZISC
           QUIT 
DQ        ;
 +1        NEW DATE,DEBT,BILL,PAGE,PRI
 +2        SET (DEBT,PAGE)=0
 +3        if $EXTRACT(IOST)="C"
               WRITE @IOF
           DO HDR1
 +4        FOR 
               SET DEBT=$ORDER(^PRCA(433,"ATD",DEBT))
               if 'DEBT
                   QUIT 
               SET PRI=1
               FOR DATE=BEG-.0001:0
                   SET DATE=$ORDER(^PRCA(433,"ATD",DEBT,DATE))
                   if DATE>(END+.9999)!'DATE
                       QUIT 
                   FOR TRAN=0:0
                       SET TRAN=$ORDER(^PRCA(433,"ATD",DEBT,DATE,TRAN))
                       if 'TRAN
                           QUIT 
                       Begin DoDot:1
 +5                        IF $GET(^RCD(340,+DEBT,0))'["DPT"
                               QUIT 
 +6                        IF ","_$ORDER(^PRCA(430.3,"AC",2,0))_","_$ORDER(^PRCA(430.3,"AC",20,0))_","'[(","_$PIECE($GET(^PRCA(433,TRAN,1)),"^",2)_",")
                               QUIT 
 +7                        IF PRI
                               FOR BILL=0:0
                                   SET BILL=$ORDER(^PRCA(430,"C",DEBT,BILL))
                                   if 'BILL
                                       QUIT 
                                   Begin DoDot:2
 +8                                    IF $PIECE($GET(^PRCA(430,BILL,0)),"^",8)'=$ORDER(^PRCA(430.3,"AC",109,0))
                                           GOTO Q2
 +9                                    IF PRI
                                           if $Y+5>IOSL
                                               DO HDR
                                           if DEBT="Z"
                                               GOTO Q2
                                           WRITE !,$PIECE($GET(^DPT(+$PIECE(^RCD(340,DEBT,0),"^"),0)),"^")
                                           SET X=$PIECE(^(0),"^",9)
                                           WRITE " (",$EXTRACT(X,1,3),"-",$EXTRACT(X,4,5),"-",$EXTRACT(X,6,9),")"
                                           SET PRI=0
 +10                                   if $Y+5>IOSL
                                           DO HDR
                                       if DEBT="Z"
                                           GOTO Q2
 +11                                   WRITE !?5,"Bill # ",$PIECE(^PRCA(430,BILL,0),"^")
                                       SET X=$GET(^PRCA(430,BILL,7))
                                       WRITE ?25,"Amt: ",$JUSTIFY($PIECE(X,"^")+$PIECE(X,"^",2)+$PIECE(X,"^",3)+$PIECE(X,"^",4)+$PIECE(X,"^",5),7,2)
 +12                                   FOR X=0:0
                                           SET X=$ORDER(^PRCA(433,"C",BILL,X))
                                           if 'X
                                               QUIT 
                                           IF ",9,29,8,10,11,"[(","_$PIECE($GET(^PRCA(433,X,1)),"^",2)_",")
                                               WRITE ?45,$PIECE(^PRCA(430.3,+$PIECE(^PRCA(433,X,1),"^",2),0),"^")
                                               QUIT 
 +13                                   if 'X
                                           WRITE ?40,"Unknown Type"
Q2                                     QUIT 
                                   End DoDot:2
                                   if DEBT="Z"
                                       QUIT 
 +1                        IF DEBT="Z"
                               GOTO Q1
 +2                        IF PRI
                               SET DEBT=DEBT_.1
                               GOTO Q1
 +3                        if $Y+5>IOS
                               DO HDR
                           if DEBT="Z"
                               GOTO Q1
 +4                        WRITE !?5,"Trans #: ",TRAN,?20,"Date: ",$$SLH^RCFN01(DATE)
                           SET X=$GET(^PRCA(433,TRAN,3))
                           WRITE ?40,"Amt: ",$JUSTIFY($PIECE(X,"^")+$PIECE(X,"^",2)+$PIECE(X,"^",3)+$PIECE(X,"^",4)+$PIECE(X,"^",5),7,2)
 +5                        WRITE ?60,$PIECE(^PRCA(430.3,+$PIECE(^PRCA(433,TRAN,1),"^",2),0),"^")
Q1                         QUIT 
                       End DoDot:1
 +1        QUIT 
HDR       ;Print Header of report
 +1        IF $EXTRACT(IOST)="C"
               READ !!,"Press return to continue: ",X:DTIME
               if '$TEST
                   SET DTOUT=1
               IF X["^"!$DATA(DTOUT)
                   SET DEBT="Z"
                   GOTO Q3
 +2        WRITE @IOF
HDR1      ;
 +1        SET PAGE=PAGE+1
 +2 Press return to continue:       WRITE !!,"Payments Received for Patient Accounts with Written-off Bills",?IOM-($LENGTH(PAGE)+7),"Page: ",PAGE
 +3        WRITE !,"From ",$$SLH^RCFN01(BEG)," thru ",$$SLH^RCFN01(END)
           SET X="Date: "_$$SLH^RCFN01(DT)
           WRITE ?IOM-$LENGTH(X)-1,X,!
 +4        SET X=""
           SET $PIECE(X,"-",80)=""
           WRITE X,!
Q3         QUIT