| 1 | SCRPW81 ; ALB/SCK - SCDX AMB CARE CLOSEOUT RPT FOR MT INDICATOR = U ; 9 JULY 2003
 | 
|---|
| 2 |  ;;5.3;Scheduling;**302,440,474**;AUG 13, 1993;Build 4
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; Main entry point for report
 | 
|---|
| 5 |  N DIR,DIRUT,SDBEG,SDEND,RSLT,Y,X
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  S DIR("A")="Please select fiscal year",DIR(0)="SM^A:Previous Fiscal Year;B:Current Fiscal Year;O:Other Date Range"
 | 
|---|
| 8 |  S DIR("B")="B"
 | 
|---|
| 9 |  S DIR("?")="You may select either the previous fiscal year (A) or the current fiscal year (B).  Select (O) if you choose to specify your own date range."
 | 
|---|
| 10 |  D ^DIR K DIR
 | 
|---|
| 11 |  Q:$D(DIRUT)
 | 
|---|
| 12 |  S RSLT=Y
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  I RSLT="A" D 
 | 
|---|
| 15 |  . D PASTYR(.SDBEG,.SDEND)
 | 
|---|
| 16 |  E  I RSLT="B" D
 | 
|---|
| 17 |  . D CURYR(.SDBEG,.SDEND)
 | 
|---|
| 18 |  E  D
 | 
|---|
| 19 |  . D GETDT(.SDBEG,.SDEND)
 | 
|---|
| 20 |  Q:'$G(SDBEG)!('$G(SDEND))
 | 
|---|
| 21 |  W !!?3,"Date Range: "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(SDEND)
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  N X,Y,IORVON,IORVOFF
 | 
|---|
| 24 |  S X="IORVON;IORVOFF"
 | 
|---|
| 25 |  D ENDR^%ZISS
 | 
|---|
| 26 |  W:$D(IORVON) IORVON
 | 
|---|
| 27 |  W !,"A 132-Column printer is required for this report."
 | 
|---|
| 28 |  W !,"This report will NOT print correctly to the screen!"
 | 
|---|
| 29 |  W:$D(IORVOFF) IORVOFF
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  N ZTSAVE,ZTRTN,ZTDESC,POP,%ZIS
 | 
|---|
| 32 |  S %ZIS="Q" D ^%ZIS G:POP EXIT
 | 
|---|
| 33 |  I $D(IO("Q")) D  Q
 | 
|---|
| 34 |  . S ZTSAVE("SDBEG")="",ZTSAVE("SDEND")="",ZTSAVE("DUZ")=""
 | 
|---|
| 35 |  . S ZTRTN="RUN^SCRPW81"
 | 
|---|
| 36 |  . S ZTDESC="XMITED OE MT=U RPT"
 | 
|---|
| 37 |  . D ^%ZTLOAD D HOME^%ZIS K IO("Q")
 | 
|---|
| 38 |  D RUN
 | 
|---|
| 39 |  D ^%ZISC
 | 
|---|
| 40 | EXIT S:$D(ZTQUEUED) ZTREQ="@" Q
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | RUN ; Run report
 | 
|---|
| 43 |  U IO
 | 
|---|
| 44 |  K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  D BLD(SDBEG,SDEND)
 | 
|---|
| 47 |  D CHKMT
 | 
|---|
| 48 |  D SRTNAME
 | 
|---|
| 49 |  D MAIL
 | 
|---|
| 50 |  D PRINT
 | 
|---|
| 51 |  K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | PASTYR(SDBEG,SDEND) ; Set dates for previous fiscal year
 | 
|---|
| 55 |  N CURYR,PRVYR,CURMN,%I
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  D NOW^%DTC
 | 
|---|
| 58 |  S CURYR=%I(3),CURMN=%I(1)
 | 
|---|
| 59 |  I CURMN>9 D
 | 
|---|
| 60 |  . S CURYR=CURYR+1
 | 
|---|
| 61 |  S PRVYR=CURYR-1
 | 
|---|
| 62 |  S SDEND=$$FMADD^XLFDT(PRVYR_"1001",-1)
 | 
|---|
| 63 |  S SDBEG=$$FMADD^XLFDT(PRVYR_"1001",-365)
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | CURYR(SDBEG,SDEND) ; Set dates for current fiscal year
 | 
|---|
| 67 |  N CURYR,CURMN,%I
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  D NOW^%DTC
 | 
|---|
| 70 |  S CURYR=%I(3),CURMN=%I(1)
 | 
|---|
| 71 |  I CURMN<10 D
 | 
|---|
| 72 |  . S CURYR=CURYR-1
 | 
|---|
| 73 |  S SDBEG=CURYR_"1001"
 | 
