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

SDES927P.m

Go to the documentation of this file.
SDES927P ;ALB/TJB,MGD - SD*5.3*927 Post Init Routine ; OCT 31, 2024
 ;;5.3;SCHEDULING;**927**;AUG 13, 1993;Build 15
 ;;Per VHA Directive 6402, this routine should not be modified
 ;;
 Q
 ;
EN ;
 N SDTASKTAG,SDTASKSUBJ,SDTASKCNT,SDRTN,SDBUILD
 S SDRTN="SDES927P"
 S SDBUILD="SD*5.3*927"
 S SDTASKCNT=1
 ;
 D VSE10970
 D VSE11069
 D VSE11381
 Q
 ;
 ;
VSE10970 ;
 ;K ^XTMP("SDES927P")
 D MES^XPDUTL("")
 D MES^XPDUTL("   SD*5.3*927 Post-Install to correct the format of the CANCELLED message")
 D MES^XPDUTL("   (where incorrect) on days with full day cancellations (#44.005) in the")
 D MES^XPDUTL("   HOSPITAL LOCATION file (#44) is being queued to run in the background.")
 D MES^XPDUTL("")
 N ZTDESC,ZTRTN,ZTIO,ZTSK,X,ZTDTH,ZTSAVE
 S ZTDESC="SD*5.3*927 Post Install Routine"
 D NOW^%DTC S ZTDTH=X,ZTIO="",ZTRTN="CANCELCLEANUP^SDES927P",ZTSAVE("*")="" D ^%ZTLOAD
 I $D(ZTSK) D
 . D MES^XPDUTL("  >>>Task "_ZTSK_" has been queued.")
 . D MES^XPDUTL("")
 I '$D(ZTSK) D
 . D MES^XPDUTL("  UNABLE TO QUEUE THIS JOB.")
 . D MES^XPDUTL("  Please contact the National Help Desk to report this issue.")
 Q
 ;
