| 1 | EAS155PT ;ALB/SCK - PATCH 55 USER ENROLLEE MT LETTER CLEANUP ; 9-AUG-04
 | 
|---|
| 2 |  ;;1.0;ENROLLMENT APPLICATION SYSTEM;**55**;Mar 15, 2004
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | CHECK ;
 | 
|---|
| 7 |  N CURSTN,CURSITE,PRNT,PTYP
 | 
|---|
| 8 |  N MSG,XMDUZ,XMSUB,XMTEXT,XMY,XX
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  S XMSUB="EAS*1*55 PARENT CHECK"
 | 
|---|
| 11 |  S XMDUZ="EAS*1*55"
 | 
|---|
| 12 |  S XMY(.5)="",XMY(DUZ)=""
 | 
|---|
| 13 |  S XMTEXT="MSG("
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  S CURSITE=$P($$SITE^VASITE,U,3)
 | 
|---|
| 16 |  S CURSTN=$$STA^XUAF4(CURSITE)
 | 
|---|
| 17 |  S PRNT=$$PRNT^XUAF4(CURSITE)
 | 
|---|
| 18 |  S PTYP=$$GET1^DIQ(4,+PRNT,13)
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  S MSG(1)="Current Site: "_CURSITE
 | 
|---|
| 21 |  S MSG(2)="Current Station: "_$$GET1^DIQ(4,CURSTN,.01)_" ("_CURSTN_")"
 | 
|---|
| 22 |  S MSG(3)="Parent Facility: "_$P(PRNT,U,3)
 | 
|---|
| 23 |  S MSG(4)="Parent Type: "_PTYP
 | 
|---|
| 24 |  S MSG(5)=""
 | 
|---|
| 25 |  I PTYP="HCS" D
 | 
|---|
| 26 |  . S MSG(6)="Because your parent facility type is ""HCS"", it's recommended that you run"
 | 
|---|
| 27 |  . S MSG(7)="the MT Letter cleanup at this time.  Please refer to the patch for directions"
 | 
|---|
| 28 |  E  D
 | 
|---|
| 29 |  . S MSG(6)="Your parent facility type does not appear to be of type ""HCS"". "
 | 
|---|
| 30 |  . S MSG(7)="It is not recommended that you run the MT letter cleanup at this time"
 | 
|---|
| 31 |  . S MSG(8)="If you are experiencing problems with the MT Letters, please contact EVS."
 | 
|---|
| 32 |  D MES^XPDUTL(.MSG)
 | 
|---|
| 33 |  D ^XMD
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | EN ; Que off the background task
 | 
|---|
| 38 |  N ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDH,MSG,ZTSAVE
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  W !,"Preparing to run the EAS*1*55 MT Letters Cleanup"
 | 
|---|
| 41 |  W !,"After the cleanup, you will be sent a MailMan summary of the cleanup"
 | 
|---|
| 42 |  W !,"statistics.  You will also be asked to select a printer to send the"
 | 
|---|
| 43 |  W !,"detailed results to.  This report could be quite lengthy.  Please "
 | 
|---|
| 44 |  W !,"DO NOT run the report to your screen!",!
 | 
|---|
| 45 |  D ^%ZIS
 | 
|---|
| 46 |  S ZTRTN="LETTERS^EAS155PT"
 | 
|---|
| 47 |  S ZTDH=$$NOW^XLFDT
 | 
|---|
| 48 |  S ZTSAVE("DUZ")=""
 | 
|---|
| 49 |  S ZTDESC="EAS155 MT LETTER CLEANUP FOR UE STATUS"
 | 
|---|
| 50 |  D ^%ZTLOAD
 | 
|---|
| 51 |  I $D(ZTSK) W !!?5,"Task: "_ZTSK_" Queued."
 | 
|---|
| 52 |  D HOME^%ZIS
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | LETTERS ; Reflag those MT letters which need to be updated for UE Status update
 | 
|---|
| 56 |  N EASIEN,EASPTR,EASDFN,EASLTR,EASCNT,XX
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  K ^TMP("EAS155P",$J)
 | 
