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