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

LEXQHL4.m

Go to the documentation of this file.
LEXQHL4 ;ISL/KER - Query History - CPT Modifier Extract ;05/23/2017
 ;;2.0;LEXICON UTILITY;**62,80,103**;Sep 23, 1996;Build 2
 ;               
 ; Global Variables
 ;    ^DIC(81.3,          ICR   4492
 ;    ^TMP("LEXQHL")      SACC 2.3.2.5.1
 ;    ^TMP("LEXQHLA")     SACC 2.3.2.5.1
 ;               
 ; External References
 ;    $$MOD^ICPTMOD       ICR   1996
 ;    $$UP^XLFSTR         ICR  10104
 ;               
 Q
EN(X,Y,LEX) ; CPT Modifier File
 N LEXDISP,LEXRAN,LEXIEN,LEXIA,LEXEF,LEXCT,LEXC S LEXIEN=$G(X),LEXDISP=$G(Y),LEXRAN=$G(LEX),LEXIA="" Q:+LEXIEN'>0  Q:'$D(^DIC(81.3,+LEXIEN,0))
 S LEXC=$P($G(^DIC(81.3,+LEXIEN,0)),U,1) K ^TMP("LEXQHL",$J) S ^TMP("LEXQHL",$J,"IEN")=LEXIEN,^TMP("LEXQHL",$J,"CODE")=LEXC
 S ^TMP("LEXQHL",$J,"NAME")=$P($$MOD^ICPTMOD(LEXIEN,"I"),U,3) S:'$L(LEXDISP) LEXDISP="SB" D ST,NM,DS,AR,IR D:$L($G(LEXDISP)) DP
 Q
ST ;   1  Status
 N LEXCT,LEXD,LEXE,LEXEF,LEXH,LEXMS,LEXN,LEXS,LEXT
 S LEXCT=0,LEXEF="" F  S LEXEF=$O(^DIC(81.3,+LEXIEN,60,"B",LEXEF)) Q:'$L(LEXEF)  D
 . N LEXH S LEXH=0 F  S LEXH=$O(^DIC(81.3,+LEXIEN,60,"B",LEXEF,LEXH)) Q:+LEXH'>0  D
 . . N LEXN,LEXS,LEXE,LEXT,LEXD,LEXMS S LEXN=$G(^DIC(81.3,+LEXIEN,60,+LEXH,0)),LEXE=$P(LEXN,U,1),LEXS=$P(LEXN,U,2)
 . . Q:+LEXS'>0&(LEXCT'>0)  S LEXCT=LEXCT+1,LEXMS=$$MS^LEXQHLM(LEXE,1),LEXT=$S(+LEXS>0:"Activation",1:"Inactivation")
 . . S:+LEXS>0&(LEXCT=1) LEXT="Initial Activation"_LEXMS,LEXIA=LEXE
 . . S:$O(^DIC(81.3,+LEXIEN,60,"B",LEXEF))=""&(LEXCT>1) LEXT=LEXT_" (final status change)"
 . . S LEXD=$$SD^LEXQHLM(LEXE) S ^TMP("LEXQHL",$J,LEXEF,1,1)=LEXD_U_LEXT
 Q
NM ;   2  Modifier Name
 N LEX,LEXC,LEXCT,LEXD,LEXE,LEXEF,LEXH,LEXI,LEXN,LEXS,LEXT
 S LEXCT=0,LEXEF="" F  S LEXEF=$O(^DIC(81.3,+LEXIEN,61,"B",LEXEF)) Q:'$L(LEXEF)  D
 . N LEXH S LEXH=0 F  S LEXH=$O(^DIC(81.3,+LEXIEN,61,"B",LEXEF,LEXH)) Q:+LEXH'>0  D
 . . N LEXN,LEXS,LEXE,LEXT,LEXD,LEX,LEXI S LEXN=$G(^DIC(81.3,+LEXIEN,61,+LEXH,0)),LEXE=$P(LEXN,U,1),LEXT=$$UP^XLFSTR($P(LEXN,U,2))
 . . S LEXCT=LEXCT+1,LEX(1)=LEXT D PR^LEXU(.LEX,63)
 . . S LEXS=$S(+LEXCT=1:"Initial Modifier Name",+LEXCT>1:"Updated Modifier Name",1:"Modifier Name")
 . . S:$O(^DIC(81.3,+LEXIEN,61,"B",LEXEF))=""&(LEXCT>1) LEXT=LEXT_" (final Modifier Name change)"
 . . S LEXD=$$SD^LEXQHLM(LEXE) S ^TMP("LEXQHL",$J,LEXEF,2,1)=LEXD_U_LEXS
 . . S LEXI=0 F  S LEXI=$O(LEX(LEXI)) Q:+LEXI'>0  D
 . . . N LEXC S LEXT=$G(LEX(LEXI)) Q:'$L(LEXT)  S LEXC=$O(^TMP("LEXQHL",$J,LEXEF,2," "),-1)+1
 . . . S ^TMP("LEXQHL",$J,LEXEF,2,LEXC)=U_LEXT
 Q
