| 1 | IBAERR ;ALB/AAS - INTEGRATED BILLING ERROR PROCESSING ROUTINE ; 14-FEB-91
 | 
|---|
| 2 |  ;;2.0; INTEGRATED BILLING ;**7,70,347**; 21-MAR-94;Build 24
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 | % ;  -error processor
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ; Quit if the Means Test Nightly Compilation or Discharge job called
 | 
|---|
| 7 |  ; routine IBR directly.
 | 
|---|
| 8 |  Q:$G(IBJOB)=1!($G(IBJOB)=2)
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ; If Means Test charge, divert control to routine IBAERR1.
 | 
|---|
| 11 |  I $D(IBNOS),$P($G(^IB(+IBNOS,0)),"^",16) S IBY=Y G ^IBAERR1
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ; -- If copay exemption divert control to routine IBAERR2
 | 
|---|
| 14 |  I $D(IBEXERR) G ^IBAERR2
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  I $D(ZTQUEUED) D BULL G END
 | 
|---|
| 17 |  G:+Y>0 END
 | 
|---|
| 18 |  S X2=$P(Y,"^",2) F K=1:1 S X=$P(X2,";",K) Q:X=""  S X1=$O(^IBE(350.8,"AC",X,0)) I $D(^IBE(350.8,+X1,0)) S X3="E"_$P(^(0),"^",5) D @X3
 | 
|---|
| 19 |  I $P(Y,"^",3)]"" W !,$P(Y,"^",3)
 | 
|---|
| 20 | END K VA,VADM,VAERR
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | E1 W !,$P(^IBE(350.8,+X1,0),"^",2)
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | E2 ;
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | E3 ; -- Send no service bulletin
 | 
|---|
| 29 |  K XMY,IBTXT
 | 
|---|
| 30 |  S XMSUB="INTEGRATED BILLING BACKGROUND ERROR",XMDUZ="INTEGRATED BILLING PACKAGE"
 | 
|---|
| 31 |  S IBTXT(1)="Processing of Pharmacy co-pay entries in Integrated Billing has"
 | 
|---|
| 32 |  S IBTXT(2)="Stopped.",IBTXT(3)=" "
 | 
|---|
| 33 |  S IBTXT(4)="The Pharmacy Service Pointer does not match any entries in the "
 | 
|---|
| 34 |  S IBTXT(5)="IB ACTION TYPE file."
 | 
|---|
| 35 |  S IBTXT(6)=" "
 | 
|---|
| 36 |  S IBTXT(7)="Immediate action required."
 | 
|---|
| 37 |  S IBTXT(8)="Check the IB SERVICE/SECTION in File #59."
 | 
|---|
| 38 |  S IBTXT(9)="It must match the SERVICE field for pharmacy action types in the "
 | 
|---|
| 39 |  S IBTXT(10)="IB ACTION TYPE file.  (internal entry number 1 is checked)"
 | 
|---|
| 40 |  D SEND
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | E4 ; -- send missing number of days charges held bulletin
 | 
|---|
| 44 |  K XMY,IBTXT
 | 
|---|
| 45 |  S XMSUB="INTEGRATED BILLING BACKGROUND ERROR",XMDUZ="INTEGRATED BILLING PACKAGE"
 | 
|---|
| 46 |  S IBTXT(1)="The nightly job to auto-release patient charges on hold did not run."
 | 
|---|
| 47 |  S IBTXT(2)="The NUMBER OF DAYS PT CHARGES HELD field of the IB SITE PARAMETERS"
 | 
|---|
| 48 |  S IBTXT(3)="file is blank."
 | 
|---|
| 49 |  S IBTXT(4)=" "
 | 
|---|
| 50 |  S IBTXT(5)="Immediate action required.  Select the option 'MCCR Site Parameter"
 | 
|---|
| 51 |  S IBTXT(6)="Display/Edit' to enter the required information."
 | 
|---|
| 52 |  D SEND
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | BULL ;  -send error bulletin to group when error occurs in background
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  K XMY,IBTXT
 | 
|---|
| 58 |  S XMSUB="INTEGRATED BILLING BACKGROUND ERROR",XMDUZ="INTEGRATED BILLING PACKAGE"
 | 
|---|
| 59 |  S IBTXT(1)="Processing of entries in Integrated Billing has"
 | 