|---|
| 74 |  S SDEND=$P($$NOW^XLFDT,".")
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | GETDT(SDBEG,SDEND) ;  Get beginning and ending date for search
 | 
|---|
| 78 |  ; Output   SDBEG   Beginning for date range
 | 
|---|
| 79 |  ;          SDEND   End of date range
 | 
|---|
| 80 |  ;          result  1 - If function successful
 | 
|---|
| 81 |  ;                  0 - If function NOT successful (User quit)
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  N DIR,DIRUT,Y
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  W !!?3,"You have selected to specify your own date range.  Please note that by"
 | 
|---|
| 86 |  W !?3,"doing so you may not generate an accurate picture of the AMB CARE"
 | 
|---|
| 87 |  W !?3,"closeouts where the means test indicator equals 'U'.",!
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  S DIR(0)="DAO^:DT:EX"
 | 
|---|
| 90 |  S DIR("A")="Beginning Date: "
 | 
|---|
| 91 |  S DIR("?")="^D HELP^%DTC"
 | 
|---|
| 92 |  D ^DIR
 | 
|---|
| 93 |  I $D(DIRUT) D  Q
 | 
|---|
| 94 |  . S SDBEG=0
 | 
|---|
| 95 |  S SDBEG=Y
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  S DIR(0)="DAO^:DT:EX"
 | 
|---|
| 98 |  S DIR("A")="Ending Date: "
 | 
|---|
| 99 |  D ^DIR
 | 
|---|
| 100 |  I $D(DIRUT) D  Q
 | 
|---|
| 101 |  . S SDEND=0
 | 
|---|
| 102 |  S SDEND=Y
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | BLD(SDBEG,SDEND) ;  Build list of patient OE's for date range
 | 
|---|
| 106 |  ; Input   SDBEG
 | 
|---|
| 107 |  ;         SDEND
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  N SDX,SDMAX,SDOEI,CNT,NODE,SDOEX,SDLOC
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  S SDX=$$FMADD^XLFDT(SDBEG,0,0,0,-1) ; set inital search DT to beginning date minus one second
 | 
|---|
| 112 |  S SDMAX=$$FMADD^XLFDT(SDEND,0,23,59,59) ; set search end date to end date plus one day
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  S ^TMP("SCDX MTU",$J,0,"BEGIN")=$H
 | 
|---|
| 115 |  F  S SDX=$O(^SCE("B",SDX)) Q:'SDX  D  Q:SDX>SDMAX
 | 
|---|
| 116 |  . S SDOEI=0
 | 
|---|
| 117 |  . F  S SDOEI=$O(^SCE("B",SDX,SDOEI)) Q:'SDOEI  D
 | 
|---|
| 118 |  . . S NODE=$G(^SCE(SDOEI,0))
 | 
|---|
| 119 |  . . Q:$P(NODE,U,6)>0  ; Quit if not parent encounter
 | 
|---|
| 120 |  . . Q:$P(NODE,U,8)>3  ; Quit if Originating process is for credit stop code
 | 
|---|
| 121 |  . . S SDLOC=+$P(NODE,U,4)
 | 
|---|
| 122 |  . . Q:$$GET1^DIQ(44,SDLOC,2502,"I")="Y"  ; Quit if non-count clinic
 | 
|---|
| 123 |  . . S SDOEX=$O(^SD(409.73,"AENC",SDOEI,0))
 | 
|---|
| 124 |  . . Q:'$P(NODE,U,2)
 | 
|---|
| 125 |  . . S ^TMP("SCDX MTU",$J,$P(NODE,U,2),SDOEI)=$P(NODE,U,1)_U_SDOEX
 | 
|---|
| 126 |  . . S ^TMP("SCDX MTU",$J,0,"CNT")=$G(^TMP("SCDX MTU",$J,0,"CNT"))+1
 | 
|---|
| 127 |  S ^TMP("SCDX MTU",$J,0,"END")=$H
 | 
|---|
| 128 |  Q
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 | CHKMT ; Clean out all except those meeting the MT=U conditions
 | 
|---|
| 131 |  N DFN,SDOEI,SDOEDT,SDMT,SDO,SDR,SDN,SDAT,SDEC,SDMTI,SDMTT
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 |  S DFN=0
 | 
|---|
| 134 |  F  S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN  D
 | 
|---|
| 135 |  . I '$D(^DGMT(408.31,"C",DFN)) D  Q  ; No MT Data, bypass patient
 | 
|---|
| 136 |  . . K ^TMP("SCDX MTU",$J,DFN)
 | 
|---|
| 137 |  . S (SDR,SDO,SDN,SDOEI)=0
 | 
|---|
| 138 |  . F  S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI  D
 | 
|---|
| 139 |  . . S SDOEDT=$P($G(^TMP("SCDX MTU",$J,DFN,SDOEI)),U,1)
 | 
