| [613] | 1 | IB20P247 ;WOIFO/SS - POST INIT ROUTINE FOR IB*2*247 ;6-OCT-03 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**247**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | Q | 
|---|
|  | 6 | POST ; adding charge removal reason entries if not there | 
|---|
|  | 7 | N IBX,IBT,IBY,X,Y,DIC,DO | 
|---|
|  | 8 | D ADDCRR | 
|---|
|  | 9 | D ADDNBR | 
|---|
|  | 10 | Q | 
|---|
|  | 11 | ; | 
|---|
|  | 12 | ADDCRR ; need to add charge removal reasons | 
|---|
|  | 13 | N IBX,IBT,IBY,DIC,Y,X | 
|---|
|  | 14 | F IBX=1:1 S IBY=$P($T(CRR+IBX),";",3,99) Q:IBY=""  S IBT=$P(IBY,";") I '$O(^IBE(350.3,"B",IBT,0)) K DO D | 
|---|
|  | 15 | . S DIC="^IBE(350.3,",DIC(0)="",X=IBT,DIC("DR")=$P(IBY,";",2,3) | 
|---|
|  | 16 | . D FILE^DICN I Y>0 D BMES^XPDUTL("  --> Added Charge Removal Reasons: "_IBT) | 
|---|
|  | 17 | Q | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | ADDNBR ; need to add non billable reasons | 
|---|
|  | 20 | F IBX=1:1 S IBT=$P($T(NBR+IBX),";",3) Q:IBT=""  I '$O(^IBE(356.8,"B",IBT,0)) K DO D | 
|---|
|  | 21 | . S DIC="^IBE(356.8,",DIC(0)="",X=IBT | 
|---|
|  | 22 | . D FILE^DICN I Y>0 D BMES^XPDUTL("  --> Added Reason Not Billable: "_IBT) | 
|---|
|  | 23 | Q | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | CRR ; charge removal reasons to add in #350.3 | 
|---|
|  | 26 | ;;COMBAT VETERAN;.02///CV;.03///GENERIC | 
|---|
|  | 27 | ;; | 
|---|
|  | 28 | NBR ; non-billable reasons to add in #356.8 if not there | 
|---|
|  | 29 | ;;HEAD/NECK CANCER | 
|---|
|  | 30 | ;;COMBAT VETERAN | 
|---|
|  | 31 | ;; | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | ;-------- report for CV expiration date problem | 
|---|
|  | 34 | RPT ; | 
|---|
|  | 35 | I '$$PATCH^XPDUTL("DG*5.3*576") W !,"The patch DG*5.3*576 needs to be installed to run the report." Q | 
|---|
|  | 36 | K ^TMP("DGCVEX",$J),^TMP("IBCVEX",$J) | 
|---|
|  | 37 | D EN^DGCVEXP | 
|---|
|  | 38 | N IBDFN,IBDT,IBNNN | 
|---|
|  | 39 | S IBNNN=0 | 
|---|
|  | 40 | S IBDFN=0 F  S IBDFN=$O(^TMP("DGCVEX",$J,IBDFN)) Q:+IBDFN=0  D | 
|---|
|  | 41 | . S IBDT=0 F  S IBDT=$O(^TMP("DGCVEX",$J,IBDFN,IBDT)) Q:+IBDT=0  D COUNTIN(IBDFN,IBDT,.IBNNN) | 
|---|
|  | 42 | D PRINTREP(IBNNN) | 
|---|
|  | 43 | K ^TMP("DGCVEX",$J),^TMP("IBCVEX",$J) | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ;-------- | 
|---|
|  | 46 | ;IBDF - patient's DFN | 
|---|
|  | 47 | ;IBD - the last date of CV | 
|---|
|  | 48 | COUNTIN(IBDF,IBD,IBNN) ; | 
|---|
|  | 49 | ;3rd party claims | 
|---|
|  | 50 | N IBIEN,IBRVDT,IB1,IBTO,IBFR,IBI,IBK | 
|---|
|  | 51 | S IBIEN=0 F  S IBIEN=$O(^DGCR(399,"C",IBDF,IBIEN)) Q:+IBIEN=0  D | 
|---|
|  | 52 | . S IB1=$G(^DGCR(399,IBIEN,0)) | 
|---|
|  | 53 | . Q:+$P(IB1,"^",5)=0  ;no care type | 
|---|
|  | 54 | . S IBTO=+$P($G(^DGCR(399,IBIEN,"U")),"^",2),IBFR=+$G(^DGCR(399,IBIEN,"U")) | 
|---|
|  | 55 | . ;outpatients | 
|---|
|  | 56 | . I $P(IB1,"^",5)>2 D:IBD=IBFR SETTMP(IBDF,IBD,IBIEN,1,.IBNN) Q | 
|---|
|  | 57 | . ;inpatients | 
|---|
|  | 58 | . I (IBD'<IBFR) I IBTO=0!(IBD'>IBTO) D SETTMP(IBDF,IBD,IBIEN,2,.IBNN) | 
|---|
|  | 59 | ;1st party copays | 
|---|
|  | 60 | S IBIEN=0 F  S IBIEN=$O(^IB("C",IBDF,IBIEN)) Q:+IBIEN=0  D | 
|---|
|  | 61 | . S IB1=$G(^IB(IBIEN,0)),IBFR=+$P(IB1,"^",14),IBTO=+$P(IB1,"^",15) | 
|---|
|  | 62 | . I (IBD'<IBFR),(IBD'>IBTO) D SETTMP(IBDF,IBD,IBIEN,3,.IBNN) | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | ;-------- | 
|---|
|  | 65 | ; print report | 
|---|
|  | 66 | PRINTREP(IBNN) ; | 
|---|
|  | 67 | N IBDFN,IBDT,IB1,IBN | 
|---|
|  | 68 | D HEADER | 
|---|
|  | 69 | S IBDFN=0 F  S IBDFN=$O(^TMP("IBCVEX",$J,IBDFN)) Q:+IBDFN=0  D | 
|---|
|  | 70 | . S IBDT=0 F  S IBDT=$O(^TMP("IBCVEX",$J,IBDFN,IBDT)) Q:+IBDT=0  D | 
|---|
|  | 71 | .. S IBN=0 F  S IBN=$O(^TMP("IBCVEX",$J,IBDFN,IBDT,IBN)) Q:+IBN=0  D OUTP(IBDFN,IBDT,$G(^TMP("IBCVEX",$J,IBDFN,IBDT,IBN))) | 
|---|
|  | 72 | D FOOTER(IBNN) | 
|---|
|  | 73 | Q | 
|---|
|  | 74 | ;-------- | 
|---|
|  | 75 | ;set ^TMP | 
|---|
|  | 76 | SETTMP(IBDFN,IBDT,IBIEN1,IBTYP,IBNUM) ; | 
|---|
|  | 77 | S IBNUM=IBNUM+1,^TMP("IBCVEX",$J,IBDFN,IBDT,IBNUM)=IBTYP_"^"_IBIEN1 | 
|---|
|  | 78 | Q | 
|---|
|  | 79 | OUTP(IBDFN,IBDT,IBDATA) ; | 
|---|
|  | 80 | Q:$G(IBDATA)="" | 
|---|
|  | 81 | N Y S Y=$$PATINFO(IBDFN) | 
|---|
|  | 82 | W !,$P(Y,"^"),?30,$P(Y,"^",2),?43,$$STRDATE(IBDT),?55,$E($$BILLINFO(IBDATA),1,18) | 
|---|
|  | 83 | Q | 
|---|
|  | 84 | ;-------- | 
|---|
|  | 85 | ;billing info | 
|---|
|  | 86 | BILLINFO(IBDATA) ; | 
|---|
|  | 87 | I +IBDATA=3 Q $P($P($G(^IB(+$P(IBDATA,"^",2),0)),"^",11),"-",2)_" PATIENT" | 
|---|
|  | 88 | Q $P($G(^DGCR(399,+$P(IBDATA,"^",2),0)),"^")_" INSURANCE" | 
|---|
|  | 89 | ;-------- | 
|---|
|  | 90 | ;Fileman date to String format | 
|---|
|  | 91 | ;Y - fileman date | 
|---|
|  | 92 | STRDATE(Y) ; | 
|---|
|  | 93 | I Y>0 X ^DD("DD") Q Y | 
|---|
|  | 94 | Q "" | 
|---|
|  | 95 | ;-------- | 
|---|
|  | 96 | ;patient info | 
|---|
|  | 97 | PATINFO(DFN) ; | 
|---|
|  | 98 | I +$G(DFN)=0 Q "??" | 
|---|
|  | 99 | N VADM,VA,VAERR | 
|---|
|  | 100 | D DEM^VADPT | 
|---|
|  | 101 | Q $E($G(VADM(1)),1,28)_"^"_$P($G(VADM(2)),"^",2) | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | ;-------- | 
|---|
|  | 104 | HEADER ;header | 
|---|
|  | 105 | W !,"...Please wait..." | 
|---|
|  | 106 | W !,?15,">> CV Billing Verification Report <<" | 
|---|
|  | 107 | D LINE | 
|---|
|  | 108 | W !,"Name",?30,"SSN",?43,"Date",?55,"Bill #" | 
|---|
|  | 109 | D LINE | 
|---|
|  | 110 | Q | 
|---|
|  | 111 | ;-------- | 
|---|
|  | 112 | FOOTER(IBNNN) ;footer | 
|---|
|  | 113 | D LINE | 
|---|
|  | 114 | W !,"Total: "_IBNNN_" bills/copays" | 
|---|
|  | 115 | Q | 
|---|
|  | 116 | ;-------- | 
|---|
|  | 117 | LINE ;line | 
|---|
|  | 118 | W !,"-----------------------------",?30,"------------",?43,"-----------",?55,"------------------" | 
|---|
|  | 119 | Q | 
|---|
|  | 120 | ; | 
|---|