1 | ENTIUTL2 ;WOIFO/SAB - Find and Sort Equipment Utilities ;2/14/2008
|
---|
2 | ;;7.0;ENGINEERING;**87**;Aug 17, 1993;Build 16
|
---|
3 | ;
|
---|
4 | ASKEQSM(ENAML,ENDM) ; Ask Equipment Selection Method
|
---|
5 | ; input
|
---|
6 | ; ENAML = allowed method list, may contain the following characters
|
---|
7 | ; A = all equipment
|
---|
8 | ; E = by Entry #
|
---|
9 | ; C = by CMR
|
---|
10 | ; U = by using service
|
---|
11 | ; L = by location
|
---|
12 | ; S = by service of location
|
---|
13 | ; example "ECULS"
|
---|
14 | ; ENDM = (optional) default method
|
---|
15 | ; returns null if no method selected or
|
---|
16 | ; piece 1 = A, E, C, U, L, or S if a method was selected
|
---|
17 | ; piece 2 = specified value when method is C, U, L, or S
|
---|
18 | ; e.g. "C^12" for CMR with internal entry number = 12
|
---|
19 | ;
|
---|
20 | N DIC,DIR,DIROUT,DIRUT,DTOUT,DUOUT,ENRET,ENVAL,X,Y
|
---|
21 | S ENRET="",ENVAL=""
|
---|
22 | ;
|
---|
23 | ; ask method
|
---|
24 | S DIR(0)="S^"
|
---|
25 | I ENAML["A" S DIR(0)=DIR(0)_"A:ALL TRACKED IT EQUIPMENT;"
|
---|
26 | I ENAML["E" S DIR(0)=DIR(0)_"E:ENTRY #;"
|
---|
27 | I ENAML["C" S DIR(0)=DIR(0)_"C:CMR;"
|
---|
28 | I ENAML["U" S DIR(0)=DIR(0)_"U:USING SERVICE;"
|
---|
29 | I ENAML["L" S DIR(0)=DIR(0)_"L:LOCATION;"
|
---|
30 | I ENAML["S" S DIR(0)=DIR(0)_"S:SERVICE OF LOCATION;"
|
---|
31 | Q:DIR(0)="S^" ENRET
|
---|
32 | ; remove trailing ;
|
---|
33 | I $E(DIR(0),$L(DIR(0)))=";" S DIR(0)=$E(DIR(0),1,$L(DIR(0))-1)
|
---|
34 | S DIR("A")="Specify method to select equipment by"
|
---|
35 | I $G(ENDM)]"" S DIR("B")=ENDM
|
---|
36 | S DIR("?")="Enter a code from the list."
|
---|
37 | S DIR("?",1)="The system considers tracked IT equipment to be"
|
---|
38 | S DIR("?",2)="equipment that is on a CMR with IT TRACKING = YES."
|
---|
39 | S DIR("?",3)=" "
|
---|
40 | D ^DIR
|
---|
41 | I '$D(DIRUT) S ENRET=Y
|
---|
42 | ;
|
---|
43 | ; ask a value for applicable methods
|
---|
44 | ;
|
---|
45 | ; method C - by CMR
|
---|
46 | I ENRET="C" D
|
---|
47 | . ; ask CMR
|
---|
48 | . S DIC("S")="I $P($G(^(0)),U,9)=1" ; screen IT TRACKING = YES
|
---|
49 | . S DIC="^ENG(6914.1,"
|
---|
50 | . S DIC(0)="AQEM"
|
---|
51 | . D ^DIC K DIC I Y<1 S ENRET="" Q
|
---|
52 | . S ENVAL=+Y
|
---|
53 | ;
|
---|
54 | ; method U - by using service
|
---|
55 | I ENRET="U" D
|
---|
56 | . ; ask USING SERVICE
|
---|
57 | . S DIC("S")="I $D(^ENG(6914,""AC"",+Y))" ; screen services with equip
|
---|
58 | . S DIC="^DIC(49,"
|
---|
59 | . S DIC(0)="AQEM"
|
---|
60 | . D ^DIC K DIC I Y<1 S ENRET="" Q
|
---|
61 | . S ENVAL=+Y
|
---|
62 | ;
|
---|
63 | ; method L - by location
|
---|
64 | I ENRET="L" D
|
---|
65 | . ; ask LOCATION
|
---|
66 | . S DIC("S")="I $D(^ENG(6914,""D"",+Y))" ; screen locations with equip
|
---|
67 | . S DIC="^ENG(""SP"","
|
---|
68 | . S DIC(0)="AQEM"
|
---|
69 | . D ^DIC K DIC I Y<1 S ENRET="" Q
|
---|
70 | . S ENVAL=+Y
|
---|
71 | ;
|
---|
72 | ; method S - by service of location
|
---|
73 | I ENRET="S" D
|
---|
74 | . ; ask SERVICE
|
---|
75 | . S DIC("S")="I $D(^ENG(""SP"",""D"",+Y))" ; screen services with space
|
---|
76 | . S DIC="^DIC(49,"
|
---|
77 | . S DIC(0)="AQEM"
|
---|
78 | . D ^DIC K DIC I Y<1 S ENRET="" Q
|
---|
79 | . S ENVAL=+Y
|
---|
80 | ;
|
---|
81 | I ENVAL]"" S ENRET=ENRET_"^"_ENVAL
|
---|
82 | Q ENRET
|
---|
83 | ;
|
---|
84 | ASKIAEQ() ; Ask Include Assigned Equipment
|
---|
85 | ;
|
---|
86 | ; returns null if time-out or uparrorw
|
---|
87 | ; 1 if assigned equipment should be included
|
---|
88 | ; 0 if not
|
---|
89 | ;
|
---|
90 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,ENRET,X,Y
|
---|
91 | S ENRET=""
|
---|
92 | S DIR(0)="Y"
|
---|
93 | S DIR("A")="Include equipment with an existing active assignment"
|
---|
94 | S DIR("B")="NO"
|
---|
95 | D ^DIR
|
---|
96 | I '$D(DIRUT) S ENRET=Y
|
---|
97 | Q ENRET
|
---|
98 | ;
|
---|
99 | ASKEQSRT(ENSM,ENDM) ; Ask Equipment Sort
|
---|
100 | ; input ENSM = (optional) selection method
|
---|
101 | ; if method is E then sort is set to E
|
---|
102 | ; ENDM = (optional) default sort method
|
---|
103 | ;
|
---|
104 | ; returns null if no sort selected
|
---|
105 | ; E, C, U, L, or S if a sort was selected
|
---|
106 | ;
|
---|
107 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,ENRET,X,Y
|
---|
108 | S ENRET=""
|
---|
109 | I $G(ENSM)="E" S ENRET="E"
|
---|
110 | E D
|
---|
111 | . S DIR(0)="S^E:ENTRY #;C:CMR;U:USING SERVICE;L:LOCATION;S:SERVICE OF LOCATION"
|
---|
112 | . S DIR("A")="Sort equipment by"
|
---|
113 | . I $G(ENDM)]"" S DIR("B")=ENDM
|
---|
114 | . D ^DIR K DIR
|
---|
115 | . I '$D(DIRUT) S ENRET=Y
|
---|
116 | Q ENRET
|
---|
117 | ;
|
---|
118 | GETEQ(ENSM,ENVAL,ENSRT,ENIA) ; Get Equipment
|
---|
119 | ; input ENSM = selection method (A, E, C, U, L, or S)
|
---|
120 | ; NOTE: E method is interactive, while the others are not
|
---|
121 | ; ENVAL = value when method is C, U, L, or S (e.g. ien of CMR)
|
---|
122 | ; ENSRT = sort by (E, C, U, L, or S) - must be E for method E
|
---|
123 | ; ENIA = 1 (include) or 0 (don't include) equip w/active assign
|
---|
124 | ; this does not apply to method E
|
---|
125 | ; optional, default = 1
|
---|
126 | ; output
|
---|
127 | ; ^TMP($J,"ENITEQ",0)=count^method^specified value^sort
|
---|
128 | ; ^TMP($J,"ENITEQ",sort value,equip ien)="" list of equipment
|
---|
129 | ;
|
---|
130 | N ENCMR,ENCNT,END,ENDA
|
---|
131 | K ^TMP($J,"ENITEQ")
|
---|
132 | S ENVAL=$G(ENVAL)
|
---|
133 | S ENSRT=$G(ENSRT,"E")
|
---|
134 | S ENIA=$G(ENIA,1)
|
---|
135 | S ENCNT=0,END=0
|
---|
136 | ;
|
---|
137 | ; method A - all tracked equipment
|
---|
138 | I ENSM="A" D
|
---|
139 | . ; loop thru CMRs with IT TRACKING = YES
|
---|
140 | . S ENCMR=0 F S ENCMR=$O(^ENG(6914.1,"AIT",1,ENCMR)) Q:'ENCMR D
|
---|
141 | . . ; loop thru equipment on CMR
|
---|
142 | . . S ENDA=0 F S ENDA=$O(^ENG(6914,"AD",ENCMR,ENDA)) Q:'ENDA D
|
---|
143 | . . . I 'ENIA,$D(^ENG(6916.3,"AEA",ENDA)) Q ; chose to excl. assigned
|
---|
144 | . . . D SETTMP
|
---|
145 | ;
|
---|
146 | ; method E - by individual equipment (interactive)
|
---|
147 | I ENSM="E" D
|
---|
148 | . N DA,DIC,DIR,DIROUT,DIRUT,DTOUT,DUOUT,ENSCR,X,Y
|
---|
149 | . ; screen by CMR:IT TRACKING
|
---|
150 | . S ENSCR="N ENCMR S ENCMR=$P($G(^(2)),U,9) I ENCMR,$D(^ENG(6914.1,""AIT"",1,ENCMR))"
|
---|
151 | . ; ask equipment in loop
|
---|
152 | . F S DIC("S")=ENSCR D GETEQ^ENUTL Q:Y<1 D Q:END
|
---|
153 | . . S ENDA=+Y
|
---|
154 | . . ; display equip
|
---|
155 | . . W @(IOF)
|
---|
156 | . . D DISEQ^ENTIUTL(ENDA)
|
---|
157 | . . W !
|
---|
158 | . . D DISASGN^ENTIUTL(ENDA)
|
---|
159 | . . ;
|
---|
160 | . . ; check if already selected (sort is always "E" for this method)
|
---|
161 | . . I $D(^TMP($J,"ENITEQ","NA",ENDA)) D Q
|
---|
162 | . . . W !!,"This equipment item has already been selected."
|
---|
163 | . . . W !,"If all desired equipment has been selected then press RETURN"
|
---|
164 | . . . W !,"at the equipment selection prompt."
|
---|
165 | . . ;
|
---|
166 | . . ; ask confirmation
|
---|
167 | . . W !
|
---|
168 | . . S DIR(0)="Y",DIR("A")="Do you want to select this item"
|
---|
169 | . . D ^DIR I $D(DIRUT) S END=1 Q
|
---|
170 | . . I 'Y Q
|
---|
171 | . . ;
|
---|
172 | . . ; user confirmed
|
---|
173 | . . D SETTMP
|
---|
174 | ;
|
---|
175 | ; method C - by CMR
|
---|
176 | I ENSM="C" D
|
---|
177 | . ; loop thru equipment on the CMR
|
---|
178 | . S ENDA=0 F S ENDA=$O(^ENG(6914,"AD",ENVAL,ENDA)) Q:'ENDA D
|
---|
179 | . . I 'ENIA,$D(^ENG(6916.3,"AEA",ENDA)) Q ; chose to exclude assigned
|
---|
180 | . . D SETTMP
|
---|
181 | ;
|
---|
182 | ; method U - by using service
|
---|
183 | I ENSM="U" D
|
---|
184 | . ; loop thru equipment with this using service
|
---|
185 | . S ENDA=0 F S ENDA=$O(^ENG(6914,"AC",ENVAL,ENDA)) Q:'ENDA D
|
---|
186 | . . S ENCMR=$P($G(^ENG(6914,ENDA,2)),U,9)
|
---|
187 | . . Q:'ENCMR ; not on a cmr
|
---|
188 | . . Q:$P($G(^ENG(6914.1,ENCMR,0)),U,9)'=1 ; IT tracking not yes
|
---|
189 | . . I 'ENIA,$D(^ENG(6916.3,"AEA",ENDA)) Q ; chose to exclude assigned
|
---|
190 | . . D SETTMP
|
---|
191 | ;
|
---|
192 | ; method L - by location
|
---|
193 | I ENSM="L" D
|
---|
194 | . ; loop thru equipment in this location
|
---|
195 | . S ENDA=0 F S ENDA=$O(^ENG(6914,"D",ENVAL,ENDA)) Q:'ENDA D
|
---|
196 | . . S ENCMR=$P($G(^ENG(6914,ENDA,2)),U,9)
|
---|
197 | . . Q:'ENCMR ; not on a cmr
|
---|
198 | . . Q:$P($G(^ENG(6914.1,ENCMR,0)),U,9)'=1 ; IT tracking not yes
|
---|
199 | . . I 'ENIA,$D(^ENG(6916.3,"AEA",ENDA)) Q ; chose to exclude assigned
|
---|
200 | . . D SETTMP
|
---|
201 | ;
|
---|
202 | ; method S - by service of location
|
---|
203 | I ENSM="S" D
|
---|
204 | . N ENSP
|
---|
205 | . ; loop thru locations with this service
|
---|
206 | . S ENSP=0 F S ENSP=$O(^ENG("SP","D",ENVAL,ENSP)) Q:'ENSP D
|
---|
207 | . . ; loop thru equipment with this location
|
---|
208 | . . S ENDA=0 F S ENDA=$O(^ENG(6914,"D",ENSP,ENDA)) Q:'ENDA D
|
---|
209 | . . . S ENCMR=$P($G(^ENG(6914,ENDA,2)),U,9)
|
---|
210 | . . . Q:'ENCMR ; not on a cmr
|
---|
211 | . . . Q:$P($G(^ENG(6914.1,ENCMR,0)),U,9)'=1 ; IT tracking not yes
|
---|
212 | . . . I 'ENIA,$D(^ENG(6916.3,"AEA",ENDA)) Q ; chose to exclude assigned
|
---|
213 | . . . D SETTMP
|
---|
214 | ;
|
---|
215 | ; set output header node
|
---|
216 | S ^TMP($J,"ENITEQ",0)=ENCNT_U_ENSM_U_ENVAL_ENSRT
|
---|
217 | ;
|
---|
218 | Q
|
---|
219 | ;
|
---|
220 | SETTMP ; save equipment in sorted TMP global
|
---|
221 | N ENSRTV
|
---|
222 | S ENSRTV=""
|
---|
223 | I ENSRT="E" S ENSRTV="NA"
|
---|
224 | I ENSRT="C" S ENSRTV=$$GET1^DIQ(6914,ENDA,19) ; cmr
|
---|
225 | I ENSRT="U" S ENSRTV=$$GET1^DIQ(6914,ENDA,21) ; service
|
---|
226 | I ENSRT="L" S ENSRTV=$$GET1^DIQ(6914,ENDA,24) ; location
|
---|
227 | I ENSRT="S" S ENSRTV=$$GET1^DIQ(6914,ENDA,"24:1.5") ; svc of loc
|
---|
228 | I ENSRTV="" S ENSRTV=" <null>"
|
---|
229 | S ^TMP($J,"ENITEQ",ENSRTV,ENDA)=""
|
---|
230 | S ENCNT=ENCNT+1
|
---|
231 | Q
|
---|
232 | ;
|
---|
233 | ;ENTIUTL2
|
---|