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

LEXASC.m

Go to the documentation of this file.
  1. LEXASC ;ISL/KER - Look-up by Shortcuts ;05/23/2017
  1. ;;2.0;LEXICON UTILITY;**25,80,103**;Sep 23, 1996;Build 2
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757 SACC 1.3
  1. ; ^LEX(757.01 SACC 1.3
  1. ; ^LEX(757.21 SACC 1.3
  1. ; ^LEX(757.4 SACC 1.3
  1. ; ^LEX(757.41 SACC 1.3
  1. ; ^LEXT(757.2 SACC 1.3
  1. ; ^TMP("LEXFND") SACC 2.3.2.5.1
  1. ; ^TMP("LEXHIT") SACC 2.3.2.5.1
  1. ; ^TMP("LEXSCH") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; None
  1. ;
  1. ; Local Variables NEWed or KILLed Elsewhere
  1. ; LEXAFMT Output Format
  1. ; LEXFIL Filter
  1. ; LEXSHOW Display string (SABs)
  1. ;
  1. EN(LEXSCH,LEXC,LEXVDT) ; Check Shortcuts file 757.4 for LEXSCH
  1. ; LEXSCH User input string to search for
  1. ; LEXVDT Versioning Date
  1. ; LEXC Pointer to Shortcut file 757.41
  1. ;
  1. ; Disabled LEX*2.0*103
  1. Q 0
  1. ;
  1. S LEXC=+($G(LEXC)) Q:'$L(LEXSCH)!(LEXC=0) 0 Q:'$D(^LEX(757.41,LEXC)) 0 Q:$L(LEXSCH)<2!($L(LEXSCH)>63) 0
  1. Q:'$D(^LEX(757.4,"ARA",LEXSCH,LEXC)) 0 D VDT^LEXU N LEXS,LEXSOA S LEXS=0
  1. I $D(^TMP("LEXSCH",$J,"FMT",0)) S:'$D(LEXAFMT)!($G(LEXAFMT)'?1N) LEXAFMT=$G(^TMP("LEXSCH",$J,"FMT",0))
  1. F S LEXS=$O(^LEX(757.4,"ARA",LEXSCH,LEXC,LEXS)) Q:+LEXS=0 D
  1. . N LEXE,LEXDES,LEXDSP,LEXLKT,LEXFILR S LEXLKT="ASC" S LEXE=+($G(^LEX(757.4,LEXS,0))) Q:LEXE'>0
  1. . S LEXFILR=$$EN^LEXAFIL($G(LEXFIL),LEXE) Q:LEXFILR=0
  1. . Q:'$D(LEXIGN)&(+($P($G(^LEX(757.01,LEXE,1)),"^",5))=1) Q:+($$SUB(LEXE))=0 S LEXDES=$$DES(LEXE)
  1. . S LEXDSP="",LEXSHOW=$G(^TMP("LEXSCH",$J,"DIS",0)) S:$L($G(LEXSHOW)) LEXDSP=$$DSP(LEXE,$G(LEXSHOW),$G(LEXVDT))
  1. . D ADDL^LEXAL(LEXE,LEXDES,LEXDSP)
  1. D:$D(^TMP("LEXFND",$J)) BEG^LEXAL I '$D(^TMP("LEXFND",$J)) D
  1. . K LEX,^TMP("LEXFND",$J),^TMP("LEXHIT",$J) S LEX=0
  1. . S:+($G(^TMP("LEXSCH",$J,"UNR",0)))>0&($L($G(^TMP("LEXSCH",$J,"NAR",0)))) LEX("NAR")=$G(^TMP("LEXSCH",$J,"NAR",0))
  1. Q:$D(^TMP("LEXHIT",$J)) 1
  1. Q 0
  1. ;
  1. ; Miscellaneous
  1. DES(LEXX) ; Get description flag
  1. N LEXDES,LEXE,LEXM S LEXDES="",LEXE=+LEXX
  1. S LEXM=$P($G(^LEX(757.01,+($G(LEXX)),1)),"^",1)
  1. S LEXM=+($G(^LEX(757,+($G(LEXM)),0)))
  1. S:$D(^LEX(757.01,LEXM,3)) LEXDES="*"
  1. S LEXX=$G(LEXDES) Q LEXX
  1. TERM(LEXX) ; Get expression
  1. Q $G(^LEX(757.01,LEXX,0))
  1. DSP(X,Y,LEXVDT) ; Return displayable text
  1. I +($G(LEXAFMT))'>0 S X=$$SO^LEXASO($G(X),$G(Y),1,$G(LEXVDT)) Q X
  1. I +($G(LEXAFMT))>0 S X=$$SOA^LEXASO($G(X),$G(Y),1,$G(LEXVDT),.LEXSOA) Q X
  1. Q ""
  1. SUB(LEXX) ; Subset
  1. Q:$G(^TMP("LEXSCH",$J,"GBL",0))'="^LEX(757.21," 1
  1. Q:'$L($G(^TMP("LEXSCH",$J,"IDX",0))) 1
  1. N LEXIDX,LEXSS,LEXSN S LEXIDX=$G(^TMP("LEXSCH",$J,"IDX",0))
  1. S LEXSS=$E(LEXIDX,2,$L(LEXIDX))
  1. S LEXSN=$O(^LEXT(757.2,"AA",LEXSS,0))
  1. Q:+($G(LEXSN))=0 1
  1. N LEXOK,LEXR S (LEXR,LEXOK)=0
  1. F S LEXR=$O(^LEX(757.21,"B",LEXX,LEXR)) Q:+LEXR=0 D
  1. . I $P($G(^LEX(757.21,LEXR,0)),"^",2)=LEXSN S LEXOK=1
  1. S LEXX=LEXOK Q LEXX
  1. CLR ; Clear
  1. N LEXIGN
  1. Q