ORY280 ;ISL/TC,JER - Pre- and Post-install for patch OR*3*280 ;09/22/10 07:12
;;3.0;ORDER ENTRY/RESULTS REPORTING;**280**;Dec 17, 1997;Build 85
;
;
PRE ; Initiate pre-init processes
Q
;
POST ; Initiate post-init processes
D DLGBULL
D UPDNAT
D OC
D UPDPAR
D ^ORY280ES ;expert system changes
D MAIN^ORY280P ;install parameter values
K ^DIC(100.05,0,"RD") ; REMOVE @ ACCESS CODE FROM READ OF FILE 100.05
;D UPDPAR1
Q
;
SENDDLG(ANAME) ; Return true if the current order dialog should be sent
I ANAME="OR GTX EARLIEST DATE" Q 1
I ANAME="GMRCOR CONSULT" Q 1
I ANAME="GMRCOR REQUEST" Q 1
I ANAME="OR GTX ADDITIVE FREQUENCY" Q 1
I ANAME="PSJI OR PAT FLUID OE" Q 1
I ANAME="PSJ OR PAT OE" Q 1
I ANAME="PSO OERR" Q 1
I ANAME="PS MEDS" Q 1
Q 0
;
DLGBULL ; send bulletin about modified dialogs <on first install>
N I,ORD
F I="GMRCOR CONSULT","GMRCOR REQUEST","PSJI OR PAT FLUID OE" S ORD(I)=""
D EN^ORYDLG(280,.ORD)
Q
;
OC ; setup new order checks
S ^ORD(100.8,34,0)="DRUG DOSAGE"
S ^ORD(100.8,34,1,0)="^^2^2^3090623^"
S ^ORD(100.8,34,1,1,0)="This is an order check that Pharmacy performs to check the dosage of a "
S ^ORD(100.8,34,1,2,0)="drug order for various problems."
S ^ORD(100.8,35,0)="CLINICAL REMINDER TEST"
S ^ORD(100.8,35,1,0)="^^4^4^3090706^"
S ^ORD(100.8,35,1,1,0)="This order check refers to Clinical Reminder Rules that will look at the "
S ^ORD(100.8,35,1,2,0)="Orderable Item that is getting placed and determin if a Reminder Rule "
S ^ORD(100.8,35,1,3,0)="should fire. The CLINICAL REMINDER TEST order check is for testing "
S ^ORD(100.8,35,1,4,0)="Reminder Order checks before deploying them to production."
S ^ORD(100.8,36,0)="CLINICAL REMINDER LIVE"
S ^ORD(100.8,36,1,0)="^^3^3^3090706^"
S ^ORD(100.8,36,1,1,0)="This order check refers to Clinical Reminder Rules that will look at the "
S ^ORD(100.8,36,1,2,0)="Orderable Item that is getting placed and determin if a Reminder Rule "
S ^ORD(100.8,36,1,3,0)="should fire. "
S ^ORD(100.8,"B","DRUG DOSAGE",34)=""
S ^ORD(100.8,"B","CLINICAL REMINDER LIVE",36)=""
S ^ORD(100.8,"B","CLINICAL REMINDER TEST",35)=""
D EN^XPAR("PKG","ORK PROCESSING FLAG","DRUG DOSAGE","Enabled",.ERR)
D EN^XPAR("PKG","ORK PROCESSING FLAG","CLINICAL REMINDER TEST","Disabled",.ERR)
D EN^XPAR("PKG","ORK PROCESSING FLAG","CLINICAL REMINDER LIVE","Enabled",.ERR)
D EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","CLINICAL REMINDER LIVE","Moderate",.ERR)
D EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","CLINICAL REMINDER TEST","Low",.ERR)
D EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","DRUG DOSAGE","High",.ERR)
Q
;
UPDNAT ;
N DA,DIE,DR,UPDATED,XUMF
S XUMF=1
S DIE="^ORD(100.02,"
S DA=$O(^ORD(100.02,"B","SERVICE REJECT","")) I DA'>0 Q
;DBIA 4631
S UPDATED=$$SETVUID^XTID(100.02,.01,DA_",",4712356)
I +$P(UPDATED,U)=0 D Q
.D EN^DDIOL("Nature of Order file entry 'Service Reject' not updated")
.D EN^DDIOL($P(UPDATED,U,2))
S DR=".01///REJECTED BY SERVICE"
D ^DIE
D EN^DDIOL("Nature of Order file entry 'Service Reject' renamed to 'Rejected by Service'.")
Q
;
UPDPAR ;
N ZTDESC,ZTDTH,ZTRTN,ZTSAVE,ZTIO,TEXT,ZTSK
S ZTDESC="Session Order Dialog setting update"
S TEXT=ZTDESC_" has been queued, task number "
S ZTRTN="UPDPARQ^ORY280"
S ZTIO=""
S ZTDTH=$$NOW^XLFDT
D ^%ZTLOAD
I $D(ZTSK) S TEXT=TEXT_ZTSK D MES^XPDUTL(.TEXT)
Q
;
UPDPARQ ;
N ENT,INST,ORERR,ORLIST,PAR,VALUE
S PAR="ORWCH BOUNDS",INST="frmOCSession",VALUE="0,0,0,0"
D ENVAL^XPAR(.ORLIST,PAR,INST,.ORERR)
S ENT=""
F S ENT=$O(ORLIST(ENT)) Q:ENT="" D DEL^XPAR(ENT,PAR,INST,.ORERR)
;F S ENT=$O(ORLIST(ENT)) Q:ENT="" D CHG^XPAR(ENT,PAR,INST,VALUE,.ORERR)
Q
;
UPDPAR1 ;Update ORWT TOOLS MENU parameter description
N TMP,DIE,ARRAY,ERR,X
D BMES^XPDUTL("Starting update of ORWT TOOLS MENU parameter definition description...")
S TMP("OR*3*280",8989.51,1)="This parameter may be used to identify which items should appear on the"
S TMP("OR*3*280",8989.51,2)="tools menu which is displayed by the CPRS GUI. Each item should contain"
S TMP("OR*3*280",8989.51,3)="a name that should be displayed on the menu, followed by an equal sign,"
S TMP("OR*3*280",8989.51,4)="followed by the command string used to invoke the executable. This"
S TMP("OR*3*280",8989.51,5)="string may also include parameters that are passed to the executable."
S TMP("OR*3*280",8989.51,6)="Some example entries are:"
S TMP("OR*3*280",8989.51,7)=" "
S TMP("OR*3*280",8989.51,8)=" Hospital Policy=C:\WINNT\SYSTEM32\VIEWERS\QUIKVIEW.EXE LOCPLCY.DOC"
S TMP("OR*3*280",8989.51,9)=" VISTA Terminal=C:\PROGRA~1\KEA\KEAVT.EXE VISTA.KTC"
S TMP("OR*3*280",8989.51,10)=" "
S TMP("OR*3*280",8989.51,11)="An ampersand may be used in the name portion to identify a letter that"
S TMP("OR*3*280",8989.51,12)="should be underlined on the menu for quick keyboard access. For example,"
S TMP("OR*3*280",8989.51,13)="to underscore the letter H in Hospital Policy, enter &Hospital Policy as"
S TMP("OR*3*280",8989.51,14)="the name part."
S TMP("OR*3*280",8989.51,15)=" "
S TMP("OR*3*280",8989.51,16)="To use submenus on the tools menu, you must place special text in the"
S TMP("OR*3*280",8989.51,17)="caption and action values. Submenus must have action text SUBMENU ID,"
S TMP("OR*3*280",8989.51,18)="where ID is a unique identifier for the submenu. Menu items belonging to"
S TMP("OR*3*280",8989.51,19)="the submenu must specify which submenu they belong to by appending [ID]"
S TMP("OR*3*280",8989.51,20)="after the caption. Thus the following entries create a Utilities submenu"
S TMP("OR*3*280",8989.51,21)="with 2 child items:"
S TMP("OR*3*280",8989.51,22)=" "
S TMP("OR*3*280",8989.51,23)=" Utilities=SUBMENU 1"
S TMP("OR*3*280",8989.51,24)=" Calculator[1]=calc.exe"
S TMP("OR*3*280",8989.51,25)=" Notepad[1]=notepad.exe"
S TMP("OR*3*280",8989.51,26)=" "
S TMP("OR*3*280",8989.51,27)="To create a nested submenu, you create a submenu that belongs to another"
S TMP("OR*3*280",8989.51,28)="submenu s ID. For example, to create a nested submenu belonging the"
S TMP("OR*3*280",8989.51,29)="above Utilities submenu, you would do the following:"
S TMP("OR*3*280",8989.51,30)=" "
S TMP("OR*3*280",8989.51,31)=" Utility Web Sites[1]=SUBMENU UtilWeb"
S TMP("OR*3*280",8989.51,32)=" MicroSoft Tools[UtilWeb]=http:\\www.msdn"
S TMP("OR*3*280",8989.51,33)=" "
S TMP("OR*3*280",8989.51,34)="While submenu IDs at the end of a caption are not displayed on the Tools"
S TMP("OR*3*280",8989.51,35)="menu, this is only true if a corresponding menu ID is found. If no Menu"
S TMP("OR*3*280",8989.51,36)="ID is found, the square brackets and included text will appear as part of"
S TMP("OR*3*280",8989.51,37)="the caption on the Tools menu. This allows for existing bracketed text"
S TMP("OR*3*280",8989.51,38)="to remain displayed."
S TMP("OR*3*280",8989.51,39)=" "
S TMP("OR*3*280",8989.51,40)="If two submenus share the same menu ID, the second submenu will be"
S TMP("OR*3*280",8989.51,41)="treated as belonging to the first menu."
S TMP("OR*3*280",8989.51,42)=" "
S TMP("OR*3*280",8989.51,43)="One point worth noting. If you have a caption of a single dash (or a"
S TMP("OR*3*280",8989.51,44)="single dash followed by a submenu id), it will create a separator line in"
S TMP("OR*3*280",8989.51,45)="the menu or submenu. This is not new functionality, but may not have"
S TMP("OR*3*280",8989.51,46)="been previously documented."
S TMP("OR*3*280",8989.51,47)=" "
S TMP("OR*3*280",8989.51,48)="Finally, if more than 30 menu items are assigned to the top level menu"
S TMP("OR*3*280",8989.51,49)="(i.e. they are not part of a submenu), a ""More..."" submenu will"
S TMP("OR*3*280",8989.51,50)="automatically be created at the top of the Tools menu, with additional"
S TMP("OR*3*280",8989.51,51)="menu items spilling into the newly created ""More..."" submenu. If more"
S TMP("OR*3*280",8989.51,52)="than 30 menu items spill into the ""More..."" submenu, another ""More..."""
S TMP("OR*3*280",8989.51,53)="submenu will be created inside the first ""More..."" submenu, with"
S TMP("OR*3*280",8989.51,54)="additional menu items spilling into it, and so on, as needed. Note,"
S TMP("OR*3*280",8989.51,55)="however, that there is a limit of 99 total menu items, since you can only"
S TMP("OR*3*280",8989.51,56)="enter an integer sequence number from 1-99 when defining the ORWT TOOLS"
S TMP("OR*3*280",8989.51,57)="MENU parameter."
S X=$$FIND1^DIC(8989.51,,"BX","ORWT TOOLS MENU",,,)
S ARRAY=$NA(TMP("OR*3*280",8989.51))
S ERR=$NA(TMP("OR*3*280","ERR"))
D WP^DIE(8989.51,X_",",20,"K",ARRAY,ERR)
I $D(TMP("OR*3*280","ERR")) D Q
. N ERRORS,LINES,FILE,IENS,TXT,TEXT,Y
. S FILE=8989.51
. S ERRORS=0 F S ERRORS=$O(TMP("OR*3*280","ERR","DIERR",ERRORS)) Q:+ERRORS=0 D
.. S IENS=$G(TMP("OR*3*280","ERR","DIERR",ERRORS,"PARAM","IENS"))
.. S Y=0
.. F S Y=$O(TMP("OR*3*280","ERR","DIERR",ERRORS,"TEXT",Y)) Q:+Y=0 D
... S TXT(Y)=$G(TMP("OR*3*280","ERR","DIERR",ERRORS,"TEXT",Y))
. D BMES^XPDUTL(" Error occurred during update of ORWT TOOLS MENU parameter definition.")
. D MES^XPDUTL(" Entry"_$S($G(IENS)'="":" "_IENS,1:"")_" in file "_FILE_$S($G(IENS)'="":",",1:"")_" failed to update with the following")
. D MES^XPDUTL(" error message:")
. D MES^XPDUTL(" ")
. S Y=0 F S Y=$O(TXT(Y)) Q:Y="" D
.. S TEXT=$G(TXT(Y))
.. D MES^XPDUTL(" "_TEXT)
. K TMP
D BMES^XPDUTL("Update of ORWT TOOLS MENU parameter definition description has")
D MES^XPDUTL(" successfully completed")
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORY280 9679 printed Dec 13, 2024@02:40:29 Page 2
ORY280 ;ISL/TC,JER - Pre- and Post-install for patch OR*3*280 ;09/22/10 07:12
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**280**;Dec 17, 1997;Build 85
+2 ;
+3 ;
PRE ; Initiate pre-init processes
+1 QUIT
+2 ;
POST ; Initiate post-init processes
+1 DO DLGBULL
+2 DO UPDNAT
+3 DO OC
+4 DO UPDPAR
+5 ;expert system changes
DO ^ORY280ES
+6 ;install parameter values
DO MAIN^ORY280P
+7 ; REMOVE @ ACCESS CODE FROM READ OF FILE 100.05
KILL ^DIC(100.05,0,"RD")
+8 ;D UPDPAR1
+9 QUIT
+10 ;
SENDDLG(ANAME) ; Return true if the current order dialog should be sent
+1 IF ANAME="OR GTX EARLIEST DATE"
QUIT 1
+2 IF ANAME="GMRCOR CONSULT"
QUIT 1
+3 IF ANAME="GMRCOR REQUEST"
QUIT 1
+4 IF ANAME="OR GTX ADDITIVE FREQUENCY"
QUIT 1
+5 IF ANAME="PSJI OR PAT FLUID OE"
QUIT 1
+6 IF ANAME="PSJ OR PAT OE"
QUIT 1
+7 IF ANAME="PSO OERR"
QUIT 1
+8 IF ANAME="PS MEDS"
QUIT 1
+9 QUIT 0
+10 ;
DLGBULL ; send bulletin about modified dialogs <on first install>
+1 NEW I,ORD
+2 FOR I="GMRCOR CONSULT","GMRCOR REQUEST","PSJI OR PAT FLUID OE"
SET ORD(I)=""
+3 DO EN^ORYDLG(280,.ORD)
+4 QUIT
+5 ;
OC ; setup new order checks
+1 SET ^ORD(100.8,34,0)="DRUG DOSAGE"
+2 SET ^ORD(100.8,34,1,0)="^^2^2^3090623^"
+3 SET ^ORD(100.8,34,1,1,0)="This is an order check that Pharmacy performs to check the dosage of a "
+4 SET ^ORD(100.8,34,1,2,0)="drug order for various problems."
+5 SET ^ORD(100.8,35,0)="CLINICAL REMINDER TEST"
+6 SET ^ORD(100.8,35,1,0)="^^4^4^3090706^"
+7 SET ^ORD(100.8,35,1,1,0)="This order check refers to Clinical Reminder Rules that will look at the "
+8 SET ^ORD(100.8,35,1,2,0)="Orderable Item that is getting placed and determin if a Reminder Rule "
+9 SET ^ORD(100.8,35,1,3,0)="should fire. The CLINICAL REMINDER TEST order check is for testing "
+10 SET ^ORD(100.8,35,1,4,0)="Reminder Order checks before deploying them to production."
+11 SET ^ORD(100.8,36,0)="CLINICAL REMINDER LIVE"
+12 SET ^ORD(100.8,36,1,0)="^^3^3^3090706^"
+13 SET ^ORD(100.8,36,1,1,0)="This order check refers to Clinical Reminder Rules that will look at the "
+14 SET ^ORD(100.8,36,1,2,0)="Orderable Item that is getting placed and determin if a Reminder Rule "
+15 SET ^ORD(100.8,36,1,3,0)="should fire. "
+16 SET ^ORD(100.8,"B","DRUG DOSAGE",34)=""
+17 SET ^ORD(100.8,"B","CLINICAL REMINDER LIVE",36)=""
+18 SET ^ORD(100.8,"B","CLINICAL REMINDER TEST",35)=""
+19 DO EN^XPAR("PKG","ORK PROCESSING FLAG","DRUG DOSAGE","Enabled",.ERR)
+20 DO EN^XPAR("PKG","ORK PROCESSING FLAG","CLINICAL REMINDER TEST","Disabled",.ERR)
+21 DO EN^XPAR("PKG","ORK PROCESSING FLAG","CLINICAL REMINDER LIVE","Enabled",.ERR)
+22 DO EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","CLINICAL REMINDER LIVE","Moderate",.ERR)
+23 DO EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","CLINICAL REMINDER TEST","Low",.ERR)
+24 DO EN^XPAR("PKG","ORK CLINICAL DANGER LEVEL","DRUG DOSAGE","High",.ERR)
+25 QUIT
+26 ;
UPDNAT ;
+1 NEW DA,DIE,DR,UPDATED,XUMF
+2 SET XUMF=1
+3 SET DIE="^ORD(100.02,"
+4 SET DA=$ORDER(^ORD(100.02,"B","SERVICE REJECT",""))
IF DA'>0
QUIT
+5 ;DBIA 4631
+6 SET UPDATED=$$SETVUID^XTID(100.02,.01,DA_",",4712356)
+7 IF +$PIECE(UPDATED,U)=0
Begin DoDot:1
+8 DO EN^DDIOL("Nature of Order file entry 'Service Reject' not updated")
+9 DO EN^DDIOL($PIECE(UPDATED,U,2))
End DoDot:1
QUIT
+10 SET DR=".01///REJECTED BY SERVICE"
+11 DO ^DIE
+12 DO EN^DDIOL("Nature of Order file entry 'Service Reject' renamed to 'Rejected by Service'.")
+13 QUIT
+14 ;
UPDPAR ;
+1 NEW ZTDESC,ZTDTH,ZTRTN,ZTSAVE,ZTIO,TEXT,ZTSK
+2 SET ZTDESC="Session Order Dialog setting update"
+3 SET TEXT=ZTDESC_" has been queued, task number "
+4 SET ZTRTN="UPDPARQ^ORY280"
+5 SET ZTIO=""
+6 SET ZTDTH=$$NOW^XLFDT
+7 DO ^%ZTLOAD
+8 IF $DATA(ZTSK)
SET TEXT=TEXT_ZTSK
DO MES^XPDUTL(.TEXT)
+9 QUIT
+10 ;
UPDPARQ ;
+1 NEW ENT,INST,ORERR,ORLIST,PAR,VALUE
+2 SET PAR="ORWCH BOUNDS"
SET INST="frmOCSession"
SET VALUE="0,0,0,0"
+3 DO ENVAL^XPAR(.ORLIST,PAR,INST,.ORERR)
+4 SET ENT=""
+5 FOR
SET ENT=$ORDER(ORLIST(ENT))
if ENT=""
QUIT
DO DEL^XPAR(ENT,PAR,INST,.ORERR)
+6 ;F S ENT=$O(ORLIST(ENT)) Q:ENT="" D CHG^XPAR(ENT,PAR,INST,VALUE,.ORERR)
+7 QUIT
+8 ;
UPDPAR1 ;Update ORWT TOOLS MENU parameter description
+1 NEW TMP,DIE,ARRAY,ERR,X
+2 DO BMES^XPDUTL("Starting update of ORWT TOOLS MENU parameter definition description...")
+3 SET TMP("OR*3*280",8989.51,1)="This parameter may be used to identify which items should appear on the"
+4 SET TMP("OR*3*280",8989.51,2)="tools menu which is displayed by the CPRS GUI. Each item should contain"
+5 SET TMP("OR*3*280",8989.51,3)="a name that should be displayed on the menu, followed by an equal sign,"
+6 SET TMP("OR*3*280",8989.51,4)="followed by the command string used to invoke the executable. This"
+7 SET TMP("OR*3*280",8989.51,5)="string may also include parameters that are passed to the executable."
+8 SET TMP("OR*3*280",8989.51,6)="Some example entries are:"
+9 SET TMP("OR*3*280",8989.51,7)=" "
+10 SET TMP("OR*3*280",8989.51,8)=" Hospital Policy=C:\WINNT\SYSTEM32\VIEWERS\QUIKVIEW.EXE LOCPLCY.DOC"
+11 SET TMP("OR*3*280",8989.51,9)=" VISTA Terminal=C:\PROGRA~1\KEA\KEAVT.EXE VISTA.KTC"
+12 SET TMP("OR*3*280",8989.51,10)=" "
+13 SET TMP("OR*3*280",8989.51,11)="An ampersand may be used in the name portion to identify a letter that"
+14 SET TMP("OR*3*280",8989.51,12)="should be underlined on the menu for quick keyboard access. For example,"
+15 SET TMP("OR*3*280",8989.51,13)="to underscore the letter H in Hospital Policy, enter &Hospital Policy as"
+16 SET TMP("OR*3*280",8989.51,14)="the name part."
+17 SET TMP("OR*3*280",8989.51,15)=" "
+18 SET TMP("OR*3*280",8989.51,16)="To use submenus on the tools menu, you must place special text in the"
+19 SET TMP("OR*3*280",8989.51,17)="caption and action values. Submenus must have action text SUBMENU ID,"
+20 SET TMP("OR*3*280",8989.51,18)="where ID is a unique identifier for the submenu. Menu items belonging to"
+21 SET TMP("OR*3*280",8989.51,19)="the submenu must specify which submenu they belong to by appending [ID]"
+22 SET TMP("OR*3*280",8989.51,20)="after the caption. Thus the following entries create a Utilities submenu"
+23 SET TMP("OR*3*280",8989.51,21)="with 2 child items:"
+24 SET TMP("OR*3*280",8989.51,22)=" "
+25 SET TMP("OR*3*280",8989.51,23)=" Utilities=SUBMENU 1"
+26 SET TMP("OR*3*280",8989.51,24)=" Calculator[1]=calc.exe"
+27 SET TMP("OR*3*280",8989.51,25)=" Notepad[1]=notepad.exe"
+28 SET TMP("OR*3*280",8989.51,26)=" "
+29 SET TMP("OR*3*280",8989.51,27)="To create a nested submenu, you create a submenu that belongs to another"
+30 SET TMP("OR*3*280",8989.51,28)="submenu s ID. For example, to create a nested submenu belonging the"
+31 SET TMP("OR*3*280",8989.51,29)="above Utilities submenu, you would do the following:"
+32 SET TMP("OR*3*280",8989.51,30)=" "
+33 SET TMP("OR*3*280",8989.51,31)=" Utility Web Sites[1]=SUBMENU UtilWeb"
+34 SET TMP("OR*3*280",8989.51,32)=" MicroSoft Tools[UtilWeb]=http:\\www.msdn"
+35 SET TMP("OR*3*280",8989.51,33)=" "
+36 SET TMP("OR*3*280",8989.51,34)="While submenu IDs at the end of a caption are not displayed on the Tools"
+37 SET TMP("OR*3*280",8989.51,35)="menu, this is only true if a corresponding menu ID is found. If no Menu"
+38 SET TMP("OR*3*280",8989.51,36)="ID is found, the square brackets and included text will appear as part of"
+39 SET TMP("OR*3*280",8989.51,37)="the caption on the Tools menu. This allows for existing bracketed text"
+40 SET TMP("OR*3*280",8989.51,38)="to remain displayed."
+41 SET TMP("OR*3*280",8989.51,39)=" "
+42 SET TMP("OR*3*280",8989.51,40)="If two submenus share the same menu ID, the second submenu will be"
+43 SET TMP("OR*3*280",8989.51,41)="treated as belonging to the first menu."
+44 SET TMP("OR*3*280",8989.51,42)=" "
+45 SET TMP("OR*3*280",8989.51,43)="One point worth noting. If you have a caption of a single dash (or a"
+46 SET TMP("OR*3*280",8989.51,44)="single dash followed by a submenu id), it will create a separator line in"
+47 SET TMP("OR*3*280",8989.51,45)="the menu or submenu. This is not new functionality, but may not have"
+48 SET TMP("OR*3*280",8989.51,46)="been previously documented."
+49 SET TMP("OR*3*280",8989.51,47)=" "
+50 SET TMP("OR*3*280",8989.51,48)="Finally, if more than 30 menu items are assigned to the top level menu"
+51 SET TMP("OR*3*280",8989.51,49)="(i.e. they are not part of a submenu), a ""More..."" submenu will"
+52 SET TMP("OR*3*280",8989.51,50)="automatically be created at the top of the Tools menu, with additional"
+53 SET TMP("OR*3*280",8989.51,51)="menu items spilling into the newly created ""More..."" submenu. If more"
+54 SET TMP("OR*3*280",8989.51,52)="than 30 menu items spill into the ""More..."" submenu, another ""More..."""
+55 SET TMP("OR*3*280",8989.51,53)="submenu will be created inside the first ""More..."" submenu, with"
+56 SET TMP("OR*3*280",8989.51,54)="additional menu items spilling into it, and so on, as needed. Note,"
+57 SET TMP("OR*3*280",8989.51,55)="however, that there is a limit of 99 total menu items, since you can only"
+58 SET TMP("OR*3*280",8989.51,56)="enter an integer sequence number from 1-99 when defining the ORWT TOOLS"
+59 SET TMP("OR*3*280",8989.51,57)="MENU parameter."
+60 SET X=$$FIND1^DIC(8989.51,,"BX","ORWT TOOLS MENU",,,)
+61 SET ARRAY=$NAME(TMP("OR*3*280",8989.51))
+62 SET ERR=$NAME(TMP("OR*3*280","ERR"))
+63 DO WP^DIE(8989.51,X_",",20,"K",ARRAY,ERR)
+64 IF $DATA(TMP("OR*3*280","ERR"))
Begin DoDot:1
+65 NEW ERRORS,LINES,FILE,IENS,TXT,TEXT,Y
+66 SET FILE=8989.51
+67 SET ERRORS=0
FOR
SET ERRORS=$ORDER(TMP("OR*3*280","ERR","DIERR",ERRORS))
if +ERRORS=0
QUIT
Begin DoDot:2
+68 SET IENS=$GET(TMP("OR*3*280","ERR","DIERR",ERRORS,"PARAM","IENS"))
+69 SET Y=0
+70 FOR
SET Y=$ORDER(TMP("OR*3*280","ERR","DIERR",ERRORS,"TEXT",Y))
if +Y=0
QUIT
Begin DoDot:3
+71 SET TXT(Y)=$GET(TMP("OR*3*280","ERR","DIERR",ERRORS,"TEXT",Y))
End DoDot:3
End DoDot:2
+72 DO BMES^XPDUTL(" Error occurred during update of ORWT TOOLS MENU parameter definition.")
+73 DO MES^XPDUTL(" Entry"_$SELECT($GET(IENS)'="":" "_IENS,1:"")_" in file "_FILE_$SELECT($GET(IENS)'="":",",1:"")_" failed to update with the following")
+74 DO MES^XPDUTL(" error message:")
+75 DO MES^XPDUTL(" ")
+76 SET Y=0
FOR
SET Y=$ORDER(TXT(Y))
if Y=""
QUIT
Begin DoDot:2
+77 SET TEXT=$GET(TXT(Y))
+78 DO MES^XPDUTL(" "_TEXT)
End DoDot:2
+79 KILL TMP
End DoDot:1
QUIT
+80 DO BMES^XPDUTL("Update of ORWT TOOLS MENU parameter definition description has")
+81 DO MES^XPDUTL(" successfully completed")
+82 QUIT
+83 ;