1 | SDSCRP2 ;ALB/JAM/RBS - Recovered Costs Report for ASCD ; 3/13/07 2:50pm
|
---|
2 | ;;5.3;Scheduling;**495**;Aug 13, 1993;Build 50
|
---|
3 | ;;MODIFIED FOR NATIONAL RELEASE from a Class III software product
|
---|
4 | ;;known as Service Connected Automated Monitoring (SCAM).
|
---|
5 | ;
|
---|
6 | ;**Program Description**
|
---|
7 | ; This program will report on all bills generated and amounts
|
---|
8 | ; received for encounters whose Service Connected was changed
|
---|
9 | ; from 'Yes' to 'No'.
|
---|
10 | Q
|
---|
11 | EN ; Entry point - find all records
|
---|
12 | ; Get Division
|
---|
13 | N SDSCDVSL,SDSCDVLN,SDRUN,ZTDESC,ZTRTN,ZTIO,ZTSAVE,DIR,X,Y
|
---|
14 | D DIV^SDSCUTL
|
---|
15 | D ^DIR
|
---|
16 | I $G(DTOUT)!($G(DUOUT)) G EXIT
|
---|
17 | S SDSCDVSL=Y,SDSCDVLN=SCLN K DIR,Y,X,SCLN
|
---|
18 | S SDRUN=$$HTE^XLFDT($H,1),ZTDESC="RECOVERED COSTS REPORT",ZTRTN="BEG^SDSCRP2"
|
---|
19 | ; Get start and end date for report.
|
---|
20 | D GETDATE^SDSCOMP I SDSCTDT="" G EXIT
|
---|
21 | W !!,"You will need a 132 column printer for this report!",!
|
---|
22 | K %ZIS S %ZIS="QM" D ^%ZIS G EXIT:POP
|
---|
23 | I '$D(IO("Q")) K ZTDESC G @ZTRTN
|
---|
24 | S ZTIO=ION,ZTSAVE("*")=""
|
---|
25 | D ^%ZTLOAD
|
---|
26 | G EXIT
|
---|
27 | ;
|
---|
28 | BEG ; Begin report
|
---|
29 | N P,L,SDABRT,CT,SDSCDIV,SDSCDNM,THDR,SDI,DFTOTB,DFTOTP,DTTOTB,DTTOTP
|
---|
30 | S (P,L,SDABRT,CT)=0
|
---|
31 | S SDSCDIV=$S(SDSCDVSL'[SDSCDVLN:SDSCDVSL,1:"")
|
---|
32 | I SDSCDIV="" S SDSCDNM="ALL" D FND G EXT
|
---|
33 | I SDSCDIV'="" D
|
---|
34 | . S THDR=""
|
---|
35 | . F SDI=1:1:$L(SDSCDVSL,",") S SDSCDIV=$P(SDSCDVSL,",",SDI) Q:SDSCDIV="" D Q:$G(SDABRT)=1
|
---|
36 | .. S SDSCDNM=$P(^DG(40.8,SDSCDIV,0),"^",1),THDR=THDR_SDSCDNM_",",CT=CT+1 D FND
|
---|
37 | G EXT
|
---|
38 | ;
|
---|
39 | FND ; Find records
|
---|
40 | N SDATA,SDOEDT,SDOE,DFN,ENCDT,SDCLM,GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP
|
---|
41 | N BILN,TCHRG,TPAY,AUTHDT,SDWHO,PYMDT,ENCDT,SDSCD,SDPAT,VADM,SCVAL,SDBTR
|
---|
42 | K ^TMP($J,"SDSCBILL")
|
---|
43 | S SDOEDT=SDSCTDT
|
---|
44 | F S SDOEDT=$O(^SDSC(409.48,"C","C",SDOEDT)) Q:SDOEDT=""!(SDOEDT\1>SDEDT) D
|
---|
45 | . S SDOE=0
|
---|
46 | . F S SDOE=$O(^SDSC(409.48,"C","C",SDOEDT,SDOE)) Q:'SDOE D
|
---|
47 | .. S SDATA=$G(^SDSC(409.48,SDOE,0)) I SDATA="" Q
|
---|
48 | .. I $P(SDATA,U,5)'="C" Q
|
---|
49 | .. I SDSCDIV'="" Q:$P(SDATA,U,12)'=SDSCDIV
|
---|
50 | .. I '+$$GETOE^SDOE(SDOE) Q
|
---|
51 | .. ;find only encounters that were changed by ASCD from SC to NSC
|
---|
52 | .. S SCVAL=$$SCHNG^SDSCUTL(SDOE) I '+SCVAL Q
|
---|
53 | .. I $P(SCVAL,U,3) Q
|
---|
54 | .. D FPCK
|
---|
55 | .. D TPCK
|
---|
56 | PRT ;
|
---|
57 | U IO D HDR I $G(SDABRT)=1 Q
|
---|
58 | S (GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP)=0
|
---|
59 | I SDSCDIV'="" S DFTOTB(SDSCDNM)=0,DFTOTP(SDSCDNM)=0,DTTOTB(SDSCDNM)=0,DTTOTP(SDSCDNM)=0
|
---|
60 | S SDOE=""
|
---|
61 | F S SDOE=$O(^TMP($J,"SDSCBILL","COPAY",SDOE)) Q:SDOE="" D Q:$G(SDABRT)=1
|
---|
62 | . S BILN=""
|
---|
63 | . F S BILN=$O(^TMP($J,"SDSCBILL","COPAY",SDOE,BILN)) Q:BILN="" D Q:$G(SDABRT)=1
|
---|
64 | .. S SDBTR=^TMP($J,"SDSCBILL","COPAY",SDOE,BILN)
|
---|
65 | .. S TCHRG=$P(SDBTR,U,5)
|
---|
66 | .. S TPAY=$P(SDBTR,U,3)
|
---|
67 | .. S AUTHDT=$P(SDBTR,U,2)\1
|
---|
68 | .. S SDWHO=$$SVCC(SDOE)
|
---|
69 | .. S PYMDT=$P(SDBTR,U,4)
|
---|
70 | .. S SDSCD=$G(^SDSC(409.48,SDOE,0))
|
---|
71 | .. S ENCDT=$P(SDSCD,U,7)\1
|
---|
72 | .. S DFN=$P(SDSCD,U,11)
|
---|
73 | .. D DEM^VADPT S SDPAT=$E(VADM(1),1,25)_" ("_$E($P(VADM(2),U),6,9)_")"
|
---|
74 | .. S GTOTB=GTOTB+TCHRG,GTOTP=GTOTP+TPAY,FTOTB=FTOTB+TCHRG,FTOTP=FTOTP+TPAY
|
---|
75 | .. S DFTOTB(SDSCDNM)=$G(DFTOTB(SDSCDNM))+TCHRG,DFTOTP(SDSCDNM)=$G(DFTOTP(SDSCDNM))+TPAY
|
---|
76 | .. I L+3>IOSL D HDR Q:$G(SDABRT)=1
|
---|
77 | .. W !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
|
---|
78 | .. W ?60,$$FMTE^XLFDT($P(SDWHO,"^",2),"5Z")
|
---|
79 | .. W ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
|
---|
80 | .. W ?105,$J(TCHRG,10,2),?115,$J(TPAY,10,2)
|
---|
81 | .. S L=L+1
|
---|
82 | I $G(SDABRT)=1 Q
|
---|
83 | ;
|
---|
84 | I L+6>IOSL D HDR I $G(SDABRT)=1 Q
|
---|
85 | W !,$TR($J(" ",IOM)," ","-"),!
|
---|
86 | W !,"TOTAL FIRST PARTY: ",?105,$J(FTOTB,10,2),?115,$J(FTOTP,10,2),!!
|
---|
87 | S L=L+5
|
---|
88 | ; Print Third Party
|
---|
89 | S SDOE=""
|
---|
90 | F S SDOE=$O(^TMP($J,"SDSCBILL","THIRD",SDOE)) Q:SDOE="" D Q:$G(SDABRT)=1
|
---|
91 | . S BILN=""
|
---|
92 | . F S BILN=$O(^TMP($J,"SDSCBILL","THIRD",SDOE,BILN)) Q:BILN="" D Q:$G(SDABRT)=1
|
---|
93 | .. S SDBTR=^TMP($J,"SDSCBILL","THIRD",SDOE,BILN)
|
---|
94 | .. S TPAY=$P(SDBTR,U,3)
|
---|
95 | .. S AUTHDT=$P(SDBTR,U,2)\1
|
---|
96 | .. S SDWHO=$$SVCC(SDOE)
|
---|
97 | .. S PYMDT=$P(SDBTR,U,4)
|
---|
98 | .. S SDSCD=$G(^SDSC(409.48,SDOE,0))
|
---|
99 | .. S ENCDT=$P(SDSCD,U,7)\1
|
---|
100 | .. S DFN=$P(SDSCD,U,11)
|
---|
101 | .. D DEM^VADPT S SDPAT=$E(VADM(1),1,25)_" ("_$E($P(VADM(2),U),6,9)_")"
|
---|
102 | .. S TCHRG=$P(SDBTR,U)
|
---|
103 | .. S GTOTB=GTOTB+TCHRG,GTOTP=GTOTP+TPAY,TTOTB=TTOTB+TCHRG,TTOTP=TTOTP+TPAY
|
---|
104 | .. S DTTOTB(SDSCDNM)=$G(DTTOTB(SDSCDNM))+TCHRG,DTTOTP(SDSCDNM)=$G(DTTOTP(SDSCDNM))+TPAY
|
---|
105 | .. I L+3>IOSL D HDR Q:$G(SDABRT)=1
|
---|
106 | .. W !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
|
---|
107 | .. W ?60,$$FMTE^XLFDT($P(SDWHO,"^",2),"5Z")
|
---|
108 | .. W ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
|
---|
109 | .. W ?105,$J(TCHRG,10,2),?115,$J(TPAY,10,2)
|
---|
110 | .. S L=L+1
|
---|
111 | I $G(SDABRT)=1 Q
|
---|
112 | ;
|
---|
113 | I L+6>IOSL D HDR I $G(SDABRT)=1 Q
|
---|
114 | W !,$TR($J(" ",IOM)," ","-"),!
|
---|
115 | W !,"TOTAL THIRD PARTY: ",?105,$J(TTOTB,10,2),?115,$J(TTOTP,10,2),!!
|
---|
116 | S L=L+5
|
---|
117 | I L+6>IOSL D HDR I $G(SDABRT)=1 Q
|
---|
118 | W !,$TR($J(" ",IOM)," ","-"),!
|
---|
119 | W !,"TOTAL FOR BOTH: ",?105,$J(GTOTB,10,2),?115,$J(GTOTP,10,2),!!
|
---|
120 | S L=L+5
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | FPCK ;Check for First Party Bill
|
---|
124 | N SCBLNS,SCARTR
|
---|
125 | S SCBLNS=$$FPBILL^IBRSUTL(SDOE) I (SCBLNS="")!($P(SCBLNS,U))="" Q
|
---|
126 | S SCARTR=$$GETDATA^PRCAAPI($P(SCBLNS,U)) I SCARTR="" Q
|
---|
127 | S $P(SCARTR,U,5)=$P(SCBLNS,U,3)
|
---|
128 | S ^TMP($J,"SDSCBILL","COPAY",SDOE,$P(SCBLNS,U))=SCARTR
|
---|
129 | Q
|
---|
130 | ;
|
---|
131 | TPCK ;Check for Third Party Bill
|
---|
132 | N SCBLNS,SCBID,SCARTR,SCI
|
---|
133 | S SCBLNS=$$TPBILL^IBRSUTL(SDOE) I SCBLNS="" Q
|
---|
134 | F SCI=1:1 S SCBID=$P(SCBLNS,U,SCI) Q:SCBID="" D
|
---|
135 | . S SCARTR=$$GETDATA^PRCAAPI(SCBID)
|
---|
136 | . I SCARTR="" Q
|
---|
137 | . S ^TMP($J,"SDSCBILL","THIRD",SDOE,SCBID)=SCARTR
|
---|
138 | Q
|
---|
139 | ;
|
---|
140 | HDR ; Header
|
---|
141 | ; Do not ask 'RETURN' before first page on CRT.
|
---|
142 | I $E(IOST,1,2)="C-",P D I 'Y S SDABRT=1 Q
|
---|
143 | .N DIR S DIR(0)="E" D ^DIR
|
---|
144 | ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
|
---|
145 | I $E(IOST,1,2)="C-"!P W @IOF
|
---|
146 | S P=P+1,L=4
|
---|
147 | W "Recovered Costs Report by Division: "_SDSCDNM_" ",?90,"Run Date: ",SDRUN,?124,"Page ",$J(P,3)
|
---|
148 | W !,"Enc #",?10,"Patient",?45,"Enc Date",?60,"Change Date",?75,"Auth Date",?90,"Pay Date",?105,"Prncpl Bill",?117,"Prncpl Pay"
|
---|
149 | W !,$TR($J(" ",IOM)," ","-"),!
|
---|
150 | Q
|
---|
151 | ;
|
---|
152 | EXT ;
|
---|
153 | N L,TOTALB,TOTALP,DIV
|
---|
154 | I CT>1,$G(SDABRT)'=1 D
|
---|
155 | . I $E(IOST,1,2)="C-",P N DIR S DIR(0)="E" D ^DIR I 'Y S SDABRT=1 Q
|
---|
156 | . ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
|
---|
157 | . I $E(IOST,1,2)="C-"!P W @IOF
|
---|
158 | . S P=P+1,L=4,TOTALB=0,TOTALP=0
|
---|
159 | . I $E(THDR,$L(THDR))="," S THDR=$E(THDR,1,$L(THDR)-1)
|
---|
160 | . W "Recovered Costs Report",?90,"Run Date: ",SDRUN,?124,"Page ",$J(P,3)
|
---|
161 | . W !,"By Division(s) "_THDR
|
---|
162 | . W !,?105,"Prncpl Bill",?117,"Prncpl Pay"
|
---|
163 | . W !,$TR($J(" ",IOM)," ","-"),!
|
---|
164 | . W !,?10,"FIRST PARTY TOTAL"
|
---|
165 | . S DIV="" F S DIV=$O(DFTOTB(DIV)) Q:DIV="" D
|
---|
166 | .. W !,?30,DIV,?105,$J(DFTOTB(DIV),10,2),?115,$J(DFTOTP(DIV),10,2)
|
---|
167 | .. S TOTALB=TOTALB+DFTOTB(DIV),TOTALP=TOTALP+DFTOTP(DIV)
|
---|
168 | . W !,$TR($J(" ",IOM)," ","-"),!
|
---|
169 | . W !,?10,"THIRD PARTY TOTAL"
|
---|
170 | . S DIV="" F S DIV=$O(DTTOTB(DIV)) Q:DIV="" D
|
---|
171 | .. W !,?30,DIV,?105,$J(DTTOTB(DIV),10,2),?115,$J(DTTOTP(DIV),10,2)
|
---|
172 | .. S TOTALB=TOTALB+DTTOTB(DIV),TOTALP=TOTALP+DTTOTP(DIV)
|
---|
173 | . W !,$TR($J(" ",IOM)," ","-"),!
|
---|
174 | . W !,?10,"TOTAL FOR BOTH FIRST AND THIRD PARTY",?105,$J(TOTALB,10,2),?115,$J(TOTALP,10,2)
|
---|
175 | D RPTEND^SDSCRPT1
|
---|
176 | ;
|
---|
177 | EXIT ; Exit tag
|
---|
178 | K SDQFL,SDRUN,SDEDT,SDOE,SDOEDT,SDSCTDT,SDSCBDT,SDSCEDT,POP,SDABRT,BILL
|
---|
179 | K BILT,FIND,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y,SCLN D KVA^VADPT
|
---|
180 | K ^TMP($J,"SDSCBILL")
|
---|
181 | Q
|
---|
182 | ;
|
---|
183 | SVCC(SDENC) ; Service Connected Last Edit Change
|
---|
184 | ;
|
---|
185 | ; Input:
|
---|
186 | ; SDENC = Encounter IEN
|
---|
187 | ;
|
---|
188 | ; Output:
|
---|
189 | ; Function = "" - (null if undefined)
|
---|
190 | ; = EDITED BY_"^"_DATE EDITED - (WHO^WHEN)
|
---|
191 | ;
|
---|
192 | N SDJ,SDVAL,SDX
|
---|
193 | S SDVAL="",SDJ=999999
|
---|
194 | S SDJ=$O(^SDSC(409.48,SDENC,1,SDJ),-1)
|
---|
195 | I SDJ D
|
---|
196 | . S SDX=$G(^SDSC(409.48,SDENC,1,SDJ,0))
|
---|
197 | . I $P(SDX,U,5)=0 D
|
---|
198 | . . S SDVAL=$P(SDX,U,3)_"^"_$P(SDX,U,2)
|
---|
199 | Q SDVAL
|
---|