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

LEXXGI4.m

Go to the documentation of this file.
  1. LEXXGI4 ;ISL/KER - Global Import (Repair at Site) ;05/23/2017
  1. ;;2.0;LEXICON UTILITY;**51,80,103**;Sep 23, 1996;Build 2
  1. ;
  1. ; Global Variables
  1. ; ^TMP("LEXXGI4ASL") SACC 2.3.2.5.1
  1. ; ^TMP("LEXXGI4TIM") SACC 2.3.2.5.1
  1. ; ^TMP("LEXXGI4MSG") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; HOME^%ZIS ICR 10086
  1. ; ^%ZTLOAD ICR 10063
  1. ; ^DIC ICR 10006
  1. ; ^DIK ICR 10013
  1. ; ENALL^DIK ICR 10013
  1. ; IX1^DIK ICR 10013
  1. ; IXALL^DIK ICR 10013
  1. ; $$GET1^DIQ ICR 2056
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ; $$FMTE^XLFDT ICR 10103
  1. ; $$NOW^XLFDT ICR 10103
  1. ; $$UP^XLFSTR ICR 10104
  1. ; ^XMD ICR 10070
  1. ; MES^XPDUTL ICR 10141
  1. ;
  1. ; Local Variables NEWed or KILLed Elsewhere
  1. ;
  1. ; LEXLOUD NEWed, SET and KILLed in the Post-Install
  1. ; routine LEX20nnP. If set, the entry
  1. ; points ASL, AWRD, SSWRD and SUB will write
  1. ; to the screen using MES^XPDUTL.
  1. ;
  1. ; LEXXM Set and Killed by the developer, used to
  1. ; report the timing of the task in the
  1. ; global array ^TMP("LEXXGI4TIM",$J) and
  1. ; sent to the user by MailMan message
  1. ;
  1. ; LEXHOME Set and Killed by the developer in the
  1. ; post-install, used to send the timing
  1. ; message to G.LEXINS@FO-SLC.DOMAIN.EXT
  1. ; (see entry point POST2)
  1. ;
  1. Q
  1. POST ; Entry Point from Post-Install
  1. N LEXXM,LEXHOME K @("^TMP(""LEXXGI4TIM"","_$J_")")
  1. S LEXXM="" D AWRD^LEXXGI4
  1. Q
  1. POST2 ; Entry Point from Post-Install (home)
  1. N LEXXM,LEXHOME K @("^TMP(""LEXXGI4TIM"","_$J_")")
  1. S LEXHOME="",LEXXM="" D AWRD^LEXXGI4
  1. Q
  1. AWRD ; Repair Word Index AWRD in Expression file #757.01
  1. N Y,ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSAVE,ZTQUEUED,ZTREQ S ZTRTN="AWRDT^LEXXGI4"
  1. S ZTDESC="Repair the AWRD index in file #757.01"
  1. S LEXJ=+($G(LEXJ)) S:LEXJ'>0 LEXJ=$J S ZTSAVE("LEXJ")=""
  1. I $D(LEXXM) S LEXXM=1,ZTSAVE("LEXXM")=""
  1. S:$D(LEXHOME) ZTSAVE("LEXHOME")=""
  1. S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS I $D(LEXLOUD) D
  1. . S LEXT=" Repair the AWRD index in file #757.01 tasked"
  1. . S:+($G(ZTSK))>0 LEXT=LEXT_" (#"_+($G(ZTSK))_")" D MES^XPDUTL(LEXT)
  1. Q
  1. AWRDT ; Repair Word Index AWRD in Expression file #757.01 (task)
  1. ; Subset Indexes Axxx
  1. N DA,DIK,LEXBT1,LEXSB,LEXJ1 S LEXSB="WRD" S:$D(LEXXM) LEXXM=1
  1. S (LEXJ1,LEXJ)=+($G(LEXJ)) S:LEXJ'>0 (LEXJ1,LEXJ)=$J
  1. D:$D(LEXXM) KIL(LEXJ1)
  1. S LEXBT1=$$BEG("WRD",LEXJ1)
  1. H 2 D SSWRD^LEXXGI4
  1. ; Supplemental Words AWRD Index
  1. H 2 D SUPWRD^LEXXGI4
  1. ; Main Word AWRD Index
  1. H 2 D AWRDI
  1. ; Replacement Words
  1. H 2 D REP
  1. ; Update String Lengths
  1. H 2 D:'$D(LEXXM) ASL^LEXXGI4 I $D(LEXXM) D
  1. . N LEXJ S LEXJ=LEXJ1 D ASLT^LEXXGI4
  1. H 1 D END(LEXBT1,"WRD",LEXJ1) D:$D(LEXXM) XM(LEXJ1),KIL(LEXJ1)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. AWRDI ; Repair Word Index AWRD
  1. N DIK S DIK="^LEX(757.01,",DIK(1)="2^AWRD" D ENALL^DIK
  1. Q
  1. AWRDTIME ; Repair Word Index AWRD (timing)
  1. N LEXB,LEXE,LEXT S LEXB=$$NOW^XLFDT D AWRDI^LEXXGI4 S LEXE=$$NOW^XLFDT
  1. S LEXT=$TR($$FMDIFF^XLFDT(LEXE,LEXB,3)," ","0")
  1. W !," Repair Word Index AWRD",!
  1. W !," Start: ",$TR($$FMTE^XLFDT(LEXB,"5Z"),"@"," ")
  1. W !," Finish: ",$TR($$FMTE^XLFDT(LEXE,"5Z"),"@"," ")
  1. W !," Time: ",LEXT
  1. Q
  1. ;
  1. REP ; Replacement Words
  1. N DA,DIK,LEXBT2,LEXJ2
  1. S LEXJ2=+($G(LEXJ)) S:LEXJ2'>0 LEXJ2=$G(LEXJ1) S:LEXJ2'>0 LEXJ2=$J
  1. S:$D(LEXXM) LEXXM=1 S LEXBT2=$$BEG("REP",LEXJ2)
  1. S DIK="^LEX(757.05," D IXALL^DIK H 1 D END(LEXBT2,"REP",LEXJ2)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ;
  1. SUPWRD ; Repair Supplemental Word Index AWRD in file #757.01
  1. N Y,ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSAVE,ZTQUEUED,ZTREQ S ZTRTN="SUPWRDT^LEXXGI4"
  1. S ZTDESC="Repair the Supplemental Word Index in file #757.01"
  1. S LEXJ=+($G(LEXJ)) S:LEXJ'>0 LEXJ=$G(LEXJ1) S:LEXJ'>0 LEXJ=$J S ZTSAVE("LEXJ")=""
  1. I $D(LEXXM) S LEXXM=1,ZTSAVE("LEXXM")=""
  1. S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS I $D(LEXLOUD) D
  1. . S LEXT=" Repair the Supplemental Word Index in file #757.01 tasked"
  1. . S:+($G(ZTSK))>0 LEXT=LEXT_" (#"_+($G(ZTSK))_")" D MES^XPDUTL(LEXT)
  1. Q
  1. SUPWRDT ; Repair Supplemental Word Index AWRD in file #757.01 (task)
  1. N DA,DIK,LEXBT3,LEXI,LEXJ3
  1. S LEXJ3=+($G(LEXJ)) S:LEXJ3'>0 LEXJ3=$J
  1. S:$D(LEXXM) LEXXM=1 S LEXBT3=$$BEG("SUP",LEXJ3)
  1. S LEXI=0 F S LEXI=$O(^LEX(757.01,LEXI)) Q:+LEXI'>0 D
  1. . Q:$O(^LEX(757.01,LEXI,5,0))'>0
  1. . N LEXII S LEXII=0 F S LEXII=$O(^LEX(757.01,LEXI,5,LEXII)) Q:+LEXII'>0 D
  1. . . N X,DA S X=$G(^LEX(757.01,LEXI,5,LEXII,0)) Q:'$L(X)
  1. . . S DA(1)=LEXI,DA=LEXII D SSUP^LEXNDX6
  1. . Q S DIK(1)=".01^AWORD" D ENALL^DIK
  1. H:+($G(LEXXM))>0 2 D END(LEXBT3,"SUP",LEXJ3)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. SUPTIME ; Repair Supplemental Word Index AWRD (timing)
  1. N LEXB,LEXE,LEXT S LEXB=$$NOW^XLFDT D SUPWRDT^LEXXGI4 S LEXE=$$NOW^XLFDT
  1. S LEXT=$TR($$FMDIFF^XLFDT(LEXE,LEXB,3)," ","0")
  1. W !," Repair Supplemental Word Index AWRD",!
  1. W !," Start: ",$TR($$FMTE^XLFDT(LEXB,"5Z"),"@"," ")
  1. W !," Finish: ",$TR($$FMTE^XLFDT(LEXE,"5Z"),"@"," ")
  1. W !," Time: ",LEXT
  1. Q
  1. ;
  1. SSWRD ; Repair Word Index Axxx in Sub-Set file #757.21
  1. N Y,ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSAVE,ZTQUEUED,ZTREQ S ZTRTN="SSWRDT^LEXXGI4"
  1. S ZTDESC="Repair the Asub in file #757.21"
  1. S LEXJ=+($G(LEXJ)) S:LEXJ'>0 LEXJ=$G(LEXJ1) S:LEXJ'>0 LEXJ=$J S ZTSAVE("LEXJ")=""
  1. I $D(LEXXM) S LEXXM=1,ZTSAVE("LEXXM")=""
  1. S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS I $D(LEXLOUD) D
  1. . S LEXT=" Repair the Asub index in file #757.21 tasked"
  1. . S:+($G(ZTSK))>0 LEXT=LEXT_" (#"_+($G(ZTSK))_")" D MES^XPDUTL(LEXT)
  1. Q
  1. SSWRDT ; Repair Word Index Axxx in Sub-Set file #757.21 (task)
  1. N DA,DIK,LEXBT4,LEXJ4
  1. S LEXJ4=+($G(LEXJ)) S:LEXJ4'>0 LEXJ4=$J
  1. S:$D(LEXXM) LEXXM=1 S LEXBT4=$$BEG("SUB",LEXJ4)
  1. N IEN S IEN=0 F S IEN=$O(^LEX(757.21,IEN)) Q:+IEN'>0 D
  1. . N DA,X S DA=IEN,X=$P($G(^LEX(757.21,IEN,0)),"^",2) D:$L(X) SS^LEXNDX2
  1. . Q S X=$P($G(^LEX(757.21,IEN,0)),"^",1) I $L(X),+X>0 D
  1. . . S ^LEX(757.21,"B",$E(X,1,30),DA)=""
  1. . . S ^LEX(757.21,"C",$E($$UP^XLFSTR(^LEX(757.01,X,0)),1,63),DA)=""
  1. H:+($G(LEXXM))>0 2 D END(LEXBT4,"SUB",LEXJ4)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. SSTIME ; Repair Word Index Axxx in Sub-Set file #757.21 (timing)
  1. N LEXB,LEXE,LEXT S LEXB=$$NOW^XLFDT D SSWRDT^LEXXGI4 S LEXE=$$NOW^XLFDT
  1. S LEXT=$TR($$FMDIFF^XLFDT(LEXE,LEXB,3)," ","0")
  1. W !," Repair Word Index Axxx in Sub-Set file",!
  1. W !," Start: ",$TR($$FMTE^XLFDT(LEXB,"5Z"),"@"," ")
  1. W !," Finish: ",$TR($$FMTE^XLFDT(LEXE,"5Z"),"@"," ")
  1. W !," Time: ",LEXT
  1. Q
  1. ;
  1. ASL ; Recalculate ASL cross-reference
  1. N Y,ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSAVE,ZTQUEUED,ZTREQ S ZTRTN="ASLT^LEXXGI4"
  1. S ZTDESC="Recalculate ASL index in Expression file #757.01"
  1. S LEXJ=+($G(LEXJ)) S:LEXJ'>0 LEXJ=$G(LEXJ1) S:LEXJ'>0 LEXJ=$J S ZTSAVE("LEXJ")=""
  1. I $D(LEXXM) S LEXXM=1,ZTSAVE("LEXXM")=""
  1. S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS I $D(LEXLOUD) D
  1. . S LEXT=" Re-index the ASL index of file #757.01 tasked"
  1. . S:+($G(ZTSK))>0 LEXT=LEXT_" (#"_+($G(ZTSK))_")" D MES^XPDUTL(LEXT)
  1. Q
  1. ASLT ; Recalculate ASL cross-reference (task)
  1. K ^TMP("LEXXGI4ASL",$J,"ASL") N LEXTK,LEXFIR,LEXFC,LEXBT5,LEXJ5
  1. S LEXJ5=+($G(LEXJ)) S:LEXJ5'>0 LEXJ5=$J S (LEXFIR,LEXFC,LEXTK)=""
  1. S:$D(LEXXM) LEXXM=1 S LEXBT5=$$BEG("ASL",LEXJ5)
  1. F S LEXTK=$O(^LEX(757.01,"AWRD",LEXTK)) Q:'$L(LEXTK) D
  1. . N LEXP,LEXS,LEXC,LEXF,LEXTKN S LEXTKN=LEXTK
  1. . F Q:$E(LEXTKN,1)'=" " S LEXTKN=$E(LEXTKN,2,$L(LEXTKN))
  1. . F Q:$E(LEXTKN,$L(LEXTKN))'=" " S LEXTKN=$E(LEXTKN,1,($L(LEXTKN)-1))
  1. . S LEXF=$E(LEXTKN,1)
  1. . W:'$D(ZTQUEUED)&(LEXFIR'=LEXF)&(LEXFC'[LEXF) LEXF
  1. . S LEXFIR=LEXF S:LEXFC'[LEXF LEXFC=LEXFC_LEXF
  1. . F LEXP=1:1:$L(LEXTKN) S LEXS=$E(LEXTKN,1,LEXP) D
  1. . . Q:'$L($G(LEXS)) Q:$D(^TMP("LEXXGI4ASL",$J,"ASL",LEXS))
  1. . . S LEXC=$$ASLC(LEXS)
  1. . . I LEXC>0 K ^LEX(757.01,"ASL",LEXS) D
  1. . . . K ^LEX(757.01,"ASL",LEXS)
  1. . . . S ^LEX(757.01,"ASL",LEXS,LEXC)=""
  1. . . S ^TMP("LEXXGI4ASL",$J,"ASL",LEXS)=""
  1. K ^TMP("LEXXGI4ASL",$J,"ASL")
  1. H:+($G(LEXXM))>0 2 D END(LEXBT5,"ASL",LEXJ5)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ASLC(X) ; Recalculate ASL cross-reference (String Counter)
  1. N LEXC,LEXTK,LEXTKN,LEXO,LEXT,LEXS,LEXP
  1. S (LEXC,LEXTK)=$$UP^XLFSTR($G(X)),LEXT=0 Q:'$L(LEXTK) 0
  1. S:$L(LEXTK)>1 LEXO=$E(LEXTK,1,($L(LEXTK)-1))_$C(($A($E(LEXTK,$L(LEXTK)))-1))_"~"
  1. S:$L(LEXTK)=1 LEXO=$C(($A(LEXTK)-1))_"~"
  1. F S LEXO=$O(^LEX(757.01,"AWRD",LEXO)) Q:'$L(LEXO) Q:$E(LEXO,1,$L(LEXC))'=LEXC D
  1. . N LEXM S LEXM=0 F S LEXM=$O(^LEX(757.01,"AWRD",LEXO,LEXM)) Q:+LEXM'>0 D
  1. . . N LEXE S LEXE=0 F S LEXE=$O(^LEX(757.01,"AWRD",LEXO,LEXM,LEXE)) Q:+LEXE'>0 D
  1. . . . S LEXT=LEXT+1
  1. S X=LEXT
  1. Q X
  1. ASLTIME ; Recalculate ASL cross-reference (timing)
  1. N LEXB,LEXE,LEXT S LEXB=$$NOW^XLFDT D ASLT^LEXXGI4 S LEXE=$$NOW^XLFDT
  1. S LEXT=$TR($$FMDIFF^XLFDT(LEXE,LEXB,3)," ","0")
  1. W !," Recalculate ASL cross-reference",!
  1. W !," Start: ",$TR($$FMTE^XLFDT(LEXB,"5Z"),"@"," ")
  1. W !," Finish: ",$TR($$FMTE^XLFDT(LEXE,"5Z"),"@"," ")
  1. W !," Time: ",LEXT
  1. Q
  1. ;
  1. SUB ; Repair Subset Cross-References
  1. N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,LEXT S ZTRTN="SUBT^LEXXGI4"
  1. S ZTDESC="Re-Index the Subsets file #757.21 (set logic only)"
  1. S LEXJ=+($G(LEXJ)) S:LEXJ'>0 LEXJ=$G(LEXJ1) S:LEXJ'>0 LEXJ=$J S ZTSAVE("LEXJ")=""
  1. I $D(LEXXM) S LEXXM=1,ZTSAVE("LEXXM")=""
  1. S ZTIO="",ZTDTH=$H D ^%ZTLOAD I $D(LEXLOUD) D
  1. . S LEXT=" Re-index file #757.21 tasked"
  1. . S:+($G(ZTSK))>0 LEXT=LEXT_" (#"_+($G(ZTSK))_")" D MES^XPDUTL(LEXT)
  1. Q
  1. SUBT ; Repair Subset Cross-References (task)
  1. N LEXP3,LEXP4,LEXIEN,LEXBT6,LEXJ6 S:$D(LEXXM) LEXXM=1
  1. S LEXJ6=+($G(LEXJ)) S:LEXJ6'>0 LEXJ6=$J
  1. S (LEXP3,LEXP4,LEXIEN)=0,LEXBT6=$$BEG("SSS",LEXJ6)
  1. F S LEXIEN=$O(^LEX(757.21,LEXIEN)) Q:+LEXIEN'>0 D
  1. . N DA,DIK S DA=+($G(LEXIEN)) D SUBFIX(DA) Q:'$D(^LEX(757.21,+LEXIEN,0))
  1. . S LEXP3=LEXIEN,LEXP4=LEXP4+1
  1. . S DA=LEXIEN,DIK="^LEX(757.21," D IX1^DIK
  1. S:LEXP3>0 $P(^LEX(757.21,0),"^",3)=LEXP3
  1. S:LEXP4>0 $P(^LEX(757.21,0),"^",4)=LEXP4
  1. H:+($G(LEXXM))>0 2 D END(LEXBT6,"SSS",LEXJ6)
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. SUBFIX(X) ; Repair Subset Cross-References (Fix 757.21)
  1. N DA,DIK,LEXEXP,LEXDFL S DA=+($G(X))
  1. Q:+DA'>0 Q:'$D(^LEX(757.21,+DA,0))
  1. S LEXEXP=+$G(^LEX(757.21,+DA,0))
  1. S LEXDFL=$P($G(^LEX(757.01,+LEXEXP,1)),"^",5)
  1. Q:+LEXDFL'>0 S DIK="^LEX(757.21," D ^DIK
  1. Q
  1. ;
  1. XM(X) ; Mail Message
  1. N LEX1,LEX2,LEXB,LEXC,LEXD,LEXE,LEXJ,LEXMAIL,LEXN
  1. N LEXPRE,LEXNEW,LEXS,LEXT,LEXX,LEXI,LEXNM,XCNP
  1. N XMDUZ,XMSCR,XMSUB,XMTEXT,XMY,XMZ S:$D(LEXXM) LEXMAIL=""
  1. Q:'$D(LEXMAIL)&$D(ZTQUEUED) S LEX1=9999999,LEX2="",LEXJ=+($G(X))
  1. Q:LEXJ'>0 Q:'$D(^TMP("LEXXGI4TIM",LEXJ))
  1. D XMG I LEX1'=9999999,$P(LEX1,".",1)?7N,$P(LEX2,".",1)?7N D
  1. . Q:$O(^TMP("LEXXGI4TIM",LEXJ,""))=$O(^TMP("LEXXGI4TIM",LEXJ,""),-1)
  1. . N LEXN,LEXD,LEXB,LEXE,LEXT,LEXX
  1. . S LEXN="Total Time",LEXD=$TR($$FMTE^XLFDT(LEX1,"5Z"),"@"," ")
  1. . S LEXB=$P(LEXD," ",2),LEXE=$TR($$FMTE^XLFDT(LEX2,"5Z"),"@"," ")
  1. . S LEXE=$P(LEXE," ",2),LEXT=$$FMDIFF^XLFDT(LEX2,LEX1,3)
  1. . S LEXD=$P($TR($$FMTE^XLFDT(LEX1,"5Z"),"@"," ")," ",1)
  1. . S:$L(LEXT)'>8 LEXT=$TR(LEXT," ","0")
  1. . I $L($G(LEXPRE)),+($G(LEXPRE))>0,LEXD=$G(LEXPRE) S LEXD=" "" "" "
  1. . S LEXX=LEXN,LEXX=LEXX_$J(" ",(33-$L(LEXX)))_LEXD
  1. . S LEXX=LEXX_$J(" ",(45-$L(LEXX)))_LEXB
  1. . S LEXX=LEXX_$J(" ",(55-$L(LEXX)))_LEXE
  1. . S LEXX=LEXX_$J(" ",(65-$L(LEXX)))_LEXT
  1. . D XMB((" "_LEXX),LEXJ)
  1. D:$D(LEXMAIL) XMS(LEXJ)
  1. Q
  1. XMG ; Get Data for Message
  1. N LEXS,LEXC S LEXPRE="",LEXC=0 F LEXS="WRD","SUB","SUP","REP","ASL","SSS" D
  1. . N LEXD,LEXB,LEXE,LEXN,LEXNEW,LEXT,LEXX
  1. . S LEXD=$P($G(^TMP("LEXXGI4TIM",LEXJ,LEXS,"BEG")),"^",1)
  1. . S:+LEXD>0&(+LEXD<LEX1) LEX1=LEXD
  1. . S LEXD=$TR($$FMTE^XLFDT(LEXD,"5Z"),"@"," ")
  1. . S LEXB=$P(LEXD," ",2)
  1. . S (LEXNEW,LEXD)=$P(LEXD," ",1)
  1. . S LEXE=$P($G(^TMP("LEXXGI4TIM",LEXJ,LEXS,"END")),"^",1)
  1. . S:+LEXE>LEX2 LEX2=LEXE
  1. . S LEXE=$TR($$FMTE^XLFDT(LEXE,"5Z"),"@"," ")
  1. . S LEXE=$P(LEXE," ",2)
  1. . S LEXT=$G(^TMP("LEXXGI4TIM",LEXJ,LEXS,"TIM"))
  1. . Q:'$L(LEXB)
  1. . S:LEXS="SUB" LEXN="Sub-Sets 757.21 ""Axxx"""
  1. . S:LEXS="SSS" LEXN="Sub-Sets 757.21 ""Axxx"""
  1. . S:LEXS="SUP" LEXN="Supplemental 757.18 ""AWRD"""
  1. . S:LEXS="WRD" LEXN="Expression 757.01 ""AWRD"""
  1. . S:LEXS="REP" LEXN="Replacements 757.05 ""AWRD"""
  1. . S:LEXS="ASL" LEXN="String Length 757.01 ""ASL"""
  1. . S:'$L(LEXE) LEXE=" "
  1. . S:'$L(LEXT) LEXT=" "
  1. . S:LEXD=LEXPRE LEXD=" "" "" "
  1. . S LEXPRE=LEXNEW
  1. . S LEXX=LEXN,LEXX=LEXX_$J(" ",(33-$L(LEXX)))_LEXD
  1. . S LEXX=LEXX_$J(" ",(45-$L(LEXX)))_LEXB
  1. . S LEXX=LEXX_$J(" ",(55-$L(LEXX)))_LEXE
  1. . S LEXX=LEXX_$J(" ",(65-$L(LEXX)))_LEXT
  1. . S LEXC=LEXC+1 I LEXC=1 D
  1. . . D:$D(LEXMAIL) XMB(" ",LEXJ)
  1. . . D XMB(" Repair/Re-Index Index Date Start Finish Elapsed",LEXJ)
  1. . . D XMB(" ----------------------- ------ ---------- -------- -------- --------",LEXJ)
  1. . D XMB((" "_LEXX),LEXJ)
  1. . Q
  1. Q
  1. XMB(X,Y) ; Build Message
  1. N LEXJ S X=$G(X),LEXJ=+($G(Y)) I '$D(LEXMAIL) W:'$D(ZTQUEUED) !,X Q
  1. Q:+LEXJ'>0 N LEXI S LEXI=$O(^TMP("LEXXGI4MSG",LEXJ," "),-1)+1
  1. S ^TMP("LEXXGI4MSG",LEXJ,+LEXI)=$G(X),^TMP("LEXXGI4MSG",LEXJ,0)=LEXI
  1. Q
  1. XMS(X) ; Send Message
  1. N XCNP,XMSCR,XMDUZ,XMY,XMZ,XMSUB,XMTEXT,XMDUZ,LEXJ,LEXNM
  1. S LEXJ=+($G(X)) Q:+LEXJ'>0 Q:'$D(^TMP("LEXXGI4MSG",LEXJ))
  1. S XMTEXT="^TMP(""LEXXGI4MSG"","_LEXJ_",",XMSUB="Repair Major Word Indexes"
  1. S LEXNM=$$GET1^DIQ(200,+($G(DUZ)),.01) I '$L(LEXNM) K ^TMP("LEXXGI4MSG",LEXJ) Q
  1. S:$D(LEXHOME) XMY(("G.LEXINS@"_$$XMA))="" S XMY(LEXNM)="",XMDUZ=.5 D ^XMD
  1. K ^TMP("LEXXGI4MSG",LEXJ),LEXNM
  1. Q
  1. XMA(LEX) ; Message Address
  1. N DIC,DTOUT,DUOUT,X,Y S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="FO-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
  1. S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="ISC-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
  1. Q "ISC-SLC.DOMAIN.EXT"
  1. ;
  1. ; Miscellaneous
  1. BEG(X,Y) ; Begin Process - Subscript, Job
  1. N SUB,JNM S SUB=$G(X),X=$$NOW^XLFDT,JNM=+($G(Y)) S:JNM'>0 JNM=$J I +($G(LEXXM))>0,$L(SUB) D
  1. . S @("^TMP(""LEXXGI4TIM"","_+($G(JNM))_","""_SUB_""",""BEG"")")=X_"^"_$TR($$FMTE^XLFDT(X,"5Z"),"@"," ")
  1. Q X
  1. END(X,Y,Z) ; End Process - Begin, Subscript, Job
  1. N BEG,ELP,END,ELP,SUB,JNM S BEG=$G(X),SUB=$G(Y),JNM=+($G(Z)) S:JNM'>0 JNM=$J H 2 S END=$$NOW^XLFDT
  1. S ELP="" S:+BEG>0&(+END>0) ELP=$TR($$FMDIFF^XLFDT(END,BEG,3)," ","0") I +($G(LEXXM))>0,$L(SUB),$L(ELP) D
  1. . S @("^TMP(""LEXXGI4TIM"","_+($G(JNM))_","""_SUB_""",""BEG"")")=BEG_"^"_$TR($$FMTE^XLFDT(BEG,"5Z"),"@"," ")
  1. . S @("^TMP(""LEXXGI4TIM"","_+($G(JNM))_","""_SUB_""",""END"")")=END_"^"_$TR($$FMTE^XLFDT(END,"5Z"),"@"," ")
  1. . S @("^TMP(""LEXXGI4TIM"","_+($G(JNM))_","""_SUB_""",""TIM"")")=ELP
  1. Q X
  1. KIL(X) ; Kill ^TMP("LEXXGI4TIM",$J)
  1. N JNM S JNM=$G(X) S:JNM'>0 JNM=$J I +($G(LEXXM))>0 D
  1. . K @("^TMP(""LEXXGI4TIM"","_+($G(JNM))_")")
  1. . K @("^TMP(""LEXXGI4TIM"","_$J_")")
  1. Q
  1. CLR ; Clear Variables
  1. K LEXLOUD,LEXTEST,LEXJ,LEXXM,LEXHOME
  1. Q