| 1 | LEXERI ; ISL Exc/Rep Word Input Transformations   ; 09-23-96
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EXC ; Input transformation for ^LEX(757.04, - .01
 | 
|---|
| 6 |  Q:'$D(X)  S LEXX=X
 | 
|---|
| 7 |  I LEXX[" " D  K X Q
 | 
|---|
| 8 |  . W !,$C(34),X,$C(34)," contains a space"
 | 
|---|
| 9 |  S LEXX=$$CVT(LEXX)
 | 
|---|
| 10 |  I $D(^LEX(757.04,"AB",$E(LEXX,1,40))) D  Q
 | 
|---|
| 11 |  . N LEXDA S LEXDA=$G(DA) I +LEXDA>0,$D(^LEX(757.04,"AB",$E(LEXX,1,40),LEXDA)) Q
 | 
|---|
| 12 |  . W !,$C(34),LEXX,$C(34)," is already defined as an excluded word" K X
 | 
|---|
| 13 |  I $D(^LEX(757.05,"AB",$E(LEXX,1,40))) D  Q
 | 
|---|
| 14 |  . W !,$C(34),LEXX,$C(34)," has been defined as a replacement word (file #757.05)"
 | 
|---|
| 15 |  . W !!,"You can not exclude a word from a search which is to be replaced"
 | 
|---|
| 16 |  . W !,"by another expression prior to performing the search"
 | 
|---|
| 17 |  I $D(^LEX(757.05,"C",$E($$UP^XLFSTR(LEXX),1,40))) D  K X Q
 | 
|---|
| 18 |  . W !,$C(34),LEXX,$C(34)," has been defined as a replacement word (file #757.05)"
 | 
|---|
| 19 |  . W !!,"You can not exclude a word from a search which is to be inserted"
 | 
|---|
| 20 |  . W !,"as replacement text prior to performing the search"
 | 
|---|
| 21 |  S X=LEXX
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 | REP ; Input Transformation for ^LEX(757.05, - .01
 | 
|---|
| 24 |  Q:'$D(X)  S LEXX=X
 | 
|---|
| 25 |  N LEXOK,LEXPSN S LEXOK=1 F LEXPSN=1:1:$L(LEXX) D
 | 
|---|
| 26 |  . I $E(LEXX,LEXPSN)'?1A&($E(LEXX,LEXPSN)'="/") S LEXOK=0
 | 
|---|
| 27 |  I 'LEXOK D  K X Q
 | 
|---|
| 28 |  . W !,"Alpha-numeric expression.  The only punctuation allowed is the slash ""/"""
 | 
|---|
| 29 |  S LEXX=$$CVT(LEXX)
 | 
|---|
| 30 |  I $D(^LEX(757.04,"AB",$E(X,1,40))) N LEX S LEX=0 D  I 'LEX K X Q
 | 
|---|
| 31 |  . W !!,$C(7),$C(34),LEXX,$C(34)," already exist in the Excluded Words file."
 | 
|---|
| 32 |  . W !,"Do you want to delete it from the Excluded Words file"
 | 
|---|
| 33 |  . W !,"and continue to add it as a replacement word?  No//  "
 | 
|---|
| 34 | REP2 . R LEX:300 I '$T!(LEX="")!(LEX[U) S LEX=0 Q
 | 
|---|
| 35 |  . I LEX["?" D  G REP2
 | 
|---|
| 36 |  . . W !!,"Yes",!,"Add ",LEXX," to the Replacement Words file and delete it",!,"from the Excluded Words file"
 | 
|---|
| 37 |  . . W !!,"No",!,"Do not add ",LEXX," to the Replacement Words file and ",!,"retain it in the Excluded Words file"
 | 
|---|
| 38 |  . . W !!,"",!,"Delete?  No//  "
 | 
|---|
| 39 |  . I $E(LEX,1)'="Y"&($E(LEX,1)'="N")&($E(LEX,1)'="y")&($E(LEX,1)'="n") W !!,"",!,"Delete?  No//  " G REP2
 | 
|---|
| 40 |  . I $E(LEX,1)="Y"!($E(LEX,1)="y") S LEX=1 D  Q
 | 
|---|
| 41 |  . . S ZTSAVE("X")="",ZTRTN="DEXC^LEXERI",ZTDESC="Deleting "_X_" from Excluded Words file #757.04"
 | 
|---|
| 42 |  . . S ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS W:$D(ZTSK) !!,"Deleting "_X_" from Excluded Words file #757.04" K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
 | 
|---|
| 43 |  . S LEX=0
 | 
|---|
| 44 |  I $D(^LEX(757.05,"AB",$E(X,1,40))) D  K:+($G(LEX)) LEX,LEXR Q
 | 
|---|
| 45 |  . I $O(^LEX(757.05,"AB",$E(X,1,40),0))=+DA Q
 | 
|---|
| 46 |  . S (LEX,LEXR)=0 F  S LEXR=$O(^LEX(757.05,"AB",$E(X,1,40),LEXR)) D  Q:+LEXR=0
 | 
|---|
| 47 |  . . I +LEXR>0,$D(^LEX(757.05,LEXR,0)),$P(^LEX(757.05,LEXR,0),"^",3)="R" D  S LEXR=0
 | 
|---|
| 48 |  . . . W !!,$C(34),LEXX,$C(34)," already exist in the Replacement Words file (#757.05)"
 | 
|---|
| 49 |  . . . W !,"as a (R)eplaced word.  You may alter the original entry to be a"
 | 
|---|
| 50 |  . . . W !,"(L)inked word, but you can not (R)eplace ",$C(34),LEXX,$C(34)," with multiple"
 | 
|---|
| 51 |  . . . W !,"expressions/concepts",!!
 | 
|---|
| 52 |  . . . S LEX=1
 | 
|---|
| 53 |  S X=LEXX
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 | DEXC ; Delete entry from Excluded Words file #757.04
 | 
|---|
| 56 |  Q:'$D(X)  Q:'$D(^LEX(757.04,"AB",$E(X,1,40)))  S DA=$O(^LEX(757.04,"AB",$E(X,1,40),0)),DIK="^LEX(757.04," D ^DIK K DA,DIK S:$D(ZTQUEUED) ZTREQ="@" Q
 | 
|---|
| 57 | REPBY ; Input Transformation for ^LEX(757.05, - 1
 | 
|---|
| 58 |  Q:'$D(X)  N LEXX S LEXX=$$CVT(X)
 | 
|---|
| 59 |  Q:$D(^LEX(757.05,"C",$E(LEXX,1,40),DA))
 | 
|---|
| 60 |  I '+($$EXIST^LEXERF(LEXX)) D  K X,LEXX Q
 | 
|---|
| 61 |  . W !!,$C(34),LEXX,$C(34)," does not exist in the Lexicon.  You"
 | 
|---|
| 62 |  . W !,"may not replace a word with text not found in the Lexicon,"
 | 
|---|
| 63 |  . W !,"resulting in unsuccessful searches."
 | 
|---|
| 64 |  N LEXOK,LEXJ,LEXI S (LEXOK,LEXJ)=1,LEXI=""
 | 
|---|
| 65 |  F  S LEXI=$P(LEXX," ",LEXJ) D  S LEXJ=LEXJ+1 I 'LEXOK!($P(LEXX," ",LEXJ)="") Q
 | 
|---|
| 66 |  . I $D(^LEX(757.05,"AB",$E(LEXI,1,40))) D
 | 
|---|
| 67 |  . . N LEXR S LEXR=0 W !,LEXI
 | 
|---|
| 68 |  . . F  S LEXR=$O(^LEX(757.05,"AB",$E(LEXI,1,40),LEXR)) D  Q:+LEXR=0
 | 
|---|
| 69 |  . . . I +LEXR'=0,$D(^LEX(757.05,LEXR,0)),$P(^LEX(757.05,LEXR,0),"^",3)="R" D  S LEXR=0
 | 
|---|
| 70 |  . . . . W !!,"WARNING:  Your input contains the word ",$C(34),LEXI,$C(34)," which is"
 | 
|---|
| 71 |  . . . . W !,"already defined in the Replacement Words file (#757.05) as a (R)eplaced"
 | 
|---|
| 72 |  . . . . W !,"word.  This may cause problems (i.e., circular definition of a word) "
 | 
|---|
| 73 |  . . . . W !,"resulting in an unsuccessful search in the Lexicon."
 | 
|---|
| 74 |  . . . . W !!,"   Example of a circular definition:"
 | 
|---|
| 75 |  . . . . W !!,"        Replace:  CA        with   CANCER          and"
 | 
|---|
| 76 |  . . . . W !,"        Replace:  CALCIUM   with   CA         ",!!
 | 
|---|
| 77 |  . . . . W !!,"   Searching for ",$C(34),"CALCIUM",$C(34)," may result in a listing of CANCER's,"
 | 
|---|
| 78 |  . . . . W !,"   depending on the order of replacement."
 | 
|---|
| 79 |  . . . . S LEXOK=0
 | 
|---|
| 80 |  S X=LEXX K:'LEXOK X K LEXOK,LEXI,LEXJ,LEXR,LEXX
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 | CVT(LEXX) ; Convert Text
 | 
|---|
| 83 |  S LEXX=$$UP^XLFSTR(LEXX) N LEXI,LEXJ S LEXJ="" F LEXI=1:1:$L(LEXX) D
 | 
|---|
| 84 |  . I $A($E(LEXX,LEXI))=47!($A($E(LEXX,LEXI))>64&($A($E(LEXX,LEXI))<91)) S LEXJ=LEXJ_$E(LEXX,LEXI)
 | 
|---|
| 85 |  . E  S LEXJ=LEXJ_" "
 | 
|---|
| 86 |  S LEXX=LEXJ K LEXI,LEXJ Q LEXX
 | 
|---|