1 | KMPDU5 ;OAK/RAK - CM Tools Utilities ;8/25/04 08:56
|
---|
2 | ;;2.0;CAPACITY MANAGEMENT TOOLS;**2**;Mar 22, 2002
|
---|
3 | ;
|
---|
4 | FILEINQ(KMPDY,KMPDFN,KMPDIEN,KMPDGBL) ;-- file inquiry.
|
---|
5 | ;-----------------------------------------------------------------------
|
---|
6 | ; KMPDFN.... File number.
|
---|
7 | ; KMPDIEN... Ien for above file.
|
---|
8 | ; KMPDGBL... Global where data is stored.
|
---|
9 | ;-----------------------------------------------------------------------
|
---|
10 | ;
|
---|
11 | K KMPDY
|
---|
12 | ;
|
---|
13 | I '$G(KMPDFN) S KMPDY="[File Number not defined]" Q
|
---|
14 | I '$D(^DD(KMPDFN)) S KMPDY="[File #"_KMPDFN_" is not defined]" Q
|
---|
15 | ;
|
---|
16 | I '$G(KMPDIEN) S KMPDY="[IEN not defined]" Q
|
---|
17 | ;
|
---|
18 | I KMPDGBL="" S KMPDY="[Global for storage is not defined]" Q
|
---|
19 | ;
|
---|
20 | N ARRAY,CNT,DATA,ERROR,FIELD,FILE,I,IEN,LN,TITLE
|
---|
21 | ;
|
---|
22 | ; kill global with check for ^tmp or ^utility.
|
---|
23 | D KILL^KMPDU(.DATA,KMPDGBL)
|
---|
24 | ; if error.
|
---|
25 | I $E(DATA)="[" S KMPDY=DATA Q
|
---|
26 | ;
|
---|
27 | S ARRAY=$NA(^TMP("KMPD FILE INQ",$J))
|
---|
28 | K @ARRAY
|
---|
29 | ;
|
---|
30 | S FIELD="**"
|
---|
31 | I KMPDFN=9.4 S FIELD="" D
|
---|
32 | .F I=0:0 S I=$O(^DD(KMPDFN,I)) Q:'I D
|
---|
33 | ..I $P($G(^DD(KMPDFN,I,0)),U,2)'["C"&($P($G(^(0)),U,2)'["M")&($E($G(^(0)))'="*")&($P($G(^(0)),U,3)'="") S FIELD=FIELD_I_";"
|
---|
34 | .S FIELD=FIELD_"3;" ;4;5;"
|
---|
35 | ;
|
---|
36 | D GETS^DIQ(KMPDFN,KMPDIEN,FIELD,"R",ARRAY,"ERROR")
|
---|
37 | ;
|
---|
38 | I $D(ERROR) S KMPDY="[Error occurred while getting info.]" Q
|
---|
39 | ;
|
---|
40 | I '$D(@ARRAY) S KMPDY="<No Data to Report>" Q
|
---|
41 | ;
|
---|
42 | S FILE="",LN=0
|
---|
43 | F S FILE=$O(@ARRAY@(FILE)) Q:FILE="" D
|
---|
44 | .S IEN=""
|
---|
45 | .F S IEN=$O(@ARRAY@(FILE,IEN)) Q:IEN="" D
|
---|
46 | ..S FIELD=""
|
---|
47 | ..F S FIELD=$O(@ARRAY@(FILE,IEN,FIELD)) Q:FIELD="" D
|
---|
48 | ...; if not a multiple.
|
---|
49 | ...I '$O(@ARRAY@(FILE,IEN,FIELD,0)) D Q
|
---|
50 | ....S @KMPDGBL@(LN)=FIELD,@KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(".",30-$L(@KMPDGBL@(LN)))
|
---|
51 | ....S @KMPDGBL@(LN)=@KMPDGBL@(LN)_": "_@ARRAY@(FILE,IEN,FIELD)
|
---|
52 | ....S LN=LN+1
|
---|
53 | ...;
|
---|
54 | ...; if multiple
|
---|
55 | ...S @KMPDGBL@(LN)=FIELD
|
---|
56 | ...S @KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(".",30-$L(@KMPDGBL@(LN)))
|
---|
57 | ...S @KMPDGBL@(LN)=@KMPDGBL@(LN)_": "
|
---|
58 | ...;S LN=LN+1
|
---|
59 | ...S CNT=1
|
---|
60 | ...F I=0:0 S I=$O(@ARRAY@(FILE,IEN,FIELD,I)) Q:'I D
|
---|
61 | ....;S @KMPDGBL@(LN)=FIELD,@KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(" ",30-$L(@KMPDGBL@(LN)))
|
---|
62 | ....I CNT=1 S @KMPDGBL@(LN)=$G(@KMPDGBL@(LN))_@ARRAY@(FILE,IEN,FIELD,I)
|
---|
63 | ....E D
|
---|
64 | .....S @KMPDGBL@(LN)=$G(@KMPDGBL@(LN))_$$REPEAT^XLFSTR(" ",30-$L($G(@KMPDGBL@(LN))))
|
---|
65 | .....S @KMPDGBL@(LN)=@KMPDGBL@(LN)_" "_@ARRAY@(FILE,IEN,FIELD,I)
|
---|
66 | ....S LN=LN+1,CNT=CNT+1
|
---|
67 | ;
|
---|
68 | S KMPDY=$NA(@KMPDGBL)
|
---|
69 | S:'$D(@KMPDGBL) KMPDY="<No Data To Report>"
|
---|
70 | ;
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | FILESRC(KMPDY,KMPDFN,KMPDFLD,KMPDSRC,KMPDGBL) ;-- file search.
|
---|
74 | ;-----------------------------------------------------------------------
|
---|
75 | ; KMPDFN... File Number.
|
---|
76 | ; KMPDFLD.. Fields to be returned, seperated by commas.
|
---|
77 | ; Example: ".01,.04,1" would return fields .01, .04 and 1.
|
---|
78 | ; KMPDSRC.. (optional). Search text. This will search the .01 field for
|
---|
79 | ; a match. If KMPDSRC="*" or is null then all entries will be
|
---|
80 | ; returned.
|
---|
81 | ; KMPDGBL... Global where data is stored.
|
---|
82 | ;-----------------------------------------------------------------------
|
---|
83 | ;
|
---|
84 | K KMPDY
|
---|
85 | ;
|
---|
86 | S KMPDFN=+$G(KMPDFN),KMPDFLD=$G(KMPDFLD)
|
---|
87 | S KMPDSRC=$$UP^XLFSTR($G(KMPDSRC)),KMPDGBL=$G(KMPDGBL)
|
---|
88 | ;
|
---|
89 | I 'KMPDFN S KMPDY="[File Number not defined]" Q
|
---|
90 | ;
|
---|
91 | I KMPDFLD="" S KMPDY="[No fields have been requested]" Q
|
---|
92 | ;
|
---|
93 | I KMPDGBL="" S KMPDY="[Global for storage is not defined]" Q
|
---|
94 | ;
|
---|
95 | N DATA,GLOBAL,I,IEN,LN,NAME,NODE,PIECE
|
---|
96 | ;
|
---|
97 | ; kill global with check for ^tmp or ^utility.
|
---|
98 | D KILL^KMPDU(.DATA,KMPDGBL)
|
---|
99 | ; if error.
|
---|
100 | I $E(DATA)="[" S KMPDY=DATA Q
|
---|
101 | ;
|
---|
102 | S GLOBAL=$G(^DIC(KMPDFN,0,"GL"))
|
---|
103 | I GLOBAL="" S KMPDY="[File #"_KMPDFN_" is not defined]" Q
|
---|
104 | ; make sure global name is closed () for use with subscript indirection.
|
---|
105 | S:$E(GLOBAL,$L(GLOBAL))="," $E(GLOBAL,$L(GLOBAL))=")"
|
---|
106 | ;
|
---|
107 | ; set zero node to field titles.
|
---|
108 | S $P(@KMPDGBL@(0),U)="IEN"
|
---|
109 | F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA="" D
|
---|
110 | .; try title first.
|
---|
111 | .S TITLE=$G(^DD(KMPDFN,DATA,.1))
|
---|
112 | .; if no title use name.
|
---|
113 | .S:TITLE="" TITLE=$P($G(^DD(KMPDFN,DATA,0)),U)
|
---|
114 | .S $P(@KMPDGBL@(0),U,(I+1))=TITLE
|
---|
115 | ;
|
---|
116 | S:KMPDSRC="*" KMPDSRC=""
|
---|
117 | ; remove '*' if last character
|
---|
118 | S:$E($RE(KMPDSRC))="*" $E(KMPDSRC,$L(KMPDSRC))=""
|
---|
119 | S LN=1,NAME=KMPDSRC
|
---|
120 | ; if exact match.
|
---|
121 | I NAME]"" S IEN=$O(@GLOBAL@("B",NAME,0)) I IEN D
|
---|
122 | .Q:'$D(@GLOBAL@(IEN,0)) S DATA=^(0)
|
---|
123 | .; ien.
|
---|
124 | .S $P(@KMPDGBL@(LN),U)=IEN
|
---|
125 | .; user defined data.
|
---|
126 | .F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA="" D
|
---|
127 | ..S $P(@KMPDGBL@(LN),U,(I+1))=$$GET1^DIQ(KMPDFN,IEN,DATA)
|
---|
128 | .S LN=LN+1
|
---|
129 | ;
|
---|
130 | F S NAME=$O(@GLOBAL@("B",NAME)) Q:NAME=""!($E(NAME,1,$L(KMPDSRC))'=KMPDSRC) D
|
---|
131 | .F IEN=0:0 S IEN=$O(@GLOBAL@("B",NAME,IEN)) Q:'IEN D
|
---|
132 | ..Q:'$D(@GLOBAL@(IEN,0)) S DATA=^(0)
|
---|
133 | ..; ien.
|
---|
134 | ..S $P(@KMPDGBL@(LN),U)=IEN
|
---|
135 | ..; user defined data.
|
---|
136 | ..F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA="" D
|
---|
137 | ...S $P(@KMPDGBL@(LN),U,(I+1))=$$GET1^DIQ(KMPDFN,IEN,DATA)
|
---|
138 | ..S LN=LN+1
|
---|
139 | ;
|
---|
140 | S KMPDY=$NA(@KMPDGBL)
|
---|
141 | S:'$O(@KMPDGBL@(0)) @KMPDGBL@(1)="<No Data To Report>"
|
---|
142 | ;
|
---|
143 | Q
|
---|
144 | ;
|
---|
145 | ENV(KMPDRES) ;-- get uci/volume set
|
---|
146 | ;-----------------------------------------------------------------------
|
---|
147 | ; KMPDRES(0)="uci,volumeset"
|
---|
148 | ; KMPDRES(1)="facilityinfo" as returned by $$SITE^VASITE
|
---|
149 | ;-----------------------------------------------------------------------
|
---|
150 | ;
|
---|
151 | K KMPDRES
|
---|
152 | N Y X ^%ZOSF("UCI")
|
---|
153 | S KMPDRES(0)=Y
|
---|
154 | ;S KMPDRES(1)=$$SITE^VASITE
|
---|
155 | ;
|
---|
156 | Q
|
---|
157 | ;
|
---|
158 | VERSION(KMPDY) ;-- version^patch info
|
---|
159 | ; cm tools version^patch
|
---|
160 | S KMPDY(0)=$P($G(^KMPD(8973,1,0)),U,2)
|
---|
161 | ; operating system version
|
---|
162 | S KMPDY(1)=$P($G(^%ZOSF("OS")),U) ;$ZV
|
---|
163 | ;
|
---|
164 | Q
|
---|