1 | LEXSC3 ; ISL Shortcuts Add/Delete ; 09-23-96
|
---|
2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996
|
---|
3 | ;
|
---|
4 | ADD ; Add a shortcut
|
---|
5 | N LEXADD,LEXERM
|
---|
6 | ADD2 F D Q:$G(LEXRP)[U!(+($G(Y))>0)
|
---|
7 | . W ! S LEXERM=$$TERM^LEXSC2 Q:LEXRP[U
|
---|
8 | . D LK(LEXERM)
|
---|
9 | I LEXRP[U,LEXRP'["^^" W ! S LEXRP="" Q
|
---|
10 | Q:LEXRP["^^" I +Y>0 D ASKADD I $G(LEXADD)>0 D ADDSC(+Y,LEXSC,LEXCX)
|
---|
11 | I LEXRP[U,LEXRP'["^^" S LEXRP="" G ADD2
|
---|
12 | Q
|
---|
13 | ASKADD ;
|
---|
14 | N LEXERM,LEXSTR S LEXERM=+Y
|
---|
15 | S LEXERM=$S(+LEXERM'>0:"",1:$G(^LEX(757.01,LEXERM,0)))
|
---|
16 | S LEXSTR="Add """_LEXSC_""" as a short cut "
|
---|
17 | S LEXSTR=LEXSTR_"(in the context of "_LEXCXN_")"
|
---|
18 | S:LEXERM'="" LEXSTR=LEXSTR_" pointing to the term """_LEXERM_""""
|
---|
19 | D WRT^LEXSC2(LEXSTR) S LEXADD=$$ADDOK^LEXSC2
|
---|
20 | Q
|
---|
21 | ADDSC(LEXEXP,LEXSC,LEXCX) ; Add shortcut
|
---|
22 | I '$D(^LEX(757.4,"B",LEXEXP)) D ADDR
|
---|
23 | I $D(^LEX(757.4,"B",LEXEXP)) D ADDS
|
---|
24 | Q
|
---|
25 | ADDS ; Add Shortcut to sub-file
|
---|
26 | N DIC,DLAYGO,X,Y,DTOUT,DUOUT
|
---|
27 | N LEXR S LEXR=$O(^LEX(757.4,"B",LEXEXP,0)) Q:'$D(^LEX(757.4,LEXR,0)) K DD,DO S DA(1)=LEXR,X=LEXSC
|
---|
28 | S DLAYGO=757.401,DIC="^LEX(757.4,"_DA(1)_",1,",DIC(0)="AEMQL",DIC("P")="757.401",DIC("DR")="1////^S X=LEXCX" D FILE^DICN
|
---|
29 | Q
|
---|
30 | ADDR ; Add record
|
---|
31 | N DIC,DLAYGO,X,Y,DTOUT,DUOUT
|
---|
32 | N LEXERM S LEXERM=$G(^LEX(757.01,LEXEXP,0))
|
---|
33 | K DD,DO S X=LEXEXP,DIC="^LEX(757.4,",DLAYGO=757.4,DIC(0)="AEMQL" D FILE^DICN
|
---|
34 | Q
|
---|
35 | LK(X) ; Set up Lookup
|
---|
36 | S X=$G(X) K DLAYGO N DIC,DIPGM,DO G:X=""!(X["^") LKQ S:$L($G(LEXDICS)) DIC("S")=LEXDICS
|
---|
37 | S XTLKKSCH("INDEX")="AWRD",(DIC,XTLKGBL,XTLKKSCH("GBL"))="^LEX(757.01,"
|
---|
38 | S LEXSHOW="ICD/CPT/DSM/NAN/OMA/NIC"
|
---|
39 | S:$L($G(^LEXT(757.2,1,2))) XTLKHLP="D "_^LEXT(757.2,1,2)
|
---|
40 | S:$L($G(^LEXT(757.2,1,3))) XTLKKSCH("DSPLY")=^LEXT(757.2,1,3)
|
---|
41 | S:'$L($G(XTLKHLP)) XTLKHLP="D XTLK^LEXHLP" S:'$L($G(XTLKKSCH("DSPLY"))) XTLKKSCH="XTLK^LEXPRNT"
|
---|
42 | S (X,XTLKX)=$$UP^XLFSTR(LEXERM),DO=@(DIC_"0)"),DIC(0)="EMQ",XTLKSAY=0
|
---|
43 | W !,"Searching ... "
|
---|
44 | D ^XTLKKWL K XTLKSAY,XTLKHLP S LEXRP=X
|
---|
45 | LKQ ;
|
---|
46 | K LEXSUB,LEXU,LEXAP,LEXUN,LEXLST,LEXLL,LEXSHOW
|
---|
47 | K XTLKX,XTLKKSCH,XTLKHLP,XTLKSAY,XTLKGBL,XTLKWD2
|
---|
48 | Q
|
---|
49 | DELS ;
|
---|
50 | N DIK,LEXC S LEXCX=+($G(LEXCX)) Q:'$L($G(LEXSC)) Q:LEXCX=0 N LEXR,LEXS
|
---|
51 | S LEXR=$O(^LEX(757.4,"ARA",$E($$UP^XLFSTR(LEXSC),1,63),LEXCX,0)) Q:+LEXR=0
|
---|
52 | S LEXS=$O(^LEX(757.4,"ARA",$E($$UP^XLFSTR(LEXSC),1,63),LEXCX,+LEXR,0)) Q:+LEXS=0
|
---|
53 | S DA(1)=+LEXR,DA=+LEXS,DIK="^LEX(757.4,"_DA(1)_",1," D ^DIK
|
---|
54 | S LEXC=$$CNT(LEXR) I LEXC'[U,+LEXC=0 D DELR(LEXR)
|
---|
55 | Q
|
---|
56 | DELR(DA) ;
|
---|
57 | S DA=+($G(DA)) Q:DA=0 Q:'$D(^LEX(757.4,DA)) N DIK S DIK="^LEX(757.4," D ^DIK
|
---|
58 | Q
|
---|
59 | CNT(X) ;
|
---|
60 | N LEXR,LEXC,LEXI S (LEXC,LEXI)=0,LEXR=+$G(X)
|
---|
61 | Q:'$L($G(^LEX(757.4,LEXR,0))) "^"
|
---|
62 | F S LEXI=$O(^LEX(757.4,LEXR,1,LEXI)) Q:+LEXI=0 D
|
---|
63 | . S LEXC=LEXC+1
|
---|
64 | S X=LEXC Q X
|
---|