|---|
| 59 |  S ^TMP("EAS155P",$J,"START")=$H,^TMP("EAS155P",$J,"COUNT")=0,^TMP("EAS155P",$J,"NOCHANGE")=0
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  F XX="60D","30D","0D","OFF" S EASCNT(XX)=0
 | 
|---|
| 62 |  S EASIEN=0
 | 
|---|
| 63 |  F  S EASIEN=$O(^EAS(713.2,"AC",0,EASIEN)) Q:'EASIEN  D
 | 
|---|
| 64 |  . S EASPTR=$$GET1^DIQ(713.2,EASIEN,2,"I")
 | 
|---|
| 65 |  . Q:$D(^EAS(713.1,"AP",1,EASPTR))  ; Quit if Letter Prohibit Flag set
 | 
|---|
| 66 |  . Q:$$DECEASED^EASMTUTL(EASIEN)  ; Quit if patient deceased
 | 
|---|
| 67 |  . ; ** Safety check for bad patient pointers in 713.1
 | 
|---|
| 68 |  . Q:$$GET1^DIQ(713.2,EASIEN,2)']""
 | 
|---|
| 69 |  . D TESTLTR(EASIEN)
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  S ^TMP("EAS155P",$J,"END")=$H
 | 
|---|
| 72 |  D MAIL
 | 
|---|
| 73 |  D REPORT
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | TESTLTR(EASIEN) ; Test letter conditions
 | 
|---|
| 77 |  N NODE6,NODE4,NODEZ,IENS,FDA,FIN
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  S ^TMP("EAS155P",$J,"COUNT")=^TMP("EAS155P",$J,"COUNT")+1
 | 
|---|
| 80 |  ; Piece 1: Threshold date, Piece 2: Flag-to-print, Piece 3: Letter Printed?, Piece 4: Date printed 
 | 
|---|
| 81 |  S NODE6=$G(^EAS(713.2,EASIEN,6))
 | 
|---|
| 82 |  S NODE4=$G(^EAS(713.2,EASIEN,4))
 | 
|---|
| 83 |  S NODEZ=$G(^EAS(713.2,EASIEN,"Z"))
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  ; Check 1, check if letters have been completely turned off, No flags to print and no letters printed.  Turn back on most appropriate letter.
 | 
|---|
| 86 |  I '$P(NODE6,U,3),'$P(NODE4,U,3),'$P(NODEZ,U,3) D  Q:$G(FIN)
 | 
|---|
| 87 |  . I '$P(NODE6,U,2),'$P(NODE4,U,2),'$P(NODEZ,U,2) D
 | 
|---|
| 88 |  . . I $P(NODEZ,U)<DT D  Q
 | 
|---|
| 89 |  . . . S EASCNT("0D")=EASCNT("0D")+1
 | 
|---|
| 90 |  . . . S ^TMP("EAS155P",$J,"0D",EASIEN)=""
 | 
|---|
| 91 |  . . . S FDA(1,713.2,EASIEN_",",18)="YES"
 | 
|---|
| 92 |  . . . S FDA(1,713.2,EASIEN_",",9)="NO"
 | 
|---|
| 93 |  . . . S FDA(1,713.2,EASIEN_",",12)="NO",FIN=1
 | 
|---|
| 94 |  . . . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 95 |  . . I $P(NODE4,U)<DT D  Q
 | 
|---|
| 96 |  . . . S EASCNT("30D")=EASCNT("30D")+1
 | 
|---|
| 97 |  . . . S ^TMP("EAS155P",$J,"30D",EASIEN)=""
 | 
|---|
| 98 |  . . . S FDA(1,713.2,EASIEN_",",12)="YES"
 | 
|---|
| 99 |  . . . S FDA(1,713.2,EASIEN_",",9)="NO"
 | 
|---|
| 100 |  . . . S FDA(1,713.2,EASIEN_",",18)="NO",FIN=1
 | 
