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