| 1 | IBJTBA1 ;ALB/TMK - TPJI BILL CHARGE INFO SCREEN ;01-MAR-1995 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**135,265,155,349**;21-MAR-94;Build 46 | 
|---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | SHEOB(IBI,IBSPL,IBEOBCT,IBCTOF) ; Format EOB called from IBJTBA | 
|---|
| 6 | ; IBSPL = 0 if EOB represents one bill's payment | 
|---|
| 7 | ;       =  1 if AR had to split the EOB between multiple bills | 
|---|
| 8 | ; Assumes IBLN is defined and returns it with line count | 
|---|
| 9 | ; Assumes IBEOBDET may be defined as a flag to control detail level of print | 
|---|
| 10 | N X,IBPT,IBCN,IBM,IBM1,IBM2,IBTY,IBPY,IBPR,IBST,IBSTR,IBCA,IBTS,IBTA,Z,Z0 | 
|---|
| 11 | S X="0.00" | 
|---|
| 12 | S IBM=$G(^IBM(361.1,IBI,0)) | 
|---|
| 13 | S IBTY=$P(IBM,U,4),IBTY=$S(IBTY:"MEDICARE MRA",1:"NORMAL EOB") | 
|---|
| 14 | I IBTY'["MRA",IBSPL S IBTY="A/R SPLIT/COVERS MORE THAN 1 BILL" | 
|---|
| 15 | I $P(IBM,U,13)>1,$P(IBM,U,13)<5 S IBTY=IBTY_" ("_$$EXTERNAL^DILFD(361.1,.13,,$P(IBM,U,13))_")" | 
|---|
| 16 | S IBCN=$P(IBM,U,14),IBPY=$P(IBM,U,2) | 
|---|
| 17 | S:IBPY IBPY=$P($G(^DIC(36,IBPY,0)),U) | 
|---|
| 18 | S IBPR=$$FMTE^XLFDT($P(IBM,U,6)),IBST=$P(IBM,U,16) | 
|---|
| 19 | S IBST=$$EXPAND^IBTRE(361.1,.16,+IBST) | 
|---|
| 20 | S IBM1=$G(^IBM(361.1,IBI,1)) | 
|---|
| 21 | ; | 
|---|
| 22 | S IBPT=$P(IBM1,U,2)   ; patient responsibility 1.02 field | 
|---|
| 23 | ; If MRA & UB, then calculate patient responsiblity value | 
|---|
| 24 | I $P(IBM,U,4),$$FT^IBCEF(+$P(IBM,U,1))=3 S IBPT=$$PTRESPI^IBCECOB1(IBI) | 
|---|
| 25 | ; | 
|---|
| 26 | S IBCA=$P(IBM1,U) | 
|---|
| 27 | S IBM2=$G(^IBM(361.1,IBI,2)),IBTA=$P(IBM2,U,3) | 
|---|
| 28 | ; if no Total Allowed Amount, sum up amounts on Line Level Adjustment | 
|---|
| 29 | I IBTA="" S IBTA=$$ALLOWED^IBCEMU2(IBI) | 
|---|
| 30 | S IBTS=$P(IBM2,U,4) | 
|---|
| 31 | D MRA2 | 
|---|
| 32 | S IBLN=$$SET^IBJTBA("",IBLN) | 
|---|
| 33 | I '$G(IBEOBDET),IBSPL D | 
|---|
| 34 | . S IBSTR=$$SETLN^IBJTBA("    **A/R CORRECTED PAYMENT DATA:","",1,50),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 35 | . S IBSTR=$$SETLN^IBJTBA("     TOTAL AMT PD: "_$J(+$P($G(^IBM(361.1,IBI,1)),U,1),"",2),"",1,75),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 36 | . S Z=0 F  S Z=$O(^IBM(361.1,IBI,8,Z)) Q:'Z  S Z0=$G(^(Z,0)) D | 
|---|
| 37 | .. S IBSTR=$$SETLN^IBJTBA($E($J("",8)_$S($P(Z0,U,3):$$BN1^PRCAFN(+$P(Z0,U,3)),1:"[suspense]"_$P(Z0,U))_$J("",25),1,25)_"  "_$J(+$P(Z0,U,2),"",2),"",1,75),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 38 | ; | 
|---|
| 39 | I $G(IBEOBDET) D | 
|---|
| 40 | . I $P($G(^IBM(361.1,IBI,0)),U,4) D  Q     ; Medicare MRA processing | 
|---|
| 41 | .. N VALMCNT | 
|---|
| 42 | .. K ^TMP("IBCECSD",$J) | 
|---|
| 43 | .. D GETEOB^IBCECSA6(IBI,0,,+$G(IBLN)-1) | 
|---|
| 44 | .. S Z=0 F  S Z=$O(^TMP("IBCECSD",$J,Z)) Q:'Z  S IBSTR=$$SETLN^IBJTBA($G(^TMP("IBCECSD",$J,Z,0)),"",1,79),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 45 | .. K ^TMP("IBCECSD",$J) | 
|---|
| 46 | .. D EOBERR | 
|---|
| 47 | .. Q | 
|---|
| 48 | . ; | 
|---|
| 49 | . ; Normal EOB processing | 
|---|
| 50 | . N VALMCNT | 
|---|
| 51 | . K ^TMP("PRCA_EOB",$J) | 
|---|
| 52 | . D GETEOB^IBCECSA6(IBI,1) | 
|---|
| 53 | . S Z=0 F  S Z=$O(^TMP("PRCA_EOB",$J,IBI,Z)) Q:'Z  S IBSTR=$$SETLN^IBJTBA($G(^TMP("PRCA_EOB",$J,IBI,Z)),"",1,79),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 54 | . K ^TMP("PRCA_EOB",$J) | 
|---|
| 55 | . D EOBERR | 
|---|
| 56 | . Q | 
|---|
| 57 | ; | 
|---|
| 58 | Q | 
|---|
| 59 | ; | 
|---|
| 60 | MRA2 ; | 
|---|
| 61 | N IBD | 
|---|
| 62 | S IBLN=$$SET^IBJTBA("",IBLN) | 
|---|
| 63 | S IBD="EOB/MRA Information"_$S($D(IBCTOF):" ("_$G(IBEOBCT)_" OF "_IBCTOF_")",1:"") | 
|---|
| 64 | S IBSTR=$$SETLN^IBJTBA(IBD,"",30,45),$E(IBSTR,1,2)=">>",IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 65 | S IBD="EOB Type: "_IBTY,IBSTR=$$SETLN^IBJTBA(IBD,"",5,59) | 
|---|
| 66 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 67 | S IBD="ICN: "_IBCN,IBSTR=$$SETLN^IBJTBA(IBD,"",10,30) | 
|---|
| 68 | S IBD="Patient Resp Amount: "_$S('IBPT:X,1:IBPT) | 
|---|
| 69 | S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,44,35) | 
|---|
| 70 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 71 | S IBD="Payer Name: "_IBPY,IBSTR=$$SETLN^IBJTBA(IBD,"",3,40) | 
|---|
| 72 | S IBD="Total Allowed Amount: "_$S('IBTA:X,1:IBTA) | 
|---|
| 73 | S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,43,36) | 
|---|
| 74 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 75 | S IBD="EOB Date: "_IBPR,IBSTR=$$SETLN^IBJTBA(IBD,"",5,35) | 
|---|
| 76 | S IBD="Total Submitted Charges: "_$S('IBTS:X,1:IBTS) | 
|---|
| 77 | S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,40,39) | 
|---|
| 78 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 79 | S IBD="Svc From Dt: "_$$DAT1^IBOUTL($P(IBM1,U,10)) | 
|---|
| 80 | S IBSTR=$$SETLN^IBJTBA(IBD,"",2,38) | 
|---|
| 81 | S IBD="Svc To Dt: "_$$DAT1^IBOUTL($P(IBM1,U,11)) | 
|---|
| 82 | S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,54,25) | 
|---|
| 83 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 84 | S IBSTR="" | 
|---|
| 85 | I IBTY["MRA" S IBD="MRA Review Status: "_IBST,IBSTR=$$SETLN^IBJTBA(IBD,"",2,38) | 
|---|
| 86 | S IBD=$S('$G(IBSPL):"  ",1:"**")_"Reported Payment Amt: "_$S('IBCA:$J(X,"",2),1:$J(+IBCA,"",2)) | 
|---|
| 87 | S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,41,37) | 
|---|
| 88 | S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 89 | ; | 
|---|
| 90 | I IBTY["MRA",$D(^IBM(361.1,IBI,21)) D | 
|---|
| 91 | . S IBD=$TR($J("",35)," ","-")_"Review"_$TR($J("",38)," ","-") | 
|---|
| 92 | . S IBSTR=$$SETLN^IBJTBA(IBD,"",1,79),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 93 | . S (IBST,IBCN)=0 F  S IBCN=$O(^IBM(361.1,IBI,21,IBCN)) Q:'IBCN  S X=$G(^(IBCN,0)) D | 
|---|
| 94 | .. S IBST=0 | 
|---|
| 95 | .. S IBD="Review Date: "_$$DAT1^IBOUTL($P(X,U)) | 
|---|
| 96 | .. S IBSTR=$$SETLN^IBJTBA(IBD,"",1,30) | 
|---|
| 97 | .. S IBD="Reviewed By: "_$P($G(^VA(200,+$P(X,U,2),0)),U) | 
|---|
| 98 | .. S IBSTR=$$SETLN^IBJTBA(IBD,IBSTR,40,39) | 
|---|
| 99 | .. S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 100 | .. S IBD=0 F  S IBD=$O(^IBM(361.1,IBI,21,IBCN,1,IBD)) Q:'IBD  S IBSTR=$$SETLN^IBJTBA($S('IBST:"Comments: ",1:"")_$G(^(IBD,0)),"",1,$S('IBST:69,1:79)),IBST=1,IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 101 | . I 'IBST D | 
|---|
| 102 | .. S IBSTR=$$SETLN^IBJTBA("None","",1,10) | 
|---|
| 103 | .. S IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 104 | Q | 
|---|
| 105 | ; | 
|---|
| 106 | EOBERR ; Display information about any 361.1 message storage or filing errors | 
|---|
| 107 | I '$O(^IBM(361.1,IBI,"ERR",0)) Q | 
|---|
| 108 | S IBSTR=$$SETLN^IBJTBA(" ** MESSAGE STORAGE ERRORS  **","",1,79),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 109 | S Z=0 F  S Z=$O(^IBM(361.1,IBI,"ERR",Z)) Q:'Z  S IBSTR=$$SETLN^IBJTBA($G(^(Z,0)),"",1,79),IBLN=$$SET^IBJTBA(IBSTR,IBLN) | 
|---|
| 110 | Q | 
|---|
| 111 | ; | 
|---|