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

PRCA399P.m

Go to the documentation of this file.
PRCA399P ;MNTVBB/RGB - Patient bills reset AFTER 382/385 ; 2/22/22
 ;;4.5;Accounts Receivable;**399**;Feb 05, 2022;Build 67
 ;;Per VA Directive 6402, this routine should not be modified.
 Q
EN S PRCASITE=$E($$SITE^RCMSITE(),1,3),PRCASTNM=$P(^DIC(4,PRCASITE,0),U)
 I $D(^XTMP("PRCA399",$J,998)) W !!,"*********CANNOT RUN BACK TO BACK WITHOUT SPECIAL RESTORE ********" Q
 D MES^XPDUTL("Reset all AR debtors bills that had an incorrect posting")
 D MES^XPDUTL("of Covid decrease adjustments for interest/admin fees")
 D MES^XPDUTL("")
 D MES^XPDUTL("SITE: "_PRCASITE_" - "_PRCASTNM)
 K ^XTMP("PRCA399")
 S ^XTMP("PRCA399",0)=$$FMADD^XLFDT(DT,150)_"^"_DT
 S ^XTMP("PRCA399",$J,1,0)=0,^XTMP("PRCA399",$J,2,0)=0
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"ASTART382/385 FIX")=%
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"B1FINDBILS399")=%
 D SETTAB,FINDF1ST,BILLDT
 S U="^",(PRCAT,PRCAT1,PRCAT2,PRCAT3,PRCAT4,PRCAT5,PRCAPRT)=0,PRCAZ=+$G(^XTMP("PRCA399",$J,0,0))
 S PRCATX=PRCAF1ST
 F  S PRCATX=$O(^PRCA(433,PRCATX)) Q:'PRCATX  D
 .S PRCAR=$G(^PRCA(433,PRCATX,5)) Q:PRCAR'["PANDEMIC REVERSAL"
 .S PRCAT=PRCAT+1
 .S PRCABILL=$P($G(^PRCA(433,PRCATX,0)),U,2),PRCADEB=$P(^PRCA(430,PRCABILL,0),U,9)
 .I '$D(^RCD(340,PRCADEB,0))!($P(^RCD(340,PRCADEB,0),U)'[";DPT") Q
 .I ";16;42;"'[(";"_$P($G(^PRCA(430,PRCABILL,0)),U,8)_";") Q:'$D(^XTMP("PRCA399",$J,3,PRCADEB,PRCABILL))  S PRCAT5=PRCAT5+1
 .I '$D(^XTMP("PRCA399",$J,2,1,PRCADEB)) D
 ..S ^XTMP("PRCA399",$J,2,1,PRCADEB)="*",^XTMP("PRCA399",$J,2,1,PRCADEB,0)="0^0"
 ..S PRCAT2=PRCAT2+1,$P(^XTMP("PRCA399",$J,2,1,PRCADEB),U,2)=$P(^XTMP("PRCA399",$J,2,1,0),U)
 .S ^XTMP("PRCA399",$J,2,1,PRCADEB,2,PRCABILL)="*"
 .I '$D(^XTMP("PRCA399",$J,1,1,PRCABILL)) D
 ..S PRCAT1=PRCAT1+1
 ..S ^XTMP("PRCA399",$J,2,1,PRCADEB,0,PRCABILL)="0^0"
 ..S ^XTMP("PRCA399",$J,2,1,PRCADEB,2,PRCABILL)=""
 ..F J=0,6,7 S ^XTMP("PRCA399",$J,1,1,PRCABILL,J)=$G(^PRCA(430,PRCABILL,J))
 ..S PRCAR7=$G(^PRCA(430,PRCABILL,7))
 ..S ^XTMP("PRCA399",$J,1,1,PRCABILL,99,PRCATX,1)=^PRCA(433,PRCATX,1)
 .S PRCABDT=$P($G(^PRCA(430,PRCABILL,6)),U,21) S:PRCABDT PRCABDT=PRCABDT-0.001 I 'PRCABDT S PRCABDT=0
 .S ^XTMP("PRCA399",$J,2,4,PRCADEB,PRCABDT,PRCABILL)=""
 .I $P(PRCAR7,U,2)<0!($P(PRCAR7,U,3)<0) S ^XTMP("PRCA399",$J,1,1,PRCABILL,"8B")=PRCAR7,PRCAT3=PRCAT3+1 I PRCAZ W !,PRCABILL,?15,PRCAR7 R:PRCAZ PRCAZ:10
 D MES^XPDUTL(""),MES^XPDUTL("")
 D MES^XPDUTL("FIRST TRANSACTION SET FOR INT/ADMIN PANDEMIC OFFSETS: "_PRCAF1ST)
 D MES^XPDUTL("TOTAL DEBTORS FOUND WITH PANDEMIC OFFSETS: "_PRCAT2)
 D MES^XPDUTL("TOTAL BILLS FOUND FOR PANDEMIC RESET (382/385): "_PRCAT1)
 D MES^XPDUTL("TOTAL PANDEMIC ADJ TX FOUND FORCING BILL RESETS: "_PRCAT)
 D MES^XPDUTL("TOTAL BILLS WITH '-' IN NODE 7: "_PRCAT3)
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"B2ENDFINDBILS")=%_U_PRCAT2_U_PRCAT1_U_PRCAT5_U_PRCAT_U_PRCAT3
 K PRCAT,PRCAT1,PRCAT2,PRCAT3,PRCATX,PRCAR,PRCABILL,PRCADEB,PRCAR7,PRCAZ,PRCASTNM
 D ALLDEBTS
 D EN^PRCA399E,5^PRCA399E
 D EN^PRCA399A
