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

LEXAR8.m

Go to the documentation of this file.
LEXAR8 ;ISL/KER - Look-up Response (CONCEPT USAGE update) ;05/23/2017
 ;;2.0;LEXICON UTILITY;**103**;Sep 23, 1996;Build 2
 ;               
 ; Global Variables
 ;    ^AUPNPROB("B")      ICR   1611
 ;    ^LEX(757,           SACC 1.3
 ;    ^LEX(757.001,       SACC 1.3
 ;    ^LEX(757.01,        SACC 1.3
 ;    ^LEX(757.02,        SACC 1.3
 ;    ^LEX(757.1,         SACC 1.3
 ;    ^TMP("LEXPL",$J)    SACC 2.3.2.5.1
 ;               
 ; External References
 ;    HOME^%ZIS           ICR  10086
 ;    ^%ZTLOAD            ICR  10063
 ;    FILE^DIE            ICR   2053
 ;    IX1^DIK             ICR  10013
 ;    IX2^DIK             ICR  10013
 ;    $$IENS^DILF         ICR   2054
 ;    $$GET1^DIQ          ICR   2056
 ;    $$CODEC^ICDEX       ICR   5747
 ;    $$CSI^ICDEX         ICR   5747
 ;    $$SAB^ICDEX         ICR   5747
 ;    $$DT^XLFDT          ICR  10103
 ;    $$UP^XLFSTR         ICR  10104
 ;               
UPDT ; Update CONCEPT USAGE file 757.001 (TaskMan)
 N X,Y,ZTQUEUED,ZTREQ,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTPRI,LEXENV
 S LEXENV=$$ENV Q:+LEXENV'>0  S ZTRTN="UPD^LEXAR8",ZTPRI=4,ZTIO="",ZTDTH=$H
 S ZTDESC="Update CONCEPT USAGE file 757.001 from the Problem List"
 D:$D(LEXTEST) @ZTRTN D:'$D(LEXTEST) ^%ZTLOAD
 I +($G(ZTSK))>0,'$D(XPDENV),'$D(LEXBUILD),'$D(LEXIGHF),'$D(LEXREQP) D
 . W !,"CONCEPT USAGE update tasked (Task #"_+($G(ZTSK))_"). "
 Q
UPD ;   Update CONCEPT USAGE file 757.001 (using Problem List)
 K ^TMP("LEXPL",$J) N LEXNOT,LEXIIEN,LEXTD,LEXCT S LEXCT=0 S LEXNOT(5570)="",LEXNOT(521774)=""
 S LEXTD=$$DT^XLFDT,LEXIIEN=0 F  S LEXIIEN=$O(^AUPNPROB("B",LEXIIEN)) Q:+LEXIIEN'>0  D
 . N LEXPIEN S LEXPIEN=0 F  S LEXPIEN=$O(^AUPNPROB("B",LEXIIEN,LEXPIEN)) Q:+LEXPIEN'>0  D
 . . N LEXLEX,LEXSCTC,LEXSTA,LEXSIEN
 . . Q:$D(LEXNOT(+LEXIIEN))
 . . S LEXCOD=$$CODEC^ICDEX(80,LEXIIEN) I $L(LEXCOD) D
 . . . S LEXSYS=$$CSI^ICDEX(80,LEXIIEN) Q:"^1^30^"'[("^"_LEXSYS_"^")
 . . . S LEXSAB=$E($$SAB^ICDEX(LEXSYS),1,3) Q:"^ICD^10D^"'[("^"_LEXSAB_"^")
 . . . S LEXSTA=$$STATCHK^LEXSRC2(LEXCOD,LEXTD,,LEXSAB)
 . . . S LEXSIEN=$P(LEXSTA,"^",2) Q:+LEXSIEN'>0
 . . . S ^TMP("LEXPL",$J,"ICD",LEXSIEN)=+($G(^TMP("LEXPL",$J,"ICD",LEXSIEN)))+1
 . . . S:'$D(^TMP("LEXPL",$J,"ICD",LEXSIEN,"SAB")) ^TMP("LEXPL",$J,"ICD",LEXSIEN,"SAB")=LEXSAB
 . . . S:LEXSAB="10D" ^TMP("LEXPL",$J,"ICD",LEXSIEN,"SAB")=LEXSAB
 . . S LEXCOD=$$GET1^DIQ(9000011,LEXPIEN,80001) I $L(LEXCOD) D
 . . . S LEXSTA=$$STATCHK^LEXSRC2(LEXCOD,LEXTD,,"SCT")
 . . . S LEXSIEN=$P(LEXSTA,"^",2) Q:+LEXSIEN'>0
 . . . S ^TMP("LEXPL",$J,"SCT",LEXSIEN)=+($G(^TMP("LEXPL",$J,"SCT",LEXSIEN)))+1
 . . . S ^TMP("LEXPL",$J,"SCT",LEXSIEN,"SAB")="SCT"
 S LEXSIEN=0 F  S LEXSIEN=$O(^TMP("LEXPL",$J,"ICD",LEXSIEN)) Q:+LEXSIEN'>0  D
 . N LEXCOD,LEXNOD,LEXFRQ,LEXSYS,LEXSAB,LEXDES,LEXSTA,LEXORG,LEXEIEN,LEXMIEN,LEXNEW
 . S LEXNOD=$G(^LEX(757.02,+LEXSIEN,0)),LEXEIEN=+LEXNOD Q:+LEXEIEN'>0  Q:"^1^30^"'[("^"_$P(LEXNOD,"^",3)_"^")
 . S LEXMIEN=+($P($G(LEXNOD),"^",4)) I LEXMIEN'>0 K ^TMP("LEXPL",$J,"ICD",LEXSIEN) Q
 . S ^TMP("LEXPL",$J,"ICD","MC",LEXMIEN)=""
 . S LEXSAB=$G(^TMP("LEXPL",$J,"ICD",LEXSIEN,"SAB")),LEXORG=$$ORIG(LEXMIEN)
 . S LEXFRQ=$G(^TMP("LEXPL",$J,"ICD",LEXSIEN))
 . S LEXNEW=LEXFRQ+LEXORG
 . D UPDF(+LEXMIEN,"PL ICD",+LEXORG,+LEXNEW)
 S LEXSIEN=0 F  S LEXSIEN=$O(^TMP("LEXPL",$J,"SCT",LEXSIEN)) Q:+LEXSIEN'>0  D
 . N LEXCOD,LEXNOD,LEXFRQ,LEXSYS,LEXSAB,LEXDES,LEXSTA,LEXORG,LEXEIEN,LEXMIEN,LEXNEW
 . S LEXNOD=$G(^LEX(757.02,+LEXSIEN,0)),LEXEIEN=+LEXNOD Q:+LEXEIEN'>0  Q:$P(LEXNOD,"^",3)'=56
 . S LEXMIEN=+($P($G(LEXNOD),"^",4)) I LEXMIEN'>0 K ^TMP("LEXPL",$J,"SCT",LEXSIEN) Q
 . S ^TMP("LEXPL",$J,"SCT","MC",LEXMIEN)=""
 . S LEXSAB="SCT",LEXORG=$$ORIG(LEXMIEN),LEXFRQ=$G(^TMP("LEXPL",$J,"SCT",LEXSIEN)),LEXNEW=LEXFRQ+LEXORG
 . D UPDF(+LEXMIEN,"PL SCT",+LEXORG,+LEXNEW)
 F LEXSAB="ICD","10D","SCT" D
 . N LEXS,LEXSIEN S LEXS=$S(LEXSAB="ICD":"SY ICD",LEXSAB="10D":"SY ICD",LEXSAB="SCT":"SY SCT",1:("SY "_LEXSAB))
 . S LEXS="Update "_LEXS,LEXSIEN=0 F  S LEXSIEN=$O(^LEX(757.02,"ASRC",LEXSAB,LEXSIEN)) Q:+LEXSIEN'>0  D
 . . N LEXMIEN,LEXORG,LEXFRQ,LEXEIEN,LEXND S LEXMIEN=+($P($G(^LEX(757.02,+LEXSIEN,0)),"^",4)) Q:+LEXMIEN'>0
 . . Q:$D(^TMP("LEXPL",$J,"ICD","MC",LEXMIEN))!($D(^TMP("LEXPL",$J,"SCT","MC",LEXMIEN)))
 . . S LEXEIEN=+($P($G(^LEX(757,+LEXMIEN,0)),"^",1)) Q:LEXEIEN'>0
 . . Q:$P($G(^LEX(757.01,+LEXEIEN,1)),"^",5)>0
 . . S (LEXORG,LEXFRQ)=$$ORIG(LEXMIEN) S LEXND=LEXMIEN_"^"_LEXORG_"^"_LEXFRQ
 . . I $G(^LEX(757.001,+LEXMIEN,0))'=LEXND D UPDF(+LEXMIEN,LEXS,+LEXORG,+LEXFRQ)
 W:'$D(ZTQUEUED)&(+($G(LEXCT))>0) !!,+($G(LEXCT))," changes made"
 W:'$D(ZTQUEUED)&(+($G(LEXCT))'>0) !!,"No changes made" K ^TMP("LEXPL",$J)
 Q
UPDF(M,S,X,Y) ;   Update CONCEPT USAGE file 757.001 (FileMan)
 N DA,LEXBUILD,LEXERR,LEXFDA,LEXFRQ,LEXOFQ,LEXIENS,LEXIGHF,LEXMIEN,LEXNEW,LEXOLD,LEXORG,LEXREQP,LEXS,XPDENV
 S LEXMIEN=+($G(M)),LEXS=$G(X),LEXORG=$G(X),LEXFRQ=$G(Y) Q:LEXMIEN'>0  Q:'$D(^LEX(757.001,+LEXMIEN,0))
 Q:+($G(^LEX(757.001,+LEXMIEN,0)))'=+LEXMIEN  Q:$D(^TMP("LEXPL",$J,"MAJ",LEXMIEN))  Q:LEXORG'?1N.N  Q:LEXFRQ'?1N.N
 S LEXOFQ=+($P($G(^LEX(757.001,+LEXMIEN,0)),"^",3)) S DA=+LEXMIEN
 S LEXIENS=$$IENS^DILF(.DA) S LEXFDA(757.001,LEXIENS,.01)=+LEXMIEN,LEXFDA(757.001,LEXIENS,1)=+LEXORG
 S LEXNEW=+LEXMIEN_"^"_+LEXORG_"^"_+LEXFRQ,LEXOLD=$G(^LEX(757.001,+LEXMIEN,0)) Q:LEXNEW=LEXOLD
 S LEXFDA(757.001,LEXIENS,2)=+LEXFRQ K LEXERR D FILE^DIE(,"LEXFDA","LEXERR")
 S:'$D(LEXERR) LEXCT=+($G(LEXCT))+1 S ^TMP("LEXPL",$J,"MAJ",LEXMIEN)="" I $D(LEXTEST)&('$D(ZTQUEUED)) D
 . N LEXID S LEXID=$G(LEXS) W !,LEXS,?15,LEXMIEN,?25,LEXORG,?30,LEXFRQ
 . I LEXOFQ?1N.N,LEXOFQ'=LEXFRQ W ?35,"(formerly ",LEXOFQ,")"
 Q
 ;
CLEART ; Set the Frequency to the Original Value (TaskMan)
 N X,Y,ZTQUEUED,ZTREQ,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTPRI,LEXENV
 S LEXENV=$$ENV Q:+LEXENV'>0  S ZTRTN="CLEAR^LEXAR8",ZTPRI=4,ZTIO="",ZTDTH=$H
 S ZTDESC="Update CONCEPT USAGE file 757.001 from the Problem List"
 D:$D(LEXTEST) @ZTRTN D:'$D(LEXTEST) ^%ZTLOAD
 I +($G(ZTSK))>0,'$D(XPDENV),'$D(LEXBUILD),'$D(LEXIGHF),'$D(LEXREQP) D
 . W !,"CONCEPT USAGE update tasked (Task #"_+($G(ZTSK))_"). "
 Q
CLEAR ; Set the Frequency to the Original Value
 N LEXCT,LEXMIEN S (LEXCT,LEXMIEN)=0 F  S LEXMIEN=$O(^LEX(757,LEXMIEN)) Q:+LEXMIEN'>0  D
 . N LEXORG,LEXFRQ,LEXOLD,LEXOFQ,LEXND S (LEXORG,LEXFRQ)=$$ORIG(+LEXMIEN)
 . S LEXND=+LEXMIEN_"^"_+LEXORG_"^"_+LEXFRQ
 . S LEXOLD=$G(^LEX(757.001,+LEXMIEN,0)),LEXOFQ=$P(LEXOLD,"^",3)
 . I LEXOLD'=LEXND D EDIT(+LEXMIEN,"Clear",+LEXORG,+LEXFRQ)
 K ^TMP("LEXPL",$J) W:'$D(ZTQUEUED)&(+($G(LEXCT))>0) !!,+($G(LEXCT))," changes made"
 W:'$D(ZTQUEUED)&(+($G(LEXCT))'>0) !!,"No changes made"
 Q
 ;
POPT ; Populate the Original Value (ONLY) (TaskMan)
 N X,Y,ZTQUEUED,ZTREQ,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTPRI,LEXENV
 S LEXENV=$$ENV Q:+LEXENV'>0  S ZTRTN="POP^LEXAR8",ZTPRI=4,ZTIO="",ZTDTH=$H
 S ZTDESC="Update CONCEPT USAGE file 757.001 from the Problem List"
 D:$D(LEXTEST) @ZTRTN D:'$D(LEXTEST) ^%ZTLOAD
 I +($G(ZTSK))>0,'$D(XPDENV),'$D(LEXBUILD),'$D(LEXIGHF),'$D(LEXREQP) D
 . W !,"CONCEPT USAGE update tasked (Task #"_+($G(ZTSK))_"). "
 Q
POP ; Populate the Original Value (ONLY)
 N LEXCT,LEXMIEN S (LEXCT,LEXMIEN)=0 F  S LEXMIEN=$O(^LEX(757,LEXMIEN)) Q:+LEXMIEN'>0  D
 . N LEXORG,LEXFRQ,LEXDIF,LEXND
 . I '$D(^LEX(757.001,+LEXMIEN,0)) D  Q
 . . N LEXORG,LEXFRQ,LEXND S (LEXORG,LEXFRQ)=$$ORIG(+LEXMIEN) S LEXND=+LEXMIEN_"^"_+LEXORG_"^"_+LEXFRQ
 . . N DA,DIK S DA=+LEXMIEN,DIK="^LEX(757.001," D IX2^DIK S ^LEX(757.001,+LEXMIEN,0)=LEXND
 . . N DA,DIK S DA=+LEXMIEN,DIK="^LEX(757.001," D IX1^DIK S LEXCT=LEXCT+1
 . . I $D(LEXTEST)&('$D(ZTQUEUED)) D
 . . . W !,"Populate",?15,LEXMIEN,?25,LEXORG,?30,LEXFRQ,?35,"(new)"
 . S LEXND=$G(^LEX(757.001,+LEXMIEN,0)),LEXORG=$P(LEXND,"^",2),LEXFRQ=$P(LEXND,"^",2)
 . S LEXDIF=LEXFRQ-LEXORG S:LEXDIF<0 LEXDIF=0
 . S (LEXORG,LEXFRQ)=$$ORIG(+LEXMIEN),LEXFRQ=LEXFRQ+LEXDIF
 . S LEXND=+LEXMIEN_"^"_+LEXORG_"^"_+LEXFRQ
 . I $G(^LEX(757.001,+LEXMIEN,0))'=LEXND D
 . . N DA,DIK,LEXOLD,LEXNEW S LEXOLD=$P($G(^LEX(757.001,+LEXMIEN,0)),"^",3),LEXNEW=+LEXFRQ
 . . S DA=+LEXMIEN,DIK="^LEX(757.001," D IX2^DIK
 . . S ^LEX(757.001,+LEXMIEN,0)=LEXND
 . . N DA,DIK S DA=+LEXMIEN,DIK="^LEX(757.001," D IX1^DIK S LEXCT=LEXCT+1
 . . I $D(LEXTEST)&('$D(ZTQUEUED)) D
 . . . W !,"Populate",?15,LEXMIEN,?25,LEXORG
 . . . W:LEXNEW?1N.N&(LEXOLD?1N.N)&(LEXNEW'=LEXOLD) ?35,"(formerly ",LEXOLD,")"
 K ^TMP("LEXPL",$J) W:'$D(ZTQUEUED)&(+($G(LEXCT))>0) !!,+($G(LEXCT))," changes made"
 W:'$D(ZTQUEUED)&(+($G(LEXCT))'>0) !!,"No changes made"
 Q
 ;
EDIT(M,S,X,Y) ;   Edit CONCEPT USAGE file 757.001 (FileMan)
 ;     M   Major Concept IEN
 ;     S   System/Type of Edit
 ;     X   Originating Value
 ;     Y   Frequency
 N LEXERR,LEXFRQ,LEXID,LEXMIEN,LEXNEW,LEXOFQ,LEXOLD,LEXORG,LEXS
 S LEXMIEN=+($G(M)),LEXS=$G(X),LEXORG=$G(X),LEXFRQ=$G(Y) Q:LEXMIEN'>0  Q:'$D(^LEX(757.001,+LEXMIEN,0))
 Q:+($G(^LEX(757.001,+LEXMIEN,0)))'=+LEXMIEN  Q:$D(^TMP("LEXPL",$J,"MAJ",LEXMIEN))  Q:LEXORG'?1N.N  Q:LEXFRQ'?1N.N
 S LEXOFQ=+($P($G(^LEX(757.001,+LEXMIEN,0)),"^",3)),LEXNEW=+LEXMIEN_"^"_+LEXORG_"^"_+LEXFRQ
 S LEXOLD=$G(^LEX(757.001,+LEXMIEN,0)) Q:LEXNEW=LEXOLD  K LEXERR I $D(^LEX(757.001,+LEXMIEN,0)) D
 . N DA,LEXDA,LEXERR,LEXFDA,LEXIENS S DA=+LEXMIEN,LEXIENS=$$IENS^DILF(.DA),LEXFDA(757.001,LEXIENS,.01)=+LEXMIEN
 . S LEXFDA(757.001,LEXIENS,1)=+LEXORG,LEXFDA(757.001,LEXIENS,2)=+LEXFRQ K LEXERR D FILE^DIE(,"LEXFDA","LEXERR")
 . S:'$D(LEXERR)&($D(LEXCT)) LEXCT=+($G(LEXCT))+1
 I '$D(^LEX(757.001,+LEXMIEN,0)) D
 . N DA,LEXDA,LEXERR,LEXFDA,LEXIENS S LEXDA(1)=+LEXMIEN,LEXFDA(757.001,"+1,",.01)=+LEXMIEN,LEXFDA(757.001,"+1,",1)=+LEXORG
 . S LEXFDA(757.001,"+1,",2)=+LEXFRQ K LEXERR D UPDATE^DIE(,"LEXFDA","LEXDA","LEXERR") S LEXOFQ=""
 . S:'$D(LEXERR)&($D(LEXCT)) LEXCT=+($G(LEXCT))+1
 S ^TMP("LEXPL",$J,"MAJ",LEXMIEN)="" I $D(LEXTEST)&('$D(ZTQUEUED)) D
 . S LEXS=$G(LEXS) W !,LEXS,?15,LEXMIEN,?25,LEXORG,?30,LEXFRQ I LEXOFQ?1N.N,LEXOFQ'=LEXFRQ W ?35,"(formerly ",LEXOFQ,")"
 Q
 ;
ORIG(X) ;   Get frequency based on codes and semantics
 N LEXBD,LEXCL,LEXFS,LEXMIEN,LEXNOD,LEXSAB,LEXSCT,LEXSM,LEXSO,LEXTIEN,LEXTX S LEXMIEN=+($G(X)) Q:'$D(^LEX(757,LEXMIEN,0)) 0
 S (X,LEXFS,LEXSO,LEXSM)=0 S LEXTIEN=0 F  S LEXTIEN=$O(^LEX(757.02,"AMC",LEXMIEN,LEXTIEN)) Q:+LEXTIEN=0  D
 . N LEXNOD,LEXSAB,LEXCL S LEXNOD=$G(^LEX(757.02,LEXTIEN,0)),LEXSAB=+($P(LEXNOD,U,3)) Q:LEXSAB'>0
 . ;     Coding Systems
 . ;       ICD-10-CM                   6
 . ;       ICD-10-PCS                  5
 . S:LEXSAB=30 LEXCL=6 S:LEXSAB=31 LEXCL=5
 . ;       ICD-9-CM                    4
 . ;       DSM III/IV                  3
 . S:LEXSAB=6 LEXCL=3 S:LEXSAB=5 LEXCL=3
 . ;       ICD-9 Proc                  2
 . S:LEXSAB=1 LEXCL=4 S:LEXSAB=2 LEXCL=2
 . ;       CPT/HCPCS                   2
 . S:LEXSAB=3 LEXCL=2 S:LEXSAB=4 LEXCL=2
 . ;       Nursing                     1
 . S:LEXSAB>10&(LEXSAB<16) LEXCL=1
 . S:+($G(LEXCL))>LEXSO LEXSO=+($G(LEXCL))
 S LEXTIEN=0 F  S LEXTIEN=$O(^LEX(757.1,"B",LEXMIEN,LEXTIEN)) Q:+LEXTIEN=0  D
 . N LEXCL,LEXBD S LEXBD=+($P($G(^LEX(757.1,LEXTIEN,0)),U,2)),LEXCL=0
 . ;     Semantic Map
 . ;       Semantic Behavior           3
 . S:LEXBD=3&(+($G(LEXCL))'>0) LEXCL="3^Behavior"
 . ;       Semantic Disease/Disorder   3
 . S:LEXBD=6 LEXCL="3^Disease/Disorder" S:LEXCL>LEXSM LEXSM=LEXCL
 S LEXTIEN=0 F  S LEXTIEN=$O(^LEX(757.01,"AMC",+LEXMIEN,LEXTIEN)) Q:+LEXTIEN'>0  D
 . Q:$P($G(^LEX(757.01,+LEXTIEN,1)),"^",2)'=8  N LEXTX,LEXSCT S LEXTX=$$UP^XLFSTR($G(^LEX(757.01,+LEXTIEN,0))),LEXSCT=0
 . ;     SNOMED Hierarchy
 . ;       SNOMED Disease/Disorder     4
 . S:LEXTX["(DISORDER" LEXSCT="4^Disorder" S:LEXTX["(FINDING" LEXSCT="4^Finding"
 . S:LEXTX["(MORPHOLOGIC ABNORMALITY" LEXSCT="4^Morphologic Abnormality"
 . S:LEXTX["(ORGANISM" LEXSCT="4^Organism"
 . ;       SNOMED Procedure            2
 . S:+($G(LEXSCT))'>0&(LEXTX["(PROCEDURE") LEXSCT="2^Procedure"
 . S:+LEXSCT>LEXFS LEXFS=LEXSCT
 S X=+LEXSO S:X'>0 X=+LEXSM S:+LEXFS>X X=+LEXFS
 Q X
 ;
INC(X) ; Increment Expression
 ;
 ; Input     
 ;     
 ;    X       IEN of the EXPRESSIONS file 757.01
 ;        
 ; Output    
 ;     
 ;    None
 ;     
 ;    This API increments the frequency of use value in the 
 ;    CONCEPT USAGE file #757.001.  This value is used to 
 ;    position the most frequently used terms at the top of 
 ;    the selection list.
 ;     
 N LEXEIEN,LEXMIEN,LEXMC,LEXOR,LEXFQ,DA,DIK
 S LEXEIEN=+($G(X)) Q:'$D(^LEX(757.01,+LEXEIEN,0))  S LEXMIEN=+($G(^LEX(757.01,+LEXEIEN,1)))
 Q:'$D(^LEX(757,+LEXMIEN,0))  Q:'$D(^LEX(757.001,+LEXMIEN,0))
 S LEXMC=+($P($G(^LEX(757.001,+LEXMIEN,0)),"^",1)),LEXOR=+($P($G(^LEX(757.001,+LEXMIEN,0)),"^",2))
 S LEXFQ=+($P($G(^LEX(757.001,+LEXMIEN,0)),"^",3))+1 Q:LEXMC'=LEXMIEN
 S DA=LEXMIEN,DIK="^LEX(757.001," D IX2^DIK
 S ^LEX(757.001,+LEXMIEN,0)=LEXMC_"^"_LEXOR_"^"_LEXFQ
 S DA=LEXMIEN,DIK="^LEX(757.001," D IX1^DIK
 Q
 ;
 ; Miscellaneous
ENV(X) ;   Check environment
 N LEXNM,LEXTEST S DT=$$DT^XLFDT D HOME^%ZIS S U="^"
 I +($G(DUZ))=0 W !!,?5,"DUZ not defined" Q 0
 S LEXNM=$$GET1^DIQ(200,(DUZ_","),.01)
 I '$L(LEXNM) W !!,?5,"DUZ not valid" Q 0
 Q 1