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

BLRLLPRR.m

Go to the documentation of this file.
  1. BLRLLPRR ; IHS/MSC/MKK - Lab Label Printer Reset Routine ; [ February 29, 2012 8:00 AM ]
  1. ;;5.2;LAB SERVICE;**1031**;NOV 01, 1997
  1. ;
  1. EEP ; EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. EP ; EP
  1. PEP ; EP
  1. NEW BLRMMENU,BLRVERN,LINES
  1. ;
  1. D SETMENU
  1. ;
  1. ; Main Menu driver
  1. D MENUDRFM^BLRGMENU("RPMS Lab Module","Reset Lab Label Printing")
  1. Q
  1. ;
  1. SETMENU ; EP -- Lab Programmer Menu
  1. S BLRVERN=$P($P($T(+1),";")," ")
  1. ;
  1. D ADDTMENU^BLRGMENU("GETNEWR^BLRLLPRR","Overwrite LRLABEL4 With Specified Routine")
  1. D ADDTMENU^BLRGMENU("GETNEWO^BLRLLPRR","Replace ROUTINE in Specified Option")
  1. D ADDTMENU^BLRGMENU("PAIRS^BLRLLPRR","List Print Routines")
  1. Q
  1. ;
  1. GETNEWR ; EP
  1. NEW CODE,ERRS,NEWRTN,PRINTRTN
  1. NEW HD1,HEADER,LINES,MAXLINES,PG,QFLG
  1. ;
  1. I $$GETPRINI(.NEWRTN)="Q" D Q
  1. . W !,?4,"Routine not selected.",!
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. Q:$$REALLY("LRLABEL4")="Q"
  1. ;
  1. ; Retrieve code from new routine and store in CODE array
  1. S GETIT=$$ROUTINE^%R(NEWRTN_".INT",.CODE,.ERRS,"L")
  1. I GETIT<1 D DOERRS(.ERRS) Q
  1. ;
  1. ; Backup & then Compile & then save new version of LRLABEL4 routine
  1. S GETIT=$$ROUTINE^%R("LRLABEL4.INT",.CODE,.ERRS,"BCS")
  1. I GETIT<1 D DOERRS(.ERRS) Q
  1. ;
  1. W !!,?4,"LRLABEL4 routine has been successfully over-written by ",NEWRTN,".",!
  1. D PRESSKEY^BLRGMENU(9)
  1. ;
  1. Q
  1. ;
  1. GETPRINI(NEWRTN) ; EP - GET new Print Routine - INItialization of variables
  1. S HEADER(1)="IHS Lab Label Printer Utilities"
  1. S HEADER(2)="Print Routine Replacement"
  1. ;
  1. Q:$$USERTNS(.NEWRTN)="Q" "Q"
  1. ;
  1. Q "OK"
  1. ;
  1. USERTNS(NEWRTN) ; EP
  1. NEW DASH,HOWMANY,LABELRTN,ORD,RTNS,STR
  1. ;
  1. D PRNTRTNS(.LABELRTN,.HOWMANY)
  1. ;
  1. D SETUPDIR("Print Routines",.LABELRTN,10,20,"Routine",HOWMANY)
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D ^DIR
  1. ;
  1. S (X,NEWRTN)=$O(LABELRTN(+$G(Y),""))
  1. Q $S($L(X)>0:X,1:"Q")
  1. ;
  1. SETUPDIR(PROMPT,ARRAY,TABONE,TABTWO,HEADER1,HOWMANY) ; EP - SETUP DIR array and variables
  1. NEW DASH,HOWLONG,ORD,SELSTR,WHAT
  1. ;
  1. S DASH=$TR($J("",IOM)," ","-")
  1. S HOWLONG=IOM-TABTWO
  1. ;
  1. D ^XBFMK
  1. S DIR("A")="Enter Response (1-"_HOWMANY_")"
  1. S ORD=0,CNT=5
  1. F S ORD=$O(ARRAY(ORD)) Q:ORD="" D
  1. . S WHAT=$O(ARRAY(ORD,""))
  1. . K STR
  1. . S $E(STR,5)=$J(ORD,2)
  1. . S $E(STR,TABONE)=WHAT
  1. . S:HOWLONG>5 $E(STR,TABTWO)=$E($G(ARRAY(ORD,WHAT)),1,HOWLONG)
  1. . S DIR("L",CNT)=STR
  1. . S CNT=CNT+1
  1. . I ORD>1 S SELSTR=SELSTR_";"_ORD_":"
  1. . I ORD<2 S SELSTR="SO^"_ORD_":"
  1. S DIR("L",1)="Select one of the "_PROMPT_" below:"
  1. S DIR("L",2)=""
  1. K STR
  1. S $E(STR,TABONE)=HEADER1
  1. S $E(STR,TABTWO)="Description"
  1. S DIR("L",3)=STR
  1. K STR
  1. S $E(STR,TABONE)=$E(DASH,1,(TABTWO-TABONE)-2)
  1. S $E(STR,TABTWO)=$E(DASH,1,HOWLONG)
  1. S DIR("L",4)=STR
  1. S DIR("L")=""
  1. S DIR(0)=SELSTR
  1. Q
  1. ;
  1. REALLY(WOT) ; EP - Prompt for certainty -- Ask 3 Times.
  1. NEW ANSWER
  1. ;
  1. S ANSWER=$$AREUSURE("CERTAIN",,WOT)
  1. Q:ANSWER="Q" "Q"
  1. ;
  1. S ANSWER=$$AREUSURE("REALLY certain",,WOT)
  1. Q:ANSWER="Q" "Q"
  1. ;
  1. Q $$AREUSURE("ABSOLUTELY certain","LAST CHANCE",WOT)
  1. Q:ANSWER="Q" "Q"
  1. ;
  1. Q "OK"
  1. ;
  1. AREUSURE(MSG,WARNING,WOT) ; EP
  1. NEW MIDPOINT,WARNLEN
  1. ;
  1. D HEADERDT^BLRGMENU
  1. ;
  1. I $D(WARNING) D
  1. . S WARNING=$TR(WARNING," ","@")
  1. . S WARNING=$$CJ^XLFSTR(">>>>>>>>>>>@"_WARNING_"@<<<<<<<<<<<",IOM)
  1. . S WARNING=$TR(WARNING,"@"," ")
  1. . W WARNING
  1. . W !
  1. ;
  1. NEW PROMPT,TAB
  1. D ^XBFMK
  1. S PROMPT=$J("",5)_"Are you "_MSG_" you want to overwrite "_WOT
  1. I $L(PROMPT)<71 S DIR("A")=PROMPT
  1. I $L(PROMPT)>70 K DIR("A") D
  1. . S DIR("A",1)=$J("",5)_"Are you "_MSG_" you want to"
  1. . S DIR("A",2)=" "
  1. . S DIR("A")=$J("",5)_"overwrite "_WOT
  1. S DIR(0)="YO"
  1. S DIR("B")="NO"
  1. D ^DIR
  1. ;
  1. I $E($$UP^XLFSTR(X),1)'="Y" D Q "Q"
  1. . S XPDABORT=1
  1. . S TAB=9
  1. . S PROMPT="YES was NOT entered. Overwriting of "_WOT_" Aborted."
  1. . S:($L(PROMPT)+9)>70 TAB=4
  1. . W !!,?TAB,"YES was NOT entered. Overwriting of "_WOT_" Aborted.",!
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. Q "OK"
  1. ;
  1. GETNEWO ; EP
  1. NEW CNT,CODE,ERRS,INITRTN,LABELRTN,NEWRTN,OPTSIEN,PRINTRTN,WOTOPTS
  1. NEW HD1,HEADER,LINES,MAXLINES,PG,QFLG
  1. ;
  1. I $$GETOOINI(.WOTOPTS,.OPTSIEN)="Q" D Q
  1. . W !,?4,"Option not selected.",!
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. K HEADER(3)
  1. S HEADER(3)=$$CJ^XLFSTR("Option "_WOTOPTS_" Selected",IOM)
  1. ;
  1. I $$GETORINI(.INITRTN)="Q" D Q
  1. . W !,?4,"Routine not selected.",!
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. Q:$$REALLY("the Initialization Routine")="Q"
  1. ;
  1. D SETOPTIR(WOTOPTS,OPTSIEN,INITRTN)
  1. Q
  1. ;
  1. SETOPTIR(WOTOPTS,OPTSIEN,INITRTN) ; EP -- Resets ROUTINE in selected option
  1. NEW ERRS,NEWRTN
  1. ;
  1. D ^XBFMK
  1. S DA=OPTSIEN
  1. S DIE=19
  1. S DR="25///"_INITRTN
  1. D ^DIE
  1. ;
  1. D ^XBFMK
  1. S NEWRTN=$$GET1^DIQ(19,OPTSIEN,25,,,"ERRS")
  1. I $D(ERRS) D Q
  1. . W !,?4,"Errors Occurred.",!
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. D HEADERDT^BLRGMENU
  1. W !,?4,"For Option ",WOTOPTS,!!
  1. W ?9,"ROUTINE:",NEWRTN
  1. D PRESSKEY^BLRGMENU(14)
  1. ;
  1. Q
  1. ;
  1. GETOOINI(WOTOPTS,OPTSIEN) ; EP - GET Option & Option's IEN
  1. S HEADER(1)="IHS Lab Label Printer Utilities"
  1. S HEADER(2)="Option Routine Replacement"
  1. S HEADER(3)=$$CJ^XLFSTR("Option Selection",IOM)
  1. ;
  1. Q:$$USEORTNS(.WOTOPTS)="Q" "Q"
  1. D GOPTIEN(WOTOPTS,.OPTSIEN)
  1. Q "OK"
  1. ;
  1. GETORINI(INITRTN) ; EP - GET Initialization Routine
  1. K HEADER(4)
  1. S HEADER(4)=$$CJ^XLFSTR("Routine Selection",IOM)
  1. S CNT=0
  1. ;
  1. D INITRTNS(.LABELRTN,.CNT)
  1. ;
  1. D SETUPDIR("Initialization Routines",.LABELRTN,10,20,"Routine",CNT)
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D ^DIR
  1. ;
  1. S (X,INITRTN)=$O(LABELRTN(+$G(Y),""))
  1. Q $S($L(X)>0:X,1:"Q")
  1. ;
  1. USEORTNS(WOTOPTS) ; EP
  1. NEW DASH,HOWMANY,LABELRTN,ORD,RTNS,STR,WOTOPTSA
  1. ;
  1. S DASH=$TR($J("",IOM)," ","-")
  1. D GETOPTS(.WOTOPTSA,.HOWMANY)
  1. ;
  1. D SETUPDIR("Options",.WOTOPTSA,10,41,"Option",HOWMANY)
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D ^DIR
  1. ;
  1. S (X,WOTOPTS)=$O(WOTOPTSA(+$G(Y),""))
  1. Q $S($L(X)>0:X,1:"Q")
  1. ;
  1. GOPTIEN(OPT,IEN) ; EP - Get Option's IEN from File 19
  1. D ^XBFMK
  1. S X=OPT,DIC="19"
  1. D ^DIC
  1. S IEN=+$G(Y)
  1. Q
  1. ;
  1. GETOPTS(WOTOPTS,CNT) ; EP -- Set WOTOPTS array with BLR startup Options
  1. NEW OPT,ZERO
  1. S OPT=.9999999
  1. F S OPT=$O(^DIC(19,OPT)) Q:OPT<1 D
  1. . S ZERO=$G(^DIC(19,OPT,0))
  1. . Q:ZERO'["BLR"
  1. . Q:ZERO'["STARTUP"
  1. . S CNT=1+$G(CNT)
  1. . S WOTOPTS(CNT,$P(ZERO,"^"))=$P(ZERO,"^",2)
  1. Q
  1. ;
  1. DOERRS(ERRORS) ; EP
  1. W !!,"Errors follow:",!!
  1. W $$FMTERR^%R(.ERRORS)
  1. W !
  1. D PRESSKEY^BLRGMENU(4)
  1. Q
  1. ;
  1. PRNTRTNS(LABELRTN,CNT) ; EP -- Set LABELRTN array with Lab Label Print Routines on the system
  1. NEW RTNS,SEED,STR
  1. ;
  1. F SEED="BLRLAB","BLRIPL" D
  1. . S RTNS=SEED
  1. . F S RTNS=$O(^ROUTINE(RTNS)) Q:RTNS=""!($E(RTNS,1,6)'=SEED) D
  1. .. Q:SEED="BLRIPL"&($E($RE(RTNS),1)="I") ; "I" routines are initializers
  1. .. S CNT=1+$G(CNT)
  1. .. D STRRTNS(.LABELRTN,RTNS,CNT)
  1. ;
  1. Q
  1. ;
  1. STRRTNS(LABELRTN,RTNS,CNT) ; EP -- Store routine & description
  1. S STR=$$TRIM^XLFSTR($P($G(^ROUTINE(RTNS,0,1)),";",2),"LR"," ")
  1. S STR=$$TRIM^XLFSTR($P(STR,"-",2,99),"LR"," ")
  1. S STR=$$TRIM^XLFSTR($P(STR,"["),"LR"," ")
  1. S LABELRTN(CNT,RTNS)=STR
  1. Q
  1. ;
  1. INITRTNS(LABELRTN,CNT) ; EP -- Set LABELRTN array with Lab Label Initialization Routines on the system
  1. NEW RTNS,SEED,STR
  1. ;
  1. F SEED="BLRBAR","BLRIPL" D
  1. . S RTNS=SEED
  1. . F S RTNS=$O(^ROUTINE(RTNS)) Q:RTNS=""!($E(RTNS,1,6)'=SEED) D
  1. .. Q:SEED="BLRIPL"&($E($RE(RTNS),1)="P") ; "P" routines are the print routines
  1. .. S CNT=1+$G(CNT)
  1. .. D STRRTNS(.LABELRTN,RTNS,CNT)
  1. ;
  1. Q
  1. ;
  1. ; DEAD CODE follows, for the time being
  1. GETPRTN(NEWRTN) ; EP -- Get Print Routine's Name
  1. NEW NAME
  1. ;
  1. S NAME=""
  1. F Q:$L(NAME)!(NAME="Q") D
  1. . D HEADERDT^BLRGMENU
  1. . D ^XBFMK
  1. . S DIR(0)="FAO"
  1. . S DIR("A")="Select Lab Label Print Routine: "
  1. . D ^DIR
  1. . I $L($G(X))<1 D Q:NAME="Q"
  1. .. W !,?4,"Invalid/No Entry.",!!
  1. .. D ^XBFMK
  1. .. S DIR(0)="YAO"
  1. .. S DIR("A")=" Quit?"
  1. .. S DIR("B")="YES"
  1. .. D ^DIR
  1. .. I +$G(Y)>0 D
  1. ... S NAME="Q"
  1. ... W !,?4,"Routine Ends.",!
  1. . ;
  1. . I $D(^ROUTINE($G(X)))<1 D Q
  1. .. W !,?4,"Routine ",$G(X)," Does Not Exist in this UCI.",!
  1. . ;
  1. . S NAME=$G(X)
  1. ;
  1. I $L(NAME)<1 Q "Q"
  1. ;
  1. S NEWRTN=NAME
  1. Q "OK"
  1. ;
  1. PAIRS ; EP - List all the routines that are tied to Lab Label Printing.
  1. NEW CODE,ERRS,NEWRTN,PRINTRTN
  1. NEW BLRVERN,CNT,HD1,HEADER,LINES,MAXLINES,PG,QFLG
  1. NEW RTNS,SEED,STR
  1. ;
  1. D PAIRINIT
  1. ;
  1. F SEED="BLRBAR","BLRLAB","BLRIPL" D
  1. . S RTNS=SEED
  1. . F S RTNS=$O(^ROUTINE(RTNS)) Q:RTNS=""!($E(RTNS,1,6)'=SEED) D
  1. .. D PAIRLINE
  1. ;
  1. W !,?19,"COUNT:",CNT
  1. D ^%ZISC
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. PAIRINIT ; EP - Initialize variables
  1. S BLRVERN=$P($P($T(+1),";")," ")
  1. ;
  1. S HEADER(1)="IHS Lab Label Printer Utilities"
  1. S HEADER(2)="Print Routines Report"
  1. S HEADER(3)=$$CJ^XLFSTR("All BLRBAR, BLRLAB and BLRIPL Lab Label Routines",IOM)
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D ^%ZIS
  1. I POP D Q "Q"
  1. . W !,?4,"Device Not Available. Routine Ends.",!!
  1. . D PRESSKEY^BLRGMENU(9)
  1. U IO
  1. ;
  1. I IOST["C-VT" D HEADONE2^BLRLUAC2(.HD1) W !
  1. ;
  1. S MAXLINES=IOSL-4
  1. S LINES=MAXLINES+10
  1. ;
  1. S (CNT,PG)=0,QFLG="NO"
  1. ;
  1. S HEADER(4)=" "
  1. S HEADER(5)="Routine"
  1. S $E(HEADER(5),15)="Routine Description"
  1. ;
  1. Q
  1. ;
  1. PAIRLINE ; EP - Print a line of data
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HD1) Q:QFLG="Q"
  1. ;
  1. S STR=$$TRIM^XLFSTR($P($P($G(^ROUTINE(RTNS,0,1)),";",2),"-",2),"LR"," ")
  1. W $E(RTNS,1,13)
  1. W ?14,$E(STR,1,65)
  1. W !
  1. S LINES=LINES+1
  1. S CNT=1+$G(CNT)
  1. Q