| 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
 | 
|---|