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

BAR50EP1.m

Go to the documentation of this file.
  1. BAR50EP1 ; IHS/SD/TPF - AR ERA NONPAYMENT CHECKER ; 01/30/2009
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**5,6,10,21,22,23,24,26**;OCT 26,2005;Build 17
  1. ;;P.OTTIS HEAT#82698 NOV 2012 LEADING ZEROES IN CHKECK # (POS)
  1. ;; FEB 13 ADDED INFO ON NONPAY DETAILS; SHOW CLMPYMT
  1. ;; MAR 13 EXCLUDED COL BATCHES OLDER THAN 365 DAYS
  1. ;P.OTTIS REFINED 'OVERRIDE' FLAG WITH MESSAGE
  1. ; 10/10/13 FIXED ERR MSG FOR ERROR=NIPAC
  1. ; DON'T DISPLAY ERR FOR MATCHED CLAIMS 11/27/13
  1. ;HEAT147572 P.OTT ALLOW TRIBAL SITES ERA POSTING OF NEG BAL
  1. ; 2/4/2014 BLOCK ERROR NIPAC (TDN/IPAC MISSING IN RPMS BATCH AND ITEM) FOR TRIBAL SITES
  1. Q
  1. NONPAYCH(IMPDA) ;EP - CHECK PAYMENTS NOT MATCHED WITH A REVERSAL
  1. N CLMDA,ERACHECK,CLSTATUS,POSTAS,CNT,CLIENS
  1. N BPR02
  1. I $G(BARDBG) W !!!,"LOOKING FOR NON-MATCHED PAYMENTS AGAINST NONPAYMENT BATCHES"
  1. S CLMDA=0,CLMPYMT=0 F S CLMDA=$O(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA)) Q:'CLMDA D
  1. .S CLMPYMT=CLMPYMT+$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U,4)
  1. S CLMDA=0
  1. F CNT=1:1 S CLMDA=$O(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA)) Q:'CLMDA D
  1. . W:'(CNT#1000) "."
  1. . Q:$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U,2)="P" ;DON'T CHECK POSTED CLAIMS
  1. . Q:$$OVERIDE^BAR50EP1(CLMDA) ;MRS:BAR*1.8*10 D159-1 AND 2
  1. . S BPR02=+$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,2)),U,5) ;BPR MONETARY AMOUNT BAR*1.8*6 SCR119 IHS/SD/TPF
  1. . S CLIENS=CLMDA_","_IMPDA_","
  1. . S ERACHECK=$$GET1^DIQ(90056.0205,CLIENS,201,"E") ;CHECK/EFT TRACE
  1. . S CLSTATUS=$P($$GET1^DIQ(90056.0205,CLIENS,.11,"E")," ") ;E-CLAIM STATUS CODE (CLP02)
  1. . I CLSTATUS="" S CLSTATUS=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,2)),U,4)
  1. . Q:(U_"1"_U_"2"_U_"3"_U_"19"_U_"20"_U_"21"_U)'[(U_CLSTATUS_U) ;PRIMARY,SECONDARY,TERTIARY AS WELL AS THOSE 19,20,21 FORWARDED TO ADDITIONAL PAYER BAR*1.8*6 IM29637
  1. . S POSTAS=$$GET1^DIQ(90056.0205,CLIENS,501,"I")
  1. . Q:POSTAS=138!(POSTAS=139)
  1. . D NONPAY(ERACHECK,IMPDA,CLMDA,BPR02) ;BAR*1.8*6 SCR119
  1. Q
  1. NONPAY(ERACHECK,IMPDA,CLMDA,BPR02) ;EP - SEE IF TDN/IPAC = NONPAYMENT
  1. N TDNIPAC,BARCOLDA,ERRORS,BARITMDA,NONPAY,NOITEM,NOHEAD,BARXCHK ;P.OTT
  1. S BARXCHK=$$BARXCHK^BAREDP09(ERACHECK) ;P.OTT
  1. S (NOITEM,NOHEAD,NONPAY)=0
  1. S BARCOLDA=$O(^BARCOL(DUZ(2),"D",BARXCHK,""))
  1. I 'BARCOLDA,(BPR02=0) Q ;
  1. I 'BARCOLDA D Q
  1. . S ERRORS("NB")="" ;NO BATCH FOUND FOR ERA CHECK
  1. . D ADDREAS^BAR50P04(IMPDA,CLMDA,.ERRORS)
  1. . K ERRORS
  1. ;CHECK ALL ERACHECK BATCHES/ITEMS FOR A NONPAYMENT
  1. NEW BARTODAY,%H
  1. S X=DT D H^%DTC ;GET $H-FORMAT
  1. S BARTODAY=%H
  1. S BARCOLDA="" F S BARCOLDA=$O(^BARCOL(DUZ(2),"D",BARXCHK,BARCOLDA)) Q:BARCOLDA="" D
  1. . NEW X,BARCBDT,BARCB
  1. . S X=$$GET1^DIQ(90051.01,BARCOLDA_",",4,"I")
  1. . D H^%DTC ;GET $H-FORMAT
  1. . S BARCBDT=%H
  1. . IF BARTODAY-BARCBDT>365 D Q ;TOO OLD
  1. . . S BARCB=$$GET1^DIQ(90051.01,BARCOLDA_",",.01,"A")
  1. . . ;S BARMSG="IGNORING COLL. BATCH "_BARCB_" EIN# "_BARCOLDA_" TOO OLD: ("_X_")"
  1. . . ;D INS^BAR50DET(BARMSG,0)
  1. . S TDNIPAC=$$GET1^DIQ(90051.01,BARCOLDA_",",28,"E")
  1. . I TDNIPAC="" S NOHEAD=1
  1. . Q:TDNIPAC'=""&(TDNIPAC'="NONPAYMENT")
  1. . I TDNIPAC="NONPAYMENT",(CLMPYMT'=0) D Q
  1. . . S ERRORS("P NP")=""
  1. . . I $G(BARDBG) D DETAILS(0) ;COL LEVEL
  1. . S BARITMDA="" F S BARITMDA=$O(^BARCOL(DUZ(2),"D",BARXCHK,BARCOLDA,BARITMDA)) Q:BARITMDA="" D
  1. . . S TDNIPAC=$$GET1^DIQ(90051.1101,BARITMDA_","_BARCOLDA_",",20,"E")
  1. . . I TDNIPAC="" S NOITEM=1
  1. . . I TDNIPAC="NONPAYMENT",(CLMPYMT'=0) D Q
  1. . . . S ERRORS("P NP")=""
  1. . . . I $G(BARDBG) D DETAILS(1) ;DETAIL LEVEL
  1. . . Q
  1. . ;IF THERE ARE NO TDN FOR BOTH TOP LEVEL AND ITEM LEVEL THEN THIS IS ONE WITH MISSING TDN
  1. . ;ONE OR THE OTHER HAS TO BE POPULATED
  1. . I NOITEM,NOHEAD D
  1. . . I '$$IHS^BARUFUT(DUZ(2)) Q ;2/4/2014 NOT FOR TRIBAL SITES
  1. . . S ERRORS("NIPAC")="" ;TDN/IPAC MISSING IN RPMS BATCH AND ITEM
  1. . . NEW BARMSG
  1. . . I $G(BARDBG) D
  1. . . . S BARMSG="BATCH "_BARCOLDA_": ERA CHECK: "_ERACHECK_" NO TDN FOR BOTH TOP LEVEL AND ITEM LEVEL"
  1. . . . D INS^BAR50DET(BARMSG,0) ;10/10/2013
  1. . S (NOITEM,NOHEAD)=0
  1. I $D(ERRORS) D
  1. . NEW BARTMP,I
  1. . I $G(BARDBG) D
  1. . . S BARMSG="PROBLEM WITH ERA CHECK: "_ERACHECK D INS^BAR50DET(BARMSG,0) ;10/10/2013
  1. . . D SHOWERR
  1. . D ADDREAS^BAR50P04(IMPDA,CLMDA,.ERRORS)
  1. . K ERRORS
  1. Q
  1. ;
  1. OVERIDE(X) ;EP; EXTRINSIC FUNCTION TO CHECK FOR OVERRIDES MRS:BAR*1.8*10 D159-2
  1. ; ENTERS WITH X = CLAIM IEN
  1. N BAROR,I
  1. S BAROR=0 ;NOT AN OVERRIDE
  1. ;NODE 44 = USER STATUS OVVERRIDE
  1. ; 45 = PLB CHECK
  1. ; 46 = REVERSAL
  1. ; 47 = NEGATIVE PAYMENT
  1. F I=44:1:47 I $D(^BAREDI("I",DUZ(2),IMPDA,30,X,4,"B",I)) D
  1. .I I=44 S BAROR="1^USER STATUS OVERRIDE" Q
  1. .I I=45 S BAROR="1^PLB CHECK" Q
  1. .;I I=46 S BAROR="1^REVERSAL" Q ;bar*1.8*26 IHS/SD/SDR HEAT170856
  1. .;I I=47 S BAROR="1^NEGATIVE PAYMENT" Q ;bar*1.8*26 IHS/SD/SDR HEAT170856
  1. Q BAROR
  1. DETAILS(BARLEVEL) ;
  1. S BARMSG="ERA CHK#: "_ERACHECK I ERACHECK'=BARXCHK S BARMSG=BARMSG_" (A/R CHK# "_BARXCHK_")"
  1. S BARMSG=BARMSG_" COLL DA: "_BARCOLDA
  1. S BARMSG=BARMSG_" ERA PAYMENT: "_CLMPYMT
  1. D INS^BAR50DET(BARMSG,0)
  1. I BARLEVEL=1 S BARMSG=" ITEM#: "_BARITMDA D INS^BAR50DET(BARMSG,0)
  1. S BARMSG="ERR CODE(S): "
  1. I $D(ERRORS("P NP")) S BARMSG=BARMSG_"P NP"
  1. I $D(ERRORS("NEGP")) S BARMSG=BARMSG_"; NEGP"
  1. D INS^BAR50DET(BARMSG,0)
  1. Q
  1. SHOWERR ;
  1. NEW I,J,BARTMP,BARERRC
  1. S BARERRC=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U,2) ;CLAIM STATUS
  1. I BARERRC="M" QUIT ;DON'T DISPLAY ERR FOR MATCHED CLAIMS 11/27/13
  1. S BARTMP="",I="" F S I=$O(ERRORS(I)) Q:I="" S J="" F S J=$O(^BARERR("B",I,J)) Q:J="" D
  1. . S BARMSG=$P($G(^BARERR(J,0)),U,2)
  1. . D INS^BAR50DET(BARMSG,0)
  1. Q