1 | SD53P495 ;ALB/RBS - ENV/POST-INSTALL FOR PATCH SD*5.3*495 ; 5/2/07 12:24pm
|
---|
2 | ;;5.3;Scheduling;**495**;Aug 13, 1993;Build 50
|
---|
3 | Q
|
---|
4 | ENV ;Environment check
|
---|
5 | S XPDABORT=""
|
---|
6 | ;checks programmer variables
|
---|
7 | D PROGCHK(.XPDABORT)
|
---|
8 | ;check if install is running
|
---|
9 | D ISRUNING(.XPDABORT)
|
---|
10 | I XPDABORT="" K XPDABORT
|
---|
11 | Q
|
---|
12 | POST ;Post-Install
|
---|
13 | D POST1
|
---|
14 | ;Check for SCOUT file
|
---|
15 | I '$D(^ANUSB(626140)) D Q
|
---|
16 | . D NOFILE
|
---|
17 | D TASK
|
---|
18 | Q
|
---|
19 | POST1 ;Set parameter value
|
---|
20 | N SDDAYS,SDERR,SDPARM
|
---|
21 | S SDPARM="SDSC SITE PARAMETER",SDDAYS=30
|
---|
22 | D EN^XPAR("DIV",SDPARM,1,SDDAYS,.SDERR)
|
---|
23 | D BMES^XPDUTL("******")
|
---|
24 | I '$G(SDERR) D
|
---|
25 | . D MES^XPDUTL(SDPARM_" parameter set to "_SDDAYS_" days SUCCESSFULLY.")
|
---|
26 | E D
|
---|
27 | . D MES^XPDUTL(SDPARM_" parameter set FAILED.")
|
---|
28 | D MES^XPDUTL("******")
|
---|
29 | Q
|
---|
30 | START ;Background job entry point
|
---|
31 | N SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE
|
---|
32 | N SDTOT,SDTOT1,SDTOT2,SDTOT3,SDENCPTR,SDCKCNT,SDSTOP,SDENT,SDFIL,DFN
|
---|
33 | D XTMP
|
---|
34 | ;seed var's if Re-Run
|
---|
35 | I $D(^XTMP("SD53P495","TOT")) D
|
---|
36 | . S SDTOT=+$G(^XTMP("SD53P495","TOT"))
|
---|
37 | . S SDTOT1=+$G(^XTMP("SD53P495","TOT1"))
|
---|
38 | . S SDTOT2=+$G(^XTMP("SD53P495","TOT2"))
|
---|
39 | . S SDTOT3=+$G(^XTMP("SD53P495","TOT3"))
|
---|
40 | . S (SDSAVE,SDENCPTR)=+$G(^XTMP("SD53P495","ENCOUNTER"))
|
---|
41 | E D
|
---|
42 | . S (SDAIEN,SDENCPTR,SDSAVE,SDTOT,SDTOT1,SDTOT2,SDTOT3)=0
|
---|
43 | S SDCKCNT=100,SDSTOP=0
|
---|
44 | F S SDENCPTR=$O(^ANUSB(626140,"B",SDENCPTR)) Q:'SDENCPTR D Q:SDSTOP
|
---|
45 | . S SDSAVE=SDENCPTR
|
---|
46 | . K SDANUSB,SDARAY,SDERAY,SDENT
|
---|
47 | . I +SDTOT#SDCKCNT=0,$$S^%ZTLOAD() S SDSTOP=1 Q
|
---|
48 | . S SDAIEN=$O(^ANUSB(626140,"B",SDENCPTR,""),-1)
|
---|
49 | . Q:'$G(SDAIEN)
|
---|
50 | . S SDANUSB=$G(^ANUSB(626140,SDAIEN,0))
|
---|
51 | . Q:'SDANUSB
|
---|
52 | . S SDTOT=SDTOT+1
|
---|
53 | . I $D(^SDSC(409.48,SDENCPTR,0)) S SDTOT3=SDTOT3+1 Q
|
---|
54 | . I '$$GETOE^SDOE(SDENCPTR) D Q
|
---|
55 | . . S DFN=$P(SDANUSB,U,11) D DEM^VADPT S DFN=$E(VADM(1),1,15)
|
---|
56 | . . S SDENT=DFN_" "_$$FMTE^XLFDT($P(SDANUSB,U,7),2)
|
---|
57 | . . D UPXTMP(SDENCPTR,"NO (O/P) ENCOUNTER RECORD (#409.68)",SDENT) S SDTOT2=SDTOT2+1
|
---|
58 | . D GETS^DIQ(626140,SDAIEN_",","**","I","SDARAY","SDERAY")
|
---|
59 | . I $D(SDERAY) D Q
|
---|
60 | . . S SDENT=$G(SDERAY("DIERR",1,"TEXT",1))
|
---|
61 | . . D UPXTMP(SDENCPTR,"NO (SCOUT) FILE DATA (#626140)",SDENT) S SDTOT2=SDTOT2+1
|
---|
62 | . S SDFIL=$$FILE(SDENCPTR,SDAIEN,.SDARAY)
|
---|
63 | . I '+SDFIL D Q
|
---|
64 | . . D UPXTMP(SDENCPTR,"FILING ERROR TO (#409.48)",$P(SDFIL,"^",2)) S SDTOT2=SDTOT2+1
|
---|
65 | . E D
|
---|
66 | . . S SDTOT1=SDTOT1+1
|
---|
67 | I SDSTOP D
|
---|
68 | . S ^XTMP("SD53P495","STOPPED")=$$NOW^XLFDT()
|
---|
69 | . S ZTSTOP=1
|
---|
70 | E D
|
---|
71 | . S ^XTMP("SD53P495","COMPLETED")=$$NOW^XLFDT()
|
---|
72 | S ^XTMP("SD53P495","ENCOUNTER")=SDSAVE
|
---|
73 | S ^XTMP("SD53P495","TOT")=SDTOT,^XTMP("SD53P495","TOT1")=SDTOT1
|
---|
74 | S ^XTMP("SD53P495","TOT2")=SDTOT2,^XTMP("SD53P495","TOT3")=SDTOT3
|
---|
75 | K ^XTMP("SD53P495","RUNNING") D KVA^VADPT
|
---|
76 | D SENDMSG(SDSTOP)
|
---|
77 | Q
|
---|
78 | FILE(SDENCPTR,SDAIEN,SDARAY) ;file new entry
|
---|
79 | ; create #409.48 file
|
---|
80 | ; Input:
|
---|
81 | ; SDENCPTR - [required] O/P Encounter file pointer (#409.68)
|
---|
82 | ; SDAIEN - [required] IEN of (#626140) record to convert
|
---|
83 | ; SDARAY - [required] Array of Internal values of all fields
|
---|
84 | ; Output:
|
---|
85 | ; Function Value - returns 1 on success, 0 on failure and error msg
|
---|
86 | I '+$G(SDENCPTR)!'+$G(SDAIEN)!('$D(SDARAY)) Q 0
|
---|
87 | N SDERR,SDFDA,SDFLD,SDFDAIEN,SDI,SDIENS,SDNUM,SDSTR,SDSTR1,SDSUB
|
---|
88 | N DIC,DICR,DIE,DIERR,DD,DG,DO,DR,DA
|
---|
89 | ; DINUM=X setup so new file IEN = O/P Encounter IEN
|
---|
90 | S SDFDAIEN(1)=SDENCPTR
|
---|
91 | ; setup main fields
|
---|
92 | S SDIENS="+1,",SDAIEN=SDAIEN_","
|
---|
93 | S SDSTR=".01^.02^.03^.04^.05^.06^.07^.08^.09^.1^.11^.12"
|
---|
94 | F SDI=1:1:12 D
|
---|
95 | . S SDFLD=$P(SDSTR,U,SDI)
|
---|
96 | . S SDFDA(409.48,SDIENS,SDFLD)=$G(SDARAY(626140,SDAIEN,SDFLD,"I"))
|
---|
97 | S SDFDA(409.48,SDIENS,.13)=1 ;SCOUT was always a 1 (SC)
|
---|
98 | ; setup fields of (#409.481) multiple
|
---|
99 | I $D(SDARAY(626140.01)) D
|
---|
100 | . S SDSTR1=".01^.02^.03^.04^.05^.06",SDNUM=1,(SDSUB,SDIENS)=""
|
---|
101 | . F S SDSUB=$O(SDARAY(626140.01,SDSUB)) Q:SDSUB="" D
|
---|
102 | . . S SDNUM=SDNUM+1
|
---|
103 | . . F SDI=1:1:6 S SDFLD=$P(SDSTR1,U,SDI) D
|
---|
104 | . . . S SDIENS="+"_SDNUM_",+1,"
|
---|
105 | . . . S SDFDA(409.481,SDIENS,SDFLD)=$G(SDARAY(626140.01,SDSUB,SDFLD,"I"))
|
---|
106 | D UPDATE^DIE("","SDFDA","SDFDAIEN","SDERR")
|
---|
107 | Q $S($D(SDERR):0,1:1)_"^"_$S($D(SDERR):$G(SDERR("DIERR",1,"TEXT",1)),1:"")
|
---|
108 | SENDMSG(SDSTOP) ;send MailMan msg to patch installer
|
---|
109 | N DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
|
---|
110 | K ^TMP("SD53P495",$J)
|
---|
111 | S XMSUB="SD*5.3*495 (SCOUT) FILE CONVERSION REPORT"
|
---|
112 | S XMTEXT="^TMP(""SD53P495"",$J,",XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))=""
|
---|
113 | S SDLN=0
|
---|
114 | D ADD(.SDLN,"Patch: SD*5.3*495 Automated Service Connected Designation")
|
---|
115 | D ADD(.SDLN," "),ADD(.SDLN,"************")
|
---|
116 | D ADD(.SDLN,"The existing Class III (SCOUT) file, ANU SERVICE CONNECTED CHANGES (#626140),")
|
---|
117 | D ADD(.SDLN,"which contains O/P Encounter records that have been compiled for additional")
|
---|
118 | D ADD(.SDLN,"Service Connected (SC) review, has been used to create a new Class I file")
|
---|
119 | D ADD(.SDLN,"which will provide the same functionality.")
|
---|
120 | D ADD(.SDLN," ")
|
---|
121 | D ADD(.SDLN,"Only valid O/P Encounter records from the Class III (SCOUT) file,")
|
---|
122 | D ADD(.SDLN,"ANU SERVICE CONNECTED CHANGES (#626140), have been filed into")
|
---|
123 | D ADD(.SDLN,"the new SDSC SERVICE CONNECTED CHANGES (#409.48) file.")
|
---|
124 | D ADD(.SDLN," ")
|
---|
125 | D ADD(.SDLN,"The new Automated Service Connected Designation (ASCD) Menu Options")
|
---|
126 | D ADD(.SDLN,"enable user access to the O/P Encounter records in the (#409.48) file.")
|
---|
127 | D ADD(.SDLN,"************"),ADD(.SDLN," "),ADD(.SDLN," ")
|
---|
128 | D ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:")
|
---|
129 | D ADD(.SDLN,"==============================")
|
---|
130 | D ADD(.SDLN," ")
|
---|
131 | D ADD(.SDLN,"<<< The Class III (SCOUT) File Conversion has "_$S(+$G(SDSTOP):"NOT ",1:"")_"Completed. >>>")
|
---|
132 | I +$G(SDSTOP) D
|
---|
133 | . D ADD(.SDLN," Please restart the post-install process from the following")
|
---|
134 | . D ADD(.SDLN," programmer's prompt:")
|
---|
135 | . D ADD(.SDLN," D POST^SD53P495")
|
---|
136 | D ADD(.SDLN," "),ADD(.SDLN," ")
|
---|
137 | D ADD(.SDLN," DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","START")),"P"))
|
---|
138 | I $G(SDSTOP) D
|
---|
139 | . D ADD(.SDLN," DATE/TIME TASK STOPPED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","STOPPED")),"P"))
|
---|
140 | E D
|
---|
141 | . D ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","COMPLETED")),"P"))
|
---|
142 | I $D(^XTMP("SD53P495","LAST RUN")) D
|
---|
143 | . D ADD(.SDLN," DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","LAST RUN")),"P"))
|
---|
144 | D ADD(.SDLN," "),ADD(.SDLN," ")
|
---|
145 | D ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS FOUND: "_+$G(^XTMP("SD53P495","TOT")))
|
---|
146 | I +$G(^XTMP("SD53P495","TOT3")) D
|
---|
147 | . D ADD(.SDLN," TOTAL RECORDS PREVIOUSLY CONVERTED: "_+$G(^XTMP("SD53P495","TOT3")))
|
---|
148 | D ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS CONVERTED: "_+$G(^XTMP("SD53P495","TOT1")))
|
---|
149 | D ADD(.SDLN,"TOTAL O/P ENCOUNTER RECORDS NOT CONVERTED: "_+$G(^XTMP("SD53P495","TOT2")))
|
---|
150 | I +$G(^XTMP("SD53P495","TOT2")) D
|
---|
151 | . D ADD(.SDLN," :")
|
---|
152 | . N SDSUB,SDIEN,SDENT
|
---|
153 | . S (SDSUB,SDIEN)=""
|
---|
154 | . F S SDSUB=$O(^XTMP("SD53P495","TOT2",SDSUB)) Q:SDSUB="" D
|
---|
155 | . . D ADD(.SDLN," REASON NOT CONVERTED: "_SDSUB)
|
---|
156 | . . D ADD(.SDLN," O/P ENCOUNTER IEN:")
|
---|
157 | . . F S SDIEN=$O(^XTMP("SD53P495","TOT2",SDSUB,SDIEN)) Q:'SDIEN D
|
---|
158 | . . . S SDENT=$E(^XTMP("SD53P495","TOT2",SDSUB,SDIEN),1,30)
|
---|
159 | . . . D ADD(.SDLN," : "_SDIEN_"-"_SDENT)
|
---|
160 | . . D ADD(.SDLN," :")
|
---|
161 | D ADD(.SDLN," <END OF REPORT> :")
|
---|
162 | D ^XMD
|
---|
163 | K ^TMP("SD53P495",$J)
|
---|
164 | Q
|
---|
165 | ADD(SDLN,SDTXT) ;add line
|
---|
166 | Q:$L(SDTXT)'>0
|
---|
167 | S SDLN=$G(SDLN)+1
|
---|
168 | S ^TMP("SD53P495",$J,SDLN)=SDTXT
|
---|
169 | Q
|
---|
170 | PROGCHK(XPDABORT) ;checks programmer variables
|
---|
171 | I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
|
---|
172 | . D BMES^XPDUTL("******")
|
---|
173 | . D MES^XPDUTL("Your programming variables are not set up properly.")
|
---|
174 | . D MES^XPDUTL("Installation aborted.")
|
---|
175 | . D MES^XPDUTL("******")
|
---|
176 | . S XPDABORT=2
|
---|
177 | Q
|
---|
178 | ISRUNING(XPDABORT) ;check if running
|
---|
179 | I +$G(^XTMP("SD53P495","RUNNING")) D
|
---|
180 | . D BMES^XPDUTL("******")
|
---|
181 | . D MES^XPDUTL("This patch is currently being Installed. Try later.")
|
---|
182 | . D MES^XPDUTL("Installation aborted...")
|
---|
183 | . D MES^XPDUTL("******")
|
---|
184 | . S XPDABORT=2
|
---|
185 | Q
|
---|
186 | NOFILE ;no File
|
---|
187 | D BMES^XPDUTL("******")
|
---|
188 | D MES^XPDUTL("The Class III (SCOUT) File Conversion is NOT necessary because")
|
---|
189 | D MES^XPDUTL("the ANU SERVICE CONNECTED CHANGES (#626140) file does not exist")
|
---|
190 | D MES^XPDUTL("on this system.")
|
---|
191 | D MES^XPDUTL("Post-Install process terminated...")
|
---|
192 | D MES^XPDUTL("******")
|
---|
193 | Q
|
---|
194 | TASK ;run TaskMan
|
---|
195 | N ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP
|
---|
196 | S SDSTOP=+$G(^XTMP("SD53P495","STOPPED"))
|
---|
197 | S ZTRTN="START^SD53P495"
|
---|
198 | S ZTDESC="SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
|
---|
199 | S ZTIO="",ZTDTH=$H,ZTREQ="@",ZTSAVE("ZTREQ")=""
|
---|
200 | D ^%ZTLOAD
|
---|
201 | D BMES^XPDUTL("******")
|
---|
202 | I '$D(ZTSK) D
|
---|
203 | . D MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (SCOUT) File")
|
---|
204 | . D MES^XPDUTL("Conversion.")
|
---|
205 | . D BMES^XPDUTL("Please re-run Post-Install routine POST^SD53P495 from")
|
---|
206 | . D MES^XPDUTL("the programmer prompt.")
|
---|
207 | . ;
|
---|
208 | E D
|
---|
209 | . D MES^XPDUTL("Task "_ZTSK_" has been "_$S(+SDSTOP:"Re-",1:"")_"started to run the Class III (SCOUT) File")
|
---|
210 | . D MES^XPDUTL("Conversion.")
|
---|
211 | . I SDSTOP D
|
---|
212 | . . D MES^XPDUTL(" <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>")
|
---|
213 | . D BMES^XPDUTL("You will receive a MailMan message when this task is completed")
|
---|
214 | . D MES^XPDUTL("or if it has been manually stopped.")
|
---|
215 | D MES^XPDUTL("******")
|
---|
216 | Q
|
---|
217 | XTMP ;setup ^XTMP to control output for 90 days
|
---|
218 | I $D(^XTMP("SD53P495",0)) D
|
---|
219 | . S ^XTMP("SD53P495","LAST RUN")=$G(^XTMP("SD53P495","START"))
|
---|
220 | E D
|
---|
221 | . N SDX
|
---|
222 | . S SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT()
|
---|
223 | . S SDX=SDX_"^SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
|
---|
224 | . S ^XTMP("SD53P495",0)=SDX
|
---|
225 | S ^XTMP("SD53P495","START")=$$NOW^XLFDT()
|
---|
226 | S ^XTMP("SD53P495","RUNNING")="1"
|
---|
227 | Q
|
---|
228 | UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP
|
---|
229 | ; Input:
|
---|
230 | ; SDENCPTR - Encounter IEN
|
---|
231 | ; NODE - Unique subscript
|
---|
232 | ; Output: none
|
---|
233 | Q:'$G(SDENCPTR)
|
---|
234 | I $G(NODE)="" S NODE="UNKNOWN"
|
---|
235 | S ^XTMP("SD53P495","TOT2",NODE,SDENCPTR)=$G(SDENT)
|
---|
236 | Q
|
---|