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

SDES942P.m

Go to the documentation of this file.
SDES942P ;ALB/BLB - SD*5.3*942 Post Init Routine ; Jan 30, 2026
 ;;5.3;SCHEDULING;**942**;AUG 13, 1993;Build 2
  ;;Per VHA Directive 6402, this routine should not be modified
 ;;
 Q
 ;
EN ;
 D TASK
 Q
 ;
 ;
TASK ; tasks off process to update the direct patient schedule field in the hospital location file
 D MES^XPDUTL("")
 D MES^XPDUTL(" SD*5.3*942 Post-Install to create report of instances of ghost availability.")
 D MES^XPDUTL("")
 N ZTDESC,ZTRTN,ZTIO,ZTSK,X,ZTDTH,ZTSAVE
 S ZTDESC="SD*5.3*942 Post Install Routine Task 1"
 D NOW^%DTC
 S ZTDTH=$P($H,",",1)_","_86399,ZTIO="",ZTRTN="REPORT^SDES942P",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.")
 D IDENTIFYGHOST
 Q
REPORT ;
 N CREATEDT,UPDATECNT
 K ^XTMP("SDES942P")
 S ^XTMP("SDES942P",0)=$$FMADD^XLFDT(DT,30)_"^"_DT_"^SD*5.3*942"
 S UPDATECNT=1
 S UPDATECNT=UPDATECNT+1
 ;ADD LOGIC HERE
 D IDENTIFYGHOST
 ;
 D MAIL
 K ^XTMP("SDES942P")
 Q
 ;
MAIL     ;
 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(""SDES942P"","
 S XMSUB=MESS1_"SD*5.3*942 - Post Install Data Report"
 S XMDUZ=.5,XMY(DUZ)="",XMY(XMDUZ)=""
 S XMY("BARBER.LORI@DOMAIN.EXT")=""
 S XMY("DUNNAM.DAVID@DOMAIN.EXT")=""
 S XMY("CRUZ.ORLANDO@DOMAIN.EXT")=""
 S XMY("BUTLER.BRANDON@DOMAIN.EXT")=""
 D ^XMD
 Q
 ;
IDENTIFYGHOST() ;
 N CLINICIEN,GHOST,CLINICIEN,CLINICNAME,COUNT,NONSTDDATE,INDEFDATE,STARTDATE,ORPHANDATE
 ;
 S CLINICIEN=0
 F  S CLINICIEN=$O(^SC(CLINICIEN)) Q:'CLINICIEN  D
 .I $$INACTIVE^SDESUTIL(CLINICIEN) Q
 .;
 .S STARTDATE=$$FMADD^XLFDT(DT,-$$GET1^DIQ(44,CLINICIEN,2002))
 .;
 .D INDEFOVERWRITES(.GHOST,CLINICIEN,STARTDATE)
 .D ORPHANEDOSTDAYS(.GHOST,CLINICIEN)
 ;
 ;
 K ^XTMP("SDES942P")
 S COUNT=1
 S ^XTMP("SDES942P",COUNT)="**********************************GHOST AVAILABILITY REPORT**********************************"
 S COUNT=COUNT+1
 S ^XTMP("SDES942P",COUNT)="CLINIC^ISSUE DESCRIPTION^DATE"
 ;
 S CLINICIEN=0
 F  S CLINICIEN=$O(GHOST(CLINICIEN)),CLINICNAME=$$GET1^DIQ(44,CLINICIEN,.01) Q:'CLINICIEN  D
 .;
 .S INDEFDATE=0
 .F  S INDEFDATE=$O(GHOST(CLINICIEN,"INDEFINITE OVERWRITE",INDEFDATE)) Q:'INDEFDATE  D
 ..S COUNT=COUNT+1
 ..S ^XTMP("SDES942P",COUNT)=CLINICNAME_U
 ..S ^XTMP("SDES942P",COUNT)=^XTMP("SDES942P",COUNT)_"Indefinite availablity is overlayed with Special availablity"_U_$$FMTISO^SDAMUTDT(INDEFDATE)
 .;
 .S ORPHANDATE=0
 .F  S ORPHANDATE=$O(GHOST(CLINICIEN,"ORPHANED OST",ORPHANDATE)) Q:'ORPHANDATE  D
 ..S COUNT=COUNT+1
 ..S ^XTMP("SDES942P",COUNT)=CLINICNAME_U
 ..S ^XTMP("SDES942P",COUNT)=^XTMP("SDES942P",COUNT)_"Unable to define precise time for special availability defined"_U_$$FMTISO^SDAMUTDT(ORPHANDATE)
 ;
 Q
 ;
INDEFOVERWRITES(GHOST,CLINICIEN,DATE) ;
 N TNODE,DONE
 ;
 F TNODE=0:1:6 I $D(^SC(CLINICIEN,"T"_TNODE)) D
 .;
 .S DATE=0,DONE=0
 .F  S DATE=$O(^SC(CLINICIEN,"T"_TNODE,DATE)) Q:'DATE!(DONE)  D
 ..;
 ..I $O(^SC(CLINICIEN,"T"_TNODE,DATE))=9999999,$D(^SC(CLINICIEN,"OST",DATE)) D
 ...S GHOST(CLINICIEN,"INDEFINITE OVERWRITE",DATE)=""
 ...S DONE=1
 Q
 ;
ORPHANEDOSTDAYS(GHOST,CLINICIEN) ;
 N DATE
 ;
 S DATE=$$FMADD^XLFDT(DT,-1)
 F  S DATE=$O(^SC(CLINICIEN,"OST",DATE)) Q:'DATE  D
 .I '$D(^SC(CLINICIEN,"T",DATE)) D
 ..S GHOST(CLINICIEN,"ORPHANED OST",DATE)=""
 Q
 ;