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

DG53334B.m

Go to the documentation of this file.
  1. DG53334B ;ALB/MRY - ALS EXTRACT; ; 11/16/00 10:38am
  1. ;;5.3;Registration;**334,1015**;Aug 13, 1993;Build 21
  1. ;
  1. ;Description:
  1. ;This routine contains calls to various Mailman functions. The calls
  1. ;vary from sending mail to the user, to mailgroups or server groups.
  1. ;
  1. ;
  1. SETMAIL(DGTATION,DGDFN) ;
  1. I DGLINE=0 D INITMAIL(1)
  1. ;
  1. S DGLINE=DGLINE+1
  1. S DGPECE=1
  1. ;
  1. ; set first line of each record to station^ssn
  1. S ^XMB(3.9,XMZ,2,DGLINE,0)=DGTATION_"^"_$P($G(^DPT(+DGDFN,0)),"^",9)_"^"
  1. S DGLINE=DGLINE+1
  1. ;
  1. S DGFIELD=0
  1. F S DGFIELD=$O(^XTMP("DGALS",$J,"DATA",2,DGDFN,DGFIELD)) Q:'DGFIELD DO
  1. . ;set mailmsg for 1 dfn
  1. . I $$LINECALC(DGFIELD,DGLINE)>254 DO
  1. . . ; make sure end piece has last ^
  1. . . S $P(^XMB(3.9,XMZ,2,DGLINE,0),"^",DGPECE)=""
  1. . . S DGLINE=DGLINE+1
  1. . . S DGPECE=1
  1. . D SETLINE
  1. . S DGPECE=DGPECE+1
  1. ;
  1. ; make sure end piece has last ^
  1. S $P(^XMB(3.9,XMZ,2,DGLINE,0),"^",DGPECE)=""
  1. S DGLINE=DGLINE+1
  1. ; set record delimiter
  1. S ^XMB(3.9,XMZ,2,DGLINE,0)=">>>"
  1. ;
  1. Q
  1. LINECALC(DGFIELD,DGLINE) ;
  1. ; return length that would be set
  1. Q $L($G(^XTMP("DGALS",$J,"DATA",2,DGDFN,DGFIELD,"E")))+$L($G(^XMB(3.9,XMZ,2,DGLINE,0)))
  1. ;
  1. ;
  1. SETLINE ;set mailmsg from xtmp array
  1. ; $g will preserve piece position if field returned error
  1. S $P(^XMB(3.9,XMZ,2,DGLINE,0),"^",DGPECE)=$G(^XTMP("DGALS",$J,"DATA",2,DGDFN,DGFIELD,"E")) Q
  1. ;
  1. ;
  1. INITMAIL(FLAG) ;-- This function will initialize mail variables
  1. ;
  1. S XMSUB="DG*5.3*334 "_(+$$SITE^VASITE())_" VA PATIENT SURVEY"
  1. S XMDUZ=.5,XMY(DUZ)="",XMY(XMDUZ)=""
  1. I $G(FLAG) DO
  1. . S XMY("S.DG ALS SERVER@MNTVBB.ISC-ALBANY.VA.GOV")=""
  1. . S XMY("YORTY.M_ROBERT@FORUM.VA.GOV")=""
  1. D GET^XMA2
  1. Q
  1. SMAIL(DGLINE) ;-- Send Mail Message containing records so far
  1. ;
  1. ; INPUT TOTAL- Total Lines in Message
  1. ;
  1. S ^XMB(3.9,XMZ,2,0)="^3.92A^"_DGLINE_U_DGLINE_U_DT
  1. D ENT1^XMD
  1. D KILL^XM
  1. Q
  1. ;
  1. FMAIL(DATA) ;- This function will generate a summary mail message.
  1. ;
  1. S XMSUB="DG*5.3*334 "_(+$$SITE^VASITE())_" VA Patient Survey Error Summary"
  1. S XMDUZ=.5,XMY(DUZ)="",XMY(XMDUZ)=""
  1. I DATA S XMY("YORTY.M_ROBERT@FORUM.VA.GOV")=""
  1. ;
  1. D GET^XMA2
  1. S ^XMB(3.9,XMZ,2,1,0)="VA Patient Survey completed."
  1. S ^XMB(3.9,XMZ,2,2,0)=""
  1. S ^XMB(3.9,XMZ,2,3,0)="Start Time: "_DGSTART
  1. S ^XMB(3.9,XMZ,2,4,0)=" Stop Time: "_$$FMTE^XLFDT($$NOW^XLFDT)
  1. S ^XMB(3.9,XMZ,2,5,0)=""
  1. ;
  1. S DGLINE=6
  1. I 'DATA DO QUIT
  1. . S ^XMB(3.9,XMZ,2,DGLINE,0)="No data requested"
  1. . D SMAIL(DGLINE)
  1. ;
  1. S DGZ=$Q(^XTMP("DGALS",$J,"ERROR"))
  1. I DGZ]"",DGZ[("""DGALS"""_","_$J_","_"""ERROR""")
  1. E DO QUIT
  1. . S ^XMB(3.9,XMZ,2,DGLINE,0)=" Error Summary: No errors Found "
  1. . D SMAIL(DGLINE)
  1. ;
  1. S ^XMB(3.9,XMZ,2,DGLINE,0)=" Error Summary: "
  1. S DGLINE=DGLINE+1
  1. S ^XMB(3.9,XMZ,2,DGLINE,0)="""ERR"_$P(DGZ,"ERROR",2)_" = "_@DGZ
  1. ;
  1. F S DGZ=$Q(@DGZ) Q:DGZ']"" Q:DGZ'[("""DGALS"""_","_$J_","_"""ERROR""") DO
  1. . S DGLINE=DGLINE+1
  1. . S ^XMB(3.9,XMZ,2,DGLINE,0)="""ERR"_$P(DGZ,"ERROR",2)_" = "_@DGZ
  1. .;
  1. .;quit if this gets to be too much
  1. . I DGLINE>500 S DGZ="ZZZEND"
  1. D SMAIL(DGLINE)
  1. Q