Merge lp:~jontai/openvista-gtm-integration/phase1-alpha2-release-prep into lp:openvista-gtm-integration
- phase1-alpha2-release-prep
- Merge into mainline
Proposed by
Jon Tai
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~jontai/openvista-gtm-integration/phase1-alpha2-release-prep |
Merge into: | lp:openvista-gtm-integration |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~jontai/openvista-gtm-integration/phase1-alpha2-release-prep |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenVista/GT.M Integration Team | Pending | ||
Review via email:
|
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'ChangeLog' | |||
2 | --- ChangeLog 1970-01-01 00:00:00 +0000 | |||
3 | +++ ChangeLog 2009-06-08 17:00:39 +0000 | |||
4 | @@ -0,0 +1,187 @@ | |||
5 | 1 | 0.8.1 | ||
6 | 2 | === | ||
7 | 3 | |||
8 | 4 | 55 Jonathan Tai 2009-06-08 [merge] | ||
9 | 5 | Prep for 0.8.1 (phase 1 alpha 2) release | ||
10 | 6 | |||
11 | 7 | 54 Jonathan Tai 2009-06-05 [merge] | ||
12 | 8 | Merge bug 384019 - ERROR SETTING RIGHT MARGIN TO ZERO | ||
13 | 9 | |||
14 | 10 | 53 Jonathan Tai 2009-06-03 [merge] | ||
15 | 11 | Merge bug 383367 - ovimport creates temporary directory in routines directory when importing routines from tmp directory | ||
16 | 12 | |||
17 | 13 | 52 Jonathan Tai 2009-06-02 [merge] | ||
18 | 14 | Merge bug 378919 - System status routine | ||
19 | 15 | |||
20 | 16 | 51 Jonathan Tai 2009-06-02 [merge] | ||
21 | 17 | Merge bug 381117 - GT.M/Unix version of ORDER^%ZOSV out of sync with Cache version | ||
22 | 18 | |||
23 | 19 | 50 Jonathan Tai 2009-06-02 [merge] | ||
24 | 20 | Merge bug 380753 - HFS device always busy | ||
25 | 21 | |||
26 | 22 | 49 Jonathan Tai 2009-06-01 [merge] | ||
27 | 23 | Merge bug 381113 - ZISFGUX is not necessary | ||
28 | 24 | |||
29 | 25 | 48 Jonathan Tai 2009-05-29 [merge] | ||
30 | 26 | Merge bug 381424 - Printing from CPRS only Prints Header | ||
31 | 27 | |||
32 | 28 | 47 Jonathan Tai 2009-05-21 [merge] | ||
33 | 29 | Merge bug 370652 - UNLOCK^MSCZJOBU doesn't need a second argument | ||
34 | 30 | |||
35 | 31 | 46 Jeff Apple 2009-05-20 [merge] | ||
36 | 32 | Merge bug378746 | ||
37 | 33 | correct return codes and error messages | ||
38 | 34 | |||
39 | 35 | 45 Jonathan Tai 2009-05-20 [merge] | ||
40 | 36 | Merge bug 378140 - gtmsignal is installed with incorrect owner | ||
41 | 37 | |||
42 | 38 | 44 Jeff Apple 2009-05-19 | ||
43 | 39 | Fix spelling error in help | ||
44 | 40 | |||
45 | 41 | 43 Jonathan Tai 2009-05-13 [merge] | ||
46 | 42 | Merge bug 375029 - ovimport doesn't create group-writable routine files if source files aren't group-writable | ||
47 | 43 | |||
48 | 44 | |||
49 | 45 | 0.8 | ||
50 | 46 | === | ||
51 | 47 | |||
52 | 48 | 42 Jonathan Tai 2009-05-01 [merge] | ||
53 | 49 | Merge Joel's build | ||
54 | 50 | |||
55 | 51 | 41 Jonathan Tai 2009-05-01 [merge] | ||
56 | 52 | Add routines present in Joel's build, but missing from bzr | ||
57 | 53 | |||
58 | 54 | 40 Jeff Apple 2009-05-01 [merge] | ||
59 | 55 | Merge changes under bug 368789 | ||
60 | 56 | |||
61 | 57 | 39 Jeff Apple 2009-04-29 [merge] | ||
62 | 58 | Merge bug323482 | ||
63 | 59 | Fix compile errors | ||
64 | 60 | |||
65 | 61 | 38 Jonathan Tai 2009-04-29 [merge] | ||
66 | 62 | Merge bug 369369 - ovimport imports globals.zwr into routines directory when the zip files are extracted into the same directory | ||
67 | 63 | |||
68 | 64 | 37 Jonathan Tai 2009-04-28 [merge] | ||
69 | 65 | Merge bug 326193 - System Status/Job Exam not working in GTM | ||
70 | 66 | |||
71 | 67 | 36 Jonathan Tai 2009-04-27 [merge] | ||
72 | 68 | Merge bug 365395 - ovimport routine copy performance | ||
73 | 69 | |||
74 | 70 | 35 Jonathan Tai 2009-04-25 [merge] | ||
75 | 71 | Merge bug 366576 - Unable to remove openvista-webdav-config package if removing httpd | ||
76 | 72 | |||
77 | 73 | 34 Jeff Apple 2009-04-24 | ||
78 | 74 | Add author in comment | ||
79 | 75 | |||
80 | 76 | 33 Jeff Apple 2009-04-24 [merge] | ||
81 | 77 | Merge bug 332088 | ||
82 | 78 | lpr printing from gtm in unix | ||
83 | 79 | |||
84 | 80 | 32 Jeff Apple 2009-04-24 [merge] | ||
85 | 81 | Merge bug355710 | ||
86 | 82 | Unprotected SSVN in XPDR | ||
87 | 83 | |||
88 | 84 | 31 Jeff Apple 2009-04-24 [merge] | ||
89 | 85 | Merge bug 333538 | ||
90 | 86 | Error Trap display intermittent problems - fixed | ||
91 | 87 | |||
92 | 88 | 30 Jonathan Tai 2009-04-23 [merge] | ||
93 | 89 | Merge bug 365777 - Tied account script to run MSCOVCI | ||
94 | 90 | |||
95 | 91 | 29 Jonathan Tai 2009-04-23 [merge] | ||
96 | 92 | Merge bug 365404 - bash completion should skip over lost+found directory | ||
97 | 93 | |||
98 | 94 | 28 Jonathan Tai 2009-04-23 [merge] | ||
99 | 95 | Merge bug 365393 - ovinstanceadd should create "images" symlink pointing to webdav root | ||
100 | 96 | |||
101 | 97 | 27 Jonathan Tai 2009-04-22 [merge] | ||
102 | 98 | Merge bug 365370 - libopenvista.so needs to have textrel_shlib_t | ||
103 | 99 | |||
104 | 100 | 26 Jeff Apple 2009-04-23 [merge] | ||
105 | 101 | Add missing TCPIP and library changes | ||
106 | 102 | |||
107 | 103 | 25 Jonathan Tai 2009-04-22 [merge] | ||
108 | 104 | Merge bug 363162 - Send M errors back instead of disconnecting clients | ||
109 | 105 | |||
110 | 106 | 24 Jonathan Tai 2009-04-21 [merge] | ||
111 | 107 | Merge release-packaging branch: new COPYING and README files, new build script, adds a -V flag to all commands that displays AGPL info, new ovswitchjournals utility, new openvista-webdav-config package to automatically configure webdav; adds webdav support to ovinstanceadd/ovinstancedel | ||
112 | 108 | |||
113 | 109 | 23 Jonathan Tai 2009-04-20 [merge] | ||
114 | 110 | Merge bug 326435 - Linux commands should come with man pages | ||
115 | 111 | |||
116 | 112 | 22 Jeff Apple 2009-04-18 [merge] | ||
117 | 113 | Merge bug 357216 | ||
118 | 114 | Set $ZTRAP so that an error doesn't just hang | ||
119 | 115 | |||
120 | 116 | 21 Jonathan Tai 2009-04-18 [merge] | ||
121 | 117 | Merge bug 363215 - ovrestore doesn't set permissions properly | ||
122 | 118 | |||
123 | 119 | 20 Jonathan Tai 2009-04-18 [merge] | ||
124 | 120 | Merge bug 361519 - Provide startup/shutdown hooks | ||
125 | 121 | |||
126 | 122 | 19 Jeff Apple 2009-04-17 [merge] | ||
127 | 123 | Merged bug 360615 | ||
128 | 124 | Enhance DEL^ZOSV2GTM to fix bugs and for more intelligent deletion | ||
129 | 125 | |||
130 | 126 | 18 Jeff Apple 2009-04-17 [merge] | ||
131 | 127 | Merged bug 359421 | ||
132 | 128 | Shut down HL7 listener when TaskMan tells it to | ||
133 | 129 | |||
134 | 130 | 17 Jeff Apple 2009-04-17 [merge] | ||
135 | 131 | Merged changes for bug 359318 and bug 318003 | ||
136 | 132 | Set var so GETPEER^ZOSVGUX will work | ||
137 | 133 | Use C callouts to keep listening socket open | ||
138 | 134 | |||
139 | 135 | 16 Jeff Apple 2009-04-17 [merge] | ||
140 | 136 | Merge bug 322031 | ||
141 | 137 | Make VistaLink work with GT.M | ||
142 | 138 | |||
143 | 139 | 15 Jonathan Tai 2009-04-17 [merge] | ||
144 | 140 | Merge bug 362001 - Utility to restore backups | ||
145 | 141 | |||
146 | 142 | 14 Jonathan Tai 2009-04-15 [merge] | ||
147 | 143 | Merge bug 361512 - Run mupip backup and routine consistency check in parallel | ||
148 | 144 | |||
149 | 145 | 13 Jonathan Tai 2009-04-15 [merge] | ||
150 | 146 | Merge scripts-work branch into mainline. | ||
151 | 147 | |||
152 | 148 | 12 Jeff Apple 2009-04-14 [merge] | ||
153 | 149 | Merge bug 360710 - Enhance ZTMGRSET to better handle a $ZROutine search path | ||
154 | 150 | |||
155 | 151 | 11 Jeff Apple 2009-04-14 [merge] | ||
156 | 152 | Merge bug 360290 - Enhance RTNDIR^ZOSVGUX() to handle more forms of $ZROutines | ||
157 | 153 | |||
158 | 154 | 10 Jeff Apple 2009-04-13 [merge] | ||
159 | 155 | Merge for bug 322986 - logging when dropping to programmer mode | ||
160 | 156 | |||
161 | 157 | 9 Jeff Apple 2009-04-13 [merge] | ||
162 | 158 | Merged branch bug359418 | ||
163 | 159 | Allow GTM to run a multithreaded HL7 server | ||
164 | 160 | |||
165 | 161 | 8 Jeff Apple 2009-04-13 | ||
166 | 162 | Comments | ||
167 | 163 | |||
168 | 164 | 7 Jeff Apple 2009-04-13 [merge] | ||
169 | 165 | Merge from bug321745 | ||
170 | 166 | Decrease polling ttime on socket reads for GTM | ||
171 | 167 | |||
172 | 168 | 6 Jeff Apple 2009-04-10 | ||
173 | 169 | Unmodified sources | ||
174 | 170 | |||
175 | 171 | 5 Jeff Apple 2009-04-10 [merge] | ||
176 | 172 | Merged branch bug336102 : Check for error on HL7 socket read | ||
177 | 173 | |||
178 | 174 | 4 Jonathan Tai 2009-04-06 [merge] | ||
179 | 175 | Merge gtm-packaging branch into mainline. This branch includes the zprompt work and some script and packaging fixes | ||
180 | 176 | |||
181 | 177 | 3 Jonathan Tai 2009-02-25 [merge] | ||
182 | 178 | Merge xc-packaging branch into mainline. This branch includes the tcpip work and the PAM auth work. | ||
183 | 179 | |||
184 | 180 | 2 Jonathan Tai 2009-02-12 [merge] | ||
185 | 181 | Merge scripts+packaging branch into mainline to lay the foundation for other work. | ||
186 | 182 | |||
187 | 183 | 1 Jon 2009-01-16 | ||
188 | 184 | Initial import into bzr. | ||
189 | 185 | |||
190 | 186 | Created directory structure; added README and COPYING files. | ||
191 | 187 | |||
192 | 0 | 188 | ||
193 | === modified file 'NEWS' | |||
194 | --- NEWS 2009-04-18 08:46:59 +0000 | |||
195 | +++ NEWS 2009-06-05 19:50:04 +0000 | |||
196 | @@ -1,3 +1,9 @@ | |||
197 | 1 | 0.8.1 | ||
198 | 2 | === | ||
199 | 3 | |||
200 | 4 | This release fixes bugs in ovimport, gtmsignal, the HFS device, and other | ||
201 | 5 | kernel routines. A new %SS system status routine was added. | ||
202 | 6 | |||
203 | 1 | 7 | ||
204 | 2 | 0.8 | 8 | 0.8 |
205 | 3 | === | 9 | === |
206 | 4 | 10 | ||
207 | === added file 'docs/release-checklist.txt' | |||
208 | --- docs/release-checklist.txt 1970-01-01 00:00:00 +0000 | |||
209 | +++ docs/release-checklist.txt 2009-06-08 16:58:39 +0000 | |||
210 | @@ -0,0 +1,11 @@ | |||
211 | 1 | Release Checklist | ||
212 | 2 | === | ||
213 | 3 | |||
214 | 4 | [ ] Branch mainline after all "real" changes are in | ||
215 | 5 | [ ] Create new KIDS build, copy to kids directory and bzr add it | ||
216 | 6 | [ ] Bump revision numbers in all scripts | ||
217 | 7 | [ ] Bump revision numbers in any updated RPM spec files | ||
218 | 8 | [ ] Update NEWS | ||
219 | 9 | [ ] Update ChangeLog (include future merge of release prep branch into mainline) | ||
220 | 10 | [ ] Merge release prep branch into mainline | ||
221 | 11 | |||
222 | 0 | 12 | ||
223 | === added file 'kids/MSC_GTM_INTEG_2.KID' | |||
224 | --- kids/MSC_GTM_INTEG_2.KID 1970-01-01 00:00:00 +0000 | |||
225 | +++ kids/MSC_GTM_INTEG_2.KID 2009-06-08 16:54:50 +0000 | |||
226 | @@ -0,0 +1,11858 @@ | |||
227 | 1 | KIDS Distribution saved on Jun 08, 2009@09:49:02 | ||
228 | 2 | VERSION 2 GTM | ||
229 | 3 | **KIDS**:MSC GTM INTEGRATION*1.0*2^ | ||
230 | 4 | |||
231 | 5 | **INSTALL NAME** | ||
232 | 6 | MSC GTM INTEGRATION*1.0*2 | ||
233 | 7 | "BLD",7026,0) | ||
234 | 8 | MSC GTM INTEGRATION*1.0*2^^0^3090608^y | ||
235 | 9 | "BLD",7026,1,0) | ||
236 | 10 | ^^1^1^3090605^ | ||
237 | 11 | "BLD",7026,1,1,0) | ||
238 | 12 | SYSTEM STATUS AND JOBEXAM FOR GT.M | ||
239 | 13 | "BLD",7026,4,0) | ||
240 | 14 | ^9.64PA^^ | ||
241 | 15 | "BLD",7026,6.3) | ||
242 | 16 | 36 | ||
243 | 17 | "BLD",7026,"INIT") | ||
244 | 18 | POSTGTM^ZTMGRSET | ||
245 | 19 | "BLD",7026,"KRN",0) | ||
246 | 20 | ^9.67PA^8989.52^19 | ||
247 | 21 | "BLD",7026,"KRN",.4,0) | ||
248 | 22 | .4 | ||
249 | 23 | "BLD",7026,"KRN",.401,0) | ||
250 | 24 | .401 | ||
251 | 25 | "BLD",7026,"KRN",.402,0) | ||
252 | 26 | .402 | ||
253 | 27 | "BLD",7026,"KRN",.403,0) | ||
254 | 28 | .403 | ||
255 | 29 | "BLD",7026,"KRN",.403,"NM",0) | ||
256 | 30 | ^9.68A^2^2 | ||
257 | 31 | "BLD",7026,"KRN",.403,"NM",1,0) | ||
258 | 32 | MSCZJOBEXAM FILE #3.081^3.081^0 | ||
259 | 33 | "BLD",7026,"KRN",.403,"NM",2,0) | ||
260 | 34 | MSCZLOCK FILE #3.081^3.081^0 | ||
261 | 35 | "BLD",7026,"KRN",.403,"NM","B","MSCZJOBEXAM FILE #3.081",1) | ||
262 | 36 | |||
263 | 37 | "BLD",7026,"KRN",.403,"NM","B","MSCZLOCK FILE #3.081",2) | ||
264 | 38 | |||
265 | 39 | "BLD",7026,"KRN",.5,0) | ||
266 | 40 | .5 | ||
267 | 41 | "BLD",7026,"KRN",.84,0) | ||
268 | 42 | .84 | ||
269 | 43 | "BLD",7026,"KRN",3.6,0) | ||
270 | 44 | 3.6 | ||
271 | 45 | "BLD",7026,"KRN",3.8,0) | ||
272 | 46 | 3.8 | ||
273 | 47 | "BLD",7026,"KRN",9.2,0) | ||
274 | 48 | 9.2 | ||
275 | 49 | "BLD",7026,"KRN",9.2,"NM",0) | ||
276 | 50 | ^9.68A^^ | ||
277 | 51 | "BLD",7026,"KRN",9.8,0) | ||
278 | 52 | 9.8 | ||
279 | 53 | "BLD",7026,"KRN",9.8,"NM",0) | ||
280 | 54 | ^9.68A^49^41 | ||
281 | 55 | "BLD",7026,"KRN",9.8,"NM",1,0) | ||
282 | 56 | MSCZJOB^^0^B11312416 | ||
283 | 57 | "BLD",7026,"KRN",9.8,"NM",4,0) | ||
284 | 58 | MSCZJOBU^^0^B2386063 | ||
285 | 59 | "BLD",7026,"KRN",9.8,"NM",5,0) | ||
286 | 60 | ZIS4GTM^^0^B18512871 | ||
287 | 61 | "BLD",7026,"KRN",9.8,"NM",7,0) | ||
288 | 62 | XTER1A^^0^B29100251 | ||
289 | 63 | "BLD",7026,"KRN",9.8,"NM",8,0) | ||
290 | 64 | ZU^^0^B9857255 | ||
291 | 65 | "BLD",7026,"KRN",9.8,"NM",11,0) | ||
292 | 66 | ZCD^^0^B16830436 | ||
293 | 67 | "BLD",7026,"KRN",9.8,"NM",13,0) | ||
294 | 68 | ZOSV2GTM^^0^B6700455 | ||
295 | 69 | "BLD",7026,"KRN",9.8,"NM",14,0) | ||
296 | 70 | ZOSFGUX^^0^B22118461 | ||
297 | 71 | "BLD",7026,"KRN",9.8,"NM",15,0) | ||
298 | 72 | ZISHGUX^^0^B36911880 | ||
299 | 73 | "BLD",7026,"KRN",9.8,"NM",16,0) | ||
300 | 74 | HLCSTCP1^^0^B29662559 | ||
301 | 75 | "BLD",7026,"KRN",9.8,"NM",17,0) | ||
302 | 76 | HLCSTCP^^0^B32434118 | ||
303 | 77 | "BLD",7026,"KRN",9.8,"NM",18,0) | ||
304 | 78 | HLCSLNCH^^0^B37355917 | ||
305 | 79 | "BLD",7026,"KRN",9.8,"NM",19,0) | ||
306 | 80 | XOBVLL^^0^B18012967 | ||
307 | 81 | "BLD",7026,"KRN",9.8,"NM",20,0) | ||
308 | 82 | XOBVRH^^0^B13028891 | ||
309 | 83 | "BLD",7026,"KRN",9.8,"NM",21,0) | ||
310 | 84 | XOBVSKT^^0^B19755798 | ||
311 | 85 | "BLD",7026,"KRN",9.8,"NM",22,0) | ||
312 | 86 | XOBVTCPL^^0^B13502099 | ||
313 | 87 | "BLD",7026,"KRN",9.8,"NM",23,0) | ||
314 | 88 | XWBTCPM^^0^B56922128 | ||
315 | 89 | "BLD",7026,"KRN",9.8,"NM",24,0) | ||
316 | 90 | ZTMGRSET^^0^B54320203 | ||
317 | 91 | "BLD",7026,"KRN",9.8,"NM",25,0) | ||
318 | 92 | ZISTCPS^^0^B18299533 | ||
319 | 93 | "BLD",7026,"KRN",9.8,"NM",26,0) | ||
320 | 94 | XPDR^^0^B52133395 | ||
321 | 95 | "BLD",7026,"KRN",9.8,"NM",27,0) | ||
322 | 96 | ZISFGUX^^1^ | ||
323 | 97 | "BLD",7026,"KRN",9.8,"NM",28,0) | ||
324 | 98 | ZTER^^0^B39678986 | ||
325 | 99 | "BLD",7026,"KRN",9.8,"NM",29,0) | ||
326 | 100 | ZSTARTGUX^^0^B140233 | ||
327 | 101 | "BLD",7026,"KRN",9.8,"NM",31,0) | ||
328 | 102 | MSCXUS3A^^0^B8005003 | ||
329 | 103 | "BLD",7026,"KRN",9.8,"NM",32,0) | ||
330 | 104 | RORHL7A^^0^B35660209 | ||
331 | 105 | "BLD",7026,"KRN",9.8,"NM",33,0) | ||
332 | 106 | ZOSVGUX^^0^B1197142 | ||
333 | 107 | "BLD",7026,"KRN",9.8,"NM",34,0) | ||
334 | 108 | DGMSTAPI^^0^B48539163 | ||
335 | 109 | "BLD",7026,"KRN",9.8,"NM",35,0) | ||
336 | 110 | GMRCA2^^0^B10634 | ||
337 | 111 | "BLD",7026,"KRN",9.8,"NM",36,0) | ||
338 | 112 | MAGDMEDL^^0^B3132920 | ||
339 | 113 | "BLD",7026,"KRN",9.8,"NM",37,0) | ||
340 | 114 | PRCSEA^^0^B66865498 | ||
341 | 115 | "BLD",7026,"KRN",9.8,"NM",38,0) | ||
342 | 116 | PSBOMH1^^0^B71152392 | ||
343 | 117 | "BLD",7026,"KRN",9.8,"NM",39,0) | ||
344 | 118 | PSBRPC2^^0^B44967923 | ||
345 | 119 | "BLD",7026,"KRN",9.8,"NM",40,0) | ||
346 | 120 | PXRMTMED^^0^B9970277 | ||
347 | 121 | "BLD",7026,"KRN",9.8,"NM",41,0) | ||
348 | 122 | VALMW3^^0^B21033865 | ||
349 | 123 | "BLD",7026,"KRN",9.8,"NM",42,0) | ||
350 | 124 | XQALSUR1^^0^B29675685 | ||
351 | 125 | "BLD",7026,"KRN",9.8,"NM",43,0) | ||
352 | 126 | XUMF5AU^^0^B76801793 | ||
353 | 127 | "BLD",7026,"KRN",9.8,"NM",44,0) | ||
354 | 128 | ZSTOPGUX^^0^B148072 | ||
355 | 129 | "BLD",7026,"KRN",9.8,"NM",46,0) | ||
356 | 130 | MSCZJOBS^^0^B3252583 | ||
357 | 131 | "BLD",7026,"KRN",9.8,"NM",47,0) | ||
358 | 132 | ZOSVONT^^0^B23474671 | ||
359 | 133 | "BLD",7026,"KRN",9.8,"NM",48,0) | ||
360 | 134 | ZISFGTM^^0^B9317180 | ||
361 | 135 | "BLD",7026,"KRN",9.8,"NM",49,0) | ||
362 | 136 | ZSSGUX^^0^B47435 | ||
363 | 137 | "BLD",7026,"KRN",9.8,"NM","B","DGMSTAPI",34) | ||
364 | 138 | |||
365 | 139 | "BLD",7026,"KRN",9.8,"NM","B","GMRCA2",35) | ||
366 | 140 | |||
367 | 141 | "BLD",7026,"KRN",9.8,"NM","B","HLCSLNCH",18) | ||
368 | 142 | |||
369 | 143 | "BLD",7026,"KRN",9.8,"NM","B","HLCSTCP",17) | ||
370 | 144 | |||
371 | 145 | "BLD",7026,"KRN",9.8,"NM","B","HLCSTCP1",16) | ||
372 | 146 | |||
373 | 147 | "BLD",7026,"KRN",9.8,"NM","B","MAGDMEDL",36) | ||
374 | 148 | |||
375 | 149 | "BLD",7026,"KRN",9.8,"NM","B","MSCXUS3A",31) | ||
376 | 150 | |||
377 | 151 | "BLD",7026,"KRN",9.8,"NM","B","MSCZJOB",1) | ||
378 | 152 | |||
379 | 153 | "BLD",7026,"KRN",9.8,"NM","B","MSCZJOBS",46) | ||
380 | 154 | |||
381 | 155 | "BLD",7026,"KRN",9.8,"NM","B","MSCZJOBU",4) | ||
382 | 156 | |||
383 | 157 | "BLD",7026,"KRN",9.8,"NM","B","PRCSEA",37) | ||
384 | 158 | |||
385 | 159 | "BLD",7026,"KRN",9.8,"NM","B","PSBOMH1",38) | ||
386 | 160 | |||
387 | 161 | "BLD",7026,"KRN",9.8,"NM","B","PSBRPC2",39) | ||
388 | 162 | |||
389 | 163 | "BLD",7026,"KRN",9.8,"NM","B","PXRMTMED",40) | ||
390 | 164 | |||
391 | 165 | "BLD",7026,"KRN",9.8,"NM","B","RORHL7A",32) | ||
392 | 166 | |||
393 | 167 | "BLD",7026,"KRN",9.8,"NM","B","VALMW3",41) | ||
394 | 168 | |||
395 | 169 | "BLD",7026,"KRN",9.8,"NM","B","XOBVLL",19) | ||
396 | 170 | |||
397 | 171 | "BLD",7026,"KRN",9.8,"NM","B","XOBVRH",20) | ||
398 | 172 | |||
399 | 173 | "BLD",7026,"KRN",9.8,"NM","B","XOBVSKT",21) | ||
400 | 174 | |||
401 | 175 | "BLD",7026,"KRN",9.8,"NM","B","XOBVTCPL",22) | ||
402 | 176 | |||
403 | 177 | "BLD",7026,"KRN",9.8,"NM","B","XPDR",26) | ||
404 | 178 | |||
405 | 179 | "BLD",7026,"KRN",9.8,"NM","B","XQALSUR1",42) | ||
406 | 180 | |||
407 | 181 | "BLD",7026,"KRN",9.8,"NM","B","XTER1A",7) | ||
408 | 182 | |||
409 | 183 | "BLD",7026,"KRN",9.8,"NM","B","XUMF5AU",43) | ||
410 | 184 | |||
411 | 185 | "BLD",7026,"KRN",9.8,"NM","B","XWBTCPM",23) | ||
412 | 186 | |||
413 | 187 | "BLD",7026,"KRN",9.8,"NM","B","ZCD",11) | ||
414 | 188 | |||
415 | 189 | "BLD",7026,"KRN",9.8,"NM","B","ZIS4GTM",5) | ||
416 | 190 | |||
417 | 191 | "BLD",7026,"KRN",9.8,"NM","B","ZISFGTM",48) | ||
418 | 192 | |||
419 | 193 | "BLD",7026,"KRN",9.8,"NM","B","ZISFGUX",27) | ||
420 | 194 | |||
421 | 195 | "BLD",7026,"KRN",9.8,"NM","B","ZISHGUX",15) | ||
422 | 196 | |||
423 | 197 | "BLD",7026,"KRN",9.8,"NM","B","ZISTCPS",25) | ||
424 | 198 | |||
425 | 199 | "BLD",7026,"KRN",9.8,"NM","B","ZOSFGUX",14) | ||
426 | 200 | |||
427 | 201 | "BLD",7026,"KRN",9.8,"NM","B","ZOSV2GTM",13) | ||
428 | 202 | |||
429 | 203 | "BLD",7026,"KRN",9.8,"NM","B","ZOSVGUX",33) | ||
430 | 204 | |||
431 | 205 | "BLD",7026,"KRN",9.8,"NM","B","ZOSVONT",47) | ||
432 | 206 | |||
433 | 207 | "BLD",7026,"KRN",9.8,"NM","B","ZSSGUX",49) | ||
434 | 208 | |||
435 | 209 | "BLD",7026,"KRN",9.8,"NM","B","ZSTARTGUX",29) | ||
436 | 210 | |||
437 | 211 | "BLD",7026,"KRN",9.8,"NM","B","ZSTOPGUX",44) | ||
438 | 212 | |||
439 | 213 | "BLD",7026,"KRN",9.8,"NM","B","ZTER",28) | ||
440 | 214 | |||
441 | 215 | "BLD",7026,"KRN",9.8,"NM","B","ZTMGRSET",24) | ||
442 | 216 | |||
443 | 217 | "BLD",7026,"KRN",9.8,"NM","B","ZU",8) | ||
444 | 218 | |||
445 | 219 | "BLD",7026,"KRN",19,0) | ||
446 | 220 | 19 | ||
447 | 221 | "BLD",7026,"KRN",19,"NM",0) | ||
448 | 222 | ^9.68A^2^2 | ||
449 | 223 | "BLD",7026,"KRN",19,"NM",1,0) | ||
450 | 224 | MSCZJOB^^0 | ||
451 | 225 | "BLD",7026,"KRN",19,"NM",2,0) | ||
452 | 226 | MSCZLOCK^^0 | ||
453 | 227 | "BLD",7026,"KRN",19,"NM","B","MSCZJOB",1) | ||
454 | 228 | |||
455 | 229 | "BLD",7026,"KRN",19,"NM","B","MSCZLOCK",2) | ||
456 | 230 | |||
457 | 231 | "BLD",7026,"KRN",19.1,0) | ||
458 | 232 | 19.1 | ||
459 | 233 | "BLD",7026,"KRN",101,0) | ||
460 | 234 | 101 | ||
461 | 235 | "BLD",7026,"KRN",409.61,0) | ||
462 | 236 | 409.61 | ||
463 | 237 | "BLD",7026,"KRN",771,0) | ||
464 | 238 | 771 | ||
465 | 239 | "BLD",7026,"KRN",870,0) | ||
466 | 240 | 870 | ||
467 | 241 | "BLD",7026,"KRN",8989.51,0) | ||
468 | 242 | 8989.51 | ||
469 | 243 | "BLD",7026,"KRN",8989.52,0) | ||
470 | 244 | 8989.52 | ||
471 | 245 | "BLD",7026,"KRN",8994,0) | ||
472 | 246 | 8994 | ||
473 | 247 | "BLD",7026,"KRN","B",.4,.4) | ||
474 | 248 | |||
475 | 249 | "BLD",7026,"KRN","B",.401,.401) | ||
476 | 250 | |||
477 | 251 | "BLD",7026,"KRN","B",.402,.402) | ||
478 | 252 | |||
479 | 253 | "BLD",7026,"KRN","B",.403,.403) | ||
480 | 254 | |||
481 | 255 | "BLD",7026,"KRN","B",.5,.5) | ||
482 | 256 | |||
483 | 257 | "BLD",7026,"KRN","B",.84,.84) | ||
484 | 258 | |||
485 | 259 | "BLD",7026,"KRN","B",3.6,3.6) | ||
486 | 260 | |||
487 | 261 | "BLD",7026,"KRN","B",3.8,3.8) | ||
488 | 262 | |||
489 | 263 | "BLD",7026,"KRN","B",9.2,9.2) | ||
490 | 264 | |||
491 | 265 | "BLD",7026,"KRN","B",9.8,9.8) | ||
492 | 266 | |||
493 | 267 | "BLD",7026,"KRN","B",19,19) | ||
494 | 268 | |||
495 | 269 | "BLD",7026,"KRN","B",19.1,19.1) | ||
496 | 270 | |||
497 | 271 | "BLD",7026,"KRN","B",101,101) | ||
498 | 272 | |||
499 | 273 | "BLD",7026,"KRN","B",409.61,409.61) | ||
500 | 274 | |||
501 | 275 | "BLD",7026,"KRN","B",771,771) | ||
502 | 276 | |||
503 | 277 | "BLD",7026,"KRN","B",870,870) | ||
504 | 278 | |||
505 | 279 | "BLD",7026,"KRN","B",8989.51,8989.51) | ||
506 | 280 | |||
507 | 281 | "BLD",7026,"KRN","B",8989.52,8989.52) | ||
508 | 282 | |||
509 | 283 | "BLD",7026,"KRN","B",8994,8994) | ||
510 | 284 | |||
511 | 285 | "BLD",7026,"MSC") | ||
512 | 286 | /home/jsher/MSC_GTM_INTEG_2.KID | ||
513 | 287 | "BLD",7026,"MSCOM") | ||
514 | 288 | VERSION 2 GTM | ||
515 | 289 | "BLD",7026,"PRE") | ||
516 | 290 | MSCGUX53 | ||
517 | 291 | "INIT") | ||
518 | 292 | POSTGTM^ZTMGRSET | ||
519 | 293 | "KRN",.403,121,-1) | ||
520 | 294 | 0^1 | ||
521 | 295 | "KRN",.403,121,0) | ||
522 | 296 | MSCZJOBEXAM^ ^@^^3070530.1755^^^3.081^0^1^1 | ||
523 | 297 | "KRN",.403,121,12) | ||
524 | 298 | |||
525 | 299 | "KRN",.403,121,21) | ||
526 | 300 | |||
527 | 301 | "KRN",.403,121,40,0) | ||
528 | 302 | ^.4031I^3^3 | ||
529 | 303 | "KRN",.403,121,40,1,0) | ||
530 | 304 | 1^^1,1^^^1^17,80 | ||
531 | 305 | "KRN",.403,121,40,1,1) | ||
532 | 306 | Page 1 | ||
533 | 307 | "KRN",.403,121,40,1,40,0) | ||
534 | 308 | ^.4032IP^433^2 | ||
535 | 309 | "KRN",.403,121,40,1,40,432,0) | ||
536 | 310 | MSCZJOBEXAM^4^3,2^e | ||
537 | 311 | "KRN",.403,121,40,1,40,432,2) | ||
538 | 312 | 13^^u^^1 | ||
539 | 313 | "KRN",.403,121,40,1,40,432,"COMP MUL") | ||
540 | 314 | D COMPMUL^MSCZJOB | ||
541 | 315 | "KRN",.403,121,40,1,40,432,"COMP MUL PTR") | ||
542 | 316 | |||
543 | 317 | "KRN",.403,121,40,1,40,433,0) | ||
544 | 318 | MSCZJOBEXAM HDR^1^1,2^d | ||
545 | 319 | "KRN",.403,121,40,2,0) | ||
546 | 320 | 2^^1,1^^^1^18,79 | ||
547 | 321 | "KRN",.403,121,40,2,1) | ||
548 | 322 | Page 2 | ||
549 | 323 | "KRN",.403,121,40,2,40,0) | ||
550 | 324 | ^.4032IP^437^3 | ||
551 | 325 | "KRN",.403,121,40,2,40,434,0) | ||
552 | 326 | MSCZJOBEXAM 2^1^1,1^e | ||
553 | 327 | "KRN",.403,121,40,2,40,435,0) | ||
554 | 328 | MSCZJOBVARS^3^8,3^e | ||
555 | 329 | "KRN",.403,121,40,2,40,435,2) | ||
556 | 330 | 9^^f^^1 | ||
557 | 331 | "KRN",.403,121,40,2,40,435,"COMP MUL") | ||
558 | 332 | D COMPVARS^MSCZJOB | ||
559 | 333 | "KRN",.403,121,40,2,40,437,0) | ||
560 | 334 | MSCZJOBSTACK^4^3,3^e | ||
561 | 335 | "KRN",.403,121,40,2,40,437,2) | ||
562 | 336 | 3^ | ||
563 | 337 | "KRN",.403,121,40,2,40,437,"COMP MUL") | ||
564 | 338 | D COMPSTK^MSCZJOB | ||
565 | 339 | "KRN",.403,121,40,3,0) | ||
566 | 340 | 3^^4,4^^^1^15,70 | ||
567 | 341 | "KRN",.403,121,40,3,1) | ||
568 | 342 | Page 3 | ||
569 | 343 | "KRN",.403,121,40,3,40,0) | ||
570 | 344 | ^.4032IP^436^1 | ||
571 | 345 | "KRN",.403,121,40,3,40,436,0) | ||
572 | 346 | MSCZJOBLOCKS^1^2,3^e | ||
573 | 347 | "KRN",.403,121,40,3,40,436,2) | ||
574 | 348 | 6^ | ||
575 | 349 | "KRN",.403,121,40,3,40,436,"COMP MUL") | ||
576 | 350 | D COMPLKS^MSCZJOB | ||
577 | 351 | "KRN",.403,121,21400) | ||
578 | 352 | 1 | ||
579 | 353 | "KRN",.403,122,-1) | ||
580 | 354 | 0^2 | ||
581 | 355 | "KRN",.403,122,0) | ||
582 | 356 | MSCZLOCK^ ^@^^3070530.1755^^^3.081^0^1^1 | ||
583 | 357 | "KRN",.403,122,40,0) | ||
584 | 358 | ^.4031I^1^1 | ||
585 | 359 | "KRN",.403,122,40,1,0) | ||
586 | 360 | 1^^1,1^^^0^17,80 | ||
587 | 361 | "KRN",.403,122,40,1,1) | ||
588 | 362 | Page 1 | ||
589 | 363 | "KRN",.403,122,40,1,40,0) | ||
590 | 364 | ^.4032IP^439^2 | ||
591 | 365 | "KRN",.403,122,40,1,40,438,0) | ||
592 | 366 | MSCZLOCKEXAM^4^3,2^e | ||
593 | 367 | "KRN",.403,122,40,1,40,438,2) | ||
594 | 368 | 13^^u^^1 | ||
595 | 369 | "KRN",.403,122,40,1,40,438,"COMP MUL") | ||
596 | 370 | D COMPLK^MSCZJOB | ||
597 | 371 | "KRN",.403,122,40,1,40,439,0) | ||
598 | 372 | MSCZJOBLOCK HDR^1^1,1^d | ||
599 | 373 | "KRN",.404,432,0) | ||
600 | 374 | MSCZJOBEXAM^3.081 | ||
601 | 375 | "KRN",.404,432,40,0) | ||
602 | 376 | ^.4044I^5^5 | ||
603 | 377 | "KRN",.404,432,40,1,0) | ||
604 | 378 | 1^^2^^JOB NUMBER | ||
605 | 379 | "KRN",.404,432,40,1,2) | ||
606 | 380 | 1,2^6 | ||
607 | 381 | "KRN",.404,432,40,1,3) | ||
608 | 382 | !M | ||
609 | 383 | "KRN",.404,432,40,1,3.1) | ||
610 | 384 | S Y=$$JOB^MSCZJOB(D0) S:Y=$J Y=Y_"*" | ||
611 | 385 | "KRN",.404,432,40,1,4) | ||
612 | 386 | ^^^2 | ||
613 | 387 | "KRN",.404,432,40,1,10) | ||
614 | 388 | S DDSSTACK=2,MSCJOBD0=D0,MSCJOBID=$P(MSCZJOB(D0),U) | ||
615 | 389 | "KRN",.404,432,40,1,20) | ||
616 | 390 | F | ||
617 | 391 | "KRN",.404,432,40,2,0) | ||
618 | 392 | 2^^2^^DEVICE | ||
619 | 393 | "KRN",.404,432,40,2,2) | ||
620 | 394 | 1,9^23 | ||
621 | 395 | "KRN",.404,432,40,2,3) | ||
622 | 396 | !M | ||
623 | 397 | "KRN",.404,432,40,2,3.1) | ||
624 | 398 | S Y=$$DEV^MSCZJOB(D0) | ||
625 | 399 | "KRN",.404,432,40,2,4) | ||
626 | 400 | ^^^1 | ||
627 | 401 | "KRN",.404,432,40,2,20) | ||
628 | 402 | F | ||
629 | 403 | "KRN",.404,432,40,3,0) | ||
630 | 404 | 4^^2^^NAMESPACE | ||
631 | 405 | "KRN",.404,432,40,3,2) | ||
632 | 406 | 1,48^11 | ||
633 | 407 | "KRN",.404,432,40,3,3) | ||
634 | 408 | !M | ||
635 | 409 | "KRN",.404,432,40,3,3.1) | ||
636 | 410 | S Y=$$NSP^MSCZJOB(D0) | ||
637 | 411 | "KRN",.404,432,40,3,4) | ||
638 | 412 | ^^^1 | ||
639 | 413 | "KRN",.404,432,40,3,20) | ||
640 | 414 | F | ||
641 | 415 | "KRN",.404,432,40,4,0) | ||
642 | 416 | 5^^2^^ROUTINE | ||
643 | 417 | "KRN",.404,432,40,4,2) | ||
644 | 418 | 1,60^18 | ||
645 | 419 | "KRN",.404,432,40,4,3) | ||
646 | 420 | !M | ||
647 | 421 | "KRN",.404,432,40,4,3.1) | ||
648 | 422 | S Y=$$ROUTINE^MSCZJOB(D0) | ||
649 | 423 | "KRN",.404,432,40,4,4) | ||
650 | 424 | ^^^1 | ||
651 | 425 | "KRN",.404,432,40,4,20) | ||
652 | 426 | F^U | ||
653 | 427 | "KRN",.404,432,40,5,0) | ||
654 | 428 | 3^^2^^USER | ||
655 | 429 | "KRN",.404,432,40,5,2) | ||
656 | 430 | 1,33^14 | ||
657 | 431 | "KRN",.404,432,40,5,3) | ||
658 | 432 | !M | ||
659 | 433 | "KRN",.404,432,40,5,3.1) | ||
660 | 434 | S Y=$$USER^MSCZJOB(D0) | ||
661 | 435 | "KRN",.404,432,40,5,4) | ||
662 | 436 | ^^^1 | ||
663 | 437 | "KRN",.404,432,40,5,20) | ||
664 | 438 | F | ||
665 | 439 | "KRN",.404,433,0) | ||
666 | 440 | MSCZJOBEXAM HDR^3.081^ | ||
667 | 441 | "KRN",.404,433,40,0) | ||
668 | 442 | ^.4044I^2^2 | ||
669 | 443 | "KRN",.404,433,40,1,0) | ||
670 | 444 | 1^Process Device User Namespace Routine ^1 | ||
671 | 445 | "KRN",.404,433,40,1,2) | ||
672 | 446 | ^^2,1 | ||
673 | 447 | "KRN",.404,433,40,2,0) | ||
674 | 448 | 2^!M^1 | ||
675 | 449 | "KRN",.404,433,40,2,.1) | ||
676 | 450 | S Y=$$GET1^DIQ(8989.3,1,.01) | ||
677 | 451 | "KRN",.404,433,40,2,2) | ||
678 | 452 | ^^1,28 | ||
679 | 453 | "KRN",.404,434,0) | ||
680 | 454 | MSCZJOBEXAM 2^3.081 | ||
681 | 455 | "KRN",.404,434,40,0) | ||
682 | 456 | ^.4044I^7^7 | ||
683 | 457 | "KRN",.404,434,40,1,0) | ||
684 | 458 | 1^Job^2^^JOB NUMBER | ||
685 | 459 | "KRN",.404,434,40,1,2) | ||
686 | 460 | 2,8^6^2,3 | ||
687 | 461 | "KRN",.404,434,40,1,3) | ||
688 | 462 | !M | ||
689 | 463 | "KRN",.404,434,40,1,3.1) | ||
690 | 464 | S Y=$$JOB^MSCZJOB(MSCJOBD0) | ||
691 | 465 | "KRN",.404,434,40,1,20) | ||
692 | 466 | N | ||
693 | 467 | "KRN",.404,434,40,2,0) | ||
694 | 468 | 2^NSpace^2^^NAMESPACE | ||
695 | 469 | "KRN",.404,434,40,2,2) | ||
696 | 470 | 2,24^11^2,16 | ||
697 | 471 | "KRN",.404,434,40,2,3) | ||
698 | 472 | !M | ||
699 | 473 | "KRN",.404,434,40,2,3.1) | ||
700 | 474 | S Y=$$NSP^MSCZJOB(MSCJOBD0) | ||
701 | 475 | "KRN",.404,434,40,2,4) | ||
702 | 476 | ^^^2 | ||
703 | 477 | "KRN",.404,434,40,2,20) | ||
704 | 478 | F | ||
705 | 479 | "KRN",.404,434,40,3,0) | ||
706 | 480 | 3^Routine^2 | ||
707 | 481 | "KRN",.404,434,40,3,2) | ||
708 | 482 | 2,46^16^2,37 | ||
709 | 483 | "KRN",.404,434,40,3,3) | ||
710 | 484 | !M | ||
711 | 485 | "KRN",.404,434,40,3,3.1) | ||
712 | 486 | S Y=$$ROUTINE^MSCZJOB(MSCJOBD0) | ||
713 | 487 | "KRN",.404,434,40,3,4) | ||
714 | 488 | ^^^2 | ||
715 | 489 | "KRN",.404,434,40,3,20) | ||
716 | 490 | F^U | ||
717 | 491 | "KRN",.404,434,40,4,0) | ||
718 | 492 | 4^^2^^USER | ||
719 | 493 | "KRN",.404,434,40,4,2) | ||
720 | 494 | 2,63^14 | ||
721 | 495 | "KRN",.404,434,40,4,3) | ||
722 | 496 | !M | ||
723 | 497 | "KRN",.404,434,40,4,3.1) | ||
724 | 498 | S Y=$$USER^MSCZJOB(MSCJOBD0) | ||
725 | 499 | "KRN",.404,434,40,4,4) | ||
726 | 500 | ^^^2 | ||
727 | 501 | "KRN",.404,434,40,4,20) | ||
728 | 502 | F | ||
729 | 503 | "KRN",.404,434,40,5,0) | ||
730 | 504 | 5^Device^2^^DEVICE | ||
731 | 505 | "KRN",.404,434,40,5,2) | ||
732 | 506 | 3,24^38^3,16 | ||
733 | 507 | "KRN",.404,434,40,5,3) | ||
734 | 508 | !M | ||
735 | 509 | "KRN",.404,434,40,5,3.1) | ||
736 | 510 | S Y=$$DEV^MSCZJOB(MSCJOBD0) | ||
737 | 511 | "KRN",.404,434,40,5,4) | ||
738 | 512 | ^^^1 | ||
739 | 513 | "KRN",.404,434,40,5,20) | ||
740 | 514 | F^U | ||
741 | 515 | "KRN",.404,434,40,6,0) | ||
742 | 516 | 4.4^LOCKs^2^^LOCKS | ||
743 | 517 | "KRN",.404,434,40,6,2) | ||
744 | 518 | 3,10^3^3,3 | ||
745 | 519 | "KRN",.404,434,40,6,3) | ||
746 | 520 | !M | ||
747 | 521 | "KRN",.404,434,40,6,3.1) | ||
748 | 522 | S Y=$$LOCKS^MSCZJOB | ||
749 | 523 | "KRN",.404,434,40,6,10) | ||
750 | 524 | S DDSSTACK=3 | ||
751 | 525 | "KRN",.404,434,40,6,20) | ||
752 | 526 | N | ||
753 | 527 | "KRN",.404,434,40,7,0) | ||
754 | 528 | 6^KILL JOB?^2^^KILL | ||
755 | 529 | "KRN",.404,434,40,7,2) | ||
756 | 530 | 3,74^3^3,63 | ||
757 | 531 | "KRN",.404,434,40,7,13) | ||
758 | 532 | N X,Y I DDSEXT="YES" D KILL^MSCZJOB(MSCJOBID) | ||
759 | 533 | "KRN",.404,434,40,7,20) | ||
760 | 534 | Y | ||
761 | 535 | "KRN",.404,435,0) | ||
762 | 536 | MSCZJOBVARS^3.081 | ||
763 | 537 | "KRN",.404,435,40,0) | ||
764 | 538 | ^.4044I^3^3 | ||
765 | 539 | "KRN",.404,435,40,1,0) | ||
766 | 540 | 1^^2^^VARIABLE NAME | ||
767 | 541 | "KRN",.404,435,40,1,2) | ||
768 | 542 | 1,1^24 | ||
769 | 543 | "KRN",.404,435,40,1,3) | ||
770 | 544 | !M | ||
771 | 545 | "KRN",.404,435,40,1,3.1) | ||
772 | 546 | S Y=$P(@MSC@(MSCJOBID,"V",D0),"=") | ||
773 | 547 | "KRN",.404,435,40,1,4) | ||
774 | 548 | ^^^2 | ||
775 | 549 | "KRN",.404,435,40,1,20) | ||
776 | 550 | F | ||
777 | 551 | "KRN",.404,435,40,2,0) | ||
778 | 552 | 2^^2^^VALUE OF VARIABLE | ||
779 | 553 | "KRN",.404,435,40,2,2) | ||
780 | 554 | 1,28^48 | ||
781 | 555 | "KRN",.404,435,40,2,3) | ||
782 | 556 | !M | ||
783 | 557 | "KRN",.404,435,40,2,3.1) | ||
784 | 558 | S Y=$P(@MSC@(MSCJOBID,"V",D0),"=",2,999) | ||
785 | 559 | "KRN",.404,435,40,2,4) | ||
786 | 560 | ^^^2 | ||
787 | 561 | "KRN",.404,435,40,2,20) | ||
788 | 562 | F^U | ||
789 | 563 | "KRN",.404,435,40,3,0) | ||
790 | 564 | 1.5^=^1 | ||
791 | 565 | "KRN",.404,435,40,3,2) | ||
792 | 566 | ^^1,26 | ||
793 | 567 | "KRN",.404,436,0) | ||
794 | 568 | MSCZJOBLOCKS^3.081^ | ||
795 | 569 | "KRN",.404,436,40,0) | ||
796 | 570 | ^.4044I^2^2 | ||
797 | 571 | "KRN",.404,436,40,1,0) | ||
798 | 572 | 1^^2^^LOCKS | ||
799 | 573 | "KRN",.404,436,40,1,2) | ||
800 | 574 | 2,1^47 | ||
801 | 575 | "KRN",.404,436,40,1,3) | ||
802 | 576 | !M | ||
803 | 577 | "KRN",.404,436,40,1,3.1) | ||
804 | 578 | S Y=@MSC@(MSCJOBID,"L",D0) | ||
805 | 579 | "KRN",.404,436,40,1,4) | ||
806 | 580 | ^^^2 | ||
807 | 581 | "KRN",.404,436,40,1,20) | ||
808 | 582 | F^U | ||
809 | 583 | "KRN",.404,436,40,2,0) | ||
810 | 584 | 2^UNLOCK?^2^^UNLOCK | ||
811 | 585 | "KRN",.404,436,40,2,2) | ||
812 | 586 | 2,58^3^2,49^1 | ||
813 | 587 | "KRN",.404,436,40,2,13) | ||
814 | 588 | I DDSEXT="YES" D UNLOCK^MSCZJOB(D0) | ||
815 | 589 | "KRN",.404,436,40,2,20) | ||
816 | 590 | Y | ||
817 | 591 | "KRN",.404,437,0) | ||
818 | 592 | MSCZJOBSTACK^3.081 | ||
819 | 593 | "KRN",.404,437,40,0) | ||
820 | 594 | ^.4044I^1^1 | ||
821 | 595 | "KRN",.404,437,40,1,0) | ||
822 | 596 | 1^^2^^STACK | ||
823 | 597 | "KRN",.404,437,40,1,2) | ||
824 | 598 | 2,1^75 | ||
825 | 599 | "KRN",.404,437,40,1,3) | ||
826 | 600 | !M | ||
827 | 601 | "KRN",.404,437,40,1,3.1) | ||
828 | 602 | S Y=$$STACK^MSCZJOB(D0) | ||
829 | 603 | "KRN",.404,437,40,1,4) | ||
830 | 604 | ^^^2 | ||
831 | 605 | "KRN",.404,437,40,1,20) | ||
832 | 606 | F^U | ||
833 | 607 | "KRN",.404,438,0) | ||
834 | 608 | MSCZLOCKEXAM^3.081 | ||
835 | 609 | "KRN",.404,438,40,0) | ||
836 | 610 | ^.4044I^5^5 | ||
837 | 611 | "KRN",.404,438,40,1,0) | ||
838 | 612 | 1^^2^^JOB NUMBER | ||
839 | 613 | "KRN",.404,438,40,1,2) | ||
840 | 614 | 1,2^6 | ||
841 | 615 | "KRN",.404,438,40,1,3) | ||
842 | 616 | !M | ||
843 | 617 | "KRN",.404,438,40,1,3.1) | ||
844 | 618 | S Y=$P($G(MSCZLK(D0)),U,5) S:Y=$J Y=Y_"*" | ||
845 | 619 | "KRN",.404,438,40,1,4) | ||
846 | 620 | ^^^2 | ||
847 | 621 | "KRN",.404,438,40,1,10) | ||
848 | 622 | S DDSSTACK=2,MSCJOBD0=D0,MSCJOBID=$P(MSCZJOB(D0),U) | ||
849 | 623 | "KRN",.404,438,40,1,20) | ||
850 | 624 | F | ||
851 | 625 | "KRN",.404,438,40,2,0) | ||
852 | 626 | 2^^2^^LOCK | ||
853 | 627 | "KRN",.404,438,40,2,2) | ||
854 | 628 | 1,9^23 | ||
855 | 629 | "KRN",.404,438,40,2,3) | ||
856 | 630 | !M | ||
857 | 631 | "KRN",.404,438,40,2,3.1) | ||
858 | 632 | S Y=$TR($P($G(MSCZLK(D0)),U),"~") | ||
859 | 633 | "KRN",.404,438,40,2,4) | ||
860 | 634 | ^^^1 | ||
861 | 635 | "KRN",.404,438,40,2,20) | ||
862 | 636 | F | ||
863 | 637 | "KRN",.404,438,40,3,0) | ||
864 | 638 | 4^^2^^ROUTINE | ||
865 | 639 | "KRN",.404,438,40,3,2) | ||
866 | 640 | 1,48^25 | ||
867 | 641 | "KRN",.404,438,40,3,3) | ||
868 | 642 | !M | ||
869 | 643 | "KRN",.404,438,40,3,3.1) | ||
870 | 644 | S Y=$TR($P($G(MSCZLK(D0)),U,3),$C(126),U) | ||
871 | 645 | "KRN",.404,438,40,3,4) | ||
872 | 646 | ^^^1 | ||
873 | 647 | "KRN",.404,438,40,3,20) | ||
874 | 648 | F^U | ||
875 | 649 | "KRN",.404,438,40,4,0) | ||
876 | 650 | 5^^2^^UNLOCK | ||
877 | 651 | "KRN",.404,438,40,4,2) | ||
878 | 652 | 1,76^3 | ||
879 | 653 | "KRN",.404,438,40,4,3) | ||
880 | 654 | !M | ||
881 | 655 | "KRN",.404,438,40,4,4) | ||
882 | 656 | ^^^0 | ||
883 | 657 | "KRN",.404,438,40,4,13) | ||
884 | 658 | I DDSEXT="YES" D UNL^MSCZJOB(D0) | ||
885 | 659 | "KRN",.404,438,40,4,20) | ||
886 | 660 | Y^U | ||
887 | 661 | "KRN",.404,438,40,5,0) | ||
888 | 662 | 3^^2^^USER | ||
889 | 663 | "KRN",.404,438,40,5,2) | ||
890 | 664 | 1,33^14 | ||
891 | 665 | "KRN",.404,438,40,5,3) | ||
892 | 666 | !M | ||
893 | 667 | "KRN",.404,438,40,5,3.1) | ||
894 | 668 | S Y=$P($G(MSCZLK(D0)),U,2) | ||
895 | 669 | "KRN",.404,438,40,5,4) | ||
896 | 670 | ^^^1 | ||
897 | 671 | "KRN",.404,438,40,5,20) | ||
898 | 672 | F | ||
899 | 673 | "KRN",.404,439,0) | ||
900 | 674 | MSCZJOBLOCK HDR^3.081 | ||
901 | 675 | "KRN",.404,439,40,0) | ||
902 | 676 | ^.4044I^2^2 | ||
903 | 677 | "KRN",.404,439,40,1,0) | ||
904 | 678 | 1^Process Lock User Routine Unlock^1 | ||
905 | 679 | "KRN",.404,439,40,1,2) | ||
906 | 680 | ^^2,1 | ||
907 | 681 | "KRN",.404,439,40,2,0) | ||
908 | 682 | 2^!M^1 | ||
909 | 683 | "KRN",.404,439,40,2,.1) | ||
910 | 684 | S Y=$$GET1^DIQ(8989.3,1,.01) | ||
911 | 685 | "KRN",.404,439,40,2,2) | ||
912 | 686 | ^^1,28 | ||
913 | 687 | "KRN",19,14339,-1) | ||
914 | 688 | 0^1 | ||
915 | 689 | "KRN",19,14339,0) | ||
916 | 690 | MSCZJOB^JOB EXAMINE^^R^^^^^^^^ | ||
917 | 691 | "KRN",19,14339,1,0) | ||
918 | 692 | ^^1^1^3070623^ | ||
919 | 693 | "KRN",19,14339,1,1,0) | ||
920 | 694 | DESIGNED FOR GT.M | ||
921 | 695 | "KRN",19,14339,25) | ||
922 | 696 | MSCZJOB | ||
923 | 697 | "KRN",19,14339,"U") | ||
924 | 698 | JOB EXAMINE | ||
925 | 699 | "KRN",19,14340,-1) | ||
926 | 700 | 0^2 | ||
927 | 701 | "KRN",19,14340,0) | ||
928 | 702 | MSCZLOCK^LOCK EXAMINE^^R^^^^^^^^ | ||
929 | 703 | "KRN",19,14340,1,0) | ||
930 | 704 | ^^1^1^3070623^ | ||
931 | 705 | "KRN",19,14340,1,1,0) | ||
932 | 706 | DESIGNED FOR GT.M | ||
933 | 707 | "KRN",19,14340,25) | ||
934 | 708 | LOCK^MSCZJOB | ||
935 | 709 | "KRN",19,14340,"U") | ||
936 | 710 | LOCK EXAMINE | ||
937 | 711 | "MBREQ") | ||
938 | 712 | 0 | ||
939 | 713 | "ORD",0,9.8) | ||
940 | 714 | 9.8;;1;RTNF^XPDTA;RTNE^XPDTA | ||
941 | 715 | "ORD",0,9.8,0) | ||
942 | 716 | ROUTINE | ||
943 | 717 | "ORD",8,.403) | ||
944 | 718 | .403;8;;;EDEOUT^DIFROMSO(.403,DA,"",XPDA);FPRE^DIFROMSI(.403,"",XPDA);EPRE^DIFROMSI(.403,DA,$E("N",$G(XPDNEW)),XPDA,"",OLDA);;EPOST^DIFROMSI(.403,DA,"",XPDA);DEL^DIFROMSK(.403,"",%) | ||
945 | 719 | "ORD",8,.403,0) | ||
946 | 720 | FORM | ||
947 | 721 | "ORD",18,19) | ||
948 | 722 | 19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA | ||
949 | 723 | "ORD",18,19,0) | ||
950 | 724 | OPTION | ||
951 | 725 | "PRE") | ||
952 | 726 | MSCGUX53 | ||
953 | 727 | "QUES","XPF1",0) | ||
954 | 728 | Y | ||
955 | 729 | "QUES","XPF1","??") | ||
956 | 730 | ^D REP^XPDH | ||
957 | 731 | "QUES","XPF1","A") | ||
958 | 732 | Shall I write over your |FLAG| File | ||
959 | 733 | "QUES","XPF1","B") | ||
960 | 734 | YES | ||
961 | 735 | "QUES","XPF1","M") | ||
962 | 736 | D XPF1^XPDIQ | ||
963 | 737 | "QUES","XPF2",0) | ||
964 | 738 | Y | ||
965 | 739 | "QUES","XPF2","??") | ||
966 | 740 | ^D DTA^XPDH | ||
967 | 741 | "QUES","XPF2","A") | ||
968 | 742 | Want my data |FLAG| yours | ||
969 | 743 | "QUES","XPF2","B") | ||
970 | 744 | YES | ||
971 | 745 | "QUES","XPF2","M") | ||
972 | 746 | D XPF2^XPDIQ | ||
973 | 747 | "QUES","XPI1",0) | ||
974 | 748 | YO | ||
975 | 749 | "QUES","XPI1","??") | ||
976 | 750 | ^D INHIBIT^XPDH | ||
977 | 751 | "QUES","XPI1","A") | ||
978 | 752 | Want KIDS to INHIBIT LOGONs during the install | ||
979 | 753 | "QUES","XPI1","B") | ||
980 | 754 | NO | ||
981 | 755 | "QUES","XPI1","M") | ||
982 | 756 | D XPI1^XPDIQ | ||
983 | 757 | "QUES","XPM1",0) | ||
984 | 758 | PO^VA(200,:EM | ||
985 | 759 | "QUES","XPM1","??") | ||
986 | 760 | ^D MG^XPDH | ||
987 | 761 | "QUES","XPM1","A") | ||
988 | 762 | Enter the Coordinator for Mail Group '|FLAG|' | ||
989 | 763 | "QUES","XPM1","B") | ||
990 | 764 | |||
991 | 765 | "QUES","XPM1","M") | ||
992 | 766 | D XPM1^XPDIQ | ||
993 | 767 | "QUES","XPO1",0) | ||
994 | 768 | Y | ||
995 | 769 | "QUES","XPO1","??") | ||
996 | 770 | ^D MENU^XPDH | ||
997 | 771 | "QUES","XPO1","A") | ||
998 | 772 | Want KIDS to Rebuild Menu Trees Upon Completion of Install | ||
999 | 773 | "QUES","XPO1","B") | ||
1000 | 774 | NO | ||
1001 | 775 | "QUES","XPO1","M") | ||
1002 | 776 | D XPO1^XPDIQ | ||
1003 | 777 | "QUES","XPZ1",0) | ||
1004 | 778 | Y | ||
1005 | 779 | "QUES","XPZ1","??") | ||
1006 | 780 | ^D OPT^XPDH | ||
1007 | 781 | "QUES","XPZ1","A") | ||
1008 | 782 | Want to DISABLE Scheduled Options, Menu Options, and Protocols | ||
1009 | 783 | "QUES","XPZ1","B") | ||
1010 | 784 | NO | ||
1011 | 785 | "QUES","XPZ1","M") | ||
1012 | 786 | D XPZ1^XPDIQ | ||
1013 | 787 | "QUES","XPZ2",0) | ||
1014 | 788 | Y | ||
1015 | 789 | "QUES","XPZ2","??") | ||
1016 | 790 | ^D RTN^XPDH | ||
1017 | 791 | "QUES","XPZ2","A") | ||
1018 | 792 | Want to MOVE routines to other CPUs | ||
1019 | 793 | "QUES","XPZ2","B") | ||
1020 | 794 | NO | ||
1021 | 795 | "QUES","XPZ2","M") | ||
1022 | 796 | D XPZ2^XPDIQ | ||
1023 | 797 | "RTN") | ||
1024 | 798 | 42 | ||
1025 | 799 | "RTN","DGMSTAPI") | ||
1026 | 800 | 0^34^B48539163 | ||
1027 | 801 | "RTN","DGMSTAPI",1,0) | ||
1028 | 802 | DGMSTAPI ;ALB/SCK,MSC/JDA - API's for Military Sexual Trauma ;29APR2009 | ||
1029 | 803 | "RTN","DGMSTAPI",2,0) | ||
1030 | 804 | ;;5.3;Registration;**195,243,308,353,379,443,700,JDA**;Aug 13, 1993 | ||
1031 | 805 | "RTN","DGMSTAPI",3,0) | ||
1032 | 806 | Q | ||
1033 | 807 | "RTN","DGMSTAPI",4,0) | ||
1034 | 808 | ; | ||
1035 | 809 | "RTN","DGMSTAPI",5,0) | ||
1036 | 810 | GETSTAT(DFN,DGDATE) ; Retrieves the current MST status for a patient | ||
1037 | 811 | "RTN","DGMSTAPI",6,0) | ||
1038 | 812 | ; | ||
1039 | 813 | "RTN","DGMSTAPI",7,0) | ||
1040 | 814 | ; Input | ||
1041 | 815 | "RTN","DGMSTAPI",8,0) | ||
1042 | 816 | ; DFN - IEN of patient in the PATIENT File (#2) | ||
1043 | 817 | "RTN","DGMSTAPI",9,0) | ||
1044 | 818 | ; DGDATE - Date for status lookup [OPTIONAL] | ||
1045 | 819 | "RTN","DGMSTAPI",10,0) | ||
1046 | 820 | ; | ||
1047 | 821 | "RTN","DGMSTAPI",11,0) | ||
1048 | 822 | ; Output | ||
1049 | 823 | "RTN","DGMSTAPI",12,0) | ||
1050 | 824 | ; DGMST - Format will depend on result of lookup | ||
1051 | 825 | "RTN","DGMSTAPI",13,0) | ||
1052 | 826 | ; | ||
1053 | 827 | "RTN","DGMSTAPI",14,0) | ||
1054 | 828 | ; If an entry is found then: | ||
1055 | 829 | "RTN","DGMSTAPI",15,0) | ||
1056 | 830 | ; DGMST returns a 7 piece data string, caret(^)-delimited: | ||
1057 | 831 | "RTN","DGMSTAPI",16,0) | ||
1058 | 832 | ; $P(1) = IEN of entry in MST HISTORY File (#29.11) | ||
1059 | 833 | "RTN","DGMSTAPI",17,0) | ||
1060 | 834 | ; $P(2) = Internal value of MST Status ("Y,N,D,U") | ||
1061 | 835 | "RTN","DGMSTAPI",18,0) | ||
1062 | 836 | ; $P(3) = Date of status change | ||
1063 | 837 | "RTN","DGMSTAPI",19,0) | ||
1064 | 838 | ; $P(4) = IEN of provider making determination, file (#200) | ||
1065 | 839 | "RTN","DGMSTAPI",20,0) | ||
1066 | 840 | ; $P(5) = IEN of user who entered status, file (#200) | ||
1067 | 841 | "RTN","DGMSTAPI",21,0) | ||
1068 | 842 | ; $P(6) = External format of MST Status | ||
1069 | 843 | "RTN","DGMSTAPI",22,0) | ||
1070 | 844 | ; $P(7) = IEN pointer of the INSTITUTION file (#4) | ||
1071 | 845 | "RTN","DGMSTAPI",23,0) | ||
1072 | 846 | ; | ||
1073 | 847 | "RTN","DGMSTAPI",24,0) | ||
1074 | 848 | ; If no MST History is found, then: | ||
1075 | 849 | "RTN","DGMSTAPI",25,0) | ||
1076 | 850 | ; DGMST = 0^U | ||
1077 | 851 | "RTN","DGMSTAPI",26,0) | ||
1078 | 852 | ; "U" = (Unknown) | ||
1079 | 853 | "RTN","DGMSTAPI",27,0) | ||
1080 | 854 | ; If an error occured in the GETS^DIQ lookup, then: | ||
1081 | 855 | "RTN","DGMSTAPI",28,0) | ||
1082 | 856 | ; DGMST = -1^^Error Code IEN | ||
1083 | 857 | "RTN","DGMSTAPI",29,0) | ||
1084 | 858 | ; (returned by GETS^DIQ call) | ||
1085 | 859 | "RTN","DGMSTAPI",30,0) | ||
1086 | 860 | ; | ||
1087 | 861 | "RTN","DGMSTAPI",31,0) | ||
1088 | 862 | ; Get most recent MST status entry for the patient from file using | ||
1089 | 863 | "RTN","DGMSTAPI",32,0) | ||
1090 | 864 | ; reverse $Order on the "APDT" x-ref. | ||
1091 | 865 | "RTN","DGMSTAPI",33,0) | ||
1092 | 866 | ; | ||
1093 | 867 | "RTN","DGMSTAPI",34,0) | ||
1094 | 868 | N DGMST,DGIEN,DGFDA,DGMSG | ||
1095 | 869 | "RTN","DGMSTAPI",35,0) | ||
1096 | 870 | S DFN=$G(DFN) | ||
1097 | 871 | "RTN","DGMSTAPI",36,0) | ||
1098 | 872 | I '+DFN!('$D(^DPT(DFN,0))) D G STATQ | ||
1099 | 873 | "RTN","DGMSTAPI",37,0) | ||
1100 | 874 | . S DGMST="-1" | ||
1101 | 875 | "RTN","DGMSTAPI",38,0) | ||
1102 | 876 | I '$D(^DGMS(29.11,"APDT",DFN)) D G STATQ | ||
1103 | 877 | "RTN","DGMSTAPI",39,0) | ||
1104 | 878 | .S DGMST="0^U" | ||
1105 | 879 | "RTN","DGMSTAPI",40,0) | ||
1106 | 880 | S DGDATE=$S(+$G(DGDATE)>0:DGDATE,1:$$NOW^XLFDT) | ||
1107 | 881 | "RTN","DGMSTAPI",41,0) | ||
1108 | 882 | I '$D(^DGMS(29.11,"APDT",DFN,DGDATE)) S DGDATE=$$DATE(DFN,DGDATE) | ||
1109 | 883 | "RTN","DGMSTAPI",42,0) | ||
1110 | 884 | I '+DGDATE D G STATQ | ||
1111 | 885 | "RTN","DGMSTAPI",43,0) | ||
1112 | 886 | . S DGMST="0^U" | ||
1113 | 887 | "RTN","DGMSTAPI",44,0) | ||
1114 | 888 | S DGIEN="" | ||
1115 | 889 | "RTN","DGMSTAPI",45,0) | ||
1116 | 890 | S DGIEN=+$O(^DGMS(29.11,"APDT",DFN,DGDATE,DGIEN),-1) | ||
1117 | 891 | "RTN","DGMSTAPI",46,0) | ||
1118 | 892 | ; | ||
1119 | 893 | "RTN","DGMSTAPI",47,0) | ||
1120 | 894 | ; Check for valid ien, if entry missing, return Unknown | ||
1121 | 895 | "RTN","DGMSTAPI",48,0) | ||
1122 | 896 | I +DGIEN'>0 D G STATQ | ||
1123 | 897 | "RTN","DGMSTAPI",49,0) | ||
1124 | 898 | . S DGMST="0^U" | ||
1125 | 899 | "RTN","DGMSTAPI",50,0) | ||
1126 | 900 | ; | ||
1127 | 901 | "RTN","DGMSTAPI",51,0) | ||
1128 | 902 | ; Retrieve data | ||
1129 | 903 | "RTN","DGMSTAPI",52,0) | ||
1130 | 904 | D GETS^DIQ(29.11,+DGIEN_",","*","IE","DGFDA","DGMSG") | ||
1131 | 905 | "RTN","DGMSTAPI",53,0) | ||
1132 | 906 | ; check for errors | ||
1133 | 907 | "RTN","DGMSTAPI",54,0) | ||
1134 | 908 | I $D(DGMSG) D G STATQ | ||
1135 | 909 | "RTN","DGMSTAPI",55,0) | ||
1136 | 910 | .S DGMST="-1^^"_$G(DGMSG("DIERR",1)) | ||
1137 | 911 | "RTN","DGMSTAPI",56,0) | ||
1138 | 912 | ; | ||
1139 | 913 | "RTN","DGMSTAPI",57,0) | ||
1140 | 914 | S DGMST=DGIEN_U_$G(DGFDA(29.11,+DGIEN_",",3,"I"))_U_$G(DGFDA(29.11,+DGIEN_",",.01,"I"))_U_$G(DGFDA(29.11,+DGIEN_",",4,"I"))_U_$G(DGFDA(29.11,+DGIEN_",",5,"I")) | ||
1141 | 915 | "RTN","DGMSTAPI",58,0) | ||
1142 | 916 | S DGMST=DGMST_U_$G(DGFDA(29.11,+DGIEN_",",3,"E")) | ||
1143 | 917 | "RTN","DGMSTAPI",59,0) | ||
1144 | 918 | S DGMST=DGMST_U_$S($G(DGFDA(29.11,+DGIEN_",",6,"I"))]"":$G(DGFDA(29.11,+DGIEN_",",6,"I")),1:$$SITE) | ||
1145 | 919 | "RTN","DGMSTAPI",60,0) | ||
1146 | 920 | ; | ||
1147 | 921 | "RTN","DGMSTAPI",61,0) | ||
1148 | 922 | STATQ Q $G(DGMST) | ||
1149 | 923 | "RTN","DGMSTAPI",62,0) | ||
1150 | 924 | ; | ||
1151 | 925 | "RTN","DGMSTAPI",63,0) | ||
1152 | 926 | NEWSTAT(DFN,DGSTAT,DGDATE,DGPROV,DGSITE,DGXMIT) ; MST HISTORY (#29.11) filer | ||
1153 | 927 | "RTN","DGMSTAPI",64,0) | ||
1154 | 928 | ; Callpoint to create a new MST HISTORY FILE (#29.11) entry. | ||
1155 | 929 | "RTN","DGMSTAPI",65,0) | ||
1156 | 930 | ; Will also queue HL7 message for HEC database updates. | ||
1157 | 931 | "RTN","DGMSTAPI",66,0) | ||
1158 | 932 | ; | ||
1159 | 933 | "RTN","DGMSTAPI",67,0) | ||
1160 | 934 | ; Input | ||
1161 | 935 | "RTN","DGMSTAPI",68,0) | ||
1162 | 936 | ; DFN - Patients DFN | ||
1163 | 937 | "RTN","DGMSTAPI",69,0) | ||
1164 | 938 | ; DGSTAT - MST Status code, "Y,N,D,U" | ||
1165 | 939 | "RTN","DGMSTAPI",70,0) | ||
1166 | 940 | ; DGDATE - Date of MST status change [default=NOW] | ||
1167 | 941 | "RTN","DGMSTAPI",71,0) | ||
1168 | 942 | ; DGPROV - IEN of Provider making determination, file (#200) | ||
1169 | 943 | "RTN","DGMSTAPI",72,0) | ||
1170 | 944 | ; DGSITE - IEN pointer of the INSTITUTION file (#4) | ||
1171 | 945 | "RTN","DGMSTAPI",73,0) | ||
1172 | 946 | ; DGXMIT - HL7 transmit flag [OPTIONAL] | ||
1173 | 947 | "RTN","DGMSTAPI",74,0) | ||
1174 | 948 | ; 0=don't queue a message | ||
1175 | 949 | "RTN","DGMSTAPI",75,0) | ||
1176 | 950 | ; 1=queue a message [default]) | ||
1177 | 951 | "RTN","DGMSTAPI",76,0) | ||
1178 | 952 | ; | ||
1179 | 953 | "RTN","DGMSTAPI",77,0) | ||
1180 | 954 | ; Output | ||
1181 | 955 | "RTN","DGMSTAPI",78,0) | ||
1182 | 956 | ; DGRSLT - Returns IEN of file (#29.11) entry if successful | ||
1183 | 957 | "RTN","DGMSTAPI",79,0) | ||
1184 | 958 | ; | ||
1185 | 959 | "RTN","DGMSTAPI",80,0) | ||
1186 | 960 | ; If no patient was defined, then: | ||
1187 | 961 | "RTN","DGMSTAPI",81,0) | ||
1188 | 962 | ; DGRSLT = -1^No patient defined | ||
1189 | 963 | "RTN","DGMSTAPI",82,0) | ||
1190 | 964 | ; | ||
1191 | 965 | "RTN","DGMSTAPI",83,0) | ||
1192 | 966 | ; If an error occured in the GETS^DIQ lookup, then: | ||
1193 | 967 | "RTN","DGMSTAPI",84,0) | ||
1194 | 968 | ; DGMST = -1^^Error Code IEN | ||
1195 | 969 | "RTN","DGMSTAPI",85,0) | ||
1196 | 970 | ; (returned by GETS^DIQ call) | ||
1197 | 971 | "RTN","DGMSTAPI",86,0) | ||
1198 | 972 | ; | ||
1199 | 973 | "RTN","DGMSTAPI",87,0) | ||
1200 | 974 | N DGFDA,DGMSG,DGERR,DGRSLT,MSTIEN | ||
1201 | 975 | "RTN","DGMSTAPI",88,0) | ||
1202 | 976 | S DFN=$G(DFN) | ||
1203 | 977 | "RTN","DGMSTAPI",89,0) | ||
1204 | 978 | I DFN']""!('$D(^DPT(DFN,0))) D G NEWQ | ||
1205 | 979 | "RTN","DGMSTAPI",90,0) | ||
1206 | 980 | . S DGRSLT="-1^No patient defined" | ||
1207 | 981 | "RTN","DGMSTAPI",91,0) | ||
1208 | 982 | ; | ||
1209 | 983 | "RTN","DGMSTAPI",92,0) | ||
1210 | 984 | S DGSTAT=$S($G(DGSTAT)]"":DGSTAT,1:"U") | ||
1211 | 985 | "RTN","DGMSTAPI",93,0) | ||
1212 | 986 | S DGDATE=$G(DGDATE) | ||
1213 | 987 | "RTN","DGMSTAPI",94,0) | ||
1214 | 988 | S DGPROV=$G(DGPROV) | ||
1215 | 989 | "RTN","DGMSTAPI",95,0) | ||
1216 | 990 | S DGSITE=$G(DGSITE) | ||
1217 | 991 | "RTN","DGMSTAPI",96,0) | ||
1218 | 992 | S DGXMIT=$S($G(DGXMIT)=0:DGXMIT,1:1) | ||
1219 | 993 | "RTN","DGMSTAPI",97,0) | ||
1220 | 994 | S DGDATE=$S(+DGDATE>0:DGDATE,1:$$NOW^XLFDT) | ||
1221 | 995 | "RTN","DGMSTAPI",98,0) | ||
1222 | 996 | S DGSITE=$S(+DGSITE>0:DGSITE,1:$$SITE) | ||
1223 | 997 | "RTN","DGMSTAPI",99,0) | ||
1224 | 998 | ; | ||
1225 | 999 | "RTN","DGMSTAPI",100,0) | ||
1226 | 1000 | I '$$CHANGE(DFN,DGSTAT,DGDATE) D G NEWQ | ||
1227 | 1001 | "RTN","DGMSTAPI",101,0) | ||
1228 | 1002 | . S DGRSLT="0" | ||
1229 | 1003 | "RTN","DGMSTAPI",102,0) | ||
1230 | 1004 | ; | ||
1231 | 1005 | "RTN","DGMSTAPI",103,0) | ||
1232 | 1006 | I '$$VALID(DFN,DGSTAT,DGDATE,DGPROV,DGSITE,.DGERR) D G NEWQ | ||
1233 | 1007 | "RTN","DGMSTAPI",104,0) | ||
1234 | 1008 | . S DGRSLT="-1^"_DGERR | ||
1235 | 1009 | "RTN","DGMSTAPI",105,0) | ||
1236 | 1010 | ; | ||
1237 | 1011 | "RTN","DGMSTAPI",106,0) | ||
1238 | 1012 | S DGFDA(1,29.11,"+1,",.01)=DGDATE | ||
1239 | 1013 | "RTN","DGMSTAPI",107,0) | ||
1240 | 1014 | S DGFDA(1,29.11,"+1,",2)=DFN | ||
1241 | 1015 | "RTN","DGMSTAPI",108,0) | ||
1242 | 1016 | S DGFDA(1,29.11,"+1,",3)=DGSTAT | ||
1243 | 1017 | "RTN","DGMSTAPI",109,0) | ||
1244 | 1018 | S DGFDA(1,29.11,"+1,",4)=DGPROV | ||
1245 | 1019 | "RTN","DGMSTAPI",110,0) | ||
1246 | 1020 | S DGFDA(1,29.11,"+1,",5)=DUZ | ||
1247 | 1021 | "RTN","DGMSTAPI",111,0) | ||
1248 | 1022 | S DGFDA(1,29.11,"+1,",6)=DGSITE | ||
1249 | 1023 | "RTN","DGMSTAPI",112,0) | ||
1250 | 1024 | ; | ||
1251 | 1025 | "RTN","DGMSTAPI",113,0) | ||
1252 | 1026 | D UPDATE^DIE("","DGFDA(1)","MSTIEN","DGERR") | ||
1253 | 1027 | "RTN","DGMSTAPI",114,0) | ||
1254 | 1028 | I $D(DGERR) D G NEWQ | ||
1255 | 1029 | "RTN","DGMSTAPI",115,0) | ||
1256 | 1030 | . S DGRSLT="-1^"_$G(DGERR("DIERR",1)) | ||
1257 | 1031 | "RTN","DGMSTAPI",116,0) | ||
1258 | 1032 | ; | ||
1259 | 1033 | "RTN","DGMSTAPI",117,0) | ||
1260 | 1034 | S DGRSLT=+MSTIEN(1) | ||
1261 | 1035 | "RTN","DGMSTAPI",118,0) | ||
1262 | 1036 | ; | ||
1263 | 1037 | "RTN","DGMSTAPI",119,0) | ||
1264 | 1038 | ; Callpoint to queue an entry that will trigger a HEC | ||
1265 | 1039 | "RTN","DGMSTAPI",120,0) | ||
1266 | 1040 | ; Enrollment Full Data Transmission (ORF/ORU~ZO7) HL7 message. | ||
1267 | 1041 | "RTN","DGMSTAPI",121,0) | ||
1268 | 1042 | ; The HL7 message will contain the following three MST data elments | ||
1269 | 1043 | "RTN","DGMSTAPI",122,0) | ||
1270 | 1044 | ; as part of the VA-Specific Eligibility ZEL segment: | ||
1271 | 1045 | "RTN","DGMSTAPI",123,0) | ||
1272 | 1046 | ; (23) - MST STATUS | ||
1273 | 1047 | "RTN","DGMSTAPI",124,0) | ||
1274 | 1048 | ; (24) - DATE MST STATUS CHANGED | ||
1275 | 1049 | "RTN","DGMSTAPI",125,0) | ||
1276 | 1050 | ; (25) - SITE DETERMINING MST STATUS | ||
1277 | 1051 | "RTN","DGMSTAPI",126,0) | ||
1278 | 1052 | ; | ||
1279 | 1053 | "RTN","DGMSTAPI",127,0) | ||
1280 | 1054 | I DGXMIT D | ||
1281 | 1055 | "RTN","DGMSTAPI",128,0) | ||
1282 | 1056 | . D SEND^DGMSTL1(DFN,"Z07") | ||
1283 | 1057 | "RTN","DGMSTAPI",129,0) | ||
1284 | 1058 | ; | ||
1285 | 1059 | "RTN","DGMSTAPI",130,0) | ||
1286 | 1060 | NEWQ Q $G(DGRSLT) | ||
1287 | 1061 | "RTN","DGMSTAPI",131,0) | ||
1288 | 1062 | ; | ||
1289 | 1063 | "RTN","DGMSTAPI",132,0) | ||
1290 | 1064 | DELMST(MSTIEN) ; Deletes the MST HISTORY File (#29.11) entry passed in. | ||
1291 | 1065 | "RTN","DGMSTAPI",133,0) | ||
1292 | 1066 | ; This call is not to be used except from inside the DG MST List | ||
1293 | 1067 | "RTN","DGMSTAPI",134,0) | ||
1294 | 1068 | ; Manager interface. | ||
1295 | 1069 | "RTN","DGMSTAPI",135,0) | ||
1296 | 1070 | ; | ||
1297 | 1071 | "RTN","DGMSTAPI",136,0) | ||
1298 | 1072 | ; Input | ||
1299 | 1073 | "RTN","DGMSTAPI",137,0) | ||
1300 | 1074 | ; MSTIEN - IEN of the entry in the MST HISTORY File (#29.11) | ||
1301 | 1075 | "RTN","DGMSTAPI",138,0) | ||
1302 | 1076 | ; | ||
1303 | 1077 | "RTN","DGMSTAPI",139,0) | ||
1304 | 1078 | ; Output | ||
1305 | 1079 | "RTN","DGMSTAPI",140,0) | ||
1306 | 1080 | ; If no IEN passed in, return -1 | ||
1307 | 1081 | "RTN","DGMSTAPI",141,0) | ||
1308 | 1082 | ; otherwise return 1 | ||
1309 | 1083 | "RTN","DGMSTAPI",142,0) | ||
1310 | 1084 | ; | ||
1311 | 1085 | "RTN","DGMSTAPI",143,0) | ||
1312 | 1086 | Q:'$G(MSTIEN) "-1^No entry to delete" | ||
1313 | 1087 | "RTN","DGMSTAPI",144,0) | ||
1314 | 1088 | ; | ||
1315 | 1089 | "RTN","DGMSTAPI",145,0) | ||
1316 | 1090 | N DA,XD | ||
1317 | 1091 | "RTN","DGMSTAPI",146,0) | ||
1318 | 1092 | S DA=+$G(MSTIEN) | ||
1319 | 1093 | "RTN","DGMSTAPI",147,0) | ||
1320 | 1094 | S DIK="^DGMS(29.11," | ||
1321 | 1095 | "RTN","DGMSTAPI",148,0) | ||
1322 | 1096 | D ^DIK K DIK | ||
1323 | 1097 | "RTN","DGMSTAPI",149,0) | ||
1324 | 1098 | Q 1 | ||
1325 | 1099 | "RTN","DGMSTAPI",150,0) | ||
1326 | 1100 | ; | ||
1327 | 1101 | "RTN","DGMSTAPI",151,0) | ||
1328 | 1102 | NAME(DA) ; Returns name from the VA NEW PERSON File using DIQ call | ||
1329 | 1103 | "RTN","DGMSTAPI",152,0) | ||
1330 | 1104 | ; | ||
1331 | 1105 | "RTN","DGMSTAPI",153,0) | ||
1332 | 1106 | N DGNAME,DGPROV,DIQ,DR,DIC | ||
1333 | 1107 | "RTN","DGMSTAPI",154,0) | ||
1334 | 1108 | I $G(DA)="" G NAMEQ | ||
1335 | 1109 | "RTN","DGMSTAPI",155,0) | ||
1336 | 1110 | S DIC=200,DR=".01",DIQ="DGPROV" | ||
1337 | 1111 | "RTN","DGMSTAPI",156,0) | ||
1338 | 1112 | D EN^DIQ1 | ||
1339 | 1113 | "RTN","DGMSTAPI",157,0) | ||
1340 | 1114 | S DGNAME=$G(DGPROV(200,DA,.01)) | ||
1341 | 1115 | "RTN","DGMSTAPI",158,0) | ||
1342 | 1116 | NAMEQ Q $G(DGNAME) | ||
1343 | 1117 | "RTN","DGMSTAPI",159,0) | ||
1344 | 1118 | ; | ||
1345 | 1119 | "RTN","DGMSTAPI",160,0) | ||
1346 | 1120 | CHANGE(DFN,DGSTAT,DGDATE) ;Did the Status OR Date change? | ||
1347 | 1121 | "RTN","DGMSTAPI",161,0) | ||
1348 | 1122 | ; Input | ||
1349 | 1123 | "RTN","DGMSTAPI",162,0) | ||
1350 | 1124 | ; DFN - Patients DFN | ||
1351 | 1125 | "RTN","DGMSTAPI",163,0) | ||
1352 | 1126 | ; DGSTAT - MST Status code, "Y,N,D,U" | ||
1353 | 1127 | "RTN","DGMSTAPI",164,0) | ||
1354 | 1128 | ; DGDATE - Date of MST Status Change (FM format) | ||
1355 | 1129 | "RTN","DGMSTAPI",165,0) | ||
1356 | 1130 | ; | ||
1357 | 1131 | "RTN","DGMSTAPI",166,0) | ||
1358 | 1132 | ; Output | ||
1359 | 1133 | "RTN","DGMSTAPI",167,0) | ||
1360 | 1134 | ; Returns 0 if no status change | ||
1361 | 1135 | "RTN","DGMSTAPI",168,0) | ||
1362 | 1136 | ; 1 if status changed | ||
1363 | 1137 | "RTN","DGMSTAPI",169,0) | ||
1364 | 1138 | ; | ||
1365 | 1139 | "RTN","DGMSTAPI",170,0) | ||
1366 | 1140 | N DGCHG,DGMST | ||
1367 | 1141 | "RTN","DGMSTAPI",171,0) | ||
1368 | 1142 | S DGCHG=0 | ||
1369 | 1143 | "RTN","DGMSTAPI",172,0) | ||
1370 | 1144 | I +$G(DFN)'>0!('$D(^DPT(DFN,0))) G CHNGQ | ||
1371 | 1145 | "RTN","DGMSTAPI",173,0) | ||
1372 | 1146 | S DGSTAT=$G(DGSTAT) | ||
1373 | 1147 | "RTN","DGMSTAPI",174,0) | ||
1374 | 1148 | I DGSTAT'?1A!("YNDU"'[DGSTAT) G CHNGQ | ||
1375 | 1149 | "RTN","DGMSTAPI",175,0) | ||
1376 | 1150 | S DGDATE=$G(DGDATE) | ||
1377 | 1151 | "RTN","DGMSTAPI",176,0) | ||
1378 | 1152 | I DGDATE="" G CHNGQ | ||
1379 | 1153 | "RTN","DGMSTAPI",177,0) | ||
1380 | 1154 | S DGMST=$$GETSTAT(DFN),DGMST=$G(DGMST) | ||
1381 | 1155 | "RTN","DGMSTAPI",178,0) | ||
1382 | 1156 | I +DGMST<1!($P(DGMST,U,2)'=$G(DGSTAT))!($P(DGMST,U,3)'=$G(DGDATE)) S DGCHG=1 | ||
1383 | 1157 | "RTN","DGMSTAPI",179,0) | ||
1384 | 1158 | CHNGQ Q DGCHG | ||
1385 | 1159 | "RTN","DGMSTAPI",180,0) | ||
1386 | 1160 | ; | ||
1387 | 1161 | "RTN","DGMSTAPI",181,0) | ||
1388 | 1162 | SITE(DGSITE) ;Convert a station number into a pointer to the | ||
1389 | 1163 | "RTN","DGMSTAPI",182,0) | ||
1390 | 1164 | ; INSTITUTION file (#4). If called with a null parameter then | ||
1391 | 1165 | "RTN","DGMSTAPI",183,0) | ||
1392 | 1166 | ; the pointer to the INSTITUTION file (#4) of the primary site | ||
1393 | 1167 | "RTN","DGMSTAPI",184,0) | ||
1394 | 1168 | ; will be returned. | ||
1395 | 1169 | "RTN","DGMSTAPI",185,0) | ||
1396 | 1170 | ; | ||
1397 | 1171 | "RTN","DGMSTAPI",186,0) | ||
1398 | 1172 | ; Input | ||
1399 | 1173 | "RTN","DGMSTAPI",187,0) | ||
1400 | 1174 | ; DGSITE - Station number (optional) | ||
1401 | 1175 | "RTN","DGMSTAPI",188,0) | ||
1402 | 1176 | ; | ||
1403 | 1177 | "RTN","DGMSTAPI",189,0) | ||
1404 | 1178 | ; Output | ||
1405 | 1179 | "RTN","DGMSTAPI",190,0) | ||
1406 | 1180 | ; Return Site IEN to INSTITUTION file (#4) | ||
1407 | 1181 | "RTN","DGMSTAPI",191,0) | ||
1408 | 1182 | ; | ||
1409 | 1183 | "RTN","DGMSTAPI",192,0) | ||
1410 | 1184 | S DGSITE=$G(DGSITE) | ||
1411 | 1185 | "RTN","DGMSTAPI",193,0) | ||
1412 | 1186 | I DGSITE]"",$D(^DIC(4,"D",DGSITE)) D | ||
1413 | 1187 | "RTN","DGMSTAPI",194,0) | ||
1414 | 1188 | . S DGSITE=$O(^DIC(4,"D",DGSITE,0)) | ||
1415 | 1189 | "RTN","DGMSTAPI",195,0) | ||
1416 | 1190 | E D | ||
1417 | 1191 | "RTN","DGMSTAPI",196,0) | ||
1418 | 1192 | . S DGSITE=$P($$SITE^VASITE,U) | ||
1419 | 1193 | "RTN","DGMSTAPI",197,0) | ||
1420 | 1194 | I +DGSITE'>0 S DGSITE="" | ||
1421 | 1195 | "RTN","DGMSTAPI",198,0) | ||
1422 | 1196 | Q DGSITE | ||
1423 | 1197 | "RTN","DGMSTAPI",199,0) | ||
1424 | 1198 | ; | ||
1425 | 1199 | "RTN","DGMSTAPI",200,0) | ||
1426 | 1200 | DATE(DFN,DGDT) ;Determine 'current' MST date | ||
1427 | 1201 | "RTN","DGMSTAPI",201,0) | ||
1428 | 1202 | ; | ||
1429 | 1203 | "RTN","DGMSTAPI",202,0) | ||
1430 | 1204 | ; Input | ||
1431 | 1205 | "RTN","DGMSTAPI",203,0) | ||
1432 | 1206 | ; DFN - Patient's DFN | ||
1433 | 1207 | "RTN","DGMSTAPI",204,0) | ||
1434 | 1208 | ; DGDT - FileMan format date | ||
1435 | 1209 | "RTN","DGMSTAPI",205,0) | ||
1436 | 1210 | ; | ||
1437 | 1211 | "RTN","DGMSTAPI",206,0) | ||
1438 | 1212 | ; Output | ||
1439 | 1213 | "RTN","DGMSTAPI",207,0) | ||
1440 | 1214 | ; Return MST effective date | ||
1441 | 1215 | "RTN","DGMSTAPI",208,0) | ||
1442 | 1216 | ; | ||
1443 | 1217 | "RTN","DGMSTAPI",209,0) | ||
1444 | 1218 | N DGMSTDT | ||
1445 | 1219 | "RTN","DGMSTAPI",210,0) | ||
1446 | 1220 | S DFN=$G(DFN) | ||
1447 | 1221 | "RTN","DGMSTAPI",211,0) | ||
1448 | 1222 | I '+DFN D G DATEQ | ||
1449 | 1223 | "RTN","DGMSTAPI",212,0) | ||
1450 | 1224 | . S DGMSTDT="" | ||
1451 | 1225 | "RTN","DGMSTAPI",213,0) | ||
1452 | 1226 | S DGDT=$S(+$G(DGDT)>0:DGDT,1:$$NOW^XLFDT) | ||
1453 | 1227 | "RTN","DGMSTAPI",214,0) | ||
1454 | 1228 | I $P(DGDT,".",2)="" S DGDT=DGDT_".999999" | ||
1455 | 1229 | "RTN","DGMSTAPI",215,0) | ||
1456 | 1230 | S DGMSTDT=$O(^DGMS(29.11,"APDT",DFN,DGDT),-1) | ||
1457 | 1231 | "RTN","DGMSTAPI",216,0) | ||
1458 | 1232 | DATEQ Q DGMSTDT | ||
1459 | 1233 | "RTN","DGMSTAPI",217,0) | ||
1460 | 1234 | ; | ||
1461 | 1235 | "RTN","DGMSTAPI",218,0) | ||
1462 | 1236 | VALID(DFN,DGSTAT,DGDATE,DGPROV,DGSITE,DGERR) ;Validate fields before filing | ||
1463 | 1237 | "RTN","DGMSTAPI",219,0) | ||
1464 | 1238 | ; Input: | ||
1465 | 1239 | "RTN","DGMSTAPI",220,0) | ||
1466 | 1240 | ; DFN - [REQUIRED] - ien of Patient | ||
1467 | 1241 | "RTN","DGMSTAPI",221,0) | ||
1468 | 1242 | ; DGSTAT - [REQUIRED] - MST Status code, "Y,N,D,U" | ||
1469 | 1243 | "RTN","DGMSTAPI",222,0) | ||
1470 | 1244 | ; DGDATE - [REQUIRED] - Date of MST status change[FileMan Internal] | ||
1471 | 1245 | "RTN","DGMSTAPI",223,0) | ||
1472 | 1246 | ; DGPROV - [optional] - IEN of Provider making determination | ||
1473 | 1247 | "RTN","DGMSTAPI",224,0) | ||
1474 | 1248 | ; DGSITE - [optional] - IEN pointer of the INSTITUTION file | ||
1475 | 1249 | "RTN","DGMSTAPI",225,0) | ||
1476 | 1250 | ; DGERR - [optional] - error parameter passed by reference | ||
1477 | 1251 | "RTN","DGMSTAPI",226,0) | ||
1478 | 1252 | ; Output: | ||
1479 | 1253 | "RTN","DGMSTAPI",227,0) | ||
1480 | 1254 | ; Function Value - Returns 1 - if validation checks passed | ||
1481 | 1255 | "RTN","DGMSTAPI",228,0) | ||
1482 | 1256 | ; 0 - if validation checks failed | ||
1483 | 1257 | "RTN","DGMSTAPI",229,0) | ||
1484 | 1258 | ; DGERR - an error message if validation checks fail | ||
1485 | 1259 | "RTN","DGMSTAPI",230,0) | ||
1486 | 1260 | ; init variables | ||
1487 | 1261 | "RTN","DGMSTAPI",231,0) | ||
1488 | 1262 | N I,DGFILE,DGFLD,DGMSG,DGSTR,DGVAL,DGVAR,DGX,VALID | ||
1489 | 1263 | "RTN","DGMSTAPI",232,0) | ||
1490 | 1264 | S DGFILE=29.11,VALID=1,DGMSG=" IS REQUIRED" | ||
1491 | 1265 | "RTN","DGMSTAPI",233,0) | ||
1492 | 1266 | ; Quit DO block if invalid condition found | ||
1493 | 1267 | "RTN","DGMSTAPI",234,0) | ||
1494 | 1268 | ; Check for [REQUIRED] fields | ||
1495 | 1269 | "RTN","DGMSTAPI",235,0) | ||
1496 | 1270 | D | ||
1497 | 1271 | "RTN","DGMSTAPI",236,0) | ||
1498 | 1272 | . I DFN="" D MSG(DGFILE,2,DGMSG,.DGERR) Q ;pat ien | ||
1499 | 1273 | "RTN","DGMSTAPI",237,0) | ||
1500 | 1274 | . I DGSTAT="" D MSG(DGFILE,3,DGMSG,.DGERR) Q ;mst status code | ||
1501 | 1275 | "RTN","DGMSTAPI",238,0) | ||
1502 | 1276 | . I DGDATE="" D MSG(DGFILE,.01,DGMSG,.DGERR) Q ;dt chg status | ||
1503 | 1277 | "RTN","DGMSTAPI",239,0) | ||
1504 | 1278 | .; | ||
1505 | 1279 | "RTN","DGMSTAPI",240,0) | ||
1506 | 1280 | .; Check for valid FIELD values | ||
1507 | 1281 | "RTN","DGMSTAPI",241,0) | ||
1508 | 1282 | . S DGMSG=" IS NOT VALID" | ||
1509 | 1283 | "RTN","DGMSTAPI",242,0) | ||
1510 | 1284 | .; need to strip off the 'seconds' to pass the CHK^DIE() call... | ||
1511 | 1285 | "RTN","DGMSTAPI",243,0) | ||
1512 | 1286 | . I DGDATE["." N DGSECS S DGSECS=$E($P(DGDATE,".",2),5,6) I DGSECS'="" I DGSECS<0!(DGSECS>60) D MSG(DGFILE,.01,DGMSG,.DGERR) Q | ||
1513 | 1287 | "RTN","DGMSTAPI",244,0) | ||
1514 | 1288 | . N DGDATEX S DGDATEX=DGDATE | ||
1515 | 1289 | "RTN","DGMSTAPI",245,0) | ||
1516 | 1290 | . I DGDATEX["." S DGDATEX=$P(DGDATEX,".")_"."_$E($P(DGDATEX,".",2),1,4) | ||
1517 | 1291 | "RTN","DGMSTAPI",246,0) | ||
1518 | 1292 | . I $E($P(DGDATEX,".",2),1,4)="0000" S DGDATEX=$P(DGDATEX,".")_".1" | ||
1519 | 1293 | "RTN","DGMSTAPI",247,0) | ||
1520 | 1294 | . S DGSTR=".01;DGDATEX^2;DFN^3;DGSTAT^4;DGPROV^5;DUZ^6;DGSITE" | ||
1521 | 1295 | "RTN","DGMSTAPI",248,0) | ||
1522 | 1296 | .; | ||
1523 | 1297 | "RTN","DGMSTAPI",249,0) | ||
1524 | 1298 | . F I=1:1:$L(DGSTR,U) S DGX=$P(DGSTR,U,I) Q:DGX="" D Q:'VALID | ||
1525 | 1299 | "RTN","DGMSTAPI",250,0) | ||
1526 | 1300 | .. S DGFLD=$P(DGX,";"),DGVAR=$P(DGX,";",2),DGVAL=@DGVAR | ||
1527 | 1301 | "RTN","DGMSTAPI",251,0) | ||
1528 | 1302 | .. Q:DGVAL="" | ||
1529 | 1303 | "RTN","DGMSTAPI",252,0) | ||
1530 | 1304 | .. S VALID=$$TESTVAL(DGFILE,DGFLD,DGVAL) | ||
1531 | 1305 | "RTN","DGMSTAPI",253,0) | ||
1532 | 1306 | .. D:'VALID MSG(DGFILE,DGFLD,DGMSG,.DGERR) | ||
1533 | 1307 | "RTN","DGMSTAPI",254,0) | ||
1534 | 1308 | Q VALID | ||
1535 | 1309 | "RTN","DGMSTAPI",255,0) | ||
1536 | 1310 | ; | ||
1537 | 1311 | "RTN","DGMSTAPI",256,0) | ||
1538 | 1312 | MSG(DGFIL,DGFLD,DGMSG,DGERR) ; error message setup | ||
1539 | 1313 | "RTN","DGMSTAPI",257,0) | ||
1540 | 1314 | ; Input: | ||
1541 | 1315 | "RTN","DGMSTAPI",258,0) | ||
1542 | 1316 | ; DGFIL - file number | ||
1543 | 1317 | "RTN","DGMSTAPI",259,0) | ||
1544 | 1318 | ; DGFLD - field number of file | ||
1545 | 1319 | "RTN","DGMSTAPI",260,0) | ||
1546 | 1320 | ; DGMSG - message type verbiage - " IS REQUIRED" or " IS NOT VALID" | ||
1547 | 1321 | "RTN","DGMSTAPI",261,0) | ||
1548 | 1322 | ; DGERR - error parameter passed by reference | ||
1549 | 1323 | "RTN","DGMSTAPI",262,0) | ||
1550 | 1324 | ; Output: | ||
1551 | 1325 | "RTN","DGMSTAPI",263,0) | ||
1552 | 1326 | ; DGERR - error message | ||
1553 | 1327 | "RTN","DGMSTAPI",264,0) | ||
1554 | 1328 | S DGERR=$$GET1^DID(DGFIL,DGFLD,,"LABEL")_DGMSG | ||
1555 | 1329 | "RTN","DGMSTAPI",265,0) | ||
1556 | 1330 | Q | ||
1557 | 1331 | "RTN","DGMSTAPI",266,0) | ||
1558 | 1332 | ; | ||
1559 | 1333 | "RTN","DGMSTAPI",267,0) | ||
1560 | 1334 | TESTVAL(DGFIL,DGFLD,DGVAL) ; Determine if a field value is valid. | ||
1561 | 1335 | "RTN","DGMSTAPI",268,0) | ||
1562 | 1336 | ; Input: | ||
1563 | 1337 | "RTN","DGMSTAPI",269,0) | ||
1564 | 1338 | ; DGFIL - file number | ||
1565 | 1339 | "RTN","DGMSTAPI",270,0) | ||
1566 | 1340 | ; DGFLD - field number of file | ||
1567 | 1341 | "RTN","DGMSTAPI",271,0) | ||
1568 | 1342 | ; DGVAL - field value to be validated | ||
1569 | 1343 | "RTN","DGMSTAPI",272,0) | ||
1570 | 1344 | ; Output: | ||
1571 | 1345 | "RTN","DGMSTAPI",273,0) | ||
1572 | 1346 | ; Function value: Returns 1 if field is valid | ||
1573 | 1347 | "RTN","DGMSTAPI",274,0) | ||
1574 | 1348 | ; 0 if validation fails | ||
1575 | 1349 | "RTN","DGMSTAPI",275,0) | ||
1576 | 1350 | N DGVALEX,DGRSLT,VALID | ||
1577 | 1351 | "RTN","DGMSTAPI",276,0) | ||
1578 | 1352 | S VALID=1 | ||
1579 | 1353 | "RTN","DGMSTAPI",277,0) | ||
1580 | 1354 | I DGVAL'="" D | ||
1581 | 1355 | "RTN","DGMSTAPI",278,0) | ||
1582 | 1356 | . S DGVALEX=$$EXTERNAL^DILFD(DGFIL,DGFLD,"F",DGVAL) | ||
1583 | 1357 | "RTN","DGMSTAPI",279,0) | ||
1584 | 1358 | . I DGVALEX="" S VALID=0 Q ; no external value, not valid | ||
1585 | 1359 | "RTN","DGMSTAPI",280,0) | ||
1586 | 1360 | . I $$GET1^DID(DGFIL,DGFLD,"","TYPE")'="POINTER" D | ||
1587 | 1361 | "RTN","DGMSTAPI",281,0) | ||
1588 | 1362 | .. D CHK^DIE(DGFIL,DGFLD,,DGVALEX,.DGRSLT) I DGRSLT="^" S VALID=0 | ||
1589 | 1363 | "RTN","DGMSTAPI",282,0) | ||
1590 | 1364 | Q VALID | ||
1591 | 1365 | "RTN","GMRCA2") | ||
1592 | 1366 | 0^35^B10634 | ||
1593 | 1367 | "RTN","GMRCA2",1,0) | ||
1594 | 1368 | GMRCA2 ;SLC/KCM,DLT,MSC/JDA - Select prompt for processing actions ;27APR2009 | ||
1595 | 1369 | "RTN","GMRCA2",2,0) | ||
1596 | 1370 | ;;3.0;CONSULT/REQUEST TRACKING;**1,4,MSC**;DEC 27, 1997 | ||
1597 | 1371 | "RTN","GMRCA2",3,0) | ||
1598 | 1372 | SELECT(GMRCO) ; Select the consult to process | ||
1599 | 1373 | "RTN","GMRCA2",4,0) | ||
1600 | 1374 | ;This utility checks the GMRCO variable against the selection list | ||
1601 | 1375 | "RTN","GMRCA2",5,0) | ||
1602 | 1376 | ; Input variable used: | ||
1603 | 1377 | "RTN","GMRCA2",6,0) | ||
1604 | 1378 | ; BLK, LNCT, GMRCO | ||
1605 | 1379 | "RTN","GMRCA2",7,0) | ||
1606 | 1380 | ; GMRC("NMBR") | ||
1607 | 1381 | "RTN","GMRCA2",8,0) | ||
1608 | 1382 | ; Output variables returned: | ||
1609 | 1383 | "RTN","GMRCA2",9,0) | ||
1610 | 1384 | ; GMRCQUT=1 if no consult was selected | ||
1611 | 1385 | "RTN","GMRCA2",10,0) | ||
1612 | 1386 | ; GMRCQUT is not defined on return when selection made | ||
1613 | 1387 | "RTN","GMRCA2",11,0) | ||
1614 | 1388 | ; GMRCO= consult selected from list | ||
1615 | 1389 | "RTN","GMRCA2",12,0) | ||
1616 | 1390 | START | ||
1617 | 1391 | "RTN","GMRCA2",13,0) | ||
1618 | 1392 | K GMRCQUT,GMRCSEL | ||
1619 | 1393 | "RTN","GMRCA2",14,0) | ||
1620 | 1394 | N GMRCAGN | ||
1621 | 1395 | "RTN","GMRCA2",15,0) | ||
1622 | 1396 | I '$L($G(GMRCO)) D Q:$D(GMRCQUT) G:$D(GMRCAGN) START | ||
1623 | 1397 | "RTN","GMRCA2",16,0) | ||
1624 | 1398 | .;use the highlighted number if defined | ||
1625 | 1399 | "RTN","GMRCA2",17,0) | ||
1626 | 1400 | .I $D(GMRC("NMBR")) S GMRCSEL=GMRC("NMBR") | ||
1627 | 1401 | "RTN","GMRCA2",18,0) | ||
1628 | 1402 | .I '$D(GMRCSEL),$D(LNCT),LNCT=1 S GMRCSEL=LNCT | ||
1629 | 1403 | "RTN","GMRCA2",19,0) | ||
1630 | 1404 | .I $S('+$G(GMRCSEL):1,+GMRCSEL<1:1,+GMRCSEL>BLK:1,GMRCSEL="":1,1:0) K GMRCSEL D:+$G(GMRC("NMBR")) AGAIN^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR") | ||
1631 | 1405 | "RTN","GMRCA2",20,0) | ||
1632 | 1406 | .I '+$G(GMRCSEL) D SEL I $S($D(DTOUT):1,$D(DIROUT):1,$D(GMRCQUT):1,'+GMRCSEL:1,1:0) K GMRCSEL S GMRCQUT=1 Q | ||
1633 | 1407 | "RTN","GMRCA2",21,0) | ||
1634 | 1408 | .I $S(+GMRCSEL<1:1,GMRCSEL>BLK:1,1:0) W !,"Select a consult listed in the number range 1 to "_BLK S GMRCAGN=1 Q | ||
1635 | 1409 | "RTN","GMRCA2",22,0) | ||
1636 | 1410 | .S GMRCO=$O(^TMP("GMRCR",$J,"CS","AD",GMRCSEL,GMRCSEL,0)) | ||
1637 | 1411 | "RTN","GMRCA2",23,0) | ||
1638 | 1412 | .I '+GMRCO D | ||
1639 | 1413 | "RTN","GMRCA2",24,0) | ||
1640 | 1414 | .. S GMRCQUT=1 | ||
1641 | 1415 | "RTN","GMRCA2",25,0) | ||
1642 | 1416 | .. W !,$C(7),"Select a consult by entering its listed number between 1 and "_LNCT_"." | ||
1643 | 1417 | "RTN","GMRCA2",26,0) | ||
1644 | 1418 | .. K GMRCO,GMRCSEL | ||
1645 | 1419 | "RTN","GMRCA2",27,0) | ||
1646 | 1420 | . Q | ||
1647 | 1421 | "RTN","GMRCA2",28,0) | ||
1648 | 1422 | Q | ||
1649 | 1423 | "RTN","GMRCA2",29,0) | ||
1650 | 1424 | ; | ||
1651 | 1425 | "RTN","GMRCA2",30,0) | ||
1652 | 1426 | SEL ;Select order number(s) exit: GMRCSEL | ||
1653 | 1427 | "RTN","GMRCA2",31,0) | ||
1654 | 1428 | I $D(GMRC("NMBR")) S GMRCSEL=GMRC("NMBR") Q | ||
1655 | 1429 | "RTN","GMRCA2",32,0) | ||
1656 | 1430 | I '$D(^TMP("GMRCR",$J,"CS","AD")) W !,"No orders to select.",! S GMRCQUT=1,GMRCSEL="" Q | ||
1657 | 1431 | "RTN","GMRCA2",33,0) | ||
1658 | 1432 | I '$O(^TMP("GMRCR",$J,"CS","AD")),BLK=1 S GMRCSEL=BLK Q | ||
1659 | 1433 | "RTN","GMRCA2",34,0) | ||
1660 | 1434 | S GMRCSEL="" W !,"CHOOSE No. 1-",BLK,": " R X:DTIME S:X="^^" DIROUT=1 I '$T!(X["^") S (DTOUT,GMRCQUT)=1 Q | ||
1661 | 1435 | "RTN","GMRCA2",35,0) | ||
1662 | 1436 | I X["?" D SELHELP G SEL | ||
1663 | 1437 | "RTN","GMRCA2",36,0) | ||
1664 | 1438 | I X="" S GMRCQUT=1 Q | ||
1665 | 1439 | "RTN","GMRCA2",37,0) | ||
1666 | 1440 | I X'?.3N W $C(7)," ?? Enter the number from the far left of the list." G SEL | ||
1667 | 1441 | "RTN","GMRCA2",38,0) | ||
1668 | 1442 | I $S(X>BLK:1,X<1:1,1:0) D SELHELP G SEL | ||
1669 | 1443 | "RTN","GMRCA2",39,0) | ||
1670 | 1444 | S GMRCSEL=X | ||
1671 | 1445 | "RTN","GMRCA2",40,0) | ||
1672 | 1446 | Q | ||
1673 | 1447 | "RTN","GMRCA2",41,0) | ||
1674 | 1448 | SELHELP ;Help to select a valid entry | ||
1675 | 1449 | "RTN","GMRCA2",42,0) | ||
1676 | 1450 | W !,"Select a request by typing the number from the left column and pressing <ENTER>.",! | ||
1677 | 1451 | "RTN","GMRCA2",43,0) | ||
1678 | 1452 | Q | ||
1679 | 1453 | "RTN","GMRCA2",44,0) | ||
1680 | 1454 | UP ;Convert lower to upper case entry: X exit: X | ||
1681 | 1455 | "RTN","GMRCA2",45,0) | ||
1682 | 1456 | F %=1:1:$L(X) I $E(X,%)?1L S X=$E(X,1,%-1)_$C($A(X,%)-32)_$E(X,%+1,99) | ||
1683 | 1457 | "RTN","GMRCA2",46,0) | ||
1684 | 1458 | Q | ||
1685 | 1459 | "RTN","HLCSLNCH") | ||
1686 | 1460 | 0^18^B37355917 | ||
1687 | 1461 | "RTN","HLCSLNCH",1,0) | ||
1688 | 1462 | HLCSLNCH ;ALB/MTC/JC MSC/JDA - START AND STOP THE LLP ;13APR2009 | ||
1689 | 1463 | "RTN","HLCSLNCH",2,0) | ||
1690 | 1464 | ;;1.6;HEALTH LEVEL SEVEN;**6,19,43,49,57,75,84,109,MSC**;Oct 13, 1995 | ||
1691 | 1465 | "RTN","HLCSLNCH",3,0) | ||
1692 | 1466 | ; | ||
1693 | 1467 | "RTN","HLCSLNCH",4,0) | ||
1694 | 1468 | ;This program is callable from a menu | ||
1695 | 1469 | "RTN","HLCSLNCH",5,0) | ||
1696 | 1470 | ;It allows the user to Start and Stop the Lower Layer | ||
1697 | 1471 | "RTN","HLCSLNCH",6,0) | ||
1698 | 1472 | ;Protocol in the Background or in the foreground | ||
1699 | 1473 | "RTN","HLCSLNCH",7,0) | ||
1700 | 1474 | ; | ||
1701 | 1475 | "RTN","HLCSLNCH",8,0) | ||
1702 | 1476 | ;Required or Optional INPUT PARAMETERS | ||
1703 | 1477 | "RTN","HLCSLNCH",9,0) | ||
1704 | 1478 | ; None | ||
1705 | 1479 | "RTN","HLCSLNCH",10,0) | ||
1706 | 1480 | ; | ||
1707 | 1481 | "RTN","HLCSLNCH",11,0) | ||
1708 | 1482 | ; | ||
1709 | 1483 | "RTN","HLCSLNCH",12,0) | ||
1710 | 1484 | ;Output variables | ||
1711 | 1485 | "RTN","HLCSLNCH",13,0) | ||
1712 | 1486 | ; HLDP=IEN of Logical Link in file #870 | ||
1713 | 1487 | "RTN","HLCSLNCH",14,0) | ||
1714 | 1488 | ;(optional)HLTRACE=if SET it launches the LLP in the Foreground | ||
1715 | 1489 | "RTN","HLCSLNCH",15,0) | ||
1716 | 1490 | ;(optional) ZTSK=if defined LLP was launched in the | ||
1717 | 1491 | "RTN","HLCSLNCH",16,0) | ||
1718 | 1492 | ;background | ||
1719 | 1493 | "RTN","HLCSLNCH",17,0) | ||
1720 | 1494 | ; | ||
1721 | 1495 | "RTN","HLCSLNCH",18,0) | ||
1722 | 1496 | ; | ||
1723 | 1497 | "RTN","HLCSLNCH",19,0) | ||
1724 | 1498 | START ; Start up the lower level protocol | ||
1725 | 1499 | "RTN","HLCSLNCH",20,0) | ||
1726 | 1500 | N DIC,DIRUT,DTOUT,DUOUT,HLDP,HLDAPP,HLJ,HLQUIT,HLTRACE | ||
1727 | 1501 | "RTN","HLCSLNCH",21,0) | ||
1728 | 1502 | N HLPARM0,HLPARM4,HLTYPTR,HLBGR,X,Y,ZTCPU,ZTSK,ZTRTN,ZTDESC | ||
1729 | 1503 | "RTN","HLCSLNCH",22,0) | ||
1730 | 1504 | W !!,"This option is used to launch the lower level protocol for the" | ||
1731 | 1505 | "RTN","HLCSLNCH",23,0) | ||
1732 | 1506 | W !,"appropriate device. Please select the node with which you want" | ||
1733 | 1507 | "RTN","HLCSLNCH",24,0) | ||
1734 | 1508 | W !,"to communicate",! | ||
1735 | 1509 | "RTN","HLCSLNCH",25,0) | ||
1736 | 1510 | S DIC="^HLCS(870,",DIC(0)="QEAMZ" D ^DIC G:Y<0 STARTQ | ||
1737 | 1511 | "RTN","HLCSLNCH",26,0) | ||
1738 | 1512 | S HLDP=+Y,HLDAPP=Y(0,0),HLTYPTR=+$P(Y(0),U,3),HLPARM0=Y(0) | ||
1739 | 1513 | "RTN","HLCSLNCH",27,0) | ||
1740 | 1514 | ;-- check if parameter have been setup | ||
1741 | 1515 | "RTN","HLCSLNCH",28,0) | ||
1742 | 1516 | ;-- check for LLP type | ||
1743 | 1517 | "RTN","HLCSLNCH",29,0) | ||
1744 | 1518 | I 'HLTYPTR W !,$C(7),"A Lower Layer Protocol must be selected before start-up can occur." G STARTQ | ||
1745 | 1519 | "RTN","HLCSLNCH",30,0) | ||
1746 | 1520 | ;-- get TCP information | ||
1747 | 1521 | "RTN","HLCSLNCH",31,0) | ||
1748 | 1522 | S HLPARM4=$G(^HLCS(870,HLDP,400)) | ||
1749 | 1523 | "RTN","HLCSLNCH",32,0) | ||
1750 | 1524 | ;-- get routine (background job for LLP) | ||
1751 | 1525 | "RTN","HLCSLNCH",33,0) | ||
1752 | 1526 | S HLBGR=$G(^HLCS(869.1,HLTYPTR,100)) | ||
1753 | 1527 | "RTN","HLCSLNCH",34,0) | ||
1754 | 1528 | ;-- get environment check routine (HLQUIT should be defined in fails) | ||
1755 | 1529 | "RTN","HLCSLNCH",35,0) | ||
1756 | 1530 | S HLENV=$G(^HLCS(869.1,HLTYPTR,200)) | ||
1757 | 1531 | "RTN","HLCSLNCH",36,0) | ||
1758 | 1532 | ; | ||
1759 | 1533 | "RTN","HLCSLNCH",37,0) | ||
1760 | 1534 | I HLBGR="" W !,$C(7),"No routine has been specified for this LLP." G STARTQ | ||
1761 | 1535 | "RTN","HLCSLNCH",38,0) | ||
1762 | 1536 | ; | ||
1763 | 1537 | "RTN","HLCSLNCH",39,0) | ||
1764 | 1538 | ;-- execute environment check routine if HLQUIT is defined then terminate | ||
1765 | 1539 | "RTN","HLCSLNCH",40,0) | ||
1766 | 1540 | I HLENV'="" X HLENV G:$D(HLQUIT) STARTQ | ||
1767 | 1541 | "RTN","HLCSLNCH",41,0) | ||
1768 | 1542 | ;Multi-Servers, only enable the link if not OpenM | ||
1769 | 1543 | "RTN","HLCSLNCH",42,0) | ||
1770 | 1544 | I $P(HLPARM4,U,3)="M",$$NOTMULTI D G STARTQ | ||
1771 | 1545 | "RTN","HLCSLNCH",43,0) | ||
1772 | 1546 | . W !,$C(7),"This LLP is a multi-threaded server. It is controlled by external service, i.e. TCPIP/UCX. You must use the external service to start this LLP." | ||
1773 | 1547 | "RTN","HLCSLNCH",44,0) | ||
1774 | 1548 | . Q | ||
1775 | 1549 | "RTN","HLCSLNCH",45,0) | ||
1776 | 1550 | ; | ||
1777 | 1551 | "RTN","HLCSLNCH",46,0) | ||
1778 | 1552 | I $P(HLPARM0,U,10) W !,$C(7),"The LLP was last started on ",$$DAT2^HLUTIL1($P(HLPARM0,U,10)),"." G STP1:$P(HLPARM0,U,5)'="Error" | ||
1779 | 1553 | "RTN","HLCSLNCH",47,0) | ||
1780 | 1554 | I $P(HLPARM0,U,11) W !,"The LLP was last shutdown on ",$$DAT2^HLUTIL1($P(HLPARM0,U,11)),"." | ||
1781 | 1555 | "RTN","HLCSLNCH",48,0) | ||
1782 | 1556 | I $P(HLPARM0,U,5)'="Error",'($P(HLPARM4,U,3)="C"&("N"[$P(HLPARM4,U,4))),$P(HLPARM0,U,10)]""&($P(HLPARM0,U,11)=""),$P(HLPARM0,U,12) W !,"The LLP appears to be online already !" | ||
1783 | 1557 | "RTN","HLCSLNCH",49,0) | ||
1784 | 1558 | I $$TASK^HLUTIL1($P(HLPARM0,U,12)) D G STARTQ | ||
1785 | 1559 | "RTN","HLCSLNCH",50,0) | ||
1786 | 1560 | . W !,$C(7),"NOTE: The lower level protocol for this application is already running." | ||
1787 | 1561 | "RTN","HLCSLNCH",51,0) | ||
1788 | 1562 | I $P(HLPARM4,U,3)="C"&("N"[$P(HLPARM4,U,4)) D G STARTQ | ||
1789 | 1563 | "RTN","HLCSLNCH",52,0) | ||
1790 | 1564 | .;4=status 9=Time Started, 10=Time Stopped, 11=Task Number | ||
1791 | 1565 | "RTN","HLCSLNCH",53,0) | ||
1792 | 1566 | .;14=Shutdown LLP, 3=Device Type, 18=Gross Errors | ||
1793 | 1567 | "RTN","HLCSLNCH",54,0) | ||
1794 | 1568 | .N HLJ,X | ||
1795 | 1569 | "RTN","HLCSLNCH",55,0) | ||
1796 | 1570 | .I $P(HLPARM0,U,15)=0 W !,"This LLP is already enabled!" Q | ||
1797 | 1571 | "RTN","HLCSLNCH",56,0) | ||
1798 | 1572 | .L +^HLCS(870,HLDP,0):2 | ||
1799 | 1573 | "RTN","HLCSLNCH",57,0) | ||
1800 | 1574 | .E W !,$C(7),"Unable to enable this LLP !" Q | ||
1801 | 1575 | "RTN","HLCSLNCH",58,0) | ||
1802 | 1576 | .S X="HLJ(870,"""_HLDP_","")" | ||
1803 | 1577 | "RTN","HLCSLNCH",59,0) | ||
1804 | 1578 | .S @X@(4)="Enabled",@X@(9)=$$NOW^XLFDT,@X@(14)=0 | ||
1805 | 1579 | "RTN","HLCSLNCH",60,0) | ||
1806 | 1580 | .D FILE^HLDIE("","HLJ","","START","HLCSLNCH") ;HL*1.6*109 | ||
1807 | 1581 | "RTN","HLCSLNCH",61,0) | ||
1808 | 1582 | .L -^HLCS(870,HLDP,0) | ||
1809 | 1583 | "RTN","HLCSLNCH",62,0) | ||
1810 | 1584 | .W !,"This LLP has been enabled!" | ||
1811 | 1585 | "RTN","HLCSLNCH",63,0) | ||
1812 | 1586 | .Q | ||
1813 | 1587 | "RTN","HLCSLNCH",64,0) | ||
1814 | 1588 | I $P(HLPARM4,U,6),$D(^%ZIS(14.7,+$P(HLPARM4,U,6),0)) S ZTCPU=$P(^(0),U) W !,"This LLP will start on node ",ZTCPU," if it is run in the Background.",! | ||
1815 | 1589 | "RTN","HLCSLNCH",65,0) | ||
1816 | 1590 | ; | ||
1817 | 1591 | "RTN","HLCSLNCH",66,0) | ||
1818 | 1592 | W ! S DIR(0)="SM^F:FOREGROUND;B:BACKGROUND;Q:QUIT" | ||
1819 | 1593 | "RTN","HLCSLNCH",67,0) | ||
1820 | 1594 | S DIR("A")="Method for running the receiver" | ||
1821 | 1595 | "RTN","HLCSLNCH",68,0) | ||
1822 | 1596 | S DIR("B")="B" | ||
1823 | 1597 | "RTN","HLCSLNCH",69,0) | ||
1824 | 1598 | S DIR("?",1)="Enter F for Foreground (and trace)" | ||
1825 | 1599 | "RTN","HLCSLNCH",70,0) | ||
1826 | 1600 | S DIR("?",2)=" B for Background (normal) or" | ||
1827 | 1601 | "RTN","HLCSLNCH",71,0) | ||
1828 | 1602 | S DIR("?")=" Q to quit without starting the receiver" | ||
1829 | 1603 | "RTN","HLCSLNCH",72,0) | ||
1830 | 1604 | D ^DIR K DIR | ||
1831 | 1605 | "RTN","HLCSLNCH",73,0) | ||
1832 | 1606 | Q:(Y=U)!(Y="Q") | ||
1833 | 1607 | "RTN","HLCSLNCH",74,0) | ||
1834 | 1608 | ; | ||
1835 | 1609 | "RTN","HLCSLNCH",75,0) | ||
1836 | 1610 | S HLX=$G(^HLCS(870,HLDP,0)) | ||
1837 | 1611 | "RTN","HLCSLNCH",76,0) | ||
1838 | 1612 | ;-- foreground | ||
1839 | 1613 | "RTN","HLCSLNCH",77,0) | ||
1840 | 1614 | I Y="F" S HLTRACE=1 D G STARTQ | ||
1841 | 1615 | "RTN","HLCSLNCH",78,0) | ||
1842 | 1616 | . X HLBGR | ||
1843 | 1617 | "RTN","HLCSLNCH",79,0) | ||
1844 | 1618 | ;-- background | ||
1845 | 1619 | "RTN","HLCSLNCH",80,0) | ||
1846 | 1620 | I Y="B" D G STARTQ | ||
1847 | 1621 | "RTN","HLCSLNCH",81,0) | ||
1848 | 1622 | . S ZTRTN=$P(HLBGR," ",2),HLTRACE="",ZTIO="",ZTDTH=$H | ||
1849 | 1623 | "RTN","HLCSLNCH",82,0) | ||
1850 | 1624 | . S ZTDESC=HLDAPP_" Low Level Protocol",ZTSAVE("HLDP")="" | ||
1851 | 1625 | "RTN","HLCSLNCH",83,0) | ||
1852 | 1626 | . D ^%ZTLOAD | ||
1853 | 1627 | "RTN","HLCSLNCH",84,0) | ||
1854 | 1628 | . W !,$S($D(ZTSK):"Job was queued as "_ZTSK_".",1:"Unable to queue job.") | ||
1855 | 1629 | "RTN","HLCSLNCH",85,0) | ||
1856 | 1630 | ; | ||
1857 | 1631 | "RTN","HLCSLNCH",86,0) | ||
1858 | 1632 | Q | ||
1859 | 1633 | "RTN","HLCSLNCH",87,0) | ||
1860 | 1634 | ; | ||
1861 | 1635 | "RTN","HLCSLNCH",88,0) | ||
1862 | 1636 | ; | ||
1863 | 1637 | "RTN","HLCSLNCH",89,0) | ||
1864 | 1638 | STARTQ ; | ||
1865 | 1639 | "RTN","HLCSLNCH",90,0) | ||
1866 | 1640 | I $G(POP) W !,?5,"-Unable to Open the Device !",!,!,?6,"Check that Port is Logged Out, and that the",!,?6,"Lower Level Protocol is not Already Running." | ||
1867 | 1641 | "RTN","HLCSLNCH",91,0) | ||
1868 | 1642 | Q | ||
1869 | 1643 | "RTN","HLCSLNCH",92,0) | ||
1870 | 1644 | ; | ||
1871 | 1645 | "RTN","HLCSLNCH",93,0) | ||
1872 | 1646 | STOP ; Shut down a lower level protocol.. | ||
1873 | 1647 | "RTN","HLCSLNCH",94,0) | ||
1874 | 1648 | N DIC,DIRUT,DTOUT,DUOUT,HLDP,HLDAPP,HLJ,HLPARM0,HLPARM4,X,Y | ||
1875 | 1649 | "RTN","HLCSLNCH",95,0) | ||
1876 | 1650 | W !!,"This option is used to shut down the lower level protocol for the" | ||
1877 | 1651 | "RTN","HLCSLNCH",96,0) | ||
1878 | 1652 | W !,"appropriate device. Please select the link which you would" | ||
1879 | 1653 | "RTN","HLCSLNCH",97,0) | ||
1880 | 1654 | W !,"like to shutdown.",! | ||
1881 | 1655 | "RTN","HLCSLNCH",98,0) | ||
1882 | 1656 | S DIC="^HLCS(870,",DIC(0)="QEAMZ" D ^DIC K DIC Q:Y<0 | ||
1883 | 1657 | "RTN","HLCSLNCH",99,0) | ||
1884 | 1658 | S HLDP=+Y,HLDAPP=Y(0,0),HLPARM0=Y(0),HLPARM4=$G(^HLCS(870,HLDP,400)) | ||
1885 | 1659 | "RTN","HLCSLNCH",100,0) | ||
1886 | 1660 | I $P(HLPARM4,U,3)="M",$$NOTMULTI D Q | ||
1887 | 1661 | "RTN","HLCSLNCH",101,0) | ||
1888 | 1662 | . W !,$C(7),"This LLP is a multi-threaded server. It is controlled by external service, i.e. UCX. You must use the external service to disable this LLP." | ||
1889 | 1663 | "RTN","HLCSLNCH",102,0) | ||
1890 | 1664 | . Q | ||
1891 | 1665 | "RTN","HLCSLNCH",103,0) | ||
1892 | 1666 | ; | ||
1893 | 1667 | "RTN","HLCSLNCH",104,0) | ||
1894 | 1668 | I $P(HLPARM0,U,15) W !,$C(7),"The lower level protocol is already ",$P(HLPARM0,U,5),"." Q | ||
1895 | 1669 | "RTN","HLCSLNCH",105,0) | ||
1896 | 1670 | I $P(HLPARM0,U,10) W !,$C(7),"The lower level protocol was started on ",$$DAT2^HLUTIL1($P(HLPARM0,U,10)),"." | ||
1897 | 1671 | "RTN","HLCSLNCH",106,0) | ||
1898 | 1672 | STP1 ; | ||
1899 | 1673 | "RTN","HLCSLNCH",107,0) | ||
1900 | 1674 | W ! S DIR(0)="Y",DIR("A")="Okay to shut down this job" D ^DIR K DIR | ||
1901 | 1675 | "RTN","HLCSLNCH",108,0) | ||
1902 | 1676 | I 'Y!($D(DIRUT))!($D(DUOUT)) W !!,"The job will not be shut down." Q | ||
1903 | 1677 | "RTN","HLCSLNCH",109,0) | ||
1904 | 1678 | S ; | ||
1905 | 1679 | "RTN","HLCSLNCH",110,0) | ||
1906 | 1680 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
1907 | 1681 | "RTN","HLCSLNCH",111,0) | ||
1908 | 1682 | ;4=status,10=Time Stopped,9=Time Started,11=Task Number,3=Device Type,14=shutdown | ||
1909 | 1683 | "RTN","HLCSLNCH",112,0) | ||
1910 | 1684 | S X="HLJ(870,"""_HLDP_","")",@X@(4)="Halting",@X@(10)=$$NOW^XLFDT,(@X@(11),@X@(9))="@",@X@(14)=1 | ||
1911 | 1685 | "RTN","HLCSLNCH",113,0) | ||
1912 | 1686 | I $P(HLPARM4,U,3)="C"&("N"[$P(HLPARM4,U,4)),'$P(HLPARM0,U,12) S @X@(4)="Shutdown" | ||
1913 | 1687 | "RTN","HLCSLNCH",114,0) | ||
1914 | 1688 | D FILE^HLDIE("","HLJ","","STOP","HLCSLNCH") ; HL*1.6*109 | ||
1915 | 1689 | "RTN","HLCSLNCH",115,0) | ||
1916 | 1690 | I ^%ZOSF("OS")["OpenM",(($P(HLPARM4,U,3)="M"&($$OS^%ZOSV'["VMS"))!($P(HLPARM4,U,3)="S")) D | ||
1917 | 1691 | "RTN","HLCSLNCH",116,0) | ||
1918 | 1692 | . ;pass task number to stop listener | ||
1919 | 1693 | "RTN","HLCSLNCH",117,0) | ||
1920 | 1694 | . S:$P(HLPARM0,U,12) X=$$ASKSTOP^%ZTLOAD(+$P(HLPARM0,U,12)) | ||
1921 | 1695 | "RTN","HLCSLNCH",118,0) | ||
1922 | 1696 | . D CALL^%ZISTCP($P(HLPARM4,U),$P(HLPARM4,U,2),10) | ||
1923 | 1697 | "RTN","HLCSLNCH",119,0) | ||
1924 | 1698 | . I POP D HOME^%ZIS U IO W !,"Unable to shutdown logical link!!!",$C(7),$C(7) Q | ||
1925 | 1699 | "RTN","HLCSLNCH",120,0) | ||
1926 | 1700 | . U IO W "**STOP**" | ||
1927 | 1701 | "RTN","HLCSLNCH",121,0) | ||
1928 | 1702 | . W ! | ||
1929 | 1703 | "RTN","HLCSLNCH",122,0) | ||
1930 | 1704 | . D CLOSE^%ZISTCP | ||
1931 | 1705 | "RTN","HLCSLNCH",123,0) | ||
1932 | 1706 | L -^HLCS(870,HLDP,0) | ||
1933 | 1707 | "RTN","HLCSLNCH",124,0) | ||
1934 | 1708 | W !,"The job for the "_HLDAPP_" Lower Level Protocol will be shut down." | ||
1935 | 1709 | "RTN","HLCSLNCH",125,0) | ||
1936 | 1710 | Q | ||
1937 | 1711 | "RTN","HLCSLNCH",126,0) | ||
1938 | 1712 | ; | ||
1939 | 1713 | "RTN","HLCSLNCH",127,0) | ||
1940 | 1714 | NOTMULTI() ; Returns 1 if implementation can't run multithreaded listener | ||
1941 | 1715 | "RTN","HLCSLNCH",128,0) | ||
1942 | 1716 | Q:^%ZOSF("OS")["GT.M" 0 | ||
1943 | 1717 | "RTN","HLCSLNCH",129,0) | ||
1944 | 1718 | Q $S(^%ZOSF("OS")'["OpenM":1,1:$$OS^%ZOSV["VMS") | ||
1945 | 1719 | "RTN","HLCSLNCH",130,0) | ||
1946 | 1720 | STOPQ Q | ||
1947 | 1721 | "RTN","HLCSTCP") | ||
1948 | 1722 | 0^17^B32434118 | ||
1949 | 1723 | "RTN","HLCSTCP",1,0) | ||
1950 | 1724 | HLCSTCP ;SFIRMFO/TNV-ALB/JFP,PKE MSC/JDA - (TCP/IP) MLLP ;13APR2009 | ||
1951 | 1725 | "RTN","HLCSTCP",2,0) | ||
1952 | 1726 | ;;1.6;HEALTH LEVEL SEVEN;**19,43,49,57,58,64,84,109,MSC**;Oct 13, 1995 | ||
1953 | 1727 | "RTN","HLCSTCP",3,0) | ||
1954 | 1728 | ; | ||
1955 | 1729 | "RTN","HLCSTCP",4,0) | ||
1956 | 1730 | ; This is an implementation of the HL7 Minimal Lower Layer Protocol | ||
1957 | 1731 | "RTN","HLCSTCP",5,0) | ||
1958 | 1732 | ; | ||
1959 | 1733 | "RTN","HLCSTCP",6,0) | ||
1960 | 1734 | ;taskman entry/startup option, HLDP defined in menu entry, | ||
1961 | 1735 | "RTN","HLCSTCP",7,0) | ||
1962 | 1736 | Q:'$D(HLDP) | ||
1963 | 1737 | "RTN","HLCSTCP",8,0) | ||
1964 | 1738 | N HLCSOUT,HLDBACK,HLDBSIZE,HLDREAD,HLDRETR,HLRETRA,HLDWAIT,HLOS,HLTCPADD,HLTCPCS,HLTCPLNK,HLTCPORT,HLTCPRET,HLCSFAIL | ||
1965 | 1739 | "RTN","HLCSTCP",9,0) | ||
1966 | 1740 | ;HLCSOUT= 1-error | ||
1967 | 1741 | "RTN","HLCSTCP",10,0) | ||
1968 | 1742 | I '$$INIT D EXITS("Init Error") Q | ||
1969 | 1743 | "RTN","HLCSTCP",11,0) | ||
1970 | 1744 | ; Start the client | ||
1971 | 1745 | "RTN","HLCSTCP",12,0) | ||
1972 | 1746 | I $G(HLTCPCS)="C" D Q | ||
1973 | 1747 | "RTN","HLCSTCP",13,0) | ||
1974 | 1748 | . ; identify process for ^%SY | ||
1975 | 1749 | "RTN","HLCSTCP",14,0) | ||
1976 | 1750 | . D SETNM^%ZOSV($E("HLClnt:"_HLDP,1,15)) | ||
1977 | 1751 | "RTN","HLCSTCP",15,0) | ||
1978 | 1752 | . D ST1 | ||
1979 | 1753 | "RTN","HLCSTCP",16,0) | ||
1980 | 1754 | . F D ^HLCSTCP2 Q:$$STOP!$G(HLCSOUT) | ||
1981 | 1755 | "RTN","HLCSTCP",17,0) | ||
1982 | 1756 | . I $G(HLCSOUT)=1 D MON("Error") H 1 Q | ||
1983 | 1757 | "RTN","HLCSTCP",18,0) | ||
1984 | 1758 | . I $G(HLCSOUT)=2 D EXITS("Inactive") Q | ||
1985 | 1759 | "RTN","HLCSTCP",19,0) | ||
1986 | 1760 | . D EXITS("Shutdown") | ||
1987 | 1761 | "RTN","HLCSTCP",20,0) | ||
1988 | 1762 | ; | ||
1989 | 1763 | "RTN","HLCSTCP",21,0) | ||
1990 | 1764 | ; identify process for ^%SY | ||
1991 | 1765 | "RTN","HLCSTCP",22,0) | ||
1992 | 1766 | D SETNM^%ZOSV($E("HLSrv:"_HLDP,1,15)) | ||
1993 | 1767 | "RTN","HLCSTCP",23,0) | ||
1994 | 1768 | ;HLCSFAIL=1 port failed to open | ||
1995 | 1769 | "RTN","HLCSTCP",24,0) | ||
1996 | 1770 | S HLCSFAIL=1 | ||
1997 | 1771 | "RTN","HLCSTCP",25,0) | ||
1998 | 1772 | ;single threaded listener | ||
1999 | 1773 | "RTN","HLCSTCP",26,0) | ||
2000 | 1774 | I $G(HLTCPCS)="S" D Q | ||
2001 | 1775 | "RTN","HLCSTCP",27,0) | ||
2002 | 1776 | . D ST1,MON("Listen"),LISTEN^%ZISTCP(HLTCPORT,"SERVER^HLCSTCP("""_HLDP_""")","S ZISQUIT=$$STOP^HLCSTCP()") | ||
2003 | 1777 | "RTN","HLCSTCP",28,0) | ||
2004 | 1778 | . ;couldn't open listener port | ||
2005 | 1779 | "RTN","HLCSTCP",29,0) | ||
2006 | 1780 | . I HLCSFAIL D EXITS("Openfail") Q | ||
2007 | 1781 | "RTN","HLCSTCP",30,0) | ||
2008 | 1782 | ; | ||
2009 | 1783 | "RTN","HLCSTCP",31,0) | ||
2010 | 1784 | ;multi-threaded listener (OpenM or GT.M) | ||
2011 | 1785 | "RTN","HLCSTCP",32,0) | ||
2012 | 1786 | I $G(HLTCPCS)="M",(^%ZOSF("OS")["OpenM")!(^%ZOSF("OS")["GT.M") D Q | ||
2013 | 1787 | "RTN","HLCSTCP",33,0) | ||
2014 | 1788 | . D ST1,MON("Listen"),LISTEN^%ZISTCPS(HLTCPORT,"SERVERS^HLCSTCP("""_HLDP_""")") | ||
2015 | 1789 | "RTN","HLCSTCP",34,0) | ||
2016 | 1790 | Q | ||
2017 | 1791 | "RTN","HLCSTCP",35,0) | ||
2018 | 1792 | ; | ||
2019 | 1793 | "RTN","HLCSTCP",36,0) | ||
2020 | 1794 | SERVER(HLDP) ; single server using Taskman | ||
2021 | 1795 | "RTN","HLCSTCP",37,0) | ||
2022 | 1796 | S HLCSFAIL=0 | ||
2023 | 1797 | "RTN","HLCSTCP",38,0) | ||
2024 | 1798 | I '$$INIT D EXITS("Init error") Q | ||
2025 | 1799 | "RTN","HLCSTCP",39,0) | ||
2026 | 1800 | D ^HLCSTCP1 | ||
2027 | 1801 | "RTN","HLCSTCP",40,0) | ||
2028 | 1802 | I $$STOP D CLOSE^%ZISTCP,EXITS("Shutdown") S IO("C")="" Q | ||
2029 | 1803 | "RTN","HLCSTCP",41,0) | ||
2030 | 1804 | Q:$G(HLCSOUT)=1 | ||
2031 | 1805 | "RTN","HLCSTCP",42,0) | ||
2032 | 1806 | D MON("Idle") | ||
2033 | 1807 | "RTN","HLCSTCP",43,0) | ||
2034 | 1808 | Q | ||
2035 | 1809 | "RTN","HLCSTCP",44,0) | ||
2036 | 1810 | ; | ||
2037 | 1811 | "RTN","HLCSTCP",45,0) | ||
2038 | 1812 | SERVERS(HLDP) ; Multi-threaded server using Taskman | ||
2039 | 1813 | "RTN","HLCSTCP",46,0) | ||
2040 | 1814 | I '$$INIT D EXITS("Init error") Q | ||
2041 | 1815 | "RTN","HLCSTCP",47,0) | ||
2042 | 1816 | G LISTEN | ||
2043 | 1817 | "RTN","HLCSTCP",48,0) | ||
2044 | 1818 | ; | ||
2045 | 1819 | "RTN","HLCSTCP",49,0) | ||
2046 | 1820 | ;multiple process servers, called from an external utility | ||
2047 | 1821 | "RTN","HLCSTCP",50,0) | ||
2048 | 1822 | MSM ;MSM entry point, called from User-Defined Services | ||
2049 | 1823 | "RTN","HLCSTCP",51,0) | ||
2050 | 1824 | ;HLDP=ien in the HL LOWER LEVEL PROTOCOL PARAMETER file for the | ||
2051 | 1825 | "RTN","HLCSTCP",52,0) | ||
2052 | 1826 | ;HL7 Multi-Threaded SERVER | ||
2053 | 1827 | "RTN","HLCSTCP",53,0) | ||
2054 | 1828 | S (IO,IO(0))=$P | ||
2055 | 1829 | "RTN","HLCSTCP",54,0) | ||
2056 | 1830 | G LISTEN | ||
2057 | 1831 | "RTN","HLCSTCP",55,0) | ||
2058 | 1832 | ; | ||
2059 | 1833 | "RTN","HLCSTCP",56,0) | ||
2060 | 1834 | CACHEVMS(%) ;Cache'/VMS tcpip/ucx entry point, called from HLSEVEN.COM file, | ||
2061 | 1835 | "RTN","HLCSTCP",57,0) | ||
2062 | 1836 | ;listener, % = HLDP | ||
2063 | 1837 | "RTN","HLCSTCP",58,0) | ||
2064 | 1838 | I $G(%)="" D ^%ZTER Q | ||
2065 | 1839 | "RTN","HLCSTCP",59,0) | ||
2066 | 1840 | S (IO,IO(0))="SYS$NET",HLDP=% | ||
2067 | 1841 | "RTN","HLCSTCP",60,0) | ||
2068 | 1842 | ; **Cache'/VMS specific code** | ||
2069 | 1843 | "RTN","HLCSTCP",61,0) | ||
2070 | 1844 | O IO::5 E D MON("Openfail") Q | ||
2071 | 1845 | "RTN","HLCSTCP",62,0) | ||
2072 | 1846 | X "U IO:(::""-M"")" ;Packet mode like DSM | ||
2073 | 1847 | "RTN","HLCSTCP",63,0) | ||
2074 | 1848 | D LISTEN C IO Q | ||
2075 | 1849 | "RTN","HLCSTCP",64,0) | ||
2076 | 1850 | ; | ||
2077 | 1851 | "RTN","HLCSTCP",65,0) | ||
2078 | 1852 | EN ;vms ucx entry point, called from HLSEVEN.COM file, | ||
2079 | 1853 | "RTN","HLCSTCP",66,0) | ||
2080 | 1854 | ;listener, % = device^HLDP | ||
2081 | 1855 | "RTN","HLCSTCP",67,0) | ||
2082 | 1856 | I $G(%)="" D ^%ZTER Q | ||
2083 | 1857 | "RTN","HLCSTCP",68,0) | ||
2084 | 1858 | S (IO,IO(0))="SYS$NET",HLDP=$P(%,"^",2) | ||
2085 | 1859 | "RTN","HLCSTCP",69,0) | ||
2086 | 1860 | ; **VMS specific code, need to share device** | ||
2087 | 1861 | "RTN","HLCSTCP",70,0) | ||
2088 | 1862 | X "O IO:(TCPDEV):60" E D MON("Openfail") Q | ||
2089 | 1863 | "RTN","HLCSTCP",71,0) | ||
2090 | 1864 | LISTEN ; | ||
2091 | 1865 | "RTN","HLCSTCP",72,0) | ||
2092 | 1866 | N HLLSTN,HLCSOUT,HLDBACK,HLDBSIZE,HLDREAD,HLDRETR,HLRETRA,HLDWAIT,HLOS,HLTCPADD,HLTCPCS,HLTCPLNK,HLTCPORT,HLTCPRET,HLCSFAIL | ||
2093 | 1867 | "RTN","HLCSTCP",73,0) | ||
2094 | 1868 | I '$$INIT D ^%ZTER Q | ||
2095 | 1869 | "RTN","HLCSTCP",74,0) | ||
2096 | 1870 | ; identify process for ^%SY | ||
2097 | 1871 | "RTN","HLCSTCP",75,0) | ||
2098 | 1872 | D SETNM^%ZOSV($E("HLSrv:"_HLDP,1,15)) | ||
2099 | 1873 | "RTN","HLCSTCP",76,0) | ||
2100 | 1874 | ;HLLSTN used to identify a listener to tag MON | ||
2101 | 1875 | "RTN","HLCSTCP",77,0) | ||
2102 | 1876 | S HLLSTN=1 | ||
2103 | 1877 | "RTN","HLCSTCP",78,0) | ||
2104 | 1878 | ;increment job count, run server | ||
2105 | 1879 | "RTN","HLCSTCP",79,0) | ||
2106 | 1880 | D UPDT(1),^HLCSTCP1,EXITM | ||
2107 | 1881 | "RTN","HLCSTCP",80,0) | ||
2108 | 1882 | Q | ||
2109 | 1883 | "RTN","HLCSTCP",81,0) | ||
2110 | 1884 | ; | ||
2111 | 1885 | "RTN","HLCSTCP",82,0) | ||
2112 | 1886 | DCOPEN(HLDP) ;open direct connect - called from HLMA2 | ||
2113 | 1887 | "RTN","HLCSTCP",83,0) | ||
2114 | 1888 | Q:'$$INIT 0 | ||
2115 | 1889 | "RTN","HLCSTCP",84,0) | ||
2116 | 1890 | Q:HLTCPADD=""!(HLTCPORT="") 0 | ||
2117 | 1891 | "RTN","HLCSTCP",85,0) | ||
2118 | 1892 | Q:'$$OPEN^HLCSTCP2 0 | ||
2119 | 1893 | "RTN","HLCSTCP",86,0) | ||
2120 | 1894 | Q 1 | ||
2121 | 1895 | "RTN","HLCSTCP",87,0) | ||
2122 | 1896 | ; | ||
2123 | 1897 | "RTN","HLCSTCP",88,0) | ||
2124 | 1898 | INIT() ; Initialize Variables | ||
2125 | 1899 | "RTN","HLCSTCP",89,0) | ||
2126 | 1900 | ; HLDP should be set to the IEN or name of Logical Link, file 870 | ||
2127 | 1901 | "RTN","HLCSTCP",90,0) | ||
2128 | 1902 | S HLOS=$P($G(^%ZOSF("OS")),"^") | ||
2129 | 1903 | "RTN","HLCSTCP",91,0) | ||
2130 | 1904 | N DA,DIQUIET,DR,TMP,X,Y | ||
2131 | 1905 | "RTN","HLCSTCP",92,0) | ||
2132 | 1906 | S DIQUIET=1 | ||
2133 | 1907 | "RTN","HLCSTCP",93,0) | ||
2134 | 1908 | D DT^DICRW | ||
2135 | 1909 | "RTN","HLCSTCP",94,0) | ||
2136 | 1910 | I 'HLDP S HLDP=$O(^HLCS(870,"B",HLDP,0)) I 'HLDP Q 0 | ||
2137 | 1911 | "RTN","HLCSTCP",95,0) | ||
2138 | 1912 | S DA=HLDP | ||
2139 | 1913 | "RTN","HLCSTCP",96,0) | ||
2140 | 1914 | S DR="200.02;200.021;200.03;200.04;200.05;200.09;400.01;400.02;400.03;400.04;400.05" | ||
2141 | 1915 | "RTN","HLCSTCP",97,0) | ||
2142 | 1916 | D GETS^DIQ(870,DA,DR,"IN","TMP","TMP") | ||
2143 | 1917 | "RTN","HLCSTCP",98,0) | ||
2144 | 1918 | ; | ||
2145 | 1919 | "RTN","HLCSTCP",99,0) | ||
2146 | 1920 | I $D(TMP("DIERR")) QUIT 0 | ||
2147 | 1921 | "RTN","HLCSTCP",100,0) | ||
2148 | 1922 | ; -- re-transmit attempts | ||
2149 | 1923 | "RTN","HLCSTCP",101,0) | ||
2150 | 1924 | S HLDRETR=+$G(TMP(870,DA_",",200.02,"I")) | ||
2151 | 1925 | "RTN","HLCSTCP",102,0) | ||
2152 | 1926 | ; -- exceed re-transmit action | ||
2153 | 1927 | "RTN","HLCSTCP",103,0) | ||
2154 | 1928 | S HLRETRA=$G(TMP(870,DA_",",200.021,"I")) | ||
2155 | 1929 | "RTN","HLCSTCP",104,0) | ||
2156 | 1930 | ; -- block size | ||
2157 | 1931 | "RTN","HLCSTCP",105,0) | ||
2158 | 1932 | S HLDBSIZE=+$G(TMP(870,DA_",",200.03,"I")) | ||
2159 | 1933 | "RTN","HLCSTCP",106,0) | ||
2160 | 1934 | ; -- read timeout | ||
2161 | 1935 | "RTN","HLCSTCP",107,0) | ||
2162 | 1936 | S HLDREAD=+$G(TMP(870,DA_",",200.04,"I")) | ||
2163 | 1937 | "RTN","HLCSTCP",108,0) | ||
2164 | 1938 | ; -- ack timeout | ||
2165 | 1939 | "RTN","HLCSTCP",109,0) | ||
2166 | 1940 | S HLDBACK=+$G(TMP(870,DA_",",200.05,"I")) | ||
2167 | 1941 | "RTN","HLCSTCP",110,0) | ||
2168 | 1942 | ; -- uni-directional wait | ||
2169 | 1943 | "RTN","HLCSTCP",111,0) | ||
2170 | 1944 | S HLDWAIT=$G(TMP(870,DA_",",200.09,"I")) | ||
2171 | 1945 | "RTN","HLCSTCP",112,0) | ||
2172 | 1946 | ; -- tcp address | ||
2173 | 1947 | "RTN","HLCSTCP",113,0) | ||
2174 | 1948 | S HLTCPADD=$G(TMP(870,DA_",",400.01,"I")) | ||
2175 | 1949 | "RTN","HLCSTCP",114,0) | ||
2176 | 1950 | ; -- tcp port | ||
2177 | 1951 | "RTN","HLCSTCP",115,0) | ||
2178 | 1952 | S HLTCPORT=$G(TMP(870,DA_",",400.02,"I")) | ||
2179 | 1953 | "RTN","HLCSTCP",116,0) | ||
2180 | 1954 | ; -- tcp/ip service type | ||
2181 | 1955 | "RTN","HLCSTCP",117,0) | ||
2182 | 1956 | S HLTCPCS=$G(TMP(870,DA_",",400.03,"I")) | ||
2183 | 1957 | "RTN","HLCSTCP",118,0) | ||
2184 | 1958 | ; -- link persistence | ||
2185 | 1959 | "RTN","HLCSTCP",119,0) | ||
2186 | 1960 | S HLTCPLNK=$G(TMP(870,DA_",",400.04,"I")) | ||
2187 | 1961 | "RTN","HLCSTCP",120,0) | ||
2188 | 1962 | ; -- retention | ||
2189 | 1963 | "RTN","HLCSTCP",121,0) | ||
2190 | 1964 | S HLTCPRET=$G(TMP(870,DA_",",400.05,"I")) | ||
2191 | 1965 | "RTN","HLCSTCP",122,0) | ||
2192 | 1966 | ; | ||
2193 | 1967 | "RTN","HLCSTCP",123,0) | ||
2194 | 1968 | ; -- set defaults in case something's not set | ||
2195 | 1969 | "RTN","HLCSTCP",124,0) | ||
2196 | 1970 | S:HLDREAD=0 HLDREAD=10 | ||
2197 | 1971 | "RTN","HLCSTCP",125,0) | ||
2198 | 1972 | S:HLDBACK=0 HLDBACK=60 | ||
2199 | 1973 | "RTN","HLCSTCP",126,0) | ||
2200 | 1974 | S:HLDBSIZE=0 HLDBSIZE=245 | ||
2201 | 1975 | "RTN","HLCSTCP",127,0) | ||
2202 | 1976 | S:HLDRETR=0 HLDRETR=5 | ||
2203 | 1977 | "RTN","HLCSTCP",128,0) | ||
2204 | 1978 | S:HLTCPRET="" X=$P($$PARAM^HLCS2,U,12),HLTCPRET=$S(X:X,1:15) | ||
2205 | 1979 | "RTN","HLCSTCP",129,0) | ||
2206 | 1980 | ; | ||
2207 | 1981 | "RTN","HLCSTCP",130,0) | ||
2208 | 1982 | Q 1 | ||
2209 | 1983 | "RTN","HLCSTCP",131,0) | ||
2210 | 1984 | ; | ||
2211 | 1985 | "RTN","HLCSTCP",132,0) | ||
2212 | 1986 | ST1 ;record startup in 870 for single server | ||
2213 | 1987 | "RTN","HLCSTCP",133,0) | ||
2214 | 1988 | ;4=status 9=Time Started, 10=Time Stopped, 11=Task Number | ||
2215 | 1989 | "RTN","HLCSTCP",134,0) | ||
2216 | 1990 | ;14=Shutdown LLP, 3=LLP Online, 18=Gross Errors | ||
2217 | 1991 | "RTN","HLCSTCP",135,0) | ||
2218 | 1992 | N HLJ,X | ||
2219 | 1993 | "RTN","HLCSTCP",136,0) | ||
2220 | 1994 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2221 | 1995 | "RTN","HLCSTCP",137,0) | ||
2222 | 1996 | S X="HLJ(870,"""_HLDP_","")" | ||
2223 | 1997 | "RTN","HLCSTCP",138,0) | ||
2224 | 1998 | S @X@(4)="Init",(@X@(10),@X@(18))="@",@X@(14)=0 | ||
2225 | 1999 | "RTN","HLCSTCP",139,0) | ||
2226 | 2000 | I HLTCPCS["C" S @X@(3)=$S(HLTCPLNK["Y":"PC",1:"NC") | ||
2227 | 2001 | "RTN","HLCSTCP",140,0) | ||
2228 | 2002 | E S @X@(3)=$S(HLTCPCS["S":"SS",HLTCPCS["M":"MS",1:"") | ||
2229 | 2003 | "RTN","HLCSTCP",141,0) | ||
2230 | 2004 | I @X@(3)'="NC" S @X@(9)=$$NOW^XLFDT | ||
2231 | 2005 | "RTN","HLCSTCP",142,0) | ||
2232 | 2006 | S:$G(ZTSK) @X@(11)=ZTSK | ||
2233 | 2007 | "RTN","HLCSTCP",143,0) | ||
2234 | 2008 | D FILE^HLDIE("","HLJ","","ST1","HLCSTCP") ;HL*1.6*109 | ||
2235 | 2009 | "RTN","HLCSTCP",144,0) | ||
2236 | 2010 | L -^HLCS(870,HLDP,0) | ||
2237 | 2011 | "RTN","HLCSTCP",145,0) | ||
2238 | 2012 | Q | ||
2239 | 2013 | "RTN","HLCSTCP",146,0) | ||
2240 | 2014 | ; | ||
2241 | 2015 | "RTN","HLCSTCP",147,0) | ||
2242 | 2016 | MON(Y) ;Display current state & check for shutdown | ||
2243 | 2017 | "RTN","HLCSTCP",148,0) | ||
2244 | 2018 | ;don't display for multiple server | ||
2245 | 2019 | "RTN","HLCSTCP",149,0) | ||
2246 | 2020 | Q:$G(HLLSTN) | ||
2247 | 2021 | "RTN","HLCSTCP",150,0) | ||
2248 | 2022 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2249 | 2023 | "RTN","HLCSTCP",151,0) | ||
2250 | 2024 | S $P(^HLCS(870,HLDP,0),U,5)=Y | ||
2251 | 2025 | "RTN","HLCSTCP",152,0) | ||
2252 | 2026 | L -^HLCS(870,HLDP,0) | ||
2253 | 2027 | "RTN","HLCSTCP",153,0) | ||
2254 | 2028 | Q:'$D(HLTRACE) | ||
2255 | 2029 | "RTN","HLCSTCP",154,0) | ||
2256 | 2030 | N X U IO(0) | ||
2257 | 2031 | "RTN","HLCSTCP",155,0) | ||
2258 | 2032 | W !,"IN State: ",Y | ||
2259 | 2033 | "RTN","HLCSTCP",156,0) | ||
2260 | 2034 | I '$$STOP D | ||
2261 | 2035 | "RTN","HLCSTCP",157,0) | ||
2262 | 2036 | . R !,"Type Q to Quit: ",X#1:1 | ||
2263 | 2037 | "RTN","HLCSTCP",158,0) | ||
2264 | 2038 | . I $L(X),"Qq"[X S $P(^HLCS(870,HLDP,0),U,15)=1 | ||
2265 | 2039 | "RTN","HLCSTCP",159,0) | ||
2266 | 2040 | U IO | ||
2267 | 2041 | "RTN","HLCSTCP",160,0) | ||
2268 | 2042 | Q | ||
2269 | 2043 | "RTN","HLCSTCP",161,0) | ||
2270 | 2044 | UPDT(Y) ;update job count for multiple servers,X=1 increment | ||
2271 | 2045 | "RTN","HLCSTCP",162,0) | ||
2272 | 2046 | N HLJ,X | ||
2273 | 2047 | "RTN","HLCSTCP",163,0) | ||
2274 | 2048 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2275 | 2049 | "RTN","HLCSTCP",164,0) | ||
2276 | 2050 | S X=+$P(^HLCS(870,HLDP,0),U,5),$P(^(0),U,5)=$S(Y:X+1,1:X-1)_" server" | ||
2277 | 2051 | "RTN","HLCSTCP",165,0) | ||
2278 | 2052 | ;if incrementing, set the Device Type field to Multi-Server | ||
2279 | 2053 | "RTN","HLCSTCP",166,0) | ||
2280 | 2054 | I X S HLJ(870,HLDP_",",3)="MS" D FILE^HLDIE("","HLJ","","UPDT","HLCSTCP") ;HL*1.6*109 | ||
2281 | 2055 | "RTN","HLCSTCP",167,0) | ||
2282 | 2056 | L -^HLCS(870,HLDP,0) | ||
2283 | 2057 | "RTN","HLCSTCP",168,0) | ||
2284 | 2058 | Q | ||
2285 | 2059 | "RTN","HLCSTCP",169,0) | ||
2286 | 2060 | STOP() ;stop flag set | ||
2287 | 2061 | "RTN","HLCSTCP",170,0) | ||
2288 | 2062 | N X | ||
2289 | 2063 | "RTN","HLCSTCP",171,0) | ||
2290 | 2064 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2291 | 2065 | "RTN","HLCSTCP",172,0) | ||
2292 | 2066 | S X=+$P(^HLCS(870,HLDP,0),U,15) | ||
2293 | 2067 | "RTN","HLCSTCP",173,0) | ||
2294 | 2068 | L -^HLCS(870,HLDP,0) | ||
2295 | 2069 | "RTN","HLCSTCP",174,0) | ||
2296 | 2070 | Q X | ||
2297 | 2071 | "RTN","HLCSTCP",175,0) | ||
2298 | 2072 | ; | ||
2299 | 2073 | "RTN","HLCSTCP",176,0) | ||
2300 | 2074 | LLCNT(DP,Y,Z) ;update Logical Link counters | ||
2301 | 2075 | "RTN","HLCSTCP",177,0) | ||
2302 | 2076 | ;DP=ien of Logical Link in file 870 | ||
2303 | 2077 | "RTN","HLCSTCP",178,0) | ||
2304 | 2078 | ;Y: 1=msg rec, 2=msg proc, 3=msg to send, 4=msg sent | ||
2305 | 2079 | "RTN","HLCSTCP",179,0) | ||
2306 | 2080 | ;Z: ""=add to counter, 1=subtract from counter | ||
2307 | 2081 | "RTN","HLCSTCP",180,0) | ||
2308 | 2082 | Q:'$D(^HLCS(870,+$G(DP),0))!('$G(Y)) | ||
2309 | 2083 | "RTN","HLCSTCP",181,0) | ||
2310 | 2084 | N P,X | ||
2311 | 2085 | "RTN","HLCSTCP",182,0) | ||
2312 | 2086 | S P=$S(Y<3:"IN",1:"OUT")_" QUEUE "_$S(Y#2:"BACK",1:"FRONT")_" POINTER" | ||
2313 | 2087 | "RTN","HLCSTCP",183,0) | ||
2314 | 2088 | F L +^HLCS(870,DP,P):2 Q:$T | ||
2315 | 2089 | "RTN","HLCSTCP",184,0) | ||
2316 | 2090 | S X=+$G(^HLCS(870,DP,P)),^(P)=X+$S($G(Z):-1,1:1) | ||
2317 | 2091 | "RTN","HLCSTCP",185,0) | ||
2318 | 2092 | L -^HLCS(870,DP,P) | ||
2319 | 2093 | "RTN","HLCSTCP",186,0) | ||
2320 | 2094 | Q | ||
2321 | 2095 | "RTN","HLCSTCP",187,0) | ||
2322 | 2096 | SDFLD ; set Shutdown? field to yes | ||
2323 | 2097 | "RTN","HLCSTCP",188,0) | ||
2324 | 2098 | Q:'$G(HLDP) | ||
2325 | 2099 | "RTN","HLCSTCP",189,0) | ||
2326 | 2100 | N HLJ,X | ||
2327 | 2101 | "RTN","HLCSTCP",190,0) | ||
2328 | 2102 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2329 | 2103 | "RTN","HLCSTCP",191,0) | ||
2330 | 2104 | ;14=Shutdown LLP? | ||
2331 | 2105 | "RTN","HLCSTCP",192,0) | ||
2332 | 2106 | S HLJ(870,HLDP_",",14)=1 | ||
2333 | 2107 | "RTN","HLCSTCP",193,0) | ||
2334 | 2108 | D FILE^HLDIE("","HLJ","","SDFLD","HLCSTCP") ;HL*1.6*109 | ||
2335 | 2109 | "RTN","HLCSTCP",194,0) | ||
2336 | 2110 | L -^HLCS(870,HLDP,0) | ||
2337 | 2111 | "RTN","HLCSTCP",195,0) | ||
2338 | 2112 | Q | ||
2339 | 2113 | "RTN","HLCSTCP",196,0) | ||
2340 | 2114 | ; | ||
2341 | 2115 | "RTN","HLCSTCP",197,0) | ||
2342 | 2116 | EXITS(Y) ; Single service shutdown and cleans up | ||
2343 | 2117 | "RTN","HLCSTCP",198,0) | ||
2344 | 2118 | N HLJ,X | ||
2345 | 2119 | "RTN","HLCSTCP",199,0) | ||
2346 | 2120 | F L +^HLCS(870,HLDP,0):2 Q:$T | ||
2347 | 2121 | "RTN","HLCSTCP",200,0) | ||
2348 | 2122 | ;4=status,10=Time Stopped,9=Time Started,11=Task Number | ||
2349 | 2123 | "RTN","HLCSTCP",201,0) | ||
2350 | 2124 | S X="HLJ(870,"""_HLDP_","")" | ||
2351 | 2125 | "RTN","HLCSTCP",202,0) | ||
2352 | 2126 | S @X@(4)=Y,@X@(11)="@" | ||
2353 | 2127 | "RTN","HLCSTCP",203,0) | ||
2354 | 2128 | S:$G(HLCSOUT)'=2 @X@(10)=$$NOW^XLFDT,@X@(9)="@" | ||
2355 | 2129 | "RTN","HLCSTCP",204,0) | ||
2356 | 2130 | D FILE^HLDIE("","HLJ","","EXITS","HLCSTCP") ; HL*1.6*109 | ||
2357 | 2131 | "RTN","HLCSTCP",205,0) | ||
2358 | 2132 | L -^HLCS(870,HLDP,0) | ||
2359 | 2133 | "RTN","HLCSTCP",206,0) | ||
2360 | 2134 | I $D(ZTQUEUED) S ZTREQ="@" | ||
2361 | 2135 | "RTN","HLCSTCP",207,0) | ||
2362 | 2136 | Q | ||
2363 | 2137 | "RTN","HLCSTCP",208,0) | ||
2364 | 2138 | ; | ||
2365 | 2139 | "RTN","HLCSTCP",209,0) | ||
2366 | 2140 | EXITM ;Multiple service shutdown and clean up | ||
2367 | 2141 | "RTN","HLCSTCP",210,0) | ||
2368 | 2142 | D UPDT(0) | ||
2369 | 2143 | "RTN","HLCSTCP",211,0) | ||
2370 | 2144 | I $D(ZTQUEUED) S ZTREQ="@" | ||
2371 | 2145 | "RTN","HLCSTCP",212,0) | ||
2372 | 2146 | Q | ||
2373 | 2147 | "RTN","HLCSTCP1") | ||
2374 | 2148 | 0^16^B29662559 | ||
2375 | 2149 | "RTN","HLCSTCP1",1,0) | ||
2376 | 2150 | HLCSTCP1 ;SFIRMFO/RSD MSC/JDA - BI-DIRECTIONAL TCP ;13APR2009 | ||
2377 | 2151 | "RTN","HLCSTCP1",2,0) | ||
2378 | 2152 | ;;1.6;HEALTH LEVEL SEVEN;**19,43,57,64,71,MSC**;JUL 17,1995 | ||
2379 | 2153 | "RTN","HLCSTCP1",3,0) | ||
2380 | 2154 | ;Receiver | ||
2381 | 2155 | "RTN","HLCSTCP1",4,0) | ||
2382 | 2156 | ;connection is initiated by sender and listener accepts connection | ||
2383 | 2157 | "RTN","HLCSTCP1",5,0) | ||
2384 | 2158 | ;and calls this routine | ||
2385 | 2159 | "RTN","HLCSTCP1",6,0) | ||
2386 | 2160 | ; | ||
2387 | 2161 | "RTN","HLCSTCP1",7,0) | ||
2388 | 2162 | N $ETRAP,$ESTACK S $ETRAP="D ERROR^HLCSTCP1" | ||
2389 | 2163 | "RTN","HLCSTCP1",8,0) | ||
2390 | 2164 | N HLMIEN,HLASTMSG | ||
2391 | 2165 | "RTN","HLCSTCP1",9,0) | ||
2392 | 2166 | D MON^HLCSTCP("Open") | ||
2393 | 2167 | "RTN","HLCSTCP1",10,0) | ||
2394 | 2168 | K ^TMP("HLCSTCP",$J,0) | ||
2395 | 2169 | "RTN","HLCSTCP1",11,0) | ||
2396 | 2170 | S HLMIEN=0,HLASTMSG="" | ||
2397 | 2171 | "RTN","HLCSTCP1",12,0) | ||
2398 | 2172 | F D Q:$$STOP^HLCSTCP I 'HLMIEN D MON^HLCSTCP("Idle") H 3 | ||
2399 | 2173 | "RTN","HLCSTCP1",13,0) | ||
2400 | 2174 | . S HLMIEN=$$READ | ||
2401 | 2175 | "RTN","HLCSTCP1",14,0) | ||
2402 | 2176 | . Q:'HLMIEN | ||
2403 | 2177 | "RTN","HLCSTCP1",15,0) | ||
2404 | 2178 | . D PROCESS | ||
2405 | 2179 | "RTN","HLCSTCP1",16,0) | ||
2406 | 2180 | Q | ||
2407 | 2181 | "RTN","HLCSTCP1",17,0) | ||
2408 | 2182 | ; | ||
2409 | 2183 | "RTN","HLCSTCP1",18,0) | ||
2410 | 2184 | PROCESS ;check message and reply | ||
2411 | 2185 | "RTN","HLCSTCP1",19,0) | ||
2412 | 2186 | ;HLDP=LL in 870, update monitor, received msg. | ||
2413 | 2187 | "RTN","HLCSTCP1",20,0) | ||
2414 | 2188 | N HLTCP,HLTCPI,HLTCPO | ||
2415 | 2189 | "RTN","HLCSTCP1",21,0) | ||
2416 | 2190 | S HLTCP="",HLTCPO=HLDP,HLTCPI=+HLMIEN | ||
2417 | 2191 | "RTN","HLCSTCP1",22,0) | ||
2418 | 2192 | ;update monitor, msg. received | ||
2419 | 2193 | "RTN","HLCSTCP1",23,0) | ||
2420 | 2194 | D LLCNT^HLCSTCP(HLDP,1) | ||
2421 | 2195 | "RTN","HLCSTCP1",24,0) | ||
2422 | 2196 | D NEW^HLTP3(HLMIEN) | ||
2423 | 2197 | "RTN","HLCSTCP1",25,0) | ||
2424 | 2198 | ;update monitor, msg. processed | ||
2425 | 2199 | "RTN","HLCSTCP1",26,0) | ||
2426 | 2200 | D LLCNT^HLCSTCP(HLDP,2) | ||
2427 | 2201 | "RTN","HLCSTCP1",27,0) | ||
2428 | 2202 | Q | ||
2429 | 2203 | "RTN","HLCSTCP1",28,0) | ||
2430 | 2204 | ; | ||
2431 | 2205 | "RTN","HLCSTCP1",29,0) | ||
2432 | 2206 | READ() ;read 1 message, returns ien in 773^ien in 772 for message | ||
2433 | 2207 | "RTN","HLCSTCP1",30,0) | ||
2434 | 2208 | D MON^HLCSTCP("Reading") | ||
2435 | 2209 | "RTN","HLCSTCP1",31,0) | ||
2436 | 2210 | N HLDB,HLDT,HLDEND,HLACKWT,HLDSTRT,HLHDR,HLIND1,HLINE,HLMSG,HLRDOUT,HLRS,HLX,X | ||
2437 | 2211 | "RTN","HLCSTCP1",32,0) | ||
2438 | 2212 | ;HLDSTRT=start char., HLDEND=end char., HLRS=record seperator | ||
2439 | 2213 | "RTN","HLCSTCP1",33,0) | ||
2440 | 2214 | S HLDSTRT=$C(11),HLDEND=$C(28),HLRS=$C(13) | ||
2441 | 2215 | "RTN","HLCSTCP1",34,0) | ||
2442 | 2216 | ;HLRDOUT=exit read loop, HLINE=line count, HLIND1=ien 773^ien 772 | ||
2443 | 2217 | "RTN","HLCSTCP1",35,0) | ||
2444 | 2218 | ;HLHDR=have a header, ^TMP(...)=excess from last read, HLACKWT=wait for ack | ||
2445 | 2219 | "RTN","HLCSTCP1",36,0) | ||
2446 | 2220 | S (HLRDOUT,HLINE,HLIND1,HLHDR)=0,HLX=$G(^TMP("HLCSTCP",$J,0)),HLACKWT=HLDBACK | ||
2447 | 2221 | "RTN","HLCSTCP1",37,0) | ||
2448 | 2222 | K ^TMP("HLCSTCP",$J,0) | ||
2449 | 2223 | "RTN","HLCSTCP1",38,0) | ||
2450 | 2224 | F D RDBLK Q:HLRDOUT | ||
2451 | 2225 | "RTN","HLCSTCP1",39,0) | ||
2452 | 2226 | ;save any excess for next time | ||
2453 | 2227 | "RTN","HLCSTCP1",40,0) | ||
2454 | 2228 | S:$L(HLX) ^TMP("HLCSTCP",$J,0)=HLX | ||
2455 | 2229 | "RTN","HLCSTCP1",41,0) | ||
2456 | 2230 | I +HLIND1,'$P(HLIND1,U,3) D DELMSG(HLIND1) S HLIND1=0 | ||
2457 | 2231 | "RTN","HLCSTCP1",42,0) | ||
2458 | 2232 | Q HLIND1 | ||
2459 | 2233 | "RTN","HLCSTCP1",43,0) | ||
2460 | 2234 | ; | ||
2461 | 2235 | "RTN","HLCSTCP1",44,0) | ||
2462 | 2236 | RDBLK S HLDB=HLDBSIZE-$L(HLX) | ||
2463 | 2237 | "RTN","HLCSTCP1",45,0) | ||
2464 | 2238 | U IO D:$D ERROR R X#HLDB:HLDREAD ; MSC/JDA added check against $d | ||
2465 | 2239 | "RTN","HLCSTCP1",46,0) | ||
2466 | 2240 | ; timedout or error, check ack timeout, clean up | ||
2467 | 2241 | "RTN","HLCSTCP1",47,0) | ||
2468 | 2242 | I '$T,X="",HLX="" S HLACKWT=HLACKWT-HLDREAD D:HLACKWT<0&'HLHDR CLEAN Q | ||
2469 | 2243 | "RTN","HLCSTCP1",48,0) | ||
2470 | 2244 | ;data stream: <sb>dddd<cr><eb><cr> | ||
2471 | 2245 | "RTN","HLCSTCP1",49,0) | ||
2472 | 2246 | ;add incoming line to what wasn't processed in last read | ||
2473 | 2247 | "RTN","HLCSTCP1",50,0) | ||
2474 | 2248 | S HLX=$G(HLX)_X | ||
2475 | 2249 | "RTN","HLCSTCP1",51,0) | ||
2476 | 2250 | ; look for segment= <CR> | ||
2477 | 2251 | "RTN","HLCSTCP1",52,0) | ||
2478 | 2252 | F Q:HLX'[HLRS D Q:HLRDOUT | ||
2479 | 2253 | "RTN","HLCSTCP1",53,0) | ||
2480 | 2254 | . ; Get the first piece, save the rest of the line | ||
2481 | 2255 | "RTN","HLCSTCP1",54,0) | ||
2482 | 2256 | . S HLINE=HLINE+1,HLMSG(HLINE,0)=$P(HLX,HLRS),HLX=$P(HLX,HLRS,2,999) | ||
2483 | 2257 | "RTN","HLCSTCP1",55,0) | ||
2484 | 2258 | . ; check for start block, Quit if no ien | ||
2485 | 2259 | "RTN","HLCSTCP1",56,0) | ||
2486 | 2260 | . I HLMSG(HLINE,0)[HLDSTRT!HLHDR D Q | ||
2487 | 2261 | "RTN","HLCSTCP1",57,0) | ||
2488 | 2262 | .. D:HLMSG(HLINE,0)[HLDSTRT | ||
2489 | 2263 | "RTN","HLCSTCP1",58,0) | ||
2490 | 2264 | ... S X=$L(HLMSG(HLINE,0),HLDSTRT) | ||
2491 | 2265 | "RTN","HLCSTCP1",59,0) | ||
2492 | 2266 | ... S:X>2 HLMSG(HLINE,0)=HLDSTRT_$P(HLMSG(HLINE,0),HLDSTRT,X) | ||
2493 | 2267 | "RTN","HLCSTCP1",60,0) | ||
2494 | 2268 | ... S HLMSG(HLINE,0)=$P(HLMSG(HLINE,0),HLDSTRT,2) | ||
2495 | 2269 | "RTN","HLCSTCP1",61,0) | ||
2496 | 2270 | ... D RESET:(HLINE>1) | ||
2497 | 2271 | "RTN","HLCSTCP1",62,0) | ||
2498 | 2272 | .. ;ping message | ||
2499 | 2273 | "RTN","HLCSTCP1",63,0) | ||
2500 | 2274 | .. I $E(HLMSG(1,0),1,9)="MSH^PING^" D PING Q | ||
2501 | 2275 | "RTN","HLCSTCP1",64,0) | ||
2502 | 2276 | .. ; get next ien to store | ||
2503 | 2277 | "RTN","HLCSTCP1",65,0) | ||
2504 | 2278 | .. D MIEN | ||
2505 | 2279 | "RTN","HLCSTCP1",66,0) | ||
2506 | 2280 | .. K HLMSG | ||
2507 | 2281 | "RTN","HLCSTCP1",67,0) | ||
2508 | 2282 | .. S (HLINE,HLHDR)=0 | ||
2509 | 2283 | "RTN","HLCSTCP1",68,0) | ||
2510 | 2284 | . ; check for end block; HLMSG(HLINE) = <eb><cr> | ||
2511 | 2285 | "RTN","HLCSTCP1",69,0) | ||
2512 | 2286 | . I HLMSG(HLINE,0)[HLDEND D | ||
2513 | 2287 | "RTN","HLCSTCP1",70,0) | ||
2514 | 2288 | .. ;no msg. ien | ||
2515 | 2289 | "RTN","HLCSTCP1",71,0) | ||
2516 | 2290 | .. Q:'HLIND1 | ||
2517 | 2291 | "RTN","HLCSTCP1",72,0) | ||
2518 | 2292 | .. ; Kill just the last line | ||
2519 | 2293 | "RTN","HLCSTCP1",73,0) | ||
2520 | 2294 | .. K HLMSG(HLINE,0) S HLINE=HLINE-1 | ||
2521 | 2295 | "RTN","HLCSTCP1",74,0) | ||
2522 | 2296 | .. ; move into 772 | ||
2523 | 2297 | "RTN","HLCSTCP1",75,0) | ||
2524 | 2298 | .. D SAVE(.HLMSG,"^HL(772,"_+$P(HLIND1,U,2)_",""IN"")") | ||
2525 | 2299 | "RTN","HLCSTCP1",76,0) | ||
2526 | 2300 | .. ;mark that end block has been received | ||
2527 | 2301 | "RTN","HLCSTCP1",77,0) | ||
2528 | 2302 | .. ;HLIND1=ien in 773^ien in 772^1 if end block was received | ||
2529 | 2303 | "RTN","HLCSTCP1",78,0) | ||
2530 | 2304 | .. S $P(HLIND1,U,3)=1 | ||
2531 | 2305 | "RTN","HLCSTCP1",79,0) | ||
2532 | 2306 | .. ;reset variables for next message | ||
2533 | 2307 | "RTN","HLCSTCP1",80,0) | ||
2534 | 2308 | .. D CLEAN | ||
2535 | 2309 | "RTN","HLCSTCP1",81,0) | ||
2536 | 2310 | . ;add blank line for carriage return | ||
2537 | 2311 | "RTN","HLCSTCP1",82,0) | ||
2538 | 2312 | . I HLINE'=0,HLMSG(HLINE,0)]"" S HLINE=HLINE+1,HLMSG(HLINE,0)="" | ||
2539 | 2313 | "RTN","HLCSTCP1",83,0) | ||
2540 | 2314 | Q:HLRDOUT | ||
2541 | 2315 | "RTN","HLCSTCP1",84,0) | ||
2542 | 2316 | ;If the line is long and no <CR> move it into the array. | ||
2543 | 2317 | "RTN","HLCSTCP1",85,0) | ||
2544 | 2318 | I ($L(HLX)=HLDBSIZE),(HLX'[HLRS),(HLX'[HLDEND),(HLX'[HLDSTRT) D Q | ||
2545 | 2319 | "RTN","HLCSTCP1",86,0) | ||
2546 | 2320 | . S HLINE=HLINE+1,HLMSG(HLINE,0)=HLX,HLX="" | ||
2547 | 2321 | "RTN","HLCSTCP1",87,0) | ||
2548 | 2322 | ;have start block but no record seperator | ||
2549 | 2323 | "RTN","HLCSTCP1",88,0) | ||
2550 | 2324 | I HLX[HLDSTRT D Q | ||
2551 | 2325 | "RTN","HLCSTCP1",89,0) | ||
2552 | 2326 | . ;check for more than 1 start block | ||
2553 | 2327 | "RTN","HLCSTCP1",90,0) | ||
2554 | 2328 | . S X=$L(HLX,HLDSTRT) S:X>2 HLX=HLDSTRT_$P(HLX,HLDSTRT,X) | ||
2555 | 2329 | "RTN","HLCSTCP1",91,0) | ||
2556 | 2330 | . S:$L($P(HLX,HLDSTRT,2))>8 HLINE=HLINE+1,HLMSG(HLINE,0)=$P(HLX,HLDSTRT,2),HLX="",HLHDR=1 | ||
2557 | 2331 | "RTN","HLCSTCP1",92,0) | ||
2558 | 2332 | . D RESET:(HLHDR&(HLINE>1)) | ||
2559 | 2333 | "RTN","HLCSTCP1",93,0) | ||
2560 | 2334 | ;if no ien, then we don't have start block, reset | ||
2561 | 2335 | "RTN","HLCSTCP1",94,0) | ||
2562 | 2336 | I 'HLIND1 D CLEAN Q | ||
2563 | 2337 | "RTN","HLCSTCP1",95,0) | ||
2564 | 2338 | ; big message-merge from local to global every 100 lines | ||
2565 | 2339 | "RTN","HLCSTCP1",96,0) | ||
2566 | 2340 | I (HLINE-$O(HLMSG(0)))>100 D | ||
2567 | 2341 | "RTN","HLCSTCP1",97,0) | ||
2568 | 2342 | . M ^HL(772,+$P(HLIND1,U,2),"IN")=HLMSG | ||
2569 | 2343 | "RTN","HLCSTCP1",98,0) | ||
2570 | 2344 | . ; reset working array | ||
2571 | 2345 | "RTN","HLCSTCP1",99,0) | ||
2572 | 2346 | . K HLMSG | ||
2573 | 2347 | "RTN","HLCSTCP1",100,0) | ||
2574 | 2348 | Q | ||
2575 | 2349 | "RTN","HLCSTCP1",101,0) | ||
2576 | 2350 | ; | ||
2577 | 2351 | "RTN","HLCSTCP1",102,0) | ||
2578 | 2352 | SAVE(SRC,DEST) ;save into global & set top node | ||
2579 | 2353 | "RTN","HLCSTCP1",103,0) | ||
2580 | 2354 | ;SRC=source array (passed by ref.), DEST=destination global | ||
2581 | 2355 | "RTN","HLCSTCP1",104,0) | ||
2582 | 2356 | M @DEST=SRC | ||
2583 | 2357 | "RTN","HLCSTCP1",105,0) | ||
2584 | 2358 | S @DEST@(0)="^^"_HLINE_"^"_HLINE_"^"_DT_"^" | ||
2585 | 2359 | "RTN","HLCSTCP1",106,0) | ||
2586 | 2360 | Q | ||
2587 | 2361 | "RTN","HLCSTCP1",107,0) | ||
2588 | 2362 | ; | ||
2589 | 2363 | "RTN","HLCSTCP1",108,0) | ||
2590 | 2364 | DELMSG(HLMAMT) ;delete message from Message Administration/Message Text files. | ||
2591 | 2365 | "RTN","HLCSTCP1",109,0) | ||
2592 | 2366 | N DIK,DA | ||
2593 | 2367 | "RTN","HLCSTCP1",110,0) | ||
2594 | 2368 | S DA=+HLMAMT,DIK="^HLMA(" | ||
2595 | 2369 | "RTN","HLCSTCP1",111,0) | ||
2596 | 2370 | D ^DIK | ||
2597 | 2371 | "RTN","HLCSTCP1",112,0) | ||
2598 | 2372 | S DA=$P(HLMAMT,U,2),DIK="^HL(772," | ||
2599 | 2373 | "RTN","HLCSTCP1",113,0) | ||
2600 | 2374 | D ^DIK | ||
2601 | 2375 | "RTN","HLCSTCP1",114,0) | ||
2602 | 2376 | Q | ||
2603 | 2377 | "RTN","HLCSTCP1",115,0) | ||
2604 | 2378 | MIEN ; sets HLIND1=ien in 773^ien in 772 for message | ||
2605 | 2379 | "RTN","HLCSTCP1",116,0) | ||
2606 | 2380 | N HLMID,X | ||
2607 | 2381 | "RTN","HLCSTCP1",117,0) | ||
2608 | 2382 | I HLIND1 D | ||
2609 | 2383 | "RTN","HLCSTCP1",118,0) | ||
2610 | 2384 | . S:'$G(^HLMA(+HLIND1,0)) HLIND1=0 | ||
2611 | 2385 | "RTN","HLCSTCP1",119,0) | ||
2612 | 2386 | . S:'$G(^HL(772,+$P(HLIND1,U,2),0)) HLIND1=0 | ||
2613 | 2387 | "RTN","HLCSTCP1",120,0) | ||
2614 | 2388 | ;msg. id is 10th of MSH & 11th for BSH or FSH | ||
2615 | 2389 | "RTN","HLCSTCP1",121,0) | ||
2616 | 2390 | S X=10+($E(HLMSG(1,0),1,3)'="MSH"),HLMID=$$PMSH(.HLMSG,X) | ||
2617 | 2391 | "RTN","HLCSTCP1",122,0) | ||
2618 | 2392 | ;if HLIND1 is set, kill old message, use HLIND1 for new | ||
2619 | 2393 | "RTN","HLCSTCP1",123,0) | ||
2620 | 2394 | ;message, it means we never got end block for 1st msg. | ||
2621 | 2395 | "RTN","HLCSTCP1",124,0) | ||
2622 | 2396 | I HLIND1 D Q | ||
2623 | 2397 | "RTN","HLCSTCP1",125,0) | ||
2624 | 2398 | . ;get pointer to 772, kill header | ||
2625 | 2399 | "RTN","HLCSTCP1",126,0) | ||
2626 | 2400 | . K ^HLMA(+HLIND1,"MSH") | ||
2627 | 2401 | "RTN","HLCSTCP1",127,0) | ||
2628 | 2402 | . I $D(^HL(772,+$P(HLIND1,U,2),"IN")) K ^("IN") | ||
2629 | 2403 | "RTN","HLCSTCP1",128,0) | ||
2630 | 2404 | . S X=$$MAID^HLTF(+HLIND1,HLMID) | ||
2631 | 2405 | "RTN","HLCSTCP1",129,0) | ||
2632 | 2406 | . D SAVE(.HLMSG,"^HLMA("_+HLIND1_",""MSH"")") | ||
2633 | 2407 | "RTN","HLCSTCP1",130,0) | ||
2634 | 2408 | . S:$P(HLIND1,U,3) $P(HLIND1,U,3)="" | ||
2635 | 2409 | "RTN","HLCSTCP1",131,0) | ||
2636 | 2410 | D TCP^HLTF(.HLMID,.X,.HLDT) | ||
2637 | 2411 | "RTN","HLCSTCP1",132,0) | ||
2638 | 2412 | I 'X D Q | ||
2639 | 2413 | "RTN","HLCSTCP1",133,0) | ||
2640 | 2414 | . ;error - record and reset array | ||
2641 | 2415 | "RTN","HLCSTCP1",134,0) | ||
2642 | 2416 | . ;killing HLLSTN will allow MON^HLCSTCP to work with multi-server | ||
2643 | 2417 | "RTN","HLCSTCP1",135,0) | ||
2644 | 2418 | . D CLEAN K HLLSTN | ||
2645 | 2419 | "RTN","HLCSTCP1",136,0) | ||
2646 | 2420 | . ;error 100=LLP Could not Enqueue the Message, reset array | ||
2647 | 2421 | "RTN","HLCSTCP1",137,0) | ||
2648 | 2422 | . D MONITOR^HLCSDR2(100,19,HLDP),MON^HLCSTCP("ERROR") H 30 | ||
2649 | 2423 | "RTN","HLCSTCP1",138,0) | ||
2650 | 2424 | ;HLIND1=ien in 773^ien in 772 | ||
2651 | 2425 | "RTN","HLCSTCP1",139,0) | ||
2652 | 2426 | S HLIND1=X_U_+$G(^HLMA(X,0)) | ||
2653 | 2427 | "RTN","HLCSTCP1",140,0) | ||
2654 | 2428 | ;save MSH into 773 | ||
2655 | 2429 | "RTN","HLCSTCP1",141,0) | ||
2656 | 2430 | D SAVE(.HLMSG,"^HLMA("_+HLIND1_",""MSH"")") | ||
2657 | 2431 | "RTN","HLCSTCP1",142,0) | ||
2658 | 2432 | Q | ||
2659 | 2433 | "RTN","HLCSTCP1",143,0) | ||
2660 | 2434 | ; | ||
2661 | 2435 | "RTN","HLCSTCP1",144,0) | ||
2662 | 2436 | PMSH(MSH,P) ;get piece P from MSH array (passed by ref.) | ||
2663 | 2437 | "RTN","HLCSTCP1",145,0) | ||
2664 | 2438 | N FS,I,L,L1,L2,X,Y | ||
2665 | 2439 | "RTN","HLCSTCP1",146,0) | ||
2666 | 2440 | S FS=$E(MSH(1,0),4),(L2,Y)=0,X="" | ||
2667 | 2441 | "RTN","HLCSTCP1",147,0) | ||
2668 | 2442 | F I=1:1 S L1=$L($G(MSH(I,0)),FS),L=L1+Y-1 D Q:$L(X)!'$D(MSH(I,0)) | ||
2669 | 2443 | "RTN","HLCSTCP1",148,0) | ||
2670 | 2444 | . S:L1=1 L=L+1 | ||
2671 | 2445 | "RTN","HLCSTCP1",149,0) | ||
2672 | 2446 | . S:P'>L X=$P($G(MSH(I-1,0)),FS,P-L2)_$P($G(MSH(I,0)),FS,(P-Y)) | ||
2673 | 2447 | "RTN","HLCSTCP1",150,0) | ||
2674 | 2448 | . S L2=Y,Y=L | ||
2675 | 2449 | "RTN","HLCSTCP1",151,0) | ||
2676 | 2450 | Q X | ||
2677 | 2451 | "RTN","HLCSTCP1",152,0) | ||
2678 | 2452 | ; | ||
2679 | 2453 | "RTN","HLCSTCP1",153,0) | ||
2680 | 2454 | PING ;process PING message | ||
2681 | 2455 | "RTN","HLCSTCP1",154,0) | ||
2682 | 2456 | S X=HLMSG(1,0) | ||
2683 | 2457 | "RTN","HLCSTCP1",155,0) | ||
2684 | 2458 | I X[HLDEND U IO W X,! | ||
2685 | 2459 | "RTN","HLCSTCP1",156,0) | ||
2686 | 2460 | CLEAN ;reset var. for next message | ||
2687 | 2461 | "RTN","HLCSTCP1",157,0) | ||
2688 | 2462 | K HLMSG | ||
2689 | 2463 | "RTN","HLCSTCP1",158,0) | ||
2690 | 2464 | S HLINE=0,HLRDOUT=1 | ||
2691 | 2465 | "RTN","HLCSTCP1",159,0) | ||
2692 | 2466 | Q | ||
2693 | 2467 | "RTN","HLCSTCP1",160,0) | ||
2694 | 2468 | ; | ||
2695 | 2469 | "RTN","HLCSTCP1",161,0) | ||
2696 | 2470 | ERROR ; Error trap for disconnect error and return back to the read loop. | ||
2697 | 2471 | "RTN","HLCSTCP1",162,0) | ||
2698 | 2472 | S $ETRAP="D UNWIND^%ZTER" | ||
2699 | 2473 | "RTN","HLCSTCP1",163,0) | ||
2700 | 2474 | I $$EC^%ZOSV["READ"!($$EC^%ZOSV["NOTOPEN")!($$EC^%ZOSV["DEVNOTOPN") D UNWIND^%ZTER Q | ||
2701 | 2475 | "RTN","HLCSTCP1",164,0) | ||
2702 | 2476 | I $$EC^%ZOSV["WRITE" D CC("Wr-err") D UNWIND^%ZTER Q | ||
2703 | 2477 | "RTN","HLCSTCP1",165,0) | ||
2704 | 2478 | S HLCSOUT=1 D ^%ZTER,CC("Error") | ||
2705 | 2479 | "RTN","HLCSTCP1",166,0) | ||
2706 | 2480 | D UNWIND^%ZTER | ||
2707 | 2481 | "RTN","HLCSTCP1",167,0) | ||
2708 | 2482 | Q | ||
2709 | 2483 | "RTN","HLCSTCP1",168,0) | ||
2710 | 2484 | ; | ||
2711 | 2485 | "RTN","HLCSTCP1",169,0) | ||
2712 | 2486 | CC(X) ;cleanup and close | ||
2713 | 2487 | "RTN","HLCSTCP1",170,0) | ||
2714 | 2488 | D MON^HLCSTCP(X) | ||
2715 | 2489 | "RTN","HLCSTCP1",171,0) | ||
2716 | 2490 | H 2 | ||
2717 | 2491 | "RTN","HLCSTCP1",172,0) | ||
2718 | 2492 | Q | ||
2719 | 2493 | "RTN","HLCSTCP1",173,0) | ||
2720 | 2494 | RESET ;reset info as a result of no end block | ||
2721 | 2495 | "RTN","HLCSTCP1",174,0) | ||
2722 | 2496 | N % | ||
2723 | 2497 | "RTN","HLCSTCP1",175,0) | ||
2724 | 2498 | S HLMSG(1,0)=HLMSG(HLINE,0) | ||
2725 | 2499 | "RTN","HLCSTCP1",176,0) | ||
2726 | 2500 | F %=2:1:HLINE K HLMSG(%,0) | ||
2727 | 2501 | "RTN","HLCSTCP1",177,0) | ||
2728 | 2502 | S HLINE=1 | ||
2729 | 2503 | "RTN","HLCSTCP1",178,0) | ||
2730 | 2504 | Q | ||
2731 | 2505 | "RTN","MAGDMEDL") | ||
2732 | 2506 | 0^36^B3132920 | ||
2733 | 2507 | "RTN","MAGDMEDL",1,0) | ||
2734 | 2508 | MAGDMEDL ;WOIFO/LB,MSC/JDA - Routine to look up entries in the Medicine files ;27APR2009 | ||
2735 | 2509 | "RTN","MAGDMEDL",2,0) | ||
2736 | 2510 | ;;3.0;IMAGING;**MSC**;Mar 01, 2002 | ||
2737 | 2511 | "RTN","MAGDMEDL",3,0) | ||
2738 | 2512 | ;; +---------------------------------------------------------------+ | ||
2739 | 2513 | "RTN","MAGDMEDL",4,0) | ||
2740 | 2514 | ;; | Property of the US Government. | | ||
2741 | 2515 | "RTN","MAGDMEDL",5,0) | ||
2742 | 2516 | ;; | No permission to copy or redistribute this software is given. | | ||
2743 | 2517 | "RTN","MAGDMEDL",6,0) | ||
2744 | 2518 | ;; | Use of unreleased versions of this software requires the user | | ||
2745 | 2519 | "RTN","MAGDMEDL",7,0) | ||
2746 | 2520 | ;; | to execute a written test agreement with the VistA Imaging | | ||
2747 | 2521 | "RTN","MAGDMEDL",8,0) | ||
2748 | 2522 | ;; | Development Office of the Department of Veterans Affairs, | | ||
2749 | 2523 | "RTN","MAGDMEDL",9,0) | ||
2750 | 2524 | ;; | telephone (301) 734-0100. | | ||
2751 | 2525 | "RTN","MAGDMEDL",10,0) | ||
2752 | 2526 | ;; | | | ||
2753 | 2527 | "RTN","MAGDMEDL",11,0) | ||
2754 | 2528 | ;; | The Food and Drug Administration classifies this software as | | ||
2755 | 2529 | "RTN","MAGDMEDL",12,0) | ||
2756 | 2530 | ;; | a medical device. As such, it may not be changed in any way. | | ||
2757 | 2531 | "RTN","MAGDMEDL",13,0) | ||
2758 | 2532 | ;; | Modifications to this software may result in an adulterated | | ||
2759 | 2533 | "RTN","MAGDMEDL",14,0) | ||
2760 | 2534 | ;; | medical device under 21CFR820, the use of which is considered | | ||
2761 | 2535 | "RTN","MAGDMEDL",15,0) | ||
2762 | 2536 | ;; | to be a violation of US Federal Statutes. | | ||
2763 | 2537 | "RTN","MAGDMEDL",16,0) | ||
2764 | 2538 | ;; +---------------------------------------------------------------+ | ||
2765 | 2539 | "RTN","MAGDMEDL",17,0) | ||
2766 | 2540 | ;; | ||
2767 | 2541 | "RTN","MAGDMEDL",18,0) | ||
2768 | 2542 | Q | ||
2769 | 2543 | "RTN","MAGDMEDL",19,0) | ||
2770 | 2544 | SELECT(ITEM,ARRAY) ; | ||
2771 | 2545 | "RTN","MAGDMEDL",20,0) | ||
2772 | 2546 | ; | ||
2773 | 2547 | "RTN","MAGDMEDL",21,0) | ||
2774 | 2548 | SELECT2 | ||
2775 | 2549 | "RTN","MAGDMEDL",22,0) | ||
2776 | 2550 | N CNT,DIR,DIROUT,DIRUT,ENTRY | ||
2777 | 2551 | "RTN","MAGDMEDL",23,0) | ||
2778 | 2552 | S CNT=+ARRAY | ||
2779 | 2553 | "RTN","MAGDMEDL",24,0) | ||
2780 | 2554 | I 'CNT Q 0 | ||
2781 | 2555 | "RTN","MAGDMEDL",25,0) | ||
2782 | 2556 | S DIR(0)="NO^1:"_CNT,DIR("A")="Select a Medicine Procedure" | ||
2783 | 2557 | "RTN","MAGDMEDL",26,0) | ||
2784 | 2558 | S DIR("T")=600 D ^DIR | ||
2785 | 2559 | "RTN","MAGDMEDL",27,0) | ||
2786 | 2560 | I $D(DIRUT)!($D(DIROUT)) Q 0 | ||
2787 | 2561 | "RTN","MAGDMEDL",28,0) | ||
2788 | 2562 | S ENTRY=+Y | ||
2789 | 2563 | "RTN","MAGDMEDL",29,0) | ||
2790 | 2564 | I '$D(ARRAY(ENTRY)) D G SELECT2 | ||
2791 | 2565 | "RTN","MAGDMEDL",30,0) | ||
2792 | 2566 | . W !,"Please select an entry or use '^' to exit" | ||
2793 | 2567 | "RTN","MAGDMEDL",31,0) | ||
2794 | 2568 | W !,"You have selected ",$P(ARRAY(ENTRY),"^"),"." | ||
2795 | 2569 | "RTN","MAGDMEDL",32,0) | ||
2796 | 2570 | Q $P(ARRAY(ENTRY),"^",2) | ||
2797 | 2571 | "RTN","MAGDMEDL",33,0) | ||
2798 | 2572 | ; | ||
2799 | 2573 | "RTN","MAGDMEDL",34,0) | ||
2800 | 2574 | LOOP(ARRAY,MAGPAT,SUB,CASEDT) ; | ||
2801 | 2575 | "RTN","MAGDMEDL",35,0) | ||
2802 | 2576 | ; MAGPAT = patient's dfn | ||
2803 | 2577 | "RTN","MAGDMEDL",36,0) | ||
2804 | 2578 | ; SUB = Medicine specialty | ||
2805 | 2579 | "RTN","MAGDMEDL",37,0) | ||
2806 | 2580 | ; CASEDT = case date | ||
2807 | 2581 | "RTN","MAGDMEDL",38,0) | ||
2808 | 2582 | ; array(0)= 1 or 0 ^ # entries found ^ message text | ||
2809 | 2583 | "RTN","MAGDMEDL",39,0) | ||
2810 | 2584 | ; array(#)= formatted out dislay without delimeters | ||
2811 | 2585 | "RTN","MAGDMEDL",40,0) | ||
2812 | 2586 | ; array(#,1) = internal stored values | ||
2813 | 2587 | "RTN","MAGDMEDL",41,0) | ||
2814 | 2588 | ; Variable MAGDIMG | ||
2815 | 2589 | "RTN","MAGDMEDL",42,0) | ||
2816 | 2590 | S ARRAY(0)="0^^No entries found" | ||
2817 | 2591 | "RTN","MAGDMEDL",43,0) | ||
2818 | 2592 | Q:'MAGPAT | ||
2819 | 2593 | "RTN","MAGDMEDL",44,0) | ||
2820 | 2594 | Q:'$D(MAGMC)#10 ;Array should be available. | ||
2821 | 2595 | "RTN","MAGDMEDL",45,0) | ||
2822 | 2596 | N BEG,CDT,CNT,DATA,DIOCM,EN,END,IMG,IMAGEPTR,MAGDIMG,PATIENT,PATNME,PRCNM,SSN,THEDT,X1,X2,X | ||
2823 | 2597 | "RTN","MAGDMEDL",46,0) | ||
2824 | 2598 | N IEN,II,IOUT,MAGMC,MEDFILE | ||
2825 | 2599 | "RTN","MAGDMEDL",47,0) | ||
2826 | 2600 | Q:'$$FIND1^DIC(2,,"A",MAGPAT,"","") | ||
2827 | 2601 | "RTN","MAGDMEDL",48,0) | ||
2828 | 2602 | S PATNME=$P(^DPT(MAGPAT,0),"^"),SSN=$P(^(0),"^",9) | ||
2829 | 2603 | "RTN","MAGDMEDL",49,0) | ||
2830 | 2604 | S PATIENT=PATNME_" "_SSN | ||
2831 | 2605 | "RTN","MAGDMEDL",50,0) | ||
2832 | 2606 | I 'CASEDT S CASEDT=DT | ||
2833 | 2607 | "RTN","MAGDMEDL",51,0) | ||
2834 | 2608 | S X1=CASEDT,X2=-3 D C^%DTC S BEG=X | ||
2835 | 2609 | "RTN","MAGDMEDL",52,0) | ||
2836 | 2610 | S END=CASEDT+.9999 | ||
2837 | 2611 | "RTN","MAGDMEDL",53,0) | ||
2838 | 2612 | S CNT=0,CDT=BEG-.001 | ||
2839 | 2613 | "RTN","MAGDMEDL",54,0) | ||
2840 | 2614 | F S CDT=$O(MAGMC(MAGPAT,SUB,CDT)) Q:'CDT!(CDT>END) D | ||
2841 | 2615 | "RTN","MAGDMEDL",55,0) | ||
2842 | 2616 | . S EN=0 F S EN=$O(MAGMC(MAGPAT,SUB,CDT,EN)) Q:'EN D | ||
2843 | 2617 | "RTN","MAGDMEDL",56,0) | ||
2844 | 2618 | . . S DATA=MAGMC(MAGPAT,SUB,CDT,EN) | ||
2845 | 2619 | "RTN","MAGDMEDL",57,0) | ||
2846 | 2620 | . . S PRCNM=$P(DATA,"^",2),PRC=SUB | ||
2847 | 2621 | "RTN","MAGDMEDL",58,0) | ||
2848 | 2622 | . . S THEDT=$P(DATA,"^"),IEN=$P(DATA,"^",5) | ||
2849 | 2623 | "RTN","MAGDMEDL",59,0) | ||
2850 | 2624 | . . I $D(MAGMC(MAGPAT,SUB,CDT,EN,2005)) S (IOUT,II)=0 D | ||
2851 | 2625 | "RTN","MAGDMEDL",60,0) | ||
2852 | 2626 | . . . F S II=$O(MAGMC(MAGPAT,SUB,CDT,EN,2005,II)) Q:'II!IOUT D | ||
2853 | 2627 | "RTN","MAGDMEDL",61,0) | ||
2854 | 2628 | . . . . S IMAGEPTR=MAGMC(MAGPAT,SUB,CDT,EN,2005,II) | ||
2855 | 2629 | "RTN","MAGDMEDL",62,0) | ||
2856 | 2630 | . . . . I '$D(^MAG(2005,IMAGEPTR)) S IMAGEPTR="" Q | ||
2857 | 2631 | "RTN","MAGDMEDL",63,0) | ||
2858 | 2632 | . . . . I '$D(^MAG(2005,IMAGEPTR,"PACS")) S IMAGEPTR="",IOUT=1 | ||
2859 | 2633 | "RTN","MAGDMEDL",64,0) | ||
2860 | 2634 | . . S MEDFILE=$P(DATA,"^",4),MEDFILE=$P(MEDFILE,"MCAR(",2) | ||
2861 | 2635 | "RTN","MAGDMEDL",65,0) | ||
2862 | 2636 | . . S DICOM="" D DICOMID^MAGDMEDI(.DICOM,MEDFILE,IEN,PRC,MAGPAT) | ||
2863 | 2637 | "RTN","MAGDMEDL",66,0) | ||
2864 | 2638 | . . I DICOM'="" D | ||
2865 | 2639 | "RTN","MAGDMEDL",67,0) | ||
2866 | 2640 | . . . S DICOM=$P(DICOM,":",2) | ||
2867 | 2641 | "RTN","MAGDMEDL",68,0) | ||
2868 | 2642 | . . . S CNT=CNT+1 | ||
2869 | 2643 | "RTN","MAGDMEDL",69,0) | ||
2870 | 2644 | . . . S ARRAY(CNT)=DICOM_" "_PRCNM_", "_THEDT_" "_PATIENT | ||
2871 | 2645 | "RTN","MAGDMEDL",70,0) | ||
2872 | 2646 | . . . S ARRAY(CNT,1)=DICOM_"^"_PATNME_"^"_SSN_"^"_EN_"^"_PRCNM_"^"_PRC_"^"_$G(IMAGEPTR)_"^"_MEDFILE | ||
2873 | 2647 | "RTN","MAGDMEDL",71,0) | ||
2874 | 2648 | I CNT S ARRAY(0)="1^"_CNT_"^Medicine file entries for "_PATIENT | ||
2875 | 2649 | "RTN","MAGDMEDL",72,0) | ||
2876 | 2650 | Q | ||
2877 | 2651 | "RTN","MAGDMEDL",73,0) | ||
2878 | 2652 | DISPLAY(ARRAY) ; | ||
2879 | 2653 | "RTN","MAGDMEDL",74,0) | ||
2880 | 2654 | ; Call routine needs to pass array in the following sequence | ||
2881 | 2655 | "RTN","MAGDMEDL",75,0) | ||
2882 | 2656 | ; ARRAY(0)= 1 or 0 ^ #entries ^ message | ||
2883 | 2657 | "RTN","MAGDMEDL",76,0) | ||
2884 | 2658 | ; ARRAY(#)= Formatted output to be displayed. | ||
2885 | 2659 | "RTN","MAGDMEDL",77,0) | ||
2886 | 2660 | ; Will set the RES variable for selected entry. | ||
2887 | 2661 | "RTN","MAGDMEDL",78,0) | ||
2888 | 2662 | I '$D(ARRAY(0)) Q 0 | ||
2889 | 2663 | "RTN","MAGDMEDL",79,0) | ||
2890 | 2664 | ; If only one entry return the subscript variable. | ||
2891 | 2665 | "RTN","MAGDMEDL",80,0) | ||
2892 | 2666 | I $P(ARRAY(0),"^",2)=1 Q 1 | ||
2893 | 2667 | "RTN","MAGDMEDL",81,0) | ||
2894 | 2668 | I $P(ARRAY(0),"^")'=1 Q 0 | ||
2895 | 2669 | "RTN","MAGDMEDL",82,0) | ||
2896 | 2670 | N ENTRY,ITEM,ITEMS,MSG,OUT,OUTPUT,RES | ||
2897 | 2671 | "RTN","MAGDMEDL",83,0) | ||
2898 | 2672 | S RES=0,MSG=$P(ARRAY(0),"^",3) | ||
2899 | 2673 | "RTN","MAGDMEDL",84,0) | ||
2900 | 2674 | S IOF="#,$C(27,91,72,27,91,74,8,8,8,8)",IO=0,IOSL=24,POP=0 | ||
2901 | 2675 | "RTN","MAGDMEDL",85,0) | ||
2902 | 2676 | D HEAD | ||
2903 | 2677 | "RTN","MAGDMEDL",86,0) | ||
2904 | 2678 | S (ENTRY,OUT)=0,ITEMS=$P(ARRAY(0),"^",2) | ||
2905 | 2679 | "RTN","MAGDMEDL",87,0) | ||
2906 | 2680 | F S ENTRY=$O(ARRAY(ENTRY)) Q:'ENTRY!OUT D | ||
2907 | 2681 | "RTN","MAGDMEDL",88,0) | ||
2908 | 2682 | . S OUTPUT=$G(ARRAY(ENTRY)) | ||
2909 | 2683 | "RTN","MAGDMEDL",89,0) | ||
2910 | 2684 | . D:$Y+3>IOSL HEAD D LINE | ||
2911 | 2685 | "RTN","MAGDMEDL",90,0) | ||
2912 | 2686 | . D:$Y+3>IOSL ASKQ | ||
2913 | 2687 | "RTN","MAGDMEDL",91,0) | ||
2914 | 2688 | I 'OUT D ASKQ S RES=ITEM | ||
2915 | 2689 | "RTN","MAGDMEDL",92,0) | ||
2916 | 2690 | Q RES | ||
2917 | 2691 | "RTN","MAGDMEDL",93,0) | ||
2918 | 2692 | HEAD ; | ||
2919 | 2693 | "RTN","MAGDMEDL",94,0) | ||
2920 | 2694 | W:$Y+3>IOSL @IOF W !,MSG | ||
2921 | 2695 | "RTN","MAGDMEDL",95,0) | ||
2922 | 2696 | Q | ||
2923 | 2697 | "RTN","MAGDMEDL",96,0) | ||
2924 | 2698 | LINE ; | ||
2925 | 2699 | "RTN","MAGDMEDL",97,0) | ||
2926 | 2700 | W !,ENTRY,".) "_OUTPUT | ||
2927 | 2701 | "RTN","MAGDMEDL",98,0) | ||
2928 | 2702 | Q | ||
2929 | 2703 | "RTN","MAGDMEDL",99,0) | ||
2930 | 2704 | ASKQ ; | ||
2931 | 2705 | "RTN","MAGDMEDL",100,0) | ||
2932 | 2706 | N X,Y,DIR | ||
2933 | 2707 | "RTN","MAGDMEDL",101,0) | ||
2934 | 2708 | S DIR(0)="L^1:"_$S('ENTRY:ITEMS,1:ENTRY) | ||
2935 | 2709 | "RTN","MAGDMEDL",102,0) | ||
2936 | 2710 | S DIR("T")=600,DIR("A")="Select an entry: " D ^DIR | ||
2937 | 2711 | "RTN","MAGDMEDL",103,0) | ||
2938 | 2712 | S ITEM=+Y | ||
2939 | 2713 | "RTN","MAGDMEDL",104,0) | ||
2940 | 2714 | Q:$D(DIRUT)!($D(DIROUT)) | ||
2941 | 2715 | "RTN","MAGDMEDL",105,0) | ||
2942 | 2716 | Q:'ITEM | ||
2943 | 2717 | "RTN","MAGDMEDL",106,0) | ||
2944 | 2718 | I '$D(ARRAY(ITEM)) W !,"Please select an entry or '^' to exit" G ASKQ | ||
2945 | 2719 | "RTN","MAGDMEDL",107,0) | ||
2946 | 2720 | W !,"You have selected ",$P($G(ARRAY(ITEM)),"^") | ||
2947 | 2721 | "RTN","MAGDMEDL",108,0) | ||
2948 | 2722 | S OUT=1 | ||
2949 | 2723 | "RTN","MAGDMEDL",109,0) | ||
2950 | 2724 | Q | ||
2951 | 2725 | "RTN","MAGDMEDL",110,0) | ||
2952 | 2726 | ASKMORE() ; | ||
2953 | 2727 | "RTN","MAGDMEDL",111,0) | ||
2954 | 2728 | N DIR,DATE,X,XX,Y | ||
2955 | 2729 | "RTN","MAGDMEDL",112,0) | ||
2956 | 2730 | Q:'$D(MAGPAT) | ||
2957 | 2731 | "RTN","MAGDMEDL",113,0) | ||
2958 | 2732 | Q:'$D(SUB) | ||
2959 | 2733 | "RTN","MAGDMEDL",114,0) | ||
2960 | 2734 | S DIR(0)="Y",DIR("B")="NO" | ||
2961 | 2735 | "RTN","MAGDMEDL",115,0) | ||
2962 | 2736 | S DIR("A")="Search further" | ||
2963 | 2737 | "RTN","MAGDMEDL",116,0) | ||
2964 | 2738 | D ^DIR K DIR | ||
2965 | 2739 | "RTN","MAGDMEDL",117,0) | ||
2966 | 2740 | I 'Y Q 0 | ||
2967 | 2741 | "RTN","MAGDMEDL",118,0) | ||
2968 | 2742 | W !,"Search will include 3 days prior to the day specified." | ||
2969 | 2743 | "RTN","MAGDMEDL",119,0) | ||
2970 | 2744 | S DIR(0)="D^::EXP" D ^DIR | ||
2971 | 2745 | "RTN","MAGDMEDL",120,0) | ||
2972 | 2746 | ; Y2K compliance all calls to %DT must have either past or future date | ||
2973 | 2747 | "RTN","MAGDMEDL",121,0) | ||
2974 | 2748 | I 'Y Q 0 | ||
2975 | 2749 | "RTN","MAGDMEDL",122,0) | ||
2976 | 2750 | S DATE=Y | ||
2977 | 2751 | "RTN","MAGDMEDL",123,0) | ||
2978 | 2752 | D LOOP(.XX,MAGPAT,SUB,DATE) | ||
2979 | 2753 | "RTN","MAGDMEDL",124,0) | ||
2980 | 2754 | I $D(XX(0)),$P(XX(0),"^")=0 D Q 0 | ||
2981 | 2755 | "RTN","MAGDMEDL",125,0) | ||
2982 | 2756 | . W "No entries found." | ||
2983 | 2757 | "RTN","MAGDMEDL",126,0) | ||
2984 | 2758 | Q 1 | ||
2985 | 2759 | "RTN","MSCGUX53") | ||
2986 | 2760 | 0^^B360592 | ||
2987 | 2761 | "RTN","MSCGUX53",1,0) | ||
2988 | 2762 | MSCGUX53 ;MSC/JDS - ENVIRONMENT CHECK ; ; 29 Apr 2009 1:47 PM | ||
2989 | 2763 | "RTN","MSCGUX53",2,0) | ||
2990 | 2764 | ;;**MSC**; | ||
2991 | 2765 | "RTN","MSCGUX53",3,0) | ||
2992 | 2766 | I $G(^%ZOSF("OS"))'["GT.M" Q ;Not GTM | ||
2993 | 2767 | "RTN","MSCGUX53",4,0) | ||
2994 | 2768 | I $P($ZV,"V",2)<5.3 D MESS^XPDUL("GT.M version must be 5.3 or Greater") S XPDABORT=2 | ||
2995 | 2769 | "RTN","MSCGUX53",5,0) | ||
2996 | 2770 | |||
2997 | 2771 | "RTN","MSCGUX53",6,0) | ||
2998 | 2772 | |||
2999 | 2773 | "RTN","MSCGUX53",7,0) | ||
3000 | 2774 | |||
3001 | 2775 | "RTN","MSCXUS3A") | ||
3002 | 2776 | 0^31^B8005003 | ||
3003 | 2777 | "RTN","MSCXUS3A",1,0) | ||
3004 | 2778 | MSCXUS3A ;SF-ISC/STAFF MSC/JDS - CHANGE UCI'S ;30APR2009 | ||
3005 | 2779 | "RTN","MSCXUS3A",2,0) | ||
3006 | 2780 | ;;8.0;KERNEL;**13,282,MSC**;Jul 10, 1995 | ||
3007 | 2781 | "RTN","MSCXUS3A",3,0) | ||
3008 | 2782 | Q | ||
3009 | 2783 | "RTN","MSCXUS3A",4,0) | ||
3010 | 2784 | ;PICK A UCI TO SWITCH TO | ||
3011 | 2785 | "RTN","MSCXUS3A",5,0) | ||
3012 | 2786 | SWITCH ;Allow users that have the UCI fIeld In there NP fIle to swItch UCI's. | ||
3013 | 2787 | "RTN","MSCXUS3A",6,0) | ||
3014 | 2788 | W !!,"Switch UCI's optIon.",! | ||
3015 | 2789 | "RTN","MSCXUS3A",7,0) | ||
3016 | 2790 | ;I $$PROGMODE^%ZOSV() W !,$C(7),"No switching UCI's In Programmer Mode." Q | ||
3017 | 2791 | "RTN","MSCXUS3A",8,0) | ||
3018 | 2792 | N DIR,X,Y,PGM,%UCI,DEF,L,USERNAME | ||
3019 | 2793 | "RTN","MSCXUS3A",9,0) | ||
3020 | 2794 | S DEF="ZU" ;DEF is default routine to swItch to. | ||
3021 | 2795 | "RTN","MSCXUS3A",10,0) | ||
3022 | 2796 | UCI Q:'$G(DUZ) S USERNAME=$P($G(^VA(200,DUZ,0)),U) Q:USERNAME="" | ||
3023 | 2797 | "RTN","MSCXUS3A",11,0) | ||
3024 | 2798 | S DIR(0)="S^"_$$NSP(USERNAME) I DIR(0)'[";" W "YOU AREN'T A USER IN ANY OTHER NAMESPACE" Q | ||
3025 | 2799 | "RTN","MSCXUS3A",12,0) | ||
3026 | 2800 | S DIR("A")="Select NAMESPACE" | ||
3027 | 2801 | "RTN","MSCXUS3A",13,0) | ||
3028 | 2802 | D ^DIR K DIR I $D(DUOUT)!$D(DTOUT)!(U[X) Q | ||
3029 | 2803 | "RTN","MSCXUS3A",14,0) | ||
3030 | 2804 | SAME I X="" Q ;Didn't select anythIng. | ||
3031 | 2805 | "RTN","MSCXUS3A",15,0) | ||
3032 | 2806 | ;D PM | ||
3033 | 2807 | "RTN","MSCXUS3A",16,0) | ||
3034 | 2808 | S (X,%UCI)=Y(0) X ^%ZOSF("UCICHECK") I 0[Y G BAD | ||
3035 | 2809 | "RTN","MSCXUS3A",17,0) | ||
3036 | 2810 | K XQY0 S Y=$O(^[%UCI]VA(200,"B",USERNAME,0)) | ||
3037 | 2811 | "RTN","MSCXUS3A",18,0) | ||
3038 | 2812 | I Y S DIR=$P($G(^[%UCI]VA(200,Y,201)),U) | ||
3039 | 2813 | "RTN","MSCXUS3A",19,0) | ||
3040 | 2814 | I DIR,$P($G(^[%UCI]DIC(19,DIR,0)),U,4)="M" S DUZ=Y,XQY=DIR,(DEF,PGM)="%MSCXUCI" G NXT | ||
3041 | 2815 | "RTN","MSCXUS3A",20,0) | ||
3042 | 2816 | BAD W !,"UCI not found!" D SHOW G UCI | ||
3043 | 2817 | "RTN","MSCXUS3A",21,0) | ||
3044 | 2818 | ; | ||
3045 | 2819 | "RTN","MSCXUS3A",22,0) | ||
3046 | 2820 | NXT ;Here we go. | ||
3047 | 2821 | "RTN","MSCXUS3A",23,0) | ||
3048 | 2822 | D C^XUSCLEAN K ^XUTL("XQ",$J),^XUTL($J),^TMP($J),^UTILITY($J) | ||
3049 | 2823 | "RTN","MSCXUS3A",24,0) | ||
3050 | 2824 | K DA G GO^%MSCXUCI | ||
3051 | 2825 | "RTN","MSCXUS3A",25,0) | ||
3052 | 2826 | ; | ||
3053 | 2827 | "RTN","MSCXUS3A",26,0) | ||
3054 | 2828 | ; | ||
3055 | 2829 | "RTN","MSCXUS3A",27,0) | ||
3056 | 2830 | SHOW W ! S I=0,UC="",X=$S($D(^VA(200,DUZ,201)):+^(201),1:0) | ||
3057 | 2831 | "RTN","MSCXUS3A",28,0) | ||
3058 | 2832 | W !,"Enter ^ to return to your current menu, or select from:" | ||
3059 | 2833 | "RTN","MSCXUS3A",29,0) | ||
3060 | 2834 | F I=0:0 S I=$O(^VA(200,DUZ,.2,I)) Q:I'>0 D | ||
3061 | 2835 | "RTN","MSCXUS3A",30,0) | ||
3062 | 2836 | . W !,?5 S UC=$G(^VA(200,DUZ,.2,I,0)),X=$P(UC,U,1),UC=$P(UC,U,2,99) | ||
3063 | 2837 | "RTN","MSCXUS3A",31,0) | ||
3064 | 2838 | . I UC'[":" W I | ||
3065 | 2839 | "RTN","MSCXUS3A",32,0) | ||
3066 | 2840 | . D PM W ?10,X X ^%ZOSF("UCICHECK") I 0[Y W " -- Not currently a valId UCI!",$C(7) Q | ||
3067 | 2841 | "RTN","MSCXUS3A",33,0) | ||
3068 | 2842 | . W:UC]"" ":"_UC | ||
3069 | 2843 | "RTN","MSCXUS3A",34,0) | ||
3070 | 2844 | . Q | ||
3071 | 2845 | "RTN","MSCXUS3A",35,0) | ||
3072 | 2846 | Q | ||
3073 | 2847 | "RTN","MSCXUS3A",36,0) | ||
3074 | 2848 | ; | ||
3075 | 2849 | "RTN","MSCXUS3A",37,0) | ||
3076 | 2850 | PM I X="PROD"!(X="MGR") S X=^%ZOSF(X) | ||
3077 | 2851 | "RTN","MSCXUS3A",38,0) | ||
3078 | 2852 | Q | ||
3079 | 2853 | "RTN","MSCXUS3A",39,0) | ||
3080 | 2854 | ; | ||
3081 | 2855 | "RTN","MSCXUS3A",40,0) | ||
3082 | 2856 | ; | ||
3083 | 2857 | "RTN","MSCXUS3A",41,0) | ||
3084 | 2858 | ; | ||
3085 | 2859 | "RTN","MSCXUS3A",42,0) | ||
3086 | 2860 | NSP(USERNAME) ;LIST OTHER NAMESPACES WHERE THIS USER IS | ||
3087 | 2861 | "RTN","MSCXUS3A",43,0) | ||
3088 | 2862 | N X,L,I,Y | ||
3089 | 2863 | "RTN","MSCXUS3A",44,0) | ||
3090 | 2864 | X ^%ZOSF("UCI") S Y=$P(Y,",") I ^%ZOSF("OS")["GT.M" G GTMNSP | ||
3091 | 2865 | "RTN","MSCXUS3A",45,0) | ||
3092 | 2866 | f I=1:1:$zu(90,0) s L($zu(90,2,0,I))="" ;***CACHE-SPECIFIC FROM %NSP | ||
3093 | 2867 | "RTN","MSCXUS3A",46,0) | ||
3094 | 2868 | S (I,L,X)="" F S I=$O(L(I)) Q:I="" I I'=Y D ;NOT THE CURRENT ONE | ||
3095 | 2869 | "RTN","MSCXUS3A",47,0) | ||
3096 | 2870 | .N DUZ S DUZ=$O(^[I]VA(200,"B",USERNAME,0)) Q:'DUZ | ||
3097 | 2871 | "RTN","MSCXUS3A",48,0) | ||
3098 | 2872 | .I $P($G(^[I]VA(200,DUZ,0)),U,3)=""!'$G(^(201)) Q ;THEY MUST HAVE ACCESS CODE AND PRIMARY MENU OPTION OVER THERE | ||
3099 | 2873 | "RTN","MSCXUS3A",49,0) | ||
3100 | 2874 | .S L=L+1,X=X_L_":"_I_";" | ||
3101 | 2875 | "RTN","MSCXUS3A",50,0) | ||
3102 | 2876 | Q X | ||
3103 | 2877 | "RTN","MSCXUS3A",51,0) | ||
3104 | 2878 | GTMNSP ; | ||
3105 | 2879 | "RTN","MSCXUS3A",52,0) | ||
3106 | 2880 | N CURRENT S CURRENT=Y | ||
3107 | 2881 | "RTN","MSCXUS3A",53,0) | ||
3108 | 2882 | D LIST^ZCD() | ||
3109 | 2883 | "RTN","MSCXUS3A",54,0) | ||
3110 | 2884 | S (I,L,X)="" F S I=$O(Y(I)) Q:'I S A=Y(I) I A'=CURRENT D ;NOT THE CURRENT ONE | ||
3111 | 2885 | "RTN","MSCXUS3A",55,0) | ||
3112 | 2886 | .S A=$P($ZG,"/"_$$CURRENT^ZCD_"/")_"/"_A_"/"_$P($ZG,"/"_$$CURRENT^ZCD_"/",2) | ||
3113 | 2887 | "RTN","MSCXUS3A",56,0) | ||
3114 | 2888 | .N DUZ S DUZ=$O(^[A]VA(200,"B",USERNAME,0)) Q:'DUZ | ||
3115 | 2889 | "RTN","MSCXUS3A",57,0) | ||
3116 | 2890 | .I $P($G(^[A]VA(200,DUZ,0)),U,3)=""!'$G(^(201)) Q ;THEY MUST HAVE ACCESS CODE AND PRIMARY MENU OPTION OVER THERE | ||
3117 | 2891 | "RTN","MSCXUS3A",58,0) | ||
3118 | 2892 | .S L=L+1,X=X_L_":"_A_";" | ||
3119 | 2893 | "RTN","MSCXUS3A",59,0) | ||
3120 | 2894 | Q X | ||
3121 | 2895 | "RTN","MSCZJOB") | ||
3122 | 2896 | 0^1^B11312416 | ||
3123 | 2897 | "RTN","MSCZJOB",1,0) | ||
3124 | 2898 | MSCZJOB ;GFT,JDS/MSC;1 MAY 2009 | ||
3125 | 2899 | "RTN","MSCZJOB",2,0) | ||
3126 | 2900 | ;;8.0;KERNEL;**MSC** | ||
3127 | 2901 | "RTN","MSCZJOB",3,0) | ||
3128 | 2902 | W !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3129 | 2903 | "RTN","MSCZJOB",4,0) | ||
3130 | 2904 | N MSC | ||
3131 | 2905 | "RTN","MSCZJOB",5,0) | ||
3132 | 2906 | DDS ; | ||
3133 | 2907 | "RTN","MSCZJOB",6,0) | ||
3134 | 2908 | S DDSFILE=3.081,DR="[MSCZJOBEXAM]",DDSPARM="S" | ||
3135 | 2909 | "RTN","MSCZJOB",7,0) | ||
3136 | 2910 | D ^DDS Q | ||
3137 | 2911 | "RTN","MSCZJOB",8,0) | ||
3138 | 2912 | ; | ||
3139 | 2913 | "RTN","MSCZJOB",9,0) | ||
3140 | 2914 | UNLOCK(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK | ||
3141 | 2915 | "RTN","MSCZJOB",10,0) | ||
3142 | 2916 | N X,R S R=$G(@MSC@(MSCJOBID,"L",D0)) I R'["^" Q ;CAN'T SEE IT | ||
3143 | 2917 | "RTN","MSCZJOB",11,0) | ||
3144 | 2918 | S R=$P(R," ",2),X="L "_R D ^DIM Q:'$D(X) | ||
3145 | 2919 | "RTN","MSCZJOB",12,0) | ||
3146 | 2920 | D UNLOCK^MSCZJOBU(R) | ||
3147 | 2921 | "RTN","MSCZJOB",13,0) | ||
3148 | 2922 | Q | ||
3149 | 2923 | "RTN","MSCZJOB",14,0) | ||
3150 | 2924 | ; | ||
3151 | 2925 | "RTN","MSCZJOB",15,0) | ||
3152 | 2926 | KILL(J) ;FROM FIELD | ||
3153 | 2927 | "RTN","MSCZJOB",16,0) | ||
3154 | 2928 | D KILL^MSCZJOBU(J) | ||
3155 | 2929 | "RTN","MSCZJOB",17,0) | ||
3156 | 2930 | Q | ||
3157 | 2931 | "RTN","MSCZJOB",18,0) | ||
3158 | 2932 | ; | ||
3159 | 2933 | "RTN","MSCZJOB",19,0) | ||
3160 | 2934 | COMPMUL ;COMPUTED MULTIPLE FOR MSCZJOBEXAM BLOCK | ||
3161 | 2935 | "RTN","MSCZJOB",20,0) | ||
3162 | 2936 | N X,D0,J | ||
3163 | 2937 | "RTN","MSCZJOB",21,0) | ||
3164 | 2938 | S MSC="^TMP(""MSCZJOB"")" D POLL | ||
3165 | 2939 | "RTN","MSCZJOB",22,0) | ||
3166 | 2940 | F D0=0:0 S D0=$O(MSCZJOB(D0)) Q:'D0 D | ||
3167 | 2941 | "RTN","MSCZJOB",23,0) | ||
3168 | 2942 | .S MSCZJOB(D0)=MSCZJOB(D0)_U_$$DEV(D0)_U_$$USER(D0)_U_$$NSP(D0)_U_U_U_U_U_$$ROUTINE(D0) | ||
3169 | 2943 | "RTN","MSCZJOB",24,0) | ||
3170 | 2944 | .S X=MSCZJOB(D0) X DICMX | ||
3171 | 2945 | "RTN","MSCZJOB",25,0) | ||
3172 | 2946 | Q | ||
3173 | 2947 | "RTN","MSCZJOB",26,0) | ||
3174 | 2948 | JOB(D0) Q $P(MSCZJOB(D0),U) ;*** | ||
3175 | 2949 | "RTN","MSCZJOB",27,0) | ||
3176 | 2950 | DEV(D0) Q $$FIND(D0,"I","$PRINCIPAL") | ||
3177 | 2951 | "RTN","MSCZJOB",28,0) | ||
3178 | 2952 | NSP(D0) N N D Q N | ||
3179 | 2953 | "RTN","MSCZJOB",29,0) | ||
3180 | 2954 | .N L,P S N=$$FIND(D0,"I","$ZGBLDIR"),L=$L(N,"/") I L<2 Q | ||
3181 | 2955 | "RTN","MSCZJOB",30,0) | ||
3182 | 2956 | .F L=L-1:-1:2 S P=$P(N,"/",L) I P'[".",P'["globals" Q | ||
3183 | 2957 | "RTN","MSCZJOB",31,0) | ||
3184 | 2958 | .S P=1 I $P(N,"/")="" S P=2 | ||
3185 | 2959 | "RTN","MSCZJOB",32,0) | ||
3186 | 2960 | .S N=$P(N,"/",P,L) | ||
3187 | 2961 | "RTN","MSCZJOB",33,0) | ||
3188 | 2962 | USER(D0) Q $P($G(^VA(200,+$$FIND(D0,"V","DUZ"),0)),U) | ||
3189 | 2963 | "RTN","MSCZJOB",34,0) | ||
3190 | 2964 | ROUTINE(D0) Q $$FIND(D0,"V","%ZPOS") | ||
3191 | 2965 | "RTN","MSCZJOB",35,0) | ||
3192 | 2966 | ; | ||
3193 | 2967 | "RTN","MSCZJOB",36,0) | ||
3194 | 2968 | FIND(D0,ARR,KEY) N I,J,X S X="",J=+MSCZJOB(D0) | ||
3195 | 2969 | "RTN","MSCZJOB",37,0) | ||
3196 | 2970 | F I=0:0 S I=$O(@MSC@(J,ARR,I)) Q:'I I $P(^(I),KEY_"=")="" S X=$TR($P(^(I),"=",2),"""") Q | ||
3197 | 2971 | "RTN","MSCZJOB",38,0) | ||
3198 | 2972 | Q X | ||
3199 | 2973 | "RTN","MSCZJOB",39,0) | ||
3200 | 2974 | ; | ||
3201 | 2975 | "RTN","MSCZJOB",40,0) | ||
3202 | 2976 | COMPSTK ;COMPUTED MULTIPLE FOR MSCZJOBSTACK BLOCK | ||
3203 | 2977 | "RTN","MSCZJOB",41,0) | ||
3204 | 2978 | S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1 | ||
3205 | 2979 | "RTN","MSCZJOB",42,0) | ||
3206 | 2980 | N D0,J S J=MSCJOBID | ||
3207 | 2981 | "RTN","MSCZJOB",43,0) | ||
3208 | 2982 | F D0=1:1:$O(@MSC@(J,"S",""),-1) S X="" X DICMX | ||
3209 | 2983 | "RTN","MSCZJOB",44,0) | ||
3210 | 2984 | Q | ||
3211 | 2985 | "RTN","MSCZJOB",45,0) | ||
3212 | 2986 | ; | ||
3213 | 2987 | "RTN","MSCZJOB",46,0) | ||
3214 | 2988 | STACK(D0) N X S X=$G(@MSC@(MSCJOBID,"S",D0)) | ||
3215 | 2989 | "RTN","MSCZJOB",47,0) | ||
3216 | 2990 | Q X | ||
3217 | 2991 | "RTN","MSCZJOB",48,0) | ||
3218 | 2992 | ; | ||
3219 | 2993 | "RTN","MSCZJOB",49,0) | ||
3220 | 2994 | COMPVARS ;COMPUTED MULTIPLE FOR MSCZJOBVARS BLOCK | ||
3221 | 2995 | "RTN","MSCZJOB",50,0) | ||
3222 | 2996 | S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1 | ||
3223 | 2997 | "RTN","MSCZJOB",51,0) | ||
3224 | 2998 | N D0,J S J=MSCJOBID | ||
3225 | 2999 | "RTN","MSCZJOB",52,0) | ||
3226 | 3000 | F D0=1:1:$O(@MSC@(J,"V",""),-1) S X="" X DICMX | ||
3227 | 3001 | "RTN","MSCZJOB",53,0) | ||
3228 | 3002 | Q | ||
3229 | 3003 | "RTN","MSCZJOB",54,0) | ||
3230 | 3004 | ; | ||
3231 | 3005 | "RTN","MSCZJOB",55,0) | ||
3232 | 3006 | COMPLKS ;COMPUTED MULTIPLE FOR MSCZJOBLOCKS BLOCK | ||
3233 | 3007 | "RTN","MSCZJOB",56,0) | ||
3234 | 3008 | S MSC="^TMP(""MSCZJOB"")" D POLL1 | ||
3235 | 3009 | "RTN","MSCZJOB",57,0) | ||
3236 | 3010 | N D0 | ||
3237 | 3011 | "RTN","MSCZJOB",58,0) | ||
3238 | 3012 | F D0=1:1:$$LOCKS S X="" X DICMX | ||
3239 | 3013 | "RTN","MSCZJOB",59,0) | ||
3240 | 3014 | Q | ||
3241 | 3015 | "RTN","MSCZJOB",60,0) | ||
3242 | 3016 | ; | ||
3243 | 3017 | "RTN","MSCZJOB",61,0) | ||
3244 | 3018 | LOCKS() Q +$O(@MSC@(MSCJOBID,"L",""),-1) | ||
3245 | 3019 | "RTN","MSCZJOB",62,0) | ||
3246 | 3020 | ; | ||
3247 | 3021 | "RTN","MSCZJOB",63,0) | ||
3248 | 3022 | POLL K MSCZJOB ;D HLP^DDSUTL(" POLLING JOBS.....") | ||
3249 | 3023 | "RTN","MSCZJOB",64,0) | ||
3250 | 3024 | I $G(^%ZOSF("OS"))["GT.M" D | ||
3251 | 3025 | "RTN","MSCZJOB",65,0) | ||
3252 | 3026 | .K @MSC | ||
3253 | 3027 | "RTN","MSCZJOB",66,0) | ||
3254 | 3028 | .D INTRPT^MSCZJOBU("*") ;SETS UP ^TMP | ||
3255 | 3029 | "RTN","MSCZJOB",67,0) | ||
3256 | 3030 | .N MSCA,I D PIDS^MSCZJOBU(.MSCA) | ||
3257 | 3031 | "RTN","MSCZJOB",68,0) | ||
3258 | 3032 | .S MSCA="" F I=1:1 S MSCA=$O(MSCA(MSCA)) Q:'MSCA S MSCZJOB(I)=MSCA ;SETS UP LOCAL ARRAY | ||
3259 | 3033 | "RTN","MSCZJOB",69,0) | ||
3260 | 3034 | .H 1 ;WAIT FOR POLLING | ||
3261 | 3035 | "RTN","MSCZJOB",70,0) | ||
3262 | 3036 | D TEST | ||
3263 | 3037 | "RTN","MSCZJOB",71,0) | ||
3264 | 3038 | Q | ||
3265 | 3039 | "RTN","MSCZJOB",72,0) | ||
3266 | 3040 | ; | ||
3267 | 3041 | "RTN","MSCZJOB",73,0) | ||
3268 | 3042 | POLL1 Q:'$G(MSCJOBID) | ||
3269 | 3043 | "RTN","MSCZJOB",74,0) | ||
3270 | 3044 | I $G(^%ZOSF("OS"))["GT.M" D | ||
3271 | 3045 | "RTN","MSCZJOB",75,0) | ||
3272 | 3046 | .K @MSC@(MSCJOBID) | ||
3273 | 3047 | "RTN","MSCZJOB",76,0) | ||
3274 | 3048 | .D INTRPT^MSCZJOBU(MSCJOBID) ;SETS UP ^TMP(MSCZJOB) | ||
3275 | 3049 | "RTN","MSCZJOB",77,0) | ||
3276 | 3050 | .H 1 ;WAIT FOR POLLING | ||
3277 | 3051 | "RTN","MSCZJOB",78,0) | ||
3278 | 3052 | D TEST | ||
3279 | 3053 | "RTN","MSCZJOB",79,0) | ||
3280 | 3054 | Q | ||
3281 | 3055 | "RTN","MSCZJOB",80,0) | ||
3282 | 3056 | ; | ||
3283 | 3057 | "RTN","MSCZJOB",81,0) | ||
3284 | 3058 | TEST Q | ||
3285 | 3059 | "RTN","MSCZJOB",82,0) | ||
3286 | 3060 | COMPLK ;COMPUTED MULTIPLE FOR MSCZLOCK BLOCK | ||
3287 | 3061 | "RTN","MSCZJOB",83,0) | ||
3288 | 3062 | N X,D0,J | ||
3289 | 3063 | "RTN","MSCZJOB",84,0) | ||
3290 | 3064 | S MSC="^TMP(""MSCZJOB"")" D POLL S D0=0 | ||
3291 | 3065 | "RTN","MSCZJOB",85,0) | ||
3292 | 3066 | F K=0:0 S K=$O(MSCZJOB(K)) Q:'K D | ||
3293 | 3067 | "RTN","MSCZJOB",86,0) | ||
3294 | 3068 | .F J=0:0 S J=$O(^TMP("MSCZJOB",MSCZJOB(K),"L",J)) Q:'J S A=$TR(^(J),U,"~") D | ||
3295 | 3069 | "RTN","MSCZJOB",87,0) | ||
3296 | 3070 | ..S D0=D0+1,MSCZLK(D0)=$P(A,"LOCK ",2,9)_U_$$USER(K)_U_$TR($$ROUTINE(K),U,"~")_"^^"_MSCZJOB(K) | ||
3297 | 3071 | "RTN","MSCZJOB",88,0) | ||
3298 | 3072 | ..S X=MSCZLK(D0) X DICMX | ||
3299 | 3073 | "RTN","MSCZJOB",89,0) | ||
3300 | 3074 | Q | ||
3301 | 3075 | "RTN","MSCZJOB",90,0) | ||
3302 | 3076 | LOCK ; | ||
3303 | 3077 | "RTN","MSCZJOB",91,0) | ||
3304 | 3078 | S DDSFILE=3.081,DR="[MSCZLOCK]",DDSPARM="S" | ||
3305 | 3079 | "RTN","MSCZJOB",92,0) | ||
3306 | 3080 | D ^DDS Q | ||
3307 | 3081 | "RTN","MSCZJOB",93,0) | ||
3308 | 3082 | UNL(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK | ||
3309 | 3083 | "RTN","MSCZJOB",94,0) | ||
3310 | 3084 | N X,R S R=$P($G(MSCZLK(D0)),U),P=$P($G(MSCZLK(D0)),U,5) ;I R'["^" Q ;CAN'T SEE IT | ||
3311 | 3085 | "RTN","MSCZJOB",95,0) | ||
3312 | 3086 | S R=$P(R,"~",2),R="^"_$S(R'["(":$P(R," "),1:$P(R,")")_")"),X="L "_R D ^DIM Q:'$D(X) ;GOOD SYNTAX? | ||
3313 | 3087 | "RTN","MSCZJOB",96,0) | ||
3314 | 3088 | D UNLOCK^MSCZJOBU(R) | ||
3315 | 3089 | "RTN","MSCZJOBS") | ||
3316 | 3090 | 0^46^B3252583 | ||
3317 | 3091 | "RTN","MSCZJOBS",1,0) | ||
3318 | 3092 | MSCZJOBS ;JKT/MSC - OpenVista System status ;27MAY2009 | ||
3319 | 3093 | "RTN","MSCZJOBS",2,0) | ||
3320 | 3094 | ;;8.0;KERNEL;**MSC** | ||
3321 | 3095 | "RTN","MSCZJOBS",3,0) | ||
3322 | 3096 | ; | ||
3323 | 3097 | "RTN","MSCZJOBS",4,0) | ||
3324 | 3098 | ALL D SS() Q | ||
3325 | 3099 | "RTN","MSCZJOBS",5,0) | ||
3326 | 3100 | THIS D SS(1) Q | ||
3327 | 3101 | "RTN","MSCZJOBS",6,0) | ||
3328 | 3102 | ; | ||
3329 | 3103 | "RTN","MSCZJOBS",7,0) | ||
3330 | 3104 | SS(THIS) ;Print GT.M mumps processes | ||
3331 | 3105 | "RTN","MSCZJOBS",8,0) | ||
3332 | 3106 | ; If THIS is true, only print processes associated with the current | ||
3333 | 3107 | "RTN","MSCZJOBS",9,0) | ||
3334 | 3108 | ; OpenVista instance | ||
3335 | 3109 | "RTN","MSCZJOBS",10,0) | ||
3336 | 3110 | ; | ||
3337 | 3111 | "RTN","MSCZJOBS",11,0) | ||
3338 | 3112 | Q:$G(^%ZOSF("OS"))'["GT.M" | ||
3339 | 3113 | "RTN","MSCZJOBS",12,0) | ||
3340 | 3114 | ; | ||
3341 | 3115 | "RTN","MSCZJOBS",13,0) | ||
3342 | 3116 | D INTRPT^MSCZJOBU("*") H .5 | ||
3343 | 3117 | "RTN","MSCZJOBS",14,0) | ||
3344 | 3118 | ; | ||
3345 | 3119 | "RTN","MSCZJOBS",15,0) | ||
3346 | 3120 | N DATETIME S DATETIME=$$HTE^XLFDT($H) | ||
3347 | 3121 | "RTN","MSCZJOBS",16,0) | ||
3348 | 3122 | W #!,?22,"OpenVista System Status" | ||
3349 | 3123 | "RTN","MSCZJOBS",17,0) | ||
3350 | 3124 | W !,?(34-($L(DATETIME)/2)\1),DATETIME | ||
3351 | 3125 | "RTN","MSCZJOBS",18,0) | ||
3352 | 3126 | W !!,?1,"Process",?12,"Device",?30,"Instance",?42,"Routine",?56,"User" | ||
3353 | 3127 | "RTN","MSCZJOBS",19,0) | ||
3354 | 3128 | ; | ||
3355 | 3129 | "RTN","MSCZJOBS",20,0) | ||
3356 | 3130 | N PID S PID="" | ||
3357 | 3131 | "RTN","MSCZJOBS",21,0) | ||
3358 | 3132 | D PIDS^MSCZJOBU(.PID) | ||
3359 | 3133 | "RTN","MSCZJOBS",22,0) | ||
3360 | 3134 | F S PID=$O(PID(PID)) Q:PID="" D | ||
3361 | 3135 | "RTN","MSCZJOBS",23,0) | ||
3362 | 3136 | . I $G(THIS) Q:$$INSTANCE(PID)'=$$CURRENT^ZCD() | ||
3363 | 3137 | "RTN","MSCZJOBS",24,0) | ||
3364 | 3138 | . W !,$$PID(PID) | ||
3365 | 3139 | "RTN","MSCZJOBS",25,0) | ||
3366 | 3140 | . W ?12,$$DEVICE(PID) | ||
3367 | 3141 | "RTN","MSCZJOBS",26,0) | ||
3368 | 3142 | . W ?30,$$INSTANCE(PID) | ||
3369 | 3143 | "RTN","MSCZJOBS",27,0) | ||
3370 | 3144 | . W ?42,$$ROUTINE(PID) | ||
3371 | 3145 | "RTN","MSCZJOBS",28,0) | ||
3372 | 3146 | . W ?56,$$USER(PID) | ||
3373 | 3147 | "RTN","MSCZJOBS",29,0) | ||
3374 | 3148 | ; | ||
3375 | 3149 | "RTN","MSCZJOBS",30,0) | ||
3376 | 3150 | W !! ZSY "uptime" | ||
3377 | 3151 | "RTN","MSCZJOBS",31,0) | ||
3378 | 3152 | Q | ||
3379 | 3153 | "RTN","MSCZJOBS",32,0) | ||
3380 | 3154 | ; | ||
3381 | 3155 | "RTN","MSCZJOBS",33,0) | ||
3382 | 3156 | PID(PID) ;Return process ID formatted for display | ||
3383 | 3157 | "RTN","MSCZJOBS",34,0) | ||
3384 | 3158 | Q $J(PID,8)_$S($J=PID:"*",1:"") | ||
3385 | 3159 | "RTN","MSCZJOBS",35,0) | ||
3386 | 3160 | ; | ||
3387 | 3161 | "RTN","MSCZJOBS",36,0) | ||
3388 | 3162 | DEVICE(PID) ;Return device | ||
3389 | 3163 | "RTN","MSCZJOBS",37,0) | ||
3390 | 3164 | Q $$FIND("^TMP(""MSCZJOB"")",PID,"I","$PRINCIPAL") | ||
3391 | 3165 | "RTN","MSCZJOBS",38,0) | ||
3392 | 3166 | ; | ||
3393 | 3167 | "RTN","MSCZJOBS",39,0) | ||
3394 | 3168 | INSTANCE(PID) ;Return name of OpenVista instance | ||
3395 | 3169 | "RTN","MSCZJOBS",40,0) | ||
3396 | 3170 | N ZG S ZG=$$FIND("^TMP(""MSCZJOB"")",PID,"I","$ZGBLDIR") | ||
3397 | 3171 | "RTN","MSCZJOBS",41,0) | ||
3398 | 3172 | Q $P(ZG,"/",$L(ZG,"/")-2) | ||
3399 | 3173 | "RTN","MSCZJOBS",42,0) | ||
3400 | 3174 | ; | ||
3401 | 3175 | "RTN","MSCZJOBS",43,0) | ||
3402 | 3176 | ROUTINE(PID) ;Return routine | ||
3403 | 3177 | "RTN","MSCZJOBS",44,0) | ||
3404 | 3178 | Q $P($$FIND("^TMP(""MSCZJOB"")",PID,"V","%ZPOS"),"^",2) | ||
3405 | 3179 | "RTN","MSCZJOBS",45,0) | ||
3406 | 3180 | ; | ||
3407 | 3181 | "RTN","MSCZJOBS",46,0) | ||
3408 | 3182 | USER(PID) ;Return OpenVista user | ||
3409 | 3183 | "RTN","MSCZJOBS",47,0) | ||
3410 | 3184 | N DUZ S DUZ=+$$FIND("^TMP(""MSCZJOB"")",PID,"V","DUZ") | ||
3411 | 3185 | "RTN","MSCZJOBS",48,0) | ||
3412 | 3186 | ; FIXME: this code is looking up the name of the person in *this* | ||
3413 | 3187 | "RTN","MSCZJOBS",49,0) | ||
3414 | 3188 | ; instance, which assumes that ^VA(200) is the same across databases | ||
3415 | 3189 | "RTN","MSCZJOBS",50,0) | ||
3416 | 3190 | Q $P($G(^VA(200,DUZ,0)),"^") | ||
3417 | 3191 | "RTN","MSCZJOBS",51,0) | ||
3418 | 3192 | ; | ||
3419 | 3193 | "RTN","MSCZJOBS",52,0) | ||
3420 | 3194 | FIND(NODE,PID,ARR,KEY) ;Return the value of a key in one of the ZSHOW arrays | ||
3421 | 3195 | "RTN","MSCZJOBS",53,0) | ||
3422 | 3196 | N I,X S I="",X="" | ||
3423 | 3197 | "RTN","MSCZJOBS",54,0) | ||
3424 | 3198 | F S I=$O(@NODE@(PID,ARR,I)) Q:'I I $P(^(I),KEY_"=")="" S X=$TR($P(^(I),"=",2),"""") Q | ||
3425 | 3199 | "RTN","MSCZJOBS",55,0) | ||
3426 | 3200 | Q X | ||
3427 | 3201 | "RTN","MSCZJOBU") | ||
3428 | 3202 | 0^4^B2386063 | ||
3429 | 3203 | "RTN","MSCZJOBU",1,0) | ||
3430 | 3204 | MSCZJOBU ;RHL,JDS,JKT/MSC;20MAY2009 | ||
3431 | 3205 | "RTN","MSCZJOBU",2,0) | ||
3432 | 3206 | ;;8.0;KERNEL;**MSC** | ||
3433 | 3207 | "RTN","MSCZJOBU",3,0) | ||
3434 | 3208 | ; | ||
3435 | 3209 | "RTN","MSCZJOBU",4,0) | ||
3436 | 3210 | ; JOB EXAM UTILITIES FOR GT.M | ||
3437 | 3211 | "RTN","MSCZJOBU",5,0) | ||
3438 | 3212 | Q | ||
3439 | 3213 | "RTN","MSCZJOBU",6,0) | ||
3440 | 3214 | PIDS(XARY) ; GET ARRAY OF ALL MUMPS PROCESS | ||
3441 | 3215 | "RTN","MSCZJOBU",7,0) | ||
3442 | 3216 | ; XARY PASSED BY REFERENCE | ||
3443 | 3217 | "RTN","MSCZJOBU",8,0) | ||
3444 | 3218 | ; RETURNS XARY(PID)="" | ||
3445 | 3219 | "RTN","MSCZJOBU",9,0) | ||
3446 | 3220 | ; NOTE: Unix PID=$J for all mumps processes. | ||
3447 | 3221 | "RTN","MSCZJOBU",10,0) | ||
3448 | 3222 | ; | ||
3449 | 3223 | "RTN","MSCZJOBU",11,0) | ||
3450 | 3224 | N DEV | ||
3451 | 3225 | "RTN","MSCZJOBU",12,0) | ||
3452 | 3226 | S DEV="psdev" | ||
3453 | 3227 | "RTN","MSCZJOBU",13,0) | ||
3454 | 3228 | OPEN DEV:(COMM="ps -o pid= -C mumps")::"PIPE" U DEV | ||
3455 | 3229 | "RTN","MSCZJOBU",14,0) | ||
3456 | 3230 | ; | ||
3457 | 3231 | "RTN","MSCZJOBU",15,0) | ||
3458 | 3232 | N %I S %I=$I | ||
3459 | 3233 | "RTN","MSCZJOBU",16,0) | ||
3460 | 3234 | N %J ; $JOB | ||
3461 | 3235 | "RTN","MSCZJOBU",17,0) | ||
3462 | 3236 | F U DEV R %J U %I Q:%J="" D | ||
3463 | 3237 | "RTN","MSCZJOBU",18,0) | ||
3464 | 3238 | . F Q:$E(%J,1)'=" " S %J=$E(%J,2,999) ; strip leading spaces | ||
3465 | 3239 | "RTN","MSCZJOBU",19,0) | ||
3466 | 3240 | . S XARY(%J)="" | ||
3467 | 3241 | "RTN","MSCZJOBU",20,0) | ||
3468 | 3242 | ; | ||
3469 | 3243 | "RTN","MSCZJOBU",21,0) | ||
3470 | 3244 | C DEV | ||
3471 | 3245 | "RTN","MSCZJOBU",22,0) | ||
3472 | 3246 | Q | ||
3473 | 3247 | "RTN","MSCZJOBU",23,0) | ||
3474 | 3248 | ; | ||
3475 | 3249 | "RTN","MSCZJOBU",24,0) | ||
3476 | 3250 | INTRPT(PID) ; SEND mupip intrpt to process with PID | ||
3477 | 3251 | "RTN","MSCZJOBU",25,0) | ||
3478 | 3252 | ; WHICH CAUSES THE $ZINTERRUPT CODE TO BE EXECUTED. | ||
3479 | 3253 | "RTN","MSCZJOBU",26,0) | ||
3480 | 3254 | ; PID PASSED BY VALUE | ||
3481 | 3255 | "RTN","MSCZJOBU",27,0) | ||
3482 | 3256 | ; PID CAN BE A SINGLE PID, I.E. $J | ||
3483 | 3257 | "RTN","MSCZJOBU",28,0) | ||
3484 | 3258 | ; PID CAN BE A "*" WHICH SENDS AN INTERRUPT TO ALL MUMPS PROCESSES | ||
3485 | 3259 | "RTN","MSCZJOBU",29,0) | ||
3486 | 3260 | ; | ||
3487 | 3261 | "RTN","MSCZJOBU",30,0) | ||
3488 | 3262 | Q:$G(PID)'?1N.N&($G(PID)'="*") | ||
3489 | 3263 | "RTN","MSCZJOBU",31,0) | ||
3490 | 3264 | ; | ||
3491 | 3265 | "RTN","MSCZJOBU",32,0) | ||
3492 | 3266 | N CMD,DEV | ||
3493 | 3267 | "RTN","MSCZJOBU",33,0) | ||
3494 | 3268 | S CMD="gtmsignal -q "_$S(PID="*":"-a",1:PID) | ||
3495 | 3269 | "RTN","MSCZJOBU",34,0) | ||
3496 | 3270 | S DEV="gtmsignaldev" | ||
3497 | 3271 | "RTN","MSCZJOBU",35,0) | ||
3498 | 3272 | OPEN DEV:(COMM=CMD)::"PIPE" U DEV C DEV | ||
3499 | 3273 | "RTN","MSCZJOBU",36,0) | ||
3500 | 3274 | Q | ||
3501 | 3275 | "RTN","MSCZJOBU",37,0) | ||
3502 | 3276 | ; | ||
3503 | 3277 | "RTN","MSCZJOBU",38,0) | ||
3504 | 3278 | KILL(PID) ; Send mupip stop to process with PID | ||
3505 | 3279 | "RTN","MSCZJOBU",39,0) | ||
3506 | 3280 | ; PID PASSED BY VALUE | ||
3507 | 3281 | "RTN","MSCZJOBU",40,0) | ||
3508 | 3282 | ; PID CAN BE A SINGLE PID, I.E. $J | ||
3509 | 3283 | "RTN","MSCZJOBU",41,0) | ||
3510 | 3284 | ; | ||
3511 | 3285 | "RTN","MSCZJOBU",42,0) | ||
3512 | 3286 | Q:$G(PID)'?1N.N | ||
3513 | 3287 | "RTN","MSCZJOBU",43,0) | ||
3514 | 3288 | ; | ||
3515 | 3289 | "RTN","MSCZJOBU",44,0) | ||
3516 | 3290 | N DEV | ||
3517 | 3291 | "RTN","MSCZJOBU",45,0) | ||
3518 | 3292 | S DEV="gtmsignaldev" | ||
3519 | 3293 | "RTN","MSCZJOBU",46,0) | ||
3520 | 3294 | OPEN DEV:(COMM="gtmsignal -q -s "_PID)::"PIPE" U DEV C DEV | ||
3521 | 3295 | "RTN","MSCZJOBU",47,0) | ||
3522 | 3296 | Q | ||
3523 | 3297 | "RTN","MSCZJOBU",48,0) | ||
3524 | 3298 | ; | ||
3525 | 3299 | "RTN","MSCZJOBU",49,0) | ||
3526 | 3300 | UNLOCK(NODE) ; Use lke to remove lock on NODE. | ||
3527 | 3301 | "RTN","MSCZJOBU",50,0) | ||
3528 | 3302 | N CMD,DEV | ||
3529 | 3303 | "RTN","MSCZJOBU",51,0) | ||
3530 | 3304 | S CMD="lke clear -lock="""_NODE_""" -nointeractive -output=/dev/null" | ||
3531 | 3305 | "RTN","MSCZJOBU",52,0) | ||
3532 | 3306 | S DEV="lkedev" | ||
3533 | 3307 | "RTN","MSCZJOBU",53,0) | ||
3534 | 3308 | OPEN DEV:(COMM=CMD)::"PIPE" U DEV C DEV | ||
3535 | 3309 | "RTN","MSCZJOBU",54,0) | ||
3536 | 3310 | Q | ||
3537 | 3311 | "RTN","PRCSEA") | ||
3538 | 3312 | 0^37^B66865498 | ||
3539 | 3313 | "RTN","PRCSEA",1,0) | ||
3540 | 3314 | PRCSEA ;WISC/SAW/DXH/BM/SC/DAP,MSC/JDA - CONTROL POINT ACTIVITY EDITS ;27APR2009 | ||
3541 | 3315 | "RTN","PRCSEA",2,0) | ||
3542 | 3316 | V ;;5.1;IFCAP;**81,MSC**;Oct 20, 2000 | ||
3543 | 3317 | "RTN","PRCSEA",3,0) | ||
3544 | 3318 | ;Per VHA Directive 10-93-142, this routine should not be modified. | ||
3545 | 3319 | "RTN","PRCSEA",4,0) | ||
3546 | 3320 | ; | ||
3547 | 3321 | "RTN","PRCSEA",5,0) | ||
3548 | 3322 | ;PRC*5.1*81 BMM 3/23/05 when a 2237 is canceled, in CT1, add code | ||
3549 | 3323 | "RTN","PRCSEA",6,0) | ||
3550 | 3324 | ;to update Audit file (#414.02), and send update message to | ||
3551 | 3325 | "RTN","PRCSEA",7,0) | ||
3552 | 3326 | ;DynaMed thru a call to rtn PRCVTCA. | ||
3553 | 3327 | "RTN","PRCSEA",8,0) | ||
3554 | 3328 | ; | ||
3555 | 3329 | "RTN","PRCSEA",9,0) | ||
3556 | 3330 | ENRS ;ENTER REQ | ||
3557 | 3331 | "RTN","PRCSEA",10,0) | ||
3558 | 3332 | S PRCSK=1,X3="H" | ||
3559 | 3333 | "RTN","PRCSEA",11,0) | ||
3560 | 3334 | D EN1F^PRCSUT(1) ; ask site,FY,QRTR,CP & set up PRC array, PRCSIP variable ; prc*5*197 | ||
3561 | 3335 | "RTN","PRCSEA",12,0) | ||
3562 | 3336 | G W2:'$D(PRC("SITE")),EXIT:Y<0 ; unauthorized user or '^' entered | ||
3563 | 3337 | "RTN","PRCSEA",13,0) | ||
3564 | 3338 | D W6 ; display help on transaction# format | ||
3565 | 3339 | "RTN","PRCSEA",14,0) | ||
3566 | 3340 | ENRS0 S DLAYGO=410,DIC="^PRCS(410,",DIC(0)="AELQ",D="H" | ||
3567 | 3341 | "RTN","PRCSEA",15,0) | ||
3568 | 3342 | S DIC("A")="Select TRANSACTION: " | ||
3569 | 3343 | "RTN","PRCSEA",16,0) | ||
3570 | 3344 | S DIC("S")="I '^(0),$P(^(0),U,3)'="""",$D(^PRCS(410,""H"",$P(^(0),U,3),+Y)),^(+Y)=DUZ!(^(+Y)="""")" ; only requests authored by user or unauthored will display on partial match | ||
3571 | 3345 | "RTN","PRCSEA",17,0) | ||
3572 | 3346 | D ^PRCSDIC ; lookup & preliminary validity checking | ||
3573 | 3347 | "RTN","PRCSEA",18,0) | ||
3574 | 3348 | K DLAYGO,DIC("A"),DIC("S") | ||
3575 | 3349 | "RTN","PRCSEA",19,0) | ||
3576 | 3350 | G:Y<0 EXIT | ||
3577 | 3351 | "RTN","PRCSEA",20,0) | ||
3578 | 3352 | I $P(Y,U,3)'=1 W $C(7)," Must be a new entry." G ENRS0 | ||
3579 | 3353 | "RTN","PRCSEA",21,0) | ||
3580 | 3354 | ;*81 Check site parameter to see if issue books are allowed | ||
3581 | 3355 | "RTN","PRCSEA",22,0) | ||
3582 | 3356 | D CKPRM^PRCSEB | ||
3583 | 3357 | "RTN","PRCSEA",23,0) | ||
3584 | 3358 | W !!,PRCVY,! | ||
3585 | 3359 | "RTN","PRCSEA",24,0) | ||
3586 | 3360 | S (PDA,T1,DA)=+Y | ||
3587 | 3361 | "RTN","PRCSEA",25,0) | ||
3588 | 3362 | L +^PRCS(410,DA):1 I $T=0 W !,"File is being accessed...try a different transaction number or try later" G ENRS0 | ||
3589 | 3363 | "RTN","PRCSEA",26,0) | ||
3590 | 3364 | S T(2)=$P(Y,U,2) | ||
3591 | 3365 | "RTN","PRCSEA",27,0) | ||
3592 | 3366 | D EN2A^PRCSUT3 ; saves CP,sta,substa,txn name,user,BBFY,RB stat,acct data in new txn (nodes 0,3,6,11 of file 410) | ||
3593 | 3367 | "RTN","PRCSEA",28,0) | ||
3594 | 3368 | S $P(^PRCS(410,DA,14),"^")=DUZ ; originator (entered by) | ||
3595 | 3369 | "RTN","PRCSEA",29,0) | ||
3596 | 3370 | S $P(^PRCS(410,DA,7),"^")=DUZ,$P(^PRCS(410,DA,7),"^",2)=$P($G(^VA(200,DUZ,20)),"^",3) ; requestor default | ||
3597 | 3371 | "RTN","PRCSEA",30,0) | ||
3598 | 3372 | I $G(PRCSIP) S $P(^PRCS(410,DA,0),"^",6)=PRCSIP,^PRCS(410,"AO",PRCSIP,DA)="" ; PRCSIP was set up in PRCSUT & is inventory distribution point | ||
3599 | 3373 | "RTN","PRCSEA",31,0) | ||
3600 | 3374 | S PRCS="" ; set PRCS=1 if CP is automated, i.e. it uses IFCAP to send requests to A&MM | ||
3601 | 3375 | "RTN","PRCSEA",32,0) | ||
3602 | 3376 | I $D(^PRC(420,PRC("SITE"),1,+PRC("CP"),0)) S:$P(^(0),"^",11)="Y" PRCS=1 | ||
3603 | 3377 | "RTN","PRCSEA",33,0) | ||
3604 | 3378 | TYPE ; | ||
3605 | 3379 | "RTN","PRCSEA",34,0) | ||
3606 | 3380 | W !!,"This transaction is assigned temporary transaction number: ",T(2) | ||
3607 | 3381 | "RTN","PRCSEA",35,0) | ||
3608 | 3382 | S DIC("A")="FORM TYPE: ",DIC="^PRCS(410.5,",DIC(0)="AEQZ" | ||
3609 | 3383 | "RTN","PRCSEA",36,0) | ||
3610 | 3384 | S DIC("S")=PRCVX ; only allow selection of 2237's | ||
3611 | 3385 | "RTN","PRCSEA",37,0) | ||
3612 | 3386 | D ^DIC | ||
3613 | 3387 | "RTN","PRCSEA",38,0) | ||
3614 | 3388 | S DA=PDA | ||
3615 | 3389 | "RTN","PRCSEA",39,0) | ||
3616 | 3390 | ;if user didn't enter a form type, go ask whether to backout and act | ||
3617 | 3391 | "RTN","PRCSEA",40,0) | ||
3618 | 3392 | ;accordingly: go let them re-enter a form type or exit | ||
3619 | 3393 | "RTN","PRCSEA",41,0) | ||
3620 | 3394 | I Y<0 G:'$$BACKOUT(T(2),DA) TYPE L -^PRCS(420,DA) G EXIT | ||
3621 | 3395 | "RTN","PRCSEA",42,0) | ||
3622 | 3396 | ; | ||
3623 | 3397 | "RTN","PRCSEA",43,0) | ||
3624 | 3398 | I Y<2 W "??" G TYPE | ||
3625 | 3399 | "RTN","PRCSEA",44,0) | ||
3626 | 3400 | K PRCVX,PRCVY | ||
3627 | 3401 | "RTN","PRCSEA",45,0) | ||
3628 | 3402 | S $P(^PRCS(410,DA,0),"^",4)=+Y,X=+Y ; form type | ||
3629 | 3403 | "RTN","PRCSEA",46,0) | ||
3630 | 3404 | ; if CP is not automated (file 420), user's response will be overwritten with non-recuring (type 2). Although user's selection is changed 'behind the scenes', | ||
3631 | 3405 | "RTN","PRCSEA",47,0) | ||
3632 | 3406 | ; the scenario is unlikely to occur because full implementation of IFCAP was made mandatory and sites are now automated. | ||
3633 | 3407 | "RTN","PRCSEA",48,0) | ||
3634 | 3408 | S:'PRCS&(X>2) $P(^PRCS(410,DA,0),"^",4)=2,X=2 | ||
3635 | 3409 | "RTN","PRCSEA",49,0) | ||
3636 | 3410 | K PRCSERR ; flag denoting item info is missing | ||
3637 | 3411 | "RTN","PRCSEA",50,0) | ||
3638 | 3412 | S DIC(0)="AEMQ",(DIC,DIE)="^PRCS(410," | ||
3639 | 3413 | "RTN","PRCSEA",51,0) | ||
3640 | 3414 | S (PRCSDR,DR)="["_$S(X=2:"PRCSEN2237S",X=3:"PRCSENPRS",X=4:"PRCSENR&NRS",1:"PRCSENIBS")_"]" | ||
3641 | 3415 | "RTN","PRCSEA",52,0) | ||
3642 | 3416 | EN1 K DTOUT,DUOUT,Y | ||
3643 | 3417 | "RTN","PRCSEA",53,0) | ||
3644 | 3418 | D ^DIE | ||
3645 | 3419 | "RTN","PRCSEA",54,0) | ||
3646 | 3420 | S DA=PDA | ||
3647 | 3421 | "RTN","PRCSEA",55,0) | ||
3648 | 3422 | I $D(Y)!($D(DTOUT)) D DOR L -^PRCS(410,DA) G EXIT | ||
3649 | 3423 | "RTN","PRCSEA",56,0) | ||