RESET ;SET BAD TX,SET 7 NODES,REPORT OF EXCEPTIONS,REPORT OF PREPAYS
 D 14^PRCA399E,15^PRCA399E,16^PRCA399E,20^PRCA399E S ^XTMP("PRCA399",$J,998)="RUN: "_$H
 D MES^XPDUTL(""),MES^XPDUTL("")
 D MES^XPDUTL("    *** THE REBUILD OF THE AR FILES IN PATCH PRCA*4.5*399 IS COMPLETE ***")
 D MES^XPDUTL(""),MES^XPDUTL("RUN OPTION 'STATEMENT DISCREPANCY LISTING' TO CHECK FOR DEBTOR DISCREPANCIES")
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"ZZENDOF399RESET")=%
 K ^TMP("PRCACD",$J)
 K I,J,PRCADBT,PRCABILL,PRCACD,PRCADEB,PRCAF1ST,PRCAR,PRCAR7,PRCASITE,PRCABDT,PRCADBB,PRCATYR
 K PRCASTNM,PRCAT,PRCAT1,PRCAT2,PRCAT3,PRCAT4,PRCAT5,PRCATX,PRCAZ,DIC,PRCABLDT,PRCASITE
 Q
FINDF1ST ;Searches file 433 for first 'PANDEMIC OFFSET' to drive bill reset process
 S PRCADEB=0,PRCABTX=$P(^PRCA(433,0),U,3)
 F  S PRCADEB=$O(^PRCA(430,"C",PRCADEB)),PRCABDT=3210500,PRCAYES=0 Q:'PRCADEB  D
 .F  S PRCABDT=$O(^PRCA(433,"ATD",PRCADEB,PRCABDT)),PRCATX=0 Q:'PRCABDT  D  Q:PRCAYES
 ..F  S PRCATX=$O(^PRCA(433,"ATD",PRCADEB,PRCABDT,PRCATX)) Q:'PRCATX  D  Q:PRCAYES
 ...Q:'$D(^PRCA(433,PRCATX,5))
 ...Q:$G(^PRCA(433,PRCATX,5))'["PANDEMIC REV"
 ...I PRCATX'<PRCABTX Q
 ...S PRCABTX=PRCATX,PRCAYES=1
 S PRCAF1ST=PRCABTX-10,^XTMP("PRCA399",$J,1,0,0)=PRCAF1ST
 Q
