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
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES942P 3642 printed Jul 11, 2026@02:53:03 Page 2
SDES942P ;ALB/BLB - SD*5.3*942 Post Init Routine ; Jan 30, 2026
+1 ;;5.3;SCHEDULING;**942**;AUG 13, 1993;Build 2
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;;
+4 QUIT
+5 ;
EN ;
+1 DO TASK
+2 QUIT
+3 ;
+4 ;
TASK ; tasks off process to update the direct patient schedule field in the hospital location file
+1 DO MES^XPDUTL("")
+2 DO MES^XPDUTL(" SD*5.3*942 Post-Install to create report of instances of ghost availability.")
+3 DO MES^XPDUTL("")
+4 NEW ZTDESC,ZTRTN,ZTIO,ZTSK,X,ZTDTH,ZTSAVE
+5 SET ZTDESC="SD*5.3*942 Post Install Routine Task 1"
+6 DO NOW^%DTC
+7 SET ZTDTH=$PIECE($HOROLOG,",",1)_","_86399
SET ZTIO=""
SET ZTRTN="REPORT^SDES942P"
SET ZTSAVE("*")=""
+8 DO ^%ZTLOAD
+9 IF $DATA(ZTSK)
Begin DoDot:1
+10 DO MES^XPDUTL(" >>>Task "_ZTSK_" has been queued.")
+11 DO MES^XPDUTL("")
End DoDot:1
+12 IF '$DATA(ZTSK)
Begin DoDot:1
+13 DO MES^XPDUTL(" UNABLE TO QUEUE THIS JOB.")
+14 DO MES^XPDUTL(" Please contact the National Help Desk to report this issue.")
End DoDot:1
+15 DO IDENTIFYGHOST
+16 QUIT
REPORT ;
+1 NEW CREATEDT,UPDATECNT
+2 KILL ^XTMP("SDES942P")
+3 SET ^XTMP("SDES942P",0)=$$FMADD^XLFDT(DT,30)_"^"_DT_"^SD*5.3*942"
+4 SET UPDATECNT=1
+5 SET UPDATECNT=UPDATECNT+1
+6 ;ADD LOGIC HERE
+7 DO IDENTIFYGHOST
+8 ;
+9 DO MAIL
+10 KILL ^XTMP("SDES942P")
+11 QUIT
+12 ;
MAIL ;
+1 NEW STANUM,MESS1,XMTEXT,XMSUB,XMY,XMDUZ,DIFROM,%,D,D0,D1,D2,DG,DIC,DICR,DIW,XMDUN,XMZ
+2 SET STANUM=$$KSP^XUPARAM("INST")_","
+3 SET STANUM=$$GET1^DIQ(4,STANUM,99)
+4 SET MESS1="Station: "_STANUM_" - "
+5 SET XMDUZ=DUZ
+6 SET XMTEXT="^XTMP(""SDES942P"","
+7 SET XMSUB=MESS1_"SD*5.3*942 - Post Install Data Report"
+8 SET XMDUZ=.5
SET XMY(DUZ)=""
SET XMY(XMDUZ)=""
+9 SET XMY("BARBER.LORI@DOMAIN.EXT")=""
+10 SET XMY("DUNNAM.DAVID@DOMAIN.EXT")=""
+11 SET XMY("CRUZ.ORLANDO@DOMAIN.EXT")=""
+12 SET XMY("BUTLER.BRANDON@DOMAIN.EXT")=""
+13 DO ^XMD
+14 QUIT
+15 ;
IDENTIFYGHOST() ;
+1 NEW CLINICIEN,GHOST,CLINICIEN,CLINICNAME,COUNT,NONSTDDATE,INDEFDATE,STARTDATE,ORPHANDATE
+2 ;
+3 SET CLINICIEN=0
+4 FOR
SET CLINICIEN=$ORDER(^SC(CLINICIEN))
if 'CLINICIEN
QUIT
Begin DoDot:1
+5 IF $$INACTIVE^SDESUTIL(CLINICIEN)
QUIT
+6 ;
+7 SET STARTDATE=$$FMADD^XLFDT(DT,-$$GET1^DIQ(44,CLINICIEN,2002))
+8 ;
+9 DO INDEFOVERWRITES(.GHOST,CLINICIEN,STARTDATE)
+10 DO ORPHANEDOSTDAYS(.GHOST,CLINICIEN)
End DoDot:1
+11 ;
+12 ;
+13 KILL ^XTMP("SDES942P")
+14 SET COUNT=1
+15 SET ^XTMP("SDES942P",COUNT)="**********************************GHOST AVAILABILITY REPORT**********************************"
+16 SET COUNT=COUNT+1
+17 SET ^XTMP("SDES942P",COUNT)="CLINIC^ISSUE DESCRIPTION^DATE"
+18 ;
+19 SET CLINICIEN=0
+20 FOR
SET CLINICIEN=$ORDER(GHOST(CLINICIEN))
SET CLINICNAME=$$GET1^DIQ(44,CLINICIEN,.01)
if 'CLINICIEN
QUIT
Begin DoDot:1
+21 ;
+22 SET INDEFDATE=0
+23 FOR
SET INDEFDATE=$ORDER(GHOST(CLINICIEN,"INDEFINITE OVERWRITE",INDEFDATE))
if 'INDEFDATE
QUIT
Begin DoDot:2
+24 SET COUNT=COUNT+1
+25 SET ^XTMP("SDES942P",COUNT)=CLINICNAME_U
+26 SET ^XTMP("SDES942P",COUNT)=^XTMP("SDES942P",COUNT)_"Indefinite availablity is overlayed with Special availablity"_U_$$FMTISO^SDAMUTDT(INDEFDATE)
End DoDot:2
+27 ;
+28 SET ORPHANDATE=0
+29 FOR
SET ORPHANDATE=$ORDER(GHOST(CLINICIEN,"ORPHANED OST",ORPHANDATE))
if 'ORPHANDATE
QUIT
Begin DoDot:2
+30 SET COUNT=COUNT+1
+31 SET ^XTMP("SDES942P",COUNT)=CLINICNAME_U
+32 SET ^XTMP("SDES942P",COUNT)=^XTMP("SDES942P",COUNT)_"Unable to define precise time for special availability defined"_U_$$FMTISO^SDAMUTDT(ORPHANDATE)
End DoDot:2
End DoDot:1
+33 ;
+34 QUIT
+35 ;
INDEFOVERWRITES(GHOST,CLINICIEN,DATE) ;
+1 NEW TNODE,DONE
+2 ;
+3 FOR TNODE=0:1:6
IF $DATA(^SC(CLINICIEN,"T"_TNODE))
Begin DoDot:1
+4 ;
+5 SET DATE=0
SET DONE=0
+6 FOR
SET DATE=$ORDER(^SC(CLINICIEN,"T"_TNODE,DATE))
if 'DATE!(DONE)
QUIT
Begin DoDot:2
+7 ;
+8 IF $ORDER(^SC(CLINICIEN,"T"_TNODE,DATE))=9999999
IF $DATA(^SC(CLINICIEN,"OST",DATE))
Begin DoDot:3
+9 SET GHOST(CLINICIEN,"INDEFINITE OVERWRITE",DATE)=""
+10 SET DONE=1
End DoDot:3
End DoDot:2
End DoDot:1
+11 QUIT
+12 ;
ORPHANEDOSTDAYS(GHOST,CLINICIEN) ;
+1 NEW DATE
+2 ;
+3 SET DATE=$$FMADD^XLFDT(DT,-1)
+4 FOR
SET DATE=$ORDER(^SC(CLINICIEN,"OST",DATE))
if 'DATE
QUIT
Begin DoDot:1
+5 IF '$DATA(^SC(CLINICIEN,"T",DATE))
Begin DoDot:2
+6 SET GHOST(CLINICIEN,"ORPHANED OST",DATE)=""
End DoDot:2
End DoDot:1
+7 QUIT
+8 ;