| [613] | 1 | IBECEA1 ;ALB/RLW-Cancel/Edit/Add... Action Entry Points ; 12-JUN-92 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**15,27,45,176,312**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | PASS ; 'Pass a Charge' Entry Action (added by Jim Moore 4/30/92) | 
|---|
|  | 6 | N C,IBII,IBNOS,IBND,IBMSG,IBY,IBLINE,IBSTAT,IBAFY,IBATYP,IBHLDR | 
|---|
|  | 7 | N IBARTYP,IBN,IBSEQNO,IBSERV,IBTOTL,IBTRAN,IBIL,IBNOS2,Y,IBXA | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | S VALMBCK="R" D EN^VALM2($G(XQORNOD(0))) | 
|---|
|  | 10 | I $D(VALMY) I '$$PFSSWARN^IBBSHDWN() S VALMBCK="R" Q | 
|---|
|  | 11 | ; | 
|---|
|  | 12 | S IBII="" F  S IBII=$O(VALMY(IBII)) Q:'IBII  D  L -^IB(IBNOS2) D MSG | 
|---|
|  | 13 | .S IBY=1,IBLINE=^TMP("IBACM",$J,IBII,0) | 
|---|
|  | 14 | .S (IBNOS,IBNOS2)=+$P(^TMP("IBACMIDX",$J,IBII),"^",4) | 
|---|
|  | 15 | .; | 
|---|
|  | 16 | .; - perform up-front edits | 
|---|
|  | 17 | .L +^IB(IBNOS2):5 I '$T S IBMSG="was not passed - record not available, please try again" Q | 
|---|
|  | 18 | .S IBND=$G(^IB(IBNOS2,0)) I IBND="" S IBMSG="was not passed - record missing the zeroth node" Q | 
|---|
|  | 19 | .I $P(IBND,"^",12) S IBMSG="was not passed - the charge already has an AR Transaction Number" Q | 
|---|
|  | 20 | .S IBSTAT=+$P(IBND,"^",5) I $P($G(^IBE(350.21,IBSTAT,0)),"^",4) S IBMSG="was not passed - the status indicates that the charge is billed" Q | 
|---|
|  | 21 | .I $P(IBND,"^",7)'>0 S IBMSG="was not passed - there is no charge amount" Q | 
|---|
|  | 22 | .S IBSEQNO=$P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",5) I 'IBSEQNO S IBMSG="was not passed (Bulletin will be generated)",IBY="-1^IB023" Q | 
|---|
|  | 23 | .I $P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",11)=6 S IBMSG="was not passed - CHAMPVA charges must be cancelled and rebilled" Q | 
|---|
|  | 24 | .S IBHLDR=(IBSTAT=21) | 
|---|
|  | 25 | .; - pass charge to AR and update list | 
|---|
|  | 26 | .D ^IBR S IBY=$G(Y) | 
|---|
|  | 27 | .S IBND=$G(^IB(IBNOS2,0)) | 
|---|
|  | 28 | .S (IBSTAT,Y)=$P(IBND,"^",5),C=$P($G(^DD(350,.05,0)),"^",2) D Y^DIQ | 
|---|
|  | 29 | .S IBLINE=$$SETSTR^VALM1(Y,IBLINE,+$P(VALMDDF("STATUS"),"^",2),+$P(VALMDDF("STATUS"),"^",3)) | 
|---|
|  | 30 | .S IBLINE=$$SETSTR^VALM1($P($P(IBND,"^",11),"-",2),IBLINE,+$P(VALMDDF("BILL#"),"^",2),+$P(VALMDDF("BILL#"),"^",3)) | 
|---|
|  | 31 | .S ^TMP("IBACM",$J,IBII,0)=IBLINE | 
|---|
|  | 32 | .S IBMSG=$S(+IBY=-1:"was not passed -",IBSTAT=8:"has now been placed ON HOLD",1:"has now been passed") | 
|---|
|  | 33 | .; | 
|---|
|  | 34 | .; - if there is no active billing clock, add one | 
|---|
|  | 35 | .;   added check for LTC, don't do this for LTC | 
|---|
|  | 36 | .S IBXA=$P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",11) | 
|---|
|  | 37 | .I $P(IBND,"^",14),'$P($G(^IB(IBNOS2,1)),"^",5),'$D(^IBE(351,"ACT",DFN)),IBXA'=8,IBXA'=9 D | 
|---|
|  | 38 | ..W !,"This patient has no active billing clock.  Adding a new one... " | 
|---|
|  | 39 | ..S IBCLDT=$P(IBND,"^",14) | 
|---|
|  | 40 | ..I '$D(IBSERV) D SERV^IBAUTL2 | 
|---|
|  | 41 | ..D CLADD^IBAUTL3 W $S(IBY>0:"done.",1:"error (see msg)") | 
|---|
|  | 42 | .; | 
|---|
|  | 43 | .; - if charge was on hold pending review, pass data to IVM | 
|---|
|  | 44 | .I IBHLDR W !,"Passing billing data to the IVM package...  " D IVM^IBAMTV32(IBND) W "done." | 
|---|
|  | 45 | Q | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | MSG ; Display results message. | 
|---|
|  | 48 | W !,"Charge #"_IBII_" "_IBMSG I +IBY=-1 D ^IBAERR1 | 
|---|
|  | 49 | W ! S DIR(0)="E" D ^DIR K DIR W ! | 
|---|
|  | 50 | Q | 
|---|
|  | 51 | ; | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | ADD ; 'Add a Charge' Entry Action | 
|---|
|  | 54 | I '$$PFSSWARN^IBBSHDWN() S VALMBCK="R" Q                   ;IB*2.0*312 | 
|---|
|  | 55 | G ^IBECEA3 | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | UPD ; 'Edit a Charge' Entry Action | 
|---|
|  | 58 | S IBAUPD=1 | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | CAN ; 'Cancel a Charge' Entry Action | 
|---|
|  | 61 | D EN^VALM2(IBNOD(0)) I '$O(VALMY(0)) S VALMBCK="" G CANQ | 
|---|
|  | 62 | I $G(IBAUPD) I '$$PFSSWARN^IBBSHDWN() S VALMBCK="R" Q       ;IB*2.0*312 | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | S (IBNBR,IBCOMMIT)=0,VALMBCK="R" | 
|---|
|  | 65 | F  S IBNBR=$O(VALMY(IBNBR)) Q:'IBNBR  D ^@$S($G(IBAUPD):"IBECEA2",1:"IBECEA4") | 
|---|
|  | 66 | I IBCOMMIT S IBBG=VALMBG W !,"Rebuilding list of charges..." D ARRAY^IBECEA0 S VALMBG=IBBG | 
|---|
|  | 67 | K IBBG,IBNBR,IBAUPD,IBCOMMIT | 
|---|
|  | 68 | CANQ Q | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | PAUSE ; Keep this around for awhile. | 
|---|
|  | 71 | W ! S DIR(0)="E" D ^DIR K DIR W ! | 
|---|
|  | 72 | Q | 
|---|