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

LEXAR4.m

Go to the documentation of this file.
  1. LEXAR4 ;ISL/KER - Look-up Response (Select Entry) ;05/23/2017
  1. ;;2.0;LEXICON UTILITY;**4,5,6,25,55,80,103**;Sep 23, 1996;Build 2
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.001) N/A
  1. ; ^TMP("LEXHIT") SACC 2.3.2.5.1
  1. ; ^TMP("LEXSCH") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; HOME^%ZIS ICR 10086
  1. ; ^%ZTLOAD ICR 10063
  1. ; ^DIE ICR 10018
  1. ;
  1. SEL(LEXUR,LEXVDT) ; Select # on list
  1. K LEX("SEL") D VDT^LEXU N LEXLVL,LEXMAX,LEXLF S LEXLF=1,LEXMAX=+($G(^TMP("LEXSCH",$J,"LST",0)))
  1. S LEX=+($G(LEX)),LEXUR=+($G(LEXUR))
  1. I LEXMAX=0!(LEX=0) D EDA^LEXAR G SELQ
  1. K LEX("ERR"),LEX("SEL") I LEXUR'>0!(LEXUR>LEXMAX) D G SELQ
  1. . S LEX("ERR",0)=+($G(LEX("ERR",0)))+1
  1. . S LEX("ERR",LEX("ERR",0))="User response out of range"
  1. I '$D(^TMP("LEXHIT",$J,LEXUR)) D G SELQ
  1. . S LEX("ERR",0)=+($G(LEX("ERR",0)))+1
  1. . S LEX("ERR",LEX("ERR",0))="Selection is either out of range or invalid"
  1. N LEXEXP S LEXEXP=+($P(^TMP("LEXHIT",$J,LEXUR),"^",1))
  1. I '$D(^LEX(757.01,LEXEXP,0)) D G SELQ
  1. . S LEX("ERR",0)=+($G(LEX("ERR",0)))+1
  1. . S LEX("ERR",LEX("ERR",0))="Selection not found in the Lexicon"
  1. S LEXLVL=+($G(LEX("LVL")))
  1. D SET(LEXEXP,$G(LEXVDT)),EDU^LEXAR
  1. G SELQ
  1. SET(LEXEXP,LEXVDT) ; Set LEX("SEL") Nodes
  1. K LEX("SEL") D VDT^LEXU D SETEXP^LEXAR5(LEXEXP)
  1. N LEXMC S LEXMC=+($P(^LEX(757.01,LEXEXP,1),"^",1))
  1. ; If selected from the list increment frequency
  1. ; Temporarily deactivated until after Oct 1, 2013
  1. ; D:+($G(^TMP("LEXSCH",$J,"LST",0)))>0&(+($G(^TMP("LEXSCH",$J,"APP",0)))>1) INC(LEXMC)
  1. N LEXMCE S LEXMCE=+(^LEX(757,LEXMC,0))
  1. D SETSRC^LEXAR5(LEXEXP,$G(LEXVDT))
  1. D:'$D(LEX("SEL","SRC","D",LEXMCE))&(LEXMCE'=LEXEXP) SETSRC^LEXAR5(LEXMCE,$G(LEXVDT))
  1. D SETDEF^LEXAR5(LEXMCE)
  1. D SETSTY^LEXAR5(LEXMC)
  1. N LEXE S LEXE=0 F S LEXE=$O(^LEX(757.01,"AMC",LEXMC,LEXE)) Q:+LEXE=0 D
  1. . Q:LEXE=LEXEXP D SETEXP^LEXAR5(LEXE),SETSRC^LEXAR5(LEXE,$G(LEXVDT))
  1. G:+($G(LEXLF))=0 SELQ
  1. Q
  1. INC(LEXMC) ; Increment frequency counter in ^LEX(757)
  1. N LEXF,LEXFQ S LEXMC=+($G(LEXMC)) Q:LEXMC=0 Q:'$D(^LEX(757,LEXMC))
  1. S ZTSAVE("LEXMC")="",ZTRTN="FQ^LEXAR4",ZTDESC="Updating Lexicon Frequencies",ZTIO="",ZTDTH=$H
  1. D ^%ZTLOAD,HOME^%ZIS K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. Q
  1. FQ ; Edit Concept Frequency
  1. N LEXA,LEXM,LEXQ,LEXS,DA,DIC,DIE S:$D(ZTQUEUED) ZTREQ="@"
  1. S LEXM=+($G(LEXMC)) Q:LEXM=0 Q:'$D(^LEX(757,LEXM,0))
  1. I '$D(^LEX(757.001,LEXM,0)) D AFQ G FQQ
  1. S LEXQ=+($P($G(^LEX(757.001,LEXM,0)),"^",3)),LEXQ=LEXQ+1
  1. S DA=+($G(LEXM)) Q:+DA=0 Q:'$D(^LEX(757.001,DA,0))
  1. S LEXM=+($G(LEXMC)) Q:'$D(^LEX(757,LEXMC,0)) S LEXA=0
  1. S (DIC,DIE)="^LEX(757.001,",DR="2////^S X=LEXQ"
  1. EFQ ; Lock record and edit frequency record
  1. L +^LEX(757.001,+DA):1 I '$T S LEXA=LEXA+1 H 2 G:LEXA<4 EFQ
  1. D:LEXA<4 ^DIE L -^LEX(757.001,+DA)
  1. G FQQ
  1. Q
  1. AFQ ; Add frequency record
  1. N DIC,DA S ^LEX(757.001,LEXM,0)=LEXM_"^0^0" S DIC="^LEX(757.001,",DA=LEXM D SET^LEXNDX2 Q
  1. Q
  1. FQQ ; Quit Frequency
  1. Q
  1. SELQ ; Quit Selection
  1. D:$D(LEX("SEL")) SEL^LEXAR
  1. D:$D(LEX("LIST")) LST^LEXAR
  1. Q