SDRRC16 ;10N20/MAH - POST-INSTALL FOR PATCH SD*5.3*536 CONVERT PARAMS FILE; 3/01/2008 12:24pm
 ;;5.3;Scheduling;**536**;Aug 13, 1993;Build 53
 ;;SDRR-RECALL REMINDER
 Q
ENV ;Environment check
 K ^XTMP("SDRRC16")
 S XPDABORT=""
 ;checks programmer variables
 D PROGCHK(.XPDABORT)
 ;check if install is running
 D ISRUNING(.XPDABORT)
 I XPDABORT="" K XPDABORT
POST ;Check for Clinic Recall PARAMS file)
 I '$D(^DIZ(190004.1)) D  Q
 . D NOFILE
 D TASK
 Q
START ;Background job entry point
 N SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE,SDRRREC,SDRRFDA,TOTAL
 N SDTOT,SDENCPTR,SDCKCNT,SDRRSTOP,SDENT,SDFIL,PARAM
 S TOTAL=0
 D XTMP
 ;seed var's if Re-Run
 I $D(^XTMP("SDRRC16","TOT")) D
 . S SDTOT=+$G(^XTMP("SDRRC16","TOT"))
 . S (SDSAVE,SDAIEN)=+$G(^XTMP("SDRRC16","PARAM"))
 E  D
 . S SDAIEN=0 F  S SDAIEN=$O(^DIZ(190004.1,SDAIEN)) Q:SDAIEN<1  S SDRRREC=$G(^DIZ(190004.1,SDAIEN,0)) D
 . .S SDRRFDA(403.53,"+1,",.01)=$P(SDRRREC,U,1)
 . .S SDRRFDA(403.53,"+1,",1)=$P(SDRRREC,U,2)
 . .I $P($G(SDRRREC),U,4)'="" S SDRRFDA(403.53,"+1,",3)=$P($G(SDRRREC),U,4)
 . .I $P($G(SDRRREC),U,5)'="" S SDRRFDA(403.53,"+1,",4)=$P($G(SDRRREC),U,5)
 . .N NEWREC S NEWREC(1)=SDAIEN
 . .D UPDATE^DIE("","SDRRFDA","NEWREC","")
 . .S TOTAL=TOTAL+1
 S ^XTMP("SDRRC16","COMPLETED")=$$NOW^XLFDT()
 S ^XTMP("SDRRC16","TOT")=TOTAL
 K ^XTMP("SDRRC16","RUNNING")
 D SENDMSG
 Q
