HLEVREP3 ;O-OIFO/LJA - Event Monitor REPORTS ;02/04/2004 14:42
;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995
;
REMREQO ; Remote Requestable printout - [HLEV REMOTE REQUESTABLE LIST]
N BY,DIC,DIOEND,FLDS,HLEVRRQ
W @IOF,$$CJ^XLFSTR("Remote Requestable Monitors Report",IOM)
W !,$$REPEAT^XLFSTR("=",IOM)
W !,"Some monitors may be activated by remote server request. This option sorts"
W !,"all monitors by whether they are ""remote requestable""."
W !
S L="",DIC=776.1,BY="[HLEV REPORT MONITOR]",DIOEND="D RRQSUMM^HLEVREP3"
S FLDS="[HLEV REMOTE REQUESTABLE]"
D EN1^DIP
Q
;
RRQSUMM ; Remote request summary...
QUIT:'$D(HLEVRRQ("[NO]")) ;->
W !,"Fields having [NO] in the remote requestable field are not answered YES or"
W !,"NO. But, since the default action is NO, these blank fields are actually"
W !,"an implied NO (no remote requesting allowed.)"
I '$D(ZTQUEUED) D TELL^HLEVMST0("","0^0^0")
Q
;
REMREQ() ; Called by [HLEV REMOTE REQUESTABLE] print template
; Return whether entry is remote requestable
; HLEVRRQ newed at top of print template run...
S HLEVRRQ=$S(X=1:"YES",X=0:"NO",1:"[NO]")
S HLEVRRQ(HLEVRRQ)=$G(HLEVRRQ(HLEVRRQ))+1
Q HLEVRRQ
;
MONLOAD(HLEVIENJ) ; Load data into ^TMP...
N DATA,EXPL,LEN,MIEN,NO,PAGE,REF,SUB,SUM,SUMX,SUMY,TITLE,VAR
;
KILL ^TMP($J,"HLMON",+HLEVIENJ)
;
; Zero node
S DATA=$G(^HLEV(776,+$G(HLEVIENJ),0)) QUIT:DATA']"" ;->
D SET("START","Start",$$SDT^HLEVX001($P(DATA,U)))
D SET("DONE","Finish",$$SDT^HLEVX001($P(DATA,U,2)))
D SET("MONM","Monitor",$P($G(^HLEV(776.1,+$P(DATA,U,3),0)),U))
D SET("STATR","Status",$$STAT776($P(DATA,U,4)))
D SET("STATA","Appl",$P(DATA,U,5))
D SET("TIME","T-Stamp",$$SDT^HLEVX001($P(DATA,U,6)))
D SET("MAIL","Mail",$P(DATA,U,7))
D SET("ZTSK","Task",$P(DATA,U,8))
D SET("MST","Master",$P(DATA,U,9))
;
; Run Diary and Message Text...
F SUB=50,51 D
. S TITLE=$S(SUB=50:"RUN",1:"MSG")
. S MIEN=0
. F S MIEN=$O(^HLEV(776,+HLEVIENJ,SUB,MIEN)) Q:MIEN'>0 D
. . S NO=$O(^TMP($J,"HLMON",+HLEVIENJ,TITLE,":"),-1)+1
. . S ^TMP($J,"HLMON",+HLEVIENJ,TITLE,+NO)=^HLEV(776,+HLEVIENJ,SUB,MIEN,0)
;
; Variables...
S MIEN=0,SUMX="",SUMY=""
F S MIEN=$O(^HLEV(776,+HLEVIENJ,52,MIEN)) Q:MIEN'>0 D
. S REF=$G(^HLEV(776,+HLEVIENJ,52,+MIEN,0)) QUIT:$P(REF,U)']"" ;->
. S VAR=$P(REF,U),EXPL=$P(REF,U,2),EXPL=$S(EXPL]"":EXPL,1:REF)
. S DATA=$G(^HLEV(776,+HLEVIENJ,52,+MIEN,52))
. S ^TMP($J,"HLMON",+HLEVIENJ,"VD",VAR,EXPL)=DATA
.
. S LEN=$L(DATA) ; Length of data
. S LEN(1)=$L(EXPL) ; Length column header
. S LEN(2)=$S(LEN>LEN(1):LEN,1:LEN(1))+2 ; Largest length-data or header
. S LEN(3)=LEN+LEN(1)+3 ; Length - data + header
.
. S ^TMP($J,"HLMON",+HLEVIENJ,"VX",LEN(2),VAR,EXPL)=""
. S ^TMP($J,"HLMON",+HLEVIENJ,"VY",+LEN(3),VAR,EXPL)=""
.
. S $P(SUMX,U)=$P(SUMX,U)+1 ; # variables...
. S $P(SUMX,U,2)=$P(SUMX,U,2)+LEN(2)+2 ; Total columns required...
. I $P(SUMX,U,3)<(LEN(2)+1) S $P(SUMX,U,3)=LEN(2) ; Largest column
.
. S $P(SUMY,U)=$P(SUMY,U)+1
. S $P(SUMY,U,2)=$P(SUMY,U,2)+1
. I $P(SUMY,U,3)<(LEN(3)+1) S $P(SUMY,U,3)=LEN(3)
;
; # Var header, Line and Var data "pages"...
S LEN=0,PAGE=0,SUM=0
F S LEN=$O(^TMP($J,"HLMON",+HLEVIENJ,"VX",LEN)) Q:LEN'>0 D
. S:PAGE=0 PAGE=1
. I (SUM+LEN)>80 D
. . S PAGE=PAGE+1,SUM=0
. S SUM=SUM+LEN
S:PAGE $P(SUMX,U,4)=PAGE
;
I SUMX]"" S ^TMP($J,"HLMON",+HLEVIENJ,"VX")=SUMX
I SUMY]"" S ^TMP($J,"HLMON",+HLEVIENJ,"VY")=SUMY
;
Q
;
;
SET(STORE,TAG,VAL) ; Store value to be displayed...
S ^TMP($J,"HLMON",HLEVIENJ,STORE)=$S(VAL]"":1,1:"")_U_TAG_U_VAL
Q
;
STAT776(STAT) ; Return status for use on report...
QUIT STAT_U_$S(STAT="E":"Error",STAT="F":"Finish",STAT="Q":"Que'd",STAT="R":"Running",1:"")
;
CTRLMON ; Re/ask for monitor to display...
N IEN776,IENDATE,IENONE,IOINHI,IOINORM,LASTONE,WORK,X
S X="IOINHI;IOINORM" D ENDR^%ZISS
S WORK=0
W !
S IEN776=$$ASKMON QUIT:IEN776'>0 ;->
S WORK=1
S IENDATE=$$ASKDATE(IEN776) QUIT:IENDATE'>0 ;->
CTRLMON1 ; Reask entry point...
S IENONE=$$ASKONE(IEN776,IENDATE) I IENONE'>0 D QUIT ;->
. W !!!!,IOINHI,"Returning to display of daily map views...",IOINORM
. W !!
D SHOW^HLEVREP2(+IENONE)
I $P(IENONE,U,2)>1 D G CTRLMON1 ;->
. D TELL^HLEVMST0("","0^0^999","Press RETURN to continue... ")
G CTRLMON ;->
;
ASKMON() ; Ask user for a monitor to show...
N DIC,X,Y
S DIC=776.1,DIC(0)="AEMQ",DIC("A")="Select monitor to view, or RETURN to continue: "
S DIC("S")="I $D(^TMP($J,""HLMAP"",""E"",+Y))"
D ^DIC
Q $S(+Y>0:+Y,1:"")
;
ASKDATE(IEN776) ;
; DATESEL -- req
N DATE,DIR,DIRUT,DTOUT,DUOUT,X,Y
S DIR(0)="DA",DIR("A")="Select monitor RUN DATE: "
S X=$$FMTE^XLFDT($O(^TMP($J,"HLMAP","E",+IEN776,DATESEL-.000001))) I X]"" S DIR("B")=X
ASKDATE1 ;
S DIR("?")="Enter one of the ""run dates"" for this monitor. (Enter ?? to see list of run dates.)"
S DIR("??")="^D ASKDHELP^HLEVREP1"
D ^DIR
QUIT:$D(DIRUT)!($D(DTOUT))!($D(DUOUT)) "" ;->
QUIT:$D(^TMP($J,"HLMAP","E",+IEN776,+Y)) +Y ;->
D ASKDHELP
G ASKDATE1 ;->
;
ASKDHELP ; Help for $$ASKDATE...
W !!,"You must enter one of the following dates. Data exists for... "
W !!
S DATE=0
F S DATE=$O(^TMP($J,"HLMAP","E",IEN776,DATE)) Q:DATE'>0 D
. S DATE(1)=$$FMTE^XLFDT(DATE)
. W:$X>70 !
. W $J(DATE(1),15)
W !
Q
;
ASKONE(IEN776,IENDATE) ;
; Defines and returns LASTONE...
N DATA,DATE,DIR,DIRUT,DTOUT,DUOUT,HOLD,IEN,LAST,NEXT,NO,STAT,X,Y
;
; Find entries and build DIR string...
S NO=0,IEN=0,DIR(0)="SO^"
F S IEN=$O(^TMP($J,"HLMAP","E",+IEN776,+IENDATE,IEN)) Q:'IEN D
. S DATA=$G(^HLEV(776,+IEN,0)) QUIT:DATA']"" ;->
. S NO=NO+1
. S DATE=$P(DATA,U),STAT=$$STAT776^HLEVREP3($P(DATA,U,4))
. S HOLD(NO)=IEN_U_DATE
. S DATE(DATE)=IEN_U_STAT
. S DIR(0)=DIR(0)_$S(DIR(0)'="SO^":";",1:"")_NO_":"_$TR($$FMTE^XLFDT(DATE),":",".")_" ["_$P(STAT,U,2)_"]"
QUIT:NO'>0 "" ;->
QUIT:NO=1 +HOLD(1)_U_1 ;->
;
W !!,"This monitor was run more than once on the date you selected. Please select"
W !,"specific run time now..."
S NEXT=$S($G(LASTONE)'>0:1,1:LASTONE+1),NEXT=$S($D(HOLD(NEXT)):NEXT,1:"")
S DIR("A")="Select RUN TIME"
I NEXT S DIR("B")=NEXT
D ^DIR
;
QUIT:'$D(HOLD(+$G(X))) "" ;-> User answered by entering number...
;
S LASTONE=+X ; Used for DIR("B") later...
;
Q +HOLD(+X)_U_NO
;
EOR ;HLEVREP3 - Event Monitor REPORTS ;5/16/03 14:42