ENY2K3 ;(WASH ISC)/DH-Select Equipment for Y2K Worklist ;5.19.98
;;7.0;ENGINEERING;**51**;Aug 17, 1993
; called by ENY2K2
ENTRY ; select IENs for Y2K worklist
; store in ^TMP($J,
K ^TMP($J) N NODE,SUB
S X=$$UP^XLFSTR($E($P($G(^DIC(6922,35,0)),U),1,10)) I X["BIO" S ENY2K("BME")=35
I '$G(ENY2K("BME")) D
. S DA=0 F S DA=$O(^DIC(6922,DA)) Q:'DA!($G(ENY2K("BME"))) S X=$$UP^XLFSTR($E($P(^(DA,0),U),1,10)) I X["BIO" S ENY2K("BME")=DA
I '$G(ENY2K("BME")) W !!,"Cannot find the BIOMEDICAL ENGINEERING shop. Can't proceed.",*7 G OUT
S ENSHKEY("SEL")=ENSHKEY
I ENSHKEY'="ALL" D
. S DA=0 F S DA=$O(^ENG(6914,"AK","CC",DA)) Q:'DA D
.. Q:'$D(^ENG(6914,DA,11)) S X=^(11)
.. Q:$P(X,U,2)>ENY2DT ;check estimated compliance date
.. I $P(X,U,7)=ENSHKEY S ^TMP($J,ENSHKEY,DA)="" Q
.. I $P(X,U,7)="" D
... S X(1)=$O(^ENG(6914,DA,4,0)) I X(1)>0 S X(2)=$P(^(X(1),0),U) S:X(2)=ENSHKEY ^TMP($J,ENSHKEY,DA)="" Q
... I ENSHKEY=ENY2K("BME") S ^TMP($J,ENSHKEY,DA)=""
I ENSHKEY="ALL" D
. S DA=0 F S DA=$O(^ENG(6914,"AK","CC",DA)) Q:'DA D
.. Q:'$D(^ENG(6914,DA,11)) S X=^(11)
.. Q:$P(X,U,2)>ENY2DT ;check estimated compliance date
.. I $P(X,U,7) S ^TMP($J,$P(X,U,7),DA)="" Q
.. S X(1)=$O(^ENG(6914,DA,4,0)) I X(1)>0 S X(2)=$P(^(X(1),0),U),^TMP($J,X(2),DA)="" Q
.. S ^TMP($J,ENY2K("BME"),DA)=""
D LST2,PR^ENY2K5
G OUT
;
LST2 N EN,A,B,C,X,TAG
S ENSHKEY=0 F S ENSHKEY=$O(^TMP($J,ENSHKEY)) Q:'ENSHKEY S DA=0 F S DA=$O(^TMP($J,ENSHKEY,DA)) Q:'DA D LST3
Q
;
LST3 S X=$P($G(^ENG(6914,DA,3)),U) I "^4^5^"[(U_X_U) Q ;check use status
I 'ENSRT("OOS"),X=2 Q ;is OUT OF SERVICE an issue?
S EN("NEXT")="A" F X="A","B","C" S @X=""
I 'ENTECH("ALL"),$P(^ENG(6914,DA,11),U,5)'=ENTECH Q ;check for assigned tech
S X=$P(^ENG(6914,DA,11),U,5) I X>0 D
. I $D(^ENG("EMP",X,0)) S X(1)=""""_$P(^(0),U)_"""" Q
. S X(1)=""""_"DELETED"_""""
I X'>0 S X(1)=""""_"UNASSIGNED"_""""
S @EN("NEXT")=X(1)
S EN("NEXT")=$C($A(EN("NEXT"))+1)
S TAG="LST"_ENSRT D @TAG Q:$G(X)=-1
S SUB="" F X(1)="A","B","C" Q:$G(@X(1))="" S SUB=SUB_@X(1)_","
D BLD
Q
;
LSTE ; By ENTRY NUMBER
I ENSRT("ALL") Q
I ENSRT("FR")]DA!(DA]ENSRT("TO")) S X=-1
Q
LSTP ; By PM NUMBER
S X(1)=$P($G(^ENG(6914,DA,3)),U,6) S:X(1)="" X(1)=0
S:X(1)'=0 X(1)=""""_X(1)_""""
S @EN("NEXT")=X(1)
Q
LSTI ; By LOCAL ID
S X(1)=$P($G(^ENG(6914,DA,3)),U,7) S:X(1)="" X(1)=0
S X(2)=$S(X(1)?.N:X(1),1:""""_X(1)_"""")
I ENSRT("ALL") S @EN("NEXT")=X(2),EN("NEXT")=$C($A(EN("NEXT"))+1)
E S X="" D
. I ENSRT("FR")]X(1)!(X(1)]ENSRT("TO")) S X=-1 Q
. S @EN("NEXT")=X(2),EN("NEXT")=$C($A(EN("NEXT"))+1)
I ENSRT("LOC"),$G(X)'=-1 D
. S X(1)=$$LOC^ENEQPMS8(DA) I X(1)=-1 S X=-1 Q
. I $P(X(1),U)=-2,ENSRT("LOC","ALL") D
.. S X(1)=""""_$P(X(1),U,2)_""""
.. F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I $P(X(1),U)=-2 S X=-1 Q
. I X(1)=-3,ENSRT("LOC","ALL") D
.. S X(1)=0 F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I X(1)=-3 S X=-1 Q
. S @EN("NEXT")=X(1)
Q
LSTL ; By LOCATION
S X(1)=$$LOC^ENEQPMS8(DA) I X(1)=-1 S X=-1 Q
I $P(X(1),U)=-2,ENSRT("LOC","ALL") D
. S X(1)=""""_$P(X(1),U,2)_""""
. F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
I $P(X(1),U)=-2 S X=-1 Q
I X(1)=-3,ENSRT("LOC","ALL") D
. S X(1)=0 F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
I X(1)=-3 S X=-1 Q
S @EN("NEXT")=X(1)
Q
LSTC ; By EQUIPMENT CATEGORY
S X(2)=$P($G(^ENG(6914,DA,1)),U) S:X(2)="" X(1)=0
I X(2)>0 S X(1)=$P($G(^ENG(6911,X(2),0)),U) S:X(1)="" X(1)=0
S:X(1)'?.N X(1)=""""_X(1)_""""
I 'ENSRT("ALL"),X(2)'=ENSRT("FR") S X=-1 Q
S @EN("NEXT")=X(1),EN("NEXT")=$C($A(EN("NEXT"))+1)
I ENSRT("LOC") D
. S X(1)=$$LOC^ENEQPMS8(DA) I X(1)=-1 S X=-1 Q
. I $P(X(1),U)=-2,ENSRT("LOC","ALL") D
.. S X(1)=""""_$P(X(1),U,2)_""""
.. F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I $P(X(1),U)=-2 S X=-1 Q
. I X(1)=-3,ENSRT("LOC","ALL") D
.. S X(1)=0 F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I X(1)=-3 S X=-1 Q
. S @EN("NEXT")=X(1)
Q
LSTS ; By OWNING SERVICE
S X(2)=$P($G(^ENG(6914,DA,3)),U,2) S:X(2)="" X(1)=0
I X(2)>0 S X(1)=$P($G(^DIC(49,X(2),0)),U) S:X(1)="" X(1)=0
S:X(1)'?.N X(1)=""""_X(1)_""""
I 'ENSRT("ALL"),X(2)'=ENSRT("FR") S X=-1 Q
S @EN("NEXT")=X(1),EN("NEXT")=$C($A(EN("NEXT"))+1)
I ENSRT("LOC") D
. S X(1)=$$LOC^ENEQPMS8(DA) I X(1)=-1 S X=-1 Q
. I $P(X(1),U)=-2,ENSRT("LOC","ALL") D
.. S X(1)=""""_$P(X(1),U,2)_""""
.. F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I $P(X(1),U)=-2 S X=-1 Q
. I X(1)=-3,ENSRT("LOC","ALL") D
.. S X(1)=0 F J=1:1:($L(ENSRT("BY"))-1) S X(1)="0,"_X(1)
. I X(1)=-3 S X=-1 Q
. S @EN("NEXT")=X(1)
Q
;
BLD ; build ^TMP global from which to print Y2K worklist
S NODE="^TMP($J,""ENY2"","_ENSHKEY_","_SUB_DA_")"
S @NODE=""
Q
;
OUT K K,S,ENPM,ENPMDT,ENA,ENHZS,ENPMWK,ENSHOP,ENSHKEY,ENPMMN,ENSTMN,ENSTYR,ENCRIT,ENSRT,ENTECH,ENY,ENERR,ENMN,ENMNTH,ENI,ENLID
S:$D(ZTQUEUED) ZTREQ="@"
Q
;ENY2K3
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HENY2K3 4949 printed Dec 13, 2024@01:57:14 Page 2
ENY2K3 ;(WASH ISC)/DH-Select Equipment for Y2K Worklist ;5.19.98
+1 ;;7.0;ENGINEERING;**51**;Aug 17, 1993
+2 ; called by ENY2K2
ENTRY ; select IENs for Y2K worklist
+1 ; store in ^TMP($J,
+2 KILL ^TMP($JOB)
NEW NODE,SUB
+3 SET X=$$UP^XLFSTR($EXTRACT($PIECE($GET(^DIC(6922,35,0)),U),1,10))
IF X["BIO"
SET ENY2K("BME")=35
+4 IF '$GET(ENY2K("BME"))
Begin DoDot:1
+5 SET DA=0
FOR
SET DA=$ORDER(^DIC(6922,DA))
if 'DA!($GET(ENY2K("BME")))
QUIT
SET X=$$UP^XLFSTR($EXTRACT($PIECE(^(DA,0),U),1,10))
IF X["BIO"
SET ENY2K("BME")=DA
End DoDot:1
+6 IF '$GET(ENY2K("BME"))
WRITE !!,"Cannot find the BIOMEDICAL ENGINEERING shop. Can't proceed.",*7
GOTO OUT
+7 SET ENSHKEY("SEL")=ENSHKEY
+8 IF ENSHKEY'="ALL"
Begin DoDot:1
+9 SET DA=0
FOR
SET DA=$ORDER(^ENG(6914,"AK","CC",DA))
if 'DA
QUIT
Begin DoDot:2
+10 if '$DATA(^ENG(6914,DA,11))
QUIT
SET X=^(11)
+11 ;check estimated compliance date
if $PIECE(X,U,2)>ENY2DT
QUIT
+12 IF $PIECE(X,U,7)=ENSHKEY
SET ^TMP($JOB,ENSHKEY,DA)=""
QUIT
+13 IF $PIECE(X,U,7)=""
Begin DoDot:3
+14 SET X(1)=$ORDER(^ENG(6914,DA,4,0))
IF X(1)>0
SET X(2)=$PIECE(^(X(1),0),U)
if X(2)=ENSHKEY
SET ^TMP($JOB,ENSHKEY,DA)=""
QUIT
+15 IF ENSHKEY=ENY2K("BME")
SET ^TMP($JOB,ENSHKEY,DA)=""
End DoDot:3
End DoDot:2
End DoDot:1
+16 IF ENSHKEY="ALL"
Begin DoDot:1
+17 SET DA=0
FOR
SET DA=$ORDER(^ENG(6914,"AK","CC",DA))
if 'DA
QUIT
Begin DoDot:2
+18 if '$DATA(^ENG(6914,DA,11))
QUIT
SET X=^(11)
+19 ;check estimated compliance date
if $PIECE(X,U,2)>ENY2DT
QUIT
+20 IF $PIECE(X,U,7)
SET ^TMP($JOB,$PIECE(X,U,7),DA)=""
QUIT
+21 SET X(1)=$ORDER(^ENG(6914,DA,4,0))
IF X(1)>0
SET X(2)=$PIECE(^(X(1),0),U)
SET ^TMP($JOB,X(2),DA)=""
QUIT
+22 SET ^TMP($JOB,ENY2K("BME"),DA)=""
End DoDot:2
End DoDot:1
+23 DO LST2
DO PR^ENY2K5
+24 GOTO OUT
+25 ;
LST2 NEW EN,A,B,C,X,TAG
+1 SET ENSHKEY=0
FOR
SET ENSHKEY=$ORDER(^TMP($JOB,ENSHKEY))
if 'ENSHKEY
QUIT
SET DA=0
FOR
SET DA=$ORDER(^TMP($JOB,ENSHKEY,DA))
if 'DA
QUIT
DO LST3
+2 QUIT
+3 ;
LST3 ;check use status
SET X=$PIECE($GET(^ENG(6914,DA,3)),U)
IF "^4^5^"[(U_X_U)
QUIT
+1 ;is OUT OF SERVICE an issue?
IF 'ENSRT("OOS")
IF X=2
QUIT
+2 SET EN("NEXT")="A"
FOR X="A","B","C"
SET @X=""
+3 ;check for assigned tech
IF 'ENTECH("ALL")
IF $PIECE(^ENG(6914,DA,11),U,5)'=ENTECH
QUIT
+4 SET X=$PIECE(^ENG(6914,DA,11),U,5)
IF X>0
Begin DoDot:1
+5 IF $DATA(^ENG("EMP",X,0))
SET X(1)=""""_$PIECE(^(0),U)_""""
QUIT
+6 SET X(1)=""""_"DELETED"_""""
End DoDot:1
+7 IF X'>0
SET X(1)=""""_"UNASSIGNED"_""""
+8 SET @EN("NEXT")=X(1)
+9 SET EN("NEXT")=$CHAR($ASCII(EN("NEXT"))+1)
+10 SET TAG="LST"_ENSRT
DO @TAG
if $GET(X)=-1
QUIT
+11 SET SUB=""
FOR X(1)="A","B","C"
if $GET(@X(1))=""
QUIT
SET SUB=SUB_@X(1)_","
+12 DO BLD
+13 QUIT
+14 ;
LSTE ; By ENTRY NUMBER
+1 IF ENSRT("ALL")
QUIT
+2 IF ENSRT("FR")]DA!(DA]ENSRT("TO"))
SET X=-1
+3 QUIT
LSTP ; By PM NUMBER
+1 SET X(1)=$PIECE($GET(^ENG(6914,DA,3)),U,6)
if X(1)=""
SET X(1)=0
+2 if X(1)'=0
SET X(1)=""""_X(1)_""""
+3 SET @EN("NEXT")=X(1)
+4 QUIT
LSTI ; By LOCAL ID
+1 SET X(1)=$PIECE($GET(^ENG(6914,DA,3)),U,7)
if X(1)=""
SET X(1)=0
+2 SET X(2)=$SELECT(X(1)?.N:X(1),1:""""_X(1)_"""")
+3 IF ENSRT("ALL")
SET @EN("NEXT")=X(2)
SET EN("NEXT")=$CHAR($ASCII(EN("NEXT"))+1)
+4 IF '$TEST
SET X=""
Begin DoDot:1
+5 IF ENSRT("FR")]X(1)!(X(1)]ENSRT("TO"))
SET X=-1
QUIT
+6 SET @EN("NEXT")=X(2)
SET EN("NEXT")=$CHAR($ASCII(EN("NEXT"))+1)
End DoDot:1
+7 IF ENSRT("LOC")
IF $GET(X)'=-1
Begin DoDot:1
+8 SET X(1)=$$LOC^ENEQPMS8(DA)
IF X(1)=-1
SET X=-1
QUIT
+9 IF $PIECE(X(1),U)=-2
IF ENSRT("LOC","ALL")
Begin DoDot:2
+10 SET X(1)=""""_$PIECE(X(1),U,2)_""""
+11 FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+12 IF $PIECE(X(1),U)=-2
SET X=-1
QUIT
+13 IF X(1)=-3
IF ENSRT("LOC","ALL")
Begin DoDot:2
+14 SET X(1)=0
FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+15 IF X(1)=-3
SET X=-1
QUIT
+16 SET @EN("NEXT")=X(1)
End DoDot:1
+17 QUIT
LSTL ; By LOCATION
+1 SET X(1)=$$LOC^ENEQPMS8(DA)
IF X(1)=-1
SET X=-1
QUIT
+2 IF $PIECE(X(1),U)=-2
IF ENSRT("LOC","ALL")
Begin DoDot:1
+3 SET X(1)=""""_$PIECE(X(1),U,2)_""""
+4 FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:1
+5 IF $PIECE(X(1),U)=-2
SET X=-1
QUIT
+6 IF X(1)=-3
IF ENSRT("LOC","ALL")
Begin DoDot:1
+7 SET X(1)=0
FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:1
+8 IF X(1)=-3
SET X=-1
QUIT
+9 SET @EN("NEXT")=X(1)
+10 QUIT
LSTC ; By EQUIPMENT CATEGORY
+1 SET X(2)=$PIECE($GET(^ENG(6914,DA,1)),U)
if X(2)=""
SET X(1)=0
+2 IF X(2)>0
SET X(1)=$PIECE($GET(^ENG(6911,X(2),0)),U)
if X(1)=""
SET X(1)=0
+3 if X(1)'?.N
SET X(1)=""""_X(1)_""""
+4 IF 'ENSRT("ALL")
IF X(2)'=ENSRT("FR")
SET X=-1
QUIT
+5 SET @EN("NEXT")=X(1)
SET EN("NEXT")=$CHAR($ASCII(EN("NEXT"))+1)
+6 IF ENSRT("LOC")
Begin DoDot:1
+7 SET X(1)=$$LOC^ENEQPMS8(DA)
IF X(1)=-1
SET X=-1
QUIT
+8 IF $PIECE(X(1),U)=-2
IF ENSRT("LOC","ALL")
Begin DoDot:2
+9 SET X(1)=""""_$PIECE(X(1),U,2)_""""
+10 FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+11 IF $PIECE(X(1),U)=-2
SET X=-1
QUIT
+12 IF X(1)=-3
IF ENSRT("LOC","ALL")
Begin DoDot:2
+13 SET X(1)=0
FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+14 IF X(1)=-3
SET X=-1
QUIT
+15 SET @EN("NEXT")=X(1)
End DoDot:1
+16 QUIT
LSTS ; By OWNING SERVICE
+1 SET X(2)=$PIECE($GET(^ENG(6914,DA,3)),U,2)
if X(2)=""
SET X(1)=0
+2 IF X(2)>0
SET X(1)=$PIECE($GET(^DIC(49,X(2),0)),U)
if X(1)=""
SET X(1)=0
+3 if X(1)'?.N
SET X(1)=""""_X(1)_""""
+4 IF 'ENSRT("ALL")
IF X(2)'=ENSRT("FR")
SET X=-1
QUIT
+5 SET @EN("NEXT")=X(1)
SET EN("NEXT")=$CHAR($ASCII(EN("NEXT"))+1)
+6 IF ENSRT("LOC")
Begin DoDot:1
+7 SET X(1)=$$LOC^ENEQPMS8(DA)
IF X(1)=-1
SET X=-1
QUIT
+8 IF $PIECE(X(1),U)=-2
IF ENSRT("LOC","ALL")
Begin DoDot:2
+9 SET X(1)=""""_$PIECE(X(1),U,2)_""""
+10 FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+11 IF $PIECE(X(1),U)=-2
SET X=-1
QUIT
+12 IF X(1)=-3
IF ENSRT("LOC","ALL")
Begin DoDot:2
+13 SET X(1)=0
FOR J=1:1:($LENGTH(ENSRT("BY"))-1)
SET X(1)="0,"_X(1)
End DoDot:2
+14 IF X(1)=-3
SET X=-1
QUIT
+15 SET @EN("NEXT")=X(1)
End DoDot:1
+16 QUIT
+17 ;
BLD ; build ^TMP global from which to print Y2K worklist
+1 SET NODE="^TMP($J,""ENY2"","_ENSHKEY_","_SUB_DA_")"
+2 SET @NODE=""
+3 QUIT
+4 ;
OUT KILL K,S,ENPM,ENPMDT,ENA,ENHZS,ENPMWK,ENSHOP,ENSHKEY,ENPMMN,ENSTMN,ENSTYR,ENCRIT,ENSRT,ENTECH,ENY,ENERR,ENMN,ENMNTH,ENI,ENLID
+1 if $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 QUIT
+3 ;ENY2K3