| 1 | IBTUBO ;ALB/AAS - UNBILLED AMOUNTS - GENERATE UNBILLED REPORTS ;29-SEP-94 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**19,31,32,91,123,159,192,235,248,155**;21-MAR-94 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | % ; - Entry point for manual option. | 
|---|
| 6 | N IBBDT,IBCOMP,IBDET,IBEDT,IBOPT,IBPRT,IBTIMON,IBQUIT,IBSEL | 
|---|
| 7 | S IBQUIT=0 D:'$D(DT) DT^DICRW | 
|---|
| 8 | W !!,"Re-Generate Unbilled Amounts Report",! | 
|---|
| 9 | ; | 
|---|
| 10 | ; - Ask to re-compile Unbilled Amounts data. | 
|---|
| 11 | S DIR(0)="Y",DIR("B")="NO" | 
|---|
| 12 | S DIR("A")="Do you want to store Unbilled Amounts figures" | 
|---|
| 13 | S DIR("?",1)="Enter 'YES' if you wish to store the Unbilled Amounts summary" | 
|---|
| 14 | S DIR("?",2)="figures in your system for a specific month/year in the past." | 
|---|
| 15 | S DIR("?",3)="Once stored, these figures will be available for inquiry through" | 
|---|
| 16 | S DIR("?",4)="the View Unbilled Amounts option [IBT VIEW UNBILLED AMOUNTS]." | 
|---|
| 17 | S DIR("?",5)="These summary figures are normally calculated and stored" | 
|---|
| 18 | S DIR("?",6)="automatically by the system at the beginning of each month for" | 
|---|
| 19 | S DIR("?",7)="the previous month." | 
|---|
| 20 | S DIR("?",8)=" " | 
|---|
| 21 | S DIR("?",9)="If you enter 'NO', the Unbilled Amounts summary figures will" | 
|---|
| 22 | S DIR("?",10)="NOT be stored in your system, and the report may be run for" | 
|---|
| 23 | S DIR("?")="any date range." | 
|---|
| 24 | D ^DIR K DIR G:$D(DIRUT) END S IBCOMP=Y | 
|---|
| 25 | I IBCOMP G RDATE | 
|---|
| 26 | ; | 
|---|
| 27 | ; - Select date(s) to build report. | 
|---|
| 28 | W ! D DT1^IBTUBOU G:IBBDT="^" END | 
|---|
| 29 | ; | 
|---|
| 30 | ; - Select report(s). | 
|---|
| 31 | S IBPRT="Choose report type(s) to print:" | 
|---|
| 32 | S IBOPT(1)="INPATIENT UNBILLED" | 
|---|
| 33 | S IBOPT(2)="OUTPATIENT UNBILLED" | 
|---|
| 34 | S IBOPT(3)="PRESCRIPTION UNBILLED" | 
|---|
| 35 | S IBOPT(4)="ALL OF THE ABOVE" | 
|---|
| 36 | S IBSEL=$$MLTP^IBJD(IBPRT,.IBOPT,1) I 'IBSEL G END | 
|---|
| 37 | S $E(IBSEL,$L(IBSEL))="" | 
|---|
| 38 | ; | 
|---|
| 39 | RDATE ; - Select re-compile date, if necessary. | 
|---|
| 40 | I IBCOMP D  G END:IBTIMON="^",DET | 
|---|
| 41 | . W ! D DT2("Unbilled Amounts") Q:IBTIMON="^" | 
|---|
| 42 | . W !!,"NOTE: Just a reminder that by entering the above month/year this" | 
|---|
| 43 | . W !,"      report will re-calculate and update the Unbilled Amounts" | 
|---|
| 44 | . W !,"      data on file in your system.",*7 | 
|---|
| 45 | . ; | 
|---|
| 46 | . ; - Initialize variables | 
|---|
| 47 | . I IBTIMON<3030900 N X S X=$$M2^IBJDE(IBTIMON,11,11) D | 
|---|
| 48 | .. S IBBDT=+X,IBEDT=$P(X,U,2)+.9,IBSEL="1,2,3" | 
|---|
| 49 | . I IBTIMON'<3030900 S IBBDT=$$M3^IBJDE($$LDATE^IBJDE(IBTIMON)+1),IBEDT=$$LDATE^IBJDE(IBTIMON)+.9,IBSEL="1,2,3" | 
|---|
| 50 | . D MSG W ! | 
|---|
| 51 | ; | 
|---|
| 52 | S IBTIMON=IBEDT\100*100 | 
|---|
| 53 | ; | 
|---|
| 54 | DET ; - Ask to print detail report. | 
|---|
| 55 | S DIR(0)="Y",DIR("B")="NO" W ! | 
|---|
| 56 | S DIR("A")="Print detail report with the Unbilled Amounts summary" | 
|---|
| 57 | S DIR("?",1)="Answer YES if you want a detailed listing of the patients" | 
|---|
| 58 | S DIR("?",2)="and events that are unbilled. Answer NO if you just want" | 
|---|
| 59 | S DIR("?")="the summary, or '^' to quit this option." | 
|---|
| 60 | D ^DIR K DIR G:$D(DIRUT) END S IBDET=Y G:'IBDET QUE | 
|---|
| 61 | ; | 
|---|
| 62 | ; Ask to include REQUEST MRA Status | 
|---|
| 63 | S DIR(0)="YA",DIR("A")="Do you want to include MRA claims?: ",DIR("B")="NO" W ! D ^DIR K DIR G:$D(DIRUT) END | 
|---|
| 64 | S IBINMRA=+Y | 
|---|
| 65 | ; | 
|---|
| 66 | ; - Select device to print. | 
|---|
| 67 | W !!,"This report takes a while to run, so you should queue it to run" | 
|---|
| 68 | W !,"after normal business hours." | 
|---|
| 69 | W !!,"You will need a 132 column printer for this report!",! | 
|---|
| 70 | S %ZIS="QM" D ^%ZIS G END:POP,QUE:$D(IO("Q")) | 
|---|
| 71 | ; | 
|---|
| 72 | U IO G STR | 
|---|
| 73 | ; | 
|---|
| 74 | QUE ; - Queue report/summary, if necessary. | 
|---|
| 75 | W ! I 'IBDET S ZTIO="" | 
|---|
| 76 | S ZTRTN="IBTUBOA",ZTSAVE("IB*")="" | 
|---|
| 77 | S ZTDESC="IB - Unbilled Amounts Report" | 
|---|
| 78 | D ^%ZTLOAD K IO("Q"),ZTSK | 
|---|
| 79 | D HOME^%ZIS G END | 
|---|
| 80 | ; | 
|---|
| 81 | AUTO ; - Entry point for scheduled option. | 
|---|
| 82 | Q  ;;**NO LONGER USED** | 
|---|
| 83 | ; | 
|---|
| 84 | DQ ; - Entry point for DM extract. | 
|---|
| 85 | ; - If AUTO PRINT UNBILLED LIST=yes and default report printer then | 
|---|
| 86 | ;   automatically requeue to device. | 
|---|
| 87 | I $P(^IBE(350.9,1,6),U,24) D  G END:'$G(IBXTRACT) | 
|---|
| 88 | . N X S X=$O(^IBE(353,"B","IB REPORTS",0)) | 
|---|
| 89 | . S ZTIO=$P($G(^IBE(353,+X,0)),U,2) Q:ZTIO="" | 
|---|
| 90 | . S IBDET=1,IBXTRACT=0,ZTDTH=$H,ZTRTN="IBTUBOA",ZTSAVE("IB*")="" | 
|---|
| 91 | . S ZTDESC="IB - Unbilled Amounts Report" D ^%ZTLOAD | 
|---|
| 92 | . S IBDET=0,IBXTRACT=1 | 
|---|
| 93 | . K ZTDESC,ZTDTH,ZTRTN,ZTSAVE,ZTSK | 
|---|
| 94 | ; | 
|---|
| 95 | STR D ^IBTUBOA ; Start report. | 
|---|
| 96 | ; | 
|---|
| 97 | END K DIRUT Q | 
|---|
| 98 | ; | 
|---|
| 99 | MSG ; - Compile message. | 
|---|
| 100 | W !!,"NOTE: After this report is run, the Unbilled Amounts totals for" | 
|---|
| 101 | W !?6,"the month of "_$$DAT2^IBOUTL(IBTIMON)_" will be updated." | 
|---|
| 102 | Q | 
|---|
| 103 | DT2(STR) ; - Select re-compile date (returns variable IBTIMON). | 
|---|
| 104 | ; Input: STR - String that describe the type of data that will be | 
|---|
| 105 | ;        re-compiled: "Unbilled Amounts", "Average Bill Amounts", etc... | 
|---|
| 106 | ; | 
|---|
| 107 | ; This code is very the same code as is in DT2^IBTUBOU... that is | 
|---|
| 108 | ; a utility routine, so code was copied and altered to accommodate | 
|---|
| 109 | ; EOAM changes. | 
|---|
| 110 | N DIRUT,DT0,DT1,DT2,Y | 
|---|
| 111 | ; - AUG 1993 is the first month on file with Unbilled Amounts data | 
|---|
| 112 | S DT0=2930800,DT1=$$DAT2^IBOUTL(DT0) | 
|---|
| 113 | I $E(DT,6,7)'>$E($$LDATE^IBJDE(DT),6,7) S DT2=DT | 
|---|
| 114 | I $E(DT,6,7)>$E($$LDATE^IBJDE(DT),6,7) S DT2=DT+100 I $E(DT2,4,5)=13 S DT2=DT+8900 | 
|---|
| 115 | S DT2=$$M1^IBJDE(DT2,1),DIR("B")=$$DAT2^IBOUTL(DT2) | 
|---|
| 116 | S DIR(0)="DA^"_$E(DT0,1,5)_"00:"_DT2_":AE^K:$E(Y,6,7)'=""00"" X" | 
|---|
| 117 | S DIR("A")="Re-compile "_$G(STR)_" through MONTH/YEAR: " | 
|---|
| 118 | S DIR("?",1)="Enter a past month/year (ex. Oct 2000).",DIR("?",2)="" | 
|---|
| 119 | S DIR("?",3)="NOTE: The earliest month/year that can be entered is "_DT1_", and" | 
|---|
| 120 | S DIR("?")="      it is NOT possible to enter the current or a future month/year." | 
|---|
| 121 | D ^DIR K DIR I $D(DIRUT) S IBTIMON="^" G DT2Q | 
|---|
| 122 | I $E(Y,6,7)'="00"!($E(Y,4,7)="0000") W "  ??" G DT2 | 
|---|
| 123 | S IBTIMON=Y | 
|---|
| 124 | ; | 
|---|
| 125 | DT2Q Q | 
|---|