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

PRCA399Z.m

Go to the documentation of this file.
PRCA399Z ;MNTVBB/RGB - Patient bills reset AFTER DISCREPANCY RUN ; 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 !!,"*********sign off and get a new $J as this $J would kill the INITIAL patch 399 recalc detail ********" Q
 K ^XTMP("PRCA399",$J) S ^XTMP("PRCA399",$J,1,0)=1
 S ^XTMP("PRCA399",0)=$$FMADD^XLFDT(DT,5)_"^"_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")=%
 S ^XTMP("PRCA399",$J,999,"B1FINDBILS399")=%,PRCAERR=0
 D USTART Q:PRCAERR!'$D(^TMP("PRCAMRKC",$J))  S ^XTMP("PRCA399",$J,1,0,0)=0
XX D SETTAB,BILLDT,FINDF1ST
 S U="^",(PRCAT,PRCAT1,PRCAT2,PRCAT3,PRCAT4,PRCAT5,PRCAPRT)=0,PRCAZ=+$G(^XTMP("PRCA399",$J,0,0))
 S PRCADEB=0 F  S PRCADEB=$O(^TMP("PRCAMRKC",$J,PRCADEB)) Q:'PRCADEB  D
 .I $P(^TMP("PRCAMRKC",$J,PRCADEB),U,4)>0 Q
 .I '$D(^RCD(340,PRCADEB,0))!($P($G(^RCD(340,PRCADEB,0)),U)'[";DPT") Q
 .I '$D(^XTMP("PRCA399",$J,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 PRCABILL=$O(^PRCA(430,"C",PRCADEB,0))
CHK0 .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)=""
CHK1 ..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 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
 D EN^PRCA399A
 ;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
 I $D(^PRCA(433,"ZZ1ST")) S FINDF1ST=^PRCA(433,"ZZ1ST") Q
 S PRCAFIST=0 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,^PRCA(433,"ZZ1ST")=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
USTART ;ASK IF USE TMP GLOBAL OUT OF PRCAMRKC RUN, NEED TO RUN RIGHT AFTER DISCREP RUN
 S PRCAERR=0
 R !,"USE TEMP FILE OUT OF STATEMENT DISCREPANCY RUN? Y/N: ",PRCAX:DTIME G:PRCAX="N" U
 I '$D(^TMP("PRCAMRKC",$J)) W !!,"*** NOTHING IN FILE, MUST SELECT ENTRIES" G U
 G U2
U ;KILL ^TMP("PRCAMARK") AND ASK DEBTOR(S) 
 K ^TMP("PRCAMRKC",$J)
U1 F I=1:1 S RCDEBTDA=0 W !! D SELECT G U2:'RCDEBTDA  D
 .I $G(^RCD(340,RCDEBTDA,0))'[";DPT" W "   ** NOT DEFINED AS PATIENT **" Q
 .I '$O(^PRCA(430,"C",RCDEBTDA,0)) W "   ** NO BILLS ON FILE FOR DEBTOR **" Q
 .I $$REFUREVW^PRCAMRKC(RCDEBTDA) W "   ** REFUND REVIEW DEBTOR **"
 .S ^TMP("PRCAMRKC",$J,+RCDEBTDA)="" Q
U2 S ^XTMP("PRCA399",$J,1,0)=0
 R !,"DO YOU WANT TO SEE COMPLETE DETAIL OF DEBTOR RECALC BILL BY BILL POSTING? Y/N: ",PRCAPRT:20
 I PRCAPRT="Y" S ^XTMP("PRCA399",$J,1,0)=1
 Q
SELECT N X,Y,DEBT,PRCADB,DA,PRCA,COUNT,OUT,SEL,BILL,BAT,TRAN,DR,DXS
 N DPTNOFZY,DPTNOFZK S (DPTNOFZY,DPTNOFZK)=1
ASK K OUT S COUNT=0,PRCADB="",RCDEPTDA=0 R !!,"Select DEBTOR NAME or BILL NUMBER: ",X:DTIME I $E(X)="^"!(X="") S RCDEBTDA=0 Q
 S X=$$UPPER^VALM1(X)
 S Y=$S($O(^PRCA(430,"B",X,0)):$O(^(0)),$O(^PRCA(430,"D",X,0)):$O(^(0)),1:-1)
 I Y>0 S DEBT=$P($G(^PRCA(430,Y,0)),"^",9) I DEBT S PRCADB=$P($G(^RCD(340,DEBT,0)),"^"),^DISV(DUZ,"^PRCA(430,")=Y,$P(DEBT,"^",2)=$$NAM^RCFN01(DEBT)
 S DIC="^RCD(340,",DIC(0)="E" D ^DIC G:Y<0 ASK
 S ^DISV(DUZ,"^RCD(340,")=+Y,PRCADB=$P(Y,"^",2),DEBT=+Y_"^"_$P(@("^"_$P(PRCADB,";",2)_+PRCADB_",0)"),"^"),PRCADB=+DEBT
 S ^TMP("PRCAMRKC",$J,+PRCADB)="",RCDEBTDA=PRCADB
 G ASK
CURTX N PRCATX,PRCADTCK S PRCADTCK=PRCASETD
 F  S PRCADTCK=$O(^PRCA(433,"ATD",PRCADB,PRCADTCK)) 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 ;TRANSACTIN 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^^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