SENDMSG ;send MailMan msg to patch installer
 N DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
 K ^TMP("SDRRC16",$J)
 S XMSUB="SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 S XMTEXT="^TMP(""SDRRC16"",$J,",XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))=""
 S SDLN=0
 D ADD(.SDLN,"Patch:  SD*5.3*536 RECALL REMINDER TEAM FILE CONVERSION PROCESSING")
 D ADD(.SDLN," "),ADD(.SDLN,"************")
 D ADD(.SDLN,"The existing Class III file called OUTPATIENT CLINIC RECALL PARAM (190004.1), ")
 D ADD(.SDLN,"which contains Clinic Recall params have been converted to")
 D ADD(.SDLN,"a new Class I file called Recall Reminder Parameters (403.53)")
 D ADD(.SDLN,"which will provide the same functionality.")
 D ADD(.SDLN,"************"),ADD(.SDLN," "),ADD(.SDLN," ")
 D ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:")
 D ADD(.SDLN,"==============================")
 D ADD(.SDLN," ")
 D ADD(.SDLN,"<<< The Class III OUTPATIENT CLINIC RECALL PARAM File Conversion has "_$S(+$G(SDRRSTOP):"NOT ",1:"")_"Completed. >>>")
 I +$G(SDRRSTOP) D
 . D ADD(.SDLN,"    Please restart the post-install process from the following")
 . D ADD(.SDLN,"    programmer's prompt:")
 . D ADD(.SDLN,"                          D POST^SDRRC16")
 D ADD(.SDLN," "),ADD(.SDLN," ")
 D ADD(.SDLN,"  DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$G(^XTMP("SDRRC16","START")),"P"))
 D ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$G(^XTMP("SDRRC16","COMPLETED")),"P"))
 I $D(^XTMP("SDRRC16","LAST RUN")) D
 . D ADD(.SDLN,"      DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$G(^XTMP("SDRRC16","LAST RUN")),"P"))
 D ADD(.SDLN," "),ADD(.SDLN," ")
 D ADD(.SDLN,"    TOTAL RECORDS THAT HAVE BEEN CONVERTED: "_+$G(^XTMP("SDRRC16","TOT")))
 D ADD(.SDLN,"                         <END OF REPORT> :")
 D ^XMD
 K ^TMP("SDRRC16",$J)
 Q
ADD(SDLN,SDTXT) ;add line
 Q:$L(SDTXT)'>0
 S SDLN=$G(SDLN)+1
 S ^TMP("SDRRC16",$J,SDLN)=SDTXT
 Q
PROGCHK(XPDABORT) ;checks programmer variables
 I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
 . D BMES^XPDUTL("******")
 . D MES^XPDUTL("Your programming variables are not set up properly.")
 . D MES^XPDUTL("Installation aborted.")
 . D MES^XPDUTL("******")
 . S XPDABORT=2
 Q
ISRUNING(XPDABORT) ;check if running
 I +$G(^XTMP("SDRRC16","RUNNING")) D
 . D BMES^XPDUTL("******")
 . D MES^XPDUTL("This patch is currently being Installed.  Try later.")
 . D MES^XPDUTL("Installation aborted...")
 . D MES^XPDUTL("******")
 . S XPDABORT=2
 Q
NOFILE ;no File
 D BMES^XPDUTL("******")
 D MES^XPDUTL("The Class III Outpatient Clinic Recall Params File Conversion is NOT necessary because")
 D MES^XPDUTL("file (#190004.1) does not exist on this system.")
 D MES^XPDUTL("Post-Install process terminated...For conversion to OUTPATIENT CLINIC PARAM FILE (#403.53)")
 D MES^XPDUTL("******")
 Q
TASK ;run TaskMan
 N ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP
 S SDSTOP=+$G(^XTMP("SDRRC16","STOPPED"))
 S ZTRTN="START^SDRRC16"
 S ZTDESC="SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 S ZTIO="",ZTDTH=$H,ZTREQ="@",ZTSAVE("ZTREQ")=""
 D ^%ZTLOAD
 D BMES^XPDUTL("******")
 I '$D(ZTSK) D
 . D MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (190004.1) File")
 . D MES^XPDUTL("Conversion.")
 . D BMES^XPDUTL("Please re-run Post-Install routine POST^SSDRRC16 from")
 . D MES^XPDUTL("the programmer prompt.")
 . ;
 E  D
 . D MES^XPDUTL("Task "_ZTSK_" has been "_$S(+SDSTOP:"Re-",1:"")_"started to run the Class III (190004.1) File")
 . D MES^XPDUTL("Conversion.")
 . I SDSTOP D
 . . D MES^XPDUTL("  <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>")
 . D BMES^XPDUTL("You will receive a MailMan message when this task is completed")
 . D MES^XPDUTL("or if it has been manually stopped.")
 D MES^XPDUTL("******")
 Q
XTMP ;setup ^XTMP to control output for 90 days
 I $D(^XTMP("SDRRC16",0)) D
 . S ^XTMP("SDRRC16","LAST RUN")=$G(^XTMP("SDRRC16","START"))
 E  D
 . N SDX
 . S SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT()
 . S SDX=SDX_"^SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 . S ^XTMP("SDRRC16",0)=SDX
 S ^XTMP("SDRRC16","START")=$$NOW^XLFDT()
 S ^XTMP("SDRRC16","RUNNING")="1"
 Q
UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP
 ; Input:
 ;       NODE - Unique subscript
 ; Output: none
 Q:'$G(SDENCPTR)
 I $G(NODE)="" S NODE="UNKNOWN"
 S ^XTMP("SDRRC16","TOT2",NODE,SDENCPTR)=$G(SDENT)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDRRC16   5833     printed  Sep 23, 2025@20:37:23                                                                                                                                                                                                     Page 2
SDRRC16   ;10N20/MAH - POST-INSTALL FOR PATCH SD*5.3*536 CONVERT PARAMS FILE; 3/01/2008 12:24pm
 +1       ;;5.3;Scheduling;**536**;Aug 13, 1993;Build 53
 +2       ;;SDRR-RECALL REMINDER
 +3        QUIT 
ENV       ;Environment check
 +1        KILL ^XTMP("SDRRC16")
 +2        SET XPDABORT=""
 +3       ;checks programmer variables
 +4        DO PROGCHK(.XPDABORT)
 +5       ;check if install is running
 +6        DO ISRUNING(.XPDABORT)
 +7        IF XPDABORT=""
               KILL XPDABORT
POST      ;Check for Clinic Recall PARAMS file)
 +1        IF '$DATA(^DIZ(190004.1))
               Begin DoDot:1
 +2                DO NOFILE
               End DoDot:1
               QUIT 
 +3        DO TASK
 +4        QUIT 
