| 1 | LEXAR3 ; ISL Look-up Response (Help, Def, MAX)    ; 09-23-96
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | HLP ; Help
 | 
|---|
| 5 |  N LEXRP,LEXMAX K LEX("HLP")
 | 
|---|
| 6 |  S LEXMAX=+($G(^TMP("LEXSCH",$J,"LST",0)))
 | 
|---|
| 7 |  I LEXUR["??" D EXT Q
 | 
|---|
| 8 |  S LEXRP=+($P(LEXUR,"?",2,229))
 | 
|---|
| 9 |  I LEXRP>0,LEXRP'>LEXMAX D  Q
 | 
|---|
| 10 |  . S LEXRP=+($G(^TMP("LEXHIT",$J,LEXRP))) D DEF(LEXRP)
 | 
|---|
| 11 |  I LEXUR["?",LEXRP'["?",+LEXRP'>0 D STD
 | 
|---|
| 12 |  Q
 | 
|---|
| 13 | STD ; Standard Help   LEX("HLP",
 | 
|---|
| 14 |  I +($G(LEX))=1 D STD2 Q
 | 
|---|
| 15 |  N LEXC S LEXC=+($G(LEX("HLP",0))),LEXC=LEXC+1,LEX("HLP",0)=LEXC
 | 
|---|
| 16 |  S:LEX'>LEXMAX LEX("HLP",LEXC)="Select 1-"_LEXMAX_", ^ (quit), or ?# (help on a term)"
 | 
|---|
| 17 |  S:LEX>LEXMAX LEX("HLP",LEXC)="Select 1-"_LEXMAX_", ^ (quit), ^# (jump - "_LEX_"), ?# (term help), or <Return> for more"
 | 
|---|
| 18 |  D:$D(LEX("LIST")) LST^LEXAR
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 | STD2 ; Standard Help   LEX("HLP",
 | 
|---|
| 21 |  K LEX("HLP") S LEXRP=+($G(^TMP("LEXHIT",$J,1))) D DEF(LEXRP)
 | 
|---|
| 22 |  N LEXC S LEXC=+($G(LEX("HLP",0))) I LEXC>0 S LEXC=LEXC+1,LEX("HLP",LEXC)="",LEX("HLP",0)=LEXC
 | 
|---|
| 23 |  S LEXC=LEXC+1,LEX("HLP",0)=LEXC,LEX("HLP",LEXC)="Enter ""Yes"" to select, ""No"" to ignore, ""^"" to quit or ""?"" for term help"
 | 
|---|
| 24 |  D:$D(LEX("LIST")) LST^LEXAR
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | EXT ; Extended Help   LEX("HLP",
 | 
|---|
| 27 |  I +($G(LEX))=1 D EXT2 Q
 | 
|---|
| 28 |  N LEXCP,LEXTP,LEXM S LEXTP=LEX\LEXLL S:LEX#LEXLL>0 LEXTP=LEXTP+1
 | 
|---|
| 29 |  S LEXCP=LEXMAX\LEXLL S:LEXMAX#LEXLL>0 LEXCP=LEXCP+1
 | 
|---|
| 30 |  S LEXM=$S(LEXTP>LEXCP:1,1:0) N LEXS,LEXE,LEXJ,LEXH,LEXR,LEXSTR,LEXC
 | 
|---|
| 31 |  S LEXC=+($G(LEX("HLP",0))) S LEXC=LEXC+1
 | 
|---|
| 32 |  S (LEXS,LEXE,LEXJ,LEXH,LEXR,LEXSTR)=""
 | 
|---|
| 33 |  S LEXS="You may select 1-"_LEXMAX
 | 
|---|
| 34 |  S LEXE="enter an ^ to quit" S:LEXM LEXJ="enter ^# to jump to another entry on the list (up to "_LEX_")"
 | 
|---|
| 35 |  S LEXH="enter ?# to display the definition of an entry marked with an asterisk (*)"
 | 
|---|
| 36 |  S:LEXM LEXR="or press <Return> to continue."
 | 
|---|
| 37 |  S:'LEXM LEXR="or press <Return> to quit without making a selection."
 | 
|---|
| 38 |  S LEXSTR=LEXS S:LEXE'="" LEXSTR=LEXSTR_", "_LEXE S:LEXJ'="" LEXSTR=LEXSTR_", "_LEXJ
 | 
|---|
| 39 |  S:LEXH'="" LEXSTR=LEXSTR_", "_LEXH S:LEXR'="" LEXSTR=LEXSTR_", "_LEXR
 | 
|---|
| 40 |  I $L(LEXSTR)>74 D
 | 
|---|
| 41 |  . F  Q:$L(LEXSTR)'>74  D
 | 
|---|
| 42 |  . . N LEXI F LEXI=74:-1:1 Q:$E(LEXSTR,LEXI)=" "
 | 
|---|
| 43 |  . . S LEX("HLP",LEXC)=$E(LEXSTR,1,(LEXI-1)),LEX("HLP",0)=LEXC
 | 
|---|
| 44 |  . . S LEXC=LEXC+1,LEXSTR=$E(LEXSTR,(LEXI+1),$L(LEXSTR))
 | 
|---|
| 45 |  . I $L(LEXSTR)>0,$L(LEXSTR)'>74 S LEXC=LEXC+1,LEX("HLP",LEXC)=LEXSTR,LEX("HLP",0)=LEXC
 | 
|---|
| 46 |  D:$D(LEX("LIST")) LST^LEXAR
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | EXT2 ; Extended help for one
 | 
|---|
| 49 |  N LEXS,LEXE,LEXH,LEXSTR,LEXC,LEXDEF,LEXRP
 | 
|---|
| 50 |  S (LEXS,LEXE,LEXJ,LEXC,LEXH,LEXR,LEXSTR)=""
 | 
|---|
| 51 |  S LEXRP=+($G(^TMP("LEXHIT",$J,1))) D DEF(LEXRP)
 | 
|---|
| 52 |  S LEXC=+($G(LEX("HLP",0))) I LEXC>0 S LEXC=LEXC+1,LEX("HLP",LEXC)="",LEX("HLP",0)=LEXC
 | 
|---|
| 53 |  S LEXC=LEXC+1
 | 
|---|
| 54 |  S LEXDEF=+($G(^TMP("LEXHIT",$J,1)))
 | 
|---|
| 55 |  S LEXDEF=$S($D(^LEX(757.01,+LEXDEF,3)):1,1:0)
 | 
|---|
| 56 |  S LEXS="There was only one term found.  Enter ""Yes"" to select, ""No"" to ignore"
 | 
|---|
| 57 |  S LEXE="or an ""^"" to quit"
 | 
|---|
| 58 |  S LEXH="" S:+LEXDEF>0 LEXH="""?"" to display the term definition"
 | 
|---|
| 59 |  S LEXSTR=LEXS
 | 
|---|
| 60 |  S:LEXH'="" LEXSTR=LEXSTR_", "_LEXH
 | 
|---|
| 61 |  S:LEXE'="" LEXSTR=LEXSTR_", "_LEXE
 | 
|---|
| 62 |  I $L(LEXSTR)>74 D
 | 
|---|
| 63 |  . F  Q:$L(LEXSTR)'>74  D
 | 
|---|
| 64 |  . . N LEXI F LEXI=74:-1:1 Q:$E(LEXSTR,LEXI)=" "
 | 
|---|
| 65 |  . . S LEX("HLP",LEXC)=$E(LEXSTR,1,(LEXI-1)),LEX("HLP",0)=LEXC
 | 
|---|
| 66 |  . . S LEXC=LEXC+1,LEXSTR=$E(LEXSTR,(LEXI+1),$L(LEXSTR))
 | 
|---|
| 67 |  . I $L(LEXSTR)>0,$L(LEXSTR)'>74 S LEXC=LEXC+1,LEX("HLP",LEXC)=LEXSTR,LEX("HLP",0)=LEXC
 | 
|---|
| 68 |  D:$D(LEX("LIST")) LST^LEXAR
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | DH ; Display help
 | 
|---|
| 71 |  N LEXI S LEXI=0
 | 
|---|
| 72 |  F  S LEXI=$O(LEX("HLP",LEXI)) Q:+LEXI=0  W !,"  ",LEX("HLP",LEXI)
 | 
|---|
| 73 |  Q
 | 
|---|
| 74 | DA ; Display help
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  N LEXI S LEXI=0
 | 
|---|
| 77 |  F  S LEXI=$O(LEX("LIST",LEXI)) Q:+LEXI=0  W !,"  ",LEX("LIST",LEXI)
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 | DEF(LEXIEN) ; Definition Help LEX("HLP",
 | 
|---|
| 80 |  N LEXR S (LEXR,LEXIEN)=+($G(LEXIEN))
 | 
|---|
| 81 |  D:$D(LEX("LIST")) LST^LEXAR Q:LEXIEN'>0
 | 
|---|
| 82 |  N LEXLN,LEXC S (LEXLN,LEXC)=0 K LEX("HLP")
 | 
|---|
| 83 |  I '$D(^LEX(757.01,LEXIEN,3,1)),$P($G(^LEX(757.01,LEXIEN,1)),"^",2)'=1 D
 | 
|---|
| 84 |  . S LEXIEN=+($G(^LEX(757.01,LEXIEN,1))),LEXIEN=+($G(^LEX(757,LEXIEN,0)))
 | 
|---|
| 85 |  I $D(^LEX(757.01,LEXIEN,0)),$L($G(^LEX(757.01,LEXIEN,3,1,0))) D
 | 
|---|
| 86 |  . S LEXC=1,LEX("HLP",LEXC)=$G(^LEX(757.01,LEXIEN,0)) S LEXC=LEXC+1
 | 
|---|
| 87 |  . S LEX("HLP",LEXC)="",LEXC("HLP",0)=LEXC
 | 
|---|
| 88 |  . F  S LEXLN=$O(^LEX(757.01,LEXIEN,3,LEXLN)) Q:+LEXLN=0  D
 | 
|---|
| 89 |  . . S LEXC=LEXC+1 S LEX("HLP",LEXC)=^LEX(757.01,LEXIEN,3,LEXLN,0),LEX("HLP",0)=LEXC
 | 
|---|
| 90 |  I '$D(LEX("HLP")) D
 | 
|---|
| 91 |  . K LEX("HLP") S:$L($G(^LEX(757.01,LEXR,0))) LEX("HLP",1)="No definition found for "_$C(34)_^LEX(757.01,LEXR,0)_$C(34)
 | 
|---|
| 92 |  . S:'$L($G(^LEX(757.01,LEXR,0))) LEX("HLP",1)="No definition found"
 | 
|---|
| 93 |  D:$D(LEX("LIST")) LST^LEXAR
 | 
|---|
| 94 |  Q
 | 
|---|