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

GMVZEROS.m

Go to the documentation of this file.
  1. GMVZEROS ;HIOFO/FT - LOOK FOR TRAILING ZEROES IN FILE 120.5, FIELD .01 ;08/27/08 16:07
  1. ;;5.0;GEN. MED. REC. - VITALS;**25**;Oct 31, 2002;Build 4
  1. ;
  1. ; This routine uses the following IAs:
  1. ; #2320 - ^%ZISH calls (supported)
  1. ; #10063 - ^%ZTLOAD (supported)
  1. ; #10070 - ^XMD calls (supported)
  1. ; #10103 - ^XLFDT calls (supported)
  1. ;
  1. QUEUE ;Queue job as a background task
  1. N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSK
  1. D EN^DDIOL("Starting FIX^GMVZEROS as a background task.","","!?5")
  1. S ZTDESC="GMRV*5.0*25 D/T REPAIR UTILITY",ZTIO=""
  1. S ZTRTN="FIX^GMVZEROS",ZTDTH=$$NOW^XLFDT()
  1. D ^%ZTLOAD
  1. D EN^DDIOL("Task "_ZTSK_" has started. I'll send you a MailMan message when I finish.","","!?5")
  1. Q
  1. ;
  1. FIX ;Search for string dates and repair them.
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. N DA,DIE,DR,X,Y,ZTSTOP
  1. N GMVBAD,GMVCNT,GMVDATE,GMVEND,GMVIEN,GMVFILE,GMVFOUND,GMVLINE,GMVPATH,GMVSTART,GMVTEXT,GMVTOTAL
  1. N POP
  1. S DIE=120.5,GMVLINE=1
  1. S GMVTEXT(GMVLINE)="Starting search for string dates in FILE 120.5 at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z")
  1. S (GMVBAD,GMVCNT,GMVIEN,GMVFOUND,GMVTOTAL)=0
  1. ; set host file name and directory path
  1. S GMVFILE="GMRV_5_25.DAT"
  1. S GMVPATH=$$PWD^%ZISH ;current directory
  1. ; Open up device to print to
  1. D OPEN^%ZISH("VITAL",GMVPATH,GMVFILE,"A") ;'A' for append
  1. I POP D Q ;send email if device cannot be opened
  1. .S GMVLINE=GMVLINE+1
  1. .S GMVTEXT(GMVLINE)="Could not open file "_GMVFILE_" in path "_GMVPATH_"."
  1. .S GMVLINE=GMVLINE+1
  1. .S GMVTEXT(GMVLINE)="Stopping at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z")
  1. .D EMAIL(.GMVTEXT)
  1. .Q
  1. U IO
  1. ; from this point on, the Write commands are writing to the host file.
  1. F S GMVIEN=+$O(^GMR(120.5,GMVIEN)) Q:GMVIEN=0!($G(ZTSTOP)=1) D
  1. .S GMVTOTAL=GMVTOTAL+1
  1. .S GMVCNT=GMVCNT+1
  1. .I GMVCNT>10000 D ;check if user wants to stop the job
  1. ..S GMVCNT=0
  1. ..Q:'$D(ZTQUEUED) ;not a background task
  1. ..I $$S^%ZTLOAD D
  1. ...S ZTSTOP=1 ;set TaskMan variable equal to 1 to stop task
  1. ...W !,"Task stopped at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z")
  1. ...W !,"Stopped at record "_GMVIEN
  1. ...K ZTREQ ;keep record of task in task log
  1. .S GMVDATE=$P(^GMR(120.5,GMVIEN,0),U,1)
  1. .I GMVDATE'=+GMVDATE D
  1. ..I $$DTCHECK(+GMVDATE,"TX")=0 D Q ;not a real date/time
  1. ...W !,"IEN="_GMVIEN,?15,GMVDATE_" is not a real date/time. No action taken."
  1. ...S GMVBAD=GMVBAD+1
  1. ..S GMVFOUND=GMVFOUND+1
  1. ..W !,"IEN="_GMVIEN,?15,GMVDATE_" changed to "_+GMVDATE
  1. ..S DR=".01///"_+GMVDATE,DA=GMVIEN
  1. ..D ^DIE
  1. W !!,"# of Records changed: "_GMVFOUND
  1. D CLOSE^%ZISH("VITAL")
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="Finished at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z")
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="Records checked: "_GMVTOTAL
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="Records changed: "_GMVFOUND
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="Records that could not be changed: "_GMVBAD
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="The "_GMVFILE_" file in the "_GMVPATH_" directory contains"
  1. S GMVLINE=GMVLINE+1
  1. S GMVTEXT(GMVLINE)="a list of entries changed and those that could not be changed."
  1. D EMAIL(.GMVTEXT)
  1. Q
  1. ;
  1. DTCHECK(GMVDT,GMVPDT) ; Is GMVDT a real date/time?
  1. ; Input: GMVDT - date/time (FM internal format)(req)
  1. ; GMVPDT - %DT value (opt - default is 'TX')
  1. ; Output: 1 = Yes
  1. ; 0 = No
  1. N %DT,X,Y
  1. S GMVDT=$G(GMVDT),GMVPDT=$G(GMVPDT)
  1. I $G(GMVDT)="" Q 0
  1. I $G(GMVPDT)="" S GMVPDT="TX"
  1. S X=GMVDT
  1. S %DT=GMVPDT
  1. D ^%DT
  1. I Y=-1 Q 0
  1. Q 1
  1. ;
  1. EMAIL(GMVTXT) ; Send a MailMan message
  1. N DIFROM,XMDUZ,XMSUB,XMTEXT,XMY
  1. S XMSUB="GMRV*5.0*25 D/T REPAIR UTILITY"
  1. S XMY(DUZ)="",XMDUZ=.5
  1. S XMTEXT="GMVTXT("
  1. D ^XMD
  1. Q