|---|
| 60 |  S IBTXT(2)="been suspended "_$S('$D(IBTAG):"while passing to AR the following",IBTAG=2:"while processing new/renew Rxs: ",IBTAG=3:"while canceling: ",1:"while updating:"),IBTXT(3)=" ",IBC=3
 | 
|---|
| 61 |  I $D(IBSAVX)!($D(IBSAVXU)),'$D(IBNOS) D SAVX
 | 
|---|
| 62 |  I $D(IBNOS) F IBI=1:1 S IBNOS1=$P(IBNOS,"^",IBI) Q:'IBNOS1  I $D(^IB(IBNOS1,0)) S IBNOD=^(0) D BD
 | 
|---|
| 63 |  S IBC=IBC+1,IBTXT(IBC)=""
 | 
|---|
| 64 |  S IBC=IBC+1,IBTXT(IBC)="You should determine if these co-payments have been passed to"
 | 
|---|
| 65 |  S IBC=IBC+1,IBTXT(IBC)="Accounts Receivable."
 | 
|---|
| 66 |  S IBC=IBC+1,IBTXT(IBC)="The following error(s) was encountered:",IBC=IBC+1,IBTXT(IBC)=""
 | 
|---|
| 67 |  D ERRTXT
 | 
|---|
| 68 |  S IBC=IBC+1,IBTXT(IBC)=""
 | 
|---|
| 69 |  I $D(IBWHER) S IBC=IBC+1,IBTXT(IBC)=$P($T(IBWHER+IBWHER),";;",2,99)
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | SEND S XMTEXT="IBTXT(",XMY(DUZ)=""
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  S IBGRP=$S($D(^IBE(350.9,1,0)):$P(^(0),"^",9),1:"") F IBI=0:0 S IBI=$O(^XMB(3.8,+IBGRP,1,"B",IBI)) Q:'IBI  S XMY(IBI)=""
 | 
|---|
| 74 |  D ^XMD K XMSUB,XMY,XMDUZ,XMTEXT,IBTXT,IBC,IBNOD,IBNOS1,IBI
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | ERRTXT S X2=$P(Y,"^",2) F K=1:1 S X=$P(X2,";",K) Q:X=""  S X1=$O(^IBE(350.8,"AC",X,0)),IBC=IBC+1,IBTXT(IBC)="    "_$S($D(^IBE(350.8,+X1,0)):$P(^(0),"^",2),1:"Unknown Error")
 | 
|---|
| 78 |  I $P(Y,"^",3)]"" S IBC=IBC+1,IBTXT(IBC)="    "_$P(Y,"^",3)
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | BD I IBI=1 S DFN=$P(IBNOD,"^",2),IBATYPN=$S($D(^IBE(350.1,$P(IBNOD,"^",3),0)):$P(^(0),"^"),1:"") D DEM
 | 
|---|
| 82 |  S IBC=IBC+1,IBTXT(IBC)="   "_$E($P(IBNOD,"^")_"           ",1,14)_$E($P(IBNOD,"^",8)_"                      ",1,24)_$E($P(IBNOD,"^",11)_"            ",1,12)_"  $"_$P(IBNOD,"^",7)
 | 
|---|
| 83 |  Q
 | 
|---|
| 84 | DEM N X,Y D DEM^VADPT
 | 
|---|
| 85 |  S IBC=IBC+1,IBTXT(IBC)=" Patient: "_VADM(1)_"   Pt. Id: "_VA("PID")_"  Type: "_IBATYPN
 | 
|---|
| 86 |  Q
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 | SAVX S IBAX=$S($D(IBSAVXU):IBSAVXU,$D(IBSAVX):IBSAVX,1:"") Q:IBAX=""
 | 
|---|
| 89 |  S IBATYPN=$S('$P(IBAX,"^",3):"",$D(^IBE(350.1,$P(IBAX,"^",3),0)):$P(^(0),"^",1),1:""),DFN=$P(IBAX,"^",2) D DEM
 | 
|---|
| 90 |  S IBC=IBC+1,IBTXT(IBC)=" Service: "_$S($D(^DIC(49,+IBAX,0)):$P(^(0),"^"),1:"")
 | 
|---|
| 91 |  S IBC=IBC+1,IBTXT(IBC)="    User: "_$S($D(^VA(200,+$P(IBAX,"^",4),0)):$P(^(0),"^"),$D(^VA(200,+DUZ,0)):$P(^(0),"^"),1:"")
 | 
|---|
| 92 |  S IB="" F  S IB=$O(IBSAVX(IB)) Q:IB=""  D
 | 
|---|
| 93 |  .K IBARXN I +$P(IBSAVX(IB),"^",1)=52 S IBARXN="Rx# "_$$FILE^IBRXUTL(+$P($P(IBSAVX(IB),"^"),":",2),.01) I $P($P(IBSAVX(IB),"^"),";",2)'="" S IBARXN=IBARXN_"/Refill# "_$P($P($P(IBSAVX(IB),"^"),";",2),":",2)
 | 
|---|
| 94 |  .S IBC=IBC+1,IBTXT(IBC)="   Entry: "_$S($D(IBARXN):IBARXN,1:$P(IBSAVX(IB),"^",1)) K IBARXN
 | 
|---|
| 95 |  S IB="" F  S IB=$O(IBSAVXU(IB)) Q:IB=""  S IBC=IBC+1,IBTXT(IBC)="  Ref No: "_$S($D(^IB(+IB,0)):$P(^(0),"^"),1:"")
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | 1 S Y="-1^IB001" Q  ;patient eligibility data not calculated
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 | IBWHER ;
 | 
|---|
| 101 |  ;;Error occurred before Integrated Billing entry created, Reprint labels or       recancel after correcting error.
 | 
|---|
| 102 |  ;;Error occurred after Integrated Billing entry created but Accounts Receivable   not updated.
 | 
|---|
| 103 |  ;;Error occurred during posting to Accounts Receivable.  Check to see if amount  passed!
 | 
|---|
| 104 |  ;;Error occurred after successful passing of charges to AR, IB entry may not be   properly updated.
 | 
|---|
| 105 |  ;;Error occurred during eligibility determination for Co-pay.
 | 
|---|