VistA-WorldVistAEHR/r/SCHEDULING-SD-SC/SD53A204.m

84 lines
2.7 KiB
Mathematica

SD53A204 ;ALB/JAM;Part of post-install routine for patch 204;12/1/99@1105
;;5.3;Scheduling;**204**;DEC 01, 1999
;This post-install will check file 404.52 for invalid .03 field entries
;and save to a mail message.
;
POST ;Post-init
N XSCSTOP
S XSCSTOP=""
D PROGCHK(.XSCSTOP)
I XSCSTOP Q
D MES^XPDUTL(" ")
D MES^XPDUTL("This installation will generate an e-mail message with")
D MES^XPDUTL("a list of invalid PRACTITIONER pointers (field #.03)")
D MES^XPDUTL("from file POSITION ASSIGMENT HISTORY FILE (#404.52)")
D MES^XPDUTL($$Q(DUZ))
Q
;
PR40452 ;Process file 404.52 for invalid entries in field .03 and
;create message text for mail message
;
N XMY,XMDUZ,XMSUB,XMTEXT,FND
K ^TMP("PCMM PRACTITIONER",$J),^TMP("SCMSG",$J)
;get list of invalid .03 field entries from file 404.52
S FND=$$LST^SCMCCV5()
D MAIL
S XMDUZ=.5,XMY(XMDUZ)=""
I $G(SCDUZ) S XMY(SCDUZ)=""
S XMSUB="PCMM PRACTITIONER INCONSISTENCY REPORT"
S XMTEXT="^TMP(""SCMSG"",$J,"
D ^XMD
K ^TMP("PCMM PRACTITIONER",$J),^TMP("SCMSG",$J)
Q
;
MAIL ; Queue report as a MailMan Message.
N NUM,TXT,I,SCDAT,SCDT,SCTP,SCSTA,SCPRAC,CNT,BL,X,Y
S NUM=0,$P(BL," ",20)="",CNT=1
D SET("This message was automatically generated by PCMM patch SD*5.3*204")
D SET(" ")
D SET(" INVALID PRACTITIONER POINTERS IN FILE 404.52 REPORT")
D SET(" ")
D SET(" ")
I 'FND D SET("No inconsistencies found.") Q
D SET(" EFFECTIVE")
D SET("IEN # TEAM POSITION DATE PRACT. STATUS")
D SET("---------------------------------------------------------------")
F I=1:1 S NUM=$O(^TMP("PCMM PRACTITIONER",$J,NUM)) Q:'NUM D
. S SCDAT=$G(^SCTM(404.52,NUM,0)),Y=$P(SCDAT,U,2) X ^DD("DD") S SCDT=Y
. S X=$P(SCDAT,U),SCTP=$P($G(^SCTM(404.57,X,0)),U)
. S SCSTA=$S($P(SCDAT,U,4):"Active",1:"Inactive"),SCPRAC=$P(SCDAT,U,3)
. S TXT=$E(NUM_BL,1,7)_$E(SCTP_BL,1,21)_" "_$E(SCDT_BL,1,15)
. S TXT=TXT_" "_$E(SCPRAC_BL,1,9)_SCSTA
. D SET(TXT)
D SET(" ")
D SET("Total entries found = "_(I-1))
Q
;
SET(TXT) ;Build message array
S ^TMP("SCMSG",$J,CNT)=TXT
S CNT=CNT+1
Q
;
PROGCHK(XSCSTOP) ;checks for necessary programmer variables
;
I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
. D BMES^XPDUTL("*****")
. D MES^XPDUTL("Your programming variables are not set up properly.")
. D MES^XPDUTL("Installation aborted.")
. D MES^XPDUTL("*****")
. S XSCSTOP=1
Q
;
Q(SCDUZ) ; run job in background
; input = user duz
; output = task #, report via mailman
N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE
S ZTRTN="PR40452^SD53A204"
S ZTDESC="PCMM PRACTITIONER INCONSISTENCY REPORT"
S ZTDTH=$H
S ZTIO=""
S ZTSAVE("SCDUZ")=""
D ^%ZTLOAD
Q $S(+ZTSK:": Queued - Task# "_ZTSK,1:": Not Queued!")
;