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