[613] | 1 | RCRJROIG ;WISC/RFJ-send data for oig extract ;1 Jul 99
|
---|
| 2 | ;;4.5;Accounts Receivable;**103,174,203,205,220**;Mar 20, 1995
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;
|
---|
| 7 | NONMCCF(DATEEND) ; build the non-mccf bills for user report and submission to oig
|
---|
| 8 | N BILLDA,DATE,DATA7,OTHER,PRINCPAL
|
---|
| 9 | S BILLDA=0 F S BILLDA=$O(^PRCA(430,BILLDA)) Q:'BILLDA D
|
---|
| 10 | . ; if already stored, then it is a current receivable
|
---|
| 11 | . I $D(^TMP($J,"RCRJROIG",BILLDA)) Q
|
---|
| 12 | . ; calculate principal and other (int + admin) balance
|
---|
| 13 | . S DATA7=$G(^PRCA(430,BILLDA,7))
|
---|
| 14 | . S PRINCPAL=+$P(DATA7,"^")
|
---|
| 15 | . S OTHER=$P(DATA7,"^",2)+$P(DATA7,"^",3)+$P(DATA7,"^",4)+$P(DATA7,"^",5)
|
---|
| 16 | . ; in some bills, the principal and other balance may cancel
|
---|
| 17 | . ; each other. for example principal .08 + interest -.08 = 0
|
---|
| 18 | . I (PRINCPAL+OTHER)'>0 Q
|
---|
| 19 | . ; store the data for submission to oig
|
---|
| 20 | . S ^TMP($J,"RCRJROIG",BILLDA)=PRINCPAL_"^"_OTHER
|
---|
| 21 | . ; store the data for the user report (only if bill activated)
|
---|
| 22 | . S DATE=+$P($P($G(^PRCA(430,BILLDA,6)),"^",21),".") I 'DATE Q
|
---|
| 23 | . S ^TMP($J,"RCRJRCOLREPORT",DATE,BILLDA)=PRINCPAL_"^"_OTHER
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | ;
|
---|
| 27 | OIG(DATEEND) ; send data to the OIG
|
---|
| 28 | N BILLDA,COUNT,DATA,DATA0,FUND,FYQ,OIGDATA,SEQUENCE,SITE,TOTALAMT
|
---|
| 29 | N TOTALCNT,TOTALMSG,X,X1
|
---|
| 30 | ;
|
---|
| 31 | ; get previous fiscal year quarter for mail message header
|
---|
| 32 | S FYQ=$E(DATEEND,4,5),FYQ=$S(FYQ<4:1,FYQ<7:2,FYQ<10:3,1:4)
|
---|
| 33 | S SITE=$$SITE^RCMSITE()
|
---|
| 34 | ;
|
---|
| 35 | ; calculate the number of messages to be sent
|
---|
| 36 | S (X,X1)=0 F S X=$O(^TMP($J,"RCRJROIG",X)) Q:'X S X1=X1+1
|
---|
| 37 | S TOTALMSG=X1\272 I X1#272 S TOTALMSG=TOTALMSG+1
|
---|
| 38 | ;
|
---|
| 39 | ; build the extract for oig
|
---|
| 40 | S COUNT=0 ; used to count bills to be sent in a single mail msg
|
---|
| 41 | S SEQUENCE=0 ; used to count mail messages sent (in mail subject)
|
---|
| 42 | S TOTALCNT=0 ; used to count total bills sent all mail messages
|
---|
| 43 | S TOTALAMT=0 ; used to calculate total dollars all mail messages
|
---|
| 44 | K ^TMP($J,"RCRJROIGMM")
|
---|
| 45 | S BILLDA=0 F S BILLDA=$O(^TMP($J,"RCRJROIG",BILLDA)) Q:'BILLDA D
|
---|
| 46 | . S DATA=^TMP($J,"RCRJROIG",BILLDA)
|
---|
| 47 | . S DATA0=^PRCA(430,BILLDA,0)
|
---|
| 48 | . ; bill number, position 1-11
|
---|
| 49 | . S OIGDATA=$$LJ^XLFSTR($P(DATA0,"^"),11)
|
---|
| 50 | . ; category, position 12-36
|
---|
| 51 | . S OIGDATA=OIGDATA_$$LJ^XLFSTR($E($P($G(^PRCA(430.2,+$P(DATA0,"^",2),0)),"^"),1,25),25)
|
---|
| 52 | . ; status, position 37-56
|
---|
| 53 | . S OIGDATA=OIGDATA_$$LJ^XLFSTR($E($P($G(^PRCA(430.3,+$P(DATA0,"^",8),0)),"^"),1,20),20)
|
---|
| 54 | . ; principal balance, position 57-65 (example 000000110 for 1.10)
|
---|
| 55 | . S OIGDATA=OIGDATA_$TR($J($P(DATA,"^"),10,2)," .","0")
|
---|
| 56 | . ; date status last updated, position 66-76 (example APR 08,1999)
|
---|
| 57 | . S OIGDATA=OIGDATA_$$DATE($P(DATA0,"^",14))
|
---|
| 58 | . ; fms fund, position 77-82
|
---|
| 59 | . S FUND=$$GETFUNDB^RCXFMSUF(BILLDA,1)
|
---|
| 60 | . S FUND=$$ADJFUND^RCRJRCO(FUND) ; may delete this line after 10/1/03
|
---|
| 61 | . S OIGDATA=OIGDATA_$J(FUND,6)
|
---|
| 62 | . ; revenue source code, position 83-86
|
---|
| 63 | . S OIGDATA=OIGDATA_$J($$GETRSC(BILLDA,FUND),4)
|
---|
| 64 | . ; general ledger account number, position 87-90
|
---|
| 65 | . S OIGDATA=OIGDATA_$J($P(DATA,"^",3),4)
|
---|
| 66 | . ; date bill entered, position 91-101 (example APR 08,1999)
|
---|
| 67 | . S OIGDATA=OIGDATA_$$DATE($P(DATA0,"^",10))
|
---|
| 68 | . ; interest + admin balance, position 102-110
|
---|
| 69 | . S OIGDATA=OIGDATA_$TR($J($P(DATA,"^",2),10,2)," .","0")_"$"
|
---|
| 70 | . ;
|
---|
| 71 | . ; total count and dollars for bills sent
|
---|
| 72 | . S TOTALCNT=TOTALCNT+1
|
---|
| 73 | . S TOTALAMT=TOTALAMT+$P(DATA,"^")
|
---|
| 74 | . ;
|
---|
| 75 | . ; store data for transmission
|
---|
| 76 | . S COUNT=COUNT+1
|
---|
| 77 | . S ^TMP($J,"RCRJROIGMM",COUNT)=OIGDATA
|
---|
| 78 | . ; only send message with 272 bills
|
---|
| 79 | . I COUNT'=272 Q
|
---|
| 80 | . ; if there are no more bills, do not send message until the
|
---|
| 81 | . ; totals are placed at the end
|
---|
| 82 | . I '$O(^TMP($J,"RCRJROIG",BILLDA)) Q
|
---|
| 83 | . ;
|
---|
| 84 | . ; send current code sheets
|
---|
| 85 | . S SEQUENCE=SEQUENCE+1
|
---|
| 86 | . D MAILIT(SITE,FYQ,SEQUENCE)
|
---|
| 87 | . S COUNT=0
|
---|
| 88 | . K ^TMP($J,"RCRJROIGMM")
|
---|
| 89 | ;
|
---|
| 90 | ; mail last message with totals at the end
|
---|
| 91 | S COUNT=COUNT+1
|
---|
| 92 | S ^TMP($J,"RCRJROIGMM",COUNT)="END OF TRANSMISSION FOR SITE# "_SITE_": TOTAL RECORDS: "_TOTALCNT_" TOTAL AMOUNT: "_TOTALAMT
|
---|
| 93 | S SEQUENCE=SEQUENCE+1
|
---|
| 94 | D MAILIT(SITE,FYQ,SEQUENCE)
|
---|
| 95 | ;
|
---|
| 96 | K ^TMP($J,"RCRJROIGMM")
|
---|
| 97 | K ^TMP($J,"RCRJROIG")
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | ;
|
---|
| 101 | MAILIT(SITE,FYQ,SEQUENCE) ; send code sheets to oig
|
---|
| 102 | N %,%H,%Z,X,XCNP,XMDUZ,XMSCR,XMSUB,XMY,XMZ,Y
|
---|
| 103 | ;
|
---|
| 104 | ; set a header record in each file to be transmitted
|
---|
| 105 | S ^TMP($J,"RCRJROIGMM",.5)="OH$"_$$RJ^XLFSTR(SEQUENCE,5,0)_"$"_$$RJ^XLFSTR(TOTALMSG,5,0)_"$|"
|
---|
| 106 | ;
|
---|
| 107 | I TOTALCNT=0 S XMY("G.RC AR DATA COLLECTOR")=""
|
---|
| 108 | S XMY("XXX@Q-OIG.VA.GOV")=""
|
---|
| 109 | S XMDUZ="AR PACKAGE"
|
---|
| 110 | S %H=$H D YX^%DTC
|
---|
| 111 | S XMSUB=SITE_"/BILL/"_FYQ_"/SEQ#: "_SEQUENCE_"/"_Y
|
---|
| 112 | S XMTEXT="^TMP($J,""RCRJROIGMM"","
|
---|
| 113 | D ^XMD
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | ;
|
---|
| 117 | DATE(DATE) ; format date
|
---|
| 118 | ; example input=2990408, output=APR 08,1999
|
---|
| 119 | I DATE D
|
---|
| 120 | . S Y=DATE D DD^%DT
|
---|
| 121 | . S DATE=$E(Y,1,3)_" "_$E(DATE,6,7)_","_(1700+$E(DATE,1,3))
|
---|
| 122 | Q $$LJ^XLFSTR(DATE,11)
|
---|
| 123 | ;
|
---|
| 124 | ;
|
---|
| 125 | GETRSC(BILLDA,FUND) ; return the rsc for a bill
|
---|
| 126 | I '$$PTACCT^PRCAACC(FUND),FUND'=4032 Q $P($G(^PRCA(430,BILLDA,11)),"^",6)
|
---|
| 127 | ; check missing patient for reimbursable health insurance
|
---|
| 128 | I $P(^PRCA(430,BILLDA,0),"^",2)=9,'$P(^PRCA(430,BILLDA,0),"^",7) Q " "
|
---|
| 129 | Q $$CALCRSC^RCXFMSUR(BILLDA)
|
---|