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