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

LEXRXXT.m

Go to the documentation of this file.
  1. LEXRXXT ;ISL/KER - Repair/Re-Index - Task ;05/23/2017
  1. ;;2.0;LEXICON UTILITY;**81,103**;Sep 23, 1996;Build 2
  1. ;
  1. ; Global Variables
  1. ; ^LEX( SACC 1.3
  1. ; ^LEXT( SACC 1.3
  1. ; ^TMP("LEXRX",$J) SACC 2.3.2.5.1
  1. ; ^XTMP("LEXRX") SACC 2.3.2.5.2
  1. ;
  1. ; External References
  1. ; HOME^%ZIS ICR 10086
  1. ; ^%ZTLOAD ICR 10063
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ; $$NOW^XLFDT ICR 10103
  1. ;
  1. ; Local Variables NEWed or KILLed Elsewhere
  1. ; LEXAMSO User Selection NEWed/KILLed by LEXRX
  1. ; LEXFI File number NEWed/KILLed by LEXRX
  1. ; LEXINS Install Flag NEWed/KILLed by Post-Install
  1. ; LEXOK Continue flag NEWed/KILLed by LEXRX
  1. ;
  1. Q
  1. ALL ; Repair/Re-Index all Lexicon Files
  1. Q:+($G(LEXOK))'>0 Q:$G(LEXAMSO)'="A" N X,Y,ZTQUEUED,ZTREQ,ZTSK
  1. N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTPRI,LEXI,LEXU,LEXNAM
  1. N LEXC,LEXL,LEXENV,LEXTSK,LEXMSG,LEXSUBJ
  1. S LEXNAM="LEXRXALL" I $D(^XTMP(LEXNAM,0)) D PROG(LEXNAM) Q
  1. K ^TMP("LEXRX",$J) S LEXENV=$$ENV^LEXRXXM Q:+LEXENV'>0
  1. S LEXSUBJ="Lexicon - Repair/Re-Index All Files"
  1. S ZTRTN="ALLT^LEXRXXT2",ZTDESC="Lexicon Index Repair/Re-Index"
  1. S ZTPRI=4,ZTIO="",ZTDTH=$H S:$D(LEXINS) ZTSAVE("LEXINS")=""
  1. S ZTSAVE("DUZ")="",ZTSAVE("LEXAMSO")="",ZTSAVE("LEXSUBJ")=""
  1. S LEXMSG="When the task completes a message will be sent"
  1. S LEXMSG=LEXMSG_" to you reporting the results."
  1. D ^%ZTLOAD K LEXTSK I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . S LEXTSK(1)="A task has been created to repair the cross-references"
  1. . S LEXTSK(2)="in the major Lexicon files and to re-index the cross-"
  1. . S LEXTSK(3)="references of the supporting Lexicon files. This "
  1. . S LEXTSK(4)="will take several hours, however, users may be on the "
  1. . S LEXTSK(5)="system during this time. (Task #"_+($G(ZTSK))_"). "
  1. . S:$L($G(LEXMSG)) LEXTSK(6)=LEXMSG
  1. I $O(LEXTSK(0))>0&('$D(LEXINS)) D PR^LEXU(.LEXTSK,70)
  1. I '$D(LEXINS) S LEXI=0 F S LEXI=$O(LEXTSK(LEXI)) Q:+LEXI'>0 D
  1. . S LEXC=$$TM^LEXRXXM($G(LEXTSK(LEXI))) W:'$D(LEXINS) !," ",LEXC
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN S LEXI=0
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. MAJ ; Repair/Re-Index all Lookup Related Lexicon Files
  1. Q:+($G(LEXOK))'>0 Q:$G(LEXAMSO)'="M"
  1. N X,Y,ZTQUEUED,ZTREQ,ZTSK,ZTPRI,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,LEXI
  1. N LEXU,LEXC,LEXL,LEXENV,LEXTSK,LEXMSG,LEXSUBJ,LEXNAM
  1. S LEXNAM="LEXRXMAJ" I $D(^XTMP(LEXNAM,0)) D PROG(LEXNAM) Q
  1. S LEXSUBJ="Lexicon - Repair Major Files (larger files)"
  1. K ^TMP("LEXRX",$J) S LEXENV=$$ENV^LEXRXXM Q:+LEXENV'>0
  1. S ZTRTN="MAJT^LEXRXXT2",ZTDESC="Lexicon Look-up Index Repair"
  1. S ZTPRI=4,ZTIO="",ZTDTH=$H,ZTSAVE("DUZ")="",ZTSAVE("LEXAMSO")=""
  1. S ZTSAVE("LEXSUBJ")="" S:$D(LEXINS) ZTSAVE("LEXINS")=""
  1. S LEXMSG="When the task completes a message will be sent"
  1. S LEXMSG=LEXMSG_" to you reporting the results."
  1. D ^%ZTLOAD K LEXTSK I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . S LEXTSK(1)="A task has been created to repair the "
  1. . S LEXTSK(2)="cross-references of the major files in the Lexicon "
  1. . S LEXTSK(3)="(Task #"_+($G(ZTSK))_")."
  1. . S:$L($G(LEXMSG)) LEXTSK(4)=LEXMSG
  1. I $O(LEXTSK(0))>0&('$D(LEXINS)) D PR^LEXU(.LEXTSK,70)
  1. I '$D(LEXINS) S LEXI=0 F S LEXI=$O(LEXTSK(LEXI)) Q:+LEXI'>0 D
  1. . S LEXC=$$TM^LEXRXXM($G(LEXTSK(LEXI))) W:'$D(LEXINS) !," ",LEXC
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN S LEXI=0
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. SUP ; Re-Index all Supporting Lexicon Files (non-Lookup Related)
  1. Q:+($G(LEXOK))'>0 Q:$G(LEXAMSO)'="S" N X,Y,ZTQUEUED,ZTREQ,ZTSK
  1. N ZTDESC,ZTDTH,ZTIO,ZTPRI,ZTRTN,ZTSAVE,LEXI,LEXU,LEXC,LEXL,LEXENV
  1. N LEXTSK,LEXMSG,LEXSUBJ,LEXNAM
  1. S LEXNAM="LEXRXSUP" I $D(^XTMP(LEXNAM,0)) D PROG(LEXNAM) Q
  1. S LEXSUBJ="Lexicon - Re-Index Supporting Files (smaller files)"
  1. K ^TMP("LEXRX",$J) S LEXENV=$$ENV^LEXRXXM Q:+LEXENV'>0
  1. S ZTRTN="SUPT^LEXRXXT2",ZTDESC="Lexicon Look-up Index Repair"
  1. S ZTPRI=4,ZTIO="",ZTDTH=$H,ZTSAVE("DUZ")="",ZTSAVE("LEXAMSO")=""
  1. S ZTSAVE("LEXSUBJ")="" S:$D(LEXINS) ZTSAVE("LEXINS")=""
  1. S LEXMSG="When the task completes a message will be sent"
  1. S LEXMSG=LEXMSG_" to you reporting the results."
  1. D ^%ZTLOAD K LEXTSK I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . S LEXTSK(1)="A task has been created to re-index the "
  1. . S LEXTSK(2)="cross-references of the supporting files in the "
  1. . S LEXTSK(3)="Lexicon (Task #"_+($G(ZTSK))_")."
  1. . S:$L($G(LEXMSG)) LEXTSK(4)=LEXMSG
  1. I $O(LEXTSK(0))>0&('$D(LEXINS)) D PR^LEXU(.LEXTSK,70)
  1. I '$D(LEXINS) S LEXI=0 F S LEXI=$O(LEXTSK(LEXI)) Q:+LEXI'>0 D
  1. . S LEXC=$$TM^LEXRXXM($G(LEXTSK(LEXI))) W:'$D(LEXINS) !," ",LEXC
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN S LEXI=0
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. ONE ; Repair/Re-Index one file X
  1. Q:+($G(LEXOK))'>0 Q:$G(LEXAMSO)'="O" Q:'$L($G(LEXFI))
  1. S LEXFI=$G(LEXFI) Q:'$D(^LEX(LEXFI))&('$D(^LEXT(LEXFI)))
  1. N Y,ZTQUEUED,ZTREQ,ZTSK,ZTPRI,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,LEXI,LEXU
  1. N LEXC,LEXL,LEXENV,LEXTY,LEXUTY,LEXTSK,LEXMSG,LEXFN,LEXSUBJ,LEXNAM
  1. S LEXNAM="LEXRXONE" I $D(^XTMP(LEXNAM,0)) D PROG(LEXNAM) Q
  1. S LEXENV=$$ENV^LEXRXXM Q:+LEXENV'>0 S LEXTY=""
  1. I "^757^757.001^757.01^757.02^757.1^757.21^757.33^"[("^"_LEXFI_"^") D
  1. . S LEXTY="repair",LEXUTY="Repair"
  1. S:'$L(LEXTY) LEXTY="re-index",LEXUTY="Re-Index"
  1. S LEXFN=$$FN^LEXRXXM(LEXFI)
  1. S LEXSUBJ="Lexicon - "_LEXUTY_" the "_LEXFN_" file #"_LEXFI
  1. S ZTRTN="ONET^LEXRXXT2",ZTIO="",ZTDTH=$H,ZTPRI=4
  1. S ZTDESC="Lexicon Index Repair/Re-Index file "_LEXFI
  1. S:$D(LEXINS) ZTSAVE("LEXINS")=""
  1. S ZTSAVE("DUZ")="",ZTSAVE("LEXFI")="",ZTSAVE("LEXAMSO")=""
  1. S ZTSAVE("LEXSUBJ")="",ZTSAVE("LEXTY")="",ZTSAVE("LEXFN")=""
  1. S LEXMSG="When the task completes a message will be sent"
  1. S LEXMSG=LEXMSG_" to you reporting the results."
  1. D ^%ZTLOAD I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . S LEXTSK(1)="A task has been created to "_LEXTY_" the "
  1. . S LEXTSK(2)="cross-references in "_$S($L(LEXFN):"the ",1:"Lexicon ")
  1. . S LEXTSK(3)=$S($L(LEXFN):LEXFN,1:"")_" file #"_LEXFI_" "
  1. . S LEXTSK(4)="(Task #"_+($G(ZTSK))_")."
  1. . S:$L($G(LEXMSG)) LEXTSK(5)=LEXMSG
  1. I $O(LEXTSK(0))>0&('$D(LEXINS)) D PR^LEXU(.LEXTSK,70)
  1. I '$D(LEXINS) S LEXI=0 F S LEXI=$O(LEXTSK(LEXI)) Q:+LEXI'>0 D
  1. . S LEXC=$$TM^LEXRXXM($G(LEXTSK(LEXI))) W:'$D(LEXINS) !," ",LEXC
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN S LEXI=0
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. SET ; Set Logic Only
  1. Q:+($G(LEXFI))'>0 S LEXFI=+($G(LEXFI))
  1. Q:'$D(^LEX(LEXFI))&('$D(^LEXT(LEXFI)))
  1. N Y,ZTQUEUED,ZTREQ,ZTSK,ZTDESC,ZTDTH,ZTPRI,ZTIO,ZTRTN,ZTSAVE,LEXI,LEXU
  1. N LEXC,LEXL,LEXENV,LEXTY,LEXUTY,LEXTSK,LEXMSG,LEXFN,LEXSUBJ,LEXNAM
  1. N LEXQ,LEXSET S LEXNAM="LEXRXSET" S LEXENV=$$ENV^LEXRXXM Q:+LEXENV'>0
  1. S LEXQ="",ZTRTN="SET^LEXRXXT2",ZTIO="",ZTDTH=$H,LEXSET=""
  1. S ZTDESC="Re-Index file "_LEXFI_", Set Logic Only"
  1. S:$D(LEXINS) ZTSAVE("LEXINS")="" S ZTPRI=4
  1. S ZTSAVE("DUZ")="",ZTSAVE("LEXFI")="",ZTSAVE("LEXQ")=""
  1. S ZTSAVE("LEXSET")="" D ^%ZTLOAD I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . W !," Re-Index file "_LEXFI_", Set Logic Only (Task #"
  1. . W +($G(ZTSK)),")"
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. FIX ; Fix File and Execure Set Logic Only
  1. Q:+($G(LEXFI))'>0 S LEXFI=+($G(LEXFI))
  1. Q:'$D(^LEX(LEXFI))&('$D(^LEXT(LEXFI)))
  1. Q:"^757.001^757.21^757.33^"'[("^"_LEXFI_"^")
  1. N Y,ZTQUEUED,ZTREQ,ZTSK,ZTDESC,ZTPRI,ZTDTH,ZTIO,ZTRTN,ZTSAVE,LEXI,LEXU
  1. N LEXC,LEXL,LEXENV,LEXTY,LEXUTY,LEXTSK,LEXMSG,LEXFN,LEXSUBJ,LEXNAM
  1. N LEXQ,LEXSET,LEXFIX S LEXNAM="LEXRXFIX" S LEXENV=$$ENV^LEXRXXM
  1. Q:+LEXENV'>0 S LEXQ="",ZTRTN="FIX^LEXRXXT2",ZTIO="",ZTDTH=$H,ZTPRI=4
  1. S ZTDESC="Re-Index file "_LEXFI_", Set Logic Only"
  1. S (LEXSET,LEXFIX)="" S:$D(LEXINS) ZTSAVE("LEXINS")=""
  1. S ZTSAVE("DUZ")="",ZTSAVE("LEXFI")="",ZTSAVE("LEXQ")=""
  1. S ZTSAVE("LEXNAM")="",ZTSAVE("LEXSET")="",ZTSAVE("LEXFIX")=""
  1. D ^%ZTLOAD I +($G(ZTSK))>0&('$D(LEXINS)) D
  1. . W !," Fix/Re-Index file "_LEXFI_", Set Logic Only (Task #"
  1. . W +($G(ZTSK)),")"
  1. D HOME^%ZIS K ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. W:+($G(ZTSK))>0&('$D(LEXINS)) ! H:+($G(ZTSK))>0&('$D(LEXINS)) 1 K ZTSK
  1. Q
  1. ;
  1. ; Miscellaneous
  1. PROG(X) ; Progress
  1. N LEXNAME S LEXNAM=$G(X) Q:'$L(LEXNAM) Q:'$D(^XTMP(LEXNAM,0))
  1. N LEXBEG,LEXBEGE,LEXBEGD,LEXUPD,LEXUPDE,LEXUPDD,LEXDES,LEXACT,LEXCUR
  1. N LEXTSK,LEXNOW,LEXND S LEXNOW=$$NOW^XLFDT,LEXND=$G(^XTMP(LEXNAM,0))
  1. S LEXBEG=$P(LEXND,"^",3),LEXDES=$P(LEXND,"^",4)
  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 !!," Repair/Re-Index is in progress "
  1. I $L(LEXBEGE),$L(LEXDES) W !,?4,LEXDES,?49,"Started: ",LEXBEGE
  1. I $L(LEXUPDE),$L(LEXACT) W !,?5,LEXACT,?49,"Current: ",LEXUPDE
  1. I $L(LEXBEGD) W !,?49,"Running: ",LEXBEGD
  1. Q
  1. CLR ; Clear
  1. K LEXAMSO,LEXFI,LEXINS,LEXOK
  1. Q