| 1 | IBCEMCA2 ;ALB/ESG - Multiple CSA Message Management - Actions ;20-SEP-2005 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**320**;21-MAR-1994 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | Q | 
|---|
| 6 | ; | 
|---|
| 7 | CANCEL ; mass claim cancel | 
|---|
| 8 | NEW NS,IBIFN,NSC,DIR,X,Y,DUOUT,DTOUT,DIRUT,DIROUT,IBDA,IB364,DISP,IBCE | 
|---|
| 9 | NEW IBMCSRSC,IBMCSRNB,IBMCSCNT,IBMCSTOT,IBMCSTOP,IBMCSCAN,MRACHK,IBCAN | 
|---|
| 10 | D FULL^VALM1 | 
|---|
| 11 | ; | 
|---|
| 12 | I '$$KCHK^XUSRB("IB AUTHORIZE") D  G CANCELX | 
|---|
| 13 | . W !!?5,"You don't hold the proper security key to access this option." | 
|---|
| 14 | . W !?5,"The necessary key is IB AUTHORIZE.  Please see your manager." | 
|---|
| 15 | . D PAUSE^VALM1 | 
|---|
| 16 | . Q | 
|---|
| 17 | ; | 
|---|
| 18 | S NS=+$G(^TMP($J,"IBCEMCL",4)) | 
|---|
| 19 | I 'NS D  G CANCELX | 
|---|
| 20 | . W !!?5,"There are no selected messages." D PAUSE^VALM1 | 
|---|
| 21 | . Q | 
|---|
| 22 | ; | 
|---|
| 23 | ; count number of claims too | 
|---|
| 24 | S IBIFN=0 F NSC=0:1 S IBIFN=$O(^TMP($J,"IBCEMCL",4,2,IBIFN)) Q:'IBIFN | 
|---|
| 25 | ; | 
|---|
| 26 | W !!?5,"Number of messages selected:  ",NS | 
|---|
| 27 | W !?7,"Number of claims selected:  ",NSC | 
|---|
| 28 | W !!,"In order to cancel " | 
|---|
| 29 | W $S(NSC=1:"this claim",1:"these claims") | 
|---|
| 30 | W ", you must supply the Reason Cancelled and" | 
|---|
| 31 | W !,"the Reason Not Billable.  These will be the default responses for " | 
|---|
| 32 | W $S(NSC=1:"this claim",1:"all claims") | 
|---|
| 33 | W "." | 
|---|
| 34 | ; | 
|---|
| 35 | CANQ1 ; reader call for the Reason Cancelled field | 
|---|
| 36 | W ! | 
|---|
| 37 | S DIR(0)="399,19" | 
|---|
| 38 | S DIR("A")="Reason Cancelled" | 
|---|
| 39 | D ^DIR K DIR | 
|---|
| 40 | I X="",Y="" W *7,!,"This is a required response. Enter '^' to exit." G CANQ1 | 
|---|
| 41 | I $D(DIRUT) G CANCELX | 
|---|
| 42 | M IBMCSRSC=Y           ; save the entered text for reason cancelled | 
|---|
| 43 | ; | 
|---|
| 44 | CANQ2 ; reader call for the reason not billable field | 
|---|
| 45 | W ! | 
|---|
| 46 | S DIR(0)="356,.19" | 
|---|
| 47 | S DIR("A")="Reason Not Billable" | 
|---|
| 48 | D ^DIR K DIR | 
|---|
| 49 | I X="",Y="" W *7,!,"This is a required response. Enter '^' to exit." G CANQ2 | 
|---|
| 50 | I $D(DIRUT) G CANCELX | 
|---|
| 51 | M IBMCSRNB=Y           ; save the reason not billable code/desc | 
|---|
| 52 | ; | 
|---|
| 53 | W ! | 
|---|
| 54 | S DIR(0)="YO" | 
|---|
| 55 | S DIR("A")="OK to proceed into the cancel claim loop",DIR("B")="No" | 
|---|
| 56 | D ^DIR K DIR | 
|---|
| 57 | I Y'=1 G CANCELX | 
|---|
| 58 | ; | 
|---|
| 59 | S IBIFN=0,IBMCSCNT=0,IBMCSTOT=NSC,IBMCSTOP=0 | 
|---|
| 60 | F  S IBIFN=$O(^TMP($J,"IBCEMCL",4,2,IBIFN)) Q:'IBIFN  D  Q:IBMCSTOP | 
|---|
| 61 | . S IBMCSCNT=IBMCSCNT+1 | 
|---|
| 62 | . S IBDA=+$O(^TMP($J,"IBCEMCL",4,2,IBIFN,""),-1)  ; most recent 361 ien | 
|---|
| 63 | . S IB364=+$P($G(^IBM(361,IBDA,0)),U,11)          ; transmit bill 364 ien | 
|---|
| 64 | . W !!," *** Processing MCS claim# ",IBMCSCNT," of ",IBMCSTOT," ***" | 
|---|
| 65 | . S DISP=$$DISP^IBCEM3(IBIFN,"cancel","",1,.DIRUT) | 
|---|
| 66 | . ; | 
|---|
| 67 | . I $D(DIRUT) D  Q       ; up arrow or time-out | 
|---|
| 68 | .. N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT | 
|---|
| 69 | .. S DIR(0)="YO" | 
|---|
| 70 | .. S DIR("A")="Do you want to Exit this MCS cancel claim loop" | 
|---|
| 71 | .. S DIR("B")="Yes" | 
|---|
| 72 | .. W ! D ^DIR K DIR | 
|---|
| 73 | .. I Y=1 S IBMCSTOP=1    ; Yes, exit out altogether | 
|---|
| 74 | .. Q | 
|---|
| 75 | . ; | 
|---|
| 76 | . I 'DISP Q              ; user said No to cancel | 
|---|
| 77 | . ; | 
|---|
| 78 | . I 'IBDA!'IB364 D  Q | 
|---|
| 79 | .. W !?4,"Cannot determine the EDI transmission record." | 
|---|
| 80 | .. W !?4,"This claim can't be cancelled here." | 
|---|
| 81 | .. D PAUSE^VALM1 | 
|---|
| 82 | .. Q | 
|---|
| 83 | . ; | 
|---|
| 84 | . D MRACHK^IBCECSA4 I MRACHK Q | 
|---|
| 85 | . ; | 
|---|
| 86 | . ; set-up required variables for main call to cancel this claim | 
|---|
| 87 | . S IBCAN=1,IBMCSCAN=1 | 
|---|
| 88 | . S IBCE("EDI")=1 | 
|---|
| 89 | . S Y=IBIFN | 
|---|
| 90 | . D | 
|---|
| 91 | .. ; protect variables to be restored after call to IBCC and | 
|---|
| 92 | .. ; leftover junk variables from IBCC | 
|---|
| 93 | .. NEW IBIFN,IBMCSTOP,IBMCSCNT,IBMCSTOT,IBCSAMCS | 
|---|
| 94 | .. NEW IBCCCC,IBCCR,IBQUIT,NAME,POP,RDATES,COL,CTRLCOL,FINISH | 
|---|
| 95 | .. D NOPTF^IBCC | 
|---|
| 96 | .. Q | 
|---|
| 97 | . Q | 
|---|
| 98 | ; | 
|---|
| 99 | I IBMCSTOP W !!?5,"MCS cancel loop aborted." | 
|---|
| 100 | I 'IBMCSTOP W !!?5,"Done with MCS cancel loop!" | 
|---|
| 101 | D PAUSE^VALM1 | 
|---|
| 102 | ; | 
|---|
| 103 | ; rebuild the list | 
|---|
| 104 | KILL ^TMP($J,"IBCEMCA"),VALMHDR | 
|---|
| 105 | S VALMBG=1 | 
|---|
| 106 | D UNLOCK^IBCEMCL | 
|---|
| 107 | D INIT^IBCEMCL | 
|---|
| 108 | I $G(IBCSAMCS)=1 S IBCSAMCS=2   ; flag to rebuild CSA | 
|---|
| 109 | ; | 
|---|
| 110 | CANCELX ; | 
|---|
| 111 | S VALMBCK="R" | 
|---|
| 112 | Q | 
|---|
| 113 | ; | 
|---|