[613] | 1 | RCBDPSL1 ;WISC/RFJ-patient statement top list manager routine ;1 Dec 00
|
---|
| 2 | ;;4.5;Accounts Receivable;**162**;Mar 20, 1995
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;
|
---|
| 7 | INITCONT ; continue building list
|
---|
| 8 | ;
|
---|
| 9 | ; initialize line counter and transaction counter
|
---|
| 10 | S (RCLINE,RCTRCNT)=0
|
---|
| 11 | ; initialize patient account totals
|
---|
| 12 | S (RCTOTAL(1),RCTOTAL(2),RCTOTAL(3))=0
|
---|
| 13 | ;
|
---|
| 14 | ; show transactions by statement date
|
---|
| 15 | S RCSTATE=0 F S RCSTATE=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE)) Q:'RCSTATE D
|
---|
| 16 | . ; display statement date on listmanager screen
|
---|
| 17 | . S RCLINE=RCLINE+1
|
---|
| 18 | . S RCSTDATE=RCSTATE I RCSTDATE=10000000 S RCSTDATE="NEW ACTIVITY"
|
---|
| 19 | . I RCSTDATE S RCSTDATE=RCSTDATE_"00000" S RCSTDATE=$E(RCSTDATE,4,5)_"/"_$E(RCSTDATE,6,7)_"/"_$E(RCSTDATE,2,3)_" @ "_$E(RCSTDATE,9,10)_":"_$E(RCSTDATE,11,12)
|
---|
| 20 | . D SET("Transactions for LAST Patient Statement as of Date: "_RCSTDATE,RCLINE,1,80,0,IORVON,IORVOFF)
|
---|
| 21 | . ; initialize totals by statement date
|
---|
| 22 | . S (RCTOTAL(4),RCTOTAL(5),RCTOTAL(6))=0
|
---|
| 23 | . ; initialize flag marking transactions incomplete
|
---|
| 24 | . S RCFINCOM=0
|
---|
| 25 | . ;
|
---|
| 26 | . S RCDATE=0 F S RCDATE=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE)) Q:'RCDATE D
|
---|
| 27 | . . S RCTRANDA="" F S RCTRANDA=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,RCTRANDA)) Q:RCTRANDA="" D
|
---|
| 28 | . . . S RCVALUE=^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,RCTRANDA)
|
---|
| 29 | . . . ;
|
---|
| 30 | . . . I 'RCTRANDA D SETBILL
|
---|
| 31 | . . . I RCTRANDA D SETTRAN
|
---|
| 32 | . . . ;
|
---|
| 33 | . . . ; compute totals by statement date
|
---|
| 34 | . . . S RCTOTAL(4)=RCTOTAL(4)+$P(RCVALUE,"^",2)
|
---|
| 35 | . . . S RCTOTAL(5)=RCTOTAL(5)+$P(RCVALUE,"^",3)
|
---|
| 36 | . . . S RCTOTAL(6)=RCTOTAL(6)+$P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6)
|
---|
| 37 | . . . ;
|
---|
| 38 | . . . ; compute totals by patient account
|
---|
| 39 | . . . S RCTOTAL(1)=RCTOTAL(1)+$P(RCVALUE,"^",2)
|
---|
| 40 | . . . S RCTOTAL(2)=RCTOTAL(2)+$P(RCVALUE,"^",3)
|
---|
| 41 | . . . S RCTOTAL(3)=RCTOTAL(3)+$P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6)
|
---|
| 42 | . ;
|
---|
| 43 | . ; if transaction was set incomplete on any transactions, show why
|
---|
| 44 | . I RCFINCOM D
|
---|
| 45 | . . S RCLINE=RCLINE+1 D SET(" * indicates transaction",RCLINE,1,80)
|
---|
| 46 | . . S RCLINE=RCLINE+1 D SET(" * is MARKed INCOMPLETE",RCLINE,1,80)
|
---|
| 47 | . ;
|
---|
| 48 | . ; display totals by statement date
|
---|
| 49 | . S RCLINE=RCLINE+1
|
---|
| 50 | . D SET(" --------- -------- --------",RCLINE,1,80)
|
---|
| 51 | . S RCLINE=RCLINE+1
|
---|
| 52 | . D SET("TOTAL BY LAST STATEMENT AS OF DATE: "_RCSTDATE,RCLINE,1,80)
|
---|
| 53 | . D SET($J(RCTOTAL(4),9,2),RCLINE,53,62)
|
---|
| 54 | . D SET($J(RCTOTAL(5),9,2),RCLINE,62,71)
|
---|
| 55 | . D SET($J(RCTOTAL(6),9,2),RCLINE,71,80)
|
---|
| 56 | . ;
|
---|
| 57 | . ; if last statement date, check to see if it is equal to what is stored
|
---|
| 58 | . I RCSTATE=$P($P(RCEVENDA,"^"),".") D
|
---|
| 59 | . . S RCOUTBAL=0
|
---|
| 60 | . . I +RCTOTAL(4)'=+RCEVENT("PB") S RCOUTBAL=1
|
---|
| 61 | . . I +RCTOTAL(5)'=+RCEVENT("IN") S RCOUTBAL=1
|
---|
| 62 | . . I +RCTOTAL(6)'=(RCEVENT("AD")+RCEVENT("CC")+RCEVENT("MF")) S RCOUTBAL=1
|
---|
| 63 | . . I RCOUTBAL D
|
---|
| 64 | . . . S RCLINE=RCLINE+1
|
---|
| 65 | . . . D SET(" ***** LAST PATIENT STATEMENT OUT OF BALANCE",RCLINE,1,80)
|
---|
| 66 | . . . D SET($J(RCEVENT("PB"),9,2),RCLINE,53,62)
|
---|
| 67 | . . . D SET($J(RCEVENT("IN"),9,2),RCLINE,62,71)
|
---|
| 68 | . . . D SET($J(RCEVENT("AD")+RCEVENT("CC")+RCEVENT("MF"),9,2),RCLINE,71,80)
|
---|
| 69 | . ;
|
---|
| 70 | . ;
|
---|
| 71 | . ; add some extra lines
|
---|
| 72 | . S RCLINE=RCLINE+1 D SET(" ",RCLINE,1,80)
|
---|
| 73 | . S RCLINE=RCLINE+1 D SET(" ",RCLINE,1,80)
|
---|
| 74 | ;
|
---|
| 75 | ; show totals of all transactions displayed in listmanager
|
---|
| 76 | S RCLINE=RCLINE+1
|
---|
| 77 | D SET(" --------- -------- --------",RCLINE,1,80)
|
---|
| 78 | S RCLINE=RCLINE+1
|
---|
| 79 | D SET(" TOTAL BALANCE FOR PATIENT ACCOUNT",RCLINE,1,80)
|
---|
| 80 | D SET($J(RCTOTAL(1),9,2),RCLINE,53,62)
|
---|
| 81 | D SET($J(RCTOTAL(2),9,2),RCLINE,62,71)
|
---|
| 82 | D SET($J(RCTOTAL(3),9,2),RCLINE,71,80)
|
---|
| 83 | ;
|
---|
| 84 | ; set valmcnt to number of lines in the list
|
---|
| 85 | S VALMCNT=RCLINE
|
---|
| 86 | D HDR^RCDPAPLM
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | ;
|
---|
| 90 | SETTRAN ; set a transaction on the listmanager line
|
---|
| 91 | N DATE,RCDPDATA
|
---|
| 92 | ;
|
---|
| 93 | ; get 433 data
|
---|
| 94 | D DIQ433^RCDPTPLM(RCTRANDA,".01;.03;12;19;")
|
---|
| 95 | ;
|
---|
| 96 | ; increment line number / transaction counter
|
---|
| 97 | S RCLINE=RCLINE+1,RCTRCNT=RCTRCNT+1
|
---|
| 98 | ;
|
---|
| 99 | ; bill number
|
---|
| 100 | D SET(RCTRCNT,RCLINE,1,80,0,IORVON,IORVOFF)
|
---|
| 101 | D SET($E($P(RCDPDATA(433,RCTRANDA,.03,"E"),"-",2)_" ",1,7),RCLINE,6,12)
|
---|
| 102 | ;
|
---|
| 103 | ; set transaction number
|
---|
| 104 | D SET(RCTRANDA,RCLINE,14,23)
|
---|
| 105 | ;
|
---|
| 106 | ; display transaction incomplete
|
---|
| 107 | I $P($G(^PRCA(433,RCTRANDA,0)),"^",10) D SET("*",RCLINE,24,24) S RCFINCOM=1
|
---|
| 108 | ;
|
---|
| 109 | ; set transaction date
|
---|
| 110 | S DATE=$P($G(RCDPDATA(433,RCTRANDA,19,"I")),".") I 'DATE S DATE=" "
|
---|
| 111 | I DATE S DATE=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
|
---|
| 112 | D SET(DATE,RCLINE,25,33)
|
---|
| 113 | ;
|
---|
| 114 | ; set transaction type
|
---|
| 115 | D SET($TR(RCDPDATA(433,RCTRANDA,12,"E"),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"),RCLINE,35,52)
|
---|
| 116 | D SET($J($P(RCVALUE,"^",2),9,2),RCLINE,53,62)
|
---|
| 117 | D SET($J($P(RCVALUE,"^",3),9,2),RCLINE,62,71)
|
---|
| 118 | ; add marshal fee and court cost to create admin dollars
|
---|
| 119 | D SET($J($P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6),9,2),RCLINE,71,80)
|
---|
| 120 | Q
|
---|
| 121 | ;
|
---|
| 122 | ;
|
---|
| 123 | SETBILL ; set a bill original amount
|
---|
| 124 | N DATE
|
---|
| 125 | ;
|
---|
| 126 | ; increment line number
|
---|
| 127 | S RCLINE=RCLINE+1
|
---|
| 128 | ;
|
---|
| 129 | ; bill number
|
---|
| 130 | D SET(" ",RCLINE,1,80)
|
---|
| 131 | D SET($E($P($P($G(^PRCA(430,+$P(RCVALUE,"^"),0)),"^"),"-",2)_" ",1,7),RCLINE,6,12)
|
---|
| 132 | ;
|
---|
| 133 | ; set bill date
|
---|
| 134 | S DATE=RCDATE I 'DATE S DATE=" "
|
---|
| 135 | I DATE S DATE=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
|
---|
| 136 | D SET(DATE,RCLINE,25,33)
|
---|
| 137 | ;
|
---|
| 138 | ; set transaction type
|
---|
| 139 | D SET("Original Amount",RCLINE,35,52)
|
---|
| 140 | D SET($J($P(RCVALUE,"^",2),9,2),RCLINE,53,62)
|
---|
| 141 | D SET($J(0,9,2),RCLINE,62,71)
|
---|
| 142 | ; add marshal fee and court cost to create admin dollars
|
---|
| 143 | D SET($J(0,9,2),RCLINE,71,80)
|
---|
| 144 | Q
|
---|
| 145 | ;
|
---|
| 146 | ;
|
---|
| 147 | SET(STRING,LINE,COLBEG,COLEND,FIELD,ON,OFF) ; set array
|
---|
| 148 | I $G(FIELD) S STRING=STRING_$S(STRING="":"",1:": ")_$G(RCDPDATA(433,RCTRANDA,FIELD,"E"))
|
---|
| 149 | I STRING="",'$G(FIELD) D SET^VALM10(LINE,$J("",80)) Q
|
---|
| 150 | I '$D(@VALMAR@(LINE,0)) D SET^VALM10(LINE,$J("",80))
|
---|
| 151 | D SET^VALM10(LINE,$$SETSTR^VALM1(STRING,@VALMAR@(LINE,0),COLBEG,COLEND-COLBEG+1))
|
---|
| 152 | I $G(ON)]""!($G(OFF)]"") D CNTRL^VALM10(LINE,COLBEG,$L(STRING),ON,OFF)
|
---|
| 153 | Q
|
---|