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

BLRUTIL3.m

Go to the documentation of this file.
  1. BLRUTIL3 ;IHS/OIT/MKK - MISC IHS LAB UTILITIES (Cont) ; 04-Apr-2016 14:28 ; MKK
  1. ;;5.2;IHS LABORATORY;**1025,1027,1030,1031,1033,1039**;NOV 01, 1997;Build 38
  1. ;
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK LR*5.2*1025
  1. GETACCCP(LRAS,LRAA,LRAD,LRAN) ; EP -- Take Accession # & break apart
  1. ; Parse and process user input. Cloned from LRWU4.
  1. NEW LRIDIV,LRQUIT,LRX,X1,X2,X3
  1. S LRX=LRAS
  1. ;
  1. S (LRAA,LRAD,LRAN)=""
  1. ;
  1. S (X1,X2,X3)="",X1=$P(LRX," ",1),X2=$P(LRX," ",2),X3=$P(LRX," ",3)
  1. S:X3=""&(+X2=X2) X3=X2,X2=""
  1. I X1'?1A.AN Q 0
  1. ;
  1. S LRAA=$O(^LRO(68,"B",X1,0))
  1. I LRAA<1 Q 0
  1. ;
  1. ; S %=$P(^LRO(68,LRAA,0),U,14) ; Don't bother with Security Check
  1. ; I $L(%),'$D(^XUSEC(%,DUZ)) Q 0 ; Don't bother with Security Check
  1. ;
  1. S LRX=$G(^LRO(68,LRAA,0)),LRIDIV=$S($L($P(LRX,U,19)):$P(LRX,U,19),1:"CP")
  1. ;
  1. ; Only accession area identifier, no date or number
  1. I X2="",X3="" D
  1. . N %DT
  1. . S %DT="AP",%DT("A")=" Accession Date: ",%DT("B")="TODAY"
  1. . ; D DATE^LRWU
  1. . ; D DATE
  1. . I $D(DUOUT) Q
  1. . I Y<1 Q
  1. . S LRAD=Y
  1. ;
  1. ; Convert middle value to FileMan date
  1. ; Adjust for monthly and quarterly formats (MM00) if user enters 4 digit
  1. ; number as middle part of accession then convert to appropriate date.
  1. I +$G(LRAD)<1 D
  1. . N %DT
  1. . I X2="" S X2=DT
  1. . I X2?4N D
  1. . . S X2=$E(DT,1,3)_X2
  1. . . I X2>DT S X2=X2-10000
  1. . S %DT="P",X=X2
  1. . D ^%DT
  1. . I Y>0 S LRAD=Y Q
  1. I +$G(LRAD)<1 Q 0
  1. ;
  1. ; Convert date entered to apropriate date for accession area transform
  1. S X=$P(^LRO(68,LRAA,0),U,3)
  1. S LRAD=$S("D"[X:LRAD,X="Y":$E(LRAD,1,3)_"0000","M"[X:$E(LRAD,1,5)_"00","Q"[X:$E(LRAD,1,3)_"0000"+(($E(LRAD,4,5)-1)\3*300+100),1:LRAD)
  1. ; W:X3>0 " ",+X3
  1. ;
  1. I X3="",$D(LRACC) D
  1. . N DIR,DIRUT,DUOUT,DTOUT,X,Y
  1. . S DIR(0)="NO^1:999999",DIR("A")=" Number part of Accession"
  1. . D ^DIR
  1. . I Y=""!$D(DIRUT) Q
  1. . S X3=Y
  1. ;
  1. I X3="",$D(LRACC) Q 0
  1. S LRAN=+X3
  1. Q 1
  1. ;
  1. DATE ; EP
  1. K DTOUT,DUOUT S LREND=0
  1. ; W !,"DATE",!!,$S($D(%DT("A")):%DT("A"),1:"DATE: "),$S($D(%DT("B")):%DT("B"),1:"TODAY"),"//" R X:DTIME S:X="^" DUOUT=1 S:'$T X="^",DTOUT=1 I $D(DUOUT)!($D(DTOUT)) S LREND=1,Y=-1 Q
  1. S:X="" X=$S($D(%DT("B")):%DT("B"),1:"T") S:$D(%DT)[0 %DT="E" S:%DT["A" %DT=$P(%DT,"A",1)_$P(%DT,"A",2) S:%DT'["E" %DT="E"_%DT D ^%DT G DATE:X="?"!(Y<1)
  1. K %DT
  1. Q
  1. ;
  1. D2HBOLD(STR) ; EP - Write string DOUBLE HEIGHT & BOLDED
  1. W !
  1. W *27,"#3",*27,"[1m",STR,!
  1. W *27,"#4",*27,"[1m",STR,!
  1. W *27,"[0m",! ; Turn OFF all attributes
  1. Q
  1. ;
  1. BOLDUNDR(STR) ; EP -- Write string BOLDED & UNDERLINED
  1. W *27,"[1;4m",STR,*27,"[0m"
  1. Q
  1. ;
  1. REVIDEO(STR) ; EP -- Write string in Reverse Video & BOLDED
  1. W *27,"[1;7m",STR,*27,"[0m"
  1. Q
  1. ; ----- END IHS/OIT/MKK LR*5.2*1025
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK LR*5.2*1027
  1. ESIGINFO ; EP -- Rework of BLRUTIL ESIGINFO subroutine.
  1. NEW DOCDUZ,DOCIEN,ESIGDSTR,REVIEWDV,TAB
  1. NEW REVSTS
  1. ;
  1. ; If E-SIG not turned on, Quit
  1. I '$$ADDON^BLRUTIL("LR*5.2*1013","BLRALAF",+$G(DUZ(2))) Q
  1. ;
  1. S DOCIEN=$O(^VA(200,"B",LRDOC,"")) ; LRDOC = Ordering Provider
  1. ;
  1. ; If no IEN, Quit. Usually happens when LRDOC="Unknown"
  1. Q:$G(DOCIEN)=""
  1. ;
  1. I '($D(^BLRALAB(9009027.1,DOCIEN,0))#2) W ?56,"NOT E-SIG PARTICIPATING" Q
  1. I $P(^BLRALAB(9009027.1,DOCIEN,0),U,7)'="A" W ?53,"INACTIVE E-SIG PARTICIPANT" Q
  1. ;
  1. ;LRSS doesn't exist when doing option 'BLRTASK CUM', so set it.
  1. S:$G(LRSS)="" LRSS=$P($G(^LRO(68,LRAA,0)),"^",2)
  1. ;
  1. S ESIGDSTR=$G(^LR(LRDFN,LRSS,LRIDT,9009027)) ; E-SIG string Data
  1. ;
  1. Q:$P(ESIGDSTR,U,2)="" ; NO Signing Physician
  1. Q:$P(^BLRALAB(9009027.1,$P(ESIGDSTR,U,2),0),U,7)'="A" ; NOT Active
  1. ;
  1. ; REVIEW status Data Values
  1. S REVIEWDV=$$UP^XLFSTR($P($G(^DD(63.04,.9009025,0)),U,3))
  1. S REVSTS=$P($P(REVIEWDV,$P(ESIGDSTR,U)_":",2),";")
  1. ;
  1. ; Make sure E-SIG STATUS is flush right
  1. S TAB=IOM-(16+$L(REVSTS))
  1. W ?TAB,"E-SIG STATUS: ",REVSTS
  1. ;
  1. Q:'$P(ESIGDSTR,U,5) ; NO Signed Date
  1. ;
  1. Q:REVSTS["NOT REV" ; NOT Reviewed
  1. ;
  1. W !?5,"SIGNING PHYSICIAN: "
  1. W $P($G(^VA(200,$P(ESIGDSTR,U,2),0)),U)
  1. W !?5,"DATE/TIME RESULT SIGNED: "
  1. W $TR($$FMTE^XLFDT($P(ESIGDSTR,U,5),"2MZ"),"@"," ")
  1. Q
  1. ;
  1. BLINKER(STR) ; EP -- Write string in BOLDED, UNDERLINED, & BLINKING
  1. W *27,"[1;4;5m",STR,*27,"[0m"
  1. Q
  1. ;
  1. ; Cloned from LR7OSAP1. Wrap Text in array to ^TMP global
  1. WRAP(ROOT,FMT) ; EP - Wrap text
  1. I '$L($G(ROOT)) Q ""
  1. N CCNT,GCNT,INC,LRI,LRINDX,LRTX,SP,X
  1. S:'$G(FMT) FMT=79
  1. S LRINDX=0,LRI=0,GCNT=0
  1. K ^TMP("BLRUTIL3",$J)
  1. F S LRI=$O(@ROOT@(LRI)) Q:LRI'>0 D
  1. . S X=$S($L($G(@ROOT@(LRI))):@ROOT@(LRI),$L($G(@ROOT@(LRI,0))):@ROOT@(LRI,0),1:""),LRINDX=LRINDX+1
  1. . S X=$$FMT^LR7OSAP1(FMT,.LRINDX,X)
  1. S LRI=0
  1. F S LRI=$O(LRTX(LRI)) Q:'LRI D LN^LR7OSAP S ^TMP("BLRUTIL3",$J,GCNT,0)=$$S^LR7OS(1,CCNT,LRTX(LRI))
  1. Q
  1. ;
  1. ;
  1. ALERT ; EP
  1. W !!
  1. W "Patient Name:",$P(XQADATA,"^"),!
  1. W " UID:",$P(XQADATA,"^",2),!
  1. W " TEST:",$P(XQADATA,"^",3),!!
  1. Q
  1. ; ----- END IHS/OIT/MKK LR*5.2*1027
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK -- LR*5.2*1030
  1. W *27,"[1;7;5m",STR,*27,"[0m"
  1. Q
  1. ;
  1. ; Moved PCC Bulletin code to here in order to standardize messages
  1. ; BLRBUL=1 SENDS BLRTXLOG BULLETIN
  1. ; BLRBUL=2 SENDS BLRTXLOGERR BULLETIN
  1. ; BLRBUL=3 SENDS BLRTXLOG AND BLRTXLOGERR BULLETIN
  1. BULTNS ; EP - Send PCC Bulletin
  1. Q:BLRPCC["Lab deleted test" ; If Lab Deleted Test, don't send message.
  1. ;
  1. I "13"[BLRBUL D BULTX("BLRTXLOG") Q:BLRBUL=1
  1. D BULTX("BLRTXLOGERR")
  1. Q
  1. ;
  1. BULTX(BULLETIN) ; EP - SEND BULLETIN IF PCC ERROR IN FILING
  1. K XMB ; Initialize array
  1. S Y="" ; Initialize variable
  1. ;
  1. ; If BLRTXLOG number exists, use ^BLRTXLOG database
  1. I +$G(BLRLOGDA)>0 D BULTXSET
  1. ;
  1. ; If BLRTXLOG number DOES NOT exist, use variables
  1. I +$G(BLRLOGDA)<1 D BLTXNSET
  1. ;
  1. S XMB(7)=$G(BLRLOGDA) ; BLR Transaction Log Number
  1. ;
  1. S XMB(8)=BLRPCC ; Error Message
  1. ;
  1. S XMB=BULLETIN ; Bulletin to use
  1. ;
  1. ; Send the Bulletin
  1. ; S BLRDUZ=DUZ,DUZ=.5 D ^XMB S DUZ=BLRDUZ
  1. S XMDUZ="Lab to PCC Link Processor"
  1. D ^XMB
  1. ;
  1. ; Clean up
  1. K XMB
  1. Q
  1. ;
  1. ; Set bulletin parameters from ^BLRTXLOG global
  1. BULTXSET ; EP
  1. NEW COLLDT,LABTIEN,PTPTR
  1. ;
  1. S PTPTR=+$P($G(^BLRTXLOG(BLRLOGDA,0)),"^",4) ; Patient Pointer
  1. ;
  1. S XMB(1)=$P($G(^DPT(PTPTR,0)),"^",1) ; Patient Name
  1. S XMB(2)=$G(^DPT(PTPTR,"LR")) ; LRDFN
  1. ;
  1. ; Date of Visit -- Collection Date
  1. S COLLDT=$P($G(^BLRTXLOG(BLRLOGDA,12)),"^",1)
  1. S XMB(3)=$$FMTE^XLFDT(COLLDT,"1D")
  1. ;
  1. S XMB(4)=$P($G(^BLRTXLOG(BLRLOGDA,11)),"^",3) ; Order Number
  1. S XMB(5)=$P($G(^BLRTXLOG(BLRLOGDA,12)),"^",2) ; Accession Number
  1. ;
  1. S LABTIEN=+$P($G(^BLRTXLOG(BLRLOGDA,0)),"^",6)
  1. S XMB(6)=$P($G(^LAB(60,LABTIEN,0)),"^",1) ; Lab Test
  1. ;
  1. Q
  1. ;
  1. ; Set bulletin parameters from variables
  1. BLTXNSET ; EP
  1. NEW PTPTR
  1. ;
  1. S PTPTR=+$G(APCDALVR("APCDPAT")) ; Patient Pointer
  1. ;
  1. S XMB(1)=$P($G(^DPT(PTPTR,0)),"^",1) ; Patient Name
  1. S XMB(2)=$G(^DPT(PTPTR,"LR")) ; LRDFN
  1. ;
  1. ; Visit/Collection Date
  1. S XMB(3)=$$FMTE^XLFDT($G(APCDALVR("APCDDATE")),"1D")
  1. ;
  1. S XMB(4)=$G(BLRORD) ; Order Number
  1. S XMB(5)=$G(BLRACCN) ; Accession Number
  1. S XMB(6)=$P($G(^LAB(60,+$G(BLRTEST),0)),"^",1) ; Test Description
  1. ;
  1. Q
  1. ;
  1. ; Get Reference Range for a Test for File 63
  1. ; Used by MEAG Delta Check
  1. GETREFR(TESTNAME) ; EP
  1. NEW IEN,MESSAGE,REFL,REFH,SPEC,TARGET,UNITS
  1. ;
  1. ; Get Internal Entry Number of Test
  1. D FIND^DIC(60,,,,TESTNAME,,,,,"TARGET","MESSAGE")
  1. S IEN=+$G(TARGET("DILIST",2,1))
  1. Q:IEN<1 "!!!!!!!!"
  1. ;
  1. S SPEC=+$O(^LAB(60,IEN,1,0)) ; First Site/Spec
  1. Q:SPEC<1 "!!!!!!!!"
  1. ;
  1. S REFL=$$GET1^DIQ(60.01,SPEC_","_IEN_",",1,"I")
  1. S REFH=$$GET1^DIQ(60.01,SPEC_","_IEN_",",2,"I")
  1. S UNITS=$$GET1^DIQ(60.01,SPEC_","_IEN_",",6,"I")
  1. ;
  1. ; If UNITS is a pointer to the IHS UCUM file, get units text
  1. S:+$G(UNITS)>0 UNITS=$P($G(^BLRUCUM(UNITS,0)),"^")
  1. ;
  1. Q SPEC_"!"_REFL_"!"_REFH_"!!!!"_UNITS_"!!"
  1. ;
  1. INSTLRPT ; EP -- Report of ^BLRINSTL global
  1. NEW CP,CNT,WHO,WHEN
  1. NEW HEADER,PG,LINES,MAXLINES,QFLG,HD1
  1. ;
  1. D INSTLRPI
  1. ;
  1. F S CP=$O(^BLRINSTL("LAB PATCH",CP)) Q:CP<1!(QFLG="Q") D
  1. . F S CNT=$O(^BLRINSTL("LAB PATCH",CP,"INSTALLED BY",CNT)) Q:CNT<1!(QFLG="Q") D
  1. .. D INSTLRPL
  1. Q
  1. ;
  1. INSTLRPI ; EP -- Initialize variables
  1. NEW DTRANGE,FIRST,FIRSTDT,FRSTPTCH,LAST,LASTPTCH
  1. S HEADER(1)="IHS LAB Patches Report"
  1. ;
  1. S FRSTPTCH=$O(^BLRINSTL("LAB PATCH",0))
  1. S FIRST=$O(^BLRINSTL("LAB PATCH",FRSTPTCH,"INSTALLED BY",0))
  1. S FIRSTDT=$P($G(^BLRINSTL("LAB PATCH",FRSTPTCH,"INSTALLED BY",FIRST,"DATE/TIME")),"@")
  1. ;
  1. S LASTPTCH=$O(^BLRINSTL("LAB PATCH","A"),-1)
  1. S LAST=$O(^BLRINSTL("LAB PATCH",LASTPTCH,"INSTALLED BY","A"),-1)
  1. S LASTDT=$P($G(^BLRINSTL("LAB PATCH",LASTPTCH,"INSTALLED BY",LAST,"DATE/TIME")),"@")
  1. ;
  1. S HEADER(2)="Patches Installed From "_FIRSTDT_" thru "_LASTDT
  1. S HEADER(3)=" "
  1. S $E(HEADER(4),5)="Patch"
  1. S $E(HEADER(4),15)="Who"
  1. S $E(HEADER(4),45)="When"
  1. ;
  1. S MAXLINES=22,LINES=MAXLINES+10,PG=0,(HD1,QFLG)="NO"
  1. S (CP,CNT)=0
  1. Q
  1. ;
  1. INSTLRPL ; EP -- Line of Data
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HD1) Q:QFLG="Q"
  1. ;
  1. W ?4,CP
  1. W ?14,$G(^BLRINSTL("LAB PATCH",CP,"INSTALLED BY",CNT))
  1. W ?44,$TR($P($G(^BLRINSTL("LAB PATCH",CP,"INSTALLED BY",CNT,"DATE/TIME")),":",1,2),"@"," ")
  1. W !
  1. S LINES=LINES+1
  1. Q
  1. ;
  1. MAKE132 ; EP - Force Screen to 132 Characters
  1. W "Setting display to 132 column mode",!
  1. W $C(27)_"[?3h",!
  1. W "132 column mode active.",!
  1. W $TR($J("",132)," ","*"),!
  1. W !
  1. S IOM=132
  1. Q
  1. ;
  1. MAKE80 ; EP - Force Screen to 80 Characters
  1. W "Setting display to 80 column mode",!
  1. W $C(27)_"[?3l",!
  1. W "80 column mode active.",!
  1. W $TR($J("",80)," ","*"),!
  1. W !
  1. S IOM=80
  1. Q
  1. ;
  1. ; MAILALMI(MESSAGE,MSGARRAY,FROMWHOM) ; EP - send e-MAIL and an Alert to members of the LMI Mail Group
  1. MAILALMI(MESSAGE,MSGARRAY,FROMWHOM,NOUSER) ; EP - IHS/MSC/MKK - LR*5.2*1031 adds the NOUSER parameter
  1. NEW MAILARRY
  1. ;
  1. ; Alert just sends MESSAGE string
  1. ; D SNDALERT(MESSAGE)
  1. D SNDALERT(MESSAGE,$G(NOUSER)) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ; Setup variables for sending MailMan e-mail
  1. I $L($G(MSGARRAY(1))) M MAILARRY=MSGARRAY
  1. ;
  1. I $L($G(MSGARRAY(1)))<1 D ; If MSGARRAY null, create generic array
  1. . S MAILARRY(1)="The Subject of this email is the message:"
  1. . S MAILARRY(2)=" "_MESSAGE
  1. ;
  1. I $G(FROMWHOM)="" S FROMWHOM="RPMS Lab Package"
  1. ;
  1. ; D SENDMAIL(MESSAGE,.MAILARRY,FROMWHOM)
  1. D SENDMAIL(MESSAGE,.MAILARRY,FROMWHOM,$G(NOUSER)) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. I $D(^XTMP("BLRUTIL3"))<1 D
  1. . S ^XTMP("BLRUTIL3",0)=$$HTFM^XLFDT(+$H+30)_"^"_$$HTFM^XLFDT(+$H)_"^MAILALMI Usage"
  1. ; M ^XTMP("BLRUTIL3","MAILALMI",$H,"DUZ")=DUZ
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1033
  1. NEW NOW
  1. S NOW=$H
  1. S ^XTMP("BLRUTIL3","MAILALMI",NOW)=$$HTE^XLFDT(NOW,"5MZ")
  1. M ^XTMP("BLRUTIL3","MAILALMI",NOW,"DUZ")=DUZ
  1. ; ----- END IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. Q
  1. ;
  1. ; SNDALERT(ALERTMSG,NOUSER) ; EP - Send alert to LMI group AND User (if not member of LMI Mail Group)
  1. SNDALERT(ALERTMSG,NOUSER) ; EP - LR*5.2*1031 addes NOUSER parameter
  1. S XQAMSG=ALERTMSG
  1. S XQA("G.LMI")=""
  1. ;
  1. ; If User not part of LMI Mail Group, send them e-mail also, but
  1. ; If-And-Only-If the NOUSER variable is null.
  1. ; S:$$NINLMI(DUZ) XQA(DUZ)=""
  1. S:$G(NOUSER)=""&($$NINLMI(DUZ)) XQA(DUZ)="" ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. S X=$$SETUP1^XQALERT
  1. K XQA,XQAMSG
  1. Q:X
  1. ;
  1. NEW SUBSCRPT
  1. S SUBSCRPT="BLRLINKU Alert^"_+$H_"^"_$J
  1. S ^XTMP(SUBSCRPT,0)=$$FMADD^XLFDT($$DT^XLFDT,90)_"^"_$$DT^XLFDT_"^"_"Lab Package Alert."
  1. S ^XTMP(SUBSCRPT,1)="Alert was not sent."
  1. S ^XTMP(SUBSCRPT,2)=" Message that should have been sent follows:"
  1. S ^XTMP(SUBSCRPT,3)=" "_ALERTMSG
  1. S ^XTMP(SUBSCRPT,4)=" ALERT Error Message Follows:"
  1. S ^XTMP(SUBSCRPT,5)=" "_XQALERR
  1. Q
  1. ;
  1. NINLMI(CHKDUZ) ; EP -- Check to see if DUZ is NOT part of LMI Mail Group
  1. NEW MGRPIEN,XMDUZ
  1. ;
  1. ; Get IEN of LMI MaiL Group
  1. D CHKGROUP^XMBGRP("LMI",.MGRPIEN) ; VA DBIA 1146
  1. Q:+(MGRPIEN)<1 1 ; If no Mail Group, return TRUE
  1. ;
  1. ; XMDUZ = DUZ of the user
  1. ; Y = IEN of the mail group
  1. S XMDUZ=DUZ
  1. S Y=MGRPIEN
  1. D CHK^XMA21 ; VA DBIA 10067
  1. ;
  1. Q $S($T=1:0,1:1)
  1. ;
  1. ; Send MailMan E-mail to LMI group AND User (if User is not a member of LMI Mail Group)
  1. SENDMAIL(MAILMSG,MAILARRY,FROMWHOM,NOUSER) ; EP
  1. NEW DIFROM
  1. ;
  1. K XMY
  1. S XMY("G.LMI")=""
  1. ;
  1. ; If User not part of LMI Mail Group, send them e-mail also, but
  1. ; If-And-Only-If the NOUSER variable is null.
  1. S:$G(NOUSER)=""&($$NINLMI(DUZ)) XMY(DUZ)=""
  1. ;
  1. S LRBLNOW=$E($$NOW^XLFDT,1,12)
  1. ;
  1. S XMSUB=MAILMSG
  1. S XMTEXT="MAILARRY("
  1. S XMDUZ=FROMWHOM
  1. S XMZ="NOT OKAY"
  1. D ^XMD
  1. ;
  1. I $G(XMMG)'=""!(XMZ="NOT OKAY") D
  1. . NEW SUBSCRPT,ARRAY
  1. . S SUBSCRPT="MailMan Message Failure^"_+$H_"^"_$J
  1. . ; S ^XTEMP(SUBSCRPT,0)=$$FMADD^XLFDT($$DT^XLFDT,90)_"^"_$$DT^XLFDT_"^"_"Lab Package MailMan Message."
  1. . ; S ^XTEMP(SUBSCRPT,1)="MailMan Message was not sent."
  1. . ; S ^XTEMP(SUBSCRPT,2)=" Message that should have been sent follows:"
  1. . ; S ARRAY=0
  1. . ; F S ARRAY=$O(MAILARRY(ARRAY)) Q:ARRAY<1 D
  1. .. ; S ^XTEMP(SUBSCRPT,(ARRAY+3))=" "_$G(MAILARRY(ARRAY))
  1. . ;
  1. . ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1039 - Use ^XTMP not ^XTEMP, per SAC
  1. . S ^XTMP(SUBSCRPT,0)=$$FMADD^XLFDT($$DT^XLFDT,90)_"^"_$$DT^XLFDT_"^"_"Lab Package MailMan Message."
  1. . S ^XTMP(SUBSCRPT,1)="MailMan Message was not sent."
  1. . S ^XTMP(SUBSCRPT,2)=" Message that should have been sent follows:"
  1. . S ARRAY=0
  1. . F S ARRAY=$O(MAILARRY(ARRAY)) Q:ARRAY<1 D
  1. .. S ^XTMP(SUBSCRPT,(ARRAY+2))=" "_$G(MAILARRY(ARRAY))
  1. . ; ----- END IHS/MSC/MKK - LR*5.2*1039
  1. ;
  1. K X,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,Y ; Cleanup
  1. Q
  1. ;
  1. ; ----- END IHS/OIT/MKK -- LR*5.2*1030
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK -- LR*5.2*1031
  1. TESTMAIL ; EP
  1. NEW DIFROM,STR
  1. ;
  1. S STR(1)="SINGLE LINE OF TEXT"
  1. ;
  1. K XMY
  1. S XMY("G.LMI")=""
  1. S XMSUB="TESTING MAILMAN"
  1. S XMTEXT="STR("
  1. S XMDUZ=DUZ
  1. S XMZ="NOT OKAY"
  1. D ^XMD
  1. ;
  1. W "XMZ:",XMZ,!
  1. W "XMMG:",$G(XMMG),!
  1. ;
  1. K X,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,Y ; Cleanup
  1. Q
  1. ; ----- END IHS/MSC/MKK -- LR*5.2*1031