Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: HMPMONJ

HMPMONJ.m

Go to the documentation of this file.
  1. HMPMONJ ;ASMR/BL, monitor job listing ;Sep 13, 2016 20:03:08
  1. ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2,3**;April 14,2016;Build 15
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. Q ; no entry from top
  1. ;DE6526 - routine refactored, 25 August 2016
  1. ;
  1. ;
  1. J ; polling job display
  1. ;in symbol table:
  1. ; HMPMNTR("server") = # of server record in file HMP Subscription (800000)
  1. ; HMPROMPT = current monitor prompt group
  1. ;
  1. D FORMFEED^HMPMONL ; clear screen before report
  1. N STREAM ; freshness stream subscript in ^XTMP
  1. W !,$$HDR^HMPMONL("eHMP Jobs"),! ; header line
  1. S STREAM=$$LASTREAM^HMPMONL ; get last freshness stream
  1. ;
  1. D POLLJOBS(STREAM) ; show stream's polling jobs
  1. D EXTRBTCH(STREAM) ; show extract batches
  1. W !! D RTRN2CON^HMPMONL
  1. Q
  1. ;
  1. ;
  1. POLLJOBS(STREAM) ; show stream's polling jobs
  1. ;
  1. Q:$G(STREAM)=""
  1. W !!,"Polling job#:"
  1. ;
  1. N JOBID,LINE,X,Y
  1. S JOBID=""
  1. F S JOBID=$O(^XTMP(STREAM,"job",JOBID)) Q:'JOBID D
  1. . S LINE=" "_JOBID
  1. . ; check if job is still active
  1. . S X=JOBID X ^%ZOSF("JOBPARAM") S:Y="" LINE=LINE_" (inactive)"
  1. . W !,LINE
  1. ;
  1. Q
  1. ;
  1. EXTRBTCH(STREAM) ; show extract batches
  1. ; STREAM - freshness stream
  1. ; called by:
  1. ; J
  1. ; ; symbol table:
  1. ; HMPMNTR("server") = # of server record in file HMP Subscription (800000)
  1. ; HMPROMPT = current dashboard prompt, ^ = exit now
  1. ; loop through extracts for this server
  1. ;
  1. N BATCH,BTCHCNT,C,EXIT,EXTRACTS,FRESHPRE,PIECE,SLOTS,TASK,TSKLST
  1. ; BTCHCNT - batch counter
  1. S SLOTS="Slots Open: "_$$SLOTS^HMPMONL ; # free slots, ^DD(3.54,1,0)="AVAILABLE SLOTS"
  1. S EXTRACTS="Extract Batches:",$E(EXTRACTS,80-$L(SLOTS),79)=SLOTS ; extracts summary
  1. W !!,EXTRACTS
  1. ;
  1. S (BTCHCNT,EXIT)=0,FRESHPRE=$$FRESHPRE^HMPMONL,BATCH=FRESHPRE
  1. F D Q:EXIT ; traverse batches
  1. . S BATCH=$O(^XTMP(BATCH)) ; get next batch
  1. . S:$E(BATCH,1,$L(FRESHPRE))'=FRESHPRE EXIT=1 Q ; done if it's a different freshness stream
  1. . S BTCHCNT=BTCHCNT+1 W !,$J($P(BATCH,"~",3),12)_" Tasks"
  1. . S TASK=0,TSKLST="",C=0 ; C is the count
  1. . F S TASK=$O(^XTMP(BATCH,0,"task",TASK)) Q:'TASK S C=C+1,$P(TSKLST,",",C)=TASK ; comma-delimited string of tasks
  1. . W !," "_C_" Task"_$E(C'=1,"s")_" found: "_TSKLST
  1. . I '$D(^XTMP(BATCH,0,"wait")) W !,"Waiting: "_$$WAIT(BATCH)_" seconds" Q
  1. . ;
  1. . I '$L(TSKLST) W !,"No tasks found for "_BATCH_" batch." Q
  1. . ;
  1. . ; each comma $piece of the list is a task #
  1. . F PIECE=1:1:$L(TSKLST,",") D
  1. .. S TASK=$P(TSKLST,",",PIECE) W !,"Task "_TASK_" extracting: "_$$LASTITEM(BATCH,TASK),! ; last item in batch
  1. ;
  1. I 'BTCHCNT W !," * No batches found. *",!
  1. Q
  1. ;
  1. WAIT(BATCH) ; function # seconds BATCH has waited
  1. ;
  1. N START S START=$G(^XTMP(BATCH,0,"time"))
  1. Q:'START 0 ; default to zero
  1. Q $$HDIFF^XLFDT($H,START,2) ; return wait time in seconds
  1. ;
  1. LASTITEM(BATCH,TASK) ; function, last domain retrieved for this BATCH and TASK
  1. Q:'$L($G(BATCH)) "*no batch*" ; batch required
  1. Q:'$G(TASK) "*no task*" ; task required
  1. N DOMAIN,LSTITM,NUM S LSTITM="",DOMAIN=""
  1. F D Q:DOMAIN=""!$L(LSTITM)
  1. . S DOMAIN=$O(^XTMP(BATCH,0,"status",DOMAIN)) Q:'$L(DOMAIN)
  1. . Q:$G(^XTMP(BATCH,0,"status",DOMAIN)) ; domain complete
  1. . S NUM=$O(^XTMP(BATCH,TASK,DOMAIN,""),-1) ; go to last entry
  1. . S LSTITM=DOMAIN_$S(NUM:" #"_NUM,1:"")
  1. ;
  1. S:LSTITM="" LSTITM="<finished>"
  1. Q LSTITM ; return last item
  1. ;