RORSET02 ;BPIOFO/CLR - NEW REGISTRY SETUP FROM POST-INSTALL ;6/06/2012
;;1.5;CLINICAL CASE REGISTRIES;**18,21,26,33**;Feb 17, 2006;Build 81
; This routine uses the following IAs:
;
; #10063 ^%ZTLOAD
; #10026 ^DIR
; #10103 ^XLFDT
; #10141 ^XPDUTL
;
;*****************************************************************************
;*****************************************************************************
; --- ROUTINE MODIFICATION LOG ---
;
;PKG/PATCH DATE DEVELOPER MODIFICATION
;----------- --------- ----------- ----------------------------------------
;ROR*1.5*21 NOV 2013 T KOPP Added env check, pre/post install logic
; Added new of ZTQUEUED variable
; Added initialization of registry params
; for new registries
; Corrected max # of strings variable used
; from MAXNTSK to RORMNTSK
;ROR*1.5*26 APR 2015 T KOPP Corrected 'suspend' parameters to strip
; date, leaving only time portions
;ROR*1.5*33 MAY 2018 F TRAXLER ROR TASK scheduling changes
;******************************************************************************
;******************************************************************************
;
N RORPARM,RORBUF,RORI,RORDIFF,ROROUT,RORMSG,RORSUSP,MAXNTSK
N RC,REGNAME,RORMNTSK,RORSUSP,TMP,REGLST,RORINFO
N ZTCPU,ZTDESC,ZTIO,ZTKIL,ZTPRI,ZTRTN,ZTSAVE,ZTSK,ZTSYNC,ZTUCI,ZTREQ,ZTDTH
N DIR,DIRUT,Y,DIERR,FLD,NODE,RORERRDL,RORQ,ZTQUEUED
;
S RORPARM("ERR")=1 ; Enable error processing
S RORPARM("LOG")=1 ; Enable event recording
D INIT^RORUTL01("RORSET02")
D CLEAR^RORERR("TASK^RORSET02")
;--- display all ACTIVE auto confirm registries that have not been initialized
D BMES^XPDUTL(" *** Checking for registry(s) to be initialized")
S RC=$$REGSEL^RORUTL01("UA")
I RC<0 D BMES^XPDUTL($$MSG^RORERR20(RC,,," file #798.1")),BMES^XPDUTL("") Q
I '$D(REGLST) D Q
. D BMES^XPDUTL(""),BMES^XPDUTL(" No active registries were found needing to be initialized.")
. D BMES^XPDUTL(""),BMES^XPDUTL("")
D BMES^XPDUTL(""),BMES^XPDUTL("")
D BMES^XPDUTL(" The following registry(s) will be populated with new patients: ")
S REGNAME="" F S REGNAME=$O(REGLST(REGNAME)) Q:REGNAME="" D
. D MES^XPDUTL($J("",10)_REGNAME)
D BMES^XPDUTL("")
D BMES^XPDUTL(" *** Storing registry setup parameters")
S RORMNTSK=$G(XPDQUES("POSQ1")),RORSUSP=$G(XPDQUES("POSQ2"))
I RORSUSP S RORSUSP=($G(XPDQUES("POSQ3"))#1)_U_($G(XPDQUES("POSQ4"))#1)
S RORQ=$G(XPDQUES("POSQ5"))
I RORQ<$$NOW^XLFDT() S RORQ=$$NOW^XLFDT()
D CONFTXT^RORSETU1(RORMNTSK,RORSUSP)
;log parameters in log
D TP^ROR10(.RORINFO,"RORFLSET")
D TP^ROR10(.RORINFO,"RORFLCLR")
D TP^ROR10(.RORINFO,"RORMNTSK")
D TP^ROR10(.RORINFO,"RORSUSP")
D LOG^RORLOG(,"Task Parameters",,.RORINFO)
;--- Schedule the setup task
I RORQ<$$NOW^XLFDT() S RORQ=$$NOW^XLFDT()
S ZTRTN="TASK^RORSET02",ZTIO="",ZTDTH=$$FMTH^XLFDT(RORQ),ZTQUEUED=1
S ZTDESC="Local Registries Initialization"
F TMP="RORMNTSK","RORSUSP" S ZTSAVE(TMP)=""
S ZTSAVE("REGLST(")=""
D ^%ZTLOAD
I $G(ZTSK) D Q
. D BMES^XPDUTL("The scheduled task number is "_ZTSK)
D BMES^XPDUTL("")
D BMES^XPDUTL(" ROR INITIALIZE task was not scheduled and is required")
D BMES^XPDUTL(" to complete the patch"),BMES^XPDUTL(" Try restarting the install")
D BMES^XPDUTL(" If this error continues, please enter a Remedy ticket")
D BMES^XPDUTL(" *** Patch install aborted")
Q
;
ERROR ;--- Display stack errors
D DSPSTK^RORERR()
Q
;
;***** ENTRY POINT OF THE REGISTRY SETUP TASK
;
; RORMNTSK Maximum number of the registry update subtasks
; RORREG RegistryIEN^RegistryName
; RORSUSP Task suspension time frame (StartTime^EndTime)
;
TASK ;
N RORERROR ; Error processing data
N RORLOG ; Log subsystem constants & variables
N RORPARM ; Application parameters
;
N RC,REGNAME,TMP,REGIEN
N RORSCHEDDT,RORSCHEDINFO,RORSCHEDULE,RORTASKCHK,RORUNSCHEDULE
S RORPARM("DEVELOPER")=1 ; Enable modifications
S RORPARM("ERR")=1 ; Enable error processing
S RORPARM("LOG")=1 ; Enable event recording
S RORPARM("SETUP")=1 ; Registry setup indicator
;
;--- Check if ROR TASK option is running
S RORTASKCHK=$$TASKCHK^RORUTL18("ROR TASK")
I RORTASKCHK'=0 D Q ;stop if ROR TASK is running
. S RC=$$ERROR^RORERR(-76,,,,"ROR TASK")
;--- Get ROR TASK schedule information
S RORSCHEDINFO=$$GETSCHED^RORUTL18("ROR TASK")
;--- Unschedule ROR TASK option if it is scheduled
I RORSCHEDINFO'="" S RORUNSCHEDULE=$$SETSCHED^RORUTL18("ROR TASK","@")
;--- Check list of registries
I $D(REGLST)<10 D Q
. S RC=$$ERROR^RORERR(-28,,,," initialize")
;--- Populate the registry
S RC=$$UPDATE^RORUPD(.REGLST,$G(RORMNTSK),$G(RORSUSP)) Q:RC<0
;--- Setup the registry
S REGNAME="" F S REGNAME=$O(REGLST(REGNAME)) Q:REGNAME="" D
. S REGIEN=$$REGIEN^RORUTL02(REGNAME)
. I REGIEN<0 S RC=$$ERROR^RORERR(-112,,,,REGNAME) Q
. S RC=$$PREPARE^RORSETU2(REGIEN)
. I RC<0 S RC=$$ERROR^RORERR(-112,,,,REGNAME) Q
. ;--- Send the notification e-mail
. S:RC'<0 TMP=$$SENDINFO^RORUTL17(+REGIEN,,"E")
. ;--- Cleanup
. I RC'<0 D S ZTREQ="@"
. . K ^XTMP("RORUPDR"_+REGIEN)
;--- reschedule ROR TASK option
N XMY,XMSUB,XMTEXT
S RORSCHEDINFO=$G(RORSCHEDINFO)
I RORSCHEDINFO="" D Q ;ROR TASK is not currently in FILE 19.2
. S XMY(DUZ)="" ;message recipient
. S XMSUB="ROR TASK option must be scheduled"
. S XMTEXT(1)="Please use the Schedule/Unschedule Options [XUTM SCHEDULE]"
. S XMTEXT(2)="option to schedule the ROR TASK option to run as a regular"
. S XMTEXT(3)="background job."
. S XMTEXT(4)=" "
. S XMTEXT(5)="Set the time of day to whatever you think best."
. S XMTEXT(6)="Set the Rescheduling Frequency = 1D"
. S XMTEXT(7)="Set the Task Parameters = VA HEPC, VA HIV"
. S XMTEXT="XMTEXT("
. D ^XMD
S RORSCHEDDT=$$FMADD^XLFDT($$NOW^XLFDT(),,1) ;use 1 hour from now
S RORSCHEDULE=$$SETSCHED^RORUTL18("ROR TASK",RORSCHEDDT,,"1D",,,1)
;Send MailMan message about ROR TASK option rescheduling success
I RORSCHEDULE=1 D
. S RORSCHEDINFO=$$GETSCHED^RORUTL18("ROR TASK")
. S XMY(DUZ)="" ;message recipient
. S XMSUB="ROR TASK option was rescheduled"
. S XMTEXT(1)="The ROR TASK option was successfully rescheduled."
. S XMTEXT(2)=" "
. S XMTEXT(3)="You may wish to check/alter the scheduling conditions, but"
. S XMTEXT(4)="please keep this option scheduled at all times unless a ROR"
. S XMTEXT(5)="patch is being installed."
. S XMTEXT(6)=" "
. S XMTEXT(7)="Use Schedule/Unschedule Options [XUTM SCHEDULE] to check."
. S XMTEXT="XMTEXT("
I RORSCHEDULE'=1 D
. S XMY(DUZ)="" ;message recipient
. S XMSUB="ROR TASK option was not rescheduled"
. S XMTEXT(1)="The ROR TASK option could not be rescheduled."
. S XMTEXT(2)="Please reschedule it as soon as possible."
. S XMTEXT(3)="ROR TASK should be scheduled to run daily unless a ROR"
. S XMTEXT(4)="patch is being installed."
. S XMTEXT(5)=" "
. S XMTEXT(6)="Use the Schedule/Unschedule Options [XUTM SCHEDULE] option"
. S XMTEXT(7)="to schedule ROR TASK."
. S XMTEXT="XMTEXT("
D ^XMD
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRORSET02 7478 printed Oct 16, 2024@17:44:15 Page 2
RORSET02 ;BPIOFO/CLR - NEW REGISTRY SETUP FROM POST-INSTALL ;6/06/2012
+1 ;;1.5;CLINICAL CASE REGISTRIES;**18,21,26,33**;Feb 17, 2006;Build 81
+2 ; This routine uses the following IAs:
+3 ;
+4 ; #10063 ^%ZTLOAD
+5 ; #10026 ^DIR
+6 ; #10103 ^XLFDT
+7 ; #10141 ^XPDUTL
+8 ;
+9 ;*****************************************************************************
+10 ;*****************************************************************************
+11 ; --- ROUTINE MODIFICATION LOG ---
+12 ;
+13 ;PKG/PATCH DATE DEVELOPER MODIFICATION
+14 ;----------- --------- ----------- ----------------------------------------
+15 ;ROR*1.5*21 NOV 2013 T KOPP Added env check, pre/post install logic
+16 ; Added new of ZTQUEUED variable
+17 ; Added initialization of registry params
+18 ; for new registries
+19 ; Corrected max # of strings variable used
+20 ; from MAXNTSK to RORMNTSK
+21 ;ROR*1.5*26 APR 2015 T KOPP Corrected 'suspend' parameters to strip
+22 ; date, leaving only time portions
+23 ;ROR*1.5*33 MAY 2018 F TRAXLER ROR TASK scheduling changes
+24 ;******************************************************************************
+25 ;******************************************************************************
+26 ;
+27 NEW RORPARM,RORBUF,RORI,RORDIFF,ROROUT,RORMSG,RORSUSP,MAXNTSK
+28 NEW RC,REGNAME,RORMNTSK,RORSUSP,TMP,REGLST,RORINFO
+29 NEW ZTCPU,ZTDESC,ZTIO,ZTKIL,ZTPRI,ZTRTN,ZTSAVE,ZTSK,ZTSYNC,ZTUCI,ZTREQ,ZTDTH
+30 NEW DIR,DIRUT,Y,DIERR,FLD,NODE,RORERRDL,RORQ,ZTQUEUED
+31 ;
+32 ; Enable error processing
SET RORPARM("ERR")=1
+33 ; Enable event recording
SET RORPARM("LOG")=1
+34 DO INIT^RORUTL01("RORSET02")
+35 DO CLEAR^RORERR("TASK^RORSET02")
+36 ;--- display all ACTIVE auto confirm registries that have not been initialized
+37 DO BMES^XPDUTL(" *** Checking for registry(s) to be initialized")
+38 SET RC=$$REGSEL^RORUTL01("UA")
+39 IF RC<0
DO BMES^XPDUTL($$MSG^RORERR20(RC,,," file #798.1"))
DO BMES^XPDUTL("")
QUIT
+40 IF '$DATA(REGLST)
Begin DoDot:1
+41 DO BMES^XPDUTL("")
DO BMES^XPDUTL(" No active registries were found needing to be initialized.")
+42 DO BMES^XPDUTL("")
DO BMES^XPDUTL("")
End DoDot:1
QUIT
+43 DO BMES^XPDUTL("")
DO BMES^XPDUTL("")
+44 DO BMES^XPDUTL(" The following registry(s) will be populated with new patients: ")
+45 SET REGNAME=""
FOR
SET REGNAME=$ORDER(REGLST(REGNAME))
if REGNAME=""
QUIT
Begin DoDot:1
+46 DO MES^XPDUTL($JUSTIFY("",10)_REGNAME)
End DoDot:1
+47 DO BMES^XPDUTL("")
+48 DO BMES^XPDUTL(" *** Storing registry setup parameters")
+49 SET RORMNTSK=$GET(XPDQUES("POSQ1"))
SET RORSUSP=$GET(XPDQUES("POSQ2"))
+50 IF RORSUSP
SET RORSUSP=($GET(XPDQUES("POSQ3"))#1)_U_($GET(XPDQUES("POSQ4"))#1)
+51 SET RORQ=$GET(XPDQUES("POSQ5"))
+52 IF RORQ<$$NOW^XLFDT()
SET RORQ=$$NOW^XLFDT()
+53 DO CONFTXT^RORSETU1(RORMNTSK,RORSUSP)
+54 ;log parameters in log
+55 DO TP^ROR10(.RORINFO,"RORFLSET")
+56 DO TP^ROR10(.RORINFO,"RORFLCLR")
+57 DO TP^ROR10(.RORINFO,"RORMNTSK")
+58 DO TP^ROR10(.RORINFO,"RORSUSP")
+59 DO LOG^RORLOG(,"Task Parameters",,.RORINFO)
+60 ;--- Schedule the setup task
+61 IF RORQ<$$NOW^XLFDT()
SET RORQ=$$NOW^XLFDT()
+62 SET ZTRTN="TASK^RORSET02"
SET ZTIO=""
SET ZTDTH=$$FMTH^XLFDT(RORQ)
SET ZTQUEUED=1
+63 SET ZTDESC="Local Registries Initialization"
+64 FOR TMP="RORMNTSK","RORSUSP"
SET ZTSAVE(TMP)=""
+65 SET ZTSAVE("REGLST(")=""
+66 DO ^%ZTLOAD
+67 IF $GET(ZTSK)
Begin DoDot:1
+68 DO BMES^XPDUTL("The scheduled task number is "_ZTSK)
End DoDot:1
QUIT
+69 DO BMES^XPDUTL("")
+70 DO BMES^XPDUTL(" ROR INITIALIZE task was not scheduled and is required")
+71 DO BMES^XPDUTL(" to complete the patch")
DO BMES^XPDUTL(" Try restarting the install")
+72 DO BMES^XPDUTL(" If this error continues, please enter a Remedy ticket")
+73 DO BMES^XPDUTL(" *** Patch install aborted")
+74 QUIT
+75 ;
ERROR ;--- Display stack errors
+1 DO DSPSTK^RORERR()
+2 QUIT
+3 ;
+4 ;***** ENTRY POINT OF THE REGISTRY SETUP TASK
+5 ;
+6 ; RORMNTSK Maximum number of the registry update subtasks
+7 ; RORREG RegistryIEN^RegistryName
+8 ; RORSUSP Task suspension time frame (StartTime^EndTime)
+9 ;
TASK ;
+1 ; Error processing data
NEW RORERROR
+2 ; Log subsystem constants & variables
NEW RORLOG
+3 ; Application parameters
NEW RORPARM
+4 ;
+5 NEW RC,REGNAME,TMP,REGIEN
+6 NEW RORSCHEDDT,RORSCHEDINFO,RORSCHEDULE,RORTASKCHK,RORUNSCHEDULE
+7 ; Enable modifications
SET RORPARM("DEVELOPER")=1
+8 ; Enable error processing
SET RORPARM("ERR")=1
+9 ; Enable event recording
SET RORPARM("LOG")=1
+10 ; Registry setup indicator
SET RORPARM("SETUP")=1
+11 ;
+12 ;--- Check if ROR TASK option is running
+13 SET RORTASKCHK=$$TASKCHK^RORUTL18("ROR TASK")
+14 ;stop if ROR TASK is running
IF RORTASKCHK'=0
Begin DoDot:1
+15 SET RC=$$ERROR^RORERR(-76,,,,"ROR TASK")
End DoDot:1
QUIT
+16 ;--- Get ROR TASK schedule information
+17 SET RORSCHEDINFO=$$GETSCHED^RORUTL18("ROR TASK")
+18 ;--- Unschedule ROR TASK option if it is scheduled
+19 IF RORSCHEDINFO'=""
SET RORUNSCHEDULE=$$SETSCHED^RORUTL18("ROR TASK","@")
+20 ;--- Check list of registries
+21 IF $DATA(REGLST)<10
Begin DoDot:1
+22 SET RC=$$ERROR^RORERR(-28,,,," initialize")
End DoDot:1
QUIT
+23 ;--- Populate the registry
+24 SET RC=$$UPDATE^RORUPD(.REGLST,$GET(RORMNTSK),$GET(RORSUSP))
if RC<0
QUIT
+25 ;--- Setup the registry
+26 SET REGNAME=""
FOR
SET REGNAME=$ORDER(REGLST(REGNAME))
if REGNAME=""
QUIT
Begin DoDot:1
+27 SET REGIEN=$$REGIEN^RORUTL02(REGNAME)
+28 IF REGIEN<0
SET RC=$$ERROR^RORERR(-112,,,,REGNAME)
QUIT
+29 SET RC=$$PREPARE^RORSETU2(REGIEN)
+30 IF RC<0
SET RC=$$ERROR^RORERR(-112,,,,REGNAME)
QUIT
+31 ;--- Send the notification e-mail
+32 if RC'<0
SET TMP=$$SENDINFO^RORUTL17(+REGIEN,,"E")
+33 ;--- Cleanup
+34 IF RC'<0
Begin DoDot:2
+35 KILL ^XTMP("RORUPDR"_+REGIEN)
End DoDot:2
SET ZTREQ="@"
End DoDot:1
+36 ;--- reschedule ROR TASK option
+37 NEW XMY,XMSUB,XMTEXT
+38 SET RORSCHEDINFO=$GET(RORSCHEDINFO)
+39 ;ROR TASK is not currently in FILE 19.2
IF RORSCHEDINFO=""
Begin DoDot:1
+40 ;message recipient
SET XMY(DUZ)=""
+41 SET XMSUB="ROR TASK option must be scheduled"
+42 SET XMTEXT(1)="Please use the Schedule/Unschedule Options [XUTM SCHEDULE]"
+43 SET XMTEXT(2)="option to schedule the ROR TASK option to run as a regular"
+44 SET XMTEXT(3)="background job."
+45 SET XMTEXT(4)=" "
+46 SET XMTEXT(5)="Set the time of day to whatever you think best."
+47 SET XMTEXT(6)="Set the Rescheduling Frequency = 1D"
+48 SET XMTEXT(7)="Set the Task Parameters = VA HEPC, VA HIV"
+49 SET XMTEXT="XMTEXT("
+50 DO ^XMD
End DoDot:1
QUIT
+51 ;use 1 hour from now
SET RORSCHEDDT=$$FMADD^XLFDT($$NOW^XLFDT(),,1)
+52 SET RORSCHEDULE=$$SETSCHED^RORUTL18("ROR TASK",RORSCHEDDT,,"1D",,,1)
+53 ;Send MailMan message about ROR TASK option rescheduling success
+54 IF RORSCHEDULE=1
Begin DoDot:1
+55 SET RORSCHEDINFO=$$GETSCHED^RORUTL18("ROR TASK")
+56 ;message recipient
SET XMY(DUZ)=""
+57 SET XMSUB="ROR TASK option was rescheduled"
+58 SET XMTEXT(1)="The ROR TASK option was successfully rescheduled."
+59 SET XMTEXT(2)=" "
+60 SET XMTEXT(3)="You may wish to check/alter the scheduling conditions, but"
+61 SET XMTEXT(4)="please keep this option scheduled at all times unless a ROR"
+62 SET XMTEXT(5)="patch is being installed."
+63 SET XMTEXT(6)=" "
+64 SET XMTEXT(7)="Use Schedule/Unschedule Options [XUTM SCHEDULE] to check."
+65 SET XMTEXT="XMTEXT("
End DoDot:1
+66 IF RORSCHEDULE'=1
Begin DoDot:1
+67 ;message recipient
SET XMY(DUZ)=""
+68 SET XMSUB="ROR TASK option was not rescheduled"
+69 SET XMTEXT(1)="The ROR TASK option could not be rescheduled."
+70 SET XMTEXT(2)="Please reschedule it as soon as possible."
+71 SET XMTEXT(3)="ROR TASK should be scheduled to run daily unless a ROR"
+72 SET XMTEXT(4)="patch is being installed."
+73 SET XMTEXT(5)=" "
+74 SET XMTEXT(6)="Use the Schedule/Unschedule Options [XUTM SCHEDULE] option"
+75 SET XMTEXT(7)="to schedule ROR TASK."
+76 SET XMTEXT="XMTEXT("
End DoDot:1
+77 DO ^XMD
+78 QUIT