1 | EAS155P1 ;;ALB/SCK - MT LETTERS BAD POINTERS CLEAN UP ;07/22/2004
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**55**;MAR 15,2001
|
---|
3 | ;
|
---|
4 | ; This routine was initally run as the post-install for patch EAS*1*55
|
---|
5 | ; Running this routine from programmer mode will initiate another
|
---|
6 | ; reporting cycle. You should not run this routine unless advised
|
---|
7 | ; by customer support.
|
---|
8 | Q
|
---|
9 | ;
|
---|
10 | EN ; Entry point from programmer mode
|
---|
11 | N MSG,XCNT,DIR,X,Y,DIRUT
|
---|
12 | ;
|
---|
13 | F XCNT=1:1 S LINE=$P($T(TEXT+XCNT),";;",2) Q:LINE="$$END" S MSG(XCNT)=LINE
|
---|
14 | W @IOF
|
---|
15 | S XCNT=0 F S XCNT=$O(MSG(XCNT)) Q:'XCNT W !?3,MSG(XCNT)
|
---|
16 | W !
|
---|
17 | I '$$CHKPREV Q
|
---|
18 | ;
|
---|
19 | S DIR(0)="Y",DIR("B")="YES",DIR("A")="Continue with scan"
|
---|
20 | S DIR("?")="Press ENTER to continue, enter ""NO"" to exit."
|
---|
21 | D ^DIR K DIR
|
---|
22 | I Y D QUE Q
|
---|
23 | W !?3,"Exiting scan..."
|
---|
24 | Q
|
---|
25 | ;
|
---|
26 | QUE ;
|
---|
27 | K ZTRTN,ZTDESC,ZTSAVE
|
---|
28 | S ZTRTN="BLD^EAS155P1"
|
---|
29 | S ZTDESC="EAS MT LTR BAD PTR SCAN"
|
---|
30 | S ZTSAVE("DUZ")=""
|
---|
31 | S ZTIO=""
|
---|
32 | D ^%ZTLOAD
|
---|
33 | I $D(ZTSK)[0 D
|
---|
34 | . W:'$G(EASQ) !!?3,"Scan canceled"
|
---|
35 | E D
|
---|
36 | . I $G(EASQ) D BMES^XPDUTL("Scan Queued: "_ZTSK)
|
---|
37 | . E W !!?3,"Scan Queued: "_ZTSK
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | BLD ; Entry point scan and cleanup. Do not call directly, call from the EN entry point.
|
---|
41 | D SCAN,CLNUP,ALERT
|
---|
42 | S ^XTMP("EASBADPTRS",0,"END")=$H
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | POST ; Post Install entry point. This entry point is intended to be called from the KIDS build.
|
---|
46 | N MSG,XCNT,EASQ
|
---|
47 | ;
|
---|
48 | F XCNT=1:1 S LINE=$P($T(TEXT+XCNT),";;",2) Q:LINE="$$END" D
|
---|
49 | . S MSG(XCNT)=LINE
|
---|
50 | D MES^XPDUTL(.MSG)
|
---|
51 | S EASQ=1 D QUE
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | SCAN ; Begin scanning for any bad pointers in the MT Letter Files
|
---|
55 | N EAIEN
|
---|
56 | ;
|
---|
57 | K ^XTMP("EASBADPTRS")
|
---|
58 | S ^XTMP("EASBADPTRS",0)=$$FMADD^XLFDT($$DT^XLFDT,30)_U_$$DT^XLFDT_U_"EAS MT LETTERS BAD POINTERS SCAN"
|
---|
59 | S ^XTMP("EASBADPTRS",0,"START")=$H,^XTMP("EASBADPTRS",0,"DUZ")=DUZ
|
---|
60 | S EAIEN=0
|
---|
61 | F S EAIEN=$O(^EAS(713.2,"AC",0,EAIEN)) Q:'EAIEN D
|
---|
62 | . I $$GET1^DIQ(713.2,EAIEN,2)']"" S ^XTMP("EASBADPTRS",EAIEN)=""
|
---|
63 | S ^XTMP("EASBADPTRS",0,"SCAN COMPLETE")=$H
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | CLNUP ; Disable letters in MT Letter Status file with suspicious pointers
|
---|
67 | ; Do not delete, but flag as "bad"
|
---|
68 | N EAIEN,EAFDA,ERR,DIE,DA,DR
|
---|
69 | ;
|
---|
70 | S EAIEN=0
|
---|
71 | F S EAIEN=$O(^XTMP("EASBADPTRS",EAIEN)) Q:'EAIEN D
|
---|
72 | . S DIE="^EAS(713.2,",DA=EAIEN
|
---|
73 | . S DR="4///YES;5///TODAY;6////.5;7///LETTER DISABLED, BAD POINTERS?;9///NO;12///NO;18///NO"
|
---|
74 | . D ^DIE K DIE,DR,DA
|
---|
75 | ;
|
---|
76 | S ^XTMP("EASBADPTRS",0,"CLEANUP COMPLETE")=$H
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | ALERT ; Send an alert to user that the scan has completed.
|
---|
80 | K XQA,XQAMSG,XQAOPT,XQAROU,XQAID,XQDATA,XQAFLAG
|
---|
81 | ;
|
---|
82 | S XQA(DUZ)="",XQAID="EAS",XQAROU="REPORT^EAS155P1"
|
---|
83 | S XQAMSG="EAS MT LTRs Bad Pointers Scan Complete, Print Report"
|
---|
84 | D SETUP^XQALERT
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | REPORT ; Print Bad Pointers Report setup
|
---|
88 | K ZTSAVE S ZTSAVE("DUZ")=""
|
---|
89 | D EN^XUTMDEVQ("P^EAS155P1","Print EAS Bad Pointers Report",.ZTSAVE)
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | P ; Print report
|
---|
93 | N LINE,EAIEN,PAGE,EAX,DFN
|
---|
94 | ;
|
---|
95 | S (PAGE,EAIEN)=0
|
---|
96 | D HDR
|
---|
97 | F S EAIEN=$O(^XTMP("EASBADPTRS",EAIEN)) Q:'EAIEN D Q:$G(EASABRT)
|
---|
98 | . S LINE=""
|
---|
99 | . S LINE=$$SETSTR^VALM1(EAIEN,"",20,15)
|
---|
100 | . S EAX=$$GET1^DIQ(713.2,EAIEN,2,"I")
|
---|
101 | . S LINE=$$SETSTR^VALM1(EAX,LINE,40,15)
|
---|
102 | . S DFN=$$GET1^DIQ(713.1,EAX,.01,"I")
|
---|
103 | . S LINE=$$SETSTR^VALM1(DFN,LINE,60,15)
|
---|
104 | . W !,LINE
|
---|
105 | . I $Y+5>IOSL D Q:$G(EASABRT)
|
---|
106 | . . I $E(IOST,1,2)="C-" D Q:$G(EASABRT)
|
---|
107 | . . . S DIR(0)="E" D ^DIR K DIR
|
---|
108 | . . . I 'Y S EASABRT=1 Q
|
---|
109 | . . D HDR
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | HDR ; PRINT REPORT HEADER
|
---|
113 | N LINE,DDASH,TEXT,TEXT1
|
---|
114 | ;
|
---|
115 | S PAGE=PAGE+1
|
---|
116 | W:$E(IOST,1,2)="C-" @IOF
|
---|
117 | W "Results of Possible Bad Pointers Report for EAS MT Letters"
|
---|
118 | S TEXT="Date Scan Run: "_$$HTE^XLFDT(^XTMP("EASBADPTRS",0,"END"))
|
---|
119 | S TEXT1="Run by: "_$$GET1^DIQ(200,^XTMP("EASBADPTRS",0,"DUZ"),.01)
|
---|
120 | S SPACE=(IOM-($L(TEXT)+$L(TEXT1)))
|
---|
121 | S $P(LINE," ",SPACE-2)=""
|
---|
122 | W !,TEXT,LINE,TEXT1
|
---|
123 | ;
|
---|
124 | S TEXT="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT)
|
---|
125 | S TEXT1="Page: "_PAGE
|
---|
126 | S SPACE=(IOM-($L(TEXT)+$L(TEXT1)))
|
---|
127 | S $P(LINE," ",SPACE-2)=""
|
---|
128 | W !,TEXT,LINE,TEXT1,!
|
---|
129 | ;
|
---|
130 | S $P(DDASH,"=",IOM-10)=""
|
---|
131 | S LINE=$$SETSTR^VALM1("File IEN's","",5,12)
|
---|
132 | S LINE=$$SETSTR^VALM1("713.2",LINE,20,5)
|
---|
133 | S LINE=$$SETSTR^VALM1("713.1",LINE,40,5)
|
---|
134 | S LINE=$$SETSTR^VALM1("DFN",LINE,60,5)
|
---|
135 | W !,LINE
|
---|
136 | W !?5,DDASH
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | CHKPREV() ; Check for a previous scan in XTMP
|
---|
140 | N RSLT,EASDUZ
|
---|
141 | ;
|
---|
142 | S RSLT=1
|
---|
143 | I $D(^XTMP("EASBADPTRS")) D
|
---|
144 | . I '$D(^XTMP("EASBADPTRS",0,"END")) D
|
---|
145 | . . W !?3,$CHAR(7),"The EAS MT LTRs Bad Pointer scan is currently running."
|
---|
146 | . . S EASDUZ=$G(^XTMP("EASBADPTRS",0,"DUZ"))
|
---|
147 | . . I EASDUZ>0 W !?3,"started by ",$$GET1^DIQ(200,EASDUZ,.01)
|
---|
148 | . . I $D(^XTMP("EASBADPTRS",0,"START")) W " on ",$$HTE^XLFDT(^XTMP("EASBADPTRS",0,"START"))
|
---|
149 | . . S RSLT=0
|
---|
150 | . E D
|
---|
151 | . . W !?3,"Data from a previous scan exists. "
|
---|
152 | . . I $D(^XTMP("EASBADPTRS",0,"END")) W "Last Run: ",$$HTE^XLFDT(^XTMP("EASBADPTRS",0,"END"))
|
---|
153 | . . W !?3,"Answering ""YES"" will cause this data to be erased and a new"
|
---|
154 | . . W !?3,"scan started!",!
|
---|
155 | Q $G(RSLT)
|
---|
156 | ;
|
---|
157 | TEXT ;
|
---|
158 | ;;Running this routine will scan the EAS MT PATIENT STATUS File (#713.1)
|
---|
159 | ;;and the EAS MT LETTER STATUS File (#713.2) for any bad pointers
|
---|
160 | ;;linking to the PATIENT File (#2). This routine WILL NOT clean up
|
---|
161 | ;;these pointers, but will flag the appropriate MT Letter entry as
|
---|
162 | ;;'MT RETURNED' and enter a comment of 'Bad Pointer'. Your local
|
---|
163 | ;;IRM may take additional cleanup actions.
|
---|
164 | ;;
|
---|
165 | ;;Data from this scan will be retained in the ^XTMP("EASBADPTRS")
|
---|
166 | ;;global for 30 days. You may run REPORT^EAS155P1 at a programmer
|
---|
167 | ;;prompt to re-print a formatted report. You will be alerted when the
|
---|
168 | ;;scan is complete.
|
---|
169 | ;;$$END
|
---|
170 | Q
|
---|