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

LEXRXXM2.m

Go to the documentation of this file.
  1. LEXRXXM2 ;ISL/KER - Re-Index Miscellaneous (cont) ;08/17/2011
  1. ;;2.0;LEXICON UTILITY;**81**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^TMP("LEXRX") SACC 2.3.2.5.1
  1. ; ^XTMP("LEXRX") SACC 2.3.2.5.2
  1. ;
  1. ; Special Variables
  1. ; DTIME SACC 2.3.1.5.3
  1. ;
  1. ; External References
  1. ; KILL^%ZTLOAD ICR 10063
  1. ; STAT^%ZTLOAD ICR 10063
  1. ; ^DIR ICR 10026
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ; $$NOW^XLFDT ICR 10103
  1. ;
  1. Q
  1. ; Miscellaneous
  1. CHECK(X) ; Check for Running
  1. ; Input
  1. ; None
  1. ; Output
  1. ; 0 Task is not Running
  1. ; 1 Task is Running
  1. N LEXIS,LEXII,LEXC,LEXCHK S LEXCHK="",LEXIS=$$IS,LEXII=$$II
  1. I +LEXIS>0,+LEXII>0 D Q
  1. . N LEXMSG S LEXMSG=$P(LEXII,"^",2)
  1. . W:$L(LEXMSG) !," ",LEXMSG
  1. Q:+LEXIS'>0 0 S LEXC=$$PROG^LEXRXXM2 W !
  1. Q 1
  1. MON ; Monitor Status of Re-Index
  1. N LEXC,LEXMON,LEXEXIT,LEXHT,LEXIS,LEXII,LEXNOW S LEXMON=0
  1. S LEXIS=$$IS,LEXII=$$II I +LEXIS'>0 D Q
  1. . W !," Lexicon cross-reference repair is not running"
  1. I +LEXIS>0,+LEXII>0 D Q
  1. . N LEXMSG S LEXMSG=$P(LEXII,"^",2)
  1. . W:$L(LEXMSG) !," ",LEXMSG
  1. W !!," Entering an Up-Arrow ""^"" to exit"
  1. S (LEXMON,LEXEXIT)=0
  1. F D Q:+LEXEXIT>0
  1. . N LEXC S LEXEXIT=$$PA(5) S LEXMON=LEXMON+1
  1. . S LEXC=$$PROG^LEXRXXM2 S:LEXC'>0 LEXEXIT=1
  1. S LEXNOW=$$IS I +($G(LEXIS))>0,+($G(LEXNOW))'>0 D
  1. . W !!," Lexicon cross-reference repair/re-index completed",!
  1. . S LEXEXIT=$$PA(1)
  1. Q
  1. PA(X) ; Pause
  1. N DTIME,DIR,DTOUT,DUOUT,DIRUT,DIROUT,LEXHT,Y S LEXHT=+($G(X))
  1. S:+LEXHT'>0 LEXHT=2 S DTIME=LEXHT
  1. S DIR(0)="FAO",(DIR("?"),DIR("??"))="",DIR("A")=""
  1. S DIR("PRE")="S:X[""?"" X=""^""" D ^DIR
  1. S:$D(DUOUT)!($D(DIROUT)) X="^" S:X'["^" X=0 S:X["^" X=1
  1. Q X
  1. IS(X) ; Task is Running
  1. N LEXO,LEXTSK,ZTSK,LEXMSG S LEXO="LEXRW~",LEXMSG=""
  1. F S LEXO=$O(^XTMP(LEXO)) Q:'$L(LEXO)!($E(LEXO,1,5)'="LEXRX") D
  1. . S LEXTSK=$G(^XTMP(LEXO,1)) Q:+LEXTSK'>0 N ZTSK S ZTSK=+LEXTSK
  1. . D STAT^%ZTLOAD Q:+($G(ZTSK(0)))'>0
  1. . I +($G(ZTSK(1)))>2,+($G(ZTSK(1)))'=5 D Q
  1. . . N ZTSK S ZTSK=+LEXTSK
  1. . . D:+($G(ZTSK(1)))'=5 KILL^%ZTLOAD
  1. . . K ^XTMP(LEXO)
  1. . S X=+($G(X))+1
  1. S X=+($G(X))
  1. Q X
  1. II(X) ; Inactive and Interrupted
  1. N LEXO,LEXTSK,ZTSK,LEXMSG S LEXO="LEXRW~",LEXMSG=""
  1. F S LEXO=$O(^XTMP(LEXO)) Q:'$L(LEXO)!($E(LEXO,1,5)'="LEXRX") D Q:$L(LEXMSG)
  1. . S LEXTSK=$G(^XTMP(LEXO,1)) Q:+LEXTSK'>0
  1. . N ZTSK S ZTSK=+LEXTSK
  1. . D STAT^%ZTLOAD Q:+($G(ZTSK(0)))'>0
  1. . S:+($G(ZTSK(1)))=5 LEXMSG="1^Task "_ZTSK_" was interrupted and is inactive"
  1. S X=$G(LEXMSG) S:'$L(X) X=0
  1. Q X
  1. PROG(X) ; Progress
  1. N LEXBEG,LEXBEGE,LEXBEGD,LEXUPD,LEXNAM,LEXO,LEXUPDE,LEXUPDD,LEXDES
  1. N LEXACT,LEXCUR,LEXTASK,LEXTSK,LEXNOW,LEXND S X=0
  1. S LEXO="LEXRW~" K LEXTASK
  1. F S LEXO=$O(^XTMP(LEXO)) Q:'$L(LEXO)!($E(LEXO,1,5)'="LEXRX") D
  1. . S LEXNAM=LEXO,LEXTSK=$G(^XTMP(LEXNAM,1))
  1. . Q:+LEXTSK'>0 N ZTSK S ZTSK=+LEXTSK
  1. . D STAT^%ZTLOAD Q:+($G(ZTSK(0)))'>0
  1. . I +($G(ZTSK(1)))>2 D Q
  1. . . N ZTSK S ZTSK=+LEXTSK
  1. . . D KILL^%ZTLOAD K ^XTMP(LEXNAM)
  1. . S LEXNOW=$$NOW^XLFDT,LEXND=$G(^XTMP(LEXNAM,0))
  1. . S LEXBEG=$P(LEXND,"^",3),LEXDES=$P(LEXND,"^",4)
  1. . Q:'$L(LEXDES)
  1. . S LEXTSK=$G(^XTMP(LEXNAM,1)),LEXND=$G(^XTMP(LEXNAM,2))
  1. . S LEXUPD=$P(LEXND,"^",1),LEXACT=$P(LEXND,"^",2)
  1. . S LEXBEGE=$$ED^LEXRXXM(LEXBEG),LEXUPDE=$$ED^LEXRXXM(LEXUPD)
  1. . S LEXBEGD=$$FMDIFF^XLFDT(LEXNOW,LEXBEG,3)
  1. . S LEXUPDD=$$FMDIFF^XLFDT(LEXNOW,LEXBEG,3)
  1. . S:$E(LEXBEGD,1)=" "&($E(LEXBEGD,3)=":") LEXBEGD=$TR(LEXBEGD," ","0")
  1. . S:$E(LEXUPDD,1)=" "&($E(LEXUPDD,3)=":") LEXUPDD=$TR(LEXUPDD," ","0")
  1. . W:$L($G(IOF))&('$D(LEXCHK)) @IOF I +($G(ZTSK(1)))=1 D Q
  1. . . W !!," ",LEXDES
  1. . . W !," The task is scheduled, waiting for an I/O device, a volume"
  1. . . W !," set link, or a partition in memory" S X=+($G(X))+1
  1. . I +($G(ZTSK(1)))=2 D Q
  1. . . W !!," Repair/Re-Index is in progress" S X=+($G(X))+1
  1. . . W !,?3,LEXDES W:$L(LEXBEGE) ?49,"Started: ",LEXBEGE
  1. . . I $L(LEXACT) D
  1. . . . W !,?5,LEXACT
  1. . . . W:$L(LEXUPDE) ?49,"Current: ",LEXUPDE
  1. . . W:$L(LEXBEGD)&(+($G(LEXMON))'>0) !,?49,"Running: ",LEXBEGD
  1. . . W:$L(LEXBEGD)&(+($G(LEXMON))>0) !,?7,"#",+($G(LEXMON)),?49,"Running: ",LEXBEGD
  1. S X=+($G(X))
  1. Q X
  1. CLR ; Clear
  1. Q