QAN2P35 ;ALB/MJB - Incident Reporting  Package Decommission ;07/02/2024
 ;;2.0;Incident Reporting ;**35**; JUL 13, 1995;Build 5
 ;
 ; The Incident Reporting package is being retired. 
 ; This routine will remove the Incident Reporting  files and data.
 ;
 Q
 ;
TASK ;task the file deletion
 ;
 N ZTRTN,ZTDESC,ZTIO,ZTDTH
 D MES^XPDUTL(" ")
 D MES^XPDUTL("A background job will be tasked to delete all Incident Reporting files and data.")
 D MES^XPDUTL("A Mailman message will be generated and sent to the installer when the job")
 D MES^XPDUTL("is completed.")
 S ZTRTN="BEGDEL^QAN2P35",ZTDESC="Incident Reporting Package File & Data Removal"
 S ZTIO="",ZTDTH=$H
 D ^%ZTLOAD
 Q
 ;
BEGDEL ;background job entry point to remove all files and data
 ;
 N DIU,QANCNT,QANNODE,QANLOOP,QANTXT,QANFILE,QANFLG,QANSTART,QANEND,QANSTR
 S (QANCNT,QANFLG)=0,QANSTART=$$FMTE^XLFDT($$NOW^XLFDT,1)
 K ^TMP($J,"QANP35")
 F QANLOOP=1:1 S QANTXT=$P($T(MSGTXT+QANLOOP),";;",2) Q:QANTXT="QUIT"  D LINE(QANTXT)
 ;build beginning of mail message
 S DIU(0)="DST" ;flags to delete data, subfile and templates
 F QANFILE=742,742.1,742.13,742.14,742.4,742.5,742.6 D
 .;loop through known Incident Reporting files
 .S DIU=$$ROOT^DILFD(QANFILE),QANNODE=$$CREF^DILF(DIU)
 .;set diu=file root and QANnode=closed file root
 .I '$$VFILE^DILFD(QANFILE) Q  ;verify file exists
 .;delete file and data in diu
 .D EN^DIU2
 .;check if DD and data is removed
 .I '$D(@QANNODE),'$$VFILE^DILFD(QANFILE) D  Q  ;file successfully deleted
 ..S QANSTR=DIU_" successfully removed" D LINE(QANSTR) Q
 .S QANSTR=DIU_" was not successfully removed",QANFLG=1 D LINE(QANSTR)  ;fall through if file not deleted
 I QANFLG D
 .D LINE("")
 .S QANSTR="A file was not removed successfully. Please have your IRM re-run"
 .S QANSTR=QANSTR_" the background job" D LINE(QANSTR)
 .S QANSTR="by entering this command at the programmer's prompt" D LINE(QANSTR)
 .S QANSTR="   D BEGDEL^QAN2P35"
 D LINE("")
 S QANSTART="Start Time: "_QANSTART D LINE(QANSTART)
 S QANEND=$$FMTE^XLFDT($$NOW^XLFDT,1)
 S QANEND="End Time:   "_QANEND D LINE(QANEND)
 D MAIL  ;send mail message
 K ^TMP($J,"QANP35")
 Q
 ;
MSGTXT ;message into
 ;; The Social Work package is being retired and all data and data
 ;; dictionary entries will be removed from the system. This 
 ;; message shows a list of files that were removed.
 ;;
 ;;QUIT
 Q
LINE(TEXT) ;add line to tmp global stored for mail message
 ;
 S QANCNT=QANCNT+1,^TMP($J,"QANP35",QANCNT)=TEXT
 Q
 ;
MAIL ;send message
 ;
 N XMDUZ,XMY,XMTEXT,XMSUB
 S XMY(DUZ)="",XMDUZ=.5
 S XMSUB="Incident Reporting Package Data & Data Dictionary Removal"
 S XMTEXT="^TMP($J,""QANP35"","
 D ^XMD
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HQAN2P35   2724     printed  Sep 23, 2025@19:35:37                                                                                                                                                                                                     Page 2
QAN2P35   ;ALB/MJB - Incident Reporting  Package Decommission ;07/02/2024
 +1       ;;2.0;Incident Reporting ;**35**; JUL 13, 1995;Build 5
 +2       ;
 +3       ; The Incident Reporting package is being retired. 
 +4       ; This routine will remove the Incident Reporting  files and data.
 +5       ;
 +6        QUIT 
 +7       ;