DS ;   3  Description
 N LEX,LEXC,LEXCT,LEXD,LEXE,LEXEF,LEXH,LEXI,LEXN,LEXS,LEXT
 S LEXCT=0,LEXEF="" F  S LEXEF=$O(^DIC(81.3,+LEXIEN,62,"B",LEXEF)) Q:'$L(LEXEF)  D
 . N LEXH S LEXH=0 F  S LEXH=$O(^DIC(81.3,+LEXIEN,62,"B",LEXEF,LEXH)) Q:+LEXH'>0  D
 . . N LEXC,LEXN,LEXS,LEXE,LEXT,LEXD,LEX,LEXI S LEXN=$G(^DIC(81.3,+LEXIEN,62,+LEXH,0))
 . . S LEXE=$P(LEXN,U,1) S (LEXC,LEXI)=0 F  S LEXI=$O(^DIC(81.3,+LEXIEN,62,+LEXH,1,LEXI)) Q:+LEXI'>0  D
 . . . S LEXT=$$TM^LEXQHLM($$UP^XLFSTR($G(^DIC(81.3,+LEXIEN,62,+LEXH,1,LEXI,0)))) Q:'$L(LEXT)  S LEXC=LEXC+1,LEX(LEXC)=LEXT
 . . S LEXCT=LEXCT+1 D PR^LEXU(.LEX,63)
 . . S LEXS=$S(+LEXCT=1:"Initial Description",+LEXCT>1:"Updated Description",1:"Description")
 . . S:$O(^DIC(81.3,+LEXIEN,62,"B",LEXEF))=""&(LEXCT>1) LEXT=LEXT_" (final description change)"
 . . S LEXD=$$SD^LEXQHLM(LEXE) S ^TMP("LEXQHL",$J,LEXEF,3,1)=LEXD_U_LEXS
 . . S LEXI=0 F  S LEXI=$O(LEX(LEXI)) Q:+LEXI'>0  D
 . . . N LEXC S LEXT=$G(LEX(LEXI)) Q:'$L(LEXT)  S LEXC=$O(^TMP("LEXQHL",$J,LEXEF,3," "),-1)+1
 . . . S ^TMP("LEXQHL",$J,LEXEF,3,LEXC)=U_LEXT
 Q
