| [613] | 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 | 
|---|