|---|
| 101 |  . . . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 102 |  . . S EASCNT("60D")=EASCNT("6OD")+1
 | 
|---|
| 103 |  . . S ^TMP("EAS155P",$J,"60D",EASIEN)=""
 | 
|---|
| 104 |  . . S FDA(1,713.2,EASIEN_",",9)="YES"
 | 
|---|
| 105 |  . . S FDA(1,713.2,EASIEN_",",12)="NO"
 | 
|---|
| 106 |  . . S FDA(1,713.2,EASIEN_",",18)="NO",FIN=1
 | 
|---|
| 107 |  . . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ; Check 2, check if 60d ltrs have not been printed, but 30d ltrs are flagged to print.
 | 
|---|
| 110 |  I '$P(NODE6,U,3)&($P(NODE4,U,2))&($P(NODE4,U,1)>DT) D  Q:$G(FIN)
 | 
|---|
| 111 |  . S EASCNT("60D")=EASCNT("60D")+1
 | 
|---|
| 112 |  . S ^TMP("EAS155P",$J,"60D",EASIEN)=""
 | 
|---|
| 113 |  . S FDA(1,713.2,EASIEN_",",9)="YES"
 | 
|---|
| 114 |  . S FDA(1,713.2,EASIEN_",",12)="NO"
 | 
|---|
| 115 |  . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 116 |  . S FIN=1
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  ; Check 3, if the 60d ltr has been printed AND the 30d ltr has not AND the 
 | 
|---|
| 119 |  ; 0d ltr is flagged to print.
 | 