|---|
| 140 |  . . Q:'SDOEDT
 | 
|---|
| 141 |  . . S SDEC=$$GET1^DIQ(409.68,SDOEI,.13,"I")
 | 
|---|
| 142 |  . . S SDAT=$$GET1^DIQ(409.68,SDOEI,.1,"I")
 | 
|---|
| 143 |  . . S SDMTI=$$MTI^SCDXUTL0(DFN,SDOEDT,SDEC,SDAT,SDOEI)
 | 
|---|
| 144 |  . . I SDMTI'="U" D  Q
 | 
|---|
| 145 |  . . . K ^TMP("SCDX MTU",$J,DFN)
 | 
|---|
| 146 |  . . S SDMTT=$$LST^DGMTU(DFN,SDOEDT,1) I $P(SDMTT,U,4)="N" D  Q
 | 
|---|
| 147 |  . . . K ^TMP("SCDX MTU",$J,DFN)
 | 
|---|
| 148 |  . . S $P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)=SDMTI
 | 
|---|
| 149 |  S ^TMP("SCDX MTU",$J,0,"END")=$H K SDMTT
 | 
|---|
| 150 |  Q
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 | SRTNAME ; Sort remaining encounters by patient name and OE date
 | 
|---|
| 153 |  N DFN,SDOEI,SDNAME,SDOEDT
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 |  S DFN=0
 | 
|---|
| 156 |  F  S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN  D
 | 
|---|
| 157 |  . S SDNAME=$$GET1^DIQ(2,DFN,.01)
 | 
|---|
| 158 |  . Q:SDNAME']""
 | 
|---|
| 159 |  . S ^TMP("SCDX MTU",$J,0,"PATNUM")=$G(^TMP("SCDX MTU",$J,0,"PATNUM"))+1
 | 
|---|
| 160 |  . S SDOEI=0
 | 
|---|
| 161 |  . F  S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI  D
 | 
|---|
| 162 |  . . S SDOEDT=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,1)
 | 
|---|
| 163 |  . . S ^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,2)_U_SDOEI_U_DFN_U_$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)
 | 
|---|
| 164 |  . . S ^TMP("SCDX MTU",$J,0,"FINAL CNT")=$G(^TMP("SCDX MTU",$J,0,"FINAL CNT"))+1
 | 
|---|
| 165 |  S ^TMP("SCDX MTU",$J,0,"END2")=$H
 | 
|---|
| 166 |  Q
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 | MAIL ; send message with report statistics
 | 
|---|
| 169 |  N MSG,XMSUB,XMY,XMTEXT,XMDUZ
 | 
|---|
| 170 |  ;
 | 
|---|
| 171 |  S MSG(1)="Date Range for Report           "_$$FMTE^XLFDT(SDBEG,2)_" to "_$$FMTE^XLFDT(SDEND,2)
 | 
|---|
| 172 |  S MSG(2)=""
 | 
|---|
| 173 |  S MSG(3)="Report Started                  "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"BEGIN"),2)
 | 
|---|
| 174 |  S MSG(4)="Report Finished                 "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),2)
 | 
|---|
| 175 |  S MSG(5)="Total Time for Report           "_$$HDIFF^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),^TMP("SCDX MTU",$J,0,"BEGIN"),3)
 | 
|---|
| 176 |  S MSG(6)=""
 | 
|---|
| 177 |  S MSG(7)="Outpatient Encounters Scanned   "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"CNT")),","),20)
 | 
|---|
| 178 |  S MSG(8)="Outpatient Encounters Reported  "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"FINAL CNT")),","),20)
 | 
|---|
| 179 |  S MSG(9)="Patient Count                   "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"PATNUM")),","),20)
 | 
|---|
| 180 |  ;
 | 
|---|
| 181 |  S XMSUB="MEANS TEST = 'U' REPORT STATISTICS"
 | 
|---|
| 182 |  S XMTEXT="MSG("
 | 
|---|
| 183 |  S XMY(DUZ)=""
 | 
|---|
| 184 |  S XMDUZ="ACRP MT=U STATS"
 | 
|---|
| 185 |  D ^XMD
 | 
|---|
| 186 |  Q
 | 
|---|
| 187 |  ;
 | 
|---|
| 188 | PRINT ; Print Report
 | 
|---|
| 189 |  ;SD*5.3*474 added SDFLAG and corresponding logic
 | 
|---|
| 190 |  N SDNAME,SDNODE,SDXNODE,SDOEI,SDOEX,SDOEDT,DFN,PRNTL4,VA,PAGE,SDFLAG
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 |  S PAGE=0
 | 
|---|
| 193 |  D HDR
 | 
|---|
| 194 |  S SDNAME=""
 | 
|---|
| 195 |  F  S SDNAME=$O(^TMP("SCDX ASORT",$J,SDNAME)) Q:SDNAME']""  D
 | 