TASK      ;task the file deletion
 +1       ;
 +2        NEW ZTRTN,ZTDESC,ZTIO,ZTDTH
 +3        DO MES^XPDUTL(" ")
 +4        DO MES^XPDUTL("A background job will be tasked to delete all Incident Reporting files and data.")
 +5        DO MES^XPDUTL("A Mailman message will be generated and sent to the installer when the job")
 +6        DO MES^XPDUTL("is completed.")
 +7        SET ZTRTN="BEGDEL^QAN2P35"
           SET ZTDESC="Incident Reporting Package File & Data Removal"
 +8        SET ZTIO=""
           SET ZTDTH=$HOROLOG
 +9        DO ^%ZTLOAD
 +10       QUIT 
 +11      ;
BEGDEL    ;background job entry point to remove all files and data
 +1       ;
 +2        NEW DIU,QANCNT,QANNODE,QANLOOP,QANTXT,QANFILE,QANFLG,QANSTART,QANEND,QANSTR
 +3        SET (QANCNT,QANFLG)=0
           SET QANSTART=$$FMTE^XLFDT($$NOW^XLFDT,1)
 +4        KILL ^TMP($JOB,"QANP35")
 +5        FOR QANLOOP=1:1
               SET QANTXT=$PIECE($TEXT(MSGTXT+QANLOOP),";;",2)
               if QANTXT="QUIT"
                   QUIT 
               DO LINE(QANTXT)
 +6       ;build beginning of mail message
 +7       ;flags to delete data, subfile and templates
           SET DIU(0)="DST"
 +8        FOR QANFILE=742,742.1,742.13,742.14,742.4,742.5,742.6
               Begin DoDot:1
 +9       ;loop through known Incident Reporting files
 +10               SET DIU=$$ROOT^DILFD(QANFILE)
                   SET QANNODE=$$CREF^DILF(DIU)
 +11      ;set diu=file root and QANnode=closed file root
 +12      ;verify file exists
                   IF '$$VFILE^DILFD(QANFILE)
                       QUIT 
 +13      ;delete file and data in diu
 +14               DO EN^DIU2
 +15      ;check if DD and data is removed
 +16      ;file successfully deleted
                   IF '$DATA(@QANNODE)
                       IF '$$VFILE^DILFD(QANFILE)
                           Begin DoDot:2
 +17                           SET QANSTR=DIU_" successfully removed"
                               DO LINE(QANSTR)
                               QUIT 
                           End DoDot:2
                           QUIT 
 +18      ;fall through if file not deleted
                   SET QANSTR=DIU_" was not successfully removed"
                   SET QANFLG=1
                   DO LINE(QANSTR)
               End DoDot:1
 +19       IF QANFLG
               Begin DoDot:1
 +20               DO LINE("")
 +21               SET QANSTR="A file was not removed successfully. Please have your IRM re-run"
 +22               SET QANSTR=QANSTR_" the background job"
                   DO LINE(QANSTR)
 +23               SET QANSTR="by entering this command at the programmer's prompt"
                   DO LINE(QANSTR)
 +24               SET QANSTR="   D BEGDEL^QAN2P35"
               End DoDot:1
 +25       DO LINE("")
 +26       SET QANSTART="Start Time: "_QANSTART
           DO LINE(QANSTART)
 +27       SET QANEND=$$FMTE^XLFDT($$NOW^XLFDT,1)
 +28       SET QANEND="End Time:   "_QANEND
           DO LINE(QANEND)
 +29      ;send mail message
           DO MAIL
 +30       KILL ^TMP($JOB,"QANP35")
 +31       QUIT 
 +32      ;
MSGTXT    ;message into
 +1       ;; The Social Work package is being retired and all data and data
 +2       ;; dictionary entries will be removed from the system. This 
 +3       ;; message shows a list of files that were removed.
 +4       ;;
 +5       ;;QUIT
 +6        QUIT 
LINE(TEXT) ;add line to tmp global stored for mail message
 +1       ;
 +2        SET QANCNT=QANCNT+1
           SET ^TMP($JOB,"QANP35",QANCNT)=TEXT
 +3        QUIT 
 +4       ;
MAIL      ;send message
 +1       ;
 +2        NEW XMDUZ,XMY,XMTEXT,XMSUB
 +3        SET XMY(DUZ)=""
           SET XMDUZ=.5
 +4        SET XMSUB="Incident Reporting Package Data & Data Dictionary Removal"
 +5        SET XMTEXT="^TMP($J,""QANP35"","
 +6        DO ^XMD
 +7        QUIT