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

LEXNDX3.m

Go to the documentation of this file.
  1. LEXNDX3 ;ISL/KER - Set/kill indexes (Part 3) Link ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.011) N/A
  1. ; ^TMP("LEXTKN") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; None
  1. ;
  1. S ; Set indexes for file 757.05
  1. Q:('$D(DA))!('$D(X))
  1. S DIC="^LEX(757.05,"
  1. N LEXREP,LEXBY,LEXOLDX,LEXEXCL,LEXCTR,LEXREC
  1. S LEXOLDX=X I X="R" D SREP Q
  1. S LEXREP=$P(@(DIC_DA_",0)"),U,1),LEXBY=$P(@(DIC_DA_",0)"),U,2)
  1. Q:LEXREP=""!(LEXBY="")
  1. I X="N" D UNLINK^LEXNDX4 Q
  1. I X="L",$D(^LEX(757.05,DA,1,1,0)) D RELINK^LEXNDX4 Q
  1. D EXCL^LEXNDX5 I 'LEXEXCL S LEXOLDX="L" D LINK^LEXNDX4
  1. I LEXEXCL,'$D(^LEX(757.01,"AWRD",LEXREP)) D ANYWAY^LEXNDX5 I 'LEXEXCL S LEXOLDX="L" D LINK^LEXNDX4
  1. S:LEXEXCL LEXOLDX="R" S X=LEXOLDX,$P(^LEX(757.05,DA,0),U,3)=X
  1. K LEXREP,LEXBY,LEXOLDX,LEXEXCL,LEXCTR,LEXREC
  1. Q
  1. SREP ; Set indexes for Replacement Words
  1. N LEXEX,LEXRE S LEXEX=$P(^LEX(757.05,DA,0),U,2),LEXRE=$P(^LEX(757.05,DA,0),U,1) I LEXEX=""!(LEXRE="") K LEXRE,LEXEX Q
  1. I $D(^LEX(757.01,"B",LEXEX)) D
  1. . S LEXEXR=$O(^LEX(757.01,"B",LEXEX,0))
  1. . I +LEXEXR>0,$D(^LEX(757.01,LEXEXR)),+(^LEX(757,+(^LEX(757.01,LEXEXR,1)),0))'=LEXEXR D
  1. . . S X=LEXEX D PTX^LEXTOKN
  1. . . I $D(^TMP("LEXTKN",$J,0)),^TMP("LEXTKN",$J,0)>0 S LEXI="",LEXJ=0 D
  1. . . . F S LEXJ=$O(^TMP("LEXTKN",$J,LEXJ)) Q:+LEXJ'>0 D
  1. . . . . S LEXI=$O(^TMP("LEXTKN",$J,LEXJ,"")) Q:'$L(LEXI) I '$D(^LEX(757.01,"AWRD",LEXI,LEXEXR)) D
  1. . . . . . N LEXYPE,LEXT S LEXYPE=+($P($G(^LEX(757.01,LEXEXR,1)),U,2)) Q:LEXYPE'>0
  1. . . . . . S LEXT=+($P($G(^LEX(757.011,LEXYPE,0)),"^",2)) Q:LEXT=0
  1. . . . . . S ^LEX(757.01,"AWRD",LEXI,LEXEXR,"LINKED")=""
  1. . . K LEXI,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J)
  1. K LEXRE,LEXEX,LEXEXR
  1. Q
  1. K ; Kill indexes for file 757.05
  1. Q:$D(DIC)#2=0!('$D(DA))!('$D(X))
  1. N LEXREP,LEXBY,LEXOLDX
  1. S LEXOLDX=X I X="R" D KREP Q
  1. S LEXREP=$P(@(DIC_DA_",0)"),U,1),LEXBY=$P(@(DIC_DA_",0)"),U,2)
  1. D UNLINK^LEXNDX4
  1. K LEXREP,LEXBY,LEXOLDX
  1. Q
  1. KREP ; Kill indexes for Replacement Words
  1. N LEXEX,LEXRE S LEXEX=$P(^LEX(757.05,DA,0),U,2),LEXRE=$P(^LEX(757.05,DA,0),U,1) I LEXEX=""!(LEXRE="") K LEXRE,LEXEX Q
  1. I $D(^LEX(757.01,"B",LEXEX)) D
  1. . S LEXEXR=$O(^LEX(757.01,"B",LEXEX,0))
  1. . I +LEXEXR>0,$D(^LEX(757.01,LEXEXR)),+(^LEX(757,+(^LEX(757.01,LEXEXR,1)),0))'=LEXEXR D
  1. . . S X=LEXEX D PTX^LEXTOKN
  1. . . I $D(^TMP("LEXTKN",$J,0)),^TMP("LEXTKN",$J,0)>0 S LEXI="",LEXJ=0 D
  1. . . . F S LEXJ=$O(^TMP("LEXTKN",$J,LEXJ)) Q:+LEXJ'>0 D
  1. . . . . S LEXI=$O(^TMP("LEXTKN",$J,LEXJ,"")) Q:'$L(LEXI)
  1. . . . . I $D(^LEX(757.01,"AWRD",LEXI,LEXEXR)) K ^LEX(757.01,"AWRD",LEXI,LEXEXR,"LINKED")
  1. . . K LEXI,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J)
  1. K LEXRE,LEXEX,LEXEXR
  1. Q
  1. RE ; Reindex (Kill/Set) Replacement Words
  1. N LEXDA,LEXDIC S LEXDA=0,LEXDIC="^LEX(757.05,"
  1. F S LEXDA=$O(^LEX(757.05,LEXDA)) Q:+LEXDA=0 D
  1. . S DA=LEXDA,DIC=LEXDIC D KILL^LEXNDX2 S DA=LEXDA,DIC=LEXDIC D SET^LEXNDX2
  1. K LEXDA,LEXDIC,DA,DIC
  1. Q