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