1 | IBAGMM1 ;WOIFO/AAT-GMT MONTHLY TOTALS REPORT;30-JUL-02
|
---|
2 | ;;2.0;INTEGRATED BILLING;**183**;21-MAR-94
|
---|
3 | ;; Per VHA Directive 10-93-142, this routine should not be modified
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ; Prints report to the current device
|
---|
7 | ;
|
---|
8 | ; Input:
|
---|
9 | ; IBBDT - Beginning date
|
---|
10 | ; IBEDT - Ending date
|
---|
11 | ; Output:
|
---|
12 | ; IBQUIT = 1, if user entered "^" (Devices starting with "C-" only)
|
---|
13 | REPORT ;
|
---|
14 | N IBDT,IBDTE,IBDTH,IBCR,IBDA,IBAT,IBBG,IBTMP,IBZ,IBCL
|
---|
15 | S IBQUIT=0
|
---|
16 | S IBTMP=$NA(^TMP($J,"IBAGMM")) ; The node of TMP array
|
---|
17 | K @IBTMP
|
---|
18 | ;
|
---|
19 | ; Scan charges, created in the date range IBBDT-31 .. IBEDT
|
---|
20 | ; a charge cannot be for period longer than 30 days.
|
---|
21 | ; Index -
|
---|
22 | ;
|
---|
23 | ; Get the charges from file #350 to the temporary global
|
---|
24 | ; IBDT here - Parent Event Date
|
---|
25 | S IBDT=$$PLUS(IBBDT,-31) F S IBDT=$O(^IB("D",IBDT)) Q:'IBDT Q:$P(IBDT,".")>IBEDT D
|
---|
26 | . S IBCR=0 F S IBCR=$O(^IB("D",IBDT,IBCR)) Q:'IBCR D PROC(IBCR)
|
---|
27 | ;
|
---|
28 | D PRINT
|
---|
29 | K @IBTMP ; Kill the temporary global node
|
---|
30 | S:$D(ZTQUEUED) ZTREQ="@" ; for Taskman
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | PRINT ; Print report from the temp. global
|
---|
34 | N IBLINE,IBPAG,IBTOT,IBTOTS,IBTOTI,IBD,IBTY,IBDA,IBY,IBCHG,IBSAV,IBSEQ,IBMON,X,X2,X3,Y,%
|
---|
35 | D NOW^%DTC S IBDTH=$$FMTE^XLFDT($E(%,1,12))
|
---|
36 | S IBLINE="",$P(IBLINE,"=",IOM+1)="",(IBPAG,IBTOT,IBTOTS,IBTOTI,IBQUIT,IBCHG)=0
|
---|
37 | D HDR
|
---|
38 | I '$D(@IBTMP@("M")) W !!,"No GMT charges found within the specified period" D PAUSE(1) Q
|
---|
39 | ; - first, print detail lines
|
---|
40 | F IBMON=$E(IBBDT,1,5):1:$E(IBEDT,1,5) D Q:IBQUIT
|
---|
41 | . D CHKSTOP Q:IBQUIT
|
---|
42 | . S IBY=$G(@IBTMP@("M",IBMON))
|
---|
43 | . W !,$$MON($E(IBMON,4,5)),?10,1700+$E(IBMON,1,3)
|
---|
44 | . ;W ?16,$J($P(IBY,U,1),4) ;Number of charges not required
|
---|
45 | . W ?22,$J($P(IBY,U,2),3)
|
---|
46 | . W ?31,$$FORMAT($P(IBY,U,3),12,2),?46,$$FORMAT($P(IBY,U,4),12,2)
|
---|
47 | . I $P(IBY,U,5) W ?61,$$FORMAT($P(IBY,U,5),12,2)
|
---|
48 | . S IBTOT=IBTOT+$P(IBY,U,3),IBTOTS=IBTOTS+$P(IBY,U,4),IBTOTI=IBTOTI+$P(IBY,U,5)
|
---|
49 | Q:IBQUIT
|
---|
50 | I (IBTOT!IBTOTI) D TOTALS
|
---|
51 | D PAUSE(1)
|
---|
52 | Q
|
---|
53 | ;Number format
|
---|
54 | FORMAT(IBNUM,IBDIG,IBFRM) N X,X1,X2,X3
|
---|
55 | S X=IBNUM,X2=$G(IBFRM,"2$"),X3=IBDIG
|
---|
56 | D COMMA^%DTC
|
---|
57 | Q X
|
---|
58 | ;
|
---|
59 | CHKSTOP I $Y>(IOSL-5) D PAUSE(0) Q:IBQUIT D HDR
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | ;
|
---|
63 | HDR ; Print header.
|
---|
64 | N IBI
|
---|
65 | I $E(IOST,1,2)["C-"!(IBPAG) W @IOF,*13
|
---|
66 | S IBH="GMT MONTHLY TOTALS REPORT"
|
---|
67 | S IBPAG=IBPAG+1 W ?(70-$L(IBH)\2),IBH
|
---|
68 | W !,"From ",$$DAT(IBBDT)," through ",$$DAT(IBEDT)
|
---|
69 | W ?IOM-36,IBDTH,?IOM-9,"Page: ",IBPAG
|
---|
70 | W !!," MONTH",?10,"YEAR",?16,"# GMT PATIENTS ",?32,"GMT BILLED",?48,"GMT DIFF",?65,"PENDING"
|
---|
71 | W ! F IBI=1:1:80 W "-"
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | TOTALS N IBI,X
|
---|
75 | W !,?30 F IBI=1:1:45 W "-"
|
---|
76 | W !,?29,$$FORMAT(IBTOT,14),?44,$$FORMAT(IBTOTS,14),?59,$$FORMAT(IBTOTI,14)
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | STAT() ; Display bill number or status
|
---|
80 | N IBSTAT S IBSTAT=$G(^IBE(350.21,+$P(IBZ,U,5),0))
|
---|
81 | Q $S($P(IBSTAT,U,6):$$HLD(+$P(IBZ,U,5)),$P(IBZ,U,5)=99:"Converted",$P(IBZ,U,11)]"":$P($P(IBZ,U,11),"-",2),$P(IBSTAT,U,5):"Cancelled",1:"Pending")
|
---|
82 | ;
|
---|
83 | HLD(STAT) ; Return an 'on hold' status string
|
---|
84 | Q "Hold "_$S(STAT=20:"Rate",STAT=21:"Rev",1:"Ins")
|
---|
85 | ;
|
---|
86 | PAUSE(IBEND) ;
|
---|
87 | Q:$E(IOST,1,2)'["C-"
|
---|
88 | N IBJ,DIR,DIRUT,DTOUT,DUOUT,DIROUT,Y
|
---|
89 | W !! ;F IBJ=$Y:1:(IOSL-4) W !
|
---|
90 | S DIR(0)="E"
|
---|
91 | I $G(IBEND) S DIR("A")="End of the report. Enter RETURN to continue or '^' to exit"
|
---|
92 | D ^DIR K DIR I $G(DUOUT) S IBQUIT=1 W @IOF Q
|
---|
93 | I $G(IBEND) W @IOF
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | DAT(IBDT) ; Convert FM date to (mm/dd/yy) format.
|
---|
97 | Q $$FMTE^XLFDT(IBDT,"2MZ")
|
---|
98 | ;
|
---|
99 | PLUS(IBDT,IBDAYS) N X,X1,X2
|
---|
100 | S X1=IBDT,X2=IBDAYS
|
---|
101 | D C^%DTC
|
---|
102 | Q X
|
---|
103 | ;
|
---|
104 | ;Add the data to tmp global, if needed.
|
---|
105 | PROC(IBDA) N IBDTBT,IBMON,IBZ,IBY,IBDFN,IBSTA,IBCRG,IBSEQ,IBGMT
|
---|
106 | S IBZ=$G(^IB(IBDA,0)) I 'IBZ Q
|
---|
107 | S IBSTA=$P(IBZ,U,5) I IBSTA=9 Q ; ERROR charges will not be considered
|
---|
108 | S IBCRG=$P(IBZ,U,7) I 'IBCRG Q ;Zero amount
|
---|
109 | Q:$P(IBZ,U,8)["ADMISSION"
|
---|
110 | S IBDTBT=$P(IBZ,U,15) S:IBDTBT="" IBDTBT=$P(IBZ,U,14)
|
---|
111 | S IBDTBT=$P(IBDTBT,".")
|
---|
112 | Q:IBDTBT<IBBDT Q:IBDTBT>IBEDT ;"BILLED TO" date must be within the date range
|
---|
113 | ; Do not include cancelled charges with no bill No.
|
---|
114 | I $P(IBZ,U,11)="",$P($G(^IBE(350.21,+$P(IBZ,U,5),0)),U,5) Q
|
---|
115 | S IBGMT=$P(IBZ,U,21)
|
---|
116 | S IBSEQ=$P($G(^IBE(350.1,+$P(IBZ,U,3),0)),U,5)
|
---|
117 | I IBSEQ=2,'IBGMT,$P(IBZ,U,9) S IBGMT=$P($G(^IB(+$P(IBZ,U,9),0)),U,21) ; Maybe the parent charge is GMT RELATED?
|
---|
118 | Q:'IBGMT ; The charge is not GMT RELATED.
|
---|
119 | I IBSEQ=2 S IBCRG=-IBCRG
|
---|
120 | S IBMON=$E(IBDTBT,1,5) ;Month
|
---|
121 | S IBDFN=$P(IBZ,U,2)
|
---|
122 | S IBY=$G(@IBTMP@("M",IBMON)) ;Monthly statistics node
|
---|
123 | S $P(IBY,U,1)=$P(IBY,U,1)+1 ; Charge Counter
|
---|
124 | I '$D(@IBTMP@("P",IBDFN,IBMON)) S $P(IBY,U,2)=$P(IBY,U,2)+1,@IBTMP@("P",IBDFN,IBMON)="" ; Patient Counter
|
---|
125 | I IBSTA'=1 S $P(IBY,U,3)=$P(IBY,U,3)+IBCRG ; GMT Charges Monthly Total
|
---|
126 | I IBSTA'=1 S $P(IBY,U,4)=$P(IBY,U,4)+(IBCRG*4) ; GMT Charges Monthly Difference
|
---|
127 | I IBSTA=1 S $P(IBY,U,5)=$P(IBY,U,5)+IBCRG ; GMT Incompleted Charges Monthly Total
|
---|
128 | S @IBTMP@("M",IBMON)=IBY
|
---|
129 | Q
|
---|
130 | MON(IBMON) I (IBMON<1)!(IBMON>12) Q ""
|
---|
131 | Q $P("JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUGUST SEPTEMBER OCTOBER NOVEMBER DECEMBER"," ",IBMON)
|
---|
132 | ;
|
---|