| [613] | 1 | EASMTRPT ; MIN/TCM ALB/SCK - AUTOMATED MEANS TEST LETTERS REPORTS ; 7/6/01
 | 
|---|
 | 2 |  ;;1.0;ENROLLMENT APPLICATION SYSTEM;**3,12,15**;MAR 15,2001
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | UNRTN ;  Unreturned letters report
 | 
|---|
 | 5 |  N EASN,CTR,EASNODE,TOT,EAS6,EASIEN,EAX
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  W @IOF
 | 
|---|
 | 8 |  D WAIT^DICD
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  F EAX=0,30,60 S CTR(EAX)=0
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 |  S EASIEN=0
 | 
|---|
 | 13 |  F  S EASIEN=$O(^EAS(713.2,"AC",0,EASIEN)) Q:'EASIEN  D
 | 
|---|
 | 14 |  . I $P($G(^EAS(713.2,EASIEN,"Z")),U,3) S CTR(0)=CTR(0)+1 Q
 | 
|---|
 | 15 |  . I $P($G(^EAS(713.2,EASIEN,4)),U,3) S CTR(30)=CTR(30)+1 Q
 | 
|---|
 | 16 |  . I $P($G(^EAS(713.2,EASIEN,6)),U,3) S CTR(60)=CTR(60)+1 Q
 | 
|---|
 | 17 | PRT1 ;
 | 
|---|
 | 18 |  W !!,$CHAR(7),"Summary of Most Recent Unreturned Means Test Letters"
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  W !!,"60-day letters printed: ",$J(CTR(60),6)
 | 
|---|
 | 21 |  W !!,"30-day letters printed: ",$J(CTR(30),6)
 | 
|---|
 | 22 |  W !!," 0-day letters printed: ",$J(CTR(0),6)
 | 
|---|
 | 23 |  W !,"=============================="
 | 
|---|
 | 24 |  S TOT=CTR(60)+CTR(30)+CTR(0)
 | 
|---|
 | 25 |  W !!,"                 Total: ",$J(TOT,6)
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  W !!
 | 
|---|
 | 28 |  D PAUSE^EASMTUTL
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 |  Q
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 | LTRSTAT ; Means Test Letter Statistics Report
 | 
|---|
 | 33 |  N EASDT,EASB,EASE,ZTSAVE
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 |  S EASDT=$$ASK("Processing")
 | 
|---|
 | 36 |  Q:'EASDT
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  S EASB=$P(EASDT,U,1),EASE=$P(EASDT,U,2)
 | 
|---|
 | 39 |  S ZTSAVE("EASB")="",ZTSAVE("EASE")=""
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  D EN^XUTMDEVQ("QUE2^EASMTRPT","EAS MT LETTER STATISTICS REPORT",.ZTSAVE)
 | 
|---|
 | 42 |  Q
 | 
|---|
 | 43 |  ;
 | 
|---|
 | 44 | QUE2 ; Queued entry point for letters statistics
 | 
|---|
 | 45 |  N EAYTOT,EAYRTN,EAPRHB,EAS1,EASX,EAX,EASCMT,EAIEN
 | 
|---|
 | 46 |  ;
 | 
|---|
 | 47 |  ; Begin search Letter Status File, #713.2
 | 
|---|
 | 48 |  ; Set counters
 | 
|---|
 | 49 |  S EAPRHB=0
 | 
|---|
 | 50 |  F EASX=0,30,60 S EAYTOT(EASX)=0
 | 
|---|
 | 51 |  F EASX="AG","OTR","OWN","FUT" S EAYRTN(EASX)=0
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 |  S EAS1=$$FMADD^XLFDT(EASB,"","","",-1)
 | 
|---|
 | 54 |  F  S EAS1=$O(^EAS(713.2,"B",EAS1)) Q:'EAS1!(EAS1>EASE)  D
 | 
|---|
 | 55 |  . S EAIEN=0
 | 
|---|
 | 56 |  . F  S EAIEN=$O(^EAS(713.2,"B",EAS1,EAIEN)) Q:'EAIEN  D
 | 
