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 ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**25,80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.4) N/A
  1. ; ^LEX(757.41) N/A
  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. ; ^TMP("LEXFND",$J) Entries found
  1. ; ^TMP("LEXHIT",$J) Entries returned
  1. ;
  1. ; LEXSCH User input string to search for
  1. ; LEXVDT Date is used to screen out inactive codes
  1. ;
  1. ; LEXC Pointer to Shortcut Context in file 757.41
  1. ; LEXS Pointer to Shortcut in file 757.4
  1. ; LEXE Pointer to expression in 757.01
  1. ; LEXM Pointer to Major Concept in 757.01
  1. ;
  1. ; LEXDSP Source Display string
  1. ; LEXDES Flag - has (*) or doesn't have () a description
  1. ; LEXSHOW Display string from Application/User defaults
  1. ; LEXX Returned variable from functions
  1. ;
  1. EN(LEXSCH,LEXC,LEXVDT) ; Check Shortcuts file 757.4 for LEXSCH
  1. S LEXC=+($G(LEXC))
  1. Q:'$L(LEXSCH)!(LEXC=0) 0
  1. Q:'$D(^LEX(757.41,LEXC)) 0
  1. Q:$L(LEXSCH)<2!($L(LEXSCH)>63) 0
  1. Q:'$D(^LEX(757.4,"ARA",LEXSCH,LEXC)) 0
  1. D VDT^LEXU N LEXS S LEXS=0
  1. F S LEXS=$O(^LEX(757.4,"ARA",LEXSCH,LEXC,LEXS)) Q:+LEXS=0 D
  1. . N LEXE,LEXDES,LEXDSP,LEXLKT S LEXLKT="ASC"
  1. . S LEXE=+($G(^LEX(757.4,LEXS,0))) Q:LEXE'>0
  1. . ; Filter
  1. . S LEXFILR=$$EN^LEXAFIL($G(LEXFIL),LEXE) Q:LEXFILR=0
  1. . ; Deactivated Term
  1. . Q:'$D(LEXIGN)&(+($P($G(^LEX(757.01,LEXE,1)),"^",5))=1)
  1. . Q:+($$SUB(LEXE))=0
  1. . 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. I $D(^TMP("LEXFND",$J)) D BEG^LEXAL
  1. 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. 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(LEXX,LEXDSP,LEXVDT) ; Return displayable text
  1. S LEXX=$$SO^LEXASO(LEXX,LEXDSP,1,$G(LEXVDT)) Q LEXX
  1. SUB(LEXX) ;
  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