| 1 | IBCEOB2 ;ALB/TMP - EOB LIST FOR MANUAL MAINTENANCE ;18-FEB-99 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**137,155**;21-MAR-94 | 
|---|
| 3 | Q | 
|---|
| 4 | ; | 
|---|
| 5 | EN ; Enter/edit an EOB manually for a bill | 
|---|
| 6 | ; MRA's cannot be manually entered | 
|---|
| 7 | N VALMCNT,VALMBG,VALMHDR | 
|---|
| 8 | S VALMCNT=0,VALMBG=1 | 
|---|
| 9 | D EN^VALM("IBCE EOB LIST") | 
|---|
| 10 | Q | 
|---|
| 11 | ; | 
|---|
| 12 | HDR ; -- header code | 
|---|
| 13 | N IBCOB,IBINS,IBINSNM | 
|---|
| 14 | K VALMHDR | 
|---|
| 15 | S IBINS=$$CURR^IBCEF2(IBIFN),IBINSNM=$P($G(^DIC(36,+IBINS,0)),U) | 
|---|
| 16 | S IBCOB=$P("^PRIMARY^SECONDARY^TERTIARY",U,$$COBN^IBCEF(IBIFN)+1) | 
|---|
| 17 | S VALMHDR(1)=IORVON_" BILL #:"_$$BN^PRCAFN(IBIFN)_IORVOFF | 
|---|
| 18 | S VALMHDR(1)=$J("",80-$L(VALMHDR(1))\2)_VALMHDR(1) | 
|---|
| 19 | S VALMHDR(2)=" CURRENT INSURANCE COMPANY ("_IBCOB_"): "_IBINSNM | 
|---|
| 20 | I $D(^IBM(361.1,"B",IBIFN)) D | 
|---|
| 21 | . S VALMHDR(3)=" " | 
|---|
| 22 | . S VALMHDR(4)=" #  SEQ PAYER"_$J("",15)_"EOB PAID DATE     TYPE  STATUS" | 
|---|
| 23 | Q | 
|---|
| 24 | ; | 
|---|
| 25 | INIT ; -- init variables and list array | 
|---|
| 26 | ; Select bill | 
|---|
| 27 | K VALMQUIT | 
|---|
| 28 | S IBIFN=$$BILL(.VALMQUIT) | 
|---|
| 29 | INITQ Q | 
|---|
| 30 | ; | 
|---|
| 31 | HELP ; -- help code | 
|---|
| 32 | S X="?" D DISP^XQORM1 W !! | 
|---|
| 33 | Q | 
|---|
| 34 | ; | 
|---|
| 35 | EXIT ; -- exit code | 
|---|
| 36 | K ^TMP("IBCEOB",$J),IBIFN,IBEOB | 
|---|
| 37 | D CLEAR^VALM1 | 
|---|
| 38 | Q | 
|---|
| 39 | ; | 
|---|
| 40 | BLD ; Build list template display - IBIFN must equal ien of bill in file 399 | 
|---|
| 41 | ; | 
|---|
| 42 | N IB0,X,Y,IBCOB,IBCOBN,IB,IBCNT,IBEOB,IBSEQ,IBPDDT | 
|---|
| 43 | S VALMCNT=0 | 
|---|
| 44 | K ^TMP("IBCEOB",$J) | 
|---|
| 45 | S IB0=$G(^DGCR(399,+$G(IBIFN),0)),VALMCNT=0 | 
|---|
| 46 | S IBCOB=$P($$EXTERNAL^DILFD(399,.21,,$P(IB0,U,21))," "),IBCOBN=$$COBN^IBCEF(IBIFN) | 
|---|
| 47 | ; | 
|---|
| 48 | S IBCNT=0 | 
|---|
| 49 | I $D(^IBM(361.1,"B",IBIFN)) D  ; Display existing EOB's for bill, if any | 
|---|
| 50 | . K ^TMP("IB",$J) | 
|---|
| 51 | . S IBEOB=0 F  S IBEOB=$O(^IBM(361.1,"B",IBIFN,IBEOB)) Q:'IBEOB  D | 
|---|
| 52 | .. S IB0=$G(^IBM(361.1,IBEOB,0)) | 
|---|
| 53 | .. S ^TMP("IB",$J,+$P(IB0,U,6),IBEOB)=IB0 ; Sort by EOB paid date | 
|---|
| 54 | . ; | 
|---|
| 55 | . S IBPDDT="" F  S IBPDDT=$O(^TMP("IB",$J,IBPDDT)) Q:IBPDDT=""  S IBEOB=0 F  S IBEOB=$O(^TMP("IB",$J,IBPDDT,IBEOB)) Q:'IBEOB  S IB0=$G(^(IBEOB)) I IB0'="" D | 
|---|
| 56 | .. ; | 
|---|
| 57 | .. S IBCNT=IBCNT+1 | 
|---|
| 58 | .. S IBSEQ=+$P(IB0,U,15) | 
|---|
| 59 | .. S IB=" "_$E(IBCNT_"   ",1,3)_$S(IBSEQ:"("_$P("P^S^T",U,IBSEQ)_") ",1:$J("",4))_$E($$EXTERNAL^DILFD(361.1,.02,"",$P(IB0,U,2))_$J("",18),1,18)_"  " | 
|---|
| 60 | .. S IB=IB_$E($$FMTE^XLFDT($P(IB0,U,6),"2")_$J("",18),1,18)_" "_$E($P("EOB^MRA",U,$P(IB0,U,4)+1)_$J("",5),1,5)_$$EXTERNAL^DILFD(361.1,.13,"",$P(IB0,U,13)) | 
|---|
| 61 | .. ; | 
|---|
| 62 | .. D SET(IB,IBCNT,IBEOB) | 
|---|
| 63 | . ; | 
|---|
| 64 | . K ^TMP("IB",$J) | 
|---|
| 65 | I 'IBCNT S IBCNT=IBCNT D SET(" NO EOB's FOUND FOR BILL #"_$$BN^PRCAFN(IBIFN)) | 
|---|
| 66 | ; | 
|---|
| 67 | Q | 
|---|
| 68 | ; | 
|---|
| 69 | SET(X,CNT,IBEOB) ;set list manager screen arrays | 
|---|
| 70 | S VALMCNT=VALMCNT+1 | 
|---|
| 71 | S ^TMP("IBCEOB",$J,VALMCNT,0)=X | 
|---|
| 72 | I $G(IBEOB) D | 
|---|
| 73 | . S ^TMP("IBCEOB",$J,"IDX",VALMCNT,CNT)="" | 
|---|
| 74 | . S ^TMP("IBCEOB",$J,CNT)=VALMCNT_U_IBEOB | 
|---|
| 75 | Q | 
|---|
| 76 | ; | 
|---|
| 77 | BILL(VALMQUIT,IBX) ; Select bill | 
|---|
| 78 | ; VALMQUIT = pass by reference to determine if protocol should quit | 
|---|
| 79 | ; IBX = pass by reference to return 1 if timeout or ^ entered | 
|---|
| 80 | ; | 
|---|
| 81 | ; Must be printed/txmt or closed status, have a current insurance and | 
|---|
| 82 | ; not having MEDICARE WNR as its primary insurance with the COB sequence | 
|---|
| 83 | ;  of the bill being primary | 
|---|
| 84 | ; | 
|---|
| 85 | N DIC,DA,X,Y,IBIFN | 
|---|
| 86 | K VALMQUIT | 
|---|
| 87 | S IBX=0 | 
|---|
| 88 | S DIC="^DGCR(399,",DIC(0)="AEMQ",DIC("S")="N IBY S IBY=Y I $P(^(0),U,13)'="""",""04""[$P(^(0),U,13),$D(^(""I1"")),$S($$MCRWNR^IBEFUNC(+$$CURR^IBCEF2(+IBY)):+$$COBN^IBCEF(+IBY)'=1,1:1)" D ^DIC K DIC | 
|---|
| 89 | S IBIFN=+Y,IBX=($G(DTOUT)!($G(DUOUT))) | 
|---|
| 90 | I IBIFN'>0 S VALMQUIT=1 G BILLQ | 
|---|
| 91 | I IBIFN>0 D BLD,HDR | 
|---|
| 92 | BILLQ Q IBIFN | 
|---|
| 93 | ; | 
|---|