1 | ENY2USRD ;(WASH CIOFO)/DH-Y2K Utility System Reports ;8.27.98
|
---|
2 | ;;7.0;ENGINEERING;**55**;August 17,1993
|
---|
3 | EN W @IOF,!,?20,"UTILITY EQUIPMENT DETAILED REPORT"
|
---|
4 | I $P($G(^DIC(6910,1,0)),U,2)']"" W !!,"There is no STATION NUMBER in your Engineering Init Paramaters file.",!,"Can't proceed.",*7 Q
|
---|
5 | S DIR(0)="SM^CAT:Equipment Category;MFGR:Manufacturer Equipment Name",DIR("A")="Select an IDENTIFIER",DIR("B")="CAT"
|
---|
6 | S DIR("?",1)="The first 15 characters of whichever field you select as your IDENTIFIER"
|
---|
7 | S DIR("?",2)="will be printed with system components in order to help you know what you're"
|
---|
8 | S DIR("?")="looking at. Please choose whichever field is likely to be most helpful."
|
---|
9 | D ^DIR K DIR I $D(DIRUT) G EXIT
|
---|
10 | S ENIDENT=Y
|
---|
11 | S ENSTN=0
|
---|
12 | I $P(^DIC(6910,1,0),U,10)!($D(^DIC(6910,1,3))) D I ENSTN="^" K ENIDENT Q
|
---|
13 | . W !! S DIR(0)="Y",DIR("A")="Do you want a breakout by station",DIR("B")="NO"
|
---|
14 | . S DIR("?",1)="If you say 'NO' you will obtain a single report for all your equipment,"
|
---|
15 | . S DIR("?")="regardless of which station it belongs to."
|
---|
16 | . D ^DIR K DIR I $D(DIRUT) S ENSTN="^" Q
|
---|
17 | . S ENSTN=Y
|
---|
18 | W !! K IO("Q") S %ZIS="QM" D ^%ZIS G:POP EXIT
|
---|
19 | I $D(IO("Q")) S ZTRTN="DET^ENY2USRD" D G EXIT
|
---|
20 | . S ZTDESC="Detailed Util Systems Report",ZTIO=ION
|
---|
21 | . S ZTSAVE("ENIDENT")="",ZTSAVE("ENSTN")=""
|
---|
22 | . D ^%ZTLOAD,HOME^%ZIS K ZTSK
|
---|
23 | ;
|
---|
24 | DET ; detailed report of utility system status
|
---|
25 | ; first collect all top level components in ^TMP($J,STATION,IEN)
|
---|
26 | ; then add children IENs as additional subscripts
|
---|
27 | K ^TMP($J)
|
---|
28 | N STATION,TYPE,DA,UTIL,NDX,FMLY,X,J
|
---|
29 | S STATION("PARNT")=$P(^DIC(6910,1,0),U,2),STATION=STATION("PARNT")
|
---|
30 | S J=0 F S J=$O(^ENG(6918.1,J)) Q:'J S UTIL(J)=$P(^ENG(6918.1,J,0),U)
|
---|
31 | S DA=0 F S DA=$O(^ENG(6914,"AR","BSE",DA)) Q:'DA I $D(^ENG(6914,DA,0)) D
|
---|
32 | . I '$D(ZTQUEUED),'(DA#100) W "." ; activity indicator
|
---|
33 | . Q:$P(^ENG(6914,DA,0),U,3) ; don't count children
|
---|
34 | . Q:"^4^5^"[(U_$P($G(^ENG(6914,DA,3)),U)_U) ; ck for turn-ins
|
---|
35 | . I ENSTN S STATION=$S($P($G(^ENG(6914,DA,9)),U,5)]"":$P(^(9),U,5),1:STATION("PARNT"))
|
---|
36 | . S FMLY="AAA",X=$P($G(^ENG(6914,DA,9)),U,12) I X,$D(UTIL(X)) S FMLY=UTIL(X)
|
---|
37 | . S ^TMP($J,STATION,FMLY,DA)=""
|
---|
38 | ; now round up the children
|
---|
39 | S STATION="" F S STATION=$O(^TMP($J,STATION)) Q:STATION="" S FMLY="" F S FMLY=$O(^TMP($J,STATION,FMLY)) Q:FMLY="" S DA=0 F S DA=$O(^TMP($J,STATION,FMLY,DA)) Q:'DA D
|
---|
40 | . I '$D(^ENG(6914,"AE",DA)) Q ; simple system
|
---|
41 | . D GETCHLD(DA,"") ; complex system
|
---|
42 | ;
|
---|
43 | DETPRNT ; print detailed utility system hierarchy
|
---|
44 | U IO
|
---|
45 | N PAGE,DATE,ESCAPE,NODE,Y2K,UL,ULD
|
---|
46 | D NOW^%DTC S Y=% X ^DD("DD") S DATE("PRNT")=$P(Y,":",1,2),PAGE=0
|
---|
47 | S $P(UL,"-",79)="-",$P(ULD,"=",79)="="
|
---|
48 | S STATION=""
|
---|
49 | F S STATION=$O(^TMP($J,STATION)) Q:STATION="" D:PAGE HOLD D HDRDET S FMLY="" F S FMLY=$O(^TMP($J,STATION,FMLY)) Q:FMLY="" S DA=0 D
|
---|
50 | . F S DA=$O(^TMP($J,STATION,FMLY,DA)) Q:'DA Q:$G(ESCAPE) S Y2K=1 D
|
---|
51 | .. I STATION?.N S NODE="^TMP("_$J_","_STATION_","""_FMLY_""","_DA_")"
|
---|
52 | .. E S NODE="^TMP("_$J_","""_STATION_""","""_FMLY_""","_DA_")"
|
---|
53 | .. F D Q:$QS(NODE,1)'=$J Q:$QS(NODE,4)'=DA Q:$G(ESCAPE)
|
---|
54 | ... I (IOSL-$Y)'>5 D HOLD Q:$G(ESCAPE) D HDRDET
|
---|
55 | ... N IDENT,SYSTEM,LEVEL,COMP
|
---|
56 | ... S IDENT="" I ENIDENT="CAT" S IDENT(0)=$P($G(^ENG(6914,DA,1)),U) I IDENT(0) S IDENT=$E($P($G(^ENG(6911,IDENT(0),0)),U),1,15)
|
---|
57 | ... I ENIDENT="MFGR" S IDENT=$E($P(^ENG(6914,DA,0),U,2),1,15)
|
---|
58 | ... I $QL(NODE)=4 D Q ; top level
|
---|
59 | .... W !!!,DA,?12,IDENT
|
---|
60 | .... I @NODE W " ("_@NODE_" comp.)"
|
---|
61 | .... S Y2K(DA)=$S($P($G(^ENG(6914,DA,11)),U)]"":$P(^(11),U),1:"Null") W " Y2K: ",Y2K(DA) I "^FC^NA^"'[(U_Y2K(DA)_U) S Y2K=0
|
---|
62 | .... W ?60,$S(FMLY'="AAA":FMLY,1:"NONE")
|
---|
63 | .... S NODE=$Q(@NODE) I NODE]"",$QS(NODE,1)=$J,$QL(NODE)=4 W !!,"This Utility Component is " W:'Y2K "NOT " W "Y2K Compliant.",!,UL Q
|
---|
64 | .... I NODE]"",$QS(NODE,1)'=$J W !!,"This Utility Component is " W:'Y2K "NOT " W "Y2K compliant.",!,UL Q
|
---|
65 | .... I NODE="" W !!,"This Utility Component is " W:'Y2K "NOT " W "Y2K compliant.",!,UL
|
---|
66 | ... F D S NODE=$Q(@NODE) Q:NODE="" Q:$QS(NODE,1)'=$J Q:$QS(NODE,4)'=DA Q:$G(ESCAPE)
|
---|
67 | .... S LEVEL=$QL(NODE),DA(LEVEL)=$QS(NODE,LEVEL)
|
---|
68 | .... S IDENT="" I ENIDENT="CAT" S IDENT(0)=$P($G(^ENG(6914,DA(LEVEL),1)),U) I IDENT(0) S IDENT=$E($P($G(^ENG(6911,IDENT(0),0)),U),1,15)
|
---|
69 | .... I ENIDENT="MFGR" S IDENT=$E($P(^ENG(6914,DA(LEVEL),0),U,2),1,15)
|
---|
70 | .... S Y2K(DA(LEVEL))=$S($P($G(^ENG(6914,DA(LEVEL),11)),U)]"":$P(^(11),U),1:"Null") I "^FC^NA^"'[(U_Y2K(DA(LEVEL))_U) S Y2K=0
|
---|
71 | .... W !,?((LEVEL-3)*12),DA(LEVEL),?((LEVEL-2)*12),IDENT
|
---|
72 | .... I @NODE>0 W " ("_@NODE_" comp.)"
|
---|
73 | .... W " Y2K: ",Y2K(DA(LEVEL))
|
---|
74 | .... I (IOSL-$Y)'>5 D HOLD Q:$G(ESCAPE) D HDRDET
|
---|
75 | ... Q:$G(ESCAPE) W !!,"This Utility System is " W:'Y2K "NOT " W "Y2K compliant.",!,UL Q:NODE="" Q:$QS(NODE,1)'=$J Q:$QS(NODE,2)'=STATION
|
---|
76 | D HOLD G EXIT ; design exit for detailed report
|
---|
77 | ;
|
---|
78 | HDRDET ; header for detailed utility systems report
|
---|
79 | Q:$G(ESCAPE)
|
---|
80 | W:PAGE>0!($E(IOST,1,2)="C-") @IOF S PAGE=PAGE+1
|
---|
81 | W "Detailed Report of Utility Systems as of "_DATE("PRNT"),?70,"Page: "_PAGE
|
---|
82 | W !,$S(ENSTN:"Station: "_STATION,1:"Consolidated ("_STATION("PARNT")_")")
|
---|
83 | W !,"System Entry Number",?60,"System Family"
|
---|
84 | W !,ULD
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | HOLD Q:$E(IOST,1,2)'="C-"!($G(ESCAPE))
|
---|
88 | W !!,"Press <RETURN> to continue, '^' to escape..." R X:DTIME
|
---|
89 | I '$T!($E(X)="^") S ESCAPE=1
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | GETCHLD(PARNT,PRECRSR) ; Get All Components Under Parent System PARNT
|
---|
93 | ;Input
|
---|
94 | ; PARNT - ien of parent system (e.g. 1024)
|
---|
95 | ; PRECRSR - ien list of parent system precursors (e.g.: 150,7019)
|
---|
96 | ;Output
|
---|
97 | ; ^TMP($J,STATION,FMLY,parent ien)=# of components
|
---|
98 | ; ^TMP($J,STATION,FMLY,parent ien,component ien,sub-component ien...)=""
|
---|
99 | N CHILD,COUNT
|
---|
100 | ; init component counter
|
---|
101 | S COUNT=0
|
---|
102 | ; loop thru components of parent system PARNT
|
---|
103 | S CHILD=0 F S CHILD=$O(^ENG(6914,"AE",PARNT,CHILD)) Q:'CHILD D
|
---|
104 | . ; check for endless loop
|
---|
105 | . I ","_PRECRSR_PARNT_","[(","_CHILD_",") D Q
|
---|
106 | . . W !,"ERROR - ENDLESS LOOP DETECTED - SKIPPING ENTRY"
|
---|
107 | . . W !," Entry #",CHILD," already is a parent in "_PARNT_","
|
---|
108 | . Q:"^4^5^"[(U_$P($G(^ENG(6914,CHILD,3)),U)_U) ; ck for turn-ins
|
---|
109 | . ; save component
|
---|
110 | . S @("^TMP($J,STATION,FMLY,"_PRECRSR_PARNT_","_CHILD_")")="",COUNT=COUNT+1
|
---|
111 | . ; if component has components then get them also
|
---|
112 | . I $O(^ENG(6914,"AE",CHILD,0)) D GETCHLD(CHILD,PRECRSR_PARNT_",")
|
---|
113 | ; save parent system component count
|
---|
114 | S @("^TMP($J,STATION,FMLY,"_PRECRSR_PARNT_")")=COUNT
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | EXIT K ENSTN,ENIDENT
|
---|
118 | K ^TMP($J)
|
---|
119 | I $D(ZTQUEUED) S ZTREQN="@"
|
---|
120 | D ^%ZISC,HOME^%ZIS
|
---|
121 | Q
|
---|
122 | ;ENY2USRD
|
---|