CANCELCLEANUP ;
 N CLINICIEN,DATE,FDA,PATTERN,CANCELMESSAGE,COUNT
 ;
 K ^XTMP("SDES927P_CANCELCLEANUP")
 S ^XTMP("SDES927P_CANCELCLEANUP",0)=$$FMADD^XLFDT(DT,30)_"^"_DT_"^SD*5.3*927"
 S CLINICIEN=0,COUNT=0
 F  S CLINICIEN=$O(^SC(CLINICIEN)) Q:'CLINICIEN  D
 .S DATE=$$GETSUB^SDES2UTIL(DT)
 .F  S DATE=$O(^SC(CLINICIEN,"ST",DATE)) Q:'DATE  D
 ..I '$D(^SC(CLINICIEN,"ST",DATE,"CAN")) Q
 ..;
 ..S CANCELMESSAGE="   "_$E($P(DATE,"."),6,7)_"    **CANCELLED**"
 ..S PATTERN=$$GET1^DIQ(44.005,DATE_","_CLINICIEN_",",1)
 ..;
 ..I PATTERN["[" Q
 ..I PATTERN=CANCELMESSAGE Q
 ..;
 ..S FDA(44.005,DATE_","_CLINICIEN_",",1)=CANCELMESSAGE
 ..D FILE^DIE(,"FDA") K FDA
 ..S COUNT=COUNT+1
 ;
 S ^XTMP("SDES927P_CANCELCLEANUP",1)=""
 S ^XTMP("SDES927P_CANCELCLEANUP",2)="A total of "_COUNT_" records were corrected"
 S ^XTMP("SDES927P_CANCELCLEANUP",3)=""
 S ^XTMP("SDES927P_CANCELCLEANUP",4)="SDES927P post install CANCEL CLEANUP (VSE-10970) has run to completion."
 D MAIL
 Q
 ;
MAIL ;
 ; Get Station Number
 ;
 N STANUM,MESS1,XMTEXT,XMSUB,XMY,XMDUZ,DIFROM
 S STANUM=$$KSP^XUPARAM("INST")_","
 S STANUM=$$GET1^DIQ(4,STANUM,99)
 S MESS1="Station: "_STANUM_" - "
 ;
 ; Send MailMan message
 S XMDUZ=DUZ
 S XMY(XMDUZ)=""
 S XMTEXT="^XTMP(""SDES927P_CANCELCLEANUP"","
 S XMSUB=MESS1_"SD*5.3*927 post install for Cancellation Data Cleanup"
 S XMY("BARBER.LORI@DOMAIN.EXT")=""
 S XMY("DUNNAM.DAVID@DOMAIN.EXT")=""
 S XMY("CRUZ.ORLANDO@DOMAIN.EXT")=""
 S XMDUZ=.5,XMY(DUZ)="",XMY(XMDUZ)=""
 D ^XMD
 Q
VSE11069 ;
 S SDTASKTAG="VSE11069TASK"
         ; Keep each line of the Task Subject to less than 80 chars for it to display properly
 K SDTASKSUBJ
 S SDTASKSUBJ(1)=SDBUILD_" Post-Install to identify clinics with no DIVISION value"
 S SDTASKSUBJ(2)="and clinics that have DIVISION valued, but no TIMEZONE"
 D TASK2(.SDTASKSUBJ,SDTASKCNT,SDTASKTAG,SDRTN,SDBUILD)
 Q
VSE11069TASK ; Entry point for TASK
 D VSE11069WORK
 Q
 ;
VSE11069WORK ;
 ;
 S SDBUILD="SD*5.3*927"
 S SDTICKET="VSE-11069"
 S SDMAILSUBJ=SDBUILD_" - Post Install TIMEZONE Report "_SDTICKET
 S SDMAILLIST("BARBER.LORI@DOMAIN.EXT")=""  ;This is the FORUM email
 S SDMAILLIST("DUNNAM.DAVID@DOMAIN.EXT")=""
 S SDMAILLIST("CRUZ.ORLANDO@DOMAIN.EXT")=""
 ;
 K ^XTMP("SDES927P_TIMEZONE")
 ;
 N CLINICIEN,RPTCLN,SDDIV,SDTIMEZONEI,COUNT,OUTPUT,CLINICNAME,CLINICSTAT,SDINST
 S CLINICIEN=0,COUNT=1
 F  S CLINICIEN=$O(^SC(CLINICIEN)) Q:'CLINICIEN  D
 .S RPTCLN=0
 .S SDDIV=$$GET1^DIQ(44,CLINICIEN_",",3.5,"I")
 .I SDDIV="" S RPTCLN=1
 .S SDINST=$$GET1^DIQ(40.8,SDDIV_",",.07,"I")
 .S SDTIMEZONEI=$$GET1^DIQ(4,SDINST,800,"I")
 .I SDTIMEZONEI="" S RPTCLN=1
 .I RPTCLN D
 ..S CLINICNAME=$$GET1^DIQ(44,CLINICIEN,.01,"E")
 ..S CLINICSTAT=$S($$INACTIVE^SDES2UTIL(CLINICIEN)=0:"ACTIVE",1:"INACTIVE")
 ..S COUNT=COUNT+1
 ..S ^XTMP("SDES927P_TIMEZONE",COUNT)=CLINICIEN_"^"_CLINICNAME_"^"_CLINICSTAT_"^"_SDDIV_"^"_SDINST
 ;
 S ^XTMP("SDES927P_TIMEZONE",0)=$$FMADD^XLFDT(DT,30)_"^"_DT_"^SD*5.3*927"
 S ^XTMP("SDES927P_TIMEZONE",1)="CLINIC IEN^CLINIC NAME^CLINIC STATUS^DIVISION^INSTITUTION"
 S COUNT=COUNT+1
 S ^XTMP("SDES927P_TIMEZONE",COUNT)="A total of "_COUNT_" records were identified"
 S ^XTMP("SDES927P_TIMEZONE",COUNT+1)=""
 S ^XTMP("SDES927P_TIMEZONE",COUNT+2)="SDES927P post install TIMEZONE (VSE-11069) has run to completion."
 D MAIL2(.SDMAILLIST,SDMAILSUBJ,SDTICKET,"SDES927P_TIMEZONE")
 K ^XTMP("SDES927P_TIMEZONE")
 Q
VSE11381 ;
 S SDTASKTAG="VSE11381TASK"
 ; Keep each line of the Task Subject to less than 80 chars for it to display properly
 K SDTASKSUBJ
 S SDTASKSUBJ(1)=SDBUILD_"Post-Install to update SDEC REQUEST POINTER INDEX in the"
 S SDTASKSUBJ(2)=" SDEC CONTACT file (#409.86)"
 D TASK2(.SDTASKSUBJ,SDTASKCNT,SDTASKTAG,SDRTN,SDBUILD)
 Q
VSE11381TASK ; Entry point for TASK
 D VSE11381WORK
 Q
VSE11381WORK ;
 N DA,DDA,SDREQPTR
 S DA=""
 F  S DA=$O(^SDEC(409.86,"REQPTR",DA)) Q:DA=""  D
 .S DDA=0
 .F  S DDA=$O(^SDEC(409.86,"REQPTR",DA,DDA)) Q:'DDA  D
 ..S SDREQPTR=$P(^SDEC(409.86,DDA,0),"^",7)
 ..I DA=SDREQPTR Q
 ..; Bad index
 ..K ^SDEC(409.86,"REQPTR",DA,DDA)
 ..Q:$G(SDREQPTR)=""  ; Skip adding index if there is no request pointer
 ..;W !,"kill SDEC(409.86,REQPTR,"_DA_","_DDA_")"
 ..; Do we have a  valid index
 ..I '$D(^SDEC(409.86,"REQPTR",SDREQPTR,DDA)) S ^SDEC(409.86,"REQPTR",SDREQPTR,DDA)=""
 ..;i '$D(^SDEC(409.86,"REQPTR",SDREQPTR,DDA)) W !,"Add ",SDREQPTR_","_DDA
 Q
 ;
TASK2(SDTASKSUBJ,SDTASKCNT,SDTASKTAG,SDRTN,SDBUILD) ; tasks off process to update
 ; the direct patient schedule field in the hospital location file
 N SDSUBJLN
 S SDSUBJLN=""
 S SDTASKCNT=SDTASKCNT+1
 D MES^XPDUTL("")
 F  S SDSUBJLN=$O(SDTASKSUBJ(SDSUBJLN)) Q:SDSUBJLN=""  D MES^XPDUTL(" "_SDTASKSUBJ(SDSUBJLN))
 D MES^XPDUTL("")
 N ZTDESC,ZTRTN,ZTIO,ZTSK,X,ZTDTH,ZTSAVE
 S ZTDESC=SDBUILD_" Post Install Routine Task "_SDTASKCNT
 D NOW^%DTC
 S ZTDTH=X,ZTIO=""
 S ZTRTN=SDTASKTAG_"^"_SDRTN
 S ZTSAVE("*")=""
 D ^%ZTLOAD
 I $D(ZTSK) D
 . D MES^XPDUTL(" >>>Task "_ZTSK_" has been queued.")
 . D MES^XPDUTL("")
 I '$D(ZTSK) D
 . D MES^XPDUTL(" UNABLE TO QUEUE THIS JOB.")
 . D MES^XPDUTL(" Please contact the National Help Desk to report this issue.")
 Q
 ;
MAIL2(SDMAILLIST,SDMAILSUBJ,SDTICKET,SDRTN)     ;
 N STANUM,MESS1,XMTEXT,XMSUB,XMY,XMDUZ,DIFROM,%,D,D0,D1,D2,DG,DIC,DICR,DIW,XMDUN,XMZ
 S STANUM=$$KSP^XUPARAM("INST")_","
 S STANUM=$$GET1^DIQ(4,STANUM,99)
 S MESS1="Station: "_STANUM_" - "
 S XMDUZ=DUZ
 S XMTEXT="^XTMP("_$C(34)_SDRTN_$C(34)_","
 S XMSUB=MESS1_SDMAILSUBJ
 S XMDUZ=.5,XMY(XMDUZ)=""
 S XMY(DUZ)=""  ;Person running the install
 I $D(SDMAILLIST)>0 M XMY=SDMAILLIST
 D ^XMD
 Q