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

LEXRXXS.m

Go to the documentation of this file.
  1. LEXRXXS ;ISL/KER - Re-Index Save/Send ;05/23/2017
  1. ;;2.0;LEXICON UTILITY;**81,80,103**;Sep 23, 1996;Build 2
  1. ;
  1. ; Global Variables
  1. ; ^LEX( SACC 1.3
  1. ; ^LEXT( SACC 1.3
  1. ; ^TMP("LEXRX",$J) SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ; HOME^%ZIS ICR 10086
  1. ; ^DIC ICR 10006
  1. ; ^XMD ICR 10070
  1. ;
  1. ; Local Variables NEWed or KILLed Elsewhere
  1. ; LEXAMSO User Selection NEWed/KILLed by LEXRX
  1. ; LEXSUBJ Msg Subject NEWed/KILLed by LEXRXXT
  1. ; LEXTITL Msg Title NEWed/KILLed by LEXRXXT
  1. ; LEXFMT Display format NEWed/KILLed by LEXRXXT2
  1. ; LEXQ Quiet flag NEWed/KILLed by LEXRXXT2
  1. ; LEXNAM Task Name NEWed/KILLed by LEXRXXT2
  1. ; LEXINS Install Flag NEWed/KILLed by Post-Install
  1. ; ZTQUEUED Task flag NEWed/KILLed by Taskman
  1. ;
  1. Q
  1. ; Repair Index Report
  1. REP(LEXFI,LEXFS,LEXIDX,LEXNDS,LEXERR,LEXIDXT,LEXELP) ; Build
  1. S LEXFI=$G(LEXFI),LEXFS=$G(LEXFS),LEXIDX=$G(LEXIDX),LEXNDS=+($G(LEXNDS))
  1. S LEXERR=+($G(LEXERR)),LEXIDXT=$G(LEXIDXT),LEXELP=$G(LEXELP) H 1
  1. S:+($G(LEXFI))>0&('$L($G(LEXELP))) LEXELP="00:00:01"
  1. N LEXT,LEXNM,LEXTELP,LEXTERR,LEXTFI,LEXTFS,LEXTIDT,LEXTIDX,LEXTNDS,LEXIDXN
  1. S LEXTFI=+LEXFI Q:+LEXTFI'>0 Q:$P(LEXTFI,".",1)'="757" S LEXNM=$$FN(+LEXFI)
  1. S:'$L(LEXNM) LEXTFI=" "_LEXTFI
  1. S LEXTFS=+($G(LEXFS))
  1. Q:+LEXTFS'>0 Q:$P(LEXTFS,".",1)'="757"
  1. S:'$L(LEXNM) LEXTFS=" "_LEXTFS
  1. S LEXTIDX=$G(LEXIDX) Q:'$L(LEXTIDX)
  1. S LEXTNDS=LEXNDS S:+LEXTNDS'>0 LEXTNDS=""
  1. I +LEXNDS'>0,+LEXFI>0,+LEXFS>0,$L(LEXIDX),LEXIDX'="ALLIX" D Q
  1. . K ^TMP("LEXRX",$J,"D",1,+LEXFI,+LEXFS,LEXIDX)
  1. . D REPS
  1. S LEXTERR=+($G(LEXERR)) S:+LEXTERR'>0 LEXTERR=""
  1. S:+($G(LEXERR))>0 LEXTERR=$J(LEXTERR,7)_" "
  1. S:+($G(LEXERR))'>0 LEXTERR=" ------ "
  1. S:+($G(LEXERR))'>0&(LEXIDX="ALLIX") LEXTERR=" "
  1. S:LEXIDX="ALLIX" LEXTNDS=""
  1. S LEXTNDS=$J(LEXTNDS,8)_" "
  1. S LEXTIDT=$G(LEXIDXT)
  1. S:LEXIDX="ALLIX" LEXIDXT="All Cross-References"
  1. S LEXIDXT=$E(LEXIDXT,1,35)
  1. Q:'$L(LEXTIDT)
  1. S LEXTELP=LEXELP
  1. S LEXTELP=LEXTELP_$J(" ",(9-$L(LEXTELP)))
  1. S LEXTFI=LEXTFI_$J(" ",(9-$L(LEXTFI)))
  1. S LEXTFS=LEXTFS_$J(" ",(9-$L(LEXTFS)))
  1. S:LEXIDX="ALLIX" LEXTIDX="Re-Index"
  1. S LEXTIDX=LEXTIDX_$J(" ",(9-$L(LEXTIDX)))
  1. S:LEXTFI=LEXTFS LEXT=LEXTFI_LEXTIDX_LEXTNDS_LEXTERR_LEXTELP_LEXIDXT
  1. S:LEXTFI'=LEXTFS LEXT=LEXTFS_LEXTIDX_LEXTNDS_LEXTERR_LEXTELP_LEXIDXT
  1. I $G(LEXIDX)'["*" S:+($G(LEXERR)) ^TMP("LEXRX",$J,"ERR")=+($G(^TMP("LEXRX",$J,"ERR")))+($G(LEXERR))
  1. I $L($G(LEXELP)) D
  1. . N LEXT S LEXT=$G(^TMP("LEXRX",$J,"T",1,"ELAP"))
  1. . S ^TMP("LEXRX",$J,"T",1,"ELAP")=$$ADDT^LEXRXXM(LEXT,$G(LEXELP))
  1. S LEXIDXN=LEXIDX S:LEXIDX="ALLIX" LEXIDXN="~"
  1. I LEXT["Re-Index"&(LEXT["All Cross-References") D
  1. . S ^TMP("LEXRX",$J,"D",1,+LEXFI,"~",LEXIDXN)=LEXT
  1. I LEXT'["Re-Index"!(LEXT'["All Cross-References") D
  1. . S ^TMP("LEXRX",$J,"D",1,+LEXFI,+LEXFS,LEXIDXN)=LEXT
  1. D REPS
  1. Q
  1. REPS ; Save
  1. K ^TMP("LEXRX",$J,"R",1)
  1. N LEXALL,LEXTFI,LEXTFS,LEXTIX,LEXC,LEXT K LEXALL S LEXC=0,LEXTFI="" F S LEXTFI=$O(^TMP("LEXRX",$J,"D",1,LEXTFI)) Q:'$L(LEXTFI) D
  1. . S LEXTFS="" F S LEXTFS=$O(^TMP("LEXRX",$J,"D",1,LEXTFI,LEXTFS)) Q:'$L(LEXTFS) D
  1. . . K LEXALL S LEXTIX="" F S LEXTIX=$O(^TMP("LEXRX",$J,"D",1,LEXTFI,LEXTFS,LEXTIX)) Q:'$L(LEXTIX) D
  1. . . . S LEXT=$G(^TMP("LEXRX",$J,"D",1,LEXTFI,LEXTFS,LEXTIX)) Q:'$L(LEXT) S LEXC=LEXC+1
  1. . . . I LEXT["Re-Index"&(LEXT["All Cross-References") S LEXALL=LEXT Q
  1. . . . I LEXC=1 D
  1. . . . . S ^TMP("LEXRX",$J,"R",1,1)="Repair Summary (large files only)"
  1. . . . . S:$G(LEXNAM)="LEXRXONE" ^TMP("LEXRX",$J,"R",1,1)="Repair File"
  1. . . . . S ^TMP("LEXRX",$J,"R",1,2)=" "
  1. . . . . S ^TMP("LEXRX",$J,"R",1,3)="File Index Nodes Errors Time Index Format"
  1. . . . . S ^TMP("LEXRX",$J,"R",1,4)="-------- ------ -------- ------- -------- -----------------------------------"
  1. . . . . S ^TMP("LEXRX",$J,"R",1,0)=4,LEXC=5
  1. . . . S ^TMP("LEXRX",$J,"R",1,LEXC)=LEXT,^TMP("LEXRX",$J,"R",1,0)=LEXC
  1. . . I $L($G(LEXALL)) D
  1. . . . N LEXC S LEXC=$O(^TMP("LEXRX",$J,"R",1," "),-1)+1
  1. . . . S ^TMP("LEXRX",$J,"R",1,LEXC)=LEXALL,^TMP("LEXRX",$J,"R",1,0)=LEXC
  1. D RCMP
  1. Q
  1. REPD ; Display
  1. N LEXC W ! S LEXC=0 F S LEXC=$O(^TMP("LEXRX",$J,"R",1,LEXC)) Q:+LEXC'>0 W !,$G(^TMP("LEXRX",$J,"R",1,LEXC))
  1. W !
  1. Q
  1. ;
  1. ; Re-Index Report
  1. REX(LEXFI,LEXNM,LEXELP,LEXIX) ; Build
  1. K ^TMP("LEXRX",$J,"R",2)
  1. N LEXI,LEXSP,LEXTFI,LEXTNM,LEXTELP,LEXC S $P(LEXSP," ",40)=" ",LEXFI=+($G(LEXFI))
  1. S:+($G(LEXFI))>0&($L($G(LEXNM)))&('$L($G(LEXELP))) LEXELP="00:00:01"
  1. K:+LEXFI>0 ^TMP("LEXRX",$J,"D",2,+LEXFI)
  1. S LEXTFI=+($G(LEXFI)) Q:+LEXTFI'>0 Q:$P(LEXTFI,".",1)'="757"
  1. S LEXTFI=LEXTFI_$J(" ",(8-$L(LEXTFI))) S LEXTNM=$G(LEXNM) S LEXTNM=LEXTNM_$J(" ",(22-$L(LEXTNM)))
  1. S LEXTELP=$G(LEXELP) S LEXTELP=LEXTELP_$J(" ",(10-$L(LEXTELP)))
  1. S LEXT=LEXTFI_LEXTNM_LEXTELP_$G(LEXIX(1))
  1. I $L($G(LEXELP)) D
  1. . S ^TMP("LEXRX",$J,"T",2,"ELAP")=$$ADDT^LEXRXXM($G(^TMP("LEXRX",$J,"T",2,"ELAP")),$G(LEXELP))
  1. S ^TMP("LEXRX",$J,"D",2,LEXFI,1)=LEXT
  1. S LEXC=1 I $O(LEXIX(1))>0 D
  1. . S LEXI=1 F S LEXI=$O(LEXIX(LEXI)) Q:+LEXI'>0 D
  1. . . N LEX S LEX=$G(LEXIX(LEXI)) Q:'$L(LEX)
  1. . . S LEXT=LEXSP_LEX,LEXC=LEXC+1
  1. . . W !,LEXT S ^TMP("LEXRX",$J,"D",2,+LEXFI,LEXC)=LEXT
  1. D REXS
  1. Q
  1. REXS ; Save
  1. K ^TMP("LEXRX",$J,"R",2)
  1. N LEXFIT,LEXI,LEXC,LEXT,LEXE S LEXC=0,LEXFIT="" F S LEXFIT=$O(^TMP("LEXRX",$J,"D",2,LEXFIT)) Q:'$L(LEXFIT) D
  1. . S LEXI=0 F S LEXI=$O(^TMP("LEXRX",$J,"D",2,LEXFIT,LEXI)) Q:+LEXI'>0 D
  1. . . S LEXT=$G(^TMP("LEXRX",$J,"D",2,LEXFIT,LEXI)) Q:'$L(LEXT) S LEXC=LEXC+1 I LEXC=1 D
  1. . . . S ^TMP("LEXRX",$J,"R",2,1)="Re-Index Summary (small files only)"
  1. . . . S:$G(LEXNAM)="LEXRXONE" ^TMP("LEXRX",$J,"R",2,1)="Re-Index File"
  1. . . . S ^TMP("LEXRX",$J,"R",2,2)=" "
  1. . . . S ^TMP("LEXRX",$J,"R",2,3)="File File Name Time Cross-References"
  1. . . . S ^TMP("LEXRX",$J,"R",2,4)="------- --------------------- -------- -------------------------------------"
  1. . . . S ^TMP("LEXRX",$J,"R",2,0)=4,LEXC=5
  1. . . S ^TMP("LEXRX",$J,"R",2,LEXC)=LEXT,^TMP("LEXRX",$J,"R",2,0)=LEXC
  1. D RCMP
  1. Q
  1. REXD ; Display
  1. N LEXC W ! S LEXC=0 F S LEXC=$O(^TMP("LEXRX",$J,"R",2,LEXC)) Q:+LEXC'>0 W !,$G(^TMP("LEXRX",$J,"R",2,LEXC))
  1. W !
  1. Q
  1. ;
  1. ; Compile Report (Repair/Re-Index)
  1. RCMP ; Compile
  1. K ^TMP("LEXRX",$J,"R",3)
  1. N LEXI,LEXC,LEXE,LEXN1,LEXN2,LEXTT,LEXT1,LEXT2,LEXLEN
  1. S LEXLEN=33 S:$G(LEXFMT)=2!($G(LEXFMT)=0) LEXLEN=30
  1. S (LEXI,LEXC)=0 F S LEXI=$O(^TMP("LEXRX",$J,"R",1,LEXI)) Q:+LEXI'>0 D
  1. . N LEXT S LEXC=LEXC+1,LEXT=$G(^TMP("LEXRX",$J,"R",1,LEXI)),^TMP("LEXRX",$J,"R",3,LEXC)=LEXT
  1. I $O(^TMP("LEXRX",$J,"R",1,0))>0,$O(^TMP("LEXRX",$J,"R",2,0))>0 D
  1. . S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1,^TMP("LEXRX",$J,"R",3,LEXC)=" "
  1. S LEXI=0 F S LEXI=$O(^TMP("LEXRX",$J,"R",2,LEXI)) Q:+LEXI'>0 D
  1. . N LEXT S LEXC=LEXC+1,LEXT=$G(^TMP("LEXRX",$J,"R",2,LEXI)),^TMP("LEXRX",$J,"R",3,LEXC)=LEXT
  1. S LEXTT=$$TOT^LEXRXXM
  1. S LEXT1=$G(^TMP("LEXRX",$J,"T",1,"ELAP")),LEXT2=$G(^TMP("LEXRX",$J,"T",2,"ELAP"))
  1. S LEXN1=+($P(LEXT1,":",1))+($P(LEXT1,":",2))+($P(LEXT1,":",3))
  1. S LEXN2=+($P(LEXT2,":",1))+($P(LEXT2,":",2))+($P(LEXT2,":",3))
  1. S:LEXN1'>0&($G(LEXAMSO)="O")&(+($G(LEXFI))>0) LEXTT=$$ADD^LEXRXXM(LEXT1,1)
  1. S:LEXN2'>0&($G(LEXAMSO)="O")&(+($G(LEXFI))>0) LEXTT=$$ADD^LEXRXXM(LEXT2,1)
  1. S:LEXN1>0&(LEXN2'>0) LEXTT=$$ADD^LEXRXXM(LEXT1,1)
  1. S:LEXN1'>0&(LEXN2>0) LEXTT=$$ADD^LEXRXXM(LEXT2,1)
  1. S:LEXN1>0&(LEXN2>0) LEXTT=$$ADDT^LEXRXXM(LEXT1,LEXT2)
  1. S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1,^TMP("LEXRX",$J,"R",3,LEXC)=" "
  1. I $G(LEXFMT)=3 D
  1. . Q S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1,^TMP("LEXRX",$J,"R",3,LEXC)=" Elapsed Time"
  1. . I +($G(LEXN1))>0 D
  1. . . N LEXT S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1,LEXT=" Repair Large Files:",LEXT=LEXT_$J(" ",(LEXLEN-$L(LEXT)))
  1. . . S ^TMP("LEXRX",$J,"R",3,LEXC)=LEXT_$G(LEXT1)
  1. . I +($G(LEXN2))>0 D
  1. . . N LEXT S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1
  1. . . S LEXT=" Re-Index Small Files:",LEXT=LEXT_$J(" ",(LEXLEN-$L(LEXT)))
  1. . . S ^TMP("LEXRX",$J,"R",3,LEXC)=LEXT_$G(LEXT2)
  1. . I +LEXN1>0!(LEXN2>0) D
  1. . . N LEXT S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1,LEXT=" Total All Files:",LEXT=LEXT_$J(" ",(LEXLEN-$L(LEXT)))
  1. . . S ^TMP("LEXRX",$J,"R",3,LEXC)=LEXT_$G(LEXTT)
  1. I $G(LEXFMT)=1 D
  1. . Q N LEXE,LEXT S LEXT=" Repair Large Files:"
  1. . S:$G(LEXAMSO)="O"&(+($G(LEXFI))>0) LEXT=" Repair File "_+($G(LEXFI))_":"
  1. . S LEXT=LEXT_$J(" ",(LEXLEN-$L(LEXT)))
  1. . S LEXE=$$ADD^LEXRXXM($G(LEXT1),1) I +($G(LEXN1))>0!(LEXAMSO="O") D
  1. . . S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1
  1. . . S ^TMP("LEXRX",$J,"R",3,LEXC)=LEXT_$G(LEXE)
  1. I $G(LEXFMT)=2 D
  1. . Q N LEXE,LEXT S LEXT=" Re-Index Small Files:"
  1. . S:$G(LEXAMSO)="O"&(+($G(LEXFI))>0) LEXT=" Re-Index File "_+($G(LEXFI))_":"
  1. . S:$G(LEXTITL)["Kill" LEXT=" Kill/Re-Index All Files:"
  1. . S LEXT=LEXT_$J(" ",(LEXLEN-$L(LEXT)))
  1. . N LEXE S LEXE=$$ADD^LEXRXXM(LEXT2,1) I +LEXN2>0!($G(LEXAMSO)="O") D
  1. . . S LEXC=$O(^TMP("LEXRX",$J,"R",3," "),-1)+1
  1. . . S ^TMP("LEXRX",$J,"R",3,LEXC)=LEXT_$G(LEXE)
  1. Q
  1. RCMD ; Display
  1. N LEXC W ! S LEXC=0 F S LEXC=$O(^TMP("LEXRX",$J,"R",3,LEXC)) Q:+LEXC'>0 W !,$G(^TMP("LEXRX",$J,"R",3,LEXC))
  1. W !
  1. Q
  1. ;
  1. SEND ; Task MAILMAN to Send Message
  1. G:$D(LEXQ) MAILQ N LEX,LEXC,LEXI,LEXS,LEXT
  1. K ^TMP("LEXRX",$J,"MSG")
  1. S LEXC=1,LEXI=0 F S LEXI=$O(^TMP("LEXRX",$J,"R",3,LEXI)) Q:+LEXI'>0 D
  1. . S LEXT=$E($G(^TMP("LEXRX",$J,"R",3,LEXI)),1,79)
  1. . I LEXT[" (large files only)"!(LEXT[" (small files only)") D Q
  1. . . S LEXC=LEXC+1,^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. . S LEXC=LEXC+1,^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. D ERR,SUM S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)
  1. I +LEXC>1 S ^TMP("LEXRX",$J,"MSG",1,0)=" ",^TMP("LEXRX",$J,"MSG",(LEXC+1),0)=" "
  1. S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1),^TMP("LEXRX",$J,"MSG",0)=+LEXC
  1. S LEXS="Lexicon Index Repair/Re-Index Report" S:$L($G(LEXSUBJ)) LEXS=$G(LEXSUBJ)
  1. D PRG,MAIL,HOME^%ZIS
  1. Q
  1. MAIL ; MAILMAN
  1. N DIFROM,XCNP,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,Y
  1. G:'$D(^TMP("LEXRX",$J,"MSG")) MAILQ G:+($G(^TMP("LEXRX",$J,"MSG",0)))=0 MAILQ
  1. K XMZ N DIFROM S XMSUB="Lexicon Cross-Reference Repair/Re-Index"
  1. S:$L($G(LEXSUBJ)) XMSUB=$G(LEXSUBJ)
  1. K XMY S:+($G(DUZ))>0 XMY(+($G(DUZ)))=""
  1. I $D(LEXINS) D
  1. . K XMY N LEXADR S LEXADR=$$ADR Q:'$L(LEXADR)
  1. . S LEXADR="G.LEXINS@"_LEXADR S XMY(LEXADR)=""
  1. G:'$D(XMY) MAILQ
  1. S XMTEXT="^TMP(""LEXRX"",$J,""MSG"",",XMDUZ=.5 D ^XMD
  1. I '$D(ZTQUEUED),+($G(XMZ))>0,'$D(LEXINS) D
  1. . W !!," Lexicon Cross-Reference Repair/Re-Index message (#",+($G(XMZ)),") sent"
  1. MAILQ ; End of MAILMAN
  1. K ^TMP("LEXRX",$J) K DIFROM,XCNP,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,Y
  1. Q
  1. ;
  1. ; Miscellaneous
  1. SUM ; Timing Summary
  1. I $O(^TMP("LEXRX",$J,"MSG",0))>0 D
  1. . N LEXBEG,LEXEND,LEXELP,LEXC
  1. . S LEXBEG=+($G(^TMP("LEXRX",$J,"P",1))) Q:$P(LEXBEG,".",1)'?7N
  1. . S LEXEND=+($G(^TMP("LEXRX",$J,"P",2))) Q:$P(LEXEND,".",1)'?7N
  1. . Q:LEXBEG=LEXEND S LEXELP=$$FMDIFF^XLFDT(LEXEND,LEXBEG,3) Q:$L(LEXELP,":")'=3
  1. . S:$E(LEXELP,1)=" "&($E(LEXELP,3)=":") LEXELP=$TR(LEXELP," ","0")
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)
  1. . S LEXT=$$TM^LEXRXXM($G(^TMP("LEXRX",$J,"MSG",LEXC,0)))
  1. . I $L(LEXT) D
  1. . . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=" "
  1. . S LEXT="Re-Index Started: "_$$ED^LEXRXXM(LEXBEG)
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. . S LEXT="Re-Index Finished: "_$$ED^LEXRXXM(LEXEND)
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. . S LEXT="Elapsed Time: "_LEXELP
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. Q
  1. ERR ; Error Summary
  1. I $O(^TMP("LEXRX",$J,"MSG",0))>0 D
  1. . N LEXE,LEXT,LEXC
  1. . S LEXE=+($G(^TMP("LEXRX",$J,"ERR"))) Q:LEXE'>0
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)
  1. . S LEXT=$$TM^LEXRXXM($G(^TMP("LEXRX",$J,"MSG",LEXC,0)))
  1. . I $L(LEXT) D
  1. . . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=" "
  1. . S LEXT="Errors Repaired: "
  1. . S LEXT=LEXT_LEXE
  1. . S LEXC=$O(^TMP("LEXRX",$J,"MSG"," "),-1)+1
  1. . S ^TMP("LEXRX",$J,"MSG",LEXC,0)=LEXT
  1. Q
  1. ADR(LEX) ; Mailing Address -G.LEXINS@FO-SLC.DOMAIN.EXT,
  1. N DIC,DTOUT,DUOUT,X,Y
  1. S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="FO-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
  1. S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="FO-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
  1. S DIC="^DIC(4.2,",DIC(0)="M",(LEX,X)="ISC-SLC.DOMAIN.EXT" D ^DIC Q:+Y>0 LEX
  1. Q "ISC-SLC.DOMAIN.EXT"
  1. FN(X) ; Filename
  1. Q:$D(^LEX(+($G(X)),0)) $$TITLE($P($G(^LEX(+($G(X)),0)),"^",1))
  1. Q:$D(^LEXT(+($G(X)),0)) $$TITLE($P($G(^LEXT(+($G(X)),0)),"^",1))
  1. Q ""
  1. TITLE(X) ; Mix Case
  1. N LEXI,LEXCHR,LEXSTR,LEXSPC S LEXSTR=$$LOW^XLFSTR(X),LEXSPC=1 F LEXI=1:1:$L(LEXSTR) D
  1. . S LEXCHR=$E(LEXSTR,LEXI) I LEXSPC,LEXCHR?1L S $E(LEXSTR,LEXI)=$$UP^XLFSTR(LEXCHR),LEXSPC=0
  1. . S:LEXCHR=" " LEXSPC=1 S:LEXCHR="/" LEXSPC=1 S:LEXCHR="-" LEXSPC=1
  1. S X=LEXSTR
  1. Q X
  1. PRG ; Purge ^TMP("LEXRX"
  1. N LEX S LEX="" F S LEX=$O(^TMP("LEXRX",$J,LEX)) Q:'$L(LEX) K:LEX'="MSG" ^TMP("LEXRX",$J,LEX)
  1. Q
  1. ST ; Show ^TMP
  1. N LEXNN,LEXNC S LEXNN="^TMP(""LEXRX"","_$J_")",LEXNC="^TMP(""LEXRX"","_$J_","
  1. W !! F S LEXNN=$Q(@LEXNN) Q:'$L(LEXNN)!(LEXNN'[LEXNC) W !,LEXNN,"=",@LEXNN
  1. W !!
  1. Q
  1. CLR ; Clear
  1. K LEXAMSO,LEXFMT,LEXQ,LEXSUBJ,LEXTITL,LEXINS,ZTQUEUED,LEXNAM
  1. Q