|---|
| 196 |  . W !,$E(SDNAME,1,30)
 | 
|---|
| 197 |  . S PRNTL4=0,SDFLAG=1
 | 
|---|
| 198 |  . S SDOEDT=0
 | 
|---|
| 199 |  . F  S SDOEDT=$O(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)) Q:'SDOEDT  D
 | 
|---|
| 200 |  . . S DFN=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,3)
 | 
|---|
| 201 |  . . S SDOEX=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,1)
 | 
|---|
| 202 |  . . S SDOEI=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,2)
 | 
|---|
| 203 |  . . I 'PRNTL4 D  S PRNTL4=1
 | 
|---|
| 204 |  . . . D PID^VADPT6
 | 
|---|
| 205 |  . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
 | 
|---|
| 206 |  . . I 'SDFLAG D  S SDFLAG=1
 | 
|---|
| 207 |  . . . W !,$E(SDNAME,1,30)
 | 
|---|
| 208 |  . . . D PID^VADPT6
 | 
|---|
| 209 |  . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
 | 
|---|
| 210 |  . . W ?35,$$FMTE^XLFDT(SDOEDT,"D"),$S(SDOEX>0:" *",1:"  ")
 | 
|---|
| 211 |  . . W ?56,$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,4)
 | 
|---|
| 212 |  . . S SDNODE=$G(^SCE(SDOEI,0))
 | 
|---|
| 213 |  . . W ?68,$E($$GET1^DIQ(40.8,$P(SDNODE,U,11),.01),1,30)
 | 
|---|
| 214 |  . . W ?100,$E($$GET1^DIQ(44,$P(SDNODE,U,4),.01),1,30)
 | 
|---|
| 215 |  . . I ($Y+5)>IOSL D HDR S SDFLAG=0 Q
 | 
|---|
| 216 |  . . W !
 | 
|---|
| 217 |  D FTR1
 | 
|---|
| 218 |  Q
 | 
|---|
| 219 |  ;
 | 
|---|
| 220 | HDR ; Report Header
 | 
|---|
| 221 |  N SPACE,LINE,TAB,PRNTLN
 | 
|---|
| 222 |  ;
 | 
|---|
| 223 |  I PAGE>0 D FTR
 | 
|---|
| 224 |  W:PAGE>0 @IOF
 | 
|---|
| 225 |  S PAGE=PAGE+1
 | 
|---|
| 226 |  ;
 | 
|---|
| 227 |  S PRNTLN="Transmitted Outpatient Encounters with Means Test = 'U'"
 | 
|---|
| 228 |  S TAB=(IOM-$L(PRNTLN))\2
 | 
|---|
| 229 |  W !?TAB,PRNTLN
 | 
|---|
| 230 |  S PRNTLN="Date Range: "_$$FMTE^XLFDT(SDBEG)_" thru "_$$FMTE^XLFDT(SDEND)
 | 
|---|
| 231 |  S TAB=(IOM-$L(PRNTLN))\2
 | 
|---|
| 232 |  W !!?TAB,PRNTLN
 | 
|---|
| 233 |  S PRNTLN="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT)
 | 
|---|
| 234 |  S TAB=(IOM-$L(PRNTLN))\2
 | 
|---|
| 235 |  W !?TAB,PRNTLN
 | 
|---|
| 236 |  S PRNTLN="Page: "_PAGE
 | 
|---|
| 237 |  S TAB=(IOM-$L(PRNTLN))\2
 | 
|---|
| 238 |  W !?TAB,PRNTLN
 | 
|---|
| 239 |  ;
 | 
|---|
| 240 |  W !!?35,"Outpatient",?52,"",?68,"Medical Ctr"
 | 
|---|
| 241 |  W !,"PATIENT NAME",?35,"Encounter Date",?52,"MT Indicator",?68,"Division",?100,"Clinic"
 | 
|---|
| 242 |  ;
 | 
|---|
| 243 |  S $P(LINE,"=",IOM)="" W !,LINE
 | 
|---|
| 244 |  Q
 | 
|---|
| 245 |  ;
 | 
|---|
| 246 | FTR ; Report Footer
 | 
|---|
| 247 |  N SDX
 | 
|---|
| 248 |  ;
 | 
|---|
| 249 |  F SDX=$Y:1:IOSL-2 W !
 | 
|---|
| 250 |  W ?5,"* - Transmitted Outpatient Encounter"
 | 
|---|
| 251 |  Q
 | 
|---|
| 252 |  ;
 | 
|---|
| 253 | FTR1 ;
 | 
|---|
| 254 |  W !?5,"* - Transmitted Outpatient Encounter"
 | 
|---|
| 255 |  Q
 | 
|---|
| 256 |  ;
 | 
|---|