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

DG53659.m

Go to the documentation of this file.
  1. DG53659 ;EG - DG*5.3*659 Cleanup Radiation Exposure; 08/08/2006
  1. ;;5.3;Registration;**659**;Aug 13,1993;Build 20
  1. ;
  1. POST ;
  1. N U,ZTRTN,ZTDESC,ZTSAVE,ZTIO,ZTSK,ZTDTH
  1. S U="^"
  1. D BMES^XPDUTL("Queue-ing the job to reset Radiation Exposure Method...")
  1. S ZTRTN="RUN^DG53659",ZTDESC="Reset Radiation Exposure Method"
  1. S ZTIO="",ZTDTH=$$NOW^XLFDT D ^%ZTLOAD
  1. D BMES^XPDUTL("This request queued as Task # "_$G(ZTSK))
  1. D BMES^XPDUTL("=====================================================")
  1. D BMES^XPDUTL("")
  1. Q
  1. EP ; Queue the conversion
  1. N %
  1. S %=$$NEWCP^XPDUTL("IEN12","RUN^DG53659(1)")
  1. S %=$$NEWCP^XPDUTL("END","END^DG53659") ; Leave as last update
  1. Q
  1. ;
  1. END ; Post-install done
  1. D BMES^XPDUTL("Post install complete.")
  1. Q
  1. RUN ;entry point from taskman
  1. I '$$CHKSTAT(1) D Q
  1. . D BMES^XPDUTL("Conversion routine already running, process aborted")
  1. . Q
  1. N TESTING
  1. S TESTING="N" K ^TMP($$NAMSPC) D QUE
  1. Q
  1. TEST ;entry point for test mode
  1. N TESTING,X,STARTID,ENDID,U,NAMSPC
  1. S NAMSPC=$$NAMSPC
  1. S TESTING="Y",U="^"
  1. S X=$$CHKSTAT(0)
  1. K ^XTMP(NAMSPC,"TEST RANGE"),^XTMP(NAMSPC,"TEST")
  1. S STARTID=$$TESTID("Starting")
  1. S ENDID=$$TESTID("Ending")
  1. I ENDID<STARTID U 0 W !,?10,"Ending IEN can't be less than starting IEN"
  1. S ^XTMP(NAMSPC,"TEST RANGE")=STARTID_U_ENDID
  1. D QUE
  1. Q
  1. ;
  1. TESTID(MESS) ;
  1. TESTIDG N X
  1. U 0 W !!,MESS," DFN for Patient file? " R X:300
  1. I X="" Q X
  1. I X'?1N.N,X'?1N.N1"."1N.N W !,?10,"Must be numeric" G TESTIDG
  1. Q X
  1. ;
  1. QUE ;
  1. N ZTSTOP,X,U,NAMSPC
  1. S U="^"
  1. I '$D(TESTING) N TESTING S TESTING="N"
  1. S NAMSPC=$$NAMSPC
  1. S X=$$SETUPX(90)
  1. S X=$G(^XTMP(NAMSPC,0,0))
  1. S $P(X,U,6)="RUNNING"
  1. S $P(X,U,7)=$$NOW^XLFDT
  1. S ^XTMP(NAMSPC,0,0)=X
  1. ;
  1. S X=$$LOOP(NAMSPC,TESTING),ZTSTOP=$P(X,U,2)
  1. S X=$G(^XTMP(NAMSPC,0,0))
  1. S $P(X,U,6)=$S(ZTSTOP:"STOPPED",1:"COMPLETED")
  1. S $P(X,U,8)=$$NOW^XLFDT
  1. S ^XTMP(NAMSPC,0,0)=X
  1. ;
  1. S X=$$MAIL^DG53659M(NAMSPC,TESTING,DUZ)
  1. K TESTING
  1. L -^XTMP(NAMSPC)
  1. Q
  1. ;
  1. SETUPX(EXPDAYS) ;
  1. ; requires EXPDAYS - number of days to keep XTMP around
  1. N BEGTIME,PURGDT,NAMSPC,U
  1. S U="^"
  1. S NAMSPC=$$NAMSPC
  1. S BEGTIME=$$NOW^XLFDT()
  1. S PURGDT=$$FMADD^XLFDT(BEGTIME,EXPDAYS)
  1. S ^XTMP(NAMSPC,0)=PURGDT_U_BEGTIME
  1. S $P(^XTMP(NAMSPC,0),U,3)="Convert Radiation Exposure Method"
  1. Q 1
  1. ;
  1. LOOP(NAMSPC,TESTING) ;
  1. ;returns 0^stop flag
  1. N X,XREC,LASTREC,TOTREC,TOTPAT
  1. N U,ZTSTOP,REXP
  1. S LASTREC="",U="^",ZTSTOP=0
  1. S TOTREC=0
  1. I $D(^XTMP(NAMSPC,0,0)) D
  1. . S XREC=$G(^XTMP(NAMSPC,0,0))
  1. . ;last DFN processed
  1. . S LASTREC=+$P(XREC,U,1)
  1. . ;total records read
  1. . S TOTREC=+$P(XREC,U,2)
  1. . S TOTPAT=+$P(XREC,U,10)
  1. . Q
  1. D DFN
  1. Q 0_"^"_ZTSTOP
  1. ;
  1. DFN N DFN,END,X
  1. S DFN="",END=9999999999999999999999
  1. S X=$G(^XTMP(NAMSPC,"TEST RANGE")) I $L(X) D
  1. . S DFN=$P(X,U,1)-1,END=$P(X,U,2)
  1. . Q
  1. S ZTSTOP=0
  1. F S DFN=$O(^DPT(DFN)) Q:DFN=""!ZTSTOP!(DFN?1A.E) D CHKR
  1. Q
  1. ;
  1. CHKR N X,U,NEW
  1. S U="^"
  1. I DFN>END S ZTSTOP=2 Q
  1. S LASTREC=DFN
  1. S TOTREC=TOTREC+1
  1. I (TOTREC#20)=0 S ZTSTOP=$$STOP(NAMSPC) I ZTSTOP=1 Q
  1. S X=$$CHPAT(DFN) I $P(X,U,1)="Y" D
  1. . S NEW=$P(X,U,2),TOTPAT=TOTPAT+1
  1. . I TESTING="N" D
  1. . . N DA,DIE,DR,X
  1. . . S DA=DFN,DIE="^DPT(",DR=".3212////"_NEW
  1. . . D ^DIE
  1. . . Q
  1. . Q
  1. S X=$$UPDATEX(NAMSPC,TOTREC,LASTREC,TOTPAT)
  1. Q
  1. CHPAT(DFN) ;
  1. N X,U,RET,VAL
  1. S U="^",RET="N"
  1. S X=$G(^DPT(DFN,.321))
  1. S VAL=$P(X,U,12)
  1. I VAL?1N,VAL>1,VAL<8 Q RET
  1. I $L(VAL) D
  1. . I $P($G(^DPT(DFN,.321)),U,3)="Y" S RET="Y^"_$S(VAL="N":2,VAL="T":3,VAL="B":4,1:3) Q
  1. . ;if radiation exposure indicated is set to 'No', delete radiation exposure method
  1. . S RET="Y^@"
  1. . Q
  1. ;bulk fill to 3 if radiation exposure method is null
  1. ;and radiation exposure indicated is "Y"
  1. I '$L(VAL),$P($G(^DPT(DFN,.321)),U,3)="Y" D
  1. . S RET="Y^3"
  1. . Q
  1. Q RET
  1. ;
  1. UPDATEX(NAMSPC,TOTREC,LASTREC,TOTPAT) ;
  1. N X,U
  1. S U="^",X=$G(^XTMP(NAMSPC,0,0))
  1. S $P(X,U,1)=$G(LASTREC),$P(X,U,2)=$G(TOTREC)
  1. S $P(X,U,10)=$G(TOTPAT)
  1. S ^XTMP(NAMSPC,0,0)=X
  1. Q 1
  1. STATUS ;display status of current run
  1. N X,NAMSPC,U,OLD
  1. S U="^"
  1. S NAMSPC=$$NAMSPC
  1. S X=$G(^XTMP(NAMSPC,0,0))
  1. I X="" U 0 W !!,"Task not started!!!" Q
  1. W !!," Current status: ",$P(X,U,6)
  1. W !," Starting time: ",$$FMTE^XLFDT($P(X,U,7))
  1. I $P(X,U,8) D
  1. . W !," Ending time: ",$$FMTE^XLFDT($P(X,U,8))
  1. . Q
  1. W !!," Total patient records read: ",$P(X,U,2)
  1. W !," Last patient record processed: ",$P(X,U,1)
  1. W !," Total patient records changed: ",$P(X,U,10)
  1. Q
  1. ;
  1. STOP(NAMSPC) ;
  1. N ZSTSTOP,U,X
  1. S U="^"
  1. ;returns stop flag
  1. S ZTSTOP=0
  1. I $$S^%ZTLOAD S ZTSTOP=1
  1. I $D(^XTMP(NAMSPC,"STOP")) S ZTSTOP=1 K ^XTMP(NAMSPC,"STOP")
  1. I ZTSTOP D
  1. . S X=$G(^XTMP(NAMSPC,0,0))
  1. . S $P(X,U,6)="STOPPED",$P(X,U,7)=$$NOW^XLFDT
  1. . S ^XTMP(NAMSPC,0,0)=X
  1. . Q
  1. Q ZTSTOP
  1. CHKSTAT(POST) ;check if job is running, stopped, or complete
  1. N NAMSPC
  1. S NAMSPC=$$NAMSPC
  1. L +^XTMP(NAMSPC):1
  1. I '$T Q 0
  1. D KILIT
  1. Q 1
  1. ;
  1. ;
  1. KILIT ;
  1. S:'$D(NAMSPC) NAMSPC=$$NAMSPC
  1. I 'POST K ^XTMP(NAMSPC)
  1. Q
  1. NAMSPC() ;
  1. Q $T(+0)
  1. ;