1 | LEXDDTF ; ISL Display Defaults - Filter ; 09-23-96
|
---|
2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996
|
---|
3 | ;
|
---|
4 | SC ; Filter by Semantic Classifications
|
---|
5 | ; Required LEXDICS in the format I $$SC^LEXU...
|
---|
6 | N LEXTC,LEXTCTR,LEXTI,LEXTIC,LEXTIE,LEXTSTR
|
---|
7 | Q:'$L($G(LEXDICS)) Q:LEXDICS'["$$SC^LEXU"
|
---|
8 | S LEX=$TR($P($P(LEXDICS,"Y,",2),")",1),"""","")
|
---|
9 | S LEXTCTR=0,LEX("I")=$P(LEX,";",1)
|
---|
10 | S LEX("E")=$P(LEX,";",2),LEX("L")=$P(LEX,";",3)
|
---|
11 | S LEX("I","H")="Include expressions which relate to",LEXTCTR=0
|
---|
12 | N LEXTIC,LEXTIE,LEXTI F LEXTI=1:1:$L(LEX("I"),"/") D
|
---|
13 | . S LEXTIC=$P(LEX("I"),"/",LEXTI) Q:LEXTIC="UNK"
|
---|
14 | . S LEXTCTR=LEXTCTR+1,LEX("I",LEXTCTR)=$$SN(LEXTIC)
|
---|
15 | S LEX("I",0)=LEXTCTR
|
---|
16 | S LEX("E","H")="Exclude expressions which relate to",LEXTCTR=0
|
---|
17 | F LEXTI=1:1:$L(LEX("E"),"/") D
|
---|
18 | . S LEXTIC=$P(LEX("E"),"/",LEXTI) Q:LEXTIC="UNK"
|
---|
19 | . S LEXTCTR=LEXTCTR+1,LEX("E",LEXTCTR)=$$SN(LEXTIC)
|
---|
20 | S LEX("E",0)=LEXTCTR
|
---|
21 | S LEX("L","H")="Also include expressions which are linked to"
|
---|
22 | S LEX("L","T")="coding system",LEXTCTR=0
|
---|
23 | F LEXTI=1:1:$L(LEX("L"),"/") D
|
---|
24 | . S LEXTIC=$P(LEX("L"),"/",LEXTI) Q:LEXTIC="UND" S LEXTCTR=LEXTCTR+1,LEX("L",LEXTCTR)=$$CN(LEXTIC)
|
---|
25 | S:LEXTCTR>1 LEX("L","T")=LEX("L","T")_"s"
|
---|
26 | S LEX("L","T")=LEX("L","T")_"."
|
---|
27 | S LEX("L",0)=LEXTCTR
|
---|
28 | S:'$D(LEXSTLN) LEXSTLN=56 K LEX("T") S LEXTCTR=0 N LEXT,LEXTSTR
|
---|
29 | D:$G(LEX("I",0)) INC
|
---|
30 | D:$G(LEX("E",0)) EXC
|
---|
31 | D:$G(LEX("L",0)) LNK
|
---|
32 | D EOC^LEXDDT2
|
---|
33 | Q
|
---|
34 | SO ; Filter by Sources
|
---|
35 | ; Required LEXDICS in the format I $$SO^LEXU...
|
---|
36 | N LEXTC,LEXTCTR,LEXTI,LEXTIC,LEXTIE,LEXTSTR
|
---|
37 | Q:'$L($G(LEXDICS)) Q:LEXDICS'["$$SO^LEXU"
|
---|
38 | S LEX=$TR($P($P(LEXDICS,"Y,",2),")",1),"""","")
|
---|
39 | S LEXTCTR=0,LEX("L")=LEX
|
---|
40 | S LEX("L","H")="Include expressions which are linked to"
|
---|
41 | S LEX("L","T")="coding system",LEXTCTR=0
|
---|
42 | F LEXTI=1:1:$L(LEX("L"),"/") D
|
---|
43 | . S LEXTIC=$P(LEX("L"),"/",LEXTI) Q:LEXTIC="UND" S LEXTCTR=LEXTCTR+1,LEX("L",LEXTCTR)=$$CN(LEXTIC)
|
---|
44 | S:LEXTCTR>1 LEX("L","T")=LEX("L","T")_"s"
|
---|
45 | S LEX("L","T")=LEX("L","T")_"."
|
---|
46 | S LEX("L",0)=LEXTCTR
|
---|
47 | S:'$D(LEXSTLN) LEXSTLN=56 K LEX("T") S LEXTCTR=0 N LEXT,LEXTSTR
|
---|
48 | S LEXTSTR="" D:$G(LEX("L",0)) LNK
|
---|
49 | D EOC^LEXDDT2
|
---|
50 | Q
|
---|
51 | INC ; Inclusion Data Elements
|
---|
52 | S LEXTSTR="",LEXT="I",LEXTCTR=0 D CONCAT^LEXDDT2 K LEX("I")
|
---|
53 | Q
|
---|
54 | EXC ; Exclusion Data Elements
|
---|
55 | S LEXT="E",LEXTCTR=+($G(LEX(0)))
|
---|
56 | I $D(LEXTSTR) D
|
---|
57 | . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
|
---|
58 | . I $L(LEXTSTR)'>(LEXSTLN+2) S LEXTSTR=LEXTSTR_" " Q
|
---|
59 | . D SET^LEXDDT2
|
---|
60 | . S LEXTSTR=""
|
---|
61 | D CONCAT^LEXDDT2 K LEX("E")
|
---|
62 | Q
|
---|
63 | LNK ; Linked Sources Data Elements
|
---|
64 | S LEXT="L",LEXTCTR=+($G(LEX(0)))
|
---|
65 | I $D(LEXTSTR) D
|
---|
66 | . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
|
---|
67 | . I $L(LEXTSTR)'>(LEXSTLN+2) S LEXTSTR=LEXTSTR_" " Q
|
---|
68 | . D SET^LEXDDT2
|
---|
69 | . S LEXTSTR=""
|
---|
70 | D CONCAT^LEXDDT2 K LEX("L")
|
---|
71 | Q
|
---|
72 | SN(LEXSTR) ; Get Semantic Data Element Name
|
---|
73 | N LEXTEMP S LEXTEMP=LEXSTR I LEXTEMP?3U D
|
---|
74 | . S LEXSTR=$O(^LEX(757.11,"B",LEXTEMP,0)) S:+LEXSTR=0 LEXSTR=""
|
---|
75 | . S:+LEXSTR>0 LEXSTR=$P($G(^LEX(757.11,+LEXSTR,0)),"^",2)
|
---|
76 | I LEXTEMP?1N.N D
|
---|
77 | . S LEXSTR=+LEXTEMP
|
---|
78 | . S LEXSTR=$S($D(^LEX(757.12,LEXSTR,0)):$P($G(^LEX(757.12,LEXSTR,0)),"^",2),1:"")
|
---|
79 | Q LEXSTR
|
---|
80 | CN(LEXSTR) ; Get Classification System Data Element Name
|
---|
81 | N LEXTEMP,LEXTC S LEXTC=LEXSTR,LEXTEMP=$E(LEXSTR,1,2)_$C($A($E(LEXSTR,3))-1)_"~"
|
---|
82 | S LEXSTR=""
|
---|
83 | F S LEXTEMP=$O(^LEX(757.03,"B",LEXTEMP)) Q:LEXTEMP=""!(LEXSTR'="") D Q:LEXTEMP=""!(LEXSTR'="")
|
---|
84 | . I LEXTEMP[LEXTC S LEXSTR=$O(^LEX(757.03,"B",LEXTEMP,0))
|
---|
85 | S LEXSTR=+LEXSTR S:LEXSTR=0 LEXSTR=""
|
---|
86 | I +LEXSTR>0,$D(^LEX(757.03,+LEXSTR)) S LEXSTR=$P($G(^LEX(757.03,+LEXSTR,0)),"^",2)
|
---|
87 | Q LEXSTR
|
---|