SETTAB ;SET TX CODE TABLE IN TEMP GLOBAL
 K ^TMP("PRCACD")
 F II=1:1 S PRCACD=$P($T(TXCODES+II),";",3) Q:PRCACD=""  S ^TMP("PRCACD",$J,+PRCACD)=$P(PRCACD,":",2)
 Q
BILLDT ;FIND PREVIOUS/CURRENT MONTH STATEMENT DATE BASED ON INSTALL DATE VS STATEMENT DAY
 N PRCABDAY,PRCAPRVD,PRCANEWD,PRCABILD
 S PRCABILD=$P(^RC(342,1,0),U,11)
 S PRCABDAY=$E(DT,1,5)_$E("00",1,2-$L(PRCABILD))_PRCABILD
 S X1=PRCABDAY-100,X2=-3 D C^%DTC
 S PRCAPRVD=X_".05",PRCASETD=PRCAPRVD
 S X1=PRCABDAY,X2=-3 D C^%DTC
 S PRCANEWD=X_".05",PRCASETD=PRCAPRVD I (DT_".0501")>PRCANEWD S PRCASETD=PRCANEWD
 S ^XTMP("PRCA399",$J,2,1,0)=PRCASETD_U_PRCABILD_U_PRCASITE_U_PRCABDAY
 Q
GETDBTIM ;Get debtor last statement build end time **NOT CALLED**
 N PRCABDAT,PRCACDT
 S PRCACDT=$P(^XTMP("PRCA399",$J,2,1,0),U)
 S (PRCACDT,PRCASCDT)=9999999.999999-PRCABDAT
 S PRCACDT=$O(^RC(341,"AD",PRCADEB,2,PRCACDT))
 I 'PRCACDT!(PRCACDT\1'=(PRCASCDT\1)) S PRCACDT=PRCABDAT
 S $P(^XTMP("PRCA399",$J,2,1,PRCADEB),U,2)=PRCACDT
 S ^XTMP("PRCA399",$J,2,1,0)=PRCABDAT_U_PRCABILD_U_PRCASITE_U_PRCASDAY
 Q