START     ;Background job entry point
 +1        NEW SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE,SDRRREC,SDRRFDA,TOTAL
 +2        NEW SDTOT,SDENCPTR,SDCKCNT,SDRRSTOP,SDENT,SDFIL,PARAM
 +3        SET TOTAL=0
 +4        DO XTMP
 +5       ;seed var's if Re-Run
 +6        IF $DATA(^XTMP("SDRRC16","TOT"))
               Begin DoDot:1
 +7                SET SDTOT=+$GET(^XTMP("SDRRC16","TOT"))
 +8                SET (SDSAVE,SDAIEN)=+$GET(^XTMP("SDRRC16","PARAM"))
               End DoDot:1
 +9       IF '$TEST
               Begin DoDot:1
 +10               SET SDAIEN=0
                   FOR 
                       SET SDAIEN=$ORDER(^DIZ(190004.1,SDAIEN))
                       if SDAIEN<1
                           QUIT 
                       SET SDRRREC=$GET(^DIZ(190004.1,SDAIEN,0))
                       Begin DoDot:2
 +11                       SET SDRRFDA(403.53,"+1,",.01)=$PIECE(SDRRREC,U,1)
 +12                       SET SDRRFDA(403.53,"+1,",1)=$PIECE(SDRRREC,U,2)
 +13                       IF $PIECE($GET(SDRRREC),U,4)'=""
                               SET SDRRFDA(403.53,"+1,",3)=$PIECE($GET(SDRRREC),U,4)
 +14                       IF $PIECE($GET(SDRRREC),U,5)'=""
                               SET SDRRFDA(403.53,"+1,",4)=$PIECE($GET(SDRRREC),U,5)
 +15                       NEW NEWREC
                           SET NEWREC(1)=SDAIEN
 +16                       DO UPDATE^DIE("","SDRRFDA","NEWREC","")
 +17                       SET TOTAL=TOTAL+1
                       End DoDot:2
               End DoDot:1
 +18       SET ^XTMP("SDRRC16","COMPLETED")=$$NOW^XLFDT()
 +19       SET ^XTMP("SDRRC16","TOT")=TOTAL
 +20       KILL ^XTMP("SDRRC16","RUNNING")
 +21       DO SENDMSG
 +22       QUIT 
SENDMSG   ;send MailMan msg to patch installer
 +1        NEW DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
 +2        KILL ^TMP("SDRRC16",$JOB)
 +3        SET XMSUB="SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 +4        SET XMTEXT="^TMP(""SDRRC16"",$J,"
           SET XMDUZ=.5
           SET (XMY(DUZ),XMY(XMDUZ))=""
 +5        SET SDLN=0
 +6        DO ADD(.SDLN,"Patch:  SD*5.3*536 RECALL REMINDER TEAM FILE CONVERSION PROCESSING")
 +7        DO ADD(.SDLN," ")
           DO ADD(.SDLN,"************")
 +8        DO ADD(.SDLN,"The existing Class III file called OUTPATIENT CLINIC RECALL PARAM (190004.1), ")
 +9        DO ADD(.SDLN,"which contains Clinic Recall params have been converted to")
 +10       DO ADD(.SDLN,"a new Class I file called Recall Reminder Parameters (403.53)")
 +11       DO ADD(.SDLN,"which will provide the same functionality.")
 +12       DO ADD(.SDLN,"************")
           DO ADD(.SDLN," ")
           DO ADD(.SDLN," ")
 +13       DO ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:")
 +14       DO ADD(.SDLN,"==============================")
 +15       DO ADD(.SDLN," ")
 +16       DO ADD(.SDLN,"<<< The Class III OUTPATIENT CLINIC RECALL PARAM File Conversion has "_$SELECT(+$GET(SDRRSTOP):"NOT ",1:"")_"Completed. >>>")
 +17       IF +$GET(SDRRSTOP)
               Begin DoDot:1
 +18               DO ADD(.SDLN,"    Please restart the post-install process from the following")
 +19               DO ADD(.SDLN,"    programmer's prompt:")
 +20               DO ADD(.SDLN,"                          D POST^SDRRC16")
               End DoDot:1
 +21       DO ADD(.SDLN," ")
           DO ADD(.SDLN," ")
 +22       DO ADD(.SDLN,"  DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$GET(^XTMP("SDRRC16","START")),"P"))
 +23       DO ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$GET(^XTMP("SDRRC16","COMPLETED")),"P"))
 +24       IF $DATA(^XTMP("SDRRC16","LAST RUN"))
               Begin DoDot:1
 +25               DO ADD(.SDLN,"      DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$GET(^XTMP("SDRRC16","LAST RUN")),"P"))
               End DoDot:1
 +26       DO ADD(.SDLN," ")
           DO ADD(.SDLN," ")
 +27       DO ADD(.SDLN,"    TOTAL RECORDS THAT HAVE BEEN CONVERTED: "_+$GET(^XTMP("SDRRC16","TOT")))
 +28       DO ADD(.SDLN,"                         <END OF REPORT> :")
 +29       DO ^XMD
 +30       KILL ^TMP("SDRRC16",$JOB)
 +31       QUIT 
ADD(SDLN,SDTXT) ;add line
 +1        if $LENGTH(SDTXT)'>0
               QUIT 
 +2        SET SDLN=$GET(SDLN)+1
 +3        SET ^TMP("SDRRC16",$JOB,SDLN)=SDTXT
 +4        QUIT 
PROGCHK(XPDABORT) ;checks programmer variables
 +1        IF '$GET(DUZ)!($GET(DUZ(0))'="@")!('$GET(DT))!($GET(U)'="^")
               Begin DoDot:1
 +2                DO BMES^XPDUTL("******")
 +3                DO MES^XPDUTL("Your programming variables are not set up properly.")
 +4                DO MES^XPDUTL("Installation aborted.")
 +5                DO MES^XPDUTL("******")
 +6                SET XPDABORT=2
               End DoDot:1
 +7        QUIT 
