Merge lp:~jontai/ovid/bug515722 into lp:ovid

Proposed by Jon Tai
Status: Merged
Merged at revision: not available
Proposed branch: lp:~jontai/ovid/bug515722
Merge into: lp:ovid
Diff against target: 2657 lines (+2648/-0)
2 files modified
ovid/src/mumps/kids/MSCFM.1.2.KID (+2126/-0)
ovid/src/mumps/kids/MSCRES.1.2.KID (+522/-0)
To merge this branch: bzr merge lp:~jontai/ovid/bug515722
Reviewer Review Type Date Requested Status
jeff.apple Approve
Review via email: mp+18410@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jon Tai (jontai) wrote :

Tested new builds on Cache and GT.M with getpatients.sh -- they seem to work just fine.

Revision history for this message
jeff.apple (jeff-apple) wrote :

It's really hard to tell by looking at a KIDS build if it's all OK. Doesn't look wrong, though.

review: Approve
Revision history for this message
Jon Tai (jontai) wrote :

You can check out the branch and do a diff between the 1.1 versions and the 1.2 versions. That gives you something more meaningful to look at.

In any case, if you approve, can you merge it into mainline and re-push?

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'ovid/src/mumps/kids/MSCFM.1.2.KID'
2--- ovid/src/mumps/kids/MSCFM.1.2.KID 1970-01-01 00:00:00 +0000
3+++ ovid/src/mumps/kids/MSCFM.1.2.KID 2010-02-01 21:38:14 +0000
4@@ -0,0 +1,2126 @@
5+KIDS Distribution saved on Feb 01, 2010@12:23:04
6+BUMP VERSION NUMBER TO REFLECT CHANGES SINCE MAY 2009
7+**KIDS**:MSCFM*1.0*2^
8+
9+**INSTALL NAME**
10+MSCFM*1.0*2
11+"BLD",7057,0)
12+MSCFM*1.0*2^^^3100201^n
13+"BLD",7057,4,0)
14+^9.64PA^21455^1
15+"BLD",7057,4,21455,0)
16+21455
17+"BLD",7057,4,21455,222)
18+y^y^f^^^^n
19+"BLD",7057,4,21455,21400)
20+0
21+"BLD",7057,4,"B",21455,21455)
22+
23+"BLD",7057,6.3)
24+1
25+"BLD",7057,"KRN",0)
26+^9.67PA^8989.52^19
27+"BLD",7057,"KRN",.4,0)
28+.4
29+"BLD",7057,"KRN",.401,0)
30+.401
31+"BLD",7057,"KRN",.402,0)
32+.402
33+"BLD",7057,"KRN",.403,0)
34+.403
35+"BLD",7057,"KRN",.5,0)
36+.5
37+"BLD",7057,"KRN",.84,0)
38+.84
39+"BLD",7057,"KRN",3.6,0)
40+3.6
41+"BLD",7057,"KRN",3.8,0)
42+3.8
43+"BLD",7057,"KRN",9.2,0)
44+9.2
45+"BLD",7057,"KRN",9.8,0)
46+9.8
47+"BLD",7057,"KRN",9.8,"NM",0)
48+^9.68A^16^15
49+"BLD",7057,"KRN",9.8,"NM",1,0)
50+MSCFM^^0^B5098671
51+"BLD",7057,"KRN",9.8,"NM",2,0)
52+MSCFMDEL^^0^B1636754
53+"BLD",7057,"KRN",9.8,"NM",3,0)
54+MSCFMGET^^0^B9839507
55+"BLD",7057,"KRN",9.8,"NM",4,0)
56+MSCFMLST^^0^B4353203
57+"BLD",7057,"KRN",9.8,"NM",5,0)
58+MSCFMQRY^^0^B26519484
59+"BLD",7057,"KRN",9.8,"NM",6,0)
60+MSCFMUPD^^0^B5427703
61+"BLD",7057,"KRN",9.8,"NM",7,0)
62+MSCBFM^^0^B417415
63+"BLD",7057,"KRN",9.8,"NM",8,0)
64+MSCFMFI^^0^B16373360
65+"BLD",7057,"KRN",9.8,"NM",9,0)
66+MSCFMINS^^0^B6139097
67+"BLD",7057,"KRN",9.8,"NM",10,0)
68+MSCFMSCN^^0^B9466392
69+"BLD",7057,"KRN",9.8,"NM",12,0)
70+MSCFMFND^^0^B6202861
71+"BLD",7057,"KRN",9.8,"NM",13,0)
72+MSCFMDIC^^0^B4553400
73+"BLD",7057,"KRN",9.8,"NM",14,0)
74+MSCFME^^0^B5719463
75+"BLD",7057,"KRN",9.8,"NM",15,0)
76+MSCFMIDX^^0^B5374937
77+"BLD",7057,"KRN",9.8,"NM",16,0)
78+MSCFMREF^^0^B1814485
79+"BLD",7057,"KRN",9.8,"NM","B","MSCBFM",7)
80+
81+"BLD",7057,"KRN",9.8,"NM","B","MSCFM",1)
82+
83+"BLD",7057,"KRN",9.8,"NM","B","MSCFMDEL",2)
84+
85+"BLD",7057,"KRN",9.8,"NM","B","MSCFMDIC",13)
86+
87+"BLD",7057,"KRN",9.8,"NM","B","MSCFME",14)
88+
89+"BLD",7057,"KRN",9.8,"NM","B","MSCFMFI",8)
90+
91+"BLD",7057,"KRN",9.8,"NM","B","MSCFMFND",12)
92+
93+"BLD",7057,"KRN",9.8,"NM","B","MSCFMGET",3)
94+
95+"BLD",7057,"KRN",9.8,"NM","B","MSCFMIDX",15)
96+
97+"BLD",7057,"KRN",9.8,"NM","B","MSCFMINS",9)
98+
99+"BLD",7057,"KRN",9.8,"NM","B","MSCFMLST",4)
100+
101+"BLD",7057,"KRN",9.8,"NM","B","MSCFMQRY",5)
102+
103+"BLD",7057,"KRN",9.8,"NM","B","MSCFMREF",16)
104+
105+"BLD",7057,"KRN",9.8,"NM","B","MSCFMSCN",10)
106+
107+"BLD",7057,"KRN",9.8,"NM","B","MSCFMUPD",6)
108+
109+"BLD",7057,"KRN",19,0)
110+19
111+"BLD",7057,"KRN",19,"NM",0)
112+^9.68A^1^1
113+"BLD",7057,"KRN",19,"NM",1,0)
114+MSC FM RESOURCE USER^^0
115+"BLD",7057,"KRN",19,"NM","B","MSC FM RESOURCE USER",1)
116+
117+"BLD",7057,"KRN",19.1,0)
118+19.1
119+"BLD",7057,"KRN",101,0)
120+101
121+"BLD",7057,"KRN",409.61,0)
122+409.61
123+"BLD",7057,"KRN",771,0)
124+771
125+"BLD",7057,"KRN",870,0)
126+870
127+"BLD",7057,"KRN",8989.51,0)
128+8989.51
129+"BLD",7057,"KRN",8989.52,0)
130+8989.52
131+"BLD",7057,"KRN",8994,0)
132+8994
133+"BLD",7057,"KRN",8994,"NM",0)
134+^9.68A^1^1
135+"BLD",7057,"KRN",8994,"NM",1,0)
136+MSC FILEMAN RESOURCE^^0
137+"BLD",7057,"KRN",8994,"NM","B","MSC FILEMAN RESOURCE",1)
138+
139+"BLD",7057,"KRN","B",.4,.4)
140+
141+"BLD",7057,"KRN","B",.401,.401)
142+
143+"BLD",7057,"KRN","B",.402,.402)
144+
145+"BLD",7057,"KRN","B",.403,.403)
146+
147+"BLD",7057,"KRN","B",.5,.5)
148+
149+"BLD",7057,"KRN","B",.84,.84)
150+
151+"BLD",7057,"KRN","B",3.6,3.6)
152+
153+"BLD",7057,"KRN","B",3.8,3.8)
154+
155+"BLD",7057,"KRN","B",9.2,9.2)
156+
157+"BLD",7057,"KRN","B",9.8,9.8)
158+
159+"BLD",7057,"KRN","B",19,19)
160+
161+"BLD",7057,"KRN","B",19.1,19.1)
162+
163+"BLD",7057,"KRN","B",101,101)
164+
165+"BLD",7057,"KRN","B",409.61,409.61)
166+
167+"BLD",7057,"KRN","B",771,771)
168+
169+"BLD",7057,"KRN","B",870,870)
170+
171+"BLD",7057,"KRN","B",8989.51,8989.51)
172+
173+"BLD",7057,"KRN","B",8989.52,8989.52)
174+
175+"BLD",7057,"KRN","B",8994,8994)
176+
177+"BLD",7057,"MSC")
178+/home/japple/MSCFM.1.1.KID
179+"BLD",7057,"MSCOM")
180+BUMP VERSION NUMBER TO REFLECT CHANGES SINCE MAY 2009
181+"BLD",7057,"QUES",0)
182+^9.62^^
183+"BLD",7057,"REQB",0)
184+^9.611^^
185+"FIA",21455)
186+FILEMAN EXCEPTION
187+"FIA",21455,0)
188+^MSCFME(
189+"FIA",21455,0,0)
190+21455
191+"FIA",21455,0,1)
192+y^y^f^^^^n
193+"FIA",21455,0,10)
194+
195+"FIA",21455,0,11)
196+
197+"FIA",21455,0,"RLRO")
198+
199+"FIA",21455,21455)
200+0
201+"KRN",19,13190,-1)
202+0^1
203+"KRN",19,13190,0)
204+MSC FM RESOURCE USER^MSC FM RES^^B^^^^^^^^VISTALINK
205+"KRN",19,13190,99.1)
206+61384,66183
207+"KRN",19,13190,"RPC",0)
208+^19.05P^1^1
209+"KRN",19,13190,"RPC",1,0)
210+MSC FILEMAN RESOURCE
211+"KRN",19,13190,"U")
212+MSC FM RES
213+"KRN",8994,2239,-1)
214+0^1
215+"KRN",8994,2239,0)
216+MSC FILEMAN RESOURCE^ENTRY^MSCBFM^2^P^0^^^1
217+"KRN",8994,2239,2,0)
218+^8994.02A^1^1
219+"KRN",8994,2239,2,1,0)
220+RES^2^^1^1
221+"KRN",8994,2239,2,"B","RES",1)
222+
223+"KRN",8994,2239,2,"PARAMSEQ",1,1)
224+
225+"MBREQ")
226+0
227+"ORD",16,8994)
228+8994;16;1;;;;;;;RPCDEL^XPDIA1
229+"ORD",16,8994,0)
230+REMOTE PROCEDURE
231+"ORD",18,19)
232+19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA
233+"ORD",18,19,0)
234+OPTION
235+"QUES","XPF1",0)
236+Y
237+"QUES","XPF1","??")
238+^D REP^XPDH
239+"QUES","XPF1","A")
240+Shall I write over your |FLAG| File
241+"QUES","XPF1","B")
242+YES
243+"QUES","XPF1","M")
244+D XPF1^XPDIQ
245+"QUES","XPF2",0)
246+Y
247+"QUES","XPF2","??")
248+^D DTA^XPDH
249+"QUES","XPF2","A")
250+Want my data |FLAG| yours
251+"QUES","XPF2","B")
252+YES
253+"QUES","XPF2","M")
254+D XPF2^XPDIQ
255+"QUES","XPI1",0)
256+YO
257+"QUES","XPI1","??")
258+^D INHIBIT^XPDH
259+"QUES","XPI1","A")
260+Want KIDS to INHIBIT LOGONs during the install
261+"QUES","XPI1","B")
262+NO
263+"QUES","XPI1","M")
264+D XPI1^XPDIQ
265+"QUES","XPM1",0)
266+PO^VA(200,:EM
267+"QUES","XPM1","??")
268+^D MG^XPDH
269+"QUES","XPM1","A")
270+Enter the Coordinator for Mail Group '|FLAG|'
271+"QUES","XPM1","B")
272+
273+"QUES","XPM1","M")
274+D XPM1^XPDIQ
275+"QUES","XPO1",0)
276+Y
277+"QUES","XPO1","??")
278+^D MENU^XPDH
279+"QUES","XPO1","A")
280+Want KIDS to Rebuild Menu Trees Upon Completion of Install
281+"QUES","XPO1","B")
282+NO
283+"QUES","XPO1","M")
284+D XPO1^XPDIQ
285+"QUES","XPZ1",0)
286+Y
287+"QUES","XPZ1","??")
288+^D OPT^XPDH
289+"QUES","XPZ1","A")
290+Want to DISABLE Scheduled Options, Menu Options, and Protocols
291+"QUES","XPZ1","B")
292+NO
293+"QUES","XPZ1","M")
294+D XPZ1^XPDIQ
295+"QUES","XPZ2",0)
296+Y
297+"QUES","XPZ2","??")
298+^D RTN^XPDH
299+"QUES","XPZ2","A")
300+Want to MOVE routines to other CPUs
301+"QUES","XPZ2","B")
302+NO
303+"QUES","XPZ2","M")
304+D XPZ2^XPDIQ
305+"RTN")
306+15
307+"RTN","MSCBFM")
308+0^7^B417415
309+"RTN","MSCBFM",1,0)
310+MSCBFM; MSC/JDA - RPC for FileMan requests ; 14 May, 2009
311+"RTN","MSCBFM",2,0)
312+ ;;1.0;MSCFM;;May 14, 2009
313+"RTN","MSCBFM",3,0)
314+ENTRY(RETVAL,ARGBYTES)
315+"RTN","MSCBFM",4,0)
316+ ; Entry point for RPC that handles FileMan requests
317+"RTN","MSCBFM",5,0)
318+ ; both parameters are in byte format
319+"RTN","MSCBFM",6,0)
320+ N RES,REPLYRES S RES="",REPLYRES="",RETVAL=""
321+"RTN","MSCBFM",7,0)
322+ D FROMBYTE^MSCRES(.RES,.ARGBYTES)
323+"RTN","MSCBFM",8,0)
324+ D PROCESS^MSCFM(.REPLYRES,.RES)
325+"RTN","MSCBFM",9,0)
326+ D TOBYTE^MSCRES(.RETVAL,.REPLYRES)
327+"RTN","MSCBFM",10,0)
328+ Q
329+"RTN","MSCFM")
330+0^1^B5098671
331+"RTN","MSCFM",1,0)
332+MSCFM; MSC/JDA - Common OVID FileMan routines ; OCT 20, 2009
333+"RTN","MSCFM",2,0)
334+ ;;1.0;MSCFM;;May 14, 2009
335+"RTN","MSCFM",3,0)
336+ Q
337+"RTN","MSCFM",4,0)
338+PROCESS(REPLY,RES)
339+"RTN","MSCFM",5,0)
340+ N TEMP,PROPNAME
341+"RTN","MSCFM",6,0)
342+ D FIRST^MSCRES(.RES)
343+"RTN","MSCFM",7,0)
344+ D START^MSCRES(.REPLY)
345+"RTN","MSCFM",8,0)
346+ D ADDCMPD^MSCRES(.REPLY,"FILEMAN")
347+"RTN","MSCFM",9,0)
348+ S TEMP=$$NEXTPROP^MSCRES(.RES)
349+"RTN","MSCFM",10,0)
350+ ; JDA - TODO : Check for valid top-property
351+"RTN","MSCFM",11,0)
352+ F Q:'$$NEXTPROP^MSCRES(.RES) D
353+"RTN","MSCFM",12,0)
354+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
355+"RTN","MSCFM",13,0)
356+ . I PROPNAME="GETS" D RUN^MSCFMGET(.REPLY,.RES) Q
357+"RTN","MSCFM",14,0)
358+ . I PROPNAME="LIST" D RUN^MSCFMLST(.REPLY,.RES) Q
359+"RTN","MSCFM",15,0)
360+ . I PROPNAME="FIND" D RUN^MSCFMFND(.REPLY,.RES) Q
361+"RTN","MSCFM",16,0)
362+ . I PROPNAME="INSERT" D RUN^MSCFMINS(.REPLY,.RES) Q
363+"RTN","MSCFM",17,0)
364+ . I PROPNAME="DELETE" D RUN^MSCFMDEL(.REPLY,.RES) Q
365+"RTN","MSCFM",18,0)
366+ . I PROPNAME="UPDATE" D RUN^MSCFMUPD(.REPLY,.RES) Q
367+"RTN","MSCFM",19,0)
368+ . I PROPNAME="FILEINFO" D FILEINFO^MSCFMFI(.REPLY,.RES) Q
369+"RTN","MSCFM",20,0)
370+ . I PROPNAME="FILES" D FILES^MSCFMFI(.REPLY,.RES) Q
371+"RTN","MSCFM",21,0)
372+ . I PROPNAME="PROJECT" D RPCPROJ^MSCSQL2(.REPLY,.RES) Q
373+"RTN","MSCFM",22,0)
374+ . I PROPNAME="DIC" D RUN^MSCFMDIC(.REPLY,.RES) Q
375+"RTN","MSCFM",23,0)
376+ . I PROPNAME="INDEX" D RUN^MSCFMIDX(.REPLY,.RES) Q
377+"RTN","MSCFM",24,0)
378+ . I PROPNAME="REFBY" D RUN^MSCFMREF(.REPLY,.RES) Q
379+"RTN","MSCFM",25,0)
380+ . Q
381+"RTN","MSCFM",26,0)
382+ D ENDCMPD^MSCRES(.REPLY) ; FILEMAN
383+"RTN","MSCFM",27,0)
384+ Q
385+"RTN","MSCFM",28,0)
386+FILE2NUM(FILE)
387+"RTN","MSCFM",29,0)
388+ N PC,PART,FLD
389+"RTN","MSCFM",30,0)
390+ S PART=$P(FILE,"^",1)
391+"RTN","MSCFM",31,0)
392+ S FILENUM=$$FIND1^DIC(1,,"X",$P(PART,"^",1))
393+"RTN","MSCFM",32,0)
394+ Q:FILENUM="" 0
395+"RTN","MSCFM",33,0)
396+ F PC=2:1:$L(FILE,"^") D
397+"RTN","MSCFM",34,0)
398+ . S PART=$P(FILE,"^",PC)
399+"RTN","MSCFM",35,0)
400+ . S FLD=$$FLD2NUM(FILENUM,PART)
401+"RTN","MSCFM",36,0)
402+ . S FILENUM=+$P(^DD(FILENUM,FLD,0),"^",2)
403+"RTN","MSCFM",37,0)
404+ . Q
405+"RTN","MSCFM",38,0)
406+ Q FILENUM
407+"RTN","MSCFM",39,0)
408+FLD2NUM(FILENUM,FLDNUM)
409+"RTN","MSCFM",40,0)
410+ I FLDNUM?1(.N0.1"I",.N1".".N0.1"I") S:'$D(^DD(FILENUM,FLDNUM)) FLDNUM=0 Q FLDNUM ; already a number, but verify it exists
411+"RTN","MSCFM",41,0)
412+ E Q $$FLDNUM^DILFD(FILENUM,FLDNUM)
413+"RTN","MSCFM",42,0)
414+NUM2FILE(FILENUM)
415+"RTN","MSCFM",43,0)
416+ N FILENAME
417+"RTN","MSCFM",44,0)
418+ S FILENAME=$O(^DD(FILENUM,0,"NM",""))
419+"RTN","MSCFM",45,0)
420+ Q:('$D(^DIC(FILENUM,0))&($G(^DD(FILENUM,0,"UP"))="")) "" ; No File. Garbage? Like .3
421+"RTN","MSCFM",46,0)
422+ Q FILENAME
423+"RTN","MSCFM",47,0)
424+
425+"RTN","MSCFMDEL")
426+0^2^B1636754
427+"RTN","MSCFMDEL",1,0)
428+MSCFMDEL; MSC/JDA - OVID FileMan DELETE ; May 14, 2009
429+"RTN","MSCFMDEL",2,0)
430+ ;;1.0;MSCFM;;May 14, 2009
431+"RTN","MSCFMDEL",3,0)
432+ Q
433+"RTN","MSCFMDEL",4,0)
434+RUN(REPLY,RES)
435+"RTN","MSCFMDEL",5,0)
436+ N PROPNAME,FILE,FDA,IENS,MSG,ERRNO
437+"RTN","MSCFMDEL",6,0)
438+ ; Parse out the command properties
439+"RTN","MSCFMDEL",7,0)
440+ F Q:'$$NEXTPROP^MSCRES(.RES) D
441+"RTN","MSCFMDEL",8,0)
442+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
443+"RTN","MSCFMDEL",9,0)
444+ . I PROPNAME="FILE" S FILE=$$FILE2NUM^MSCFM($$GETVAL^MSCRES(.RES)) Q
445+"RTN","MSCFMDEL",10,0)
446+ . I PROPNAME="IENS" S IENS=$$GETVAL^MSCRES(.RES) Q
447+"RTN","MSCFMDEL",11,0)
448+ . Q
449+"RTN","MSCFMDEL",12,0)
450+ S:$E(IENS,$L(IENS))'="," IENS=IENS_","
451+"RTN","MSCFMDEL",13,0)
452+ S FDA(FILE,IENS,.01)="@"
453+"RTN","MSCFMDEL",14,0)
454+ D FILE^DIE(,"FDA","MSG")
455+"RTN","MSCFMDEL",15,0)
456+ D ADDCMPD^MSCRES(.REPLY,"RESULTS")
457+"RTN","MSCFMDEL",16,0)
458+ F ERRNO=1:1 Q:'$G(MSG("DIERR",ERRNO)) D
459+"RTN","MSCFMDEL",17,0)
460+ . D ADDCMPD^MSCRES(.REPLY,"ERROR")
461+"RTN","MSCFMDEL",18,0)
462+ . D ADDPROP^MSCRES(.REPLY,"ERROR NUMBER",MSG("DIERR",ERRNO))
463+"RTN","MSCFMDEL",19,0)
464+ . D ADDPROP^MSCRES(.REPLY,"ERROR TEXT",MSG("DIERR",ERRNO,"TEXT",1))
465+"RTN","MSCFMDEL",20,0)
466+ . D ENDCMPD^MSCRES(.REPLY) ; ERROR
467+"RTN","MSCFMDEL",21,0)
468+ . Q
469+"RTN","MSCFMDEL",22,0)
470+ D ENDCMPD^MSCRES(.REPLY) ; RESULTS
471+"RTN","MSCFMDEL",23,0)
472+ Q
473+"RTN","MSCFMDIC")
474+0^13^B4553400
475+"RTN","MSCFMDIC",1,0)
476+MSCFMDIC; MSC/JDA - OVID FileMan DIC ; May 14, 2009
477+"RTN","MSCFMDIC",2,0)
478+ ;;1.0;MSCFM;;May 14, 2009;
479+"RTN","MSCFMDIC",3,0)
480+ Q
481+"RTN","MSCFMDIC",4,0)
482+RUN(REPLY,RES) ; main entry point
483+"RTN","MSCFMDIC",5,0)
484+ N PROPNAME,FILENUM
485+"RTN","MSCFMDIC",6,0)
486+ ; Parse out the command properties
487+"RTN","MSCFMDIC",7,0)
488+ F Q:'$$NEXTPROP^MSCRES(.RES) D
489+"RTN","MSCFMDIC",8,0)
490+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
491+"RTN","MSCFMDIC",9,0)
492+ . I PROPNAME="FILE" S FILENUM=$$GETVAL^MSCRES(.RES) Q
493+"RTN","MSCFMDIC",10,0)
494+ . Q
495+"RTN","MSCFMDIC",11,0)
496+ D SCAN(.REPLY,$NA(^DD(FILENUM)),1)
497+"RTN","MSCFMDIC",12,0)
498+ D SCAN(.REPLY,$NA(^DIC(FILENUM)),0)
499+"RTN","MSCFMDIC",13,0)
500+ Q
501+"RTN","MSCFMDIC",14,0)
502+SCAN(REPLY,GLOBNAME,ONLYNUM)
503+"RTN","MSCFMDIC",15,0)
504+ N I
505+"RTN","MSCFMDIC",16,0)
506+ F I=0:1:$QL(GLOBNAME) D
507+"RTN","MSCFMDIC",17,0)
508+ . D ADDCMPD^MSCRES(.REPLY,"N")
509+"RTN","MSCFMDIC",18,0)
510+ . D ADDPROP^MSCRES(.REPLY,"S",$QS(GLOBNAME,I))
511+"RTN","MSCFMDIC",19,0)
512+ . Q
513+"RTN","MSCFMDIC",20,0)
514+ D:$D(@GLOBNAME)#10 ADDPROP^MSCRES(.REPLY,"V",@GLOBNAME)
515+"RTN","MSCFMDIC",21,0)
516+ D SUBSCAN(.REPLY,GLOBNAME,ONLYNUM)
517+"RTN","MSCFMDIC",22,0)
518+ F I=0:1:$QL(GLOBNAME) D ENDCMPD^MSCRES(.REPLY)
519+"RTN","MSCFMDIC",23,0)
520+ Q
521+"RTN","MSCFMDIC",24,0)
522+SUBSCAN(REPLY,GLOBNAME,ONLYNUM) ; populate based on global name
523+"RTN","MSCFMDIC",25,0)
524+ N I,GLEN,TMP
525+"RTN","MSCFMDIC",26,0)
526+ S I=""
527+"RTN","MSCFMDIC",27,0)
528+ S GLEN=$QL(GLOBNAME)
529+"RTN","MSCFMDIC",28,0)
530+ F S I=$O(@GLOBNAME@(I)) Q:(I="")!((I'=+I)&ONLYNUM) D
531+"RTN","MSCFMDIC",29,0)
532+ . D ADDCMPD^MSCRES(.REPLY,"N")
533+"RTN","MSCFMDIC",30,0)
534+ . D ADDPROP^MSCRES(.REPLY,"S",I)
535+"RTN","MSCFMDIC",31,0)
536+ . D:$D(@GLOBNAME@(I))#10 ADDPROP^MSCRES(.REPLY,"V",@GLOBNAME@(I))
537+"RTN","MSCFMDIC",32,0)
538+ . D SUBSCAN(.REPLY,$NA(@GLOBNAME@(I)),0)
539+"RTN","MSCFMDIC",33,0)
540+ . D ENDCMPD^MSCRES(.REPLY) ; N
541+"RTN","MSCFMDIC",34,0)
542+ . Q
543+"RTN","MSCFMDIC",35,0)
544+ Q
545+"RTN","MSCFMDIC",36,0)
546+READSUB(RES,GLOBAL)
547+"RTN","MSCFMDIC",37,0)
548+ N PROPNAME,SUB,VAL,TMP
549+"RTN","MSCFMDIC",38,0)
550+ F Q:'$$NEXTPROP^MSCRES(.RES) D
551+"RTN","MSCFMDIC",39,0)
552+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
553+"RTN","MSCFMDIC",40,0)
554+ . I PROPNAME="N" D READSUB(.RES,.TMP) M GLOBAL(SUB)=TMP Q
555+"RTN","MSCFMDIC",41,0)
556+ . I PROPNAME="S" S SUB=$$GETVAL^MSCRES(.RES) Q
557+"RTN","MSCFMDIC",42,0)
558+ . I PROPNAME="V" S VAL=$$GETVAL^MSCRES(.RES) Q
559+"RTN","MSCFMDIC",43,0)
560+ . Q
561+"RTN","MSCFMDIC",44,0)
562+ S GLOBAL(SUB)=VAL
563+"RTN","MSCFMDIC",45,0)
564+ Q
565+"RTN","MSCFMDIC",46,0)
566+READ(RES,GLOBAL)
567+"RTN","MSCFMDIC",47,0)
568+ N PROPNAME,X
569+"RTN","MSCFMDIC",48,0)
570+ S X=$$NEXTPROP^MSCRES(.RES)
571+"RTN","MSCFMDIC",49,0)
572+ F Q:'$$NEXTPROP^MSCRES(.RES) D
573+"RTN","MSCFMDIC",50,0)
574+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
575+"RTN","MSCFMDIC",51,0)
576+ . I PROPNAME="N" D READSUB(.RES,.GLOBAL) Q
577+"RTN","MSCFMDIC",52,0)
578+ . I PROPNAME="V" S GLOBAL=$$GETVAL^MSCRES(.RES) Q
579+"RTN","MSCFMDIC",53,0)
580+ . Q
581+"RTN","MSCFMDIC",54,0)
582+ S X=$$NEXTPROP^MSCRES(.RES)
583+"RTN","MSCFMDIC",55,0)
584+ Q
585+"RTN","MSCFME")
586+0^14^B5719463
587+"RTN","MSCFME",1,0)
588+MSCFME; MSC/JDA - Builds OVID FileMan exception file ; May 14, 2009
589+"RTN","MSCFME",2,0)
590+ ;;1.0;MSCFM;;May 14, 2009
591+"RTN","MSCFME",3,0)
592+ L +^TMP("FME",0):0
593+"RTN","MSCFME",4,0)
594+ E W "Scanner is already running.",! Q
595+"RTN","MSCFME",5,0)
596+ ; Delete the data in 21455
597+"RTN","MSCFME",6,0)
598+ N FDA,TMP
599+"RTN","MSCFME",7,0)
600+ D LIST^DIC(21455,,"@","Q",,,,,,,"TMP")
601+"RTN","MSCFME",8,0)
602+ S TMP="" F S TMP=$O(TMP("DILIST",2,TMP)) Q:TMP="" S FDA(21455,TMP_",",.01)="@"
603+"RTN","MSCFME",9,0)
604+ D FILE^DIE(,"FDA")
605+"RTN","MSCFME",10,0)
606+ K ^TMP("FME")
607+"RTN","MSCFME",11,0)
608+ S ^TMP("FME","FILE")=1
609+"RTN","MSCFME",12,0)
610+ F D Q:^TMP("FME","FILE")="@"
611+"RTN","MSCFME",13,0)
612+ . S ^TMP("FME",1)=0
613+"RTN","MSCFME",14,0)
614+ . J CHILD($J)
615+"RTN","MSCFME",15,0)
616+ . F Q:^TMP("FME",1) H 2
617+"RTN","MSCFME",16,0)
618+ . L +^TMP("FME",1)
619+"RTN","MSCFME",17,0)
620+ . L -^TMP("FME",1)
621+"RTN","MSCFME",18,0)
622+ . D:^TMP("FME","FILE")'="@" SAVE(^TMP("FME","FILE"),"*","S","Halted, possible due to a SCREEN on the file")
623+"RTN","MSCFME",19,0)
624+ . Q
625+"RTN","MSCFME",20,0)
626+ L -^TMP("FME",0)
627+"RTN","MSCFME",21,0)
628+ Q
629+"RTN","MSCFME",22,0)
630+CHILD(PARENT)
631+"RTN","MSCFME",23,0)
632+ N SL,TRG,MSG,FILE,FIELD,HADERROR,ETYPE,REASON
633+"RTN","MSCFME",24,0)
634+ L +^TMP("FME",1)
635+"RTN","MSCFME",25,0)
636+ S ^TMP("FME",1)=1
637+"RTN","MSCFME",26,0)
638+ S $ETRAP="G ERROR^MSCFME"
639+"RTN","MSCFME",27,0)
640+ S HADERROR=0
641+"RTN","MSCFME",28,0)
642+ S FILE=^TMP("FME","FILE")
643+"RTN","MSCFME",29,0)
644+ F S FILE=$O(^DIC(FILE)) Q:FILE'=+FILE D
645+"RTN","MSCFME",30,0)
646+ . S ^TMP("FME","FILE")=FILE
647+"RTN","MSCFME",31,0)
648+ . S FIELD=0
649+"RTN","MSCFME",32,0)
650+ . F S FIELD=$O(^DD(FILE,FIELD)) Q:FIELD'=+FIELD D
651+"RTN","MSCFME",33,0)
652+ . . K MSG
653+"RTN","MSCFME",34,0)
654+ . . D FIELD^DID(FILE,FIELD,,"MULTIPLE-VALUED","TRG","MSG")
655+"RTN","MSCFME",35,0)
656+ . . Q:TRG("MULTIPLE-VALUED")
657+"RTN","MSCFME",36,0)
658+ . . S REASON=""
659+"RTN","MSCFME",37,0)
660+ . . D TRY(FILE,FIELD)
661+"RTN","MSCFME",38,0)
662+ . . I $D(MSG) D
663+"RTN","MSCFME",39,0)
664+ . . . S REASON="FileMan reported the error: "_MSG("DIERR",1,"TEXT",1)
665+"RTN","MSCFME",40,0)
666+ . . . S HADERROR=1
667+"RTN","MSCFME",41,0)
668+ . . Q:'HADERROR
669+"RTN","MSCFME",42,0)
670+ . . S ETYPE="I"
671+"RTN","MSCFME",43,0)
672+ . . D TRY(FILE,FIELD_"I")
673+"RTN","MSCFME",44,0)
674+ . . S:HADERROR ETYPE="N"
675+"RTN","MSCFME",45,0)
676+ . . D SAVE(FILE,FIELD,ETYPE,REASON)
677+"RTN","MSCFME",46,0)
678+ . . Q
679+"RTN","MSCFME",47,0)
680+ . Q
681+"RTN","MSCFME",48,0)
682+ S ^TMP("FME","FILE")="@"
683+"RTN","MSCFME",49,0)
684+ L -^TMP("FME",1)
685+"RTN","MSCFME",50,0)
686+ Q
687+"RTN","MSCFME",51,0)
688+TRY(FILE,FIELD)
689+"RTN","MSCFME",52,0)
690+ S HADERROR=0
691+"RTN","MSCFME",53,0)
692+ S SL=$STACK,HADERROR=0
693+"RTN","MSCFME",54,0)
694+ D LIST^DIC(FILE,,"@;"_FIELD,"Q",50,,,,,,"TRG","MSG")
695+"RTN","MSCFME",55,0)
696+ Q
697+"RTN","MSCFME",56,0)
698+ERROR
699+"RTN","MSCFME",57,0)
700+ N I
701+"RTN","MSCFME",58,0)
702+ I REASON="" S REASON="FileMan error with $ECODE="_$ECODE
703+"RTN","MSCFME",59,0)
704+ S:SL=$STACK $ECODE="",HADERROR=1
705+"RTN","MSCFME",60,0)
706+ Q
707+"RTN","MSCFME",61,0)
708+SAVE(FILE,FIELD,ETYPE,REASON)
709+"RTN","MSCFME",62,0)
710+ N FDA
711+"RTN","MSCFME",63,0)
712+ S FDA(21455,"+1,",.01)=FILE_"^"_FIELD
713+"RTN","MSCFME",64,0)
714+ S FDA(21455,"+1,",1)=FILE
715+"RTN","MSCFME",65,0)
716+ S FDA(21455,"+1,",2)=FIELD
717+"RTN","MSCFME",66,0)
718+ S FDA(21455,"+1,",3)=ETYPE
719+"RTN","MSCFME",67,0)
720+ S FDA(21455,"+1,",4)=REASON
721+"RTN","MSCFME",68,0)
722+ D UPDATE^DIE(,"FDA")
723+"RTN","MSCFME",69,0)
724+ Q
725+"RTN","MSCFMFI")
726+0^8^B16373360
727+"RTN","MSCFMFI",1,0)
728+MSCFMFI; MSC/JDA - OVID FileMan FILES ; May 14, 2009
729+"RTN","MSCFMFI",2,0)
730+ ;;1.0;MSCFM;;May 14, 2009
731+"RTN","MSCFMFI",3,0)
732+ Q
733+"RTN","MSCFMFI",4,0)
734+FILEINFO(REPLY,RES)
735+"RTN","MSCFMFI",5,0)
736+ N PROPNAME,FILE,FILENUM,SQL
737+"RTN","MSCFMFI",6,0)
738+ S SQL=0
739+"RTN","MSCFMFI",7,0)
740+ ; Parse out the command properties
741+"RTN","MSCFMFI",8,0)
742+ F Q:'$$NEXTPROP^MSCRES(.RES) D
743+"RTN","MSCFMFI",9,0)
744+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
745+"RTN","MSCFMFI",10,0)
746+ . I PROPNAME="FILE" S FILE=$$GETVAL^MSCRES(.RES) Q
747+"RTN","MSCFMFI",11,0)
748+ . I PROPNAME="SQL" S SQL=$$GETVAL^MSCRES(.RES) Q
749+"RTN","MSCFMFI",12,0)
750+ . Q
751+"RTN","MSCFMFI",13,0)
752+ I FILE=+FILE S FILENUM=FILE S FILE=$$NUM2FILE^MSCFM(FILENUM)
753+"RTN","MSCFMFI",14,0)
754+ E S FILENUM=$$FILE2NUM^MSCFM(FILE)
755+"RTN","MSCFMFI",15,0)
756+ I (FILENUM=0)!(FILE="")!('$$VFILE^DILFD(FILENUM)) D ADDPROP^MSCRES(.REPLY,"ERROR","Could not find file.") D ENDCMPD^MSCRES(.REPLY) Q
757+"RTN","MSCFMFI",16,0)
758+ ; If this is a subfile, go to top file
759+"RTN","MSCFMFI",17,0)
760+ F Q:$G(^DD(FILENUM,0,"UP"))="" S FILENUM=^DD(FILENUM,0,"UP")
761+"RTN","MSCFMFI",18,0)
762+ S FILE=$$NUM2FILE^MSCFM(FILENUM)
763+"RTN","MSCFMFI",19,0)
764+ I (FILENUM=0)!(FILE="")!('$$VFILE^DILFD(FILENUM)) D ADDPROP^MSCRES(.REPLY,"ERROR","Could not find file.") D ENDCMPD^MSCRES(.REPLY) Q
765+"RTN","MSCFMFI",20,0)
766+ D DOFIELDS(.REPLY,FILENUM,SQL,FILE,"")
767+"RTN","MSCFMFI",21,0)
768+ Q
769+"RTN","MSCFMFI",22,0)
770+DOFIELDS(REPLY,FILENUM,SQL,FILE,UPFILE,UPFIELD)
771+"RTN","MSCFMFI",23,0)
772+ N TYPE,P2,FLDNUM,FDTARGET,SQLTMP,SQLTMP2,DESC,I
773+"RTN","MSCFMFI",24,0)
774+ S:$G(FILE)="" FILE=$$NUM2FILE^MSCFM(FILENUM)
775+"RTN","MSCFMFI",25,0)
776+ Q:FILE="" ; Garbage? Like 1.008?
777+"RTN","MSCFMFI",26,0)
778+ D ADDCMPD^MSCRES(.REPLY,"FILE")
779+"RTN","MSCFMFI",27,0)
780+ D ADDPROP^MSCRES(.REPLY,"NAME",FILE)
781+"RTN","MSCFMFI",28,0)
782+ D ADDPROP^MSCRES(.REPLY,"NUMBER",FILENUM)
783+"RTN","MSCFMFI",29,0)
784+ D ADDPROP^MSCRES(.REPLY,"LOCATION",$$ROOT^DILFD(FILENUM))
785+"RTN","MSCFMFI",30,0)
786+ I UPFILE="" D
787+"RTN","MSCFMFI",31,0)
788+ . D FILE^DID(FILENUM,,"DESCRIPTION","DESC")
789+"RTN","MSCFMFI",32,0)
790+ E D
791+"RTN","MSCFMFI",33,0)
792+ . D FIELD^DID(UPFILE,UPFIELD,,"DESCRIPTION","DESC")
793+"RTN","MSCFMFI",34,0)
794+ I $D(DESC("DESCRIPTION",1)) D
795+"RTN","MSCFMFI",35,0)
796+ . D ADDCMPD^MSCRES(.REPLY,"DESC")
797+"RTN","MSCFMFI",36,0)
798+ . S I=0 F S I=$O(DESC("DESCRIPTION",I)) Q:I="" D ADDPROP^MSCRES(.REPLY,I,DESC("DESCRIPTION",I)) W "=>"_DESC("DESCRIPTION",I),!
799+"RTN","MSCFMFI",37,0)
800+ . D ENDCMPD^MSCRES(.REPLY) ; "DESC"
801+"RTN","MSCFMFI",38,0)
802+ I SQL D
803+"RTN","MSCFMFI",39,0)
804+ . S SQLTMP=$O(^DMSQ("T","C",FILENUM,""))
805+"RTN","MSCFMFI",40,0)
806+ . Q:SQLTMP=""
807+"RTN","MSCFMFI",41,0)
808+ . D ADDPROP^MSCRES(.REPLY,"SQL",$P(^DMSQ("T",SQLTMP,0),"^",1))
809+"RTN","MSCFMFI",42,0)
810+ S FLDNUM=0
811+"RTN","MSCFMFI",43,0)
812+ F S FLDNUM=$O(^DD(FILENUM,FLDNUM)) Q:FLDNUM'=+FLDNUM D
813+"RTN","MSCFMFI",44,0)
814+ . D FIELD^DID(FILENUM,FLDNUM,,"LABEL;TYPE;GLOBAL SUBSCRIPT LOCATION","FDTARGET")
815+"RTN","MSCFMFI",45,0)
816+ . Q:FDTARGET("LABEL")="" ; Garbage? File 604, field 18.1
817+"RTN","MSCFMFI",46,0)
818+ . D ADDCMPD^MSCRES(.REPLY,"F")
819+"RTN","MSCFMFI",47,0)
820+ . D ADDPROP^MSCRES(.REPLY,"N",FDTARGET("LABEL"))
821+"RTN","MSCFMFI",48,0)
822+ . S P2=$P(^DD(FILENUM,FLDNUM,0),"^",2)
823+"RTN","MSCFMFI",49,0)
824+ . S TYPE=$$TYPENUM(FDTARGET("TYPE"))
825+"RTN","MSCFMFI",50,0)
826+ . I (+P2)&(TYPE'=5) S TYPE=9 ; Multiples are subfile when not WP
827+"RTN","MSCFMFI",51,0)
828+ . D ADDPROP^MSCRES(.REPLY,"T",TYPE)
829+"RTN","MSCFMFI",52,0)
830+ . D ADDPROP^MSCRES(.REPLY,"L",FDTARGET("GLOBAL SUBSCRIPT LOCATION"))
831+"RTN","MSCFMFI",53,0)
832+ . D ADDPROP^MSCRES(.REPLY,"#",FLDNUM)
833+"RTN","MSCFMFI",54,0)
834+ . I (TYPE=7) D
835+"RTN","MSCFMFI",55,0)
836+ . . D ADDPROP^MSCRES(.REPLY,"P",+$P(P2,"P",2))
837+"RTN","MSCFMFI",56,0)
838+ . I (TYPE=9) D
839+"RTN","MSCFMFI",57,0)
840+ . . N SFNUM S SFNUM=+$P(^DD(FILENUM,FLDNUM,0),"^",2)
841+"RTN","MSCFMFI",58,0)
842+ . . Q:'SFNUM
843+"RTN","MSCFMFI",59,0)
844+ . . D DOFIELDS(.REPLY,SFNUM,SQL,"",FILENUM,FLDNUM)
845+"RTN","MSCFMFI",60,0)
846+ . E I SQL D
847+"RTN","MSCFMFI",61,0)
848+ . . S SQLTMP=$O(^DMSQ("C","D",FILENUM,FLDNUM,""))
849+"RTN","MSCFMFI",62,0)
850+ . . Q:SQLTMP=""
851+"RTN","MSCFMFI",63,0)
852+ . . S SQLTMP2=$P(^DMSQ("C",SQLTMP,0),"^",1)
853+"RTN","MSCFMFI",64,0)
854+ . . D ADDPROP^MSCRES(.REPLY,"Q",$P(^DMSQ("E",SQLTMP2,0),"^",1))
855+"RTN","MSCFMFI",65,0)
856+ . D ENDCMPD^MSCRES(.REPLY) ; F
857+"RTN","MSCFMFI",66,0)
858+ . Q
859+"RTN","MSCFMFI",67,0)
860+ D ENDCMPD^MSCRES(.REPLY) ; FILE
861+"RTN","MSCFMFI",68,0)
862+ Q
863+"RTN","MSCFMFI",69,0)
864+TYPENUM(TYPE)
865+"RTN","MSCFMFI",70,0)
866+ I '$D(^MSCTYPES) D
867+"RTN","MSCFMFI",71,0)
868+ . S ^MSCTYPES("DATE/TIME")=1
869+"RTN","MSCFMFI",72,0)
870+ . S ^MSCTYPES("NUMERIC")=2
871+"RTN","MSCFMFI",73,0)
872+ . S ^MSCTYPES("SET")=3
873+"RTN","MSCFMFI",74,0)
874+ . S ^MSCTYPES("FREE TEXT")=4
875+"RTN","MSCFMFI",75,0)
876+ . S ^MSCTYPES("MUMPS")=4
877+"RTN","MSCFMFI",76,0)
878+ . S ^MSCTYPES("WORD-PROCESSING")=5
879+"RTN","MSCFMFI",77,0)
880+ . S ^MSCTYPES("COMPUTED")=6
881+"RTN","MSCFMFI",78,0)
882+ . S ^MSCTYPES("POINTER")=7
883+"RTN","MSCFMFI",79,0)
884+ . S ^MSCTYPES("VARIABLE-POINTER")=8
885+"RTN","MSCFMFI",80,0)
886+ Q ^MSCTYPES(TYPE)
887+"RTN","MSCFMFI",81,0)
888+FILES(REPLY,RES)
889+"RTN","MSCFMFI",82,0)
890+ N IDX,FILENAME
891+"RTN","MSCFMFI",83,0)
892+ S IDX=1
893+"RTN","MSCFMFI",84,0)
894+ D ADDCMPD^MSCRES(.REPLY,"RESULTS")
895+"RTN","MSCFMFI",85,0)
896+ F S IDX=$O(^DD(IDX)) Q:IDX'=+IDX D
897+"RTN","MSCFMFI",86,0)
898+ . Q:'$$VFILE^DILFD(IDX) ; WP fields
899+"RTN","MSCFMFI",87,0)
900+ . S FILENAME=$$NUM2FILE^MSCFM(IDX)
901+"RTN","MSCFMFI",88,0)
902+ . Q:FILENAME="" ; Garbage in the structure? Like .008 or .3
903+"RTN","MSCFMFI",89,0)
904+ . D ADDCMPD^MSCRES(.REPLY,"R")
905+"RTN","MSCFMFI",90,0)
906+ . D ADDPROP^MSCRES(.REPLY,"T",FILENAME)
907+"RTN","MSCFMFI",91,0)
908+ . D ADDPROP^MSCRES(.REPLY,"N",IDX)
909+"RTN","MSCFMFI",92,0)
910+ . D:$G(^DD(IDX,0,"UP")) ADDPROP^MSCRES(.REPLY,"P",$G(^DD(IDX,0,"UP")))
911+"RTN","MSCFMFI",93,0)
912+ . D ENDCMPD^MSCRES(.REPLY) ; R
913+"RTN","MSCFMFI",94,0)
914+ D ENDCMPD^MSCRES(.REPLY) ; RESULTS
915+"RTN","MSCFMFI",95,0)
916+ Q
917+"RTN","MSCFMFND")
918+0^12^B6202861
919+"RTN","MSCFMFND",1,0)
920+MSCFMFND; MSC/JDA - OVID FileMan FIND ; May 14, 2009
921+"RTN","MSCFMFND",2,0)
922+ ;;1.0;MSCFM;;May 14, 2009
923+"RTN","MSCFMFND",3,0)
924+ Q
925+"RTN","MSCFMFND",4,0)
926+RUN(REPLY,RES)
927+"RTN","MSCFMFND",5,0)
928+ N THIS
929+"RTN","MSCFMFND",6,0)
930+ D CNSTRCT(.THIS)
931+"RTN","MSCFMFND",7,0)
932+ N TARGET
933+"RTN","MSCFMFND",8,0)
934+ D PROCESS(.THIS,.RES)
935+"RTN","MSCFMFND",9,0)
936+ I $G(THIS("ERROR"))'="" D ADDPROP^MSCRES(.REPLY,"ERROR",THIS("ERROR")) Q
937+"RTN","MSCFMFND",10,0)
938+ D:$G(THIS("SAFE")) SAFE(.THIS)
939+"RTN","MSCFMFND",11,0)
940+ I $G(THIS("ERROR"))'="" D ADDPROP^MSCRES(.REPLY,"ERROR",THIS("ERROR")) Q
941+"RTN","MSCFMFND",12,0)
942+ ; Call Fileman
943+"RTN","MSCFMFND",13,0)
944+ D FIND^DIC(THIS("FILE"),THIS("IENS"),THIS("FIELDS"),THIS("FLAGS"),THIS("IDXVALUE"),THIS("NUMBER"),THIS("IDXNAME"),THIS("SCREEN"),,"TARGET")
945+"RTN","MSCFMFND",14,0)
946+ D BLDREPLY^MSCFMQRY(.THIS,.TARGET,.REPLY)
947+"RTN","MSCFMFND",15,0)
948+ Q
949+"RTN","MSCFMFND",16,0)
950+PROCESS(THIS,RES)
951+"RTN","MSCFMFND",17,0)
952+ F Q:('$$NEXTPROP^MSCRES(.RES))!($G(THIS("ERROR"))'="") D
953+"RTN","MSCFMFND",18,0)
954+ . D PROCPROP(.THIS,.RES)
955+"RTN","MSCFMFND",19,0)
956+ . Q
957+"RTN","MSCFMFND",20,0)
958+ Q
959+"RTN","MSCFMFND",21,0)
960+PROCIDX(THIS,RES)
961+"RTN","MSCFMFND",22,0)
962+ N PROPNAME
963+"RTN","MSCFMFND",23,0)
964+ F Q:'$$NEXTPROP^MSCRES(.RES) D
965+"RTN","MSCFMFND",24,0)
966+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
967+"RTN","MSCFMFND",25,0)
968+ . I PROPNAME="NAME" S THIS("IDXNAME")=$$GETVAL^MSCRES(.RES) Q
969+"RTN","MSCFMFND",26,0)
970+ . I PROPNAME="VALUE" S THIS("IDXVALUE")=$$GETVAL^MSCRES(.RES) Q
971+"RTN","MSCFMFND",27,0)
972+ . Q
973+"RTN","MSCFMFND",28,0)
974+ Q
975+"RTN","MSCFMFND",29,0)
976+PROCPROP(THIS,RES)
977+"RTN","MSCFMFND",30,0)
978+ N PROPNAME
979+"RTN","MSCFMFND",31,0)
980+ S PROPNAME=$$GETPROP^MSCRES(.RES)
981+"RTN","MSCFMFND",32,0)
982+ I PROPNAME="INDEX" D PROCIDX(.THIS,.RES) Q
983+"RTN","MSCFMFND",33,0)
984+ D PROCPROP^MSCFMQRY(.THIS,.RES)
985+"RTN","MSCFMFND",34,0)
986+ Q
987+"RTN","MSCFMFND",35,0)
988+CNSTRCT(THIS)
989+"RTN","MSCFMFND",36,0)
990+ D CNSTRCT^MSCFMQRY(.THIS)
991+"RTN","MSCFMFND",37,0)
992+ S THIS("FLAGS")=THIS("FLAGS")_"X"
993+"RTN","MSCFMFND",38,0)
994+ S THIS("IDXNAME")="",THIS("IDXVALUE")=""
995+"RTN","MSCFMFND",39,0)
996+ Q
997+"RTN","MSCFMFND",40,0)
998+SAFE(THIS)
999+"RTN","MSCFMFND",41,0)
1000+ N TRG,I,PCNUM,PC,FIELD,FNUM,DONE,RESULT
1001+"RTN","MSCFMFND",42,0)
1002+ S FIELDS=THIS("FIELDS")
1003+"RTN","MSCFMFND",43,0)
1004+ D FIND^DIC(21455,,"@;1;2;3I","Q",THIS("FILE"),,"C",,,"TRG")
1005+"RTN","MSCFMFND",44,0)
1006+ Q:'$P(TRG("DILIST",0),"^",1)
1007+"RTN","MSCFMFND",45,0)
1008+ S RESULT="@"
1009+"RTN","MSCFMFND",46,0)
1010+ F PCNUM=2:1:$L(FIELDS,";") D
1011+"RTN","MSCFMFND",47,0)
1012+ . S PC=$P(FIELDS,";",PCNUM)
1013+"RTN","MSCFMFND",48,0)
1014+ . S FNUM=+PC
1015+"RTN","MSCFMFND",49,0)
1016+ . S I="",DONE=0 F S I=$O(TRG("DILIST","ID",I)) Q:I="" D Q:DONE
1017+"RTN","MSCFMFND",50,0)
1018+ . . I TRG("DILIST","ID",I,3)="S" S THIS("ERROR")="No data due to safe mode.",DONE=1 Q
1019+"RTN","MSCFMFND",51,0)
1020+ . . I TRG("DILIST","ID",I,2)=FNUM D S DONE=1
1021+"RTN","MSCFMFND",52,0)
1022+ . . . Q:TRG("DILIST","ID",I,3)="N"
1023+"RTN","MSCFMFND",53,0)
1024+ . . . I TRG("DILIST","ID",I,3)="I" S:PC'["I" PC=PC_"I" S RESULT=RESULT_";"_PC Q
1025+"RTN","MSCFMFND",54,0)
1026+ . . . Q
1027+"RTN","MSCFMFND",55,0)
1028+ . S:'DONE RESULT=RESULT_";"_PC
1029+"RTN","MSCFMFND",56,0)
1030+ . Q
1031+"RTN","MSCFMFND",57,0)
1032+ S THIS("FIELDS")=RESULT
1033+"RTN","MSCFMFND",58,0)
1034+ Q
1035+"RTN","MSCFMGET")
1036+0^3^B9839507
1037+"RTN","MSCFMGET",1,0)
1038+MSCFMGET; MSC/JDA - OVID FileMan GETS ; OCT 20, 2009
1039+"RTN","MSCFMGET",2,0)
1040+ ;;1.0;MSCFM;;May 14, 2009
1041+"RTN","MSCFMGET",3,0)
1042+ Q
1043+"RTN","MSCFMGET",4,0)
1044+RUN(REPLY,RES)
1045+"RTN","MSCFMGET",5,0)
1046+ N PROPNAME,FILE,IENS,FIELDS,TARGET,NAMES,FLAGS,NEWFLD
1047+"RTN","MSCFMGET",6,0)
1048+ S FIELDS="",FLAGS="N"
1049+"RTN","MSCFMGET",7,0)
1050+ ; Parse out the command properties
1051+"RTN","MSCFMGET",8,0)
1052+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1053+"RTN","MSCFMGET",9,0)
1054+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1055+"RTN","MSCFMGET",10,0)
1056+ . I PROPNAME="FILE" S FILE=$$FILE2NUM^MSCFM($$GETVAL^MSCRES(.RES)) W FILE,! Q
1057+"RTN","MSCFMGET",11,0)
1058+ . I PROPNAME="IENS" S IENS=$$GETVAL^MSCRES(.RES) Q
1059+"RTN","MSCFMGET",12,0)
1060+ . I PROPNAME="FIELD" S NEWFLD=$$PROCFLD(.RES,FILE,.NAMES) I NEWFLD'="" D Q
1061+"RTN","MSCFMGET",13,0)
1062+ . . S:FIELDS'="" FIELDS=FIELDS_";" S FIELDS=FIELDS_NEWFLD
1063+"RTN","MSCFMGET",14,0)
1064+ . . Q
1065+"RTN","MSCFMGET",15,0)
1066+ . I PROPNAME="INTERNAL" S:$$GETVAL^MSCRES(.RES) FLAGS=FLAGS_"I" Q
1067+"RTN","MSCFMGET",16,0)
1068+ . Q
1069+"RTN","MSCFMGET",17,0)
1070+ D GETS^DIQ(FILE,IENS,FIELDS,FLAGS,"TARGET","MSG")
1071+"RTN","MSCFMGET",18,0)
1072+ N IDX,VALUE,WPROW,SFCOUNT
1073+"RTN","MSCFMGET",19,0)
1074+ D ADDCMPD^MSCRES(.REPLY,"RESULTS")
1075+"RTN","MSCFMGET",20,0)
1076+ S IDX=""
1077+"RTN","MSCFMGET",21,0)
1078+ F S IDX=$O(TARGET(FILE,IENS,IDX)) Q:IDX="" D
1079+"RTN","MSCFMGET",22,0)
1080+ . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1081+"RTN","MSCFMGET",23,0)
1082+ . D ADDPROP^MSCRES(.REPLY,"NAME",NAMES(IDX))
1083+"RTN","MSCFMGET",24,0)
1084+ . I $D(TARGET(FILE,IENS,IDX,1))=1 D ; Word processing field
1085+"RTN","MSCFMGET",25,0)
1086+ . . F WPROW=1:1 Q:$D(TARGET(FILE,IENS,IDX,WPROW))=0 D
1087+"RTN","MSCFMGET",26,0)
1088+ . . . D ADDPROP^MSCRES(.REPLY,"VALUE",TARGET(FILE,IENS,IDX,WPROW))
1089+"RTN","MSCFMGET",27,0)
1090+ . . . Q
1091+"RTN","MSCFMGET",28,0)
1092+ . . Q
1093+"RTN","MSCFMGET",29,0)
1094+ . E I $D(NAMES(IDX,"TYPE")) D ; Special type - variable pointer
1095+"RTN","MSCFMGET",30,0)
1096+ . . S VALUE=$G(TARGET(FILE,IENS,IDX,"I"))
1097+"RTN","MSCFMGET",31,0)
1098+ . . ; Convert root to file number pointer to and return that
1099+"RTN","MSCFMGET",32,0)
1100+ . . S $P(VALUE,";",2)=+$P(@("^"_$P(VALUE,";",2)_"0)"),"^",2)
1101+"RTN","MSCFMGET",33,0)
1102+ . . D ADDPROP^MSCRES(.REPLY,"VALUE",VALUE)
1103+"RTN","MSCFMGET",34,0)
1104+ . . Q
1105+"RTN","MSCFMGET",35,0)
1106+ . E D
1107+"RTN","MSCFMGET",36,0)
1108+ . . S VALUE=$G(TARGET(FILE,IENS,IDX,"I"))
1109+"RTN","MSCFMGET",37,0)
1110+ . . S:VALUE="" VALUE=TARGET(FILE,IENS,IDX)
1111+"RTN","MSCFMGET",38,0)
1112+ . . D ADDPROP^MSCRES(.REPLY,"VALUE",VALUE)
1113+"RTN","MSCFMGET",39,0)
1114+ . . Q
1115+"RTN","MSCFMGET",40,0)
1116+ . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1117+"RTN","MSCFMGET",41,0)
1118+ . Q
1119+"RTN","MSCFMGET",42,0)
1120+ S IDX="" F S IDX=$O(NAMES(IDX)) Q:IDX="" D
1121+"RTN","MSCFMGET",43,0)
1122+ . Q:'$D(NAMES(IDX,"SUB"))
1123+"RTN","MSCFMGET",44,0)
1124+ . K TARGET,MSG
1125+"RTN","MSCFMGET",45,0)
1126+ . D LIST^DIC(NAMES(IDX,"SUB"),","_IENS,"@","Q",,,,,,,"TARGET","MSG")
1127+"RTN","MSCFMGET",46,0)
1128+ . S SFCOUNT=+$O(TARGET("DILIST",2,""),-1)
1129+"RTN","MSCFMGET",47,0)
1130+ . Q:'SFCOUNT
1131+"RTN","MSCFMGET",48,0)
1132+ . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1133+"RTN","MSCFMGET",49,0)
1134+ . D ADDPROP^MSCRES(.REPLY,"NAME",NAMES(IDX))
1135+"RTN","MSCFMGET",50,0)
1136+ . D ADDPROP^MSCRES(.REPLY,"VALUE",SFCOUNT)
1137+"RTN","MSCFMGET",51,0)
1138+ . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1139+"RTN","MSCFMGET",52,0)
1140+ . Q
1141+"RTN","MSCFMGET",53,0)
1142+ D ENDCMPD^MSCRES(.REPLY) ; RESULTS
1143+"RTN","MSCFMGET",54,0)
1144+ Q
1145+"RTN","MSCFMGET",55,0)
1146+PROCFLD(RES,FILE,NAMES)
1147+"RTN","MSCFMGET",56,0)
1148+ N PROPNAME,NAME,TYPE,NUM,SFNUM
1149+"RTN","MSCFMGET",57,0)
1150+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1151+"RTN","MSCFMGET",58,0)
1152+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1153+"RTN","MSCFMGET",59,0)
1154+ . I PROPNAME="NAME" S NAME=$$GETVAL^MSCRES(.RES) Q
1155+"RTN","MSCFMGET",60,0)
1156+ . I PROPNAME="TYPE" S TYPE=$$GETVAL^MSCRES(.RES) Q
1157+"RTN","MSCFMGET",61,0)
1158+ . Q
1159+"RTN","MSCFMGET",62,0)
1160+ S NUM=$$FLD2NUM^MSCFM(FILE,NAME)
1161+"RTN","MSCFMGET",63,0)
1162+ I 'NUM Q ""
1163+"RTN","MSCFMGET",64,0)
1164+ S NAMES(NUM)=NAME
1165+"RTN","MSCFMGET",65,0)
1166+ S SFNUM=$$GETSFNUM(FILE,NUM)
1167+"RTN","MSCFMGET",66,0)
1168+ I SFNUM S NAMES(NUM,"SUB")=SFNUM Q ""
1169+"RTN","MSCFMGET",67,0)
1170+ S:$D(TYPE) NAMES(NUM,"TYPE")=TYPE
1171+"RTN","MSCFMGET",68,0)
1172+ Q NUM
1173+"RTN","MSCFMGET",69,0)
1174+GETSFNUM(FILE,MFIELD) ; get subfile #
1175+"RTN","MSCFMGET",70,0)
1176+ ; get subfile for the given file and multiple-valued field
1177+"RTN","MSCFMGET",71,0)
1178+ N ATTR,SUBFILE
1179+"RTN","MSCFMGET",72,0)
1180+ S SUBFILE=""
1181+"RTN","MSCFMGET",73,0)
1182+ D FIELD^DID(FILE,MFIELD,"","MULTIPLE-VALUED;SPECIFIER;TYPE","ATTR")
1183+"RTN","MSCFMGET",74,0)
1184+ I ATTR("MULTIPLE-VALUED")=1,ATTR("TYPE")'="WORD-PROCESSING" D
1185+"RTN","MSCFMGET",75,0)
1186+ . S SUBFILE=+$G(ATTR("SPECIFIER"))
1187+"RTN","MSCFMGET",76,0)
1188+ . Q
1189+"RTN","MSCFMGET",77,0)
1190+ Q SUBFILE
1191+"RTN","MSCFMIDX")
1192+0^15^B5374937
1193+"RTN","MSCFMIDX",1,0)
1194+MSCFMIDX ; MSC/JDA - OVID FileMan INDEX ; May 14, 2009
1195+"RTN","MSCFMIDX",2,0)
1196+ ;;1.0;MSCFM;;May 14, 2009
1197+"RTN","MSCFMIDX",3,0)
1198+ Q
1199+"RTN","MSCFMIDX",4,0)
1200+RUN(REPLY,RES)
1201+"RTN","MSCFMIDX",5,0)
1202+ N FILENUM,PROPNAME,IDXNAME,FIELD,FILE
1203+"RTN","MSCFMIDX",6,0)
1204+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1205+"RTN","MSCFMIDX",7,0)
1206+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1207+"RTN","MSCFMIDX",8,0)
1208+ . I PROPNAME="FILE" S FILENUM=$$GETVAL^MSCRES(.RES) Q
1209+"RTN","MSCFMIDX",9,0)
1210+ . Q
1211+"RTN","MSCFMIDX",10,0)
1212+ S IDXNAME=""
1213+"RTN","MSCFMIDX",11,0)
1214+ ; old style indexes
1215+"RTN","MSCFMIDX",12,0)
1216+ F S IDXNAME=$O(^DD(FILENUM,0,"IX",IDXNAME)) Q:IDXNAME="" D
1217+"RTN","MSCFMIDX",13,0)
1218+ . D ADDCMPD^MSCRES(.REPLY,"INDEX")
1219+"RTN","MSCFMIDX",14,0)
1220+ . D ADDPROP^MSCRES(.REPLY,"NAME",IDXNAME)
1221+"RTN","MSCFMIDX",15,0)
1222+ . S FILE=$O(^DD(FILENUM,0,"IX",IDXNAME,""))
1223+"RTN","MSCFMIDX",16,0)
1224+ . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1225+"RTN","MSCFMIDX",17,0)
1226+ . D ADDPROP^MSCRES(.REPLY,"FILE",FILE)
1227+"RTN","MSCFMIDX",18,0)
1228+ . S FIELD=$O(^DD(FILENUM,0,"IX",IDXNAME,FILE,""))
1229+"RTN","MSCFMIDX",19,0)
1230+ . D ADDPROP^MSCRES(.REPLY,"FIELD",FIELD)
1231+"RTN","MSCFMIDX",20,0)
1232+ . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1233+"RTN","MSCFMIDX",21,0)
1234+ . D ENDCMPD^MSCRES(.REPLY) ; INDEX
1235+"RTN","MSCFMIDX",22,0)
1236+ . Q
1237+"RTN","MSCFMIDX",23,0)
1238+ ; new style indexes
1239+"RTN","MSCFMIDX",24,0)
1240+ N SCREEN,TRG,IDXNUM,TRG2,SUB,MSG,IENS
1241+"RTN","MSCFMIDX",25,0)
1242+ S SCREEN="I $P(^DD(""IX"",Y,0),""^"",14)'=""A"""
1243+"RTN","MSCFMIDX",26,0)
1244+ D FIND^DIC(.11,,"@;.11;.02;","QX",FILENUM,,"B",SCREEN,,"TRG")
1245+"RTN","MSCFMIDX",27,0)
1246+ S IDXNUM="" F S IDXNUM=$O(TRG("DILIST","ID",IDXNUM)) Q:IDXNUM="" D
1247+"RTN","MSCFMIDX",28,0)
1248+ . D ADDCMPD^MSCRES(.REPLY,"INDEX")
1249+"RTN","MSCFMIDX",29,0)
1250+ . D ADDPROP^MSCRES(.REPLY,"STYLE","New")
1251+"RTN","MSCFMIDX",30,0)
1252+ . D ADDPROP^MSCRES(.REPLY,"NAME",TRG("DILIST","ID",IDXNUM,.02))
1253+"RTN","MSCFMIDX",31,0)
1254+ . D ADDPROP^MSCRES(.REPLY,"SHORTDESC",TRG("DILIST","ID",IDXNUM,.11))
1255+"RTN","MSCFMIDX",32,0)
1256+ . S IENS=TRG("DILIST",2,IDXNUM)_","
1257+"RTN","MSCFMIDX",33,0)
1258+ . N DESC I $$GET1^DIQ(.11,IENS,.1,,"DESC","MSG")'="" D
1259+"RTN","MSCFMIDX",34,0)
1260+ . . N TMP S TMP=""
1261+"RTN","MSCFMIDX",35,0)
1262+ . . F S TMP=$O(DESC(TMP)) Q:TMP="" D ADDPROP^MSCRES(.REPLY,"LONGDESC",DESC(TMP))
1263+"RTN","MSCFMIDX",36,0)
1264+ . . Q
1265+"RTN","MSCFMIDX",37,0)
1266+ . D LIST^DIC(.114,","_IENS,"@;.01;2;3","Q",,,,,,,"TRG2")
1267+"RTN","MSCFMIDX",38,0)
1268+ . S SUB="" F S SUB=$O(TRG2("DILIST","ID",SUB)) Q:SUB="" D
1269+"RTN","MSCFMIDX",39,0)
1270+ . . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1271+"RTN","MSCFMIDX",40,0)
1272+ . . D ADDPROP^MSCRES(.REPLY,"ORDER",TRG2("DILIST","ID",SUB,.01))
1273+"RTN","MSCFMIDX",41,0)
1274+ . . D ADDPROP^MSCRES(.REPLY,"FILE",TRG2("DILIST","ID",SUB,2))
1275+"RTN","MSCFMIDX",42,0)
1276+ . . D ADDPROP^MSCRES(.REPLY,"FIELD",TRG2("DILIST","ID",SUB,3))
1277+"RTN","MSCFMIDX",43,0)
1278+ . . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1279+"RTN","MSCFMIDX",44,0)
1280+ . . Q
1281+"RTN","MSCFMIDX",45,0)
1282+ . D ENDCMPD^MSCRES(.REPLY) ; INDEX
1283+"RTN","MSCFMIDX",46,0)
1284+ . Q
1285+"RTN","MSCFMIDX",47,0)
1286+ Q
1287+"RTN","MSCFMINS")
1288+0^9^B6139097
1289+"RTN","MSCFMINS",1,0)
1290+MSCFMINS; MSC/JDA - OVID FileMan INSERT ; May 14, 2009
1291+"RTN","MSCFMINS",2,0)
1292+ ;;1.0;MSCFM;;May 14, 2009
1293+"RTN","MSCFMINS",3,0)
1294+ Q
1295+"RTN","MSCFMINS",4,0)
1296+RUN(REPLY,RES)
1297+"RTN","MSCFMINS",5,0)
1298+ N PROPNAME,FILE,INPUTFDA,IEN,SEQ,IDX,MSG,FDA,WPDATA
1299+"RTN","MSCFMINS",6,0)
1300+ ; Parse out the command properties
1301+"RTN","MSCFMINS",7,0)
1302+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1303+"RTN","MSCFMINS",8,0)
1304+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1305+"RTN","MSCFMINS",9,0)
1306+ . I PROPNAME="FIELD" D PROCFLD(.RES,FILE,.INPUTFDA,.FDA,"WPDATA")
1307+"RTN","MSCFMINS",10,0)
1308+ . I PROPNAME="FILE" S FILE=$$FILE2NUM^MSCFM($$GETVAL^MSCRES(.RES)) Q
1309+"RTN","MSCFMINS",11,0)
1310+ . Q
1311+"RTN","MSCFMINS",12,0)
1312+ D VALS^DIE(,"INPUTFDA","FDA","MSG")
1313+"RTN","MSCFMINS",13,0)
1314+ Q:$$ERROR(.MSG)
1315+"RTN","MSCFMINS",14,0)
1316+ D UPDATE^DIE(,"FDA","IEN","MSG")
1317+"RTN","MSCFMINS",15,0)
1318+ Q:$$ERROR(.MSG)
1319+"RTN","MSCFMINS",16,0)
1320+ D ADDCMPD^MSCRES(.REPLY,"RESULTS")
1321+"RTN","MSCFMINS",17,0)
1322+ S SEQ=""
1323+"RTN","MSCFMINS",18,0)
1324+ F S SEQ=$O(IEN(SEQ)) Q:SEQ="" D
1325+"RTN","MSCFMINS",19,0)
1326+ . D ADDCMPD^MSCRES(.REPLY,"IEN")
1327+"RTN","MSCFMINS",20,0)
1328+ . D ADDPROP^MSCRES(.REPLY,"VALUE",IEN(SEQ))
1329+"RTN","MSCFMINS",21,0)
1330+ . D ADDPROP^MSCRES(.REPLY,"SEQ",SEQ)
1331+"RTN","MSCFMINS",22,0)
1332+ . D ENDCMPD^MSCRES(.REPLY) ; IEN
1333+"RTN","MSCFMINS",23,0)
1334+ . Q
1335+"RTN","MSCFMINS",24,0)
1336+ D ENDCMPD^MSCRES(.REPLY) ; RESULTS
1337+"RTN","MSCFMINS",25,0)
1338+ Q
1339+"RTN","MSCFMINS",26,0)
1340+PROCFLD(RES,FILE,INPUTFDA,FDA,WPVAR)
1341+"RTN","MSCFMINS",27,0)
1342+ N NAME,VALUE,IENS,INTERN,WPLINES,WPNUM
1343+"RTN","MSCFMINS",28,0)
1344+ S IENS="+1,"
1345+"RTN","MSCFMINS",29,0)
1346+ S INTERN=0,WPNUM=1
1347+"RTN","MSCFMINS",30,0)
1348+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1349+"RTN","MSCFMINS",31,0)
1350+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1351+"RTN","MSCFMINS",32,0)
1352+ . I PROPNAME="NAME" S NAME=$$FLD2NUM^MSCFM(FILE,$$GETVAL^MSCRES(.RES)) Q
1353+"RTN","MSCFMINS",33,0)
1354+ . I PROPNAME="VALUE" S VALUE=$$GETVAL^MSCRES(.RES) Q
1355+"RTN","MSCFMINS",34,0)
1356+ . I PROPNAME="WPLINE" S WPLINES(WPNUM)=$$GETVAL^MSCRES(.RES),WPNUM=WPNUM+1 Q
1357+"RTN","MSCFMINS",35,0)
1358+ . I PROPNAME="INTERNAL" S INTERN=$$GETVAL^MSCRES(.RES) Q
1359+"RTN","MSCFMINS",36,0)
1360+ . I PROPNAME="IENS" S IENS=$$GETVAL^MSCRES(.RES) Q
1361+"RTN","MSCFMINS",37,0)
1362+ . Q
1363+"RTN","MSCFMINS",38,0)
1364+ I INTERN S INPUTFDA(FILE,IENS,NAME)=VALUE Q
1365+"RTN","MSCFMINS",39,0)
1366+ I $D(WPLINES) S FDA(FILE,IENS,NAME)=WPVAR_"("""_NAME_""")" M @FDA(FILE,IENS,NAME)=WPLINES Q
1367+"RTN","MSCFMINS",40,0)
1368+ S FDA(FILE,IENS,NAME)=VALUE
1369+"RTN","MSCFMINS",41,0)
1370+ Q
1371+"RTN","MSCFMINS",42,0)
1372+ERROR(MSG)
1373+"RTN","MSCFMINS",43,0)
1374+ Q:$G(MSG("DIERR"))="" 0
1375+"RTN","MSCFMINS",44,0)
1376+ N NUM
1377+"RTN","MSCFMINS",45,0)
1378+ D ADDCMPD^MSCRES(.REPLY,"ERRORS")
1379+"RTN","MSCFMINS",46,0)
1380+ F IDX=1:1 Q:$G(MSG("DIERR",IDX))="" D
1381+"RTN","MSCFMINS",47,0)
1382+ . S NUM=""
1383+"RTN","MSCFMINS",48,0)
1384+ . D ADDCMPD^MSCRES(.REPLY,"ERROR")
1385+"RTN","MSCFMINS",49,0)
1386+ . S NUM=$G(MSG("DIERR",IDX,"PARAM","FIELD"))
1387+"RTN","MSCFMINS",50,0)
1388+ . S:NUM="" NUM=$G(MSG("DIERR",IDX,"PARAM","FILE"))
1389+"RTN","MSCFMINS",51,0)
1390+ . D ADDPROP^MSCRES(.REPLY,"NUMBER",NUM)
1391+"RTN","MSCFMINS",52,0)
1392+ . D ADDPROP^MSCRES(.REPLY,"TEXT",MSG("DIERR",IDX,"TEXT",1))
1393+"RTN","MSCFMINS",53,0)
1394+ . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1395+"RTN","MSCFMINS",54,0)
1396+ D ENDCMPD^MSCRES(.REPLY) ; ERRORS
1397+"RTN","MSCFMINS",55,0)
1398+ Q 1
1399+"RTN","MSCFMLST")
1400+0^4^B4353203
1401+"RTN","MSCFMLST",1,0)
1402+MSCFMLST; MSC/JDA - OVID FileMan LIST ; May 14, 2009
1403+"RTN","MSCFMLST",2,0)
1404+ ;;1.0;MSCFM;;May 14, 2009
1405+"RTN","MSCFMLST",3,0)
1406+ Q
1407+"RTN","MSCFMLST",4,0)
1408+RUN(REPLY,RES)
1409+"RTN","MSCFMLST",5,0)
1410+ N THIS,FROM
1411+"RTN","MSCFMLST",6,0)
1412+ D CNSTRCT(.THIS)
1413+"RTN","MSCFMLST",7,0)
1414+ N TARGET
1415+"RTN","MSCFMLST",8,0)
1416+ D PROCESS(.THIS,.RES)
1417+"RTN","MSCFMLST",9,0)
1418+ I $G(THIS("ERROR"))'="" D ADDPROP^MSCRES(.REPLY,"ERROR",THIS("ERROR")) Q
1419+"RTN","MSCFMLST",10,0)
1420+ D:$G(THIS("SAFE")) SAFE(.THIS)
1421+"RTN","MSCFMLST",11,0)
1422+ I $G(THIS("ERROR"))'="" D ADDPROP^MSCRES(.REPLY,"ERROR",THIS("ERROR")) Q
1423+"RTN","MSCFMLST",12,0)
1424+ M:$D(THIS("FROM")) FROM=THIS("FROM")
1425+"RTN","MSCFMLST",13,0)
1426+ ; Call Fileman
1427+"RTN","MSCFMLST",14,0)
1428+ D LIST^DIC(THIS("FILE"),THIS("IENS"),THIS("FIELDS"),THIS("FLAGS"),THIS("NUMBER"),.FROM,,,THIS("SCREEN"),,"TARGET")
1429+"RTN","MSCFMLST",15,0)
1430+ M THIS("FROM")=FROM
1431+"RTN","MSCFMLST",16,0)
1432+ D BLDREPLY^MSCFMQRY(.THIS,.TARGET,.REPLY)
1433+"RTN","MSCFMLST",17,0)
1434+ Q
1435+"RTN","MSCFMLST",18,0)
1436+PROCESS(THIS,RES)
1437+"RTN","MSCFMLST",19,0)
1438+ F Q:('$$NEXTPROP^MSCRES(.RES))!($G(THIS("ERROR"))'="") D
1439+"RTN","MSCFMLST",20,0)
1440+ . D PROCPROP(.THIS,.RES)
1441+"RTN","MSCFMLST",21,0)
1442+ . Q
1443+"RTN","MSCFMLST",22,0)
1444+ Q
1445+"RTN","MSCFMLST",23,0)
1446+PROCPROP(THIS,RES)
1447+"RTN","MSCFMLST",24,0)
1448+ D PROCPROP^MSCFMQRY(.THIS,.RES)
1449+"RTN","MSCFMLST",25,0)
1450+ Q
1451+"RTN","MSCFMLST",26,0)
1452+CNSTRCT(THIS)
1453+"RTN","MSCFMLST",27,0)
1454+ D CNSTRCT^MSCFMQRY(.THIS)
1455+"RTN","MSCFMLST",28,0)
1456+ Q
1457+"RTN","MSCFMLST",29,0)
1458+SAFE(THIS)
1459+"RTN","MSCFMLST",30,0)
1460+ N TRG,I,PCNUM,PC,FIELD,FNUM,DONE,RESULT
1461+"RTN","MSCFMLST",31,0)
1462+ S FIELDS=THIS("FIELDS")
1463+"RTN","MSCFMLST",32,0)
1464+ D FIND^DIC(21455,,"@;1;2;3I","Q",THIS("FILE"),,"C",,,"TRG")
1465+"RTN","MSCFMLST",33,0)
1466+ Q:'$P(TRG("DILIST",0),"^",1)
1467+"RTN","MSCFMLST",34,0)
1468+ S RESULT="@"
1469+"RTN","MSCFMLST",35,0)
1470+ F PCNUM=2:1:$L(FIELDS,";") D
1471+"RTN","MSCFMLST",36,0)
1472+ . S PC=$P(FIELDS,";",PCNUM)
1473+"RTN","MSCFMLST",37,0)
1474+ . S FNUM=+PC
1475+"RTN","MSCFMLST",38,0)
1476+ . S I="",DONE=0 F S I=$O(TRG("DILIST","ID",I)) Q:I="" D Q:DONE
1477+"RTN","MSCFMLST",39,0)
1478+ . . I TRG("DILIST","ID",I,3)="S" S THIS("ERROR")="No data due to safe mode.",DONE=1 Q
1479+"RTN","MSCFMLST",40,0)
1480+ . . I TRG("DILIST","ID",I,2)=FNUM D S DONE=1
1481+"RTN","MSCFMLST",41,0)
1482+ . . . Q:TRG("DILIST","ID",I,3)="N"
1483+"RTN","MSCFMLST",42,0)
1484+ . . . I TRG("DILIST","ID",I,3)="I" S:PC'["I" PC=PC_"I" S RESULT=RESULT_";"_PC Q
1485+"RTN","MSCFMLST",43,0)
1486+ . . . Q
1487+"RTN","MSCFMLST",44,0)
1488+ . S:'DONE RESULT=RESULT_";"_PC
1489+"RTN","MSCFMLST",45,0)
1490+ . Q
1491+"RTN","MSCFMLST",46,0)
1492+ S THIS("FIELDS")=RESULT
1493+"RTN","MSCFMLST",47,0)
1494+ Q
1495+"RTN","MSCFMQRY")
1496+0^5^B26519484
1497+"RTN","MSCFMQRY",1,0)
1498+MSCFMQRY; MSC/JDA - OVID FileMan base for LIST and FIND ; May 14, 2009
1499+"RTN","MSCFMQRY",2,0)
1500+ ;;1.0;MSCFM;;May 14, 2009
1501+"RTN","MSCFMQRY",3,0)
1502+ Q
1503+"RTN","MSCFMQRY",4,0)
1504+BLDREPLY(THIS,TARGET,REPLY)
1505+"RTN","MSCFMQRY",5,0)
1506+ I THIS("FROM")'="" D
1507+"RTN","MSCFMQRY",6,0)
1508+ . D ADDCMPD^MSCRES(.REPLY,"FROM")
1509+"RTN","MSCFMQRY",7,0)
1510+ . N FROM M FROM=THIS("FROM")
1511+"RTN","MSCFMQRY",8,0)
1512+ . D SCAN^MSCFMDIC(.REPLY,"FROM",0)
1513+"RTN","MSCFMQRY",9,0)
1514+ . D ENDCMPD^MSCRES(.REPLY) ; FROM
1515+"RTN","MSCFMQRY",10,0)
1516+ . Q
1517+"RTN","MSCFMQRY",11,0)
1518+ D ADDCMPD^MSCRES(.REPLY,"RESULTS")
1519+"RTN","MSCFMQRY",12,0)
1520+ ; Check for HTML encoded packed output
1521+"RTN","MSCFMQRY",13,0)
1522+ I THIS("PACK")&($P(TARGET("DILIST",0),"^",4)["H") D ADDPROP^MSCRES(.REPLY,"HTML",1)
1523+"RTN","MSCFMQRY",14,0)
1524+ N MAP,MAPFLD,TYPEMAP,FNUM,PC
1525+"RTN","MSCFMQRY",15,0)
1526+ I THIS("PACK") D
1527+"RTN","MSCFMQRY",16,0)
1528+ . S MAP=TARGET("DILIST",0,"MAP")
1529+"RTN","MSCFMQRY",17,0)
1530+ . ; Translate the field numbers back into the field names we were given
1531+"RTN","MSCFMQRY",18,0)
1532+ . ; Also, remap special types from field #s to positions
1533+"RTN","MSCFMQRY",19,0)
1534+ . F FNUM=1:1 S MAPFLD=$P(MAP,"^",FNUM) Q:MAPFLD="" D
1535+"RTN","MSCFMQRY",20,0)
1536+ . . Q:'$D(THIS("NAMES",MAPFLD))
1537+"RTN","MSCFMQRY",21,0)
1538+ . . S $P(MAP,"^",FNUM)=THIS("NAMES",MAPFLD)
1539+"RTN","MSCFMQRY",22,0)
1540+ . . S:$D(THIS("TYPES",MAPFLD)) TYPEMAP(FNUM)=THIS("TYPES",MAPFLD)
1541+"RTN","MSCFMQRY",23,0)
1542+ . . Q
1543+"RTN","MSCFMQRY",24,0)
1544+ . Q
1545+"RTN","MSCFMQRY",25,0)
1546+ E D
1547+"RTN","MSCFMQRY",26,0)
1548+ . S MAPFLD=""
1549+"RTN","MSCFMQRY",27,0)
1550+ . F S MAPFLD=$O(THIS("NAMES",MAPFLD)) Q:MAPFLD="" D
1551+"RTN","MSCFMQRY",28,0)
1552+ . . S:$D(THIS("TYPES",MAPFLD)) TYPEMAP(THIS("NAMES",MAPFLD))=THIS("TYPES",MAPFLD)
1553+"RTN","MSCFMQRY",29,0)
1554+ . . Q
1555+"RTN","MSCFMQRY",30,0)
1556+ . Q
1557+"RTN","MSCFMQRY",31,0)
1558+ I $D(MAP) D
1559+"RTN","MSCFMQRY",32,0)
1560+ . D ADDCMPD^MSCRES(.REPLY,"MAP")
1561+"RTN","MSCFMQRY",33,0)
1562+ . F PC=1:1:$L(MAP,"^") D ADDPROP^MSCRES(.REPLY,"M",$P(MAP,"^",PC))
1563+"RTN","MSCFMQRY",34,0)
1564+ . D ENDCMPD^MSCRES(.REPLY) ; MAP
1565+"RTN","MSCFMQRY",35,0)
1566+ . Q
1567+"RTN","MSCFMQRY",36,0)
1568+ N SEQNUM,NODE,IDX,VALUE,FLDVAL
1569+"RTN","MSCFMQRY",37,0)
1570+ ; Loop though results and create reply resource
1571+"RTN","MSCFMQRY",38,0)
1572+ I THIS("PACK") D ; Packed format
1573+"RTN","MSCFMQRY",39,0)
1574+ . S SEQNUM=0
1575+"RTN","MSCFMQRY",40,0)
1576+ . I $D(THIS("TYPES")) D ; need to translate variable pointers to return file #s
1577+"RTN","MSCFMQRY",41,0)
1578+ . . F S SEQNUM=$O(TARGET("DILIST",SEQNUM)) Q:SEQNUM="" D
1579+"RTN","MSCFMQRY",42,0)
1580+ . . . S VALUE=TARGET("DILIST",SEQNUM,0)
1581+"RTN","MSCFMQRY",43,0)
1582+ . . . S IDX=""
1583+"RTN","MSCFMQRY",44,0)
1584+ . . . F S IDX=$O(TYPEMAP(IDX)) Q:IDX="" D
1585+"RTN","MSCFMQRY",45,0)
1586+ . . . . S FLDVAL=$P(VALUE,"^",IDX)
1587+"RTN","MSCFMQRY",46,0)
1588+ . . . . I FLDVAL'="" D
1589+"RTN","MSCFMQRY",47,0)
1590+ . . . . . S $P(FLDVAL,";",2)=+$P(@("^"_$P(FLDVAL,";",2)_"0)"),"^",2)
1591+"RTN","MSCFMQRY",48,0)
1592+ . . . . S $P(VALUE,"^",IDX)=FLDVAL
1593+"RTN","MSCFMQRY",49,0)
1594+ . . . . . Q
1595+"RTN","MSCFMQRY",50,0)
1596+ . . . . Q
1597+"RTN","MSCFMQRY",51,0)
1598+ . . . D ADDPROP^MSCRES(.REPLY,"RD",VALUE)
1599+"RTN","MSCFMQRY",52,0)
1600+ . . . Q
1601+"RTN","MSCFMQRY",53,0)
1602+ . . Q
1603+"RTN","MSCFMQRY",54,0)
1604+ . E D
1605+"RTN","MSCFMQRY",55,0)
1606+ . . F S SEQNUM=$O(TARGET("DILIST",SEQNUM)) Q:SEQNUM="" D
1607+"RTN","MSCFMQRY",56,0)
1608+ . . . D ADDPROP^MSCRES(.REPLY,"RD",TARGET("DILIST",SEQNUM,0))
1609+"RTN","MSCFMQRY",57,0)
1610+ . . . Q
1611+"RTN","MSCFMQRY",58,0)
1612+ . . Q
1613+"RTN","MSCFMQRY",59,0)
1614+ . Q
1615+"RTN","MSCFMQRY",60,0)
1616+ E D ; Unpacked data
1617+"RTN","MSCFMQRY",61,0)
1618+ . N FLDNUM
1619+"RTN","MSCFMQRY",62,0)
1620+ . S SEQNUM="0"
1621+"RTN","MSCFMQRY",63,0)
1622+ . F S SEQNUM=$O(TARGET("DILIST","ID",SEQNUM)) Q:SEQNUM="" D
1623+"RTN","MSCFMQRY",64,0)
1624+ . . D ADDCMPD^MSCRES(.REPLY,"ROW")
1625+"RTN","MSCFMQRY",65,0)
1626+ . . ; Add IEN field
1627+"RTN","MSCFMQRY",66,0)
1628+ . . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1629+"RTN","MSCFMQRY",67,0)
1630+ . . D ADDPROP^MSCRES(.REPLY,"NAME","IEN")
1631+"RTN","MSCFMQRY",68,0)
1632+ . . D ADDPROP^MSCRES(.REPLY,"VALUE",TARGET("DILIST",2,SEQNUM))
1633+"RTN","MSCFMQRY",69,0)
1634+ . . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1635+"RTN","MSCFMQRY",70,0)
1636+ . . ; Loop through fields
1637+"RTN","MSCFMQRY",71,0)
1638+ . . S FLDNUM=""
1639+"RTN","MSCFMQRY",72,0)
1640+ . . F S FLDNUM=$O(TARGET("DILIST","ID",SEQNUM,FLDNUM)) Q:FLDNUM="" D
1641+"RTN","MSCFMQRY",73,0)
1642+ . . . S VALUE=TARGET("DILIST","ID",SEQNUM,FLDNUM)
1643+"RTN","MSCFMQRY",74,0)
1644+ . . . Q:VALUE="" ; Do not report empty nodes
1645+"RTN","MSCFMQRY",75,0)
1646+ . . . S:$D(TYPEMAP(FLDNUM)) $P(VALUE,";",2)=+$P(@("^"_$P(VALUE,";",2)_"0)"),"^",2)
1647+"RTN","MSCFMQRY",76,0)
1648+ . . . D ADDCMPD^MSCRES(.REPLY,"FIELD")
1649+"RTN","MSCFMQRY",77,0)
1650+ . . . D ADDPROP^MSCRES(.REPLY,"NAME",THIS("NAMES",FLDNUM))
1651+"RTN","MSCFMQRY",78,0)
1652+ . . . D ADDPROP^MSCRES(.REPLY,"VALUE",VALUE)
1653+"RTN","MSCFMQRY",79,0)
1654+ . . . D ENDCMPD^MSCRES(.REPLY) ; FIELD
1655+"RTN","MSCFMQRY",80,0)
1656+ . . . Q
1657+"RTN","MSCFMQRY",81,0)
1658+ . . D ENDCMPD^MSCRES(.REPLY) ; ROW
1659+"RTN","MSCFMQRY",82,0)
1660+ . . Q
1661+"RTN","MSCFMQRY",83,0)
1662+ . Q
1663+"RTN","MSCFMQRY",84,0)
1664+ D ENDCMPD^MSCRES(.REPLY) ; RESULTS
1665+"RTN","MSCFMQRY",85,0)
1666+ Q
1667+"RTN","MSCFMQRY",86,0)
1668+CNSTRCT(THIS)
1669+"RTN","MSCFMQRY",87,0)
1670+ S THIS("PACK")=0,THIS("NUMBER")="*",THIS("FLAGS")="Q",THIS("FIELDS")="@"
1671+"RTN","MSCFMQRY",88,0)
1672+ S THIS("IENS")="",THIS("FROM")="",THIS("SCREEN")=""
1673+"RTN","MSCFMQRY",89,0)
1674+ Q
1675+"RTN","MSCFMQRY",90,0)
1676+PROCPROP(THIS,RES)
1677+"RTN","MSCFMQRY",91,0)
1678+ N FROM
1679+"RTN","MSCFMQRY",92,0)
1680+ S PROPNAME=$$GETPROP^MSCRES(.RES)
1681+"RTN","MSCFMQRY",93,0)
1682+ I PROPNAME="FIELD" D Q
1683+"RTN","MSCFMQRY",94,0)
1684+ . N TMP
1685+"RTN","MSCFMQRY",95,0)
1686+ . S TMP=$$PROCFLD(.THIS,.RES)
1687+"RTN","MSCFMQRY",96,0)
1688+ . Q:'TMP ; obsolete or multiple field
1689+"RTN","MSCFMQRY",97,0)
1690+ . S THIS("FIELDS")=THIS("FIELDS")_";"_TMP
1691+"RTN","MSCFMQRY",98,0)
1692+ . Q
1693+"RTN","MSCFMQRY",99,0)
1694+ I PROPNAME="FILE" S THIS("FILE")=$$FILE2NUM^MSCFM($$GETVAL^MSCRES(.RES)) S:THIS("FILE")=0 THIS("ERROR")="Could not find file '"_$$GETVAL^MSCRES(.RES)_"'." Q
1695+"RTN","MSCFMQRY",100,0)
1696+ I PROPNAME="NUMBER" S THIS("NUMBER")=+$$GETVAL^MSCRES(.RES) Q
1697+"RTN","MSCFMQRY",101,0)
1698+ I PROPNAME="FROM" D READ^MSCFMDIC(.RES,.FROM) M THIS("FROM")=FROM Q
1699+"RTN","MSCFMQRY",102,0)
1700+ I PROPNAME="IENS" S THIS("IENS")=$$GETVAL^MSCRES(.RES) Q
1701+"RTN","MSCFMQRY",103,0)
1702+ I PROPNAME="PACK" S THIS("PACK")=$$GETVAL^MSCRES(.RES) S:THIS("PACK") THIS("FLAGS")=THIS("FLAGS")_"P" Q
1703+"RTN","MSCFMQRY",104,0)
1704+ I PROPNAME="SCREEN" S THIS("SCREEN")="I "_$$PROCESS^MSCFMSCN(.THIS,.RES) Q
1705+"RTN","MSCFMQRY",105,0)
1706+ I PROPNAME="SAFE" S THIS("SAFE")=$$GETVAL^MSCRES(.RES) Q
1707+"RTN","MSCFMQRY",106,0)
1708+ Q
1709+"RTN","MSCFMQRY",107,0)
1710+PROCFLD(THIS,RES)
1711+"RTN","MSCFMQRY",108,0)
1712+ N NAME,PROPNAME,FLAGS,INTERN,EXTERN,NUM,TYPE,TARGET
1713+"RTN","MSCFMQRY",109,0)
1714+ S NAME="",INTERN="0",EXTERN="0"
1715+"RTN","MSCFMQRY",110,0)
1716+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1717+"RTN","MSCFMQRY",111,0)
1718+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1719+"RTN","MSCFMQRY",112,0)
1720+ . I PROPNAME="NAME" S NAME=$$GETVAL^MSCRES(.RES) Q
1721+"RTN","MSCFMQRY",113,0)
1722+ . I PROPNAME="INTERNAL" S INTERN=$$GETVAL^MSCRES(.RES) Q
1723+"RTN","MSCFMQRY",114,0)
1724+ . I PROPNAME="TYPE" S TYPE=$$GETVAL^MSCRES(.RES) Q
1725+"RTN","MSCFMQRY",115,0)
1726+ . Q
1727+"RTN","MSCFMQRY",116,0)
1728+ S NUM=$$FLD2NUM^MSCFM(THIS("FILE"),NAME)
1729+"RTN","MSCFMQRY",117,0)
1730+ Q:'NUM 0 ; obsolete field
1731+"RTN","MSCFMQRY",118,0)
1732+ D FIELD^DID(THIS("FILE"),NUM,,"MULTIPLE-VALUED","TARGET")
1733+"RTN","MSCFMQRY",119,0)
1734+ Q:'$D(TARGET("MULTIPLE-VALUED")) 0
1735+"RTN","MSCFMQRY",120,0)
1736+ Q:TARGET("MULTIPLE-VALUED") 0
1737+"RTN","MSCFMQRY",121,0)
1738+ S THIS("NAMES",NUM)=NAME ; for unpacked
1739+"RTN","MSCFMQRY",122,0)
1740+ S:INTERN NUM=NUM_"I"
1741+"RTN","MSCFMQRY",123,0)
1742+ S:EXTERN NUM=NUM_"E"
1743+"RTN","MSCFMQRY",124,0)
1744+ S THIS("NAMES",NUM)=NAME ; for packed
1745+"RTN","MSCFMQRY",125,0)
1746+ S:$D(TYPE) THIS("TYPES",NUM)=TYPE
1747+"RTN","MSCFMQRY",126,0)
1748+ Q NUM
1749+"RTN","MSCFMREF")
1750+0^16^B1814485
1751+"RTN","MSCFMREF",1,0)
1752+MSCFMREF; MSC/JDA - OVID FileMan REFBY ; May 14, 2009
1753+"RTN","MSCFMREF",2,0)
1754+ ;;1.0;MSCFM;;May 14, 2009
1755+"RTN","MSCFMREF",3,0)
1756+ Q
1757+"RTN","MSCFMREF",4,0)
1758+RUN(REPLY,RES)
1759+"RTN","MSCFMREF",5,0)
1760+ N FILENUM,PROPNAME,VAR,FILE,FIELD,FILENAME
1761+"RTN","MSCFMREF",6,0)
1762+ S FILENUM=0,FILENAME=""
1763+"RTN","MSCFMREF",7,0)
1764+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1765+"RTN","MSCFMREF",8,0)
1766+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1767+"RTN","MSCFMREF",9,0)
1768+ . I PROPNAME="FILE" S FILENAME=$$GETVAL^MSCRES(.RES) Q
1769+"RTN","MSCFMREF",10,0)
1770+ . Q
1771+"RTN","MSCFMREF",11,0)
1772+ S:FILENAME'="" FILENUM=$$FILE2NUM^MSCFM(FILENAME)
1773+"RTN","MSCFMREF",12,0)
1774+ I FILENUM=0 D ADDPROP^MSCRES(.REPLY,"ERROR","Could not find file.") Q
1775+"RTN","MSCFMREF",13,0)
1776+ S VAR="^DD("_FILENUM_",0,""PT"")"
1777+"RTN","MSCFMREF",14,0)
1778+ F S VAR=$Q(@VAR) Q:($QS(VAR,1)'=FILENUM)!($QS(VAR,3)'="PT") D
1779+"RTN","MSCFMREF",15,0)
1780+ . S FILE=$QS(VAR,4)
1781+"RTN","MSCFMREF",16,0)
1782+ . S FIELD=$QS(VAR,5)
1783+"RTN","MSCFMREF",17,0)
1784+ . D ADDCMPD^MSCRES(.REPLY,"R")
1785+"RTN","MSCFMREF",18,0)
1786+ . D ADDPROP^MSCRES(.REPLY,"F",$$NUM2FILE^MSCFM(FILE))
1787+"RTN","MSCFMREF",19,0)
1788+ . D ADDPROP^MSCRES(.REPLY,"F#",FILE)
1789+"RTN","MSCFMREF",20,0)
1790+ . D ADDPROP^MSCRES(.REPLY,"C",$P(^DD(FILE,FIELD,0),"^",1))
1791+"RTN","MSCFMREF",21,0)
1792+ . D ADDPROP^MSCRES(.REPLY,"C#",FIELD)
1793+"RTN","MSCFMREF",22,0)
1794+ . D ENDCMPD^MSCRES(.REPLY) ; R
1795+"RTN","MSCFMREF",23,0)
1796+ . Q
1797+"RTN","MSCFMREF",24,0)
1798+ Q
1799+"RTN","MSCFMSCN")
1800+0^10^B9466392
1801+"RTN","MSCFMSCN",1,0)
1802+MSCFMSCN; MSC/JDA - OVID FileMan screens ; May 14, 2009
1803+"RTN","MSCFMSCN",2,0)
1804+ ;;1.0;MSCFM;;May 14, 2009
1805+"RTN","MSCFMSCN",3,0)
1806+ Q
1807+"RTN","MSCFMSCN",4,0)
1808+PROCESS(THIS,RES) ; Parse equation resource into text suitable for a SCREEN
1809+"RTN","MSCFMSCN",5,0)
1810+ N RETVAL,PROPNAME S RETVAL=""
1811+"RTN","MSCFMSCN",6,0)
1812+ F Q:'$$NEXTPROP^MSCRES(.RES) D ; There should only be one, but loop anyway
1813+"RTN","MSCFMSCN",7,0)
1814+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1815+"RTN","MSCFMSCN",8,0)
1816+ . I PROPNAME="ISNULL" S RETVAL=$$PROCNULL(.THIS,.RES) Q
1817+"RTN","MSCFMSCN",9,0)
1818+ . I PROPNAME="EQUALS" S RETVAL=$$PROCEQ(.THIS,.RES) Q
1819+"RTN","MSCFMSCN",10,0)
1820+ . I PROPNAME="AND" S RETVAL=$$PROCAND(.THIS,.RES) Q
1821+"RTN","MSCFMSCN",11,0)
1822+ . I PROPNAME="OR" S RETVAL=$$PROCOR(.THIS,.RES) Q
1823+"RTN","MSCFMSCN",12,0)
1824+ . I PROPNAME="GT" S RETVAL=$$PROCGT(.THIS,.RES) Q
1825+"RTN","MSCFMSCN",13,0)
1826+ . I PROPNAME="FIELD" S RETVAL=$$PROCFLD(.THIS,.RES) Q
1827+"RTN","MSCFMSCN",14,0)
1828+ . I PROPNAME="VALUE" S RETVAL=$$PROCVAL(.THIS,.RES) Q
1829+"RTN","MSCFMSCN",15,0)
1830+ . I PROPNAME="IEN" S RETVAL=$$PROCIEN(.THIS,.RES) Q
1831+"RTN","MSCFMSCN",16,0)
1832+ . Q
1833+"RTN","MSCFMSCN",17,0)
1834+ Q RETVAL
1835+"RTN","MSCFMSCN",18,0)
1836+PROCEQ(THIS,RES) ; Check for equals
1837+"RTN","MSCFMSCN",19,0)
1838+ N PROPNAME,LEFT,RIGHT
1839+"RTN","MSCFMSCN",20,0)
1840+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1841+"RTN","MSCFMSCN",21,0)
1842+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1843+"RTN","MSCFMSCN",22,0)
1844+ . I PROPNAME="LEFT" S LEFT=$$PROCESS(.THIS,.RES) Q
1845+"RTN","MSCFMSCN",23,0)
1846+ . I PROPNAME="RIGHT" S RIGHT=$$PROCESS(.THIS,.RES) Q
1847+"RTN","MSCFMSCN",24,0)
1848+ . Q
1849+"RTN","MSCFMSCN",25,0)
1850+ Q "("_LEFT_"="_RIGHT_")"
1851+"RTN","MSCFMSCN",26,0)
1852+PROCAND(THIS,RES) ; Boolean AND between two clauses
1853+"RTN","MSCFMSCN",27,0)
1854+ N PROPNAME,LEFT,RIGHT
1855+"RTN","MSCFMSCN",28,0)
1856+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1857+"RTN","MSCFMSCN",29,0)
1858+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1859+"RTN","MSCFMSCN",30,0)
1860+ . I PROPNAME="LEFT" S LEFT=$$PROCESS(.THIS,.RES) Q
1861+"RTN","MSCFMSCN",31,0)
1862+ . I PROPNAME="RIGHT" S RIGHT=$$PROCESS(.THIS,.RES) Q
1863+"RTN","MSCFMSCN",32,0)
1864+ . Q
1865+"RTN","MSCFMSCN",33,0)
1866+ Q "("_LEFT_"&"_RIGHT_")"
1867+"RTN","MSCFMSCN",34,0)
1868+PROCOR(THIS,RES) ; Boolean OR between two clauses
1869+"RTN","MSCFMSCN",35,0)
1870+ N PROPNAME,LEFT,RIGHT
1871+"RTN","MSCFMSCN",36,0)
1872+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1873+"RTN","MSCFMSCN",37,0)
1874+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1875+"RTN","MSCFMSCN",38,0)
1876+ . I PROPNAME="LEFT" S LEFT=$$PROCESS(.THIS,.RES) Q
1877+"RTN","MSCFMSCN",39,0)
1878+ . I PROPNAME="RIGHT" S RIGHT=$$PROCESS(.THIS,.RES) Q
1879+"RTN","MSCFMSCN",40,0)
1880+ . Q
1881+"RTN","MSCFMSCN",41,0)
1882+ Q "("_LEFT_"!"_RIGHT_")"
1883+"RTN","MSCFMSCN",42,0)
1884+PROCGT(THIS,RES) ; Greater Than between two clauses
1885+"RTN","MSCFMSCN",43,0)
1886+ N PROPNAME,LEFT,RIGHT
1887+"RTN","MSCFMSCN",44,0)
1888+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1889+"RTN","MSCFMSCN",45,0)
1890+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1891+"RTN","MSCFMSCN",46,0)
1892+ . I PROPNAME="LEFT" S LEFT=$$PROCESS(.THIS,.RES) Q
1893+"RTN","MSCFMSCN",47,0)
1894+ . I PROPNAME="RIGHT" S RIGHT=$$PROCESS(.THIS,.RES) Q
1895+"RTN","MSCFMSCN",48,0)
1896+ . Q
1897+"RTN","MSCFMSCN",49,0)
1898+ Q "("_LEFT_">"_RIGHT_")"
1899+"RTN","MSCFMSCN",50,0)
1900+PROCNULL(THIS,RES) ; Check for null
1901+"RTN","MSCFMSCN",51,0)
1902+ N RETVAL,FIELD,BOOL,PROPNAME S RETVAL="1",FIELD="",BOOL=1
1903+"RTN","MSCFMSCN",52,0)
1904+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1905+"RTN","MSCFMSCN",53,0)
1906+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1907+"RTN","MSCFMSCN",54,0)
1908+ . I PROPNAME="FIELD" S FIELD=$$PROCFLD(.THIS,.RES) Q
1909+"RTN","MSCFMSCN",55,0)
1910+ . I PROPNAME="BOOL" S BOOL=$$GETVAL^MSCRES(.RES) Q
1911+"RTN","MSCFMSCN",56,0)
1912+ . Q
1913+"RTN","MSCFMSCN",57,0)
1914+ I (FIELD'="") D
1915+"RTN","MSCFMSCN",58,0)
1916+ . S RETVAL=FIELD
1917+"RTN","MSCFMSCN",59,0)
1918+ . S:'BOOL RETVAL=RETVAL_"'"
1919+"RTN","MSCFMSCN",60,0)
1920+ . S RETVAL=RETVAL_"="""""
1921+"RTN","MSCFMSCN",61,0)
1922+ . S RETVAL="("_RETVAL_")"
1923+"RTN","MSCFMSCN",62,0)
1924+ . Q
1925+"RTN","MSCFMSCN",63,0)
1926+ Q RETVAL
1927+"RTN","MSCFMSCN",64,0)
1928+PROCVAL(THIS,RES) ; Constant value
1929+"RTN","MSCFMSCN",65,0)
1930+ Q """"_$$GETVAL^MSCRES(.RES)_""""
1931+"RTN","MSCFMSCN",66,0)
1932+PROCFLD(THIS,RES) ; Field in record
1933+"RTN","MSCFMSCN",67,0)
1934+ ; Construct equation of form: $P($G(GLOBALROOT(Y,SUBSCRIPT)),"^",PART)
1935+"RTN","MSCFMSCN",68,0)
1936+ N FIELD,GLOBNAME,TEMP,INDEX,LOC
1937+"RTN","MSCFMSCN",69,0)
1938+ S FIELD=$$GETVAL^MSCRES(.RES)
1939+"RTN","MSCFMSCN",70,0)
1940+ ; Get the raw global location and check that.
1941+"RTN","MSCFMSCN",71,0)
1942+ D FILE^DID(THIS("FILE"),,"GLOBAL NAME","TEMP")
1943+"RTN","MSCFMSCN",72,0)
1944+ S GLOBNAME=TEMP("GLOBAL NAME")
1945+"RTN","MSCFMSCN",73,0)
1946+ D FIELD^DID(THIS("FILE"),FIELD,,"GLOBAL SUBSCRIPT LOCATION","TEMP")
1947+"RTN","MSCFMSCN",74,0)
1948+ S INDEX=$P(TEMP("GLOBAL SUBSCRIPT LOCATION"),";",1)
1949+"RTN","MSCFMSCN",75,0)
1950+ S LOC=$P(TEMP("GLOBAL SUBSCRIPT LOCATION"),";",2)
1951+"RTN","MSCFMSCN",76,0)
1952+ Q "$P($G("_GLOBNAME_"Y,"""_INDEX_""")),""^"","_LOC_")"
1953+"RTN","MSCFMSCN",77,0)
1954+PROCIEN(THIS,RES) ; IEN
1955+"RTN","MSCFMSCN",78,0)
1956+ Q "Y"
1957+"RTN","MSCFMUPD")
1958+0^6^B5427703
1959+"RTN","MSCFMUPD",1,0)
1960+MSCFMUPD; MSC/JDA - OVID FileMan UPDATE ; May 14, 2009
1961+"RTN","MSCFMUPD",2,0)
1962+ ;;1.0;MSCFM;;May 14, 2009
1963+"RTN","MSCFMUPD",3,0)
1964+ Q
1965+"RTN","MSCFMUPD",4,0)
1966+RUN(REPLY,RES)
1967+"RTN","MSCFMUPD",5,0)
1968+ N PROPNAME,FILE,FDA,IENS,MSG,IDX,INPUTFDA
1969+"RTN","MSCFMUPD",6,0)
1970+ ; Parse out the command properties
1971+"RTN","MSCFMUPD",7,0)
1972+ F Q:'$$NEXTPROP^MSCRES(.RES) D
1973+"RTN","MSCFMUPD",8,0)
1974+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
1975+"RTN","MSCFMUPD",9,0)
1976+ . I PROPNAME="FIELD" D PROCFLD(.RES,FILE,IENS,.INPUTFDA,.FDA)
1977+"RTN","MSCFMUPD",10,0)
1978+ . I PROPNAME="FILE" S FILE=$$FILE2NUM^MSCFM($$GETVAL^MSCRES(.RES)) Q
1979+"RTN","MSCFMUPD",11,0)
1980+ . I PROPNAME="IENS" S IENS=$$GETVAL^MSCRES(.RES) S:$E(IENS,$L(IENS))'="," IENS=IENS_"," Q
1981+"RTN","MSCFMUPD",12,0)
1982+ . Q
1983+"RTN","MSCFMUPD",13,0)
1984+ D VALS^DIE(,"INPUTFDA","FDA","MSG")
1985+"RTN","MSCFMUPD",14,0)
1986+ I $G(MSG("DIERR"))'="" D Q
1987+"RTN","MSCFMUPD",15,0)
1988+ . D ADDCMPD^MSCRES(.REPLY,"ERRORS")
1989+"RTN","MSCFMUPD",16,0)
1990+ . F IDX=1:1 Q:$G(MSG("DIERR",IDX))="" D
1991+"RTN","MSCFMUPD",17,0)
1992+ . . D ADDCMPD^MSCRES(.REPLY,"ERROR")
1993+"RTN","MSCFMUPD",18,0)
1994+ . . D ADDPROP^MSCRES(.REPLY,"NUMBER",MSG("DIERR",IDX,"PARAM","FIELD"))
1995+"RTN","MSCFMUPD",19,0)
1996+ . . D ADDPROP^MSCRES(.REPLY,"TEXT",MSG("DIERR",IDX,"TEXT",1))
1997+"RTN","MSCFMUPD",20,0)
1998+ . . D ENDCMPD^MSCRES(.REPLY) ; ERROR
1999+"RTN","MSCFMUPD",21,0)
2000+ . D ENDCMPD^MSCRES(.REPLY) ; ERRORS
2001+"RTN","MSCFMUPD",22,0)
2002+ . Q
2003+"RTN","MSCFMUPD",23,0)
2004+ D FILE^DIE(,"FDA","MSG")
2005+"RTN","MSCFMUPD",24,0)
2006+ I $G(MSG("DIERR"))'="" D
2007+"RTN","MSCFMUPD",25,0)
2008+ . D ADDCMPD^MSCRES(.REPLY,"ERRORS")
2009+"RTN","MSCFMUPD",26,0)
2010+ . F IDX=1:1 Q:'$G(MSG("DIERR",IDX)) D
2011+"RTN","MSCFMUPD",27,0)
2012+ . . D ADDCMPD^MSCRES(.REPLY,"ERROR")
2013+"RTN","MSCFMUPD",28,0)
2014+ . . D ADDPROP^MSCRES(.REPLY,"NUMBER",MSG("DIERR",IDX))
2015+"RTN","MSCFMUPD",29,0)
2016+ . . D ADDPROP^MSCRES(.REPLY,"TEXT",MSG("DIERR",IDX,"TEXT",1))
2017+"RTN","MSCFMUPD",30,0)
2018+ . . D ENDCMPD^MSCRES(.REPLY) ; ERROR
2019+"RTN","MSCFMUPD",31,0)
2020+ . . Q
2021+"RTN","MSCFMUPD",32,0)
2022+ . D ENDCMPD^MSCRES(.REPLY) ; ERROR
2023+"RTN","MSCFMUPD",33,0)
2024+ . Q
2025+"RTN","MSCFMUPD",34,0)
2026+ E D ADDCMPD^MSCRES(.REPLY,"RESULTS") D ENDCMPD^MSCRES(.REPLY) ; Empty results
2027+"RTN","MSCFMUPD",35,0)
2028+ Q
2029+"RTN","MSCFMUPD",36,0)
2030+PROCFLD(RES,FILE,IENS,INPUTFDA,FDA)
2031+"RTN","MSCFMUPD",37,0)
2032+ N NAME,VALUE,INTERN,RESULT
2033+"RTN","MSCFMUPD",38,0)
2034+ S INTERN=0
2035+"RTN","MSCFMUPD",39,0)
2036+ F Q:'$$NEXTPROP^MSCRES(.RES) D
2037+"RTN","MSCFMUPD",40,0)
2038+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
2039+"RTN","MSCFMUPD",41,0)
2040+ . I PROPNAME="NAME" S NAME=$$GETVAL^MSCRES(.RES) Q ; Either label or number is OK
2041+"RTN","MSCFMUPD",42,0)
2042+ . I PROPNAME="VALUE" S VALUE=$$GETVAL^MSCRES(.RES) Q
2043+"RTN","MSCFMUPD",43,0)
2044+ . I PROPNAME="INTERNAL" S INTERN=$$GETVAL^MSCRES(.RES) Q
2045+"RTN","MSCFMUPD",44,0)
2046+ . Q
2047+"RTN","MSCFMUPD",45,0)
2048+ I INTERN S INPUTFDA(FILE,IENS,NAME)=VALUE
2049+"RTN","MSCFMUPD",46,0)
2050+ E S FDA(FILE,IENS,NAME)=VALUE
2051+"RTN","MSCFMUPD",47,0)
2052+ Q
2053+"SEC","^DIC",21455,21455,0,"AUDIT")
2054+@
2055+"SEC","^DIC",21455,21455,0,"DD")
2056+@
2057+"SEC","^DIC",21455,21455,0,"DEL")
2058+@
2059+"SEC","^DIC",21455,21455,0,"LAYGO")
2060+@
2061+"SEC","^DIC",21455,21455,0,"RD")
2062+@
2063+"SEC","^DIC",21455,21455,0,"WR")
2064+@
2065+"VER")
2066+8.0^22.0
2067+"^DD",21455,21455,0)
2068+FIELD^^4^5
2069+"^DD",21455,21455,0,"DT")
2070+3080708
2071+"^DD",21455,21455,0,"IX","B",21455,.01)
2072+
2073+"^DD",21455,21455,0,"IX","C",21455,1)
2074+
2075+"^DD",21455,21455,0,"NM","FILEMAN EXCEPTION")
2076+
2077+"^DD",21455,21455,.01,0)
2078+NAME^RF^^0;1^K:$L(X)>30!(X?.N)!($L(X)<3)!'(X'?1P.E) X
2079+"^DD",21455,21455,.01,1,0)
2080+^.1
2081+"^DD",21455,21455,.01,1,1,0)
2082+21455^B
2083+"^DD",21455,21455,.01,1,1,1)
2084+S ^MSCFME("B",$E(X,1,30),DA)=""
2085+"^DD",21455,21455,.01,1,1,2)
2086+K ^MSCFME("B",$E(X,1,30),DA)
2087+"^DD",21455,21455,.01,3)
2088+NAME MUST BE 3-30 CHARACTERS, NOT NUMERIC OR STARTING WITH PUNCTUATION
2089+"^DD",21455,21455,1,0)
2090+FILE^RNJ19,9^^0;2^K:+X'=X!(X>999999999)!(X<0)!(X?.E1"."10.N) X
2091+"^DD",21455,21455,1,.1)
2092+FILE NUMBER
2093+"^DD",21455,21455,1,1,0)
2094+^.1
2095+"^DD",21455,21455,1,1,1,0)
2096+21455^C
2097+"^DD",21455,21455,1,1,1,1)
2098+S ^MSCFME("C",$E(X,1,30),DA)=""
2099+"^DD",21455,21455,1,1,1,2)
2100+K ^MSCFME("C",$E(X,1,30),DA)
2101+"^DD",21455,21455,1,1,1,"DT")
2102+3080708
2103+"^DD",21455,21455,1,3)
2104+Type a number between 0 and 999999999, 9 Decimal Digits
2105+"^DD",21455,21455,1,"DT")
2106+3080708
2107+"^DD",21455,21455,2,0)
2108+FIELD^NJ19,9^^0;3^K:+X'=X!(X>999999999)!(X<0)!(X?.E1"."10.N) X
2109+"^DD",21455,21455,2,3)
2110+Type a number between 0 and 999999999, 9 Decimal Digits
2111+"^DD",21455,21455,2,"DT")
2112+3080708
2113+"^DD",21455,21455,3,0)
2114+ACTION^RS^N:DO NOT RETRIEVE;I:RETRIEVE INTERNAL VALUE;S:SKIP ENTIRE FILE;^0;4^Q
2115+"^DD",21455,21455,3,"DT")
2116+3080708
2117+"^DD",21455,21455,4,0)
2118+REASON^FJ250^^1;1^K:$L(X)>250!($L(X)<1) X
2119+"^DD",21455,21455,4,3)
2120+Answer must be 1-250 characters in length
2121+"^DD",21455,21455,4,"DT")
2122+3080708
2123+"^DIC",21455,21455,0)
2124+FILEMAN EXCEPTION^21455
2125+"^DIC",21455,21455,0,"GL")
2126+^MSCFME(
2127+"^DIC",21455,"B","FILEMAN EXCEPTION",21455)
2128+
2129+**END**
2130+**END**
2131
2132=== added file 'ovid/src/mumps/kids/MSCRES.1.2.KID'
2133--- ovid/src/mumps/kids/MSCRES.1.2.KID 1970-01-01 00:00:00 +0000
2134+++ ovid/src/mumps/kids/MSCRES.1.2.KID 2010-02-01 21:38:14 +0000
2135@@ -0,0 +1,522 @@
2136+KIDS Distribution saved on Feb 01, 2010@12:24:04
2137+BUMP VERSION NUMBER TO REFLECT CHANGES SINCE MAY 2009
2138+**KIDS**:MSC RES*1.0*2^
2139+
2140+**INSTALL NAME**
2141+MSC RES*1.0*2
2142+"BLD",7061,0)
2143+MSC RES*1.0*2^^0^3100201^y
2144+"BLD",7061,4,0)
2145+^9.64PA^^
2146+"BLD",7061,6.3)
2147+1
2148+"BLD",7061,"KRN",0)
2149+^9.67PA^8989.52^19
2150+"BLD",7061,"KRN",.4,0)
2151+.4
2152+"BLD",7061,"KRN",.401,0)
2153+.401
2154+"BLD",7061,"KRN",.402,0)
2155+.402
2156+"BLD",7061,"KRN",.403,0)
2157+.403
2158+"BLD",7061,"KRN",.5,0)
2159+.5
2160+"BLD",7061,"KRN",.84,0)
2161+.84
2162+"BLD",7061,"KRN",3.6,0)
2163+3.6
2164+"BLD",7061,"KRN",3.8,0)
2165+3.8
2166+"BLD",7061,"KRN",9.2,0)
2167+9.2
2168+"BLD",7061,"KRN",9.8,0)
2169+9.8
2170+"BLD",7061,"KRN",9.8,"NM",0)
2171+^9.68A^1^1
2172+"BLD",7061,"KRN",9.8,"NM",1,0)
2173+MSCRES^^0^B26296407
2174+"BLD",7061,"KRN",9.8,"NM","B","MSCRES",1)
2175+
2176+"BLD",7061,"KRN",19,0)
2177+19
2178+"BLD",7061,"KRN",19.1,0)
2179+19.1
2180+"BLD",7061,"KRN",101,0)
2181+101
2182+"BLD",7061,"KRN",409.61,0)
2183+409.61
2184+"BLD",7061,"KRN",771,0)
2185+771
2186+"BLD",7061,"KRN",870,0)
2187+870
2188+"BLD",7061,"KRN",8989.51,0)
2189+8989.51
2190+"BLD",7061,"KRN",8989.52,0)
2191+8989.52
2192+"BLD",7061,"KRN",8994,0)
2193+8994
2194+"BLD",7061,"KRN","B",.4,.4)
2195+
2196+"BLD",7061,"KRN","B",.401,.401)
2197+
2198+"BLD",7061,"KRN","B",.402,.402)
2199+
2200+"BLD",7061,"KRN","B",.403,.403)
2201+
2202+"BLD",7061,"KRN","B",.5,.5)
2203+
2204+"BLD",7061,"KRN","B",.84,.84)
2205+
2206+"BLD",7061,"KRN","B",3.6,3.6)
2207+
2208+"BLD",7061,"KRN","B",3.8,3.8)
2209+
2210+"BLD",7061,"KRN","B",9.2,9.2)
2211+
2212+"BLD",7061,"KRN","B",9.8,9.8)
2213+
2214+"BLD",7061,"KRN","B",19,19)
2215+
2216+"BLD",7061,"KRN","B",19.1,19.1)
2217+
2218+"BLD",7061,"KRN","B",101,101)
2219+
2220+"BLD",7061,"KRN","B",409.61,409.61)
2221+
2222+"BLD",7061,"KRN","B",771,771)
2223+
2224+"BLD",7061,"KRN","B",870,870)
2225+
2226+"BLD",7061,"KRN","B",8989.51,8989.51)
2227+
2228+"BLD",7061,"KRN","B",8989.52,8989.52)
2229+
2230+"BLD",7061,"KRN","B",8994,8994)
2231+
2232+"BLD",7061,"MSC")
2233+/home/japple/MSCRES.1.1.KID
2234+"BLD",7061,"MSCOM")
2235+BUMP VERSION NUMBER TO REFLECT CHANGES SINCE MAY 2009
2236+"MBREQ")
2237+0
2238+"QUES","XPF1",0)
2239+Y
2240+"QUES","XPF1","??")
2241+^D REP^XPDH
2242+"QUES","XPF1","A")
2243+Shall I write over your |FLAG| File
2244+"QUES","XPF1","B")
2245+YES
2246+"QUES","XPF1","M")
2247+D XPF1^XPDIQ
2248+"QUES","XPF2",0)
2249+Y
2250+"QUES","XPF2","??")
2251+^D DTA^XPDH
2252+"QUES","XPF2","A")
2253+Want my data |FLAG| yours
2254+"QUES","XPF2","B")
2255+YES
2256+"QUES","XPF2","M")
2257+D XPF2^XPDIQ
2258+"QUES","XPI1",0)
2259+YO
2260+"QUES","XPI1","??")
2261+^D INHIBIT^XPDH
2262+"QUES","XPI1","A")
2263+Want KIDS to INHIBIT LOGONs during the install
2264+"QUES","XPI1","B")
2265+NO
2266+"QUES","XPI1","M")
2267+D XPI1^XPDIQ
2268+"QUES","XPM1",0)
2269+PO^VA(200,:EM
2270+"QUES","XPM1","??")
2271+^D MG^XPDH
2272+"QUES","XPM1","A")
2273+Enter the Coordinator for Mail Group '|FLAG|'
2274+"QUES","XPM1","B")
2275+
2276+"QUES","XPM1","M")
2277+D XPM1^XPDIQ
2278+"QUES","XPO1",0)
2279+Y
2280+"QUES","XPO1","??")
2281+^D MENU^XPDH
2282+"QUES","XPO1","A")
2283+Want KIDS to Rebuild Menu Trees Upon Completion of Install
2284+"QUES","XPO1","B")
2285+NO
2286+"QUES","XPO1","M")
2287+D XPO1^XPDIQ
2288+"QUES","XPZ1",0)
2289+Y
2290+"QUES","XPZ1","??")
2291+^D OPT^XPDH
2292+"QUES","XPZ1","A")
2293+Want to DISABLE Scheduled Options, Menu Options, and Protocols
2294+"QUES","XPZ1","B")
2295+NO
2296+"QUES","XPZ1","M")
2297+D XPZ1^XPDIQ
2298+"QUES","XPZ2",0)
2299+Y
2300+"QUES","XPZ2","??")
2301+^D RTN^XPDH
2302+"QUES","XPZ2","A")
2303+Want to MOVE routines to other CPUs
2304+"QUES","XPZ2","B")
2305+NO
2306+"QUES","XPZ2","M")
2307+D XPZ2^XPDIQ
2308+"RTN")
2309+1
2310+"RTN","MSCRES")
2311+0^1^B26296407
2312+"RTN","MSCRES",1,0)
2313+MSCRES ; MSC/JDA - Resource message format ; May 14, 2009
2314+"RTN","MSCRES",2,0)
2315+ ;;1.0;MSC RES;;May 14, 2009
2316+"RTN","MSCRES",3,0)
2317+ Q
2318+"RTN","MSCRES",4,0)
2319+FROMBYTE(RETVAL,BYTES)
2320+"RTN","MSCRES",5,0)
2321+ M RETVAL=BYTES
2322+"RTN","MSCRES",6,0)
2323+ Q
2324+"RTN","MSCRES",7,0)
2325+TOBYTE(RETVAL,RES)
2326+"RTN","MSCRES",8,0)
2327+ M RETVAL=RES
2328+"RTN","MSCRES",9,0)
2329+ K RETVAL("INDEX")
2330+"RTN","MSCRES",10,0)
2331+ K RETVAL("OFFSET")
2332+"RTN","MSCRES",11,0)
2333+ K RETVAL("PROP")
2334+"RTN","MSCRES",12,0)
2335+ K RETVAL("VAL")
2336+"RTN","MSCRES",13,0)
2337+ Q
2338+"RTN","MSCRES",14,0)
2339+START(RES) ; for write
2340+"RTN","MSCRES",15,0)
2341+ S RES("INDEX")=1,RES("OFFSET")=1
2342+"RTN","MSCRES",16,0)
2343+ S RES(1)=""
2344+"RTN","MSCRES",17,0)
2345+ Q
2346+"RTN","MSCRES",18,0)
2347+FIRST(RES) ; for read
2348+"RTN","MSCRES",19,0)
2349+ S RES("INDEX")=1,RES("OFFSET")=1,RES("PROP")="",RES("VAL")=""
2350+"RTN","MSCRES",20,0)
2351+ Q
2352+"RTN","MSCRES",21,0)
2353+GETBYTES(RES,NUM)
2354+"RTN","MSCRES",22,0)
2355+ N RETVAL
2356+"RTN","MSCRES",23,0)
2357+ N NXTLNAMT S NXTLNAMT=0 ; Number of bytes to get from the next line
2358+"RTN","MSCRES",24,0)
2359+ ; CHUNK_SIZE is 201
2360+"RTN","MSCRES",25,0)
2361+ N OFFSET S OFFSET=RES("OFFSET")
2362+"RTN","MSCRES",26,0)
2363+ N INDEX S INDEX=RES("INDEX")
2364+"RTN","MSCRES",27,0)
2365+ I NUM+OFFSET-1>201 S NXTLNAMT=NUM+OFFSET-201-1 S NUM=201-OFFSET+1
2366+"RTN","MSCRES",28,0)
2367+ S RETVAL=$E(RES(INDEX),OFFSET,OFFSET+NUM-1)
2368+"RTN","MSCRES",29,0)
2369+ S RES("OFFSET")=OFFSET+NUM
2370+"RTN","MSCRES",30,0)
2371+ I RES("OFFSET")=(201+1) S RES("OFFSET")=1 S RES("INDEX")=INDEX+1
2372+"RTN","MSCRES",31,0)
2373+ S:NXTLNAMT>0 RETVAL=RETVAL_$$GETBYTES(.RES,NXTLNAMT)
2374+"RTN","MSCRES",32,0)
2375+ Q RETVAL
2376+"RTN","MSCRES",33,0)
2377+PUTBYTES(RES,BYTES)
2378+"RTN","MSCRES",34,0)
2379+ N LEN S LEN=$L(BYTES)
2380+"RTN","MSCRES",35,0)
2381+ N NUM S NUM=LEN
2382+"RTN","MSCRES",36,0)
2383+ ; CHUNK_SIZE is 201
2384+"RTN","MSCRES",37,0)
2385+ N OFFSET S OFFSET=RES("OFFSET")
2386+"RTN","MSCRES",38,0)
2387+ N INDEX S INDEX=RES("INDEX")
2388+"RTN","MSCRES",39,0)
2389+ I NUM+OFFSET-1>201 S NUM=201-OFFSET+1 S RES(INDEX)=RES(INDEX)_$E(BYTES,1,NUM)
2390+"RTN","MSCRES",40,0)
2391+ E S RES(INDEX)=RES(INDEX)_BYTES
2392+"RTN","MSCRES",41,0)
2393+ S RES("OFFSET")=OFFSET+NUM
2394+"RTN","MSCRES",42,0)
2395+ I RES("OFFSET")=(201+1) S RES("OFFSET")=1 S RES("INDEX")=INDEX+1 S RES(INDEX+1)=""
2396+"RTN","MSCRES",43,0)
2397+ D:NUM'=LEN PUTBYTES(.RES,$E(BYTES,NUM+1,LEN))
2398+"RTN","MSCRES",44,0)
2399+ Q
2400+"RTN","MSCRES",45,0)
2401+B64TOINT(BUFFER)
2402+"RTN","MSCRES",46,0)
2403+ N IDX,RESULT
2404+"RTN","MSCRES",47,0)
2405+ N CHAR64 S CHAR64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
2406+"RTN","MSCRES",48,0)
2407+ S RESULT=0
2408+"RTN","MSCRES",49,0)
2409+ F IDX=1:1:$L(BUFFER) D
2410+"RTN","MSCRES",50,0)
2411+ . S RESULT=(RESULT*64)+$F(CHAR64,$E(BUFFER,IDX))-2 ; arrays are 1-base, and find return one past, so +2
2412+"RTN","MSCRES",51,0)
2413+ . Q
2414+"RTN","MSCRES",52,0)
2415+ Q RESULT
2416+"RTN","MSCRES",53,0)
2417+DECODINT(RES,NUMBYTES)
2418+"RTN","MSCRES",54,0)
2419+ N BUFFER
2420+"RTN","MSCRES",55,0)
2421+ S BUFFER=$RE($$GETBYTES(.RES,NUMBYTES))
2422+"RTN","MSCRES",56,0)
2423+ Q $$B64TOINT(BUFFER)
2424+"RTN","MSCRES",57,0)
2425+ENCODINT(SIZE,NUMBYTES)
2426+"RTN","MSCRES",58,0)
2427+ N ENCODED,IDX S ENCODED=""
2428+"RTN","MSCRES",59,0)
2429+ N CHAR64 S CHAR64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
2430+"RTN","MSCRES",60,0)
2431+ F IDX=1:1:NUMBYTES D
2432+"RTN","MSCRES",61,0)
2433+ . S ENCODED=ENCODED_$E(CHAR64,(SIZE#64)+1)
2434+"RTN","MSCRES",62,0)
2435+ . S SIZE=SIZE\64
2436+"RTN","MSCRES",63,0)
2437+ . Q
2438+"RTN","MSCRES",64,0)
2439+ Q ENCODED
2440+"RTN","MSCRES",65,0)
2441+NEXTPROP(RES)
2442+"RTN","MSCRES",66,0)
2443+ N SIZE S SIZE=$$DECODINT(.RES,1)
2444+"RTN","MSCRES",67,0)
2445+ I SIZE=0 S RES("PROP")="",RES("VAL")="" Q 0
2446+"RTN","MSCRES",68,0)
2447+ S RES("PROP")=$$GETBYTES(.RES,SIZE)
2448+"RTN","MSCRES",69,0)
2449+ S SIZE=$$DECODINT(.RES,2)
2450+"RTN","MSCRES",70,0)
2451+ S RES("VAL")=$S(SIZE=0:"",1:$$GETBYTES(.RES,SIZE))
2452+"RTN","MSCRES",71,0)
2453+ Q 1
2454+"RTN","MSCRES",72,0)
2455+GETPROP(RES)
2456+"RTN","MSCRES",73,0)
2457+ Q RES("PROP")
2458+"RTN","MSCRES",74,0)
2459+GETVAL(RES)
2460+"RTN","MSCRES",75,0)
2461+ Q RES("VAL")
2462+"RTN","MSCRES",76,0)
2463+ENCODSTR(STR,NUMBYTES)
2464+"RTN","MSCRES",77,0)
2465+ Q $$ENCODINT($L(STR),NUMBYTES)_STR
2466+"RTN","MSCRES",78,0)
2467+ADDCMPD(RES,NAME)
2468+"RTN","MSCRES",79,0)
2469+ D PUTBYTES(.RES,$$ENCODSTR(NAME,1)_$$ENCODINT(0,2))
2470+"RTN","MSCRES",80,0)
2471+ Q
2472+"RTN","MSCRES",81,0)
2473+ENDCMPD(RES)
2474+"RTN","MSCRES",82,0)
2475+ D PUTBYTES(.RES,$$ENCODINT(0,1))
2476+"RTN","MSCRES",83,0)
2477+ Q
2478+"RTN","MSCRES",84,0)
2479+ADDPROP(RES,NAME,VAL)
2480+"RTN","MSCRES",85,0)
2481+ Q:VAL="" ; Empty values would be confused with compounds
2482+"RTN","MSCRES",86,0)
2483+ D PUTBYTES(.RES,$$ENCODSTR(NAME,1)_$$ENCODSTR(VAL,2))
2484+"RTN","MSCRES",87,0)
2485+ Q
2486+"RTN","MSCRES",88,0)
2487+READBUF(LEN)
2488+"RTN","MSCRES",89,0)
2489+ N RETVAL,REMAIN,TMP
2490+"RTN","MSCRES",90,0)
2491+ S REMAIN=LEN
2492+"RTN","MSCRES",91,0)
2493+ S RETVAL=""
2494+"RTN","MSCRES",92,0)
2495+ F Q:REMAIN=0 D
2496+"RTN","MSCRES",93,0)
2497+ . R TMP#REMAIN
2498+"RTN","MSCRES",94,0)
2499+ . S RETVAL=RETVAL_TMP
2500+"RTN","MSCRES",95,0)
2501+ . S REMAIN=LEN-$L(RETVAL)
2502+"RTN","MSCRES",96,0)
2503+ Q RETVAL
2504+"RTN","MSCRES",97,0)
2505+SAVEIO
2506+"RTN","MSCRES",98,0)
2507+ I '($D(IO)#2) D
2508+"RTN","MSCRES",99,0)
2509+ . N VAR
2510+"RTN","MSCRES",100,0)
2511+ . F VAR="IO","IO(0)","IOBS","IOF","IOM","ION","IOS","IOSL","IOST","IOST(0)","IOT","IOXY" K @VAR
2512+"RTN","MSCRES",101,0)
2513+ . D HOME^%ZIS
2514+"RTN","MSCRES",102,0)
2515+ D SAVDEV^%ZISUTL("oldio")
2516+"RTN","MSCRES",103,0)
2517+ Q
2518+"RTN","MSCRES",104,0)
2519+LOADIO
2520+"RTN","MSCRES",105,0)
2521+ D USE^%ZISUTL("oldio")
2522+"RTN","MSCRES",106,0)
2523+ D RMDEV^%ZISUTL("oldio")
2524+"RTN","MSCRES",107,0)
2525+ Q
2526+"RTN","MSCRES",108,0)
2527+USE(SOCK)
2528+"RTN","MSCRES",109,0)
2529+ D USE^%ZISUTL(SOCK("S"))
2530+"RTN","MSCRES",110,0)
2531+ Q
2532+"RTN","MSCRES",111,0)
2533+GETSOCK(SOCK,IPADDR,PORT,TO)
2534+"RTN","MSCRES",112,0)
2535+ N SOCKNUM
2536+"RTN","MSCRES",113,0)
2537+ S SOCKNUM=$O(^TMP("MSCRES",$J,""),-1)
2538+"RTN","MSCRES",114,0)
2539+ S:SOCKNUM="" SOCKNUM=0
2540+"RTN","MSCRES",115,0)
2541+ S SOCKNUM=SOCKNUM+1
2542+"RTN","MSCRES",116,0)
2543+ S ^TMP("MSCRES",$J,SOCKNUM)=""
2544+"RTN","MSCRES",117,0)
2545+ D SAVEIO
2546+"RTN","MSCRES",118,0)
2547+ D CALL^%ZISTCP(IPADDR,PORT,TO)
2548+"RTN","MSCRES",119,0)
2549+ S SOCK("S")="sock:"_$J_":"_SOCKNUM
2550+"RTN","MSCRES",120,0)
2551+ S SOCK("#")=SOCKNUM
2552+"RTN","MSCRES",121,0)
2553+ D SAVDEV^%ZISUTL(SOCK("S"))
2554+"RTN","MSCRES",122,0)
2555+ D LOADIO
2556+"RTN","MSCRES",123,0)
2557+ Q
2558+"RTN","MSCRES",124,0)
2559+CLSSOCK(SOCK)
2560+"RTN","MSCRES",125,0)
2561+ D SAVEIO
2562+"RTN","MSCRES",126,0)
2563+ D USE(.SOCK)
2564+"RTN","MSCRES",127,0)
2565+ D CLOSE^%ZISTCP
2566+"RTN","MSCRES",128,0)
2567+ D RMDEV^%ZISUTL(SOCK("S"))
2568+"RTN","MSCRES",129,0)
2569+ K ^TMP("MSCRES",$J,SOCK("#"))
2570+"RTN","MSCRES",130,0)
2571+ D LOADIO
2572+"RTN","MSCRES",131,0)
2573+ Q
2574+"RTN","MSCRES",132,0)
2575+FROMSOCK(RETVAL,SOCK)
2576+"RTN","MSCRES",133,0)
2577+ N REMAIN,BUFFER,LEN
2578+"RTN","MSCRES",134,0)
2579+ D SAVEIO
2580+"RTN","MSCRES",135,0)
2581+ D USE(.SOCK)
2582+"RTN","MSCRES",136,0)
2583+ D START^MSCRES(.RETVAL)
2584+"RTN","MSCRES",137,0)
2585+ S REMAIN=$$B64TOINT($RE($$READBUF(4)))
2586+"RTN","MSCRES",138,0)
2587+ F D Q:'REMAIN
2588+"RTN","MSCRES",139,0)
2589+ . R BUFFER#REMAIN
2590+"RTN","MSCRES",140,0)
2591+ . S LEN=$L(BUFFER)
2592+"RTN","MSCRES",141,0)
2593+ . I LEN D PUTBYTES(.RETVAL,BUFFER) S BUFFER="" S REMAIN=REMAIN-LEN
2594+"RTN","MSCRES",142,0)
2595+ D FIRST(.RETVAL)
2596+"RTN","MSCRES",143,0)
2597+ D LOADIO
2598+"RTN","MSCRES",144,0)
2599+ Q
2600+"RTN","MSCRES",145,0)
2601+TOSOCK(RES,SOCK)
2602+"RTN","MSCRES",146,0)
2603+ D SAVEIO
2604+"RTN","MSCRES",147,0)
2605+ D USE(.SOCK)
2606+"RTN","MSCRES",148,0)
2607+ N BYTES,BUFLEN,X,COUNT
2608+"RTN","MSCRES",149,0)
2609+ D TOBYTE(.BYTES,.RES)
2610+"RTN","MSCRES",150,0)
2611+ S COUNT=0 S X=""
2612+"RTN","MSCRES",151,0)
2613+ F S X=$O(BYTES(X)) Q:X="" S COUNT=COUNT+$L(BYTES(X))
2614+"RTN","MSCRES",152,0)
2615+ W $RE($$ENCODINT(COUNT,4))
2616+"RTN","MSCRES",153,0)
2617+ F S X=$O(BYTES(X)) Q:X="" W BYTES(X)
2618+"RTN","MSCRES",154,0)
2619+ W !
2620+"RTN","MSCRES",155,0)
2621+ D LOADIO
2622+"RTN","MSCRES",156,0)
2623+ Q
2624+"RTN","MSCRES",157,0)
2625+SKIPPROP(RES)
2626+"RTN","MSCRES",158,0)
2627+ Q:$$GETVAL(.RES)'=""
2628+"RTN","MSCRES",159,0)
2629+ F Q:'$$NEXTPROP^MSCRES(.RES) D
2630+"RTN","MSCRES",160,0)
2631+ . D:$$GETVAL(.RES)="" SKIPPROP(.RES)
2632+"RTN","MSCRES",161,0)
2633+ . Q
2634+"RTN","MSCRES",162,0)
2635+ Q
2636+"RTN","MSCRES",163,0)
2637+DUMP(RES,IND)
2638+"RTN","MSCRES",164,0)
2639+ F Q:'$$NEXTPROP^MSCRES(.RES) D
2640+"RTN","MSCRES",165,0)
2641+ . S PROPNAME=$$GETPROP^MSCRES(.RES)
2642+"RTN","MSCRES",166,0)
2643+ . W IND
2644+"RTN","MSCRES",167,0)
2645+ . W PROPNAME
2646+"RTN","MSCRES",168,0)
2647+ . I $$GETVAL^MSCRES(.RES)="" W " {",! D DUMP(.RES,IND_" ") W IND_"}",! Q
2648+"RTN","MSCRES",169,0)
2649+ . W "("_$$GETVAL^MSCRES(.RES)_")",!
2650+"RTN","MSCRES",170,0)
2651+ . Q
2652+"RTN","MSCRES",171,0)
2653+ Q
2654+"VER")
2655+8.0^22.0
2656+**END**
2657+**END**

Subscribers

People subscribed via source and target branches

to all changes: