VistA-WorldVistAEHR/r/CAPACITY_MANAGEMENT_TOOLS-K.../KMPDSSD.m

268 lines
8.1 KiB
Mathematica

KMPDSSD ;OAK/RAK - CM Tools Status ;2/14/05 11:42
;;2.0;CAPACITY MANAGEMENT TOOLS;**3**;Mar 22, 2002
;
FORMAT(KMPDLN) ;-format text for display
;-----------------------------------------------------------------------------
; KMPDLN.... return number of lines - called by reference
;-----------------------------------------------------------------------------
;
Q:$G(KMPDNMSP)=""
;
N LN,VERSION,X S LN=0 K TMP
;
; if no kmpdutl routine
S X="KMPDUTL" X ^%ZOSF("TEST") I '$T D Q
.S LN=LN+1
.D SET^VALM10(LN,"The CM Tools Package is not installed!")
;
; version data
S VERSION=$$VERSION^KMPDUTL
;
; option data
D OPT("KMPD BACKGROUND DRIVER")
;
; bacground data
D BKGRND
;
; file data
D FILES
;
; routine version check
D ROUCHK^KMPDSSD1("D")
;
; node/cpu data
D CPU^KMPDSSD1
;
; mailgroup members
D MGRP^KMPDSSD1
;
; legend
D LEGEND
;
S KMPDLN=LN
;
Q
;
BKGRND ; hl7 background info
;
N DATA,DELTA,ENDT,I,STAT,STDT,Z
;
D PARAMS^KMPDUT("DATA") Q:'$D(DATA)
S DATA(3)=$G(DATA(3)),DATA(4)=$G(DATA(4))
S STDT=$P(DATA(3),U,5),ENDT=$P(DATA(3),U,6),DELTA=$P(DATA(3),U,7)
S:$E(DELTA)=" " $E(DELTA)="0"
; if hl7
I KMPDNMSP="H" D
.S LN=LN+1
.D SET^VALM10(LN,"")
.S LN=LN+1
.D SET^VALM10(LN," Hl7 Dly Bckgrnd Last Start.. "_$$FMTE^XLFDT(STDT))
.S LN=LN+1
.D SET^VALM10(LN," HL7 Dly Bckgrnd Last Stop... "_$$FMTE^XLFDT(ENDT))
.S LN=LN+1
.D SET^VALM10(LN," HL7 Dly Bkgrnd Total Time... "_DELTA)
.S STDT=$P(DATA(3),U,8),ENDT=$P(DATA(3),U,9),DELTA=$P(DATA(3),U,10)
.S:$E(DELTA)=" " $E(DELTA)="0"
.S LN=LN+1
.D SET^VALM10(LN,"")
.S LN=LN+1
.D SET^VALM10(LN," HL7 Wkly Backgrnd Last Start "_$$FMTE^XLFDT(STDT))
.S LN=LN+1
.D SET^VALM10(LN," HL7 Wkly Bckgrnd Last Stop.. "_$$FMTE^XLFDT(ENDT))
.S LN=LN+1
.D SET^VALM10(LN," HL7 Wkly Bckgrnd Total Time. "_DELTA)
.S LN=LN+1
.D SET^VALM10(LN," HL7 Purge Data After........ "_$P(DATA(3),U,11)_" weeks")
.D TRANSTO^KMPDUTL7(1,3,.Z)
.I '$D(Z) S LN=LN+1 D SET^VALM10(LN," HL7 Transmit Data to........ <>")
.E D
..S I=$O(Z("")) I I'="" S LN=LN+1 D SET^VALM10(LN," HL7 Transmit Data to........ "_I)
..F S I=$O(Z(I)) Q:I="" S LN=LN+1 D SET^VALM10(LN,$J(" ",32)_I)
.S LN=LN+1
.D SET^VALM10(LN,"")
;
; timing background info - if available
I KMPDNMSP="T" D
.S LN=LN+1
.D SET^VALM10(LN,"")
.I '$D(DATA(4)) S LN=LN+1 D SET^VALM10(LN," There is no Timing data to report") Q
.S STAT=$G(^KMPTMP("KMPD-CPRS"))
.S LN=LN+1
.D SET^VALM10(LN," TMG Collection Status....... "_$S(STAT:"Running",1:"STOPPED!"))
.S STDT=$P(DATA(4),U,5),ENDT=$P(DATA(4),U,6),DELTA=$P(DATA(4),U,7)
.S:$E(DELTA)=" " $E(DELTA)="0"
.S LN=LN+1
.D SET^VALM10(LN," TMG Dly Bckgrnd Last Start.. "_$$FMTE^XLFDT(STDT))
.S LN=LN+1
.D SET^VALM10(LN," TMG Dly Bckgrnd Last Stop... "_$$FMTE^XLFDT(ENDT))
.S LN=LN+1
.D SET^VALM10(LN," TMG Dly Bkgrnd Total Time... "_DELTA)
.S STDT=$P(DATA(4),U,8),ENDT=$P(DATA(4),U,9),DELTA=$P(DATA(4),U,10)
.S:$E(DELTA)=" " $E(DELTA)="0"
.S LN=LN+1
.D SET^VALM10(LN," TMG Purge Data After........ "_$P(DATA(4),U,11)_" weeks")
.D TRANSTO^KMPDUTL7(1,4,.Z)
.I '$D(Z) S LN=LN+1 D SET^VALM10(LN," TMG Transmit Data to........ <>")
.E D
..S I=$O(Z("")) I I'="" S LN=LN+1 D SET^VALM10(LN," TMG Transmit Data to........ "_I)
..F S I=$O(Z(I)) Q:I="" S LN=LN+1 D SET^VALM10(LN,$J(" ",32)_I)
.S LN=LN+1
.D SET^VALM10(LN,"")
;
Q
;
FILES ;-- file data
;
N TEXT,X
;
S LN=LN+1
D SET^VALM10(LN,$J(" ",35)_" # of Oldest Recent")
S LN=LN+1
D SET^VALM10(LN," File"_$J(" ",28)_"Entries Date Date")
S LN=LN+1
D SET^VALM10(LN," ------------------------- ------- ------- -------")
;
; if hl7
I KMPDNMSP="H" D
.; file name
.S TEXT=" 8973.1 - "_$P($G(^DIC(8973.1,0)),U)
.; number of entries
.S TEXT=TEXT_$J(" ",35-$L(TEXT))_$J($FN($P($G(^KMPD(8973.1,0)),U,4),",",0),7)
.; oldest date
.S X=$$FMTE^XLFDT(+$O(^KMPD(8973.1,"B",0)),2)
.S X=$S(X=0:"---",1:X)
.S TEXT=TEXT_$J(" ",45-$L(TEXT))_X
.; current date
.S X=$$FMTE^XLFDT(+$O(^KMPD(8973.1,"B","A"),-1),2)
.S X=$S(X=0:"---",1:X)
.S TEXT=TEXT_$J(" ",55-$L(TEXT))_X
.S LN=LN+1
.D SET^VALM10(LN,TEXT)
;
; if timing data
I KMPDNMSP="T" D
.; file name
.S TEXT=" 8973.2 - "_$P($G(^DIC(8973.2,0)),U)
.; number of entries
.S TEXT=TEXT_$J(" ",35-$L(TEXT))_$J($FN($P($G(^KMPD(8973.2,0)),U,4),",",0),7)
.; oldest date
.S X=$$FMTE^XLFDT($P(+$O(^KMPD(8973.2,"C",0)),"."),2)
.S X=$S(X=0:"---",1:X)
.S TEXT=TEXT_$J(" ",45-$L(TEXT))_X
.; most recent date
.S X=$$FMTE^XLFDT($P(+$O(^KMPD(8973.2,"ASTDTTM","A"),-1),"."),2)
.S X=$S(X=0:"---",1:X)
.S TEXT=TEXT_$J(" ",55-$L(TEXT))_X
.S LN=LN+1
.D SET^VALM10(LN,TEXT)
;
Q
;
LEGEND ;-- display legend
;
S LN=LN+1
D SET^VALM10(LN,"")
S LN=LN+1
D SET^VALM10(LN,"")
I KMPDNMSP="H" D
.S LN=LN+1
.D SET^VALM10(LN," HL7 = Health Level Seven")
I KMPDNMSP="T" D
.S LN=LN+1
.D SET^VALM10(LN," TMG = Timing Data")
;
Q
;
OPT(KMPDOPT) ;-- option data
;-----------------------------------------------------------------------------
; KMPDOPT... Option name - free text
;-----------------------------------------------------------------------------
;
Q:$G(KMPDOPT)=""
;
N DIR,DOW,FREQ,KMPDX,KMPDX1,OPTEXT,STATUS,TEXT,X,Y
;
S STATUS=$$TSKSTAT^KMPDUTL1(KMPDOPT)
;
; option not in system
Q:(+STATUS)=3
;
S OPTEXT=""
S:KMPDOPT="KMPD BACKGROUND DRIVER" OPTEXT="CM Tools Background Driver"
S:KMPDOPT="KMPR BACKGROUND DRIVER" OPTEXT="RUM Background Driver"
S:KMPDOPT="KMPS SAGG REPORT" OPTEXT="SAGG Master Background Task"
;
; if background option is missing
I (+STATUS)=3 D Q
.S LN=LN+1
.D SET^VALM10(LN," The "_OPTEXT_" option [KMPD BACKGROUND DRIVER] is missing!")
;
; background option is present
;
; if cm tools and not scheduled or no task id
I KMPDOPT="KMPD BACKGROUND DRIVER"&(+(STATUS)=3) D Q:'Y
.K DIR S DIR(0)="YO",DIR("B")="YES"
.S DIR("A")="Do you want to queue this option to run each night at 1:30am"
.W ! D ^DIR I 'Y D Q
..S LN=LN+1
..D SET^VALM10(LN," The "_OPTEXT_" ["_KMPDOPT_"] is not scheduled")
..S LN=LN+1
..D SET^VALM10(LN," to run!"),SET^VALM10(LN,"")
.D QUEBKG^KMPDUTL("KMPD BACKGROUND DRIVER","T+1@0130","1D",0)
;
; if not scheduled or no task id
I KMPDOPT="KMPR BACKGROUND DRIVER"&(+(STATUS)=3) D Q:'Y
.K DIR S DIR(0)="YO",DIR("B")="YES"
.S DIR("A")="Do you want to queue this option to run each night at 1am"
.W ! D ^DIR I 'Y D Q
.. S LN=LN+1
..D SET^VALM10(LN," The "_OPTEXT_" ["_KMPDOPT_"] is not scheduled")
..S LN=LN+1
..D SET^VALM10(LN," to run!"),SET^VALM10(LN,"")
.D QUEBKG^KMPRUTL1
;
; check status again in case it has been requeued
S STATUS=$$TSKSTAT^KMPDUTL1(KMPDOPT)
;
; not scheduled
I (+STATUS)=1 S LN=LN+1 D SET^VALM10(LN," The "_OPTEXT_" [KMPD BACKGROUND DRIVER] is not scheduled") Q
;
S TEXT=" "_OPTEXT
S TEXT=TEXT_$$REPEAT^XLFSTR(".",31-$L(TEXT))
S TEXT=TEXT_" "_KMPDOPT
S LN=LN+1
D SET^VALM10(LN,TEXT)
S LN=LN+1
D SET^VALM10(LN," QUEUED TO RUN AT............ "_$P(STATUS,U,3))
S LN=LN+1
D SET^VALM10(LN," RESCHEDULING FREQUENCY...... "_$P(STATUS,U,5))
;
; check to see if SAGG is not running on the weekend (Fri-Sun)
S DOW=$P(STATUS,U,4),FREQ=$P(STATUS,U,6)
I KMPDOPT="KMPS SAGG REPORT" I (DOW<0)!((DOW>0)&(DOW<5))!(FREQ<0)!(FREQ'="28D") D
.S LN=LN+1
.D SET^VALM10(LN," ***It is STRONGLY recommended that this job be")
.S LN=LN+1
.D SET^VALM10(LN," rescheduled to run over the weekend every 28 days.***")
;
S LN=LN+1
D SET^VALM10(LN," TASK ID..................... "_$P(STATUS,U,7))
; user info.
S TEXT=" QUEUED BY................... "_$P(STATUS,U,8)
; user
S TEXT=TEXT_" ("_$S($P(STATUS,U,9)["NOT ACTIVE":"Not Active - ",1:"Active")_")"
S LN=LN+1
D SET^VALM10(LN,TEXT)
; if user is not active
I $P(STATUS,U,9)="NOT ACTIVE" D
.S LN=LN+1
.D SET^VALM10(LN," ***The user that originally queued this task is no ")
.S LN=LN+1
.D SET^VALM10(LN," longer active. Therefore the 'SAGG Master Background")
.S LN=LN+1
.D SET^VALM10(LN," Task' [KMPS SAGG REPORT] must be scheduled again by")
.S LN=LN=1
.D SET^VALM10(LN," an active user.***")
;
Q