| 1 | LEXNDX3 ; ISL Set/kill indexes (Part 3) Link       ; 09-23-96
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | S ; Set indexes for file 757.05
 | 
|---|
| 5 |  Q:('$D(DA))!('$D(X))
 | 
|---|
| 6 |  S DIC="^LEX(757.05,"
 | 
|---|
| 7 |  N LEXREP,LEXBY,LEXOLDX,LEXEXCL,LEXCTR,LEXREC
 | 
|---|
| 8 |  S LEXOLDX=X I X="R" D SREP Q
 | 
|---|
| 9 |  S LEXREP=$P(@(DIC_DA_",0)"),U,1),LEXBY=$P(@(DIC_DA_",0)"),U,2)
 | 
|---|
| 10 |  Q:LEXREP=""!(LEXBY="")
 | 
|---|
| 11 |  I X="N" D UNLINK^LEXNDX4 Q
 | 
|---|
| 12 |  I X="L",$D(^LEX(757.05,DA,1,1,0)) D RELINK^LEXNDX4 Q
 | 
|---|
| 13 |  D EXCL^LEXNDX5 I 'LEXEXCL S LEXOLDX="L" D LINK^LEXNDX4
 | 
|---|
| 14 |  I LEXEXCL,'$D(^LEX(757.01,"AWRD",LEXREP)) D ANYWAY^LEXNDX5 I 'LEXEXCL S LEXOLDX="L" D LINK^LEXNDX4
 | 
|---|
| 15 |  S:LEXEXCL LEXOLDX="R" S X=LEXOLDX,$P(^LEX(757.05,DA,0),U,3)=X
 | 
|---|
| 16 |  K LEXREP,LEXBY,LEXOLDX,LEXEXCL,LEXCTR,LEXREC
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | SREP ; Set indexes for Replacement Words
 | 
|---|
| 19 |  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
 | 
|---|
| 20 |  I $D(^LEX(757.01,"B",LEXEX)) D
 | 
|---|
| 21 |  . S LEXEXR=$O(^LEX(757.01,"B",LEXEX,0))
 | 
|---|
| 22 |  . I +LEXEXR>0,$D(^LEX(757.01,LEXEXR)),+(^LEX(757,+(^LEX(757.01,LEXEXR,1)),0))'=LEXEXR D
 | 
|---|
| 23 |  . . S X=LEXEX
 | 
|---|
| 24 |  . . D PTX^LEXTOLKN
 | 
|---|
| 25 |  . . I $D(^TMP("LEXTKN",$J,0)),^TMP("LEXTKN",$J,0)>0 S LEXI="" F LEXJ=1:1:^TMP("LEXTKN",$J,0) D
 | 
|---|
| 26 |  . . . S LEXI=$O(^TMP("LEXTKN",$J,LEXJ,"")) I '$D(^LEX(757.01,"AWRD",LEXI,LEXEXR)) D
 | 
|---|
| 27 |  . . . . N LEXYPE,LEXT S LEXYPE=+($P($G(^LEX(757.01,LEXEXR,1)),U,2)) Q:LEXYPE'>0
 | 
|---|
| 28 |  . . . . S LEXT=+($P($G(^LEX(757.011,LEXYPE,0)),"^",2)) Q:LEXT=0
 | 
|---|
| 29 |  . . . . S ^LEX(757.01,"AWRD",LEXI,LEXEXR,"LINKED")=""
 | 
|---|
| 30 |  . . K LEXI,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J)
 | 
|---|
| 31 |  K LEXRE,LEXEX,LEXEXR
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 | K ; Kill indexes for file 757.05
 | 
|---|
| 34 |  Q:$D(DIC)#2=0!('$D(DA))!('$D(X))
 | 
|---|
| 35 |  N LEXREP,LEXBY,LEXOLDX
 | 
|---|
| 36 |  S LEXOLDX=X I X="R" D KREP Q
 | 
|---|
| 37 |  S LEXREP=$P(@(DIC_DA_",0)"),U,1),LEXBY=$P(@(DIC_DA_",0)"),U,2)
 | 
|---|
| 38 |  D UNLINK^LEXNDX4
 | 
|---|
| 39 |  K LEXREP,LEXBY,LEXOLDX
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | KREP ; Kill indexes for Replacement Words
 | 
|---|
| 42 |  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
 | 
|---|
| 43 |  I $D(^LEX(757.01,"B",LEXEX)) D
 | 
|---|
| 44 |  . S LEXEXR=$O(^LEX(757.01,"B",LEXEX,0))
 | 
|---|
| 45 |  . I +LEXEXR>0,$D(^LEX(757.01,LEXEXR)),+(^LEX(757,+(^LEX(757.01,LEXEXR,1)),0))'=LEXEXR D
 | 
|---|
| 46 |  . . S X=LEXEX
 | 
|---|
| 47 |  . . D PTX^LEXTOLKN
 | 
|---|
| 48 |  . . I $D(^TMP("LEXTKN",$J,0)),^TMP("LEXTKN",$J,0)>0 S LEXI="" F LEXJ=1:1:^TMP("LEXTKN",$J,0) D
 | 
|---|
| 49 |  . . . S LEXI=$O(^TMP("LEXTKN",$J,LEXJ,"")) I $D(^LEX(757.01,"AWRD",LEXI,LEXEXR)) D
 | 
|---|
| 50 |  . . . . K ^LEX(757.01,"AWRD",LEXI,LEXEXR,"LINKED")
 | 
|---|
| 51 |  . . K LEXI,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J)
 | 
|---|
| 52 |  K LEXRE,LEXEX,LEXEXR
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | RE ; Reindex (Kill/Set) Replacement Words
 | 
|---|
| 55 |  N LEXDA,LEXDIC S LEXDA=0,LEXDIC="^LEX(757.05,"
 | 
|---|
| 56 |  F  S LEXDA=$O(^LEX(757.05,LEXDA)) Q:+LEXDA=0  D
 | 
|---|
| 57 |  . S DA=LEXDA,DIC=LEXDIC D KILL^LEXNDX2 S DA=LEXDA,DIC=LEXDIC D SET^LEXNDX2
 | 
|---|
| 58 |  K LEXDA,LEXDIC,DA,DIC
 | 
|---|
| 59 |  Q
 | 
|---|