1 | HLEVUTI3 ;O-OIFO/LJA - Event Monitor UTILITIES ;02/04/2004 14:42
|
---|
2 | ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995
|
---|
3 | ;
|
---|
4 | MOVETMP(FILE,IEN,GBLSV) ; Move ^UTILITY data into ^TMP and prep it...
|
---|
5 | N DATA,FLD,FLDLEN,FLDNM,GBL,MNO,NO,NUM,STR
|
---|
6 | ;
|
---|
7 | KILL ^TMP($J,"HLTMP")
|
---|
8 | ;
|
---|
9 | S GBL=$NA(^UTILITY("DIQ1",$J))
|
---|
10 | ;
|
---|
11 | D ADDLN(GBLSV,$$CJ^XLFSTR(" "_FILE_"#: "_IEN_" ",74,"="))
|
---|
12 | ;
|
---|
13 | S FLD=0
|
---|
14 | F S FLD=$O(@GBL@(FILE,IEN,FLD)) Q:FLD'>0 D
|
---|
15 | . S FLDNM="["_$P($G(^DD(+FILE,+FLD,0)),U)
|
---|
16 | . S DATA=$G(@GBL@(FILE,IEN,+FLD,"E"))
|
---|
17 | . I DATA]"" D QUIT ;->
|
---|
18 | . . S NO=$O(^TMP($J,"HLTMP",":"),-1)+1
|
---|
19 | . . S ^TMP($J,"HLTMP",+NO)=FLDNM_U_FLD_U_DATA_"]"
|
---|
20 | . S MNO=0,FLD(1)=FLD
|
---|
21 | . F S MNO=$O(@GBL@(FILE,IEN,FLD,"E",MNO)) Q:MNO'>0 D
|
---|
22 | . . S DATA=$G(@GBL@(FILE,IEN,FLD,"E",+MNO))
|
---|
23 | . . S NO=$O(^TMP($J,"HLTMP",":"),-1)+1
|
---|
24 | . . S ^TMP($J,"HLTMP",+NO)=FLDNM_U_FLD(1)_U_DATA_"]"
|
---|
25 | ;
|
---|
26 | S NO=0,STR=""
|
---|
27 | F S NO=$O(^TMP($J,"HLTMP",NO)) Q:NO'>0 D
|
---|
28 | . S DATA=^TMP($J,"HLTMP",NO) QUIT:DATA']"" ;->
|
---|
29 | . S FLDNM=$P(DATA,U),FLD=$P(DATA,U,2),DATA=$P(DATA,U,3,999)
|
---|
30 | . I FILE=772,FLD=200 S FLDNM="MSG"
|
---|
31 | . S FLDNM=$S(FLDNM]"":FLDNM_": ",1:""),FLDLEN=$L(FLDNM)
|
---|
32 | . S DATA=$$LOW^XLFSTR(FLDNM)_DATA
|
---|
33 | . I FLD']"" D QUIT ;-> standalone line...
|
---|
34 | . . I STR]"" D ADDLN(GBLSV,STR)
|
---|
35 | . . D ADDLN(GBLSV," "_DATA)
|
---|
36 | . I ($L(STR)+$L(DATA)+3)>74 D
|
---|
37 | . . I STR]"" D ADDLN(GBLSV,STR)
|
---|
38 | . . S STR=""
|
---|
39 | . S STR=STR_$$PAD(STR,$L(DATA))_DATA QUIT:$L(STR)<74 ;->
|
---|
40 | . F D QUIT:STR']""
|
---|
41 | . . D ADDLN(GBLSV,$E(STR,1,74))
|
---|
42 | . . S STR=$E(STR,75,999) QUIT:STR']"" ;->
|
---|
43 | . . S STR=" "_STR
|
---|
44 | I STR]"" D ADDLN(GBLSV,STR)
|
---|
45 | ;
|
---|
46 | KILL ^TMP($J,"HLTMP")
|
---|
47 | ;
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | PAD(STR,LEN) ; Add spaces to right justify...
|
---|
51 | QUIT:STR']"" "" ;->
|
---|
52 | I ($L(STR)+LEN)<40 QUIT " " ;->
|
---|
53 | Q $$REPEAT^XLFSTR(" ",74-$L(STR)-LEN)
|
---|
54 | ;
|
---|
55 | ADDLN(GBLSV,DATA) ; Add one line of text...
|
---|
56 | N NUM
|
---|
57 | S NUM=$O(^TMP($J,GBLSV,":"),-1)+1
|
---|
58 | S ^TMP($J,GBLSV,+NUM)=DATA
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | LASTIEN ; Display last IEN of files 772 & 773 every 15 seconds...
|
---|
62 | N B,CT,DIFF,DIR,DIROUT,DIRUT,DTOUT,DUOUT,IEN772,IEN773
|
---|
63 | N LAST772,LAST773,STOP,TIMEOUT,X,Y
|
---|
64 | ;
|
---|
65 | W @IOF,$$CJ^XLFSTR("File 772 & 773 IEN Display",IOM)
|
---|
66 | W !,$$REPEAT^XLFSTR("=",IOM)
|
---|
67 | ;
|
---|
68 | W !!,"This API displays the last internal entry number (IEN) in the following files:"
|
---|
69 | W !!," * HL Message Text file (#772)."
|
---|
70 | W !," * HL Message Administration file (#773)."
|
---|
71 | W !!,"The last IEN in these files are recollected and redisplayed every 15 seconds."
|
---|
72 | W !,"After every display of these IENs, you may take the following actions:"
|
---|
73 | W !!," * Do nothing, & the information will be redisplayed in 15 seconds."
|
---|
74 | W !," (You may change the refresh seconds by entering a number of seconds"
|
---|
75 | W !," and pressing RETURN.)"
|
---|
76 | W !!," * Hit return to force information redisplay."
|
---|
77 | W !!," * Enter an uparrow ('^') and press RETURN to exit."
|
---|
78 | ;
|
---|
79 | F QUIT:($Y+3)>IOSL W !
|
---|
80 | QUIT:$$BTE^HLCSMON("Press RETURN to start, or '^' to exit... ") ;->
|
---|
81 | ;
|
---|
82 | W @IOF
|
---|
83 | S X=$$SITE^VASITE W $$CJ^XLFSTR(" "_$P(X,U,2)_" ["_$P(X,U,3)_"] ",IOM,"=")
|
---|
84 | D HDRIEN
|
---|
85 | ;
|
---|
86 | S CT=0,TIMEOUT=15,B="|"
|
---|
87 | S (IEN772,IEN773,LAST772,LAST773)=""
|
---|
88 | ;
|
---|
89 | F D QUIT:STOP
|
---|
90 | . S CT=CT+1
|
---|
91 | . S IEN772=$O(^HL(772,":"),-1),IEN773=$O(^HLMA(":"),-1)
|
---|
92 | . I '(CT#22) W !! D HDRIEN
|
---|
93 | . W !,$$SDT($$NOW^XLFDT),?19,B
|
---|
94 | . W ?21,IEN772,?36,$$DIFFIEN(IEN772,LAST772),?45,B
|
---|
95 | . W ?47,IEN773,?61,$$DIFFIEN(IEN773,LAST773),?73,B
|
---|
96 | . S LAST772=IEN772,LAST773=IEN773
|
---|
97 | . S STOP=1
|
---|
98 | . R " ",X:TIMEOUT
|
---|
99 | . QUIT:X[U ;->
|
---|
100 | . S STOP=0
|
---|
101 | . QUIT:'$T ;-> Timed out...
|
---|
102 | . I X=+X,X>0 S TIMEOUT=X D QUIT ;->
|
---|
103 | . . W """"
|
---|
104 | . ; User pressed RETURN...
|
---|
105 | . W "<ret>"
|
---|
106 | ;
|
---|
107 | Q
|
---|
108 | ;
|
---|
109 | DIFFIEN(LAST,BEFORE) ; Return number new entries right justified in 3 col's
|
---|
110 | N DIFF
|
---|
111 | QUIT:LAST'>0!(BEFORE'>0) "" ;->
|
---|
112 | S DIFF=LAST-BEFORE QUIT:DIFF'>0 "" ;->
|
---|
113 | QUIT $J(DIFF,3)
|
---|
114 | ;
|
---|
115 | HDRIEN ;
|
---|
116 | N B
|
---|
117 | S B="|"
|
---|
118 | W:$X>0 !
|
---|
119 | W "Time",?19,B,?21,"LAST-772-IEN",?36,"#772",?45,B
|
---|
120 | W ?47,"LAST-773-IEN",?61,"#773",?73,B
|
---|
121 | W !,$$REPEAT^XLFSTR("=",IOM)
|
---|
122 | Q
|
---|
123 | ;
|
---|
124 | SDT(FMTIME) ; Return DD/MM/YY@HH:MM:SS
|
---|
125 | N DATE,TIME
|
---|
126 | QUIT:$G(FMTIME)'?7N.E "" ;->
|
---|
127 | S TIME=$S(FMTIME?7N1"."1.N:"@"_$E($P($$FMTE^XLFDT(FMTIME),"@",2)_":00:00",1,8),1:"")
|
---|
128 | S DATE=$E(FMTIME,4,5)_"/"_$E(FMTIME,6,7)_"/"_$E(FMTIME,2,3)
|
---|
129 | Q DATE_TIME
|
---|
130 | ;
|
---|
131 | EOR ;HLEVUTI3 - Event Monitor UTILITIES ;5/16/03 14:42
|
---|