ISRUNING(XPDABORT) ;check if running
 +1        IF +$GET(^XTMP("SDRRC16","RUNNING"))
               Begin DoDot:1
 +2                DO BMES^XPDUTL("******")
 +3                DO MES^XPDUTL("This patch is currently being Installed.  Try later.")
 +4                DO MES^XPDUTL("Installation aborted...")
 +5                DO MES^XPDUTL("******")
 +6                SET XPDABORT=2
               End DoDot:1
 +7        QUIT 
NOFILE    ;no File
 +1        DO BMES^XPDUTL("******")
 +2        DO MES^XPDUTL("The Class III Outpatient Clinic Recall Params File Conversion is NOT necessary because")
 +3        DO MES^XPDUTL("file (#190004.1) does not exist on this system.")
 +4        DO MES^XPDUTL("Post-Install process terminated...For conversion to OUTPATIENT CLINIC PARAM FILE (#403.53)")
 +5        DO MES^XPDUTL("******")
 +6        QUIT 
TASK      ;run TaskMan
 +1        NEW ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP
 +2        SET SDSTOP=+$GET(^XTMP("SDRRC16","STOPPED"))
 +3        SET ZTRTN="START^SDRRC16"
 +4        SET ZTDESC="SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 +5        SET ZTIO=""
           SET ZTDTH=$HOROLOG
           SET ZTREQ="@"
           SET ZTSAVE("ZTREQ")=""
 +6        DO ^%ZTLOAD
 +7        DO BMES^XPDUTL("******")
 +8        IF '$DATA(ZTSK)
               Begin DoDot:1
 +9                DO MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (190004.1) File")
 +10               DO MES^XPDUTL("Conversion.")
 +11               DO BMES^XPDUTL("Please re-run Post-Install routine POST^SSDRRC16 from")
 +12               DO MES^XPDUTL("the programmer prompt.")
 +13      ;
               End DoDot:1
 +14      IF '$TEST
               Begin DoDot:1
 +15               DO MES^XPDUTL("Task "_ZTSK_" has been "_$SELECT(+SDSTOP:"Re-",1:"")_"started to run the Class III (190004.1) File")
 +16               DO MES^XPDUTL("Conversion.")
 +17               IF SDSTOP
                       Begin DoDot:2
 +18                       DO MES^XPDUTL("  <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>")
                       End DoDot:2
 +19               DO BMES^XPDUTL("You will receive a MailMan message when this task is completed")
 +20               DO MES^XPDUTL("or if it has been manually stopped.")
               End DoDot:1
 +21       DO MES^XPDUTL("******")
 +22       QUIT 
XTMP      ;setup ^XTMP to control output for 90 days
 +1        IF $DATA(^XTMP("SDRRC16",0))
               Begin DoDot:1
 +2                SET ^XTMP("SDRRC16","LAST RUN")=$GET(^XTMP("SDRRC16","START"))
               End DoDot:1
 +3       IF '$TEST
               Begin DoDot:1
 +4                NEW SDX
 +5                SET SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT()
 +6                SET SDX=SDX_"^SD*5.3*536 OUTPATIENT CLINIC PARAM FILE CONVERSION REPORT"
 +7                SET ^XTMP("SDRRC16",0)=SDX
               End DoDot:1
 +8        SET ^XTMP("SDRRC16","START")=$$NOW^XLFDT()
 +9        SET ^XTMP("SDRRC16","RUNNING")="1"
 +10       QUIT 
UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP
 +1       ; Input:
 +2       ;       NODE - Unique subscript
 +3       ; Output: none
 +4        if '$GET(SDENCPTR)
               QUIT 
 +5        IF $GET(NODE)=""
               SET NODE="UNKNOWN"
 +6        SET ^XTMP("SDRRC16","TOT2",NODE,SDENCPTR)=$GET(SDENT)
 +7        QUIT