SD53P495 ;ALB/RBS - ENV/POST-INSTALL FOR PATCH SD*5.3*495 ; 5/2/07 12:24pm
;;5.3;Scheduling;**495,1015**;Aug 13, 1993;Build 21
Q
ENV ;Environment check
S XPDABORT=""
;checks programmer variables
D PROGCHK(.XPDABORT)
;check if install is running
D ISRUNING(.XPDABORT)
I XPDABORT="" K XPDABORT
Q
POST ;Post-Install
D POST1
;Check for SCOUT file
I '$D(^ANUSB(626140)) D Q
. D NOFILE
D TASK
Q
POST1 ;Set parameter value
N SDDAYS,SDERR,SDPARM
S SDPARM="SDSC SITE PARAMETER",SDDAYS=30
D EN^XPAR("DIV",SDPARM,1,SDDAYS,.SDERR)
D BMES^XPDUTL("******")
I '$G(SDERR) D
. D MES^XPDUTL(SDPARM_" parameter set to "_SDDAYS_" days SUCCESSFULLY.")
E D
. D MES^XPDUTL(SDPARM_" parameter set FAILED.")
D MES^XPDUTL("******")
Q
START ;Background job entry point
N SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE
N SDTOT,SDTOT1,SDTOT2,SDTOT3,SDENCPTR,SDCKCNT,SDSTOP,SDENT,SDFIL,DFN
D XTMP
;seed var's if Re-Run
I $D(^XTMP("SD53P495","TOT")) D
. S SDTOT=+$G(^XTMP("SD53P495","TOT"))
. S SDTOT1=+$G(^XTMP("SD53P495","TOT1"))
. S SDTOT2=+$G(^XTMP("SD53P495","TOT2"))
. S SDTOT3=+$G(^XTMP("SD53P495","TOT3"))
. S (SDSAVE,SDENCPTR)=+$G(^XTMP("SD53P495","ENCOUNTER"))
E D
. S (SDAIEN,SDENCPTR,SDSAVE,SDTOT,SDTOT1,SDTOT2,SDTOT3)=0
S SDCKCNT=100,SDSTOP=0
F S SDENCPTR=$O(^ANUSB(626140,"B",SDENCPTR)) Q:'SDENCPTR D Q:SDSTOP
. S SDSAVE=SDENCPTR
. K SDANUSB,SDARAY,SDERAY,SDENT
. I +SDTOT#SDCKCNT=0,$$S^%ZTLOAD() S SDSTOP=1 Q
. S SDAIEN=$O(^ANUSB(626140,"B",SDENCPTR,""),-1)
. Q:'$G(SDAIEN)
. S SDANUSB=$G(^ANUSB(626140,SDAIEN,0))
. Q:'SDANUSB
. S SDTOT=SDTOT+1
. I $D(^SDSC(409.48,SDENCPTR,0)) S SDTOT3=SDTOT3+1 Q
. I '$$GETOE^SDOE(SDENCPTR) D Q
. . S DFN=$P(SDANUSB,U,11) D DEM^VADPT S DFN=$E(VADM(1),1,15)
. . S SDENT=DFN_" "_$$FMTE^XLFDT($P(SDANUSB,U,7),2)
. . D UPXTMP(SDENCPTR,"NO (O/P) ENCOUNTER RECORD (#409.68)",SDENT) S SDTOT2=SDTOT2+1
. D GETS^DIQ(626140,SDAIEN_",","**","I","SDARAY","SDERAY")
. I $D(SDERAY) D Q
. . S SDENT=$G(SDERAY("DIERR",1,"TEXT",1))
. . D UPXTMP(SDENCPTR,"NO (SCOUT) FILE DATA (#626140)",SDENT) S SDTOT2=SDTOT2+1
. S SDFIL=$$FILE(SDENCPTR,SDAIEN,.SDARAY)
. I '+SDFIL D Q
. . D UPXTMP(SDENCPTR,"FILING ERROR TO (#409.48)",$P(SDFIL,"^",2)) S SDTOT2=SDTOT2+1
. E D
. . S SDTOT1=SDTOT1+1
I SDSTOP D
. S ^XTMP("SD53P495","STOPPED")=$$NOW^XLFDT()
. S ZTSTOP=1
E D
. S ^XTMP("SD53P495","COMPLETED")=$$NOW^XLFDT()
S ^XTMP("SD53P495","ENCOUNTER")=SDSAVE
S ^XTMP("SD53P495","TOT")=SDTOT,^XTMP("SD53P495","TOT1")=SDTOT1
S ^XTMP("SD53P495","TOT2")=SDTOT2,^XTMP("SD53P495","TOT3")=SDTOT3
K ^XTMP("SD53P495","RUNNING") D KVA^VADPT
D SENDMSG(SDSTOP)
Q
FILE(SDENCPTR,SDAIEN,SDARAY) ;file new entry
; create #409.48 file
; Input:
; SDENCPTR - [required] O/P Encounter file pointer (#409.68)
; SDAIEN - [required] IEN of (#626140) record to convert
; SDARAY - [required] Array of Internal values of all fields
; Output:
; Function Value - returns 1 on success, 0 on failure and error msg
I '+$G(SDENCPTR)!'+$G(SDAIEN)!('$D(SDARAY)) Q 0
N SDERR,SDFDA,SDFLD,SDFDAIEN,SDI,SDIENS,SDNUM,SDSTR,SDSTR1,SDSUB
N DIC,DICR,DIE,DIERR,DD,DG,DO,DR,DA
; DINUM=X setup so new file IEN = O/P Encounter IEN
S SDFDAIEN(1)=SDENCPTR
; setup main fields
S SDIENS="+1,",SDAIEN=SDAIEN_","
S SDSTR=".01^.02^.03^.04^.05^.06^.07^.08^.09^.1^.11^.12"
F SDI=1:1:12 D
. S SDFLD=$P(SDSTR,U,SDI)
. S SDFDA(409.48,SDIENS,SDFLD)=$G(SDARAY(626140,SDAIEN,SDFLD,"I"))
S SDFDA(409.48,SDIENS,.13)=1 ;SCOUT was always a 1 (SC)
; setup fields of (#409.481) multiple
I $D(SDARAY(626140.01)) D
. S SDSTR1=".01^.02^.03^.04^.05^.06",SDNUM=1,(SDSUB,SDIENS)=""
. F S SDSUB=$O(SDARAY(626140.01,SDSUB)) Q:SDSUB="" D
. . S SDNUM=SDNUM+1
. . F SDI=1:1:6 S SDFLD=$P(SDSTR1,U,SDI) D
. . . S SDIENS="+"_SDNUM_",+1,"
. . . S SDFDA(409.481,SDIENS,SDFLD)=$G(SDARAY(626140.01,SDSUB,SDFLD,"I"))
D UPDATE^DIE("","SDFDA","SDFDAIEN","SDERR")
Q $S($D(SDERR):0,1:1)_"^"_$S($D(SDERR):$G(SDERR("DIERR",1,"TEXT",1)),1:"")
SENDMSG(SDSTOP) ;send MailMan msg to patch installer
N DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
K ^TMP("SD53P495",$J)
S XMSUB="SD*5.3*495 (SCOUT) FILE CONVERSION REPORT"
S XMTEXT="^TMP(""SD53P495"",$J,",XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))=""
S SDLN=0
D ADD(.SDLN,"Patch: SD*5.3*495 Automated Service Connected Designation")
D ADD(.SDLN," "),ADD(.SDLN,"************")
D ADD(.SDLN,"The existing Class III (SCOUT) file, ANU SERVICE CONNECTED CHANGES (#626140),")
D ADD(.SDLN,"which contains O/P Encounter records that have been compiled for additional")
D ADD(.SDLN,"Service Connected (SC) review, has been used to create a new Class I file")
D ADD(.SDLN,"which will provide the same functionality.")
D ADD(.SDLN," ")
D ADD(.SDLN,"Only valid O/P Encounter records from the Class III (SCOUT) file,")
D ADD(.SDLN,"ANU SERVICE CONNECTED CHANGES (#626140), have been filed into")
D ADD(.SDLN,"the new SDSC SERVICE CONNECTED CHANGES (#409.48) file.")
D ADD(.SDLN," ")
D ADD(.SDLN,"The new Automated Service Connected Designation (ASCD) Menu Options")
D ADD(.SDLN,"enable user access to the O/P Encounter records in the (#409.48) file.")
D ADD(.SDLN,"************"),ADD(.SDLN," "),ADD(.SDLN," ")
D ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:")
D ADD(.SDLN,"==============================")
D ADD(.SDLN," ")
D ADD(.SDLN,"<<< The Class III (SCOUT) File Conversion has "_$S(+$G(SDSTOP):"NOT ",1:"")_"Completed. >>>")
I +$G(SDSTOP) D
. D ADD(.SDLN," Please restart the post-install process from the following")
. D ADD(.SDLN," programmer's prompt:")
. D ADD(.SDLN," D POST^SD53P495")
D ADD(.SDLN," "),ADD(.SDLN," ")
D ADD(.SDLN," DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","START")),"P"))
I $G(SDSTOP) D
. D ADD(.SDLN," DATE/TIME TASK STOPPED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","STOPPED")),"P"))
E D
. D ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","COMPLETED")),"P"))
I $D(^XTMP("SD53P495","LAST RUN")) D
. D ADD(.SDLN," DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","LAST RUN")),"P"))
D ADD(.SDLN," "),ADD(.SDLN," ")
D ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS FOUND: "_+$G(^XTMP("SD53P495","TOT")))
I +$G(^XTMP("SD53P495","TOT3")) D
. D ADD(.SDLN," TOTAL RECORDS PREVIOUSLY CONVERTED: "_+$G(^XTMP("SD53P495","TOT3")))
D ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS CONVERTED: "_+$G(^XTMP("SD53P495","TOT1")))
D ADD(.SDLN,"TOTAL O/P ENCOUNTER RECORDS NOT CONVERTED: "_+$G(^XTMP("SD53P495","TOT2")))
I +$G(^XTMP("SD53P495","TOT2")) D
. D ADD(.SDLN," :")
. N SDSUB,SDIEN,SDENT
. S (SDSUB,SDIEN)=""
. F S SDSUB=$O(^XTMP("SD53P495","TOT2",SDSUB)) Q:SDSUB="" D
. . D ADD(.SDLN," REASON NOT CONVERTED: "_SDSUB)
. . D ADD(.SDLN," O/P ENCOUNTER IEN:")
. . F S SDIEN=$O(^XTMP("SD53P495","TOT2",SDSUB,SDIEN)) Q:'SDIEN D
. . . S SDENT=$E(^XTMP("SD53P495","TOT2",SDSUB,SDIEN),1,30)
. . . D ADD(.SDLN," : "_SDIEN_"-"_SDENT)
. . D ADD(.SDLN," :")
D ADD(.SDLN," <END OF REPORT> :")
D ^XMD
K ^TMP("SD53P495",$J)
Q
ADD(SDLN,SDTXT) ;add line
Q:$L(SDTXT)'>0
S SDLN=$G(SDLN)+1
S ^TMP("SD53P495",$J,SDLN)=SDTXT
Q
PROGCHK(XPDABORT) ;checks 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 XPDABORT=2
Q
ISRUNING(XPDABORT) ;check if running
I +$G(^XTMP("SD53P495","RUNNING")) D
. D BMES^XPDUTL("******")
. D MES^XPDUTL("This patch is currently being Installed. Try later.")
. D MES^XPDUTL("Installation aborted...")
. D MES^XPDUTL("******")
. S XPDABORT=2
Q
NOFILE ;no File
D BMES^XPDUTL("******")
D MES^XPDUTL("The Class III (SCOUT) File Conversion is NOT necessary because")
D MES^XPDUTL("the ANU SERVICE CONNECTED CHANGES (#626140) file does not exist")
D MES^XPDUTL("on this system.")
D MES^XPDUTL("Post-Install process terminated...")
D MES^XPDUTL("******")
Q
TASK ;run TaskMan
N ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP
S SDSTOP=+$G(^XTMP("SD53P495","STOPPED"))
S ZTRTN="START^SD53P495"
S ZTDESC="SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
S ZTIO="",ZTDTH=$H,ZTREQ="@",ZTSAVE("ZTREQ")=""
D ^%ZTLOAD
D BMES^XPDUTL("******")
I '$D(ZTSK) D
. D MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (SCOUT) File")
. D MES^XPDUTL("Conversion.")
. D BMES^XPDUTL("Please re-run Post-Install routine POST^SD53P495 from")
. D MES^XPDUTL("the programmer prompt.")
. ;
E D
. D MES^XPDUTL("Task "_ZTSK_" has been "_$S(+SDSTOP:"Re-",1:"")_"started to run the Class III (SCOUT) File")
. D MES^XPDUTL("Conversion.")
. I SDSTOP D
. . D MES^XPDUTL(" <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>")
. D BMES^XPDUTL("You will receive a MailMan message when this task is completed")
. D MES^XPDUTL("or if it has been manually stopped.")
D MES^XPDUTL("******")
Q
XTMP ;setup ^XTMP to control output for 90 days
I $D(^XTMP("SD53P495",0)) D
. S ^XTMP("SD53P495","LAST RUN")=$G(^XTMP("SD53P495","START"))
E D
. N SDX
. S SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT()
. S SDX=SDX_"^SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
. S ^XTMP("SD53P495",0)=SDX
S ^XTMP("SD53P495","START")=$$NOW^XLFDT()
S ^XTMP("SD53P495","RUNNING")="1"
Q
UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP
; Input:
; SDENCPTR - Encounter IEN
; NODE - Unique subscript
; Output: none
Q:'$G(SDENCPTR)
I $G(NODE)="" S NODE="UNKNOWN"
S ^XTMP("SD53P495","TOT2",NODE,SDENCPTR)=$G(SDENT)
Q
SD53P495 ;ALB/RBS - ENV/POST-INSTALL FOR PATCH SD*5.3*495 ; 5/2/07 12:24pm
+1 ;;5.3;Scheduling;**495,1015**;Aug 13, 1993;Build 21
+2 QUIT
ENV ;Environment check
+1 SET XPDABORT=""
+2 ;checks programmer variables
+3 DO PROGCHK(.XPDABORT)
+4 ;check if install is running
+5 DO ISRUNING(.XPDABORT)
+6 IF XPDABORT=""
KILL XPDABORT
+7 QUIT
POST ;Post-Install
+1 DO POST1
+2 ;Check for SCOUT file
+3 IF '$DATA(^ANUSB(626140))
Begin DoDot:1
+4 DO NOFILE
End DoDot:1
QUIT
+5 DO TASK
+6 QUIT
POST1 ;Set parameter value
+1 NEW SDDAYS,SDERR,SDPARM
+2 SET SDPARM="SDSC SITE PARAMETER"
SET SDDAYS=30
+3 DO EN^XPAR("DIV",SDPARM,1,SDDAYS,.SDERR)
+4 DO BMES^XPDUTL("******")
+5 IF '$GET(SDERR)
Begin DoDot:1
+6 DO MES^XPDUTL(SDPARM_" parameter set to "_SDDAYS_" days SUCCESSFULLY.")
End DoDot:1
+7 IF '$TEST
Begin DoDot:1
+8 DO MES^XPDUTL(SDPARM_" parameter set FAILED.")
End DoDot:1
+9 DO MES^XPDUTL("******")
+10 QUIT
START ;Background job entry point
+1 NEW SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE
+2 NEW SDTOT,SDTOT1,SDTOT2,SDTOT3,SDENCPTR,SDCKCNT,SDSTOP,SDENT,SDFIL,DFN
+3 DO XTMP
+4 ;seed var's if Re-Run
+5 IF $DATA(^XTMP("SD53P495","TOT"))
Begin DoDot:1
+6 SET SDTOT=+$GET(^XTMP("SD53P495","TOT"))
+7 SET SDTOT1=+$GET(^XTMP("SD53P495","TOT1"))
+8 SET SDTOT2=+$GET(^XTMP("SD53P495","TOT2"))
+9 SET SDTOT3=+$GET(^XTMP("SD53P495","TOT3"))
+10 SET (SDSAVE,SDENCPTR)=+$GET(^XTMP("SD53P495","ENCOUNTER"))
End DoDot:1
+11 IF '$TEST
Begin DoDot:1
+12 SET (SDAIEN,SDENCPTR,SDSAVE,SDTOT,SDTOT1,SDTOT2,SDTOT3)=0
End DoDot:1
+13 SET SDCKCNT=100
SET SDSTOP=0
+14 FOR
SET SDENCPTR=$ORDER(^ANUSB(626140,"B",SDENCPTR))
IF 'SDENCPTR
QUIT
Begin DoDot:1
+15 SET SDSAVE=SDENCPTR
+16 KILL SDANUSB,SDARAY,SDERAY,SDENT
+17 IF +SDTOT#SDCKCNT=0
IF $$S^%ZTLOAD()
SET SDSTOP=1
QUIT
+18 SET SDAIEN=$ORDER(^ANUSB(626140,"B",SDENCPTR,""),-1)
+19 IF '$GET(SDAIEN)
QUIT
+20 SET SDANUSB=$GET(^ANUSB(626140,SDAIEN,0))
+21 IF 'SDANUSB
QUIT
+22 SET SDTOT=SDTOT+1
+23 IF $DATA(^SDSC(409.48,SDENCPTR,0))
SET SDTOT3=SDTOT3+1
QUIT
+24 IF '$$GETOE^SDOE(SDENCPTR)
Begin DoDot:2
+25 SET DFN=$PIECE(SDANUSB,U,11)
DO DEM^VADPT
SET DFN=$EXTRACT(VADM(1),1,15)
+26 SET SDENT=DFN_" "_$$FMTE^XLFDT($PIECE(SDANUSB,U,7),2)
+27 DO UPXTMP(SDENCPTR,"NO (O/P) ENCOUNTER RECORD (#409.68)",SDENT)
SET SDTOT2=SDTOT2+1
End DoDot:2
QUIT
+28 DO GETS^DIQ(626140,SDAIEN_",","**","I","SDARAY","SDERAY")
+29 IF $DATA(SDERAY)
Begin DoDot:2
+30 SET SDENT=$GET(SDERAY("DIERR",1,"TEXT",1))
+31 DO UPXTMP(SDENCPTR,"NO (SCOUT) FILE DATA (#626140)",SDENT)
SET SDTOT2=SDTOT2+1
End DoDot:2
QUIT
+32 SET SDFIL=$$FILE(SDENCPTR,SDAIEN,.SDARAY)
+33 IF '+SDFIL
Begin DoDot:2
+34 DO UPXTMP(SDENCPTR,"FILING ERROR TO (#409.48)",$PIECE(SDFIL,"^",2))
SET SDTOT2=SDTOT2+1
End DoDot:2
QUIT
+35 IF '$TEST
Begin DoDot:2
+36 SET SDTOT1=SDTOT1+1
End DoDot:2
End DoDot:1
IF SDSTOP
QUIT
+37 IF SDSTOP
Begin DoDot:1
+38 SET ^XTMP("SD53P495","STOPPED")=$$NOW^XLFDT()
+39 SET ZTSTOP=1
End DoDot:1
+40 IF '$TEST
Begin DoDot:1
+41 SET ^XTMP("SD53P495","COMPLETED")=$$NOW^XLFDT()
End DoDot:1
+42 SET ^XTMP("SD53P495","ENCOUNTER")=SDSAVE
+43 SET ^XTMP("SD53P495","TOT")=SDTOT
SET ^XTMP("SD53P495","TOT1")=SDTOT1
+44 SET ^XTMP("SD53P495","TOT2")=SDTOT2
SET ^XTMP("SD53P495","TOT3")=SDTOT3
+45 KILL ^XTMP("SD53P495","RUNNING")
DO KVA^VADPT
+46 DO SENDMSG(SDSTOP)
+47 QUIT
FILE(SDENCPTR,SDAIEN,SDARAY) ;file new entry
+1 ; create #409.48 file
+2 ; Input:
+3 ; SDENCPTR - [required] O/P Encounter file pointer (#409.68)
+4 ; SDAIEN - [required] IEN of (#626140) record to convert
+5 ; SDARAY - [required] Array of Internal values of all fields
+6 ; Output:
+7 ; Function Value - returns 1 on success, 0 on failure and error msg
+8 IF '+$GET(SDENCPTR)!'+$GET(SDAIEN)!('$DATA(SDARAY))
QUIT 0
+9 NEW SDERR,SDFDA,SDFLD,SDFDAIEN,SDI,SDIENS,SDNUM,SDSTR,SDSTR1,SDSUB
+10 NEW DIC,DICR,DIE,DIERR,DD,DG,DO,DR,DA
+11 ; DINUM=X setup so new file IEN = O/P Encounter IEN
+12 SET SDFDAIEN(1)=SDENCPTR
+13 ; setup main fields
+14 SET SDIENS="+1,"
SET SDAIEN=SDAIEN_","
+15 SET SDSTR=".01^.02^.03^.04^.05^.06^.07^.08^.09^.1^.11^.12"
+16 FOR SDI=1:1:12
Begin DoDot:1
+17 SET SDFLD=$PIECE(SDSTR,U,SDI)
+18 SET SDFDA(409.48,SDIENS,SDFLD)=$GET(SDARAY(626140,SDAIEN,SDFLD,"I"))
End DoDot:1
+19 ;SCOUT was always a 1 (SC)
SET SDFDA(409.48,SDIENS,.13)=1
+20 ; setup fields of (#409.481) multiple
+21 IF $DATA(SDARAY(626140.01))
Begin DoDot:1
+22 SET SDSTR1=".01^.02^.03^.04^.05^.06"
SET SDNUM=1
SET (SDSUB,SDIENS)=""
+23 FOR
SET SDSUB=$ORDER(SDARAY(626140.01,SDSUB))
IF SDSUB=""
QUIT
Begin DoDot:2
+24 SET SDNUM=SDNUM+1
+25 FOR SDI=1:1:6
SET SDFLD=$PIECE(SDSTR1,U,SDI)
Begin DoDot:3
+26 SET SDIENS="+"_SDNUM_",+1,"
+27 SET SDFDA(409.481,SDIENS,SDFLD)=$GET(SDARAY(626140.01,SDSUB,SDFLD,"I"))
End DoDot:3
End DoDot:2
End DoDot:1
+28 DO UPDATE^DIE("","SDFDA","SDFDAIEN","SDERR")
+29 QUIT $SELECT($DATA(SDERR):0,1:1)_"^"_$SELECT($DATA(SDERR):$GET(SDERR("DIERR",1,"TEXT",1)),1:"")
SENDMSG(SDSTOP) ;send MailMan msg to patch installer
+1 NEW DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
+2 KILL ^TMP("SD53P495",$JOB)
+3 SET XMSUB="SD*5.3*495 (SCOUT) FILE CONVERSION REPORT"
+4 SET XMTEXT="^TMP(""SD53P495"",$J,"
SET XMDUZ=.5
SET (XMY(DUZ),XMY(XMDUZ))=""
+5 SET SDLN=0
+6 DO ADD(.SDLN,"Patch: SD*5.3*495 Automated Service Connected Designation")
+7 DO ADD(.SDLN," ")
DO ADD(.SDLN,"************")
+8 DO ADD(.SDLN,"The existing Class III (SCOUT) file, ANU SERVICE CONNECTED CHANGES (#626140),")
+9 DO ADD(.SDLN,"which contains O/P Encounter records that have been compiled for additional")
+10 DO ADD(.SDLN,"Service Connected (SC) review, has been used to create a new Class I file")
+11 DO ADD(.SDLN,"which will provide the same functionality.")
+12 DO ADD(.SDLN," ")
+13 DO ADD(.SDLN,"Only valid O/P Encounter records from the Class III (SCOUT) file,")
+14 DO ADD(.SDLN,"ANU SERVICE CONNECTED CHANGES (#626140), have been filed into")
+15 DO ADD(.SDLN,"the new SDSC SERVICE CONNECTED CHANGES (#409.48) file.")
+16 DO ADD(.SDLN," ")
+17 DO ADD(.SDLN,"The new Automated Service Connected Designation (ASCD) Menu Options")
+18 DO ADD(.SDLN,"enable user access to the O/P Encounter records in the (#409.48) file.")
+19 DO ADD(.SDLN,"************")
DO ADD(.SDLN," ")
DO ADD(.SDLN," ")
+20 DO ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:")
+21 DO ADD(.SDLN,"==============================")
+22 DO ADD(.SDLN," ")
+23 DO ADD(.SDLN,"<<< The Class III (SCOUT) File Conversion has "_$SELECT(+$GET(SDSTOP):"NOT ",1:"")_"Completed. >>>")
+24 IF +$GET(SDSTOP)
Begin DoDot:1
+25 DO ADD(.SDLN," Please restart the post-install process from the following")
+26 DO ADD(.SDLN," programmer's prompt:")
+27 DO ADD(.SDLN," D POST^SD53P495")
End DoDot:1
+28 DO ADD(.SDLN," ")
DO ADD(.SDLN," ")
+29 DO ADD(.SDLN," DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$GET(^XTMP("SD53P495","START")),"P"))
+30 IF $GET(SDSTOP)
Begin DoDot:1
+31 DO ADD(.SDLN," DATE/TIME TASK STOPPED: "_$$FMTE^XLFDT(+$GET(^XTMP("SD53P495","STOPPED")),"P"))
End DoDot:1
+32 IF '$TEST
Begin DoDot:1
+33 DO ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$GET(^XTMP("SD53P495","COMPLETED")),"P"))
End DoDot:1
+34 IF $DATA(^XTMP("SD53P495","LAST RUN"))
Begin DoDot:1
+35 DO ADD(.SDLN," DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$GET(^XTMP("SD53P495","LAST RUN")),"P"))
End DoDot:1
+36 DO ADD(.SDLN," ")
DO ADD(.SDLN," ")
+37 DO ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS FOUND: "_+$GET(^XTMP("SD53P495","TOT")))
+38 IF +$GET(^XTMP("SD53P495","TOT3"))
Begin DoDot:1
+39 DO ADD(.SDLN," TOTAL RECORDS PREVIOUSLY CONVERTED: "_+$GET(^XTMP("SD53P495","TOT3")))
End DoDot:1
+40 DO ADD(.SDLN," TOTAL O/P ENCOUNTER RECORDS CONVERTED: "_+$GET(^XTMP("SD53P495","TOT1")))
+41 DO ADD(.SDLN,"TOTAL O/P ENCOUNTER RECORDS NOT CONVERTED: "_+$GET(^XTMP("SD53P495","TOT2")))
+42 IF +$GET(^XTMP("SD53P495","TOT2"))
Begin DoDot:1
+43 DO ADD(.SDLN," :")
+44 NEW SDSUB,SDIEN,SDENT
+45 SET (SDSUB,SDIEN)=""
+46 FOR
SET SDSUB=$ORDER(^XTMP("SD53P495","TOT2",SDSUB))
IF SDSUB=""
QUIT
Begin DoDot:2
+47 DO ADD(.SDLN," REASON NOT CONVERTED: "_SDSUB)
+48 DO ADD(.SDLN," O/P ENCOUNTER IEN:")
+49 FOR
SET SDIEN=$ORDER(^XTMP("SD53P495","TOT2",SDSUB,SDIEN))
IF 'SDIEN
QUIT
Begin DoDot:3
+50 SET SDENT=$EXTRACT(^XTMP("SD53P495","TOT2",SDSUB,SDIEN),1,30)
+51 DO ADD(.SDLN," : "_SDIEN_"-"_SDENT)
End DoDot:3
+52 DO ADD(.SDLN," :")
End DoDot:2
End DoDot:1
+53 DO ADD(.SDLN," <END OF REPORT> :")
+54 DO ^XMD
+55 KILL ^TMP("SD53P495",$JOB)
+56 QUIT
ADD(SDLN,SDTXT) ;add line
+1 IF $LENGTH(SDTXT)'>0
QUIT
+2 SET SDLN=$GET(SDLN)+1
+3 SET ^TMP("SD53P495",$JOB,SDLN)=SDTXT
+4 QUIT
PROGCHK(XPDABORT) ;checks programmer variables
+1 IF '$GET(DUZ)!($GET(DUZ(0))'="@")!('$GET(DT))!($GET(U)'="^")
Begin DoDot:1
+2 DO BMES^XPDUTL("******")
+3 DO MES^XPDUTL("Your programming variables are not set up properly.")
+4 DO MES^XPDUTL("Installation aborted.")
+5 DO MES^XPDUTL("******")
+6 SET XPDABORT=2
End DoDot:1
+7 QUIT
ISRUNING(XPDABORT) ;check if running
+1 IF +$GET(^XTMP("SD53P495","RUNNING"))
Begin DoDot:1
+2 DO BMES^XPDUTL("******")
+3 DO MES^XPDUTL("This patch is currently being Installed. Try later.")
+4 DO MES^XPDUTL("Installation aborted...")
+5 DO MES^XPDUTL("******")
+6 SET XPDABORT=2
End DoDot:1
+7 QUIT
NOFILE ;no File
+1 DO BMES^XPDUTL("******")
+2 DO MES^XPDUTL("The Class III (SCOUT) File Conversion is NOT necessary because")
+3 DO MES^XPDUTL("the ANU SERVICE CONNECTED CHANGES (#626140) file does not exist")
+4 DO MES^XPDUTL("on this system.")
+5 DO MES^XPDUTL("Post-Install process terminated...")
+6 DO MES^XPDUTL("******")
+7 QUIT
TASK ;run TaskMan
+1 NEW ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP
+2 SET SDSTOP=+$GET(^XTMP("SD53P495","STOPPED"))
+3 SET ZTRTN="START^SD53P495"
+4 SET ZTDESC="SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
+5 SET ZTIO=""
SET ZTDTH=$HOROLOG
SET ZTREQ="@"
SET ZTSAVE("ZTREQ")=""
+6 DO ^%ZTLOAD
+7 DO BMES^XPDUTL("******")
+8 IF '$DATA(ZTSK)
Begin DoDot:1
+9 DO MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (SCOUT) File")
+10 DO MES^XPDUTL("Conversion.")
+11 DO BMES^XPDUTL("Please re-run Post-Install routine POST^SD53P495 from")
+12 DO MES^XPDUTL("the programmer prompt.")
+13 ;
End DoDot:1
+14 IF '$TEST
Begin DoDot:1
+15 DO MES^XPDUTL("Task "_ZTSK_" has been "_$SELECT(+SDSTOP:"Re-",1:"")_"started to run the Class III (SCOUT) File")
+16 DO MES^XPDUTL("Conversion.")
+17 IF SDSTOP
Begin DoDot:2
+18 DO MES^XPDUTL(" <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>")
End DoDot:2
+19 DO BMES^XPDUTL("You will receive a MailMan message when this task is completed")
+20 DO MES^XPDUTL("or if it has been manually stopped.")
End DoDot:1
+21 DO MES^XPDUTL("******")
+22 QUIT
XTMP ;setup ^XTMP to control output for 90 days
+1 IF $DATA(^XTMP("SD53P495",0))
Begin DoDot:1
+2 SET ^XTMP("SD53P495","LAST RUN")=$GET(^XTMP("SD53P495","START"))
End DoDot:1
+3 IF '$TEST
Begin DoDot:1
+4 NEW SDX
+5 SET SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT()
+6 SET SDX=SDX_"^SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING"
+7 SET ^XTMP("SD53P495",0)=SDX
End DoDot:1
+8 SET ^XTMP("SD53P495","START")=$$NOW^XLFDT()
+9 SET ^XTMP("SD53P495","RUNNING")="1"
+10 QUIT
UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP
+1 ; Input:
+2 ; SDENCPTR - Encounter IEN
+3 ; NODE - Unique subscript
+4 ; Output: none
+5 IF '$GET(SDENCPTR)
QUIT
+6 IF $GET(NODE)=""
SET NODE="UNKNOWN"
+7 SET ^XTMP("SD53P495","TOT2",NODE,SDENCPTR)=$GET(SDENT)
+8 QUIT