ALLDEBTS ;GATHER REST OF DEBTORS/BILLS NOT HIT BY 382/385
 S (PRCATB1,PRCADB)=0
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"B3FINDNONCOVIDDEBTORSBILLS")=%
 F  S PRCADB=$O(^XTMP("PRCA399",$J,2,1,PRCADB)),PRCADBB=0 Q:'PRCADB  D
 .D CURTX
 .F  S PRCADBB=$O(^PRCA(430,"C",PRCADB,PRCADBB)),PRCATX=0 Q:'PRCADBB  D
 ..I ";16;42;"'[(";"_$P($G(^PRCA(430,PRCADBB,0)),U,8)_";") Q:'$D(^XTMP("PRCA399",$J,3,PRCADB,PRCADBB))    ;######
 ..I '$D(^XTMP("PRCA399",$J,1,1,PRCADBB)) D
 ...S PRCATB1=PRCATB1+1
 ...F J=0,6,7 S ^XTMP("PRCA399",$J,1,1,PRCADBB,J)=$G(^PRCA(430,PRCADBB,J))
 ...S ^XTMP("PRCA399",$J,2,1,PRCADB,0,PRCADBB)="0^0"
 ...S ^XTMP("PRCA399",$J,2,1,PRCADB,2,PRCADBB)=""
 ...S PRCABDT=$P($G(^PRCA(430,PRCADBB,6)),U,21) S PRCABDT=$S('PRCABDT:PRCABDT=0,1:PRCABDT-.001)
 ...S ^XTMP("PRCA399",$J,2,4,PRCADB,PRCABDT,PRCADBB)=""
 D NOW^%DTC S ^XTMP("PRCA399",$J,999,"B4ENDNONCOVIDDEBTORSBILLS")=%
 D MES^XPDUTL(""),MES^XPDUTL("")
 D MES^XPDUTL("TOTAL PANDEMIC DEBTOR NON-PANDEMIC BILLS FOUND: "_PRCATB1)
 K PRCATB1,PRCADB,PRCADBB,PRCABDT
 Q
CURTX N PRCATX,PRCADTCK S PRCADTCK=PRCASETD
 F  S PRCADTCK=$O(^PRCA(433,"ATD",PRCADB,PRCADTCK)),PRCATX=0 Q:'PRCADTCK  D
 .S PRCATX=0
 .F  S PRCATX=$O(^PRCA(433,"ATD",PRCADB,PRCADTCK,PRCATX)) Q:'PRCATX  D
 ..S ^XTMP("PRCA399",$J,3,PRCADB,$P(^PRCA(433,PRCATX,0),U,2),PRCATX)=^PRCA(433,PRCATX,1)
 Q
 ;
TXCODES ;TRANSACTION CODES
 ;;1:INCREASE ADJUSTMENT^AJ^1^1^^1^I^^A1
 ;;2:PAYMENT (IN PART)^PP^2^1^^1^P^^D1
 ;;3:REFER TO RC^RC^3^0^^1^^^ZZ
 ;;4:REFER TO DOJ^RJ^4^0^^1^^^ZZ
 ;;5:REESTABLISH TO RC/DOJ^RR^5^0^^1^^^ZZ
 ;;6:RETURNED BY RC/DOJ^RD^6^0^^1^^^ZZ
 ;;7:CASH COLLECTION BY RC/DOJ^CJ^7^1^^1^P^^ZZ
 ;;8:TERM.BY FIS.OFFICER^TO^8^1^^1^D^^D1
 ;;9:TERM.BY COMPROMISE^TC^9^1^^1^D^^ZZ
 ;;10:WAIVED IN FULL^WF^10^1^^1^D^^D1
 ;;11:WAIVED IN PART^WP^11^1^^1^D^^D1
 ;;12:ADMIN.COST CHARGE^AC^12^0^^1^I^^A3
 ;;13:INTEREST/ADM. CHARGE^IC^13^0^^1^I^^A2
 ;;14:EXEMPT INT/ADM. COST^E^14^0^^1^D^^D2
 ;;15:INCOMPLETE^IN^101^0^^0^^^ZZ  
 ;;16:ACTIVE^A^102^0^1^1^^^ZZ
 ;;17:IN-ACTIVE^IA^103^0^1^^^^ZZ
 ;;18:NEW BILL^N^104^0^^1^^^ZZ
 ;;19:SUSPENSE^S^105^0^1^1^^^ZZ
 ;;20:PENDING APPROVAL^PA^205^0^^0^^^ZZ
 ;;21:PENDING CALM CODE^PC^107^0^1^0^^^ZZ
 ;;22:COLLECTED/CLOSED^CC^108^0^1^1^^^ZZ
 ;;23:WRITE-OFF^WO^109^0^1^1^D^^D1;rep tot
 ;;24:MARSHAL/COURT COST^ML^15^0^^1^I^^ZZ
 ;;25:REPAYMENT PLAN^RP^16^0^^0^^^
 ;;26:CANCELLED BILL^CB^210^0^^1^^^D1
 ;;27:BILL INCOMPLETE^BI^201^0^^0^^^ZZ
 ;;28:OLD BILL^OB^106^0^^0^^^ZZ
 ;;29:TERM.BY RC/DOJ^TJ^29^1^^1^D^^ZZ
 ;;30:DEBIT VOUCHER (SF 5515)^DV^30^1^^0^^^ZZ
 ;;31:RETURNED FROM AR (NEW)^RT^220^0^^0^^^ZZ
 ;;32:RETURNED FOR AMENDMENT^RA^230^0^^0^^^ZZ
 ;;33:AMENDED BILL^AB^110^1^^0^^^ZZ
 ;;34:PAYMENT (IN FULL)^PF^20^1^^1^P^^D1
 ;;35:DECREASE ADJUSTMENT^DA^21^1^^1^D^^D1
 ;;36:DELETE (AMEND)^DL^301^0^^0^^ZZ
 ;;37:ADD (AMEND)^AD^302^0^^0^^^ZZ
 ;;38:AMEND^AM^303^0^^0^^^ZZ
 ;;39:CANCELLATION^CN^111^1^0^1^^^D1
 ;;40:SUSPENDED^SP^240^0^0^1^^^ZZ
 ;;41:REFUNDED^RF^120^1^0^1^^^AA
 ;;42:OPEN^OP^112^1^0^1^^^ZZ
 ;;43:RE-ESTABLISH^RW^250^^^1^I^^AA
 ;;44:REFUND REVIEW^PR^113^0^0^1^^^ZZ
 ;;45:COMMENT^CM^17^0^0^0^^^ZZ
 ;;46:UNSUSPENDED^US^18^0^0^1^^^A1
 ;;47:CHARGE SUSPENDED^CS^19^0^0^1^D^^A1
 ;;48:PENDING ARCHIVE^X^114^0^0^0^^^ZZ
 ;;49:ARCHIVED^XX^115^0^0^0^^^ZZ
 ;;51:CS STOP PLACED^CP^33^^^0^^^ZZ
 ;;53:CS BILL RECALL^CR^34^^^0^^^ZZ
 ;;54:CS STOP DELETED^CD^36^^^0^^^ZZ
 ;;55:CS DEL BILL RECALL^CF^37^^^0*^^^ZZ
 ;;56:CS DEBTOR RECALL^CE^35^^^0*^^^ZZ
 ;;57:CS DEL DEBTOR RECALL^CL^38^^^0^^^ZZ
 ;;60:CS UPDATE DEBT^CU^41^^^0^^^ZZ
 ;;64:CS CASE RECALL^CO^45^^^0^^^ZZ
 ;;65:CS DEL CASE RECALL^CG^46^^^0^^^ZZ
 ;;66:CS DECR ADJ NOT APP^CA^40^^^0^^^ZZ
 ;;67:CS ADD CASE INFO^CZ^47^^^0^^^ZZ
 ;;68:CS NEW DBTR NEW BILL^CH^48^^^0^^^ZZ
 ;;70:CS DECREASE ADJ^CY^49^^^0^^^D1
 ;;71:CS RECON WORKED^CV^50^^^^^^ZZ
 ;;72:DEL REPAY PLAN^DP^31^0^^0^^^ZZ
 ;;73:CS INCREASE ADJ^AI^51^1^^1^^^A1
 ;;74:CS ADMIN.COST CHARGE^AE^52^0^^1^^^A3
 ;;75:CS ADMIN ADJ TR REV?Y^AN^53^^^0^^^ZZ
 ;;76:CS ADMIN ADJ TR REV?N^AO^54^^^0^^^ZZ
 ;;79:CS INC ADJ TR REV?Y^AS^57^^^0^^^A1
 ;;80:CS INC ADJ TR REV?N^AT^58^^^0^^^A1
 ;;83:CS PEND RECON^RK^61^^^0^^^ZZ
 ;;84:CS RECALL PLACED^CQ^62^^^^^^ZZ
 ;;85:CS DEBTOR NEW BILL^CK^39^^^0^^^ZZ
 ;;86:CS RE-REFER BILL REQUEST^RR^63^^^0^^^ZZ
 ;;87:CS DEBTOR RE-REFER BILL^RS^64^^^0^^^ZZ
 ;;88:CS RE-REFER BILL CANCEL^RC^65^^^0^^^ZZ
 ;;89:CS AUTO RECALL BILL <$25^AR^66^^^1^^^ZZ
 ;;90:EDIT REPAYMENT PLAN^EZ^67^0^^0^^^ZZ
 ;;91:CLOSE REPAYMENT PLAN^RZ^68^0^^0^^^ZZ
 ;;92:RPP TERMINATED^RT^69^0^^0^^^ZZ