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

SDES922P.m

Go to the documentation of this file.
SDES922P ;ALB/LAB/TAW/AGW - SD*5.3*922 Post Init Routine ; Oct 16, 2025
 ;;5.3;SCHEDULING;**922**;AUG 13, 1993;Build 7
  ;;Per VHA Directive 6402, this routine should not be modified
 ;;
 Q
 ;
EN ;
 N SDBUILD,SDRTN,SDTASKTAG,SDTASKCNT,SDTASKSUBJ,SDMAILSUBJ,SDMAILGLO,SDMAILLIST,SDTICKET
 S SDRTN="SDES922P"
 S SDBUILD="SD*5.3*922"
 S SDTASKCNT=1
 D TASK
 D VSE10892
 D VSE10930
 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*922 Post-Install to report on appointment created for 3/1/2026 through 3/8/2026 via EAS")
 D MES^XPDUTL("")
 N ZTDESC,ZTRTN,ZTIO,ZTSK,X,ZTDTH,ZTSAVE
 S ZTDESC="SD*5.3*922 Post Install Routine Task 1"
 D NOW^%DTC
 S ZTDTH=X,ZTIO="",ZTRTN="VSE10962^SDES922P",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
 ;
VSE10962 ;report of appointments booked for 3/1/2026 and after and were booked before 3/10/2025 and has EAS number
 K ^XTMP("SDES922P")
 S ^XTMP("SDES922P",0)=$$FMADD^XLFDT(DT,30)_"^"_DT_"^SD*5.3*922"
 D ACTIVAPT
 D MAIL
 K ^XTMP("SDES922P")
 Q
 ;
ACTIVAPT ;
 N APPTDT,RECCNT,APPTIEN,WHOMADE,WHOMADENM,CLINIC,CLINICTXT,WHENMADE,WHENMADETXT,APPTDTTX,NODENUM,RESOURCE,STATUS,APPTST,EAS
 S APPTST=3260301
 S RECCNT=0
 S ^XTMP("SDES922P",1)="CLINIC NAME;APPOINTMENT DATE/TIME;APPOINTMENT MADE DATE/TIME;WHO MADE"
 S NODENUM=1
 S APPTDT=APPTST-.0001
 F  S APPTDT=$O(^SDEC(409.84,"B",APPTDT)) Q:('APPTDT)!(APPTDT>=3260309)  D
 . S APPTDTTX=$P($$FMTISO^SDAMUTDT(APPTDT),"-",1,3)
 . S APPTIEN=0 F  S APPTIEN=$O(^SDEC(409.84,"B",APPTDT,APPTIEN)) Q:'APPTIEN  D
 .. S EAS=$$GET1^DIQ(409.84,APPTIEN,100)
 .. Q:$G(EAS)=""
 .. S RESOURCE=$$GET1^DIQ(409.84,APPTIEN,.07,"I")
 .. S CLINIC=$$GET1^DIQ(409.831,RESOURCE,.04,"I")
 .. S CLINICTXT=$$GET1^DIQ(44,CLINIC,.01,"I")
 .. S STATUS=$$GET1^DIQ(409.84,APPTIEN,.17,"I")
 .. I STATUS'="" I ",C,CA,PC,PCA,"[STATUS Q
 .. S WHOMADE=$$GET1^DIQ(409.84,APPTIEN,.08,"I")
 .. S WHOMADENM="UNKNOWN"
 .. I WHOMADE'="" S WHOMADENM=$$GET1^DIQ(200,WHOMADE,.01,"I")
 .. S WHENMADE=$$GET1^DIQ(409.84,APPTIEN,.09,"I")
 .. I WHENMADE>3250312 Q
 .. S WHENMADETXT="UNKNOWN"
 .. I WHENMADE'="" S WHENMADETXT=$P($$FMTISO^SDAMUTDT(WHENMADE,CLINIC),"-",1,3)
 .. S RECCNT=RECCNT+1,NODENUM=NODENUM+1
 .. S ^XTMP("SDES922P",NODENUM)=CLINICTXT_";"_APPTDTTX_";"_WHENMADETXT_";"_WHOMADENM
 S NODENUM=NODENUM+1
 S ^XTMP("SDES922P",NODENUM)="TOTAL NUMBER RECORDS IMPACTED: "_RECCNT
 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(""SDES922P"","
 S XMSUB=MESS1_"SD*5.3*922 - 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")=""
 D ^XMD
 Q
  ;
 ;=====================================================
 ;
VSE10892 ;
 S SDTASKTAG="VSE10892TASK"
 ; 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
VSE10892TASK ; Entry point for TASK
 D VSE10892WORK
 Q
VSE10892WORK ;
 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)
 ..;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
 ;
VSE10930 ;
 S SDTASKTAG="VSE10930TASK"
 ; 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 remove control characters from the cancel remark in the"
 S SDTASKSUBJ(2)="file HOSPITAL LOCATION (44)"
 D TASK2(.SDTASKSUBJ,.SDTASKCNT,SDTASKTAG,SDRTN,SDBUILD)
 Q
VSE10930TASK ; Entry point for TASK
 D VSE10930WORK
 Q
 ;
VSE10930WORK ;
 N CLINICIEN,CANCELDATE,CANCELREMARK,CANCELREMARK1,FULLDAYCANCELFDA,ADDAPPTNODEFDA,FULLDAYCANCELIEN
 S RECCNT=0
 S CLINICIEN=0,CANCELREMARK=""
 F  S CLINICIEN=$O(^SC(CLINICIEN)) Q:(CLINICIEN="")!(CLINICIEN]"A")  D
 .S CANCELDATE=0 F  S CANCELDATE=$O(^SC(CLINICIEN,"FULL DAY CANCEL",CANCELDATE)) Q:(CANCELDATE]9999999)!(CANCELDATE="")  D
 ..S CANCELREMARK=$G(^SC(CLINICIEN,"FULL DAY CANCEL",CANCELDATE,1))
 ..Q:CANCELREMARK=""
 ..S CANCELREMARK1=$$CTRL^XMXUTIL1(CANCELREMARK)
 ..Q:(CANCELREMARK=CANCELREMARK1)
 ..S FULLDAYCANCELFDA(44.1902,CANCELDATE_","_CLINICIEN_",",.02)=CANCELREMARK1
 ..S FULLDAYCANCELIEN(1)=CANCELDATE
 ..D UPDATE^DIE(,"FULLDAYCANCELFDA","FULLDAYCANCELIEN") K FULLDAYCANCELFDA
 ..Q
 .S CANCELDATE=0 F  S CANCELDATE=$O(^SC(CLINICIEN,"SDCAN",CANCELDATE)) Q:(CANCELDATE]9999999)!(CANCELDATE="")  D
 ..S CANCELREMARK=$$GET1^DIQ(44.001,CANCELDATE_","_CLINICIEN_",",1400,"I")
 ..Q:CANCELREMARK=""
 ..S CANCELREMARK1=$$CTRL^XMXUTIL1(CANCELREMARK)
 ..Q:(CANCELREMARK=CANCELREMARK1)
 ..S ADDAPPTNODEFDA(44.001,CANCELDATE_","_CLINICIEN_",",1400)=CANCELREMARK1
 ..D UPDATE^DIE("","ADDAPPTNODEFDA") K ADDAPPTNODEFDA
 ..Q
 .Q
 Q
 ;
 ;=====================================================
 ; The TASK and MAIL tags are  standard code that should not need to be changed
 ;=====================================================
 ;
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_$J_$C(34)_","_$C(34)_SDTICKET_$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
 ;