| [613] | 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 | 
|---|