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

BLRUTIL2.m

Go to the documentation of this file.
  1. BLRUTIL2 ;IHS/OIT/MKK - MISC IHS LAB UTILITIES (Cont) ; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;IHS LABORATORY;**1020,1022,1024,1027,1028,1030,1033**;NOV 01, 1997
  1. ;
  1. ; Cloned from ACTIVE^XUSER -- VA Code
  1. ACTIVE(XUDA) ; EP - Get if a user is active.
  1. N %,X1,X2
  1. S X1=$G(^VA(200,+$G(XUDA),0)),X2=$S(X1="":"",1:0)
  1. I $L($P(X1,U,3)) S X2="1^"_$S($L($P($G(^VA(200,XUDA,.1)),U,2)):"ACTIVE",1:"NEW")
  1. S:$P(X1,U,7)=1 X2="0^DISUSER"
  1. S:X2["ACTIVE" $P(X2,U,3)=$P($G(^VA(200,XUDA,1.1)),U) ;Return last sign-on
  1. S %=$P(X1,U,11) I %>0,%<DT S X2="0^TERMINATED^"_%
  1. ; Q X2
  1. ;
  1. I $P(X2,"^",1)=1 Q X2 ; If active, then OK.
  1. ;
  1. ; IHS addition; at this point the VA Code believes person INACTIVE
  1. NEW PROVINFO,WRIORDRS,INACTDT
  1. S PROVINFO=$G(^VA(200,+$G(XUDA),"PS")) ; Provider Info
  1. S WRIORDRS=$P(PROVINFO,"^",1) ; Write Orders? (1=Yes)
  1. S INACTDT=+$P(PROVINFO,"^",4) ; Inactive Date
  1. ;
  1. I WRIORDRS'=1 Q X2 ; If cannot write orders, Quit
  1. ;
  1. ;If Inactive date < Today, then Quit with error
  1. I INACTDT>0&(INACTDT<DT) Q "0^TERMINATED^"_INACTDT
  1. ;
  1. ; Can write orders AND INACTDT>=DT => OK
  1. Q "1^ACTIVE" ; OK
  1. ;
  1. BLRHEADR(LINE1,LINE2,LINE3) ; EP -- Generic HEADER array
  1. NEW TMPLN
  1. ; W $$CJ^XLFSTR($$LOC^XBFUNC,IOM) ; Location
  1. W $$CJ^XLFSTR($$LOC^XBFUNC,IOM),! ; Location -- LR*5.2*1030
  1. ;
  1. S TMPLN=$$CJ^XLFSTR(LINE1,IOM)
  1. S $E(TMPLN,1,13)="Date:"_$$HTE^XLFDT($H,"2DZ") ; Today's Date
  1. S $E(TMPLN,IOM-15)=$J("Time:"_$$NOWTIME,16) ; Current Time
  1. S TMPLN=$$TRIM^XLFSTR(TMPLN,"R"," ") ; Trim extra spaces
  1. W TMPLN,!
  1. ;
  1. I $G(LINE2)="" Q
  1. ;
  1. W $$CJ^XLFSTR(LINE2,IOM),!
  1. ;
  1. I $G(LINE3)="" Q
  1. ;
  1. W $$CJ^XLFSTR(LINE3,IOM),!
  1. ;
  1. Q
  1. ;
  1. NOWTIME() ; EP - return NOW TIME in xx:xx AM/PM format
  1. NEW X
  1. S X=$$HTE^XLFDT($H,"2MPZ") ; MM/DD/YY HH:MM am/pm format
  1. S X=$P(X," ",2,3) ; Get HH:MM am/pm
  1. S X=$$UP^XLFSTR(X) ; Uppercase am/pm to AM/PM
  1. Q X
  1. ;
  1. NOW24TIM() ; EP -- return NOW TIME in military format: HHMM
  1. Q $P($$HTE^XLFDT($H,"2MZ"),"@",2)
  1. ;
  1. ; Troubleshooting routine -- look at TaskMan and determine if any
  1. ; tasks have been rescheduled due to a "BUSY DEVICE" error. Produce
  1. ; a report of all occurrences.
  1. CHKTHL7 ; EP
  1. NEW CNT,CNTTSK,TSK,ONE,ZERO,HEADER,STR,SDATE,STIME
  1. ;
  1. S (CNT,CNTTSK,TSK)=0
  1. S HEADER(1)="HLZTCP Cannot Start Issue"
  1. S HEADER(2)="'BUSY DEVICE' Tasks"
  1. S HEADER(3)=" "
  1. S $E(HEADER(4),1)="Task #"
  1. S $E(HEADER(4),13)="Date"
  1. S $E(HEADER(4),21)="Time"
  1. S $E(HEADER(4),31)="Routine"
  1. S $E(HEADER(4),41)="Description"
  1. ;
  1. F S TSK=$O(^%ZTSK(TSK)) Q:TSK=""!(TSK'?.N) D
  1. . S CNTTSK=CNTTSK+1
  1. . S ONE=$$UP^XLFSTR($G(^%ZTSK(TSK,.1)))
  1. . I ONE'["RESCHEDULED FOR BUSY DEVICE" Q
  1. . ;
  1. . S ZERO=$G(^%ZTSK(TSK,0))
  1. . S SDATE=$$UP^XLFSTR($$HTE^XLFDT($P(ZERO,"^",5),"2PMZ"))
  1. . S STIME=$P(SDATE," ",2,3)
  1. . S SDATE=$P(SDATE," ",1)
  1. . ;
  1. . I CNT<1 D BLRGSHSH^BLRGMENU
  1. . W TSK
  1. . W ?10,SDATE,$J(STIME,9)
  1. . W ?30,$P(ZERO,"^",2)
  1. . W ?40,$E($G(^%ZTSK(TSK,.03)),1,40)
  1. . W !
  1. . S CNT=CNT+1
  1. ;
  1. W:CNT>0 !!,"Number of tasks that were rescheduled = ",CNT,!!
  1. W:CNT<1 !!,"Number of tasks that were examined = ",CNTTSK,!!
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK MODIFCATION -- LR*5.2*1022
  1. ERRTRAPR ; EP -- Quick & Dirty Error Trap Report
  1. NEW ETD ; Error Trap Date
  1. NEW ETN ; Error Trap Number
  1. NEW MAXERRPD ; Maximum Errors Per Day
  1. NEW NERRSPD ; Number of Errors Per Day
  1. NEW CNT ; Temporary Count variable
  1. NEW HEADER ; Header Information Array
  1. ;
  1. S HEADER(1)="ERROR TRAP REPORT"
  1. S HEADER(2)="Maximum 15 Errors Per Day"
  1. S HEADER(3)=" "
  1. S HEADER(4)="----Error Date----"
  1. S $E(HEADER(4),26)="Err"
  1. S HEADER(5)=" $H"
  1. S $E(HEADER(5),11)="External"
  1. S $E(HEADER(5),26)="Num"
  1. S $E(HEADER(5),31)="Routine"
  1. S $E(HEADER(5),51)="Error"
  1. ;
  1. D BLRGSHSH^BLRGMENU
  1. ;
  1. S MAXERRPD=15
  1. S ETD="A"
  1. F S ETD=$O(^%ZTER(1,ETD),-1) Q:ETD=""!(ETD'?.N)!(ETD<1) D
  1. . W ETD
  1. . W ?10,$$HTE^XLFDT(ETD,"2DZ")
  1. . S (CNT,ETN)=0
  1. . F S ETN=$O(^%ZTER(1,ETD,1,ETN)) Q:ETN=""!(ETN'?.N)!(ETN>MAXERRPD) D
  1. .. S CNT=CNT+1
  1. .. W ?25,$J(ETN,3) ; Error Trap #
  1. .. W ?30,$P($G(^%ZTER(1,ETD,1,ETN,"ZE")),"^",2) ; Routine Name
  1. .. W ?50,$P($G(^%ZTER(1,ETD,1,ETN,"ZE")),">",1),">" ; Error
  1. .. W !
  1. . I CNT=0 W !
  1. . W !
  1. ;
  1. Q
  1. ;
  1. ; LAB REPORTS HEADER routine
  1. ; If and only if the entries in the BLR MASTER CONTROL File are filled
  1. ; in, use those as the address of the site. Otherwise, use default
  1. ; Lab calls. IHS/OIT/MKK LR*5.2*1022 addition
  1. LABHDR ; EP -- Display Header for Lab Report(s)
  1. I $$GET1^DIQ(9009029,+$G(DUZ(2))_",3","INTERIM REPORT LINE 1")'="" D HDRBLREN Q
  1. ;
  1. D NOBLRENT
  1. Q
  1. ;
  1. HDRBLREN ; EP -- Header if BLR MASTER FILE address fields ARE NOT blank
  1. NEW INSTNUM ; Institution Number
  1. NEW INTRPTH2 ; Header Line 2
  1. NEW STR
  1. ;
  1. S INSTNUM=+$G(DUZ(2)) ; Set the variable
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK - LR*5.2*1027
  1. ; BLR MASTER CONTROL FILE field
  1. ; S STR=$$CJ^XLFSTR($$GET1^DIQ(9009029,INSTNUM_",3","INTERIM REPORT LINE 1"),IOM)
  1. S STR=$$GET1^DIQ(9009029,INSTNUM_",3","INTERIM REPORT LINE 1")
  1. ;I $L(STR)>59 D
  1. ;. W "Printed at:"
  1. ;. W ?70,"Page "_LRPG
  1. ;. W !
  1. ;. S STR=$$CJ^XLFSTR(STR,IOM)
  1. ;I $L(STR)<60 D
  1. ;. S STR=$$CJ^XLFSTR(STR,IOM)
  1. ;. S $E(STR,1,11)="Printed at:"
  1. ;. S $E(STR,70)="Page "_LRPG
  1. ;. S STR=$$TRIM^XLFSTR(STR,"R"," ")
  1. ; ----- END IHS/OIT/MKK - LR*5.2*1027
  1. S STR=$$CJ^XLFSTR(STR,IOM) ; IHS/OIT/MKK - LR*5.2*1028
  1. ; W STR,!
  1. W !,STR,! ; IHS/OIT/MKK - LR*5.2*1030
  1. ;
  1. S INTRPTH2=$$GET1^DIQ(9009029,INSTNUM_",3","INTERIM REPORT LINE 2")
  1. W:$G(INTRPTH2)'="" $$CJ^XLFSTR(INTRPTH2,IOM)
  1. ;
  1. W !
  1. ;
  1. Q
  1. ;
  1. NOBLRENT ; EP -- Header if the BLR MASTER FILE address fields ARE blank
  1. NEW STR,STRA1,STRA2,STRN,INSTHDR,INSTNUM,STRO,STRT
  1. NEW CITY,STATE,ZIP
  1. ;
  1. S INSTNUM=+$G(DUZ(2)) ; "Institution" Number from DUZ(2)
  1. ;
  1. ; If there is no Institution Number from DUZ(2), try the DEFAULT
  1. ; INSTITUTION entry in the KERNEL SYSTEM PARAMETERS file.
  1. I INSTNUM<1 S INSTNUM=+$$KSP^XUPARAM("INST")
  1. ;
  1. S STRN=$$NAME^XUAF4(INSTNUM) ; Get Site Name
  1. ;
  1. I $TR(STRN," ")="" D Q ; If there is no site name, skip
  1. . W !,$$CJ^XLFSTR("<UNKNOWN INSTITUTION>",IOM),!
  1. ;
  1. S STRN=STRN_" ("_INSTNUM_")" ; Include Number in string
  1. ;
  1. ; GET STREET ADDRESS Entries
  1. D STREETAD
  1. ;
  1. ; If there is no address, print Institution name and then quit
  1. I $TR($TR($G(STRA1),",")," ")="" D Q
  1. . W !,$$CJ^XLFSTR(STRN,IOM),!
  1. ;
  1. ; At this point, there is some sort of address information -- Print it.
  1. I ($L(STRA1)+$L(STRN)+8)>IOM D ; Too wide -- use 2 lines
  1. . W !,$$CJ^XLFSTR(STRN,IOM)
  1. . W !,$$CJ^XLFSTR(STRA1,IOM),!
  1. ;
  1. I ($L(STRA1)+$L(STRN)+8)<(IOM+1) D ; Just use 1 line
  1. . W !,$$CJ^XLFSTR(STRN_" "_STRA1,IOM),!
  1. ;
  1. Q
  1. ;
  1. STREETAD ; EP -- Get Street Address
  1. S STRA1=$$GET1^DIQ(4,INSTNUM,"STREET ADDR. 1") ; Get the STREET ADDR. 1 entry
  1. ;
  1. ; If there is a STREET ADDR. 1 entry, then try to get all of the address
  1. I $G(STRA1)'="" D
  1. . S STRA2=$$GET1^DIQ(4,$G(INSTNUM),"STREET ADDR. 2")
  1. . S CITY=$$GET1^DIQ(4,$G(INSTNUM),"CITY")
  1. . S STATE=$$GET1^DIQ(4,$G(INSTNUM),"STATE:ABBREVIATION")
  1. . S ZIP=$$GET1^DIQ(4,$G(INSTNUM),"ZIP")
  1. ;
  1. ; If there IS NOT a STREET ADDR. 1 entry, then try to get the address
  1. ; information from the MAILING address entries.
  1. I $G(STRA1)="" D
  1. . S STRA1=$$GET1^DIQ(4,$G(INSTNUM),"STREET ADDR. 1 (MAILING)")
  1. . S STRA2=$$GET1^DIQ(4,$G(INSTNUM),"STREET ADDR. 2 (MAILING)")
  1. . S CITY=$$GET1^DIQ(4,$G(INSTNUM),"CITY (MAILING)")
  1. . S STATE=$$GET1^DIQ(4,$G(INSTNUM),"STATE (MAILING):ABBREVIATION")
  1. . S ZIP=$$GET1^DIQ(4,$G(INSTNUM),"ZIP (MAILING)")
  1. ;
  1. I $G(STRA2)'="" S STRA1=STRA1_" "_STRA2
  1. ;
  1. S STRA1=STRA1_" "_CITY_", "_STATE_" "_ZIP
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK MODIFCATION -- LR*5.2*1024
  1. ; Moved here because BLRUTIL was too large
  1. REPORT2(USER) ; EP
  1. NEW BLRIDS,BLRACCN,CNT
  1. NEW NOW,ENTRYNUM,LABEL,VARIABLE
  1. ;
  1. S CNT=0
  1. D ^%ZIS Q:POP
  1. W @IOF
  1. S (ENTRYNUM,LABEL,NOW,VARIABLE)=""
  1. F S NOW=$O(^BLRENTRY(USER,NOW)) Q:NOW="" D
  1. . F S ENTRYNUM=$O(^BLRENTRY(USER,NOW,ENTRYNUM)) Q:ENTRYNUM="" D
  1. .. F S LABEL=$O(^BLRENTRY(USER,NOW,ENTRYNUM,LABEL)) Q:LABEL="" D
  1. ... W !,ENTRYNUM,?15,LABEL,?67,NOW
  1. ... S (BLRIDS,BLRACCN)=""
  1. ... F S VARIABLE=$O(^BLRENTRY(USER,NOW,ENTRYNUM,LABEL,VARIABLE)) Q:VARIABLE="" D
  1. .... S VALUE=$G(^BLRENTRY(USER,NOW,ENTRYNUM,LABEL,VARIABLE))
  1. .... I VARIABLE["BLRIDS" S BLRIDS=VALUE
  1. .... I VARIABLE["BLRACCN" S BLRACCN=VALUE
  1. ... I BLRIDS'=""!(BLRACCN'="") W !,?20,"BLRIDS:",BLRIDS,"; BLRACCN=",BLRACCN
  1. ;
  1. D ^%ZISC
  1. Q
  1. ;
  1. REPORT3(VARIABLE) ; EP
  1. NEW BLRIDS,BLRACCN
  1. NEW NOW,ENTRYNUM,LABEL,USER
  1. NEW HDRONE,LINES,MAXLINES,PG,QFLG ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. NEW HEADER
  1. ;
  1. S HEADER(1)="^BLRENTRY TRACE REPORT"
  1. S HEADER(2)="ALL USERS"
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE) ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. S HEADER(3)=" "
  1. S $E(HEADER(4),60)=VARIABLE
  1. S HEADER(5)="DUZ"
  1. S $E(HEADER(5),10)="Date/Time"
  1. S $E(HEADER(5),25)="Num"
  1. S $E(HEADER(5),30)="Label"
  1. S $E(HEADER(5),60)="Value"
  1. ;
  1. S MAXLINES=20,LINES=MAXLINES+10 ; IHS/MSC/MKK - LR*5.2*1033
  1. S PG=0,QFLG="NO" ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. D ^%ZIS Q:POP
  1. S (ENTRYNUM,LABEL,NOW,USER)=""
  1. F S USER=$O(^BLRENTRY(USER)) Q:USER=""!(QFLG="Q") D
  1. . F S NOW=$O(^BLRENTRY(USER,NOW)) Q:NOW=""!(QFLG="Q") D
  1. .. F S ENTRYNUM=$O(^BLRENTRY(USER,NOW,ENTRYNUM)) Q:ENTRYNUM=""!(QFLG="Q") D
  1. ... F S LABEL=$O(^BLRENTRY(USER,NOW,ENTRYNUM,LABEL)) Q:LABEL=""!(QFLG="Q") D
  1. .... I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q" ; IHS/MSC/MKK - LR*5.2*1033
  1. .... ;
  1. .... S VALUE=$G(^BLRENTRY(USER,NOW,ENTRYNUM,LABEL,VARIABLE))
  1. .... W USER
  1. .... W ?9,NOW
  1. .... W ?24,$J(ENTRYNUM,3)
  1. .... W ?29,$E(LABEL,1,28)
  1. .... W ?59,$E(VALUE,1,19)
  1. .... W !
  1. .... S LINES=LINES+1 ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. D ^%ZISC
  1. Q
  1. ;
  1. ; ----- END IHS/OIT/MKK MODIFCATION -- LR*5.2*1024
  1. ;
  1. REPORT4(LABEL) ; EP -- Only print certain "LABELS"
  1. NEW BLRIDS,BLRACCN
  1. ; NEW NOW,ENTRYNUM,LABEL,USER
  1. NEW NOW,ENTRYNUM,SRCLABEL,USER ; IHS/MSC/MKK - LR*5.2*1033
  1. NEW HDRONE,LINES,MAXLINES,PG,QFLG
  1. ;
  1. NEW HEADER
  1. ;
  1. S HEADER(1)="^BLRENTRY TRACE REPORT"
  1. S HEADER(2)="ALL USERS"
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE) ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. ; S HEADER(3)=$$CJ^XLFSTR(LABEL)
  1. S HEADER(3)=$$CJ^XLFSTR(LABEL,IOM) ; IHS/MSC/MKK - LR*5.2*1033
  1. S HEADER(4)=" "
  1. S HEADER(5)="DUZ"
  1. S $E(HEADER(5),10)="Date/Time"
  1. S $E(HEADER(5),25)="Num"
  1. S $E(HEADER(5),30)="Variable"
  1. S $E(HEADER(5),40)="Value"
  1. ;
  1. S MAXLINES=20,LINES=MAXLINES+10 ; IHS/MSC/MKK - LR*5.2*1033
  1. S PG=0,QFLG="NO" ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. D ^%ZIS Q:POP
  1. ; S (ENTRYNUM,LABEL,NOW,USER)=""
  1. S (ENTRYNUM,SRCLABEL,NOW,USER)="" ; IHS/MSC/MKK - LR*5.2*1033
  1. F S USER=$O(^BLRENTRY(USER)) Q:USER=""!(QFLG="Q") D
  1. . F S NOW=$O(^BLRENTRY(USER,NOW)) Q:NOW=""!(QFLG="Q") D
  1. .. F S ENTRYNUM=$O(^BLRENTRY(USER,NOW,ENTRYNUM)) Q:ENTRYNUM=""!(QFLG="Q") D
  1. ... F S SRCLABEL=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL)) Q:SRCLABEL=""!(QFLG="Q") D
  1. .... Q:SRCLABEL'[LABEL ; IHS/MSC/MKK - LR*5.2*1033
  1. .... F S VARIABLE=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE)) Q:VARIABLE=""!(QFLG="Q") D
  1. ..... I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q" ; IHS/MSC/MKK - LR*5.2*1033
  1. ..... ;
  1. ..... S VALUE=$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE))
  1. ..... W USER
  1. ..... W ?9,NOW
  1. ..... W ?24,$J(ENTRYNUM,3)
  1. ..... W ?29,VARIABLE
  1. ..... W ?39,$E(VALUE,1,40)
  1. ..... W !
  1. ..... S LINES=LINES+1 ; IHS/MSC/MKK - LR*5.2*1033
  1. ..... D SUBNODES ; IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. D ^%ZISC
  1. ;
  1. D:QFLG'="Q" PRESSKEY^BLRGMENU(9) ; IHS/MSC/MKK - LR*5.2*1033
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1033
  1. SUBNODES ; EP
  1. NEW STR,SUB2,SUB3,SUB4,SUB5
  1. ;
  1. S SUB1=""
  1. F S SUB1=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1)) Q:SUB1="" D
  1. . D SUBLINE(SUB1,$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1)))
  1. . S SUB2=""
  1. . F S SUB2=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2)) Q:SUB2="" D
  1. .. D SUBLINE(SUB2,$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2)))
  1. .. S SUB3=""
  1. .. F S SUB3=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3)) Q:SUB3="" D
  1. ... D SUBLINE(SUB3,$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3)))
  1. ... S SUB4=""
  1. ... F S SUB4=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3,SUB4)) Q:SUB4="" D
  1. .... D SUBLINE(SUB4,$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3,SUB4)))
  1. .... S SUB5=""
  1. .... F S SUB5=$O(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3,SUB4,SUB5)) Q:SUB5="" D
  1. ..... D SUBLINE(SUB5,$G(^BLRENTRY(USER,NOW,ENTRYNUM,SRCLABEL,VARIABLE,SUB1,SUB2,SUB3,SUB4,SUB5)))
  1. Q
  1. ;
  1. SUBLINE(WOT,STR) ; EP - Line of Data
  1. W ?39,WOT,! S LINES=LINES+1
  1. Q:$L(STR)<1
  1. ;
  1. I $L(STR)<31 W ?49,STR,! S LINES=LINES+1 Q
  1. ;
  1. D:$L(STR)>30 LINEWRAP^BLRGMENU(49,STR,30)
  1. ;
  1. Q
  1. ; ----- END IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. ; Purge BLRENTRY global of ALL entries up to (but NOT including) today
  1. PURGBLRE ; EP
  1. NEW DTT,TODAY,WHO
  1. ;
  1. S TODAY=$P($$NOW^XLFDT,".")
  1. ;
  1. W !!,"Purging BLRENTRY global",!,?5
  1. ;
  1. S WHO=0
  1. F S WHO=$O(^BLRENTRY(WHO)) Q:WHO<1 D
  1. . S DTT=0
  1. . F S DTT=$O(^BLRENTRY(WHO,DTT)) Q:DTT<1 D
  1. .. I +$P(DTT,".")'<TODAY W "."
  1. .. I +$P(DTT,".")<TODAY D
  1. ... K ^BLRENTRY(WHO,DTT)
  1. ... W "*"
  1. .. W:$X>70 !,?5
  1. ;
  1. Q