| 1 | IBEMTSCR ;ALB/RFJ-print billable types for visit copay ;23 Nov 01 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**167,187,351**;21-MAR-94;Build 4 | 
|---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | W !!,"This option will print the billable types for copay visits." | 
|---|
| 6 | W !,"You have the option to deliver the report to yourself in MailMan" | 
|---|
| 7 | W !,"or print the report to a printer or on your screen." | 
|---|
| 8 | ; | 
|---|
| 9 | N IBFMAIL,%ZIS,IBFPOST,POP,ZTDESC,ZTQUEUED,ZTRTN,ZTSAVE | 
|---|
| 10 | S IBFMAIL=$$ASKPRINT | 
|---|
| 11 | I IBFMAIL<0 Q | 
|---|
| 12 | ; | 
|---|
| 13 | ;  select device | 
|---|
| 14 | I 'IBFMAIL D  I $D(IO("Q"))!(POP) K IO("Q"),ZTSK Q | 
|---|
| 15 | .   W ! S %ZIS="Q" D ^%ZIS Q:POP | 
|---|
| 16 | .   I $D(IO("Q")) D  D ^%ZTLOAD Q | 
|---|
| 17 | .   .   S ZTDESC="IB Visit Copay Billing Types",ZTRTN="DQ^IBEMTSCR" | 
|---|
| 18 | .   .   S ZTSAVE("IBFMAIL")="",ZTSAVE("ZTREQ")="@" | 
|---|
| 19 | ; | 
|---|
| 20 | W !!,"<*> please wait <*>" | 
|---|
| 21 | ; | 
|---|
| 22 | ; | 
|---|
| 23 | DQ ;  print report | 
|---|
| 24 | ;  variable ibfmail=1 to print to a mail message | 
|---|
| 25 | ;  variable ibfpost=1 if from post init | 
|---|
| 26 | N IBDA,IBDATA,IBLINE,IBSTOP,X,XMY | 
|---|
| 27 | ; | 
|---|
| 28 | ;  *** build the report in tmp *** | 
|---|
| 29 | ; | 
|---|
| 30 | ;  report line counter | 
|---|
| 31 | S IBLINE=0 | 
|---|
| 32 | ; | 
|---|
| 33 | D SET("This message is a summary of the Visit Copay Billing Types defined") | 
|---|
| 34 | D SET("for your station.") | 
|---|
| 35 | ;D SET("IB MEANS TEST.") | 
|---|
| 36 | D SET(" ") | 
|---|
| 37 | ; | 
|---|
| 38 | D SET("The following Visit Copay Billing Types are defined for your station:") | 
|---|
| 39 | D SET("Stop Code    Description                        Effective Date  Billable Type") | 
|---|
| 40 | D SET("---------    -----------------------------      --------------  -------------") | 
|---|
| 41 | S IBSTOP="" F  S IBSTOP=$O(^IBE(352.5,"B",IBSTOP)) Q:IBSTOP=""  D | 
|---|
| 42 | .   S IBDA=0 F  S IBDA=$O(^IBE(352.5,"B",IBSTOP,IBDA)) Q:'IBDA  S IBDATA=^IBE(352.5,IBDA,0) D | 
|---|
| 43 | .   .   ;  stop code | 
|---|
| 44 | .   .   S X=$J($P(IBDATA,"^"),9) | 
|---|
| 45 | .   .   ;  description | 
|---|
| 46 | .   .   S X=X_"    "_$P(IBDATA,"^",4)_$J("",35-$L($P(IBDATA,"^",4))) | 
|---|
| 47 | .   .   ;  effective date | 
|---|
| 48 | .   .   I '$P(IBDATA,"^",2) S $P(IBDATA,"^",2)="???????" | 
|---|
| 49 | .   .   S X=X_$E($P(IBDATA,"^",2),4,5)_"/"_$E($P(IBDATA,"^",2),6,7)_"/"_$E($P(IBDATA,"^",2),2,3) | 
|---|
| 50 | .   .   ;  billable type | 
|---|
| 51 | .   .   D SET(X_$J("",8)_$$TYPE($P(IBDATA,"^",3))) | 
|---|
| 52 | ; | 
|---|
| 53 | ; *** print or deliver the report from tmp *** | 
|---|
| 54 | ; | 
|---|
| 55 | ;  print the report | 
|---|
| 56 | I '$G(IBFMAIL) D | 
|---|
| 57 | .   N %,%I,IBFLAG,IBNOW,IBPAGE,IBSCREEN,X,Y | 
|---|
| 58 | .   D NOW^%DTC S Y=% D DD^%DT S IBNOW=Y | 
|---|
| 59 | .   S IBPAGE=1 | 
|---|
| 60 | .   S IBSCREEN=0 I '$D(ZTQUEUED),IO=IO(0),$E(IOST)="C" S IBSCREEN=1 | 
|---|
| 61 | .   U IO D H | 
|---|
| 62 | .   ; | 
|---|
| 63 | .   S IBLINE=0 F  S IBLINE=$O(^TMP($J,"IBEMTSCR",IBLINE)) Q:'IBLINE!($G(IBFLAG))  S IBDATA=^(IBLINE) D | 
|---|
| 64 | .   .   I $Y>(IOSL-4) D:IBSCREEN PAUSE Q:$G(IBFLAG)  D H | 
|---|
| 65 | .   .   W !,IBDATA | 
|---|
| 66 | .   ; | 
|---|
| 67 | .   D ^%ZISC | 
|---|
| 68 | ; | 
|---|
| 69 | ;  deliver the report in mailman | 
|---|
| 70 | I $G(IBFMAIL) D | 
|---|
| 71 | .   I $G(IBFPOST) S XMY("G.IB MEANS TEST")="" | 
|---|
| 72 | .   S XMY(DUZ)="" | 
|---|
| 73 | .   S X=$$SENDMSG("IB Visit Copay Billing Types",.XMY) | 
|---|
| 74 | ; | 
|---|
| 75 | K ^TMP($J,"IBEMTSCR") | 
|---|
| 76 | Q | 
|---|
| 77 | ; | 
|---|
| 78 | ; | 
|---|
| 79 | SET(DATA)       ; store report | 
|---|
| 80 | S IBLINE=IBLINE+1,^TMP($J,"IBEMTSCR",IBLINE)=DATA | 
|---|
| 81 | Q | 
|---|
| 82 | ; | 
|---|
| 83 | ; | 
|---|
| 84 | SENDMSG(XMSUB,XMY) ;  send message with subject and recipients | 
|---|
| 85 | N %X,D0,D1,D2,DIC,DICR,DIW,X,XCNP,XMDISPI,XMDUN,XMDUZ,XMTEXT,XMZ,ZTPAR | 
|---|
| 86 | S XMDUZ="IB PACKAGE",XMTEXT="^TMP($J,""IBEMTSCR""," | 
|---|
| 87 | D ^XMD | 
|---|
| 88 | Q +$G(XMZ) | 
|---|
| 89 | ; | 
|---|
| 90 | ; | 
|---|
| 91 | TYPE(CODE) ;  return the billable type based on set of codes | 
|---|
| 92 | I CODE=1 Q "Basic Care" | 
|---|
| 93 | I CODE=2 Q "Specialty Care" | 
|---|
| 94 | Q "Non-Billable" | 
|---|
| 95 | ; | 
|---|
| 96 | ; | 
|---|
| 97 | ASKPRINT() ;  ask to print in mail or printer | 
|---|
| 98 | ;  1 is yes, otherwise no | 
|---|
| 99 | N DIR,DIQ2,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 100 | S DIR(0)="YO",DIR("B")="NO" | 
|---|
| 101 | S DIR("A")="  Do you want to deliver the report in MailMan" | 
|---|
| 102 | W ! D ^DIR | 
|---|
| 103 | I $G(DTOUT)!($G(DUOUT)) S Y=-1 | 
|---|
| 104 | Q Y | 
|---|
| 105 | ; | 
|---|
| 106 | ; | 
|---|
| 107 | PAUSE ;  pause at end of page | 
|---|
| 108 | N X U IO(0) W !!,"Press RETURN to continue, '^' to exit:" R X:DTIME S:'$T X="^" S:X["^" IBFLAG=1 U IO Q | 
|---|
| 109 | ; | 
|---|
| 110 | ; | 
|---|
| 111 | H ;  header | 
|---|
| 112 | S %=IBNOW_"  PAGE "_IBPAGE,IBPAGE=IBPAGE+1 I IBPAGE'=2!(IBSCREEN) W @IOF | 
|---|
| 113 | W $C(13),"IB VISIT COPAY BILLING TYPES",?(80-$L(%)),% | 
|---|
| 114 | W !,$TR($J("",79)," ","-") | 
|---|
| 115 | Q | 
|---|