| 1 | LEXNDX1 ; ISL Set/kill indexes (Part 1)            ; 09-23-96
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | S ; Set Expression file (#757.01) word index node AWRD
 | 
|---|
| 5 |  Q:'$D(X)!('$D(DA))  Q:$D(DIC)#2=0
 | 
|---|
| 6 |  Q:'$D(@(DIC_DA_",0)"))  Q:'$D(@(DIC_DA_",1)"))  Q:+($P(@(DIC_DA_",1)"),U,1))=0
 | 
|---|
| 7 |  N LEXIDX,LEXJ,LEXI,LEXTYPE,LEXT S LEXTYPE=+X Q:LEXTYPE'>0
 | 
|---|
| 8 |  S LEXT=$P($G(^LEX(757.011,LEXTYPE,0)),"^",2) Q:+LEXT=0
 | 
|---|
| 9 |  S LEXTYPE=$P($G(^LEX(757.011,LEXTYPE,0)),"^",1) D:LEXTYPE["DELETED" U
 | 
|---|
| 10 |  S X=@(DIC_DA_",0)") S:X'="" ^LEX(757.01,"B",$$UP^XLFSTR($E(X,1,63)),DA)=""
 | 
|---|
| 11 |  S LEXEX=$P(^LEX(757,$P(^LEX(757.01,DA,1),U,1),0),U,1),LEXIDX=""
 | 
|---|
| 12 |  D PTX^LEXTOLKN
 | 
|---|
| 13 |  I $D(^TMP("LEXTKN",$J,0)),^TMP("LEXTKN",$J,0)>0 S LEXI="" F LEXJ=1:1:^TMP("LEXTKN",$J,0) D
 | 
|---|
| 14 |  . S LEXI=$O(^TMP("LEXTKN",$J,LEXJ,""))
 | 
|---|
| 15 |  . I '$D(^LEX(757.01,"AWRD",LEXI,LEXEX)) D
 | 
|---|
| 16 |  . . S:'$D(^LEX(757.01,DA,4,"B",LEXI)) ^LEX(757.01,"AWRD",LEXI,LEXEX,DA)=""
 | 
|---|
| 17 |  D L K LEXIDX,LEXEX,LEXI,LEXTYPE,LEXT,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J) Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | K ; Kill Expression file (#757.01) word index node AWRD
 | 
|---|
| 20 |  Q:'$D(X)!('$D(DA))  D U
 | 
|---|
| 21 |  Q:'$D(^LEX(757.01,DA,0))  Q:+($P(^LEX(757.01,DA,1),U,1))=0
 | 
|---|
| 22 |  N LEXTYPE,LEXT S LEXTYPE=+X Q:LEXTYPE'>0
 | 
|---|
| 23 |  S LEXT=$P($G(^LEX(757.011,LEXTYPE,0)),"^",2) Q:+LEXT=0
 | 
|---|
| 24 |  N LEXIDX,LEXJ,LEXI S X=^LEX(757.01,DA,0),LEXIDX=""
 | 
|---|
| 25 |  D PTX^LEXTOLKN 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,""))
 | 
|---|
| 27 |  . K ^LEX(757.01,"AWRD",LEXI,DA)
 | 
|---|
| 28 |  K LEXIDX,LEXTYPE,LEXI,LEXJ,^TMP("LEXTKN",$J,0),^TMP("LEXTKN",$J) Q
 | 
|---|
| 29 | L ; Link words
 | 
|---|
| 30 |  N DIC,LEXDEXP D KILL^LEXNDX2 S LEXDEXP=DA
 | 
|---|
| 31 |  ;     For Subsets
 | 
|---|
| 32 |  I $D(^LEX(757.21,"B",LEXDEXP)) D
 | 
|---|
| 33 |  . S DA=0 F  S DA=$O(^LEX(757.21,"B",LEXDEXP,DA)) Q:+DA=0  D
 | 
|---|
| 34 |  . . N X S X=$P(^LEX(757.21,DA,0),U,2) Q:+X<1  D SS^LEXNDX2
 | 
|---|
| 35 |  ;     For Replacement Words
 | 
|---|
| 36 |  I $D(^LEX(757.05,"AEXP",LEXDEXP)) D
 | 
