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

LEXSC3.m

Go to the documentation of this file.
  1. LEXSC3 ;ISL/KER - Shortcuts Add/Delete ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.4) N/A
  1. ;
  1. ; External References
  1. ; $$UP^XLFSTR ICR 10103
  1. ; FILE^DICN ICR 10009
  1. ; ^DIK ICR 10013
  1. ; ^XTLKKWL ICR 10122
  1. ;
  1. ADD ; Add a shortcut
  1. N LEXADD,LEXERM
  1. ADD2 F D Q:$G(LEXRP)[U!(+($G(Y))>0)
  1. . W ! S LEXERM=$$TERM^LEXSC2 Q:LEXRP[U
  1. . D LK(LEXERM)
  1. I LEXRP[U,LEXRP'["^^" W ! S LEXRP="" Q
  1. Q:LEXRP["^^" I +Y>0 D ASKADD I $G(LEXADD)>0 D ADDSC(+Y,LEXSC,LEXCX)
  1. I LEXRP[U,LEXRP'["^^" S LEXRP="" G ADD2
  1. Q
  1. ASKADD ;
  1. N LEXERM,LEXSTR S LEXERM=+Y
  1. S LEXERM=$S(+LEXERM'>0:"",1:$G(^LEX(757.01,LEXERM,0)))
  1. S LEXSTR="Add """_LEXSC_""" as a short cut "
  1. S LEXSTR=LEXSTR_"(in the context of "_LEXCXN_")"
  1. S:LEXERM'="" LEXSTR=LEXSTR_" pointing to the term """_LEXERM_""""
  1. D WRT^LEXSC2(LEXSTR) S LEXADD=$$ADDOK^LEXSC2
  1. Q
  1. ADDSC(LEXEXP,LEXSC,LEXCX) ; Add shortcut
  1. I '$D(^LEX(757.4,"B",LEXEXP)) D ADDR
  1. I $D(^LEX(757.4,"B",LEXEXP)) D ADDS
  1. Q
  1. ADDS ; Add Shortcut to sub-file
  1. N DIC,DLAYGO,X,Y,DTOUT,DUOUT
  1. 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
  1. 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
  1. Q
  1. ADDR ; Add record
  1. N DIC,DLAYGO,X,Y,DTOUT,DUOUT
  1. N LEXERM S LEXERM=$G(^LEX(757.01,LEXEXP,0))
  1. K DD,DO S X=LEXEXP,DIC="^LEX(757.4,",DLAYGO=757.4,DIC(0)="AEMQL" D FILE^DICN
  1. Q
  1. LK(X) ; Set up Lookup
  1. S X=$G(X) K DLAYGO N DIC,DIPGM,DO G:X=""!(X["^") LKQ S:$L($G(LEXDICS)) DIC("S")=LEXDICS
  1. S XTLKKSCH("INDEX")="AWRD",(DIC,XTLKGBL,XTLKKSCH("GBL"))="^LEX(757.01,"
  1. S LEXSHOW="ICD/CPT/DSM/NAN/OMA/NIC"
  1. S:$L($G(^LEXT(757.2,1,2))) XTLKHLP="D "_^LEXT(757.2,1,2)
  1. S:$L($G(^LEXT(757.2,1,3))) XTLKKSCH("DSPLY")=^LEXT(757.2,1,3)
  1. S:'$L($G(XTLKHLP)) XTLKHLP="D XTLK^LEXHLP" S:'$L($G(XTLKKSCH("DSPLY"))) XTLKKSCH="XTLK^LEXPRNT"
  1. S (X,XTLKX)=$$UP^XLFSTR(LEXERM),DO=@(DIC_"0)"),DIC(0)="EMQ",XTLKSAY=0
  1. W !,"Searching ... "
  1. D ^XTLKKWL K XTLKSAY,XTLKHLP S LEXRP=X
  1. LKQ ;
  1. K LEXSUB,LEXU,LEXAP,LEXUN,LEXLST,LEXLL,LEXSHOW
  1. K XTLKX,XTLKKSCH,XTLKHLP,XTLKSAY,XTLKGBL,XTLKWD2
  1. Q
  1. DELS ;
  1. N DIK,LEXC S LEXCX=+($G(LEXCX)) Q:'$L($G(LEXSC)) Q:LEXCX=0 N LEXR,LEXS
  1. S LEXR=$O(^LEX(757.4,"ARA",$E($$UP^XLFSTR(LEXSC),1,63),LEXCX,0)) Q:+LEXR=0
  1. S LEXS=$O(^LEX(757.4,"ARA",$E($$UP^XLFSTR(LEXSC),1,63),LEXCX,+LEXR,0)) Q:+LEXS=0
  1. S DA(1)=+LEXR,DA=+LEXS,DIK="^LEX(757.4,"_DA(1)_",1," D ^DIK
  1. S LEXC=$$CNT(LEXR) I LEXC'[U,+LEXC=0 D DELR(LEXR)
  1. Q
  1. DELR(DA) ;
  1. S DA=+($G(DA)) Q:DA=0 Q:'$D(^LEX(757.4,DA)) N DIK S DIK="^LEX(757.4," D ^DIK
  1. Q
  1. CNT(X) ;
  1. N LEXR,LEXC,LEXI S (LEXC,LEXI)=0,LEXR=+$G(X)
  1. Q:'$L($G(^LEX(757.4,LEXR,0))) "^"
  1. F S LEXI=$O(^LEX(757.4,LEXR,1,LEXI)) Q:+LEXI=0 D
  1. . S LEXC=LEXC+1
  1. S X=LEXC Q X