|---|
| 120 |  I $P(NODE6,U,3)&('$P(NODE4,U,3))&($P(NODEZ,U,2))&($P(NODEZ,U,1)>DT) D  Q:$G(FIN)
 | 
|---|
| 121 |  . S EASCNT("30D")=EASCNT("30D")+1
 | 
|---|
| 122 |  . S ^TMP("EAS155P",$J,"30D",EASIEN)=""
 | 
|---|
| 123 |  . S FDA(1,713.2,EASIEN_",",12)="YES"
 | 
|---|
| 124 |  . S FDA(1,713.2,EASIEN_",",18)="NO"
 | 
|---|
| 125 |  . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 126 |  . S FIN=1
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  ; Check 4, if the 30d ltr has been printed and the 0d has not AND is not flagged.
 | 
|---|
| 129 |  I $P(NODE4,U,3)&('$P(NODEZ,U,3))&('$P(NODEZ,U,2)) D  Q
 | 
|---|
| 130 |  . S EASCNT("0D")=EASCNT("0D")+1
 | 
|---|
| 131 |  . S ^TMP("EAS155P",$J,"0D",EASIEN)=""
 | 
|---|
| 132 |  . S FDA(1,713.2,EASIEN_",",18)="YES"
 | 
|---|
| 133 |  . D FILE^DIE("E","FDA(1)")
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 |  S ^TMP("EAS155P",$J,"NOCHANGE")=^TMP("EAS155P",$J,"NOCHANGE")+1
 | 
|---|
| 136 |  Q
 | 
|---|
| 137 |  ;
 | 
|---|
| 138 | UPD(FDA) ;  Update file entry
 | 
|---|
| 139 |  N ERR
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  D FILE^DIE("E","FDA(1)","ERR")
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | MAIL ;
 | 
|---|
| 145 |  N MSG,XMDUZ,XMSUB,XMTEXT,XMY,XX
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 |  S (XMDUZ,XMSUB)="EAS*1*55 CLEANUP"
 | 
|---|
| 148 |  S XMY(.5)="",XMY(DUZ)=""
 | 
|---|
| 149 |  S XMTEXT="MSG("
 | 
|---|
| 150 |  S MSG(10)="Begin: "_$$HTE^XLFDT(^TMP("EAS155P",$J,"START"))
 | 
|---|
| 151 |  S MSG(20)="End:   "_$$HTE^XLFDT(^TMP("EAS155P",$J,"END"))
 | 
|---|
| 152 |  S MSG(30)="Processing Time: "_$$HDIFF^XLFDT(^TMP("EAS155P",$J,"END"),^TMP("EAS155P",$J,"START"),3)
 | 
|---|
| 153 |  S MSG(31)=""
 | 
|---|
| 154 |  S MSG(35)="   Turned Off:    "_EASCNT("OFF")
 | 
|---|
| 155 |  S MSG(40)="60-Day Letters:   "_EASCNT("60D")
 | 
|---|
| 156 |  S MSG(50)="30-Day Letters:   "_EASCNT("30D")
 | 
|---|
| 157 |  S MSG(60)=" 0-Day Letters:   "_EASCNT("0D")
 | 
|---|
| 158 |  S MSG(65)=""
 | 
|---|
| 159 |  S MSG(70)="No action required: "_^TMP("EAS155P",$J,"NOCHANGE")
 | 
|---|
| 160 |  D ^XMD
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 |  ;
 | 
|---|
| 163 | REPORT ;
 | 
|---|
| 164 |  N EAX,PAGE,EANAME,EASIEN,EASLTR
 | 
|---|
| 165 |  ;
 | 
|---|
| 166 |  U IO
 | 
|---|
| 167 |  S (PAGE,EAX)=0
 | 
|---|
| 168 |  F EASLTR="60D","30D","0D" D
 | 
|---|
| 169 |  . D HDR
 | 
|---|
| 170 |  . I EASCNT(EASLTR)'>0 D  Q
 | 
|---|
| 171 |  . . W !!,"There were no letters reset for this letter type"
 | 
|---|
| 172 |  . S EASIEN=0
 | 
|---|
| 173 |  . F  S EASIEN=$O(^TMP("EAS155P",$J,EASLTR,EASIEN)) Q:EASIEN']""  D
 | 
|---|
| 174 |  . . W !,$$GET1^DIQ(713.2,EASIEN,2),?35,EASIEN,?55,$$GET1^DIQ(713.2,EASIEN,.01)
 | 
|---|
| 175 |  . . I ($Y+6)>IOSL D HDR
 | 
|---|
| 176 |  D FTR
 | 
|---|
| 177 |  Q
 | 
|---|
| 178 |  ;
 | 
|---|
| 179 | HDR ;
 | 
|---|
| 180 |  N DDASH,LINE,PART1,PART2,SPACE
 | 
|---|
| 181 |  ;
 | 
|---|
| 182 |  W @IOF
 | 
|---|
| 183 |  S PAGE=PAGE+1
 | 
|---|
| 184 |  W !,"Patch EAS*1*55 MT Letter Cleanup Results"
 | 
|---|
| 185 |  S PART1="Run Date: "_$$FMTE^XLFDT(DT)
 | 
|---|
| 186 |  S PART2="Page: "_PAGE
 | 
|---|
| 187 |  S SPACE=IOM,SPACE=SPACE-($L(PART1)+$L(PART2))
 | 
|---|
| 188 |  S $P(LINE," ",SPACE)=""
 | 
|---|
| 189 |  W !,PART1,LINE,PART2
 | 
|---|
| 190 |  W !!,$S(EASLTR="60D":"60-Day",EASLTR="30D":"30-Day",EASLTR="0D":"0-Day",1:"")," Letters for the following Veterans have been reset"
 | 
|---|
| 191 |  W !?5,"Name",?35,"File 713.2 IEN",?55,"Processing Date"
 | 
|---|
| 192 |  S $P(DDASH,"=",IOM)="" W !,DDASH
 | 
|---|
| 193 |  Q
 | 
|---|
| 194 |  ;
 | 
|---|
| 195 | FTR ;
 | 
|---|
| 196 |  W !!!!?5,"60-Day Letters:   "_EASCNT("60D")
 | 
|---|
| 197 |  W !?5,"30-Day Letters:   "_EASCNT("30D")
 | 
|---|
| 198 |  W !?5," 0-Day Letters:   "_EASCNT("0D")
 | 
|---|
| 199 |  Q
 | 
|---|