1 | SDSCRPT1 ;ALB/JAM/RBS - ASCD Reports for Service Connected Automated Monitor ; 4/24/07 4:30pm
|
---|
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 | ; Routine should be called at specified tags only.
|
---|
7 | Q
|
---|
8 | RDPOV ; 'ROUTINE' tag called by option "SDSC ENC REPORT - Service Connected Encounters Report"
|
---|
9 | N ZTDESC,SDRTN,SDOPT,DIR,DIRUT,X,Y
|
---|
10 | W !,"Service Connected Encounters Report"
|
---|
11 | S DIR(0)="SO^S:Service Connected;N:Non-Service Connected;A:All"
|
---|
12 | S DIR("B")="S",DIR("A")="Which option do you want to run?"
|
---|
13 | D ^DIR I $D(DIRUT) Q
|
---|
14 | S SDOPT=$S(Y="S":1,Y="N":0,1:2)
|
---|
15 | S ZTDESC="COMPARE DISABILITY/POV PER ENCOUNTER",SDRTN="PRINT^SDSCRPT1"
|
---|
16 | G LOAD
|
---|
17 | ;
|
---|
18 | NSCCOP ; 'ROUTINE' tag called by option "SDSC FIRST PARTY REPORT - First Party Billable Service Connected Report"
|
---|
19 | N ZTDESC,SDRTN
|
---|
20 | S ZTDESC="SERVICE CONNECTED CO-PAY REPORT",SDRTN="COPPRT^SDSCRPT1"
|
---|
21 | G LOAD
|
---|
22 | ;
|
---|
23 | NSCINS ; 'ROUTINE' tag called by option "SDSC THIRD PARTY REPORT - Third Party Billable Service Connected Report"
|
---|
24 | N ZTDESC,SDRTN
|
---|
25 | S ZTDESC="SERVICE CONNECTED BILLING INSURANCE REPORT",SDRTN="INSPRT^SDSCRPT1"
|
---|
26 | G LOAD
|
---|
27 | ;
|
---|
28 | SCPRV ;Provider Service Connected Encounters Report
|
---|
29 | N SDDET,DIR,DIRUT,X,Y,ZTDESC,SDRTN
|
---|
30 | W !,"Provider Service Connected Encounters Report"
|
---|
31 | S DIR(0)="SO^D:Detail;S:Summary",DIR("B")="S"
|
---|
32 | S DIR("A")="Which option do you want to run?"
|
---|
33 | D ^DIR I $D(DIRUT) Q
|
---|
34 | S SDDET=$S(Y="D":1,1:0)
|
---|
35 | S ZTDESC="SERV CONN REVIEW REPORT BY PROVIDER",SDRTN="PRVPRT^SDSCRPT1"
|
---|
36 | G LOAD
|
---|
37 | ;
|
---|
38 | SCUSR ;User Service Connected Encounters Report
|
---|
39 | N SDDET,DIR,DIRUT,X,Y,ZTDESC,SDRTN
|
---|
40 | W !,"User Service Connected Encounters Report"
|
---|
41 | S DIR(0)="SO^D:Detail;S:Summary",DIR("B")="S"
|
---|
42 | S DIR("A")="Which option do you want to run?"
|
---|
43 | D ^DIR I $D(DIRUT) Q
|
---|
44 | S SDDET=$S(Y="D":1,1:0)
|
---|
45 | S ZTDESC="SERV CONN REVIEW REPORT BY USER",SDRTN="RVWPRT^SDSCRPT1"
|
---|
46 | G LOAD
|
---|
47 | ;
|
---|
48 | LOAD ; Standard start tag for all current reports.
|
---|
49 | ; Initialize variables if necessary.
|
---|
50 | N ZTIO,ZTSAVE,ZTRTN,P,L,SDABRT
|
---|
51 | K %ZIS D HOME^%ZIS
|
---|
52 | ; Select division
|
---|
53 | D DIV I SDQFL G END
|
---|
54 | ; Get start and end date for report.
|
---|
55 | D GETDATE^SDSCOMP I SDSCTDT="" G END
|
---|
56 | ; Initialize page counts
|
---|
57 | S (P,L,SDABRT)=0
|
---|
58 | ; Prompt user for DEVICE and handle TaskMan queuing if required.
|
---|
59 | S %ZIS="QM" D ^%ZIS G END:POP
|
---|
60 | I '$D(IO("Q")) U IO K ZTDESC G LOOP
|
---|
61 | S ZTIO=ION,ZTSAVE("*")="",ZTRTN="LOOP^SDSCRPT1" D ^%ZTLOAD
|
---|
62 | G END
|
---|
63 | LOOP ; Loop through each division and display the selected report.
|
---|
64 | N CT,SDSCDIV,SDSCDNM,SDI,THDR
|
---|
65 | S CT=0,SDSCDIV=$S(SDSCDVSL'[SDSCDVLN:SDSCDVSL,1:"")
|
---|
66 | I SDSCDIV="" S SDSCDNM="ALL" D @SDRTN
|
---|
67 | I SDSCDIV'="" D
|
---|
68 | . S THDR=""
|
---|
69 | . F SDI=1:1:$L(SDSCDVSL,",") S SDSCDIV=$P(SDSCDVSL,",",SDI) Q:SDSCDIV="" D Q:$G(SDABRT)=1
|
---|
70 | .. S SDSCDNM=$P(^DG(40.8,SDSCDIV,0),"^",1),THDR=THDR_SDSCDNM_",",CT=CT+1 D @SDRTN
|
---|
71 | D RPTEND
|
---|
72 | G END
|
---|
73 | ;
|
---|
74 | PRINT ; Display the encounters previously stored for this date.
|
---|
75 | ; This is a detailed report, set flag
|
---|
76 | N SDDET,SDOEDT,SDOE,SCVAL
|
---|
77 | S SDDET=1
|
---|
78 | U IO D HEADER^SDSCRPT2 I $G(SDABRT)=1 Q
|
---|
79 | ; Loop through all encounters found in that date range.
|
---|
80 | S SDOEDT=SDSCTDT F S SDOEDT=$O(^SDSC(409.48,"AE",SDOEDT)) Q:SDOEDT\1>SDEDT Q:SDOEDT="" D Q:$G(SDABRT)=1
|
---|
81 | . S SDOE=0 F S SDOE=$O(^SDSC(409.48,"AE",SDOEDT,SDOE)) Q:'SDOE D Q:$G(SDABRT)=1
|
---|
82 | .. I $G(SDSCDIV)'="" Q:$P(^SDSC(409.48,SDOE,0),U,12)'=SDSCDIV
|
---|
83 | .. ; Get data
|
---|
84 | .. I '$$STDGET Q
|
---|
85 | .. S SCVAL=$P(^SDSC(409.48,SDOE,0),U,6)
|
---|
86 | .. I $S(SCVAL=SDOPT:1,SDOPT=2:1,1:0) D
|
---|
87 | ... D ENCBDDT^SDSCRPT2
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | INSPRT ;Display all encounters that may be billable to insurance.
|
---|
91 | N SDHDR,SDOEDT,SDOE,SCVAL
|
---|
92 | S SDHDR="OUTPATIENT ENCOUNTERS POTENTIALLY BILLABLE TO INSURANCE"
|
---|
93 | U IO D NBILLHD^SDSCRPT2 I $G(SDABRT)=1 Q
|
---|
94 | ; Loop through all encounters found in that date range.
|
---|
95 | S SDOEDT=SDSCTDT F S SDOEDT=$O(^SDSC(409.48,"AE",SDOEDT)) Q:SDOEDT\1>SDEDT Q:SDOEDT="" D Q:$G(SDABRT)=1
|
---|
96 | . S SDOE=0 F S SDOE=$O(^SDSC(409.48,"AE",SDOEDT,SDOE)) Q:'SDOE D Q:$G(SDABRT)=1
|
---|
97 | .. I $G(SDSCDIV)'="" Q:$P(^SDSC(409.48,SDOE,0),U,12)'=SDSCDIV
|
---|
98 | .. ; Get data
|
---|
99 | .. I '$$STDGET Q
|
---|
100 | .. ; Check for ability of patients insurance to be billed
|
---|
101 | .. I $$NBTP^SDSCUTL() Q
|
---|
102 | .. ; If Not Service Connected (NSC) after reviews, print.
|
---|
103 | .. S SCVAL=$$SCHNG^SDSCUTL(SDOE) I '+SCVAL Q
|
---|
104 | .. I '($P(SCVAL,U,3)) D NBILLBD^SDSCRPT2
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | COPPRT ;Display all encounters that may be billable for co-payment.
|
---|
108 | N SDHDR,SDOEDT,SDOE,SDVAL
|
---|
109 | S SDHDR="OUTPATIENT ENCOUNTERS POTENTIALLY BILLABLE FOR CO-PAYS"
|
---|
110 | U IO D NBILLHD^SDSCRPT2 I $G(SDABRT)=1 Q
|
---|
111 | ; Loop through all encounters found in that date range.
|
---|
112 | S SDOEDT=SDSCTDT F S SDOEDT=$O(^SDSC(409.48,"AE",SDOEDT)) Q:SDOEDT\1>SDEDT Q:SDOEDT="" D Q:$G(SDABRT)=1
|
---|
113 | . S SDOE=0 F S SDOE=$O(^SDSC(409.48,"AE",SDOEDT,SDOE)) Q:'SDOE D Q:$G(SDABRT)=1
|
---|
114 | .. I $G(SDSCDIV)'="" Q:$P(^SDSC(409.48,SDOE,0),U,12)'=SDSCDIV
|
---|
115 | .. ; Get data
|
---|
116 | .. I '$$STDGET Q
|
---|
117 | .. ; Check for patients ability to be billed
|
---|
118 | .. I $$NBFP^SDSCUTL(SDOE) Q
|
---|
119 | .. ; If Not Service Connected (NSC) after reviews, print.
|
---|
120 | .. S SDVAL=$$SCHNG^SDSCUTL(SDOE) I '+SDVAL Q
|
---|
121 | .. I '$P(SDVAL,U,3) D NBILLBD^SDSCRPT2
|
---|
122 | Q
|
---|
123 | ;
|
---|
124 | RVWPRT ;Display all User Reviewed encounters
|
---|
125 | ;SDDET=1 - Detailed Report; SDDET=0 - Summary Report
|
---|
126 | N SDHDR,SDLEB,SDNWPV,SDPVCN,SDPCT,SDOEDT,SDOE
|
---|
127 | S SDHDR="OUTPATIENT ENCOUNTERS SERVICE CONNECTED REVIEW BY USER"
|
---|
128 | U IO D RVWHD^SDSCRPT2 I $G(SDABRT)=1 Q
|
---|
129 | ; Loop through all encounters found in that date range.
|
---|
130 | S SDLEB=0 F S SDLEB=$O(^SDSC(409.48,"AG",SDLEB)) Q:'SDLEB D Q:$G(SDABRT)=1
|
---|
131 | . ; Reset flag to print provider name
|
---|
132 | . S SDNWPV=1,SDPVCN=0,SDPCT=0
|
---|
133 | . S SDOEDT=SDSCTDT F S SDOEDT=$O(^SDSC(409.48,"AG",SDLEB,SDOEDT)) Q:SDOEDT\1>SDEDT Q:SDOEDT="" D Q:$G(SDABRT)=1
|
---|
134 | .. S SDOE=0 F S SDOE=$O(^SDSC(409.48,"AG",SDLEB,SDOEDT,SDOE)) Q:'SDOE D Q:$G(SDABRT)=1
|
---|
135 | ... I $G(SDSCDIV)'="" Q:$P(^SDSC(409.48,SDOE,0),U,12)'=SDSCDIV
|
---|
136 | ... ; Get data
|
---|
137 | ... I '$$STDGET Q
|
---|
138 | ... S SDPCT=SDPCT+1
|
---|
139 | ... D RVWBD^SDSCRPT2
|
---|
140 | . I SDPCT'=0 W ?3,"Total: "_SDPCT,! S L=L+1 Q
|
---|
141 | Q
|
---|
142 | ;
|
---|
143 | PRVPRT ;Display all User Reviewed encounters by Provider
|
---|
144 | ;SDDET=1 - Detailed Report; SDDET=0 - Summary Report
|
---|
145 | N SDHDR,SDPROV,SDNWPV,SDPVCN,SDPCT,SDOE,SDOEDT
|
---|
146 | S SDHDR="OUTPATIENT ENCOUNTERS SERVICE CONNECTED REVIEW BY PROVIDER"
|
---|
147 | U IO D PRVHD^SDSCRPT2 I $G(SDABRT)=1 Q
|
---|
148 | ; Loop through all encounters found in that date range.
|
---|
149 | S SDPROV=0 F S SDPROV=$O(^SDSC(409.48,"AF",SDPROV)) Q:'SDPROV D Q:$G(SDABRT)=1
|
---|
150 | . ; Reset flag to print provider name, without the continued label.
|
---|
151 | . S SDNWPV=1,SDPVCN=0,SDPCT=0
|
---|
152 | . S SDOEDT=SDSCTDT F S SDOEDT=$O(^SDSC(409.48,"AF",SDPROV,SDOEDT)) Q:SDOEDT\1>SDEDT Q:SDOEDT="" D Q:$G(SDABRT)=1
|
---|
153 | .. S SDOE=0 F S SDOE=$O(^SDSC(409.48,"AF",SDPROV,SDOEDT,SDOE)) Q:'SDOE D Q:$G(SDABRT)=1
|
---|
154 | ... I $G(SDSCDIV)'="" Q:$P(^SDSC(409.48,SDOE,0),U,12)'=SDSCDIV
|
---|
155 | ... ; Get data
|
---|
156 | ... I '$$STDGET Q
|
---|
157 | ... S SDPCT=SDPCT+1
|
---|
158 | ... D PRVBD^SDSCRPT2
|
---|
159 | . I SDPCT'=0 W ?3,"Total: "_SDPCT,! S L=L+1 Q
|
---|
160 | Q
|
---|
161 | ;
|
---|
162 | RPTEND ;Report cleSDp.
|
---|
163 | I '$G(SDABRT) W !,"<End of Report>" I $E(IOST,1,2)="C-" D
|
---|
164 | .N DIR S DIR(0)="E" D ^DIR
|
---|
165 | I $G(SDABRT)=1 W !,"<Report Aborted>"
|
---|
166 | D ^%ZISC
|
---|
167 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
168 | Q
|
---|
169 | ;
|
---|
170 | STDGET() ; All standard data retrieval from SD, Encounter and Visit.
|
---|
171 | ; Get compiled data
|
---|
172 | S SDDATA=$G(^SDSC(409.48,SDOE,0)) Q:SDDATA="" 0
|
---|
173 | ; Get encounter data
|
---|
174 | S SDOEDAT=$$GETOE^SDOE(SDOE) Q:SDOEDAT="" 0
|
---|
175 | ; Get patient
|
---|
176 | S SDPAT=$P(SDOEDAT,U,2) Q:SDPAT="" 0
|
---|
177 | ; Get clinic info
|
---|
178 | S SDCLIN=$P(SDOEDAT,U,4) Q:SDCLIN="" 0
|
---|
179 | ; Get clinic stop code info
|
---|
180 | S SDCST=$P(SDOEDAT,U,3) Q:SDCST="" 0
|
---|
181 | ; Retrieving the visit number, quit if no visit number found
|
---|
182 | S SDV0=$P(SDOEDAT,U,5) Q:SDV0="" 0
|
---|
183 | Q 1
|
---|
184 | ;
|
---|
185 | END ; Clear all variables before exiting.
|
---|
186 | K SDSCTDT,SDEDT,SDFILEOK,X,X1,X2,Y,SDV0,SDDATA,SDPAT,SDCLIN,SDCST
|
---|
187 | K ZTQUEUED,ZTREQ,SDPOV,SDVPOV0,SDPROV,DTOUT,DUOUT,POP,SDSCBDT,SDSCEDT
|
---|
188 | K SDQFL,SDPCTS,SDSCDVSL,SDSCDVLN,SDRTN,SCLN,SDOEDAT
|
---|
189 | Q
|
---|
190 | ;
|
---|
191 | DIV ; Ask Division
|
---|
192 | N DIR,X,Y
|
---|
193 | S SDQFL=0
|
---|
194 | D DIV^SDSCUTL
|
---|
195 | D ^DIR
|
---|
196 | I $G(DTOUT)!($G(DUOUT)) S SDQFL=1 Q
|
---|
197 | S SDSCDVSL=Y,SDSCDVLN=SCLN
|
---|
198 | Q
|
---|