AR ;   4  Active Ranges
 K ^TMP("LEXQHLA",$J) N LEXACT,LEXAT,LEXATD,LEXB,LEXC,LEXD,LEXE,LEXI,LEXIA,LEXIAD,LEXICT,LEXN,LEXR
 S (LEXACT,LEXICT)=0,LEXI=0 F  S LEXI=$O(^DIC(81.3,+LEXIEN,10,LEXI)) Q:+LEXI'>0  D
 . N LEXN,LEXAT,LEXATD,LEXIA,LEXIAD,LEXB,LEXE,LEXR S LEXN=$G(^DIC(81.3,+LEXIEN,10,+LEXI,0)),LEXB=$P(LEXN,U,1) Q:$L(LEXB)'=5
 . S LEXE=$P(LEXN,U,2) S:'$L(LEXE) LEXE=LEXB S LEXAT=$P(LEXN,U,3) Q:'$L(LEXAT)  Q:LEXAT'?7N  S LEXATD=$$SD^LEXQHLM(LEXAT) Q:'$L(LEXATD)
 . S LEXIA=$P(LEXN,U,4) S:$L(LEXIA) LEXIAD=$$SD^LEXQHLM(LEXIA) Q:$L($G(LEXIA))&('$L($G(LEXIAD)))  S LEXR=LEXB_" - "_LEXE Q:LEXIA?7N
 . S LEXACT=LEXACT+1,^TMP("LEXQHLA",$J,LEXAT,LEXACT)=LEXATD_U_LEXR,^TMP("LEXQHLA",$J,"B",LEXR,LEXAT,LEXACT)=""
 S LEXC=0,LEXB="" F  S LEXB=$O(^TMP("LEXQHLA",$J,"B",LEXB)) Q:'$L(LEXB)  D
 . N LEXAT S LEXAT="" F  S LEXAT=$O(^TMP("LEXQHLA",$J,"B",LEXB,LEXAT)) Q:'$L(LEXAT)  D
 . . N LEXACT S LEXACT=0 F  S LEXACT=$O(^TMP("LEXQHLA",$J,"B",LEXB,LEXAT,LEXACT)) Q:+LEXACT'>0  D
 . . . N LEXN,LEXD,LEXR S LEXN=$G(^TMP("LEXQHLA",$J,LEXAT,LEXACT)),LEXD=$P(LEXN,U,1),LEXR=$P(LEXN,U,2) Q:'$L(LEXD)  Q:'$L(LEXR)
 . . . S LEXC=LEXC+1,^TMP("LEXQHL",$J,LEXAT,4,LEXC)=LEXN
 K ^TMP("LEXQHLA",$J)
 Q
IR ;   5  Inactive Ranges
 K ^TMP("LEXQHLA",$J) N LEXACT,LEXAT,LEXATD,LEXB,LEXC,LEXD,LEXE,LEXI,LEXIA,LEXIAD,LEXICT,LEXN,LEXR
 S (LEXACT,LEXICT)=0,LEXI=0 F  S LEXI=$O(^DIC(81.3,+LEXIEN,10,LEXI)) Q:+LEXI'>0  D
 . N LEXN,LEXAT,LEXATD,LEXIA,LEXIAD,LEXB,LEXE,LEXR S LEXN=$G(^DIC(81.3,+LEXIEN,10,+LEXI,0)),LEXB=$P(LEXN,U,1) Q:$L(LEXB)'=5
 . S LEXE=$P(LEXN,U,2) S:'$L(LEXE) LEXE=LEXB S LEXAT=$P(LEXN,U,3) Q:'$L(LEXAT)  Q:LEXAT'?7N  S LEXATD=$$SD^LEXQHLM(LEXAT) Q:'$L(LEXATD)
 . S LEXIA=$P(LEXN,U,4) S:$L(LEXIA) LEXIAD=$$SD^LEXQHLM(LEXIA) Q:$L($G(LEXIA))&('$L($G(LEXIAD)))  S LEXR=LEXB_" - "_LEXE Q:LEXIA'?7N
 . S LEXACT=LEXACT+1,^TMP("LEXQHLA",$J,LEXIA,LEXACT)=LEXIAD_U_LEXR,^TMP("LEXQHLA",$J,"B",LEXR,LEXIA,LEXACT)=""
 S LEXC=0,LEXB="" F  S LEXB=$O(^TMP("LEXQHLA",$J,"B",LEXB)) Q:'$L(LEXB)  D
 . N LEXAT S LEXAT="" F  S LEXAT=$O(^TMP("LEXQHLA",$J,"B",LEXB,LEXAT)) Q:'$L(LEXAT)  D
 . . N LEXACT S LEXACT=0 F  S LEXACT=$O(^TMP("LEXQHLA",$J,"B",LEXB,LEXAT,LEXACT)) Q:+LEXACT'>0  D
 . . . N LEXN,LEXD,LEXR S LEXN=$G(^TMP("LEXQHLA",$J,LEXAT,LEXACT)),LEXD=$P(LEXN,U,1),LEXR=$P(LEXN,U,2) Q:'$L(LEXD)  Q:'$L(LEXR)
 . . . S LEXC=LEXC+1,^TMP("LEXQHL",$J,LEXAT,5,LEXC)=LEXN
 K ^TMP("LEXQHLA",$J)
 Q
 ;     
DP ; Display
 S LEXDISP=$G(LEXDISP) Q:$L(LEXDISP)>8  Q:$L(LEXDISP)<2  Q:LEXDISP["^"  N LEXL S LEXL=$T(@LEXDISP+0) Q:'$L(LEXL)
 D @LEXDISP
 Q
SB ;   Subjective
 D ATTR^LEXQM N LEX1,LEX2,LEX3,LEXC,LEXCT,LEXD,LEXE,LEXEC,LEXG,LEXHD,LEXI,LEXID,LEXM,LEXN,LEXN1,LEXN2,LEXN3,LEXO1,LEXO2,LEXO3,LEXP,LEXS,LEXT
 S LEXC=$G(^TMP("LEXQHL",$J,"CODE")),LEXI=$G(^TMP("LEXQHL",$J,"IEN")),LEXN=$G(^TMP("LEXQHL",$J,"NAME"))
 S LEXT="Code:  "_LEXC,LEXT=LEXT_$J(" ",(16-$L(LEXT)))_LEXN D TL^LEXQHLM(($G(BOLD)_LEXT_$G(NORM)))
 S LEXT="",LEXT=LEXT_$J(" ",(16-$L(LEXT)))_"IEN:  "_LEXI D TL^LEXQHLM(($G(BOLD)_LEXT_$G(NORM)))
 F LEXID=1:1:5 D
 . N LEXHD,LEXCT,LEXEC S (LEXEC,LEXCT)=0,LEXHD=$$HD(LEXID) Q:'$L(LEXHD)  S LEXP=""
 . S LEX1=0 F  S LEX1=$O(^TMP("LEXQHL",$J,LEX1)) Q:+LEX1'>0  D
 . . S LEXEC=LEXEC+1 I LEXID=1 D  Q
 . . . S LEXN=$G(^TMP("LEXQHL",$J,LEX1,LEXID,1)) Q:'$L(LEXN)  S LEXE=$P(LEXN,U,1),LEXS=$P(LEXN,U,2)
 . . . Q:'$L(LEXE)  Q:'$L(LEXS)  S LEXCT=LEXCT+1 S LEXE=$G(BOLD)_LEXE_$G(NORM)
 . . . D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM)))
 . . . S LEXT=LEXE,LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXS,LEXT="   "_LEXT D TL^LEXQHLM(LEXT)
 . . I LEXID=4 D  Q
 . . . Q:+($G(LEXRAN))'>0  N LEXP,LEX2,LEXSTR,LEXL S LEXSTR="",(LEXL,LEXP)="",LEX2=0 F  S LEX2=$O(^TMP("LEXQHL",$J,LEX1,4,LEX2)) Q:+LEX2'>0  D
 . . . . N LEXN,LEXD,LEXE,LEXM,LEXT S LEXN=$G(^TMP("LEXQHL",$J,LEX1,4,LEX2)) S (LEXE,LEXD,LEXL)=$P(LEXN,U,1),LEXM=$P(LEXN,U,2) Q:'$L(LEXD)  Q:'$L(LEXM)
 . . . . I ($L(LEXSTR)+$L(LEXM)+3)'>63 S LEXSTR=$$TM^LEXQHLM(LEXSTR_"   "_LEXM) Q
 . . . . I ($L(LEXSTR)+$L(LEXM)+3)>63 D
 . . . . . S LEXSTR=$$TM^LEXQHLM(LEXSTR) S:LEXD=LEXP LEXD="" S:$L($$TM^LEXQHLM(LEXD)) LEXD=$G(BOLD)_LEXD_$G(NORM)
 . . . . . S:$L(LEXE) LEXP=LEXE S LEXT=LEXD,LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXSTR,LEXT="   "_LEXT
 . . . . . S LEXCT=LEXCT+1 D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT) S LEXSTR=LEXM
 . . . S LEXSTR=$$TM^LEXQHLM(LEXSTR) I $L(LEXSTR) D
 . . . . S:$G(LEXL)=$G(LEXP)&($L(LEXP)) LEXL="" S:$L(LEXL) LEXP=LEXL S:$L($$TM^LEXQHLM(LEXL)) LEXL=$G(BOLD)_LEXL_$G(NORM)
 . . . . S LEXT=LEXL,LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXSTR,LEXT="   "_LEXT
 . . . . S LEXCT=LEXCT+1 D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT)
 . . I LEXID=5 D  Q
 . . . Q:+($G(LEXRAN))'>0  N LEXP,LEX2,LEXSTR,LEXL S LEXSTR="",(LEXL,LEXP)="",LEX2=0 F  S LEX2=$O(^TMP("LEXQHL",$J,LEX1,5,LEX2)) Q:+LEX2'>0  D
 . . . . N LEXN,LEXD,LEXE,LEXM,LEXT S LEXN=$G(^TMP("LEXQHL",$J,LEX1,5,LEX2))
 . . . . S (LEXE,LEXD,LEXL)=$P(LEXN,U,1),LEXM=$P(LEXN,U,2) Q:'$L(LEXD)  Q:'$L(LEXM)
 . . . . I ($L(LEXSTR)+$L(LEXM)+3)'>63 S LEXSTR=$$TM^LEXQHLM(LEXSTR_"   "_LEXM) Q
 . . . . I ($L(LEXSTR)+$L(LEXM)+3)>63 D
 . . . . . S LEXSTR=$$TM^LEXQHLM(LEXSTR) S:LEXD=LEXP LEXD="" S:$L($$TM^LEXQHLM(LEXD)) LEXD=$G(BOLD)_LEXD_$G(NORM)
 . . . . . S:$L(LEXE) LEXP=LEXE S LEXT=LEXD,LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXSTR,LEXT="   "_LEXT
 . . . . . S LEXCT=LEXCT+1 D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT) S LEXSTR=LEXM
 . . . S LEXSTR=$$TM^LEXQHLM(LEXSTR) I $L(LEXSTR) D
 . . . . S:$G(LEXL)=$G(LEXP)&($L(LEXP)) LEXL="" S:$L(LEXL) LEXP=LEXL S LEXT=LEXL
 . . . . S LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXSTR,LEXT="   "_LEXT
 . . . . S LEXCT=LEXCT+1 D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT)
 . . N LEX2 S LEX2=0,LEXE="" F  S LEX2=$O(^TMP("LEXQHL",$J,LEX1,LEXID,LEX2)) Q:+LEX2'>0  D
 . . . S LEXN=$G(^TMP("LEXQHL",$J,LEX1,LEXID,LEX2)) S:LEX2=1 LEXE=$P(LEXN,U,1) Q:LEX2=1  Q:'$L(LEXE)
 . . . I LEX2=2 D  Q
 . . . . N LEXD S LEXD=LEXE S:$L($$TM^LEXQHLM(LEXD)) LEXD=$G(BOLD)_LEXD_$G(NORM) S LEXCT=LEXCT+1,LEXT=$G(LEXD)
 . . . . S LEXS=$P(LEXN,U,2),LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXS,LEXT="   "_LEXT
 . . . . D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT)
 . . . I LEX2>2 D  Q
 . . . . S LEXCT=LEXCT+1,LEXT="",LEXS=$P(LEXN,U,2),LEXT=LEXT_$J(" ",(11-$L(LEXT)))_"  "_LEXS,LEXT="   "_LEXT
 . . . . D:LEXCT=1 BL^LEXQHLM,TL^LEXQHLM(($G(BOLD)_" "_LEXHD_$G(NORM))) D TL^LEXQHLM(LEXT)
 D KATTR^LEXQM
 Q