|---|
 | 57 |  . . I $P($G(^EAS(713.2,EAIEN,"Z")),U,3) S EAYTOT(0)=EAYTOT(0)+1
 | 
|---|
 | 58 |  . . I $P($G(^EAS(713.2,EAIEN,4)),U,3) S EAYTOT(30)=EAYTOT(30)+1
 | 
|---|
 | 59 |  . . I $P($G(^EAS(713.2,EAIEN,6)),U,3) S EAYTOT(60)=EAYTOT(60)+1
 | 
|---|
 | 60 |  . . D INCPRHB(EAIEN,.EAPRHB)
 | 
|---|
 | 61 |  . . I $P(^EAS(713.2,EAIEN,0),U,4) D
 | 
|---|
 | 62 |  . . . K EASCMT
 | 
|---|
 | 63 |  . . . S EAX=$$GET1^DIQ(713.2,EAIEN,7,"","EASCMT")
 | 
|---|
 | 64 |  . . . I $G(EASCMT(1))["AUTO-GENERATED" S EAYRTN("AG")=EAYRTN("AG")+1 Q
 | 
|---|
 | 65 |  . . . I $G(EASCMT(1))["'OWNED'" S EAYRTN("OWN")=EAYRTN("OWN")+1 Q
 | 
|---|
 | 66 |  . . . I $G(EASCMT(1))["FUTURE MEANS TEST" S EAYRTN("FUT")=EAYRTN("FUT")+1 Q
 | 
|---|
 | 67 |  . . . S EAYRTN("OTR")=EAYRTN("OTR")+1
 | 
|---|
 | 68 |  ;
 | 
|---|
 | 69 | PRT2 ;
 | 
|---|
 | 70 |  N LINE,TAB
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 |  W @IOF
 | 
|---|
 | 73 |  W !,"MEANS TEST LETTERS STATISTIC REPORT"
 | 
|---|
 | 74 |  W !,"Letter Processing Date Range: ",$$FMTE^XLFDT(EASB)," thru ",$$FMTE^XLFDT(EASE)
 | 
|---|
 | 75 |  W !,"Print Date: ",$$FMTE^XLFDT($$NOW^XLFDT)
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 |  W !!,"Letter type:",?25,"60-day",?35,"30-day",?45,"0-day",?55,"Totals"
 | 
|---|
 | 78 |  S $P(LINE,"=",IOM)="" W !,LINE
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 |  W !!,"Letters printed:"
 | 
|---|
 | 81 |  W ?25,EAYTOT(60),?35,EAYTOT(30),?45,EAYTOT(0)
 | 
|---|
 | 82 |  W ?55,EAYTOT(60)+EAYTOT(30)+EAYTOT(0)
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 |  W !!,"Means Test returned Totals"
 | 
|---|
 | 85 |  W !,"           AUTO-GENERATED:",?35,$FN(EAYRTN("AG"),",")
 | 
|---|
 | 86 |  W !,"                Future MT:",?35,$FN(EAYRTN("FUT"),",")
 | 
|---|
 | 87 |  W !,"      Owned by Other Site:",?35,$FN(EAYRTN("OWN"),",")
 | 
|---|
 | 88 |  W !,"      Returned by Veteran:",?35,$FN(EAYRTN("OTR"),",")
 | 
|---|
 | 89 |  W !,"                    Total:",?35,$FN(EAYRTN("AG")+EAYRTN("OWN")+EAYRTN("OTR")+EAYRTN("FUT"),",")
 | 
|---|
 | 90 |  W !!,"Count of patient records set to prohibit letter during date range: ",$G(EAPRHB)
 | 
|---|
 | 91 |  I $E(IOST,1,2)="C-" D PAUSE^EASMTUTL
 | 
|---|
 | 92 |  Q
 | 
|---|
 | 93 |  ;
 | 
|---|
 | 94 | SUMMRY ;  Automated MT Ltrs Summary
 | 
|---|
 | 95 |  N SDATE,EDATE,EASDT,SDISP,EDISP,EAX
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 |  S EASDT=$$ASK("Processing")
 | 
|---|
 | 98 |  Q:'EASDT
 | 
|---|
 | 99 |  S (SDATE,SDISP)=$P(EASDT,U)
 | 
|---|
 | 100 |  S (EDATE,EDISP)=$P(EASDT,U,2)
 | 
|---|
 | 101 |  S SDATE=$$FMADD^XLFDT(SDATE,"","","",-1)
 | 
|---|
 | 102 |  S ZTSAVE("SDATE")="",ZTSAVE("EDATE")="",ZTSAVE("SDISP")="",ZTSAVE("EDISP")=""
 | 
|---|
 | 103 |  W !!,$CHAR(7),"A 132-Column printer is required for this report"
 | 
|---|
 | 104 |  D EN^XUTMDEVQ("QUE3^EASMTRPT","EAS MT PROCESSING SUMMARY REPORT",.ZTSAVE)
 | 
|---|
 | 105 |  Q
 | 
|---|
 | 106 |  ;
 | 
|---|
 | 107 | QUE3 ;  PROCESSING SUMMARY REPORT
 | 
|---|
 | 108 |  N EASN,EASIEN,EANODE,EALNE,EATYP,PAGE,EASABRT,COL,EAWP,WP
 | 
|---|
 | 109 |  N COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8,COL9
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 |  S COL1=0,COL2=10,COL3=50,COL4=63,COL5=73,COL6=84,COL7=95,COL8=108,COL9=120
 | 
|---|
 | 112 |  S PAGE=1
 | 
|---|
 | 113 |  D HDR("AUTOMATED MT LETTERS SUMMARY",SDISP,EDISP)
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 |  W !!,"Entry",?COL2,"Patient",?COL3,"Means Test",?COL4,"Letter",?COL5,"Print",?COL6,"Flag to",?COL7,"Letter",?COL8,"Print",?COL9,"Prohibit"
 | 
|---|
 | 116 |  W !,?COL3,"Date",?COL4,"Type",?COL5,"Date",?COL6,"Print",?COL7,"Printed?",?COL8,"Date",?COL9,"Flag?",!
 | 
|---|
 | 117 |  ;
 | 
|---|
 | 118 |  S EASN=SDATE
 | 
|---|
 | 119 |  F  S EASN=$O(^EAS(713.2,"AD",EASN)) Q:'EASN!(EASN>EDATE)  D  Q:$G(EASABRT)
 | 
|---|
 | 120 |  . S EASIEN=0
 | 
|---|
 | 121 |  . F  S EASIEN=$O(^EAS(713.2,"AD",EASN,EASIEN)) Q:'EASIEN  D  Q:$G(EASABRT)
 | 
|---|
 | 122 |  . . K EANODE0 S EANODE0=$G(^EAS(713.2,EASIEN,0))
 | 
|---|
 | 123 |  . . W !,EASIEN,?COL2,$E($$GET1^DIQ(713.2,EASIEN,2),1,25)_" ("_$$LAST4($P(EANODE0,U,2))_")"
 | 
|---|
 | 124 |  . . I $$DECEASED^EASMTUTL(EASIEN) W " *D*"
 | 
|---|
 | 125 |  . . W ?COL3,$$FMTE^XLFDT($P(EANODE0,U,3),"2D")
 | 
|---|
 | 126 |  . . K EANODE6 S EANODE6=$G(^EAS(713.2,EASIEN,6))
 | 
|---|
 | 127 |  . . W ?COL4,"60-Day",?COL5,$$FMTE^XLFDT($P(EANODE6,U,1),"2D"),?COL6,$S($P(EANODE6,U,2)=1:"YES",1:"NO")
 | 
|---|
 | 128 |  . . W ?COL7,$S($P(EANODE6,U,3)=1:"YES",1:"NO"),?COL8,$$FMTE^XLFDT($P(EANODE6,U,4),"2D"),?COL9
 | 
|---|
 | 129 |  . . I $D(^EAS(713.1,"AP",1,$P(EANODE0,U,2))) W "YES"
 | 
|---|
 | 130 |  . . W !
 | 
|---|
 | 131 |  . . I $P($G(EANODE0),U,4) W ?15,"MT Returned: ",$$FMTE^XLFDT($P(EANODE0,U,5),"2D")
 | 
|---|
 | 132 |  . . K EANODE4 S EANODE4=$G(^EAS(713.2,EASIEN,4))
 | 
|---|
 | 133 |  . . W ?COL4,"30-Day",?COL5,$$FMTE^XLFDT($P(EANODE4,U,1),"2D"),?COL6,$S($P(EANODE4,U,2)=1:"YES",1:"NO")
 | 
|---|
 | 134 |  . . W ?COL7,$S($P(EANODE4,U,3)=1:"YES",1:"NO"),?COL8,$$FMTE^XLFDT($P(EANODE4,U,4),"2D"),!
 | 
|---|
 | 135 |  . . W ?15 I $P($G(EANODE0),U,4) K WP S EAWP=$$GET1^DIQ(713.2,EASIEN,7,"","WP") D
 | 
|---|
 | 136 |  . . . Q:$G(EAWP)']""
 | 
|---|
 | 137 |  . . . W $E(WP(1),1,30)
 | 
|---|
 | 138 |  . . K EANODEZ S EANODEZ=$G(^EAS(713.2,EASIEN,"Z"))
 | 
|---|
 | 139 |  . . W ?COL4,"0-Day",?COL5,$$FMTE^XLFDT($P(EANODEZ,U,1),"2D"),?COL6,$S($P(EANODEZ,U,2)=1:"YES",1:"NO")
 | 
|---|
 | 140 |  . . W ?COL7,$S($P(EANODEZ,U,3)=1:"YES",1:"NO"),?COL8,$$FMTE^XLFDT($P(EANODEZ,U,4),"2D"),!
 | 
|---|
 | 141 |  . . S $P(LINE,"-",IOM)="" W !?42,$E(LINE,1,IOM-42)
 | 
|---|
 | 142 |  . . I ($Y+6)>IOSL D
 | 
|---|
 | 143 |  . . . D HDR("AUTOMATED MT LETTERS SUMMARY",SDISP,EDISP)
 | 
|---|
 | 144 |  . . . Q:$G(EASABRT)
 | 
|---|
 | 145 |  . . . W !!,"Entry",?COL2,"Patient",?COL3,"Means Test",?COL4,"Letter",?COL5,"Print",?COL6,"Flag to",?COL7,"Letter",?COL8,"Print",?COL9,"Prohibit"
 | 
|---|
 | 146 |  . . . W !,?COL3,"Date",?COL4,"Type",?COL5,"Date",?COL6,"Print",?COL7,"Printed?",?COL8,"Date",?COL9,"Flag?",!
 | 
|---|
 | 147 |  Q
 | 
|---|
 | 148 |  ;
 | 
|---|
 | 149 | HDR(TITLE,SDISP,EDISP) ;  Print report header
 | 
|---|
 | 150 |  N LINE,TAB
 | 
|---|
 | 151 |  ;
 | 
|---|
 | 152 |  I $E(IOST,1,2)="C-" D  Q:$G(EASABRT)
 | 
|---|
 | 153 |  . S DIR(0)="E"
 | 
|---|
 | 154 |  . D ^DIR K DIR
 | 
|---|
 | 155 |  . I 'Y S EASABRT=1
 | 
|---|
 | 156 |  ;
 | 
|---|
 | 157 |  W @IOF
 | 
|---|
 | 158 |  W TITLE
 | 
|---|
 | 159 |  I SDISP>0,EDISP>0 W !,"Date Range: ",$$FMTE^XLFDT(SDISP)," thru ",$$FMTE^XLFDT(EDISP)
 | 
|---|
 | 160 |  ;
 | 
|---|
 | 161 |  W !!,"Print Date: ",$$FMTE^XLFDT($$NOW^XLFDT)
 | 
|---|
 | 162 |  S TAB=IOM-8
 | 
|---|
 | 163 |  I $G(PAGE) W ?TAB,"Page "_PAGE S PAGE=PAGE+1
 | 
|---|
 | 164 |  ;
 | 
|---|
 | 165 |  S $P(LINE,"=",IOM)="" W !,LINE
 | 
|---|
 | 166 |  Q
 | 
|---|
 | 167 |  ;
 | 
|---|
 | 168 | ASK(PRMPT)   ; Get Date range
 | 
|---|
 | 169 |  N DIR,DIRUT,SDATE,EDATE
 | 
|---|
 | 170 |  ;
 | 
|---|
 | 171 |  ; Get date range for the report
 | 
|---|
 | 172 |  S DIR(0)="DAO^2881001:DT:EX"
 | 
|---|
 | 173 |  S DIR("A")="Start with "_PRMPT_" date: "
 | 
|---|
 | 174 |  S DIR("?",1)="Date cannot be earlier than October 1, 1988"
 | 
|---|
 | 175 |  S DIR("?")="^D HELP^%DTC"
 | 
|---|
 | 176 |  S DIR("B")="OCT 1, 1998"
 | 
|---|
 | 177 |  D ^DIR
 | 
|---|
 | 178 |  I $D(DIRUT) Q 0
 | 
|---|
 | 179 |  S SDATE=Y
 | 
|---|
 | 180 |  ;
 | 
|---|
 | 181 |  S DIR(0)="DAO^"_SDATE_"::EX"
 | 
|---|
 | 182 |  S DIR("A")="Ending "_PRMPT_" date: "
 | 
|---|
 | 183 |  S DIR("?",1)="Date must after "_$$FMTE^XLFDT(SDATE)
 | 
|---|
 | 184 |  S DIR("?")="^D HELP^%DTC"
 | 
|---|
 | 185 |  S DIR("B")="TODAY"
 | 
|---|
 | 186 |  D ^DIR K DIR
 | 
|---|
 | 187 |  I $D(DIRUT) Q 0
 | 
|---|
 | 188 |  S EDATE=Y
 | 
|---|
 | 189 |  Q $G(SDATE)_U_$G(EDATE)
 | 
|---|
 | 190 |  ;
 | 
|---|
 | 191 | INCPRHB(EASN,EAPRHB) ; Increment Prohibited Letters Flag count
 | 
|---|
 | 192 |  ; Input
 | 
|---|
 | 193 |  ;    EASN   -
 | 
|---|
 | 194 |  ;    EAPRHB -
 | 
|---|
 | 195 |  ;
 | 
|---|
 | 196 |  N EASPAT,EASDFN
 | 
|---|
 | 197 |  ;
 | 
|---|
 | 198 |  Q:'EASN
 | 
|---|
 | 199 |  S EASPAT=$G(^EAS(713.2,EASN,2))
 | 
|---|
 | 200 |  Q:'EASPAT
 | 
|---|
 | 201 |  I $D(^EAS(713.1,"AP",1,EASPAT))  D
 | 
|---|
 | 202 |  . S EAPRHB=EAPRHB+1
 | 
|---|
 | 203 |  . S EASDFN=$O(^EAS(713.1,"B",EASPAT,0))
 | 
|---|
 | 204 |  . S EAPRHB(EASDFN)=""
 | 
|---|
 | 205 |  Q
 | 
|---|
 | 206 |  ;
 | 
|---|
 | 207 | LAST4(EASIEN) ; Return last four for patient
 | 
|---|
 | 208 |  N DFN,RSLT
 | 
|---|
 | 209 |  ;
 | 
|---|
 | 210 |  S DFN=$$GET1^DIQ(713.1,EASIEN,.01,"I")
 | 
|---|
 | 211 |  I '$G(DFN) Q 0
 | 
|---|
 | 212 |  D PID^VADPT
 | 
|---|
 | 213 |  S RSLT=VA("BID")
 | 
|---|
 | 214 |  D KVA^VADPT
 | 
|---|
 | 215 |  Q RSLT
 | 
|---|