VistA-WorldVistAEHR/r/LEXICON_UTILITY-LEX-GMPT/LEXLGM.m

111 lines
4.4 KiB
Mathematica

LEXLGM ; ISL Lexicon Survey (Post Inst/Oper) ; 05/14/2003
;;2.0;LEXICON UTILITY;**25**;Sep 23, 1996;Build 1
;
EN ; Operational Task
K ^TMP("LEXMSG")
S ZTRTN="OPR^LEXLGM",ZTDESC="Lexicon Terms in Problem List",ZTIO="",ZTDTH=$H
D ^%ZTLOAD,HOME^%ZIS K %X,%Y,Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN Q
Q
EN2 ; Post-Install Task
K ^TMP("LEXMSG")
S ZTRTN="POST^LEXLGM",ZTDESC="Lexicon Installation",ZTIO="",ZTDTH=$H
D ^%ZTLOAD,HOME^%ZIS K %X,%Y,Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN Q
Q
OPR ; Operational Survey
K ^TMP("LEXMSG") N LEXTYPE S LEXTYPE="O"
N LEXQ,LEXVERS,LEXFI,LEXDT,LEXS
D DATE S:'$D(LEXDT) LEXDT="" S LEXVERS=$$VR
D PLT^LEXLGM3,ASOF^LEXLGM3,PLUR^LEXLGM3,SG,SEND
S:$D(ZTQUEUED) ZTREQ="@"
Q
POST ; Post-Install Survey
K ^TMP("LEXMSG") N LEXTYPE,LEXQ,LEXVERS,LEXFI,LEXDT,LEXS
S LEXTYPE="P" D DATE S:'$D(LEXDT) LEXDT="" S LEXVERS=$$VR
D TITLE,INIT D:+LEXVERS>1 INST,ACCT,WHO D:+LEXVERS'>1 ATTPT,ACCT,WHO
D BL,POST^LEXLGM2,PLUR^LEXLGM3,VER,SG,SEND
S:$D(ZTQUEUED) ZTREQ="@"
Q
SG ; Show TMP Global
N LEXI S LEXI=0 F S LEXI=$O(^TMP("LEXMSG",LEXI)) Q:+LEXI=0 W:'$D(ZTQUEUED) !,^TMP("LEXMSG",LEXI)
Q
SEND ; Create message to send to ISC-SLC
N LEXADR,DIFROM Q:'$D(ZTQUEUED) Q:'$L($G(LEXTYPE)) S LEXADR=$$ADR^LEXU Q:'$L(LEXADR)
N LEXT S LEXT=$G(LEXTYPE) Q:"OP"'[LEXT
K XMZ S:LEXT="P" XMSUB="Lexicon Installation" S:LEXT="O" XMSUB="Lexicon/Problem List Survey"
S XMY(("G.LEXICON@"_LEXADR))=""
S XMTEXT="^TMP(""LEXMSG"",",XMDUZ=.5 D ^XMD
K ^TMP("LEXMSG"),XCNP,XMDUZ,XMY,XMZ,XMSUB,XMTEXT,XMDUZ,LEXT
S:$D(ZTQUEUED) ZTREQ="@"
Q
TITLE N LEXS,LEXVERS S LEXS="Lexicon Installation"
S LEXVERS=$P($G(^DD(757.01,0,"VR")),"^",1)
S:+LEXVERS>1 LEXS=LEXS_" v"_LEXVERS D SET($G(LEXS)) Q
VER ; Verify
I +($G(LEXQ))>0 D Q
. D BL S LEXS="Lexicon v 2.0 not completely installed"
. S LEXQ=1 D SET($G(LEXS))
D BL S LEXS="Lexicon v 2.0 installed" D SET($G(LEXS))
Q
VR(LEXX) ; Version
S LEXX=$P($G(^DD(757.01,0,"VR")),"^",1) Q LEXX
INIT ; Init/Install
N LEXS,LEXR,LEX1,LEX2,LEX4 I $L($T(+2^LEXLGM))>2 D
. S LEX1=$T(+2^LEXLGM)
. S LEX1=$P(LEX1,";",3),LEXR="^DD(",LEX4=1
. S LEX2="Lexicon Utility"
. D BL S LEXS=" Installing Version:" D SET($G(LEXS))
. S LEXS=" "_LEX1 D SET2($G(LEXS))
Q
INST ; Installed on
N LEXS
I LEXDT'="" D Q
. S LEXS=" Installed on:" D SET($G(LEXS))
. S LEXS=" "_LEXDT D SET2($G(LEXS))
D:$L($G(LEXS)) SET($G(LEXS)) Q
ATTPT ; Attempted install on
N LEXS I $G(LEXDT)'="" D
. S LEXS=" Installation Attempted on:" D SET($G(LEXS))
. S LEXS=LEXDT D SET2($G(LEXS))
Q
ACCT ; Account
N LEXS,LEXA X ^%ZOSF("UCI") S LEXA=Y
S:Y=^%ZOSF("PROD") LEXA=LEXA_" (Production)"
S:Y'=^%ZOSF("PROD") LEXA=LEXA_" (Test)"
S LEXS=" Installation in account:" D SET($G(LEXS))
S LEXS=" "_LEXA D SET2($G(LEXS))
Q
WHO ; Installed by
N LEXDUZ,LEXPH S LEXDUZ=+($G(DUZ)) I +LEXDUZ<1 S LEXDUZ="UNKNOWN",LEXPH="" G W2
I '$D(^VA(200,LEXDUZ)) S LEXDUZ="UNKNOWN",LEXPH="" G W2
S LEXPH=$P($G(^VA(200,LEXDUZ,.13)),"^",2)
S:LEXPH="" LEXPH=$P($G(^VA(200,LEXDUZ,.13)),"^",1)
S:LEXPH="" LEXPH=$P($G(^VA(200,LEXDUZ,.13)),"^",3)
S:LEXPH="" LEXPH=$P($G(^VA(200,LEXDUZ,.13)),"^",4)
S LEXDUZ=$P(^VA(200,LEXDUZ,0),"^",1) S:LEXDUZ="" LEXDUZ="UNKNOWN"
W2 S LEXS=" Installation by (POC):" D SET($G(LEXS))
S LEXS=" "_LEXDUZ S:LEXPH'="" LEXS=LEXS_" ("_LEXPH_")"
D SET2($G(LEXS))
Q
BL ; Blank Line
D SET("") Q
SET(X) ; Set text in ^TMP (col 1)
S X=$G(X) N LEXLC S LEXLC=+($G(^TMP("LEXMSG",0))),LEXLC=LEXLC+1
S ^TMP("LEXMSG",0)=LEXLC,^TMP("LEXMSG",LEXLC)=X
Q
SET2(X) ; Set text in ^TMP (col 2)
S X=$G(X) N LEXL,LEXLC,LEX1 S LEXL=32
S LEXLC=+($G(^TMP("LEXMSG",0))),LEX1=$G(^TMP("LEXMSG",LEXLC))
F Q:$L(LEX1)=LEXL!($L(LEX1)>LEXL) S LEX1=LEX1_" "
S X=$$TRIM(X),^TMP("LEXMSG",LEXLC)=LEX1_" "_X
Q
TRIM(X) ; Remove spaces from text
S X=$G(X) F Q:$E(X,1)'=" " S X=$E(X,2,$L(X))
F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1))
Q X
DATE ; Installation Date and Time
N %,%H,X,LEXP,LEXMO,LEXDA,LEXYR,LEXHR,LEXMN,LEXSC D NOW^%DTC Q:+($G(%))=0
N LEXP,LEXMO,LEXDA,LEXYR,LEXHR,LEXMN,LEXSC S LEXYR=1700+($E(%,1,3)),LEXP=+($E(%,4,5)),LEXDA=+($E(%,6,7)),LEXHR=$E($P(%,".",2),1,2),LEXMN=$E($P(%,".",2),3,4),LEXSC=$E($P(%,".",2),5,6)
S LEXMO=$S(+LEXP=1:"January",+LEXP=2:"February",+LEXP=3:"March",+LEXP=4:"April",+LEXP=5:"May",+LEXP=6:"June",+LEXP=7:"July",+LEXP=8:"August",+LEXP=9:"September",+LEXP=10:"October",+LEXP=11:"November",+LEXP=12:"December",1:"")
S:$L(LEXSC)=1 LEXSC=LEXSC_"0" I LEXMO'="" S LEXDT=LEXMO_" "_LEXDA_", "_LEXYR_" at "_LEXHR_":"_LEXMN_":"_LEXSC
Q