Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCABJ

PRCABJ.m

Go to the documentation of this file.
  1. PRCABJ ;WASH-ISC@ALTOONA,PA/LDB,TJK - NIGHTLY PROCESS FOR ACCOUNTS RECEIVABLE ;11/8/96 3:54 PM
  1. ;;4.5;Accounts Receivable;**11,34,101,114,155,153,141,165,167,173,201,237,304,301,378,400**;Mar 20, 1995;Build 13
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;This routine is called by the PRCA NIGHTLY PROCESS option which should be run nightly to call the following tasks
  1. ;1) Update of interest/admin charges on patients' accounts
  1. ;2) Update statement days
  1. ;3) Print of Patient Statements, Uniform Billing forms, and non-patient follow-up letters
  1. ;4) Purge of Receipts
  1. ;5) Creation of TOP (Treasury Offset Program) documents
  1. ;6) Creation of Cross-Servicing (Treasury Cross-Servicing Project) documents
  1. ;7) Print of the Follow-up list
  1. ;8) Purge AR Events
  1. ;9) Flag prepayments for refund review
  1. ;10) Print Comment List
  1. ;11) Starts the Repayment Plan Monitor
  1. ;12) Generates Diagnostic Measures Workload Reports
  1. ;13) Matches EFT with ERA
  1. ;14) Generates CBO Data Extract files for Boston ARC
  1. ;15) Auto-audit of Paper Bills
  1. ;16) Generate the AR Diagnostic Measures Statistical Reports (for a defined period)
  1. ;17) Auto Updates Repayment Plans
  1. ;18) Clean out older AR Metrics data.
  1. ;
  1. ;Process will first check and Validate AR pointer files 341.1,
  1. ;430.2, and 430.3.
  1. ;Process will terminate and send bulletin if files are not valid
  1. ;
  1. EN ;Start of nightly process-check to see if process is already running
  1. L +^RC("PRCABJ"):5 Q:'$T
  1. NEW ERROR S ERROR=0
  1. D VERIFY I ERROR L -^RC("PRCABJ") Q
  1. ;
  1. DRIVER ;All processes are called from this point
  1. N CHK,POP,% S CHK=0
  1. D CHK,RECALL,CHK,INT,CHK,RPP,CHK,EN^RCCPCBJ,CHK,STM,CHK,RECPT,CHK,TOP,CHK,TCSP,CHK,EVNT,CHK,BNUM ; PRCA*4.5*400
  1. D CHK,ENUM,CHK,PURFMS,CHK,EN3^RCFMOBR,CHK,START^RCRJR,CHK,UB
  1. D CHK,STATMNT,CHK,UDLIST^PRCABJ1,CHK,LIST,CHK,COMMENT ; PRCA*4.5*400 removed call to REPAY tag
  1. D CHK,WRKLD,CHK,EFT,CHK,CBO,CHK,ABAUDIT,CHK,ARDM,CHK,CLNMTR
  1. D NOW^%DTC S $P(^RC(342,1,0),"^",10)=%
  1. L -^RC("PRCABJ")
  1. K ^RC("PRCABJ")
  1. Q
  1. ;
  1. CHK ;checkpoint of process
  1. S CHK=CHK+1 S ^RC("PRCABJ")=CHK
  1. Q
  1. ;
  1. VERIFY ;Verifies Pointer Files--Will HALT Process if Pointer Files Invalid
  1. NEW A,B,FILE
  1. F FILE=341.1,430.2,430.3 D Q:ERROR
  1. .S A=$S(FILE=341.1:"AC;0;2",FILE=430.2:"AC;0;7",1:"AC;0;3")
  1. .S B=$S(FILE=341.1:"",1:"C;0;2")
  1. .D EN1^PRCABJV(FILE,A,B,.ERROR)
  1. .Q:'ERROR
  1. .;SEND BULLETIN HERE IF FILE IN ERROR
  1. .NEW XMB,XMTEXT,XMDUZ
  1. .S XMDUZ="ACCOUNTS RECEIVABLE PACKAGE"
  1. .S XMB="PRCA NIGHTLY PROCESS ABORT"
  1. .S XMTEXT="ERROR("
  1. .D ^XMB
  1. .Q
  1. Q
  1. ;
  1. INT ; update interest and admin charges for non-benefit debts
  1. ; example: vendor, employee, ex-employee
  1. D NONBENE^RCBECHGS
  1. Q
  1. ;
  1. STM ;Update statement days for PERSONS, VENDORS, and Institutions
  1. D STM^PRCABJ1
  1. Q
  1. ;
  1. STATMNT ;Print patient statements
  1. N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH,PRCADEV
  1. S (IOP,PRCADEV)=$P($G(^RC(342,1,0)),"^",8)
  1. I IOP]"" D
  1. .S ZTRTN="PRCAGS",ZTDTH=$H,ZTDESC="Print AR Statements/Letters"
  1. .S %ZIS="N0" D ^%ZIS Q:POP
  1. .S ZTSAVE("PRCADEV")="" D ^%ZTLOAD,^%ZISC
  1. Q
  1. ;
  1. RECPT ;Manage Receipts and Deposits
  1. N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH
  1. S ZTIO="",ZTRTN="MAN^RCDPUT",ZTDTH=$H,ZTDESC="Manage Receipts and Deposits"
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. TOP ;Transmit TOP documents
  1. Q:$$DOW^XLFDT(DT,1)'=1
  1. I DT'<$P($G(^RC(342,1,30)),"^",1)&(DT'>$P($G(^RC(342,1,30)),"^",2)) D ^RCEXINAD
  1. N RCM,RCDOC
  1. ;Run of TOP documents every Monday
  1. I +$E(DT,6,7)>7,$E(DT,6,7)<15 S RCM=1
  1. I '$D(^RCD(340,"TOP")),'$G(RCM) Q
  1. S RCDOC=$S($G(RCM):"M",1:"U")
  1. I $E(DT,4,5)=12,RCDOC="M" S RCDOC="Y"
  1. TOPQUE N ZTDESC,ZTASK,ZTDTH,ZTIO,ZTRTN,ARDUZ,ZTSAVE
  1. S ZTIO="",ZTRTN="^RCTOPD",ZTSAVE("RCDOC")=""
  1. S ZTDESC="TOP REFERRAL DOCUMENTS",ZTDTH=$H
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. TCSP ;Transmit Cross-Servicing (Treasury Cross-Servicing Project) documents
  1. Q:$$DOW^XLFDT(DT,1)'=2
  1. ;Run TCSP documents every Tuesday
  1. TCSPQUE N ZTDESC,ZTASK,ZTDTH,ZTIO,ZTRTN
  1. S ZTIO="",ZTRTN="^RCTCSPD"
  1. S ZTDESC="CROSS-SERVICING REFERRAL DOCUMENTS",ZTDTH=$H
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. UB ;Print Uniform Billing forms
  1. N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH
  1. S ZTIO="",ZTRTN="PRCALT2",ZTDTH=$H,ZTDESC="Print Reimbursable Health Insurance Uniform Billing forms"
  1. D ^%ZTLOAD,^%ZISC
  1. Q
  1. ;
  1. LIST ;Print Follow-up List
  1. N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH,BEG,END,PRCADEV
  1. S IOP=$P($G(^RC(342,1,0)),"^",8)
  1. I IOP]"" D
  1. .S %ZIS="N0" D ^%ZIS Q:POP
  1. .S ZTRTN="DQ1^PRCACM",ZTDTH=$H,PRCADEV=ION_";"_IOST_";"_IOM_";"_IOSL_";"_$G(IO("DOC"))
  1. .S (ZTSAVE("BEG"),ZTSAVE("END"))=DT,ZTSAVE("PRCADEV")="",ZTDESC="Bill Comment Follow-Up List"
  1. .D ^%ZTLOAD,^%ZISC
  1. Q
  1. ;
  1. COMMENT ;Print Comment List
  1. N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH,BEG,END,PRCADEV
  1. S IOP=$P($G(^RC(342,1,0)),"^",8)
  1. I IOP]"" D
  1. .S %ZIS="N0" D ^%ZIS Q:POP
  1. .S ZTRTN="DQ2^PRCACM",ZTDTH=$H,PRCADEV=ION_";"_IOST_";"_IOM_";"_IOSL_";"_$G(IO("DOC"))
  1. .S (ZTSAVE("BEG"),ZTSAVE("END"))=DT,ZTSAVE("PRCADEV")="",ZTDESC="Debtor Comment Follow-up List"
  1. .D ^%ZTLOAD,^%ZISC
  1. Q
  1. ;
  1. WRKLD ; Generates Diagnostic Measures Workload Reports
  1. N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
  1. S ZTIO="",ZTRTN="DQ^RCDMBWLR",ZTDTH=$H,ZTDESC="Diagnostic Measures Workload Reports"
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. ;PRCA*4.5*304 new tag ARDM
  1. ARDM ; Generate AR Diagnostic Measures statistic reports weekly
  1. N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
  1. ;
  1. ; run the report
  1. S ZTIO="",ZTRTN="AUTO^RCDPENRU",ZTDTH=$H,ZTDESC="AR Diagnostic Measures Statistical Reports"
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. EVNT ;Purge AR Events
  1. N IOP,ZTIO,ZTDESC,ZTASK,ZTIO,ZTRTN,ZTSAVE,%ZIS
  1. S ZTIO="",ZTRTN="PUR^RCEVDRV1",ZTDTH=$H,ZTDESC="Purge AR Event Information" D ^%ZTLOAD
  1. Q
  1. PURFMS ;Purge FMS documents
  1. NEW ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. S ZTIO="",ZTRTN="EN^RCFMPUR",ZTDESC="AR/FMS DOC PURGE",ZTDTH=$H D ^%ZTLOAD
  1. Q
  1. ;
  1. EFT ; Starts matching of EFTs to EOBs job
  1. NEW ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. S ZTIO="",ZTRTN="EN^RCDPEM",ZTDESC="AR/EDI LOCKBOX MATCHING EFTs",ZTDTH=$H D ^%ZTLOAD
  1. Q
  1. ;
  1. BNUM ;Check bill numbering series
  1. I $P(^RC(342,1,0),"^",3)="" S $P(^RC(342,1,0),"^",3)="K"_$E($$FY^RCFN01,2)_"00000"
  1. I $E($P(^RC(342,1,0),"^",3),2)'=$E($$FY^RCFN01,2) S $P(^RC(342,1,0),"^",3)="K"_$E($$FY^RCFN01,2)_"00000"
  1. Q
  1. ENUM ;Check event numbering series
  1. I $P(^RC(342,1,0),"^",6)="" S $P(^RC(342,1,0),"^",6)="K"_$E($$FY^RCFN01,2)_"A0000"
  1. I $E($P(^RC(342,1,0),"^",6),2)'=$E($$FY^RCFN01,2) S $P(^RC(342,1,0),"^",6)="K"_$E($$FY^RCFN01,2)_"A0000"
  1. Q
  1. ;
  1. CBO ; Create Extract Files for ARC
  1. NEW ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. S ZTIO="",ZTRTN="EN^RCXVTSK",ZTDESC="CBO DATA EXTRACT",ZTDTH=$H
  1. D ^%ZTLOAD
  1. Q
  1. ;
  1. ABAUDIT ;PRCA*4.5*304 - Auto-audit Paper bills
  1. ;
  1. N ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. ;
  1. S ZTIO="",ZTRTN="ABAUDIT^PRCABJ2",ZTDESC="AR AUTO-AUDIT OF PAPER BILLS",ZTDTH=$H D ^%ZTLOAD
  1. Q
  1. ;
  1. RPP ;PRCA*4.5*378 - Repayment Plan Nightly Process
  1. ;
  1. N ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. ;
  1. S ZTIO="",ZTRTN="MAIN^RCRPNP",ZTDESC="AR REPAYMENT PLAN NIGHTLY PROCESS",ZTDTH=$H D ^%ZTLOAD
  1. Q
  1. ;
  1. CLNMTR ;PRCA*4.5*378 - Remove AR Metrics file data older than the # days specified by the METRICS RETENTION DAYS parameter
  1. ;
  1. N ZTRTN,ZTIO,ZTDTH,ZTSK,ZTDESC
  1. ;
  1. S ZTIO="",ZTRTN="CLEANUP^RCSTATU",ZTDESC="AR METRICS File (#340.7) data cleanup",ZTDTH=$H D ^%ZTLOAD
  1. Q
  1. ;
  1. RECALL ; if HRFS patient flag is set or date of death is set, then recall CS bills, stop TOP referrals, and remove debtors from DMC PRCA*4.5*400
  1. N HRFSFLG,RCBILL,RCDB,RCDFN,Z
  1. ; CS bills
  1. S RCBILL=0 F S RCBILL=$O(^PRCA(430,"TCSP",RCBILL)) Q:'RCBILL D
  1. .S RCDB=$P($G(^PRCA(430,RCBILL,0)),U,9) Q:RCDB'>0
  1. .I +$P($G(^PRCA(430,RCBILL,15)),U,2) Q ; recall has already been set for this bill
  1. .S Z=$P(^RCD(340,RCDB,0),U) I $P(Z,";",2)'="DPT(" Q
  1. .S RCDFN=$P(Z,";"),HRFSFLG=$$CHKHRFS^RCHRFSUT(RCDFN,DT)
  1. .I HRFSFLG=1 S Z=$$RECALL^RCTCSPU(RCBILL)
  1. .Q
  1. ; TOP referrals
  1. S RCDB=0 F S RCDB=$O(^RCD(340,"TOP",RCDB)) Q:'RCDB D
  1. .S Z=$P(^RCD(340,RCDB,0),U) I $P(Z,";",2)'="DPT(" Q
  1. .I +$P($G(^RCD(340,RCDB,6)),U,2) Q ; stop TOP referral flag has been set already
  1. .S RCDFN=$P(Z,";"),HRFSFLG=$$CHKHRFS^RCHRFSUT(RCDFN,DT)
  1. .I HRFSFLG=1 S Z=$$STOPREF^RCTOPU(RCDB,"O","High Risk flag is set for this debtor",DT) D HRFSCMNT^RCEVGEN(RCDB)
  1. .Q
  1. ; cancel DMC
  1. S RCDB=0 F S RCDB=$O(^RCD(340,"DMC",1,RCDB)) Q:'RCDB D
  1. .S Z=$P(^RCD(340,RCDB,0),U) I $P(Z,";",2)'="DPT(" Q
  1. .I +$P($G(^RCD(340,RCDB,3)),U,10) Q ; DMC deletion flag has been set already
  1. .S RCDFN=$P(Z,";"),HRFSFLG=$$CHKHRFS^RCHRFSUT(RCDFN,DT)
  1. .I HRFSFLG=1 S Z=$$CANCDMC^RCDMC90U(RCDB) D HRFSCMNT^RCEVGEN(RCDB)
  1. .Q
  1. Q