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

LEXDDSP.m

Go to the documentation of this file.
  1. LEXDDSP ;ISL/KER - Display Defaults - Single User Parse ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 1
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.41) N/A
  1. ; ^TMP("LEXDIC") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; $$GET1^DIQ ICR 2056
  1. ; $$LOW^XLFSTR ICR 10104
  1. ;
  1. DISP ; Display single user defaults
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. G:+($G(LEXAP))=0 EXIT S LEXAP=+LEXAP G:'$L($G(^LEXT(757.2,LEXAP,0))) EXIT
  1. G:$P($G(^LEXT(757.2,LEXAP,5)),U,3)'=1 EXIT K LEX
  1. D NAME,VOC,DIS,FIL,CTX,DSPLY^LEXDDSD
  1. EXIT ; Cleanup/quit
  1. K LEX,LEXV,LEXN,DIR,DIROUT,DIRUT,DTOUT,DUOUT,LEX,^TMP("LEXDIC",$J) Q
  1. ;
  1. NAME ; Name
  1. N LEXV,LEXN S LEXV=$$GET1^DIQ(200,+($G(DUZ)),.01),LEXN=""
  1. I LEXV["," S LEXN=$P(LEXV,",",2),LEXV=$P(LEXV,",",1)
  1. S:LEXN'="" LEXN=$$MIXED(LEXN) S:LEXV'="" LEXV=$$MIXED(LEXV)
  1. D NAME^LEXDDSS((LEXN_" "_LEXV)) Q
  1. ;
  1. VOC ; Vocabulary
  1. N LEXV,LEXN S LEXV=$G(^LEXT(757.2,LEXAP,200,DUZ,3)) S:LEXV="" LEXV="WRD"
  1. S:$D(^LEXT(757.2,"AA",LEXV)) LEXN=$P(^LEXT(757.2,+($O(^LEXT(757.2,"AA",LEXV,0))),0),"^",1)
  1. D VOC^LEXDDSS(LEXN)
  1. Q
  1. ;
  1. DIS ; Display Format
  1. D LEXSHOW^LEXDDSD Q
  1. ;
  1. FIL ; Filter
  1. N LEXV D DICS($G(^LEXT(757.2,LEXAP,200,DUZ,1)))
  1. K ^TMP("LEXDIC",$J) W:IOST["C-" @IOF S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ;
  1. DICS(LEXV) ; Translate filter
  1. Q:'$D(LEXV) N LEXS,LEXSHOW,LEXIN,LEXEX
  1. I $G(LEXV)="" D FIL^LEXDDSS("No search filter defined") Q
  1. S LEXS=LEXV D PARSE S:LEXV["SO^" LEXSHOW=LEXS
  1. D FIL^LEXDDSS($G(^LEXT(757.2,LEXAP,200,DUZ,1.5)))
  1. I $G(LEXS)=""!(LEXV="I 1") D
  1. . N LEXDA S LEXDA=0
  1. . F S LEXDA=$O(^LEX(757.11,LEXDA)) Q:+LEXDA=0 D
  1. . . S LEXS=LEXS_"/"_$P(^LEX(757.11,LEXDA,0),U,1)
  1. . S:$E(LEXS,1)="/" LEXS=$E(LEXS,2,$L(LEXS)) S LEXS=LEXS_";"
  1. I LEXV["SC^"!(LEXV="I 1") D
  1. . S:$L(LEXS,";")=3 LEXSHOW=$P(LEXS,";",3)
  1. . D LB^LEXDDSS(" Look-up filter will: ")
  1. . D INCEXC,DICS^LEXDDSD
  1. I $G(LEXSHOW)'="" D
  1. . I LEXV["SC^" D BLB^LEXDDSS(" Look-up filter will also include terms linked to:")
  1. . I LEXV["SO^" D LB^LEXDDSS(" Look-up filter will include terms linked to: ")
  1. . D CODES^LEXDDSD(LEXSHOW)
  1. K ^TMP("LEXDIC",$J)
  1. Q
  1. PARSE ; Parse DIS("S") string into INCLUDE;EXCLUDE;LEXSHOW
  1. S (LEXIN,LEXEX)="" S:LEXS["," LEXS=$P(LEXS,",",2)
  1. S LEXS=$TR(LEXS,"()",""),LEXS=$TR(LEXS,"""","") Q
  1. INCEXC ; Include/Exclude Components
  1. S LEXIN=$P(LEXS,";",1),LEXEX=$P(LEXS,";",2) K ^TMP("LEXDIC",$J)
  1. I $D(LEXIN),LEXIN'="",LEXIN["/" D
  1. . N LEXI F LEXI=1:1:$L(LEXIN,"/") D
  1. . . I +($P(LEXIN,"/",LEXI))=0 D
  1. . . . S ^TMP("LEXDIC",$J,"INC","CLASS",$P(LEXIN,"/",LEXI))=""
  1. . . I +($P(LEXIN,"/",LEXI))'=0 D
  1. . . . S ^TMP("LEXDIC",$J,"INC","TYPE",$P(LEXIN,"/",LEXI))=""
  1. I $D(LEXIN),LEXIN'="",LEXIN'["/" D
  1. . I +LEXIN=0 S ^TMP("LEXDIC",$J,"INC","CLASS",LEXIN)="" Q
  1. . S ^TMP("LEXDIC",$J,"INC","TYPE",LEXIN)=""
  1. I $D(LEXEX),LEXEX'="",LEXEX["/" D
  1. . N LEXI F LEXI=1:1:$L(LEXEX,"/") D
  1. . . I +($P(LEXEX,"/",LEXI))=0 D
  1. . . . S ^TMP("LEXDIC",$J,"EXC","CLASS",$P(LEXEX,"/",LEXI))=""
  1. . . I +($P(LEXEX,"/",LEXI))'=0 D
  1. . . . S ^TMP("LEXDIC",$J,"EXC","TYPE",$P(LEXEX,"/",LEXI))=""
  1. I $D(LEXEX),LEXEX'="",LEXEX'["/" D
  1. . I +LEXEX=0 S ^TMP("LEXDIC",$J,"EXC","CLASS",LEXEX)="" Q
  1. . S ^TMP("LEXDIC",$J,"EXC","TYPE",LEXEX)=""
  1. S LEXN="" F S LEXN=$O(^LEX(757.11,"B",LEXN)) Q:LEXN="" D
  1. . Q:LEXIN[LEXN N LEXTT,LEXTI S LEXTI=1,LEXT=0
  1. . F S LEXT=$O(^LEX(757.12,"C",LEXN,LEXT)) Q:+LEXT=0!(+LEXTI=0) D
  1. . . I LEXIN[LEXT S LEXTI=0
  1. . I LEXTI S ^TMP("LEXDIC",$J,"EXC","CLASS",LEXN)=""
  1. Q
  1. ;
  1. CTX ; Shortcut Context
  1. N LEXV S LEXV=$G(^LEXT(757.2,LEXAP,200,DUZ,4.5)) I LEXV="" D
  1. . N LEXN S LEXN=+($G(^LEXT(757.2,LEXAP,200,DUZ,4.5)))
  1. . Q:+LEXN'>0 Q:'$D(^LEX(757.41,+LEXN))
  1. . S LEXV=$P(^LEX(757.41,+LEXN,0),U,1)
  1. D CON^LEXDDSS(LEXV)
  1. Q
  1. MIXED(LEXV) ; Convert UPPERCASE to Mixed case
  1. S LEXV=$E(LEXV,1)_$$LOW^XLFSTR($E(LEXV,2,$L(LEXV)))
  1. Q LEXV