| 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 | 
|---|