source: FOIAVistA/trunk/r/LEXICON_UTILITY-LEX-GMPT/LEXDFSB.m@ 1540

Last change on this file since 1540 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 1.6 KB
Line 
1LEXDFSB ; ISL Default Filter - Include/Exclude ; 09-23-96
2 ;;2.0;LEXICON UTILITY;;Sep 23, 1996
3 ;
4 ; Entry: S X=$$EN^LEXDFSB
5 ;
6 ; Functions returns the Include/Exclude string for filters
7 ; which use the semantic class and types.
8 ;
9 ; String format:
10 ;
11 ; INC/INC/INC/INC/...ETC;EXC/EXC/EXC/EXC/...EXC
12 ;
13 ; Where INC is a semantic class or type to include
14 ; in searches, and EXC is a semantic class or type to
15 ; exclude from searches
16 ;
17 ; LEXC Counter
18 ; LEXI Include String
19 ; LEXE Exclude String
20 ; LEXA Local array containing include/exclude parameters
21 ; LEXX Include;Exclude string to be returned
22 ;
23EN(LEXX) ; Create the Semantic Type String
24 I +$G(LEXA(0))>0 S LEXX="" D SET K LEXA Q LEXX
25 S LEXX=$$EN^LEXDFSI K:LEXX[U LEXA
26 I LEXX[U D Q LEXX
27 . S:LEXX["^^" LEXX="^^" Q:LEXX["^^" S:LEXX[U LEXX="^No filter selected" K LEXA
28 I $P(LEXX,U,1)="" S LEXX="^No filter selected" K LEXA Q LEXX
29 D:+$G(LEXA(0))>0 SET
30 K LEXA Q LEXX
31 ;
32SET ; Create Semantic Include and Exclude strings from the array
33 ;
34 Q:+($G(LEXA(0)))=0
35 N LEXC,LEXT,LEXI,LEXE S (LEXI,LEXE)=""
36 F LEXC=1:1:LEXA(0) D
37 . I LEXA(LEXC,2,0)<LEXA(LEXC,1,0)!(LEXA(LEXC,2,0)=0) S LEXI=LEXI_"/"_LEXA(LEXC,0)
38 . I LEXA(LEXC,2,0)<LEXA(LEXC,1,0)&(LEXA(LEXC,2,0)'=0) D
39 . . F LEXT=1:1:LEXA(LEXC,2,0) D
40 . . . S LEXE=LEXE_"/"_LEXA(LEXC,2,LEXT,0)
41 . I LEXA(LEXC,2,0)'<LEXA(LEXC,1,0)&(LEXA(LEXC,2,0)'=0) D
42 . . F LEXT=1:1:LEXA(LEXC,1,0) D
43 . . . S LEXI=LEXI_"/"_LEXA(LEXC,1,LEXT,0)
44 S:LEXI'["UNK" LEXI=LEXI_"/UNK" S:$E(LEXI,1)="/" LEXI=$E(LEXI,2,$L(LEXI))
45 S:$E(LEXE,1)="/" LEXE=$E(LEXE,2,$L(LEXE)) S LEXX=LEXI_";"_LEXE
46 K LEXA Q
Note: See TracBrowser for help on using the repository browser.