|---|
| 37 |  . S DA=0 F  S DA=$O(^LEX(757.05,"AEXP",LEXDEXP,DA)) Q:+DA=0  D
 | 
|---|
| 38 |  . . N X,LEXMC S X=$P(^LEX(757.05,DA,0),U,1) Q:X=""
 | 
|---|
| 39 |  . . S LEXMC=$P($G(^LEX(757.01,LEXDEXP,1)),U,1) Q:+LEXMC'>0
 | 
|---|
| 40 |  . . S ^LEX(757.01,"AWRD",X,LEXDEXP,"LINKED")=""
 | 
|---|
| 41 |  S DA=LEXDEXP
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 | U ; Unlink words
 | 
|---|
| 44 |  N DIC,LEXDEXP D KILL^LEXNDX2 S LEXDEXP=DA
 | 
|---|
| 45 |  ;     For Subsets
 | 
|---|
| 46 |  I $D(^LEX(757.21,"B",LEXDEXP)) D
 | 
|---|
| 47 |  . S DA=0 F  S DA=$O(^LEX(757.21,"B",LEXDEXP,DA)) Q:+DA=0  D
 | 
|---|
| 48 |  . . N X S X=$P(^LEX(757.21,DA,0),U,2) Q:+X<1  D SK^LEXNDX2
 | 
|---|
| 49 |  ;     For Replacement Words
 | 
|---|
| 50 |  I $D(^LEX(757.05,"AEXP",LEXDEXP)) D
 | 
|---|
| 51 |  . S DA=0 F  S DA=$O(^LEX(757.05,"AEXP",LEXDEXP,DA)) Q:+DA=0  D
 | 
|---|
| 52 |  . . N X,LEXMC S X=$P(^LEX(757.05,DA,0),U,1) Q:X=""
 | 
|---|
| 53 |  . . S LEXMC=$P($G(^LEX(757.01,LEXDEXP,1)),U,1) Q:+LEXMC'>0
 | 
|---|
| 54 |  . . K ^LEX(757.01,"AWRD",X,LEXDEXP,"LINKED")
 | 
|---|
| 55 |  S DA=LEXDEXP
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 | REIDXMC ; Re-Index Expression file word index AWRD
 | 
|---|
| 58 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 59 |  N LEXIDX,LEXREIX,DA,X S DA=0,X="",(LEXREIX,LEXIDX)="" K ^TMP("LEXSTOP","REIDXMC")
 | 
|---|
| 60 |  F  S DA=$O(^LEX(757.01,DA)) Q:+DA=0!($D(^TMP("LEXSTOP","REIDXMC")))  D
 | 
|---|
| 61 |  . S X=$P(^LEX(757.01,DA,1),U,2) D S
 | 
|---|
| 62 |  K ^TMP("LEXSTOP","REIDXMC"),LEXIDX,DA,X
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 | RMC ; Re-Index Expression file word index AWRD (Task Manager)
 | 
|---|
| 65 |  S ZTRTN="REIDXMC^LEXNDX1"
 | 
|---|
| 66 |  S ZTDESC="Re-Indexing Major Concept Words in ""AWRD"" index"
 | 
|---|
| 67 |  S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS W:$D(ZTSK) !!,"Re-Indexing Major Concept Words in ""AWRD"" index" W:'$D(ZTSK) !!,"Task to re-index Major Concept not created"
 | 
|---|
| 68 |  K ZTDTH,ZTDESC,ZTIO,ZTRTN
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | RALL ; Re-Index entire file (needs DIC)
 | 
|---|
| 71 |  S DIK=$G(DIC) Q:DIK=""  Q:'$D(@(DIK_"0)"))
 | 
|---|
| 72 |  S ZTREQ="@",(ZTSAVE("ZTREQ"),ZTSAVE("DIK"))="",ZTRTN="IXALL^DIK"
 | 
|---|
| 73 |  S ZTDESC="Re-Indexing "_DIK
 | 
|---|
| 74 |  S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS
 | 
|---|
| 75 |  K ZTDTH,ZTDESC,ZTIO,ZTRTN,ZTREQ,ZTSAVE
 | 
|---|
| 76 |  Q
 | 
|---|