CH ;   Chronological
 D ATTR^LEXQM N LEX1,LEX2,LEX3,LEXC,LEXD,LEXDC,LEXI,LEXL1,LEXL2,LEXL3,LEXN,LEXP,LEXS,LEXT,LEXT1,LEXT2,LEXT3
 S LEXC=$G(^TMP("LEXQHL",$J,"CODE")),LEXI=$G(^TMP("LEXQHL",$J,"IEN")),LEXN=$G(^TMP("LEXQHL",$J,"NAME"))
 S LEXT="Code:  "_LEXC,LEXT=LEXT_$J(" ",(16-$L(LEXT)))_LEXN D TL^LEXQHLM(($G(BOLD)_" "_LEXT_$G(NORM)))
 S LEXT="",LEXT=LEXT_$J(" ",(16-$L(LEXT)))_"IEN:  "_LEXI D TL^LEXQHLM(($G(BOLD)_" "_LEXT_$G(NORM)))
 S LEXP="",LEX1=0 F  S LEX1=$O(^TMP("LEXQHL",$J,LEX1)) Q:+LEX1'>0  D
 . D BL^LEXQHLM N LEX2,LEXDC S (LEXDC,LEX2)=0 F  S LEX2=$O(^TMP("LEXQHL",$J,LEX1,LEX2)) Q:+LEX2'>0  D
 . . I LEX2=4!(LEX2=5) D  Q
 . . . Q:+($G(LEXRAN))'>0  N LEXHD,LEXEC,LEXSTR,LEXCT S LEXHD=$$HD(LEX2),(LEXCT,LEXEC)=0,LEXSTR=""
 . . . S LEX3=0 F  S LEX3=$O(^TMP("LEXQHL",$J,LEX1,LEX2,LEX3)) Q:+LEX3'>0  D
 . . . . N LEXN,LEXD,LEXS,LEXSPC S LEXN=$G(^TMP("LEXQHL",$J,LEX1,LEX2,LEX3)),LEXD=$P(LEXN,U,1),LEXS=$P(LEXN,U,2),LEXSPC="  "
 . . . . I $L($$TM^LEXQM(LEXD)) S LEXD=$G(BOLD)_LEXD_$G(NORM),LEXSPC=$G(BOLD)_"- "_$G(NORM)
 . . . . S LEXEC=LEXEC+1 I LEXEC=1 D
 . . . . . S LEXT=$S(LEXD'=LEXP:LEXD,1:""),LEXT=LEXT_$J(" ",(11-$L(LEXT)))_LEXSPC_$G(BOLD)_LEXHD_$G(NORM),LEXT="   "_LEXT D TL^LEXQHLM(LEXT) S LEXCT=LEXCT+1
 . . . . S:LEXD'="" LEXP=LEXD I ($L(LEXSTR)+$L(LEXS)+3)'>63 S LEXSTR=$$TM^LEXQHLM(LEXSTR_"   "_LEXS)
 . . . . I ($L(LEXSTR)+$L(LEXS)+3)>63 S LEXSTR=$$TM^LEXQHLM(LEXSTR),LEXT=$J(" ",11)_"  "_LEXSTR,LEXT="   "_LEXT D TL^LEXQHLM(LEXT) S LEXSTR="",LEXCT=LEXCT+1
 . . . S LEXSTR=$$TM^LEXQHLM(LEXSTR) I $L(LEXSTR) D
 . . . . S:$G(LEXL)=$G(LEXP)&($L(LEXP)) LEXL="" S:$L(LEXL) LEXP=LEXL S LEXT=$J(" ",11)_"  "_LEXSTR,LEXT="   "_LEXT S LEXCT=LEXCT+1 D TL^LEXQHLM(LEXT)
 . . N LEX3 S LEX3=0 F  S LEX3=$O(^TMP("LEXQHL",$J,LEX1,LEX2,LEX3)) Q:+LEX3'>0  D
 . . . N LEXN,LEXD,LEXS,LEXSPC S LEXN=$G(^TMP("LEXQHL",$J,LEX1,LEX2,LEX3)),LEXD=$P(LEXN,U,1),LEXS=$P(LEXN,U,2),LEXSPC="  "
 . . . I $L($$TM^LEXQM(LEXD)) S LEXD=$G(BOLD)_LEXD_$G(NORM),LEXSPC=$G(BOLD)_"- "_$G(NORM),LEXS=$G(BOLD)_LEXS_$G(NORM)
 . . . S LEXT=$S(LEXD'=LEXP:LEXD,1:""),LEXT=LEXT_$J(" ",(11-$L(LEXT)))_$S($L(LEXD):"- ",1:"  ")_LEXS S LEXT="   "_LEXT D TL^LEXQHLM(LEXT)
 . . . S:LEXD'="" LEXP=LEXD
 D KATTR^LEXQM
 Q
 ; 
 ; Miscellaneous
IA(X) ;   Initial Activation
 N LEXEF,LEXH,LEXN,LEXS,LEXE,LEXIEN S LEXIEN=+($G(X)),LEXE="" Q:+LEXIEN'>0 ""  Q:'$D(^DIC(81.3,+LEXIEN,60,0)) ""  S LEXEF="" F  S LEXEF=$O(^DIC(81.3,+LEXIEN,60,"B",LEXEF)) Q:'$L(LEXEF)  D  Q:$G(LEXE)?7N
 . S LEXH=0 F  S LEXH=$O(^DIC(81.3,+LEXIEN,60,"B",LEXEF,LEXH)) Q:+LEXH'>0  S LEXN=$G(^DIC(81.3,+LEXIEN,60,+LEXH,0)) S:+($P(LEXN,U,2))>0 LEXE=$P(LEXN,U,1) Q:$G(LEXE)?7N
 S X="" S:$G(LEXE)?7N X=$G(LEXE)
 Q X
HD(X) ;   Header
 Q:+($G(X))=1 "Status"  Q:+($G(X))=2 "Modifier Name"  Q:+($G(X))=3 "Description"  Q:+($G(X))=4 "Activated Ranges"  Q:+($G(X))=5 "Inactivated Ranges"
 Q ""