DG712PST ;BIR/CMC/TKW,PTD-PATCH DG*5.3*712 POST INSTALLATION ROUTINE ;1/29/09 17:41
;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
;
; IA #2796 for use of calls to RGHLLOG in UPDBAI
POST ;Post init
N DGFLD,DGMFLD,DGOUT,DGFILE
;File cross references
D XR(2,.121) ; BAD ADDRESS INDICATOR (#.121)
D XR(2,.133) ; EMAIL ADDRESS (#.133)
D XR(2,.134) ; PHONE NUMBER [CELLULAR] (#.134)
D TEMPL
;TURNING ON AUDITING FOR ALIAS FIELD(S)
D ALIAS
; Queue job to send A31 for patients with BAD ADDRESS INDICATOR
D UPDBAI
Q
;
XR(DGFILE,DGFLD) ;File index type cross references
;
N DGFDA,DGIEN,DGWP,DGERR,DGXR,DGVAL,DGOUT,DIERR
;Set up the cross-reference
I '$D(DGXR) S DGXR=$S(DGFLD[".":"AVAFC"_$P(DGFLD,".",2),1:"AVAFC"_DGFLD)
;Check for existing cross-reference
S DGVAL(1)=DGFILE,DGVAL(2)=DGXR
D FIND^DIC(.11,"","@;IXIE","KP",.DGVAL,"","","","","DGOUT")
I $D(DGOUT("DILIST",1)) D Q
.D MES^XPDUTL(" >> Cross reference "_DGXR_" already exists, nothing filed.")
.Q
;Create filer array
S DGFDA(.11,"+1,",.01)=DGFILE ;FILE
S DGFDA(.11,"+1,",.02)=DGXR ;NAME
S DGFDA(.11,"+1,",.11)="This x-ref calls the DG FIELD MONITOR event point." ;SHORT DESCRIPTION
S DGFDA(.11,"+1,",.2)="MU" ;TYPE
S DGFDA(.11,"+1,",.4)="F" ;EXECUTION
S DGFDA(.11,"+1,",.41)="I" ;ACTIVITY
S DGFDA(.11,"+1,",.5)="I" ;ROOT TYPE
S DGFDA(.11,"+1,",.51)=DGFILE ;ROOT FILE
S DGFDA(.11,"+1,",.42)="A" ;USE
S DGFDA(.11,"+1,",1.1)="D FC^DGFCPROT(.DA,"_DGFILE_","_DGFLD_",""SET"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q" ;SET LOGIC
S DGFDA(.11,"+1,",2.1)="D FC^DGFCPROT(.DA,"_DGFILE_","_DGFLD_",""KILL"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q" ;KILL LOGIC
;CROSS REFERENCE VALUES
S DGFDA(.114,"+2,+1,",.01)=1 ;ORDER NUMBER
S DGFDA(.114,"+2,+1,",1)="F" ;TYPE OF VALUE
S DGFDA(.114,"+2,+1,",2)=DGFILE ;FILE NUMBER
S DGFDA(.114,"+2,+1,",3)=DGFLD ;FIELD NUMBER
S DGFDA(.114,"+2,+1,",7)="F" ;COLLATION
;DESCRIPTION
S DGWP(1)="This cross-reference activates the DG FIELD MONITOR event point."
S DGWP(2)="Applications that wish to monitor edit activity related to this field may"
S DGWP(3)="subscribe to that event point and take action as indicated by the changes"
S DGWP(4)="that occur. Refer to the DG FIELD MONITOR protocol for a description of"
S DGWP(5)="the information available at the time of the event."
;File INDEX record
D UPDATE^DIE("","DGFDA","DGIEN","DGERR")
I $D(DIERR) D Q
.N DGI S DGI=""
.D BMES^XPDUTL(" >> A problem has occurred during the filing of x-ref "_DGXR_"!")
.D MES^XPDUTL(" Please contact Customer Support.")
.F S DGI=$O(DGERR("DIERR",1,"TEXT",DGI)) Q:DGI="" D
..D MES^XPDUTL(DGERR("DIERR",1,"TEXT",DGI))
..Q
.Q
S DGFLD(DGFILE,DGFLD)="" ;Create list to recompile templates
D MES^XPDUTL(" >> "_DGXR_" cross-reference filed.")
;File DESCRIPTION field
D WP^DIE(.11,DGIEN(1)_",",.1,"","DGWP")
Q
;
TEMPL ;Determine templates on the PATIENT (#2) file to be compiled.
N GLOBAL,FIELD,NFIELD,FILE,CNT
D BMES^XPDUTL("Beginning to compile templates on the PATIENT (#2) file.")
;
S NFIELD=".121,.133,.134",FILE=2,FIELD="",CNT=1
F S FIELD=$P(NFIELD,",",CNT) Q:FIELD="" D LOOP(FIELD,FILE) S CNT=CNT+1
W !!
S (X,Y)=""
D BMES^XPDUTL("The following routine namespace was compiled:")
F S X=$O(CFIELD(X)) Q:X="" S Y=$G(Y)+1 S PRINT(Y)=" "_X_"*"
;
D MES^XPDUTL(.PRINT)
K X,Y,PRINT,CFIELD
Q
LOOP(FIELD,FILE) ;Compile templates.
N GLOBAL,TEMPLATP,TEMPLATN,X,Y,DMAX
F GLOBAL="^DIE","^DIPT" DO
.I $D(@GLOBAL@("AF",FILE,FIELD)) D
..S TEMPLATP=0
..F S TEMPLATP=$O(@GLOBAL@("AF",FILE,FIELD,TEMPLATP)) Q:'TEMPLATP DO
...S TEMPLATN=$P($G(@GLOBAL@(TEMPLATP,0)),"^",1)
...I TEMPLATN="" D BMES^XPDUTL("Could not compile template "_TEMPLATN_$C(13,10)_"Please review!") Q
...S X=$P($G(@GLOBAL@(TEMPLATP,"ROUOLD")),"^")
...I X=""&($D(@GLOBAL@(TEMPLATP,"ROU"))'=0) D BMES^XPDUTL("Could not find routine for template "_TEMPLATN_$C(13,10)_"Please review!") Q
...I X=""&($D(@GLOBAL@(TEMPLATP,"ROU"))=0) Q
...I $D(CFIELD(X)) Q ;already compiled
...S CFIELD(X)="" ; remember the template was compiled
...S Y=TEMPLATP ; set up the call for FileMan
...S DMAX=$$ROUSIZE^DILF
...I GLOBAL="^DIE" D BMES^XPDUTL(" "),BMES^XPDUTL(" Compiling Input Templates") D EN^DIEZ Q
...I GLOBAL="^DIPT" D BMES^XPDUTL(" "),BMES^XPDUTL(" Compiling Print Templates") D EN^DIPZ Q
Q
;
ALIAS ;TURNING ON ALIAS AUDITING
N FLDNUM
S FLDNUM=.01 D TURNON^DIAUTL(2.01,FLDNUM) W !,"Adding AUDIT to sub-file 2.01 Alias, field #",FLDNUM
S FLDNUM=1 D TURNON^DIAUTL(2.01,FLDNUM) W !,"Adding AUDIT to sub-file 2.01 Alias, field #",FLDNUM
Q
;
UPDBAI ; Send A31 to update the BAD ADDRESS INDICATOR for all patients
D BMES^XPDUTL(" "),BMES^XPDUTL(" Queuing job to update MPI for Patients with BAD ADDRESS INDICATOR.")
N ZTIO,ZTSK,ZTRTN,ZTDESC,ZTSAVE,ZTDTH,Y
S ZTIO="",ZTRTN="DQUPDBAI^DG712PST",ZTDTH=$H
S ZTDESC="Send A31 update for patients with BAD ADDRESS INDICATOR-post init for DG*5.3*712."
D ^%ZTLOAD
I '$G(ZTSK) D MES^XPDUTL(" **** Queuing job failed!!!") Q
D MES^XPDUTL(" Job number "_ZTSK_" was queued.")
Q
DQUPDBAI ; Entry point to queue job to update BAD ADDRESS INDICATOR for all patients
N DGSITE,DGSNAME,DGDFN,DGBAI,DGICN,DGCNT,DGECNT,DGERR,R,X
; Get current station number and name
S X=$$SITE^VASITE()
S DGSNAME=$P(X,"^",2),DGSITE=$P(X,"^",3)
S (DGCNT,DGECNT)=0
; Loop through patient file, if patient has a BAD ADDRESS INDICATOR, send A31
F DGDFN=0:0 S DGDFN=$O(^DPT(DGDFN)) Q:'DGDFN D
. ; Check for PATIENT having BAD ADDRESS INDICATOR
. S DGBAI=$P($G(^DPT(DGDFN,.11)),U,16)
. Q:'DGBAI
. S DGICN=+$$GETICN^MPIF001(DGDFN)
. ; Only update if station has a valid national ICN
. Q:DGICN=-1
. Q:$E(DGICN,1,($L(DGSITE)))=DGSITE
. ; Send A31
. S DGERR=$$A31^MPIFA31B(DGDFN)
. I +DGERR<0 D Q
.. D START^RGHLLOG()
.. D EXC^RGHLLOG(208,"Error building A31 for BAD ADDRESS INDICATOR during post-init of DG*5.3*712, (DFN="_DGDFN_"), ERROR="_$P(DGERR,"^",2),DGDFN)
.. D STOP^RGHLLOG()
.. S DGECNT=DGECNT+1 Q
. S DGCNT=DGCNT+1
. Q
; Send email to person who ran the INIT, letting them know results
N XMDUZ,XMTEXT,XMSUB,XMY,XMZ,XMDUN,X,R
S R(1)="A31 messages to update the BAD ADDRESS INDICATOR for "_DGCNT_" Patients were sent."
I DGECNT'>0 S R(2)=" ",R(3)="You can now delete the post-init routine ^DG712PST."
I DGECNT>0 D
. S R(2)=" "
. S R(3)="*** Note: "_DGECNT_" errors occurred trying to update the BAD ADDRESS INDICATOR."
. S R(4)="*** IMDQ can check the EXCEPTIONS LOG to see details for these errors."
. S R(5)="*** See further instructions in the patch description for DG*5.3*712."
. Q
S XMTEXT="R(",XMSUB="Results from running patch DG*5.3*712"
S XMDUZ=.5
S XMY(DUZ)=""
D ^XMD
; Send message to MPI developers on Outlook
K XMDUZ,XMTEXT,XMSUB,XMY,XMZ,XMDUN,R
S R(1)="Post-Init routine UPDBAI^DG712PST run at station: "_DGSITE_" - "_DGSNAME
S R(2)=" "
S R(3)="A31 messages to update the BAD ADDRESS INDICATOR for "_DGCNT_" Patients were sent."
I DGECNT>0 D
. S R(4)=" "
. S R(5)="*** Note: "_DGECNT_" errors occurred trying to update the BAD ADDRESS INDICATOR."
. S R(6)="*** IMDQ can check the EXCEPTIONS LOG to see details for these errors."
. S R(7)="*** See further instructions in the patch description for DG*5.3*712."
. Q
S XMTEXT="R(",XMSUB="Results from running patch DG*5.3*712 at station: "_DGSITE
S XMDUZ=DUZ
S XMY("TAMI.WINN@VA.GOV")=""
S XMY("CHRISTINE.LINK@VA.GOV")=""
D ^XMD
Q
;
;
DG712PST ;BIR/CMC/TKW,PTD-PATCH DG*5.3*712 POST INSTALLATION ROUTINE ;1/29/09 17:41
+1 ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
+2 ;
+3 ; IA #2796 for use of calls to RGHLLOG in UPDBAI
POST ;Post init
+1 NEW DGFLD,DGMFLD,DGOUT,DGFILE
+2 ;File cross references
+3 ; BAD ADDRESS INDICATOR (#.121)
DO XR(2,.121)
+4 ; EMAIL ADDRESS (#.133)
DO XR(2,.133)
+5 ; PHONE NUMBER [CELLULAR] (#.134)
DO XR(2,.134)
+6 DO TEMPL
+7 ;TURNING ON AUDITING FOR ALIAS FIELD(S)
+8 DO ALIAS
+9 ; Queue job to send A31 for patients with BAD ADDRESS INDICATOR
+10 DO UPDBAI
+11 QUIT
+12 ;
XR(DGFILE,DGFLD) ;File index type cross references
+1 ;
+2 NEW DGFDA,DGIEN,DGWP,DGERR,DGXR,DGVAL,DGOUT,DIERR
+3 ;Set up the cross-reference
+4 IF '$DATA(DGXR)
SET DGXR=$SELECT(DGFLD[".":"AVAFC"_$PIECE(DGFLD,".",2),1:"AVAFC"_DGFLD)
+5 ;Check for existing cross-reference
+6 SET DGVAL(1)=DGFILE
SET DGVAL(2)=DGXR
+7 DO FIND^DIC(.11,"","@;IXIE","KP",.DGVAL,"","","","","DGOUT")
+8 IF $DATA(DGOUT("DILIST",1))
Begin DoDot:1
+9 DO MES^XPDUTL(" >> Cross reference "_DGXR_" already exists, nothing filed.")
+10 QUIT
End DoDot:1
QUIT
+11 ;Create filer array
+12 ;FILE
SET DGFDA(.11,"+1,",.01)=DGFILE
+13 ;NAME
SET DGFDA(.11,"+1,",.02)=DGXR
+14 ;SHORT DESCRIPTION
SET DGFDA(.11,"+1,",.11)="This x-ref calls the DG FIELD MONITOR event point."
+15 ;TYPE
SET DGFDA(.11,"+1,",.2)="MU"
+16 ;EXECUTION
SET DGFDA(.11,"+1,",.4)="F"
+17 ;ACTIVITY
SET DGFDA(.11,"+1,",.41)="I"
+18 ;ROOT TYPE
SET DGFDA(.11,"+1,",.5)="I"
+19 ;ROOT FILE
SET DGFDA(.11,"+1,",.51)=DGFILE
+20 ;USE
SET DGFDA(.11,"+1,",.42)="A"
+21 ;SET LOGIC
SET DGFDA(.11,"+1,",1.1)="D FC^DGFCPROT(.DA,"_DGFILE_","_DGFLD_",""SET"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q"
+22 ;KILL LOGIC
SET DGFDA(.11,"+1,",2.1)="D FC^DGFCPROT(.DA,"_DGFILE_","_DGFLD_",""KILL"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q"
+23 ;CROSS REFERENCE VALUES
+24 ;ORDER NUMBER
SET DGFDA(.114,"+2,+1,",.01)=1
+25 ;TYPE OF VALUE
SET DGFDA(.114,"+2,+1,",1)="F"
+26 ;FILE NUMBER
SET DGFDA(.114,"+2,+1,",2)=DGFILE
+27 ;FIELD NUMBER
SET DGFDA(.114,"+2,+1,",3)=DGFLD
+28 ;COLLATION
SET DGFDA(.114,"+2,+1,",7)="F"
+29 ;DESCRIPTION
+30 SET DGWP(1)="This cross-reference activates the DG FIELD MONITOR event point."
+31 SET DGWP(2)="Applications that wish to monitor edit activity related to this field may"
+32 SET DGWP(3)="subscribe to that event point and take action as indicated by the changes"
+33 SET DGWP(4)="that occur. Refer to the DG FIELD MONITOR protocol for a description of"
+34 SET DGWP(5)="the information available at the time of the event."
+35 ;File INDEX record
+36 DO UPDATE^DIE("","DGFDA","DGIEN","DGERR")
+37 IF $DATA(DIERR)
Begin DoDot:1
+38 NEW DGI
SET DGI=""
+39 DO BMES^XPDUTL(" >> A problem has occurred during the filing of x-ref "_DGXR_"!")
+40 DO MES^XPDUTL(" Please contact Customer Support.")
+41 FOR
SET DGI=$ORDER(DGERR("DIERR",1,"TEXT",DGI))
IF DGI=""
QUIT
Begin DoDot:2
+42 DO MES^XPDUTL(DGERR("DIERR",1,"TEXT",DGI))
+43 QUIT
End DoDot:2
+44 QUIT
End DoDot:1
QUIT
+45 ;Create list to recompile templates
SET DGFLD(DGFILE,DGFLD)=""
+46 DO MES^XPDUTL(" >> "_DGXR_" cross-reference filed.")
+47 ;File DESCRIPTION field
+48 DO WP^DIE(.11,DGIEN(1)_",",.1,"","DGWP")
+49 QUIT
+50 ;
TEMPL ;Determine templates on the PATIENT (#2) file to be compiled.
+1 NEW GLOBAL,FIELD,NFIELD,FILE,CNT
+2 DO BMES^XPDUTL("Beginning to compile templates on the PATIENT (#2) file.")
+3 ;
+4 SET NFIELD=".121,.133,.134"
SET FILE=2
SET FIELD=""
SET CNT=1
+5 FOR
SET FIELD=$PIECE(NFIELD,",",CNT)
IF FIELD=""
QUIT
DO LOOP(FIELD,FILE)
SET CNT=CNT+1
+6 WRITE !!
+7 SET (X,Y)=""
+8 DO BMES^XPDUTL("The following routine namespace was compiled:")
+9 FOR
SET X=$ORDER(CFIELD(X))
IF X=""
QUIT
SET Y=$GET(Y)+1
SET PRINT(Y)=" "_X_"*"
+10 ;
+11 DO MES^XPDUTL(.PRINT)
+12 KILL X,Y,PRINT,CFIELD
+13 QUIT
LOOP(FIELD,FILE) ;Compile templates.
+1 NEW GLOBAL,TEMPLATP,TEMPLATN,X,Y,DMAX
+2 FOR GLOBAL="^DIE","^DIPT"
Begin DoDot:1
+3 IF $DATA(@GLOBAL@("AF",FILE,FIELD))
Begin DoDot:2
+4 SET TEMPLATP=0
+5 FOR
SET TEMPLATP=$ORDER(@GLOBAL@("AF",FILE,FIELD,TEMPLATP))
IF 'TEMPLATP
QUIT
Begin DoDot:3
+6 SET TEMPLATN=$PIECE($GET(@GLOBAL@(TEMPLATP,0)),"^",1)
+7 IF TEMPLATN=""
DO BMES^XPDUTL("Could not compile template "_TEMPLATN_$CHAR(13,10)_"Please review!")
QUIT
+8 SET X=$PIECE($GET(@GLOBAL@(TEMPLATP,"ROUOLD")),"^")
+9 IF X=""&($DATA(@GLOBAL@(TEMPLATP,"ROU"))'=0)
DO BMES^XPDUTL("Could not find routine for template "_TEMPLATN_$CHAR(13,10)_"Please review!")
QUIT
+10 IF X=""&($DATA(@GLOBAL@(TEMPLATP,"ROU"))=0)
QUIT
+11 ;already compiled
IF $DATA(CFIELD(X))
QUIT
+12 ; remember the template was compiled
SET CFIELD(X)=""
+13 ; set up the call for FileMan
SET Y=TEMPLATP
+14 SET DMAX=$$ROUSIZE^DILF
+15 IF GLOBAL="^DIE"
DO BMES^XPDUTL(" ")
DO BMES^XPDUTL(" Compiling Input Templates")
DO EN^DIEZ
QUIT
+16 IF GLOBAL="^DIPT"
DO BMES^XPDUTL(" ")
DO BMES^XPDUTL(" Compiling Print Templates")
DO EN^DIPZ
QUIT
End DoDot:3
End DoDot:2
End DoDot:1
+17 QUIT
+18 ;
ALIAS ;TURNING ON ALIAS AUDITING
+1 NEW FLDNUM
+2 SET FLDNUM=.01
DO TURNON^DIAUTL(2.01,FLDNUM)
WRITE !,"Adding AUDIT to sub-file 2.01 Alias, field #",FLDNUM
+3 SET FLDNUM=1
DO TURNON^DIAUTL(2.01,FLDNUM)
WRITE !,"Adding AUDIT to sub-file 2.01 Alias, field #",FLDNUM
+4 QUIT
+5 ;
UPDBAI ; Send A31 to update the BAD ADDRESS INDICATOR for all patients
+1 DO BMES^XPDUTL(" ")
DO BMES^XPDUTL(" Queuing job to update MPI for Patients with BAD ADDRESS INDICATOR.")
+2 NEW ZTIO,ZTSK,ZTRTN,ZTDESC,ZTSAVE,ZTDTH,Y
+3 SET ZTIO=""
SET ZTRTN="DQUPDBAI^DG712PST"
SET ZTDTH=$HOROLOG
+4 SET ZTDESC="Send A31 update for patients with BAD ADDRESS INDICATOR-post init for DG*5.3*712."
+5 DO ^%ZTLOAD
+6 IF '$GET(ZTSK)
DO MES^XPDUTL(" **** Queuing job failed!!!")
QUIT
+7 DO MES^XPDUTL(" Job number "_ZTSK_" was queued.")
+8 QUIT
DQUPDBAI ; Entry point to queue job to update BAD ADDRESS INDICATOR for all patients
+1 NEW DGSITE,DGSNAME,DGDFN,DGBAI,DGICN,DGCNT,DGECNT,DGERR,R,X
+2 ; Get current station number and name
+3 SET X=$$SITE^VASITE()
+4 SET DGSNAME=$PIECE(X,"^",2)
SET DGSITE=$PIECE(X,"^",3)
+5 SET (DGCNT,DGECNT)=0
+6 ; Loop through patient file, if patient has a BAD ADDRESS INDICATOR, send A31
+7 FOR DGDFN=0:0
SET DGDFN=$ORDER(^DPT(DGDFN))
IF 'DGDFN
QUIT
Begin DoDot:1
+8 ; Check for PATIENT having BAD ADDRESS INDICATOR
+9 SET DGBAI=$PIECE($GET(^DPT(DGDFN,.11)),U,16)
+10 IF 'DGBAI
QUIT
+11 SET DGICN=+$$GETICN^MPIF001(DGDFN)
+12 ; Only update if station has a valid national ICN
+13 IF DGICN=-1
QUIT
+14 IF $EXTRACT(DGICN,1,($LENGTH(DGSITE)))=DGSITE
QUIT
+15 ; Send A31
+16 SET DGERR=$$A31^MPIFA31B(DGDFN)
+17 IF +DGERR<0
Begin DoDot:2
+18 DO START^RGHLLOG()
+19 DO EXC^RGHLLOG(208,"Error building A31 for BAD ADDRESS INDICATOR during post-init of DG*5.3*712, (DFN="_DGDFN_"), ERROR="_$PIECE(DGERR,"^",2),DGDFN)
+20 DO STOP^RGHLLOG()
+21 SET DGECNT=DGECNT+1
QUIT
End DoDot:2
QUIT
+22 SET DGCNT=DGCNT+1
+23 QUIT
End DoDot:1
+24 ; Send email to person who ran the INIT, letting them know results
+25 NEW XMDUZ,XMTEXT,XMSUB,XMY,XMZ,XMDUN,X,R
+26 SET R(1)="A31 messages to update the BAD ADDRESS INDICATOR for "_DGCNT_" Patients were sent."
+27 IF DGECNT'>0
SET R(2)=" "
SET R(3)="You can now delete the post-init routine ^DG712PST."
+28 IF DGECNT>0
Begin DoDot:1
+29 SET R(2)=" "
+30 SET R(3)="*** Note: "_DGECNT_" errors occurred trying to update the BAD ADDRESS INDICATOR."
+31 SET R(4)="*** IMDQ can check the EXCEPTIONS LOG to see details for these errors."
+32 SET R(5)="*** See further instructions in the patch description for DG*5.3*712."
+33 QUIT
End DoDot:1
+34 SET XMTEXT="R("
SET XMSUB="Results from running patch DG*5.3*712"
+35 SET XMDUZ=.5
+36 SET XMY(DUZ)=""
+37 DO ^XMD
+38 ; Send message to MPI developers on Outlook
+39 KILL XMDUZ,XMTEXT,XMSUB,XMY,XMZ,XMDUN,R
+40 SET R(1)="Post-Init routine UPDBAI^DG712PST run at station: "_DGSITE_" - "_DGSNAME
+41 SET R(2)=" "
+42 SET R(3)="A31 messages to update the BAD ADDRESS INDICATOR for "_DGCNT_" Patients were sent."
+43 IF DGECNT>0
Begin DoDot:1
+44 SET R(4)=" "
+45 SET R(5)="*** Note: "_DGECNT_" errors occurred trying to update the BAD ADDRESS INDICATOR."
+46 SET R(6)="*** IMDQ can check the EXCEPTIONS LOG to see details for these errors."
+47 SET R(7)="*** See further instructions in the patch description for DG*5.3*712."
+48 QUIT
End DoDot:1
+49 SET XMTEXT="R("
SET XMSUB="Results from running patch DG*5.3*712 at station: "_DGSITE
+50 SET XMDUZ=DUZ
+51 SET XMY("TAMI.WINN@VA.GOV")=""
+52 SET XMY("CHRISTINE.LINK@VA.GOV")=""
+53 DO ^XMD
+54 QUIT
+55 ;
+56 ;