| [613] | 1 | IVM2B102 ;ALB/PJR - IVM*2.0*102 POST-INSTALL ; 12/30/04 3:51pm
 | 
|---|
 | 2 |  ;;2.0;INCOME VERIFICATION MATCH;**102**; 21-OCT-94
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;This post install routine will loop through patient file (#2)
 | 
|---|
 | 5 |  ;and trigger a Z07 message to the HEC system
 | 
|---|
 | 6 |  ;for all entries that have a value in the DATE OF DEATH field (#.351)
 | 
|---|
 | 7 |  ;and a value in the SOURCE OF NOTIFICATION field (#.353)
 | 
|---|
 | 8 |  ;of 1, 2, 3, 4, 5, 8, or 9
 | 
|---|
 | 9 |  Q
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 | EP ;Entry point
 | 
|---|
 | 12 |  N OK
 | 
|---|
 | 13 |  D CHK Q:'OK
 | 
|---|
 | 14 |  D MSG
 | 
|---|
 | 15 |  D QUETASK
 | 
|---|
 | 16 |  Q
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 | QUETASK ;Queue the task
 | 
|---|
 | 19 |  N TXT,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH
 | 
|---|
 | 20 |  S ZTRTN="EP1^IVM2B102",ZTIO="",ZTDTH=$$NOW^XLFDT()
 | 
|---|
 | 21 |  S ZTDESC="DOD ENHANCEMENT POST-INSTALL"
 | 
|---|
 | 22 |  D ^%ZTLOAD S ^XTMP("IVM2B102","TASK")=ZTSK
 | 
|---|
 | 23 |  S TXT(1)="Task: "_ZTSK_" Queued."
 | 
|---|
 | 24 |  D BMES^XPDUTL(.TXT)
 | 
|---|
 | 25 |  Q
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 | EP1 ;Entry point
 | 
|---|
 | 28 |  N X,XIEN,EVENT,IYR,ZCNT,ZIEN,ZEND,ZDATE,ZEDATE
 | 
|---|
 | 29 |  L +^XTMP("IVM2B102"):1 E  Q
 | 
|---|
 | 30 |  S X=$G(^XTMP("IVM2B102",0)),ZCNT=+X,ZIEN=+$P(X,U,4),ZEND=ZCNT+4999
 | 
|---|
 | 31 |  S ZDATE=$$DT^XLFDT D IVM2
 | 
|---|
 | 32 |  S ^XTMP("IVM2B102",0)=ZCNT_U_ZDATE_U_X_U_ZIEN
 | 
|---|
 | 33 |  S $P(^XTMP("IVM2B102","DATE"),"^")=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
 | 
|---|
 | 34 |  D LMINUS
 | 
|---|
 | 35 |  ;Loop through patient file
 | 
|---|
 | 36 |  F  S ZIEN=$O(^DPT(ZIEN)) Q:ZCNT>ZEND!('ZIEN)  D
 | 
|---|
 | 37 |  .S X=$G(^DPT(ZIEN,.35)) I X,"^1^2^3^4^5^8^9^"[("^"_$P(X,"^",3)_"^") D
 | 
|---|
 | 38 |  ..S IYR=$$INCYR(ZIEN) Q:IYR=""
 | 
|---|
 | 39 |  ..Q:'$$LOG^IVMPLOG(ZIEN,IYR,.EVENT)  ;Queue Z07
 | 
|---|
 | 40 |  ..S ZCNT=ZCNT+1 ;Tot Z07's queued
 | 
|---|
 | 41 |  S $P(^XTMP("IVM2B102","DATE"),"^",2)=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
 | 
|---|
 | 42 |  S ZDATE=$$DT^XLFDT,ZEDATE=$$FMTE^XLFDT(DT) D IVM2
 | 
|---|
 | 43 |  S ^XTMP("IVM2B102",0)=ZCNT_U_ZDATE_U_X_U_(ZIEN-1)
 | 
|---|
 | 44 |  I 'ZIEN S ^XTMP("IVM2B102","COMPLETED")=1 D MAIL
 | 
|---|
 | 45 |  D IVM2 S X="The "_X_" process is complete"
 | 
|---|
 | 46 |  I ZIEN S X=X_" for "_ZEDATE
 | 
|---|
 | 47 |  S X=X_"." D BMES^XPDUTL(X)
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | CHK ;check for completion
 | 
|---|
 | 51 |  N TXT,TASKNUM,STAT
 | 
|---|
 | 52 |  S OK=1 L +^XTMP("IVM2B102"):1 E  D  Q
 | 
|---|
 | 53 |  .S OK=0 D IVM2 S TXT(1)=X_" process has a lock table"
 | 
|---|
 | 54 |  .S TXT(2)="problem.  Nothing Done!"
 | 
|---|
 | 55 |  .D BMES^XPDUTL(.TXT),LMINUS
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 |  I $G(^XTMP("IVM2B102","COMPLETED")) D  Q
 | 
|---|
 | 58 |  .S OK=0 D IVM2 S TXT(1)=X_" process was completed in a"
 | 
|---|
 | 59 |  .S TXT(2)="previous run.  Nothing Done!"
 | 
|---|
 | 60 |  .D BMES^XPDUTL(.TXT),LMINUS
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 |  S X=$G(^XTMP("IVM2B102",0))
 | 
|---|
 | 63 |  I $$DT^XLFDT=$P(X,U,2) D  Q
 | 
|---|
 | 64 |  .S OK=0 D IVM2 S TXT(1)=X_" is complete for today."
 | 
|---|
 | 65 |  .S TXT(2)="Please re-start tomorrow."
 | 
|---|
 | 66 |  .D BMES^XPDUTL(.TXT),LMINUS
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 |  S TASKNUM=$G(^XTMP("IVM2B102","TASK"))
 | 
|---|
 | 69 |  I +TASKNUM D  Q
 | 
|---|
 | 70 |  .S STAT=$$ACTIVE(TASKNUM)
 | 
|---|
 | 71 |  .I STAT>0 D
 | 
|---|
 | 72 |  ..S OK=0 D IVM2
 | 
|---|
 | 73 |  ..S TXT(1)="Task: "_TASKNUM_" is currently running the"
 | 
|---|
 | 74 |  ..S TXT(2)=X_" process."
 | 
|---|
 | 75 |  ..S TXT(3)="Duplicate processes cannot be started."
 | 
|---|
 | 76 |  ..D BMES^XPDUTL(.TXT)
 | 
|---|
 | 77 |  .D LMINUS
 | 
|---|
 | 78 |  ;
 | 
|---|
 | 79 |  D LMINUS Q
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 | MSG ;create bulletin message in install file.
 | 
|---|
 | 82 |  N TXT
 | 
|---|
 | 83 |  S TXT(1)="This Post Install routine will queue a Z07 HL7 message to be sent to the"
 | 
|---|
 | 84 |  S TXT(2)="Health Eligibility Center (HEC) for all entries in the PATIENT (#2) file"
 | 
|---|
 | 85 |  S TXT(3)="that have a value in the DATE OF DEATH (#.531) field and a"
 | 
|---|
 | 86 |  S TXT(4)="SOURCE OF NOTIFICATION (#.533) value of 1, 2, 3, 4, 5, 8, or 9"
 | 
|---|
 | 87 |  S TXT(5)=" "
 | 
|---|
 | 88 |  D BMES^XPDUTL(.TXT)
 | 
|---|
 | 89 |  Q
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 | MAIL N SITE,STATN,SITENM,XMDUZ,XMSUB,XMY,XMTEXT,MSG
 | 
|---|
 | 92 |  S SITE=$$SITE^VASITE,STATN=$P($G(SITE),"^",3),SITENM=$P($G(SITE),"^",2)
 | 
|---|
 | 93 |  S:$$GET1^DIQ(869.3,"1,",.03,"I")'="P" STATN=STATN_" [TEST]"
 | 
|---|
 | 94 |  D IVM2 S XMDUZ=X,XMSUB=XMDUZ_" - "_STATN_" (IVM*2.0*102)"
 | 
|---|
 | 95 |  S (XMY(DUZ),XMY(.5))=""
 | 
|---|
 | 96 |  S XMTEXT="MSG(" D IVM2
 | 
|---|
 | 97 |  S MSG(1)="The "_X_" process"
 | 
|---|
 | 98 |  S MSG(2)="has completed successfully."
 | 
|---|
 | 99 |  S MSG(3)="Task: "_$G(^XTMP("IVM2B102","TASK"))
 | 
|---|
 | 100 |  S MSG(4)=""
 | 
|---|
 | 101 |  S MSG(5)="Site Station number: "_STATN
 | 
|---|
 | 102 |  S MSG(6)="Site Name: "_SITENM
 | 
|---|
 | 103 |  S MSG(7)=""
 | 
|---|
 | 104 |  S MSG(8)="Final process started at     : "_$P($G(^XTMP("IVM2B102","DATE")),"^",1)
 | 
|---|
 | 105 |  S MSG(8)="Final process completed at   : "_$P($G(^XTMP("IVM2B102","DATE")),"^",2)
 | 
|---|
 | 106 |  S MSG(10)="Total Veterans queued for Z07: "_+$G(^XTMP("IVM2B102",0))
 | 
|---|
 | 107 |  D ^XMD
 | 
|---|
 | 108 |  Q
 | 
|---|
 | 109 |  ;
 | 
|---|
 | 110 | INCYR(XIEN) ;Get valid income year
 | 
|---|
 | 111 |  N I,LMT,TMP,INCYR
 | 
|---|
 | 112 |  I $D(^IVM(301.5,"APT",XIEN)) Q $O(^IVM(301.5,"APT",XIEN,""),-1)
 | 
|---|
 | 113 |  F I=1,2,4 S LMT=$$LST^DGMTU(XIEN,,I) S:+$G(LMT) TMP($P(LMT,"^",2))=""
 | 
|---|
 | 114 |  I $D(TMP) S LMT=$O(TMP(""),-1),INCYR=($E(LMT,1,3)-1)_"0000" Q INCYR
 | 
|---|
 | 115 |  S INCYR=($E(DT,1,3)-1)_"0000"
 | 
|---|
 | 116 |  Q INCYR
 | 
|---|
 | 117 |  ;
 | 
|---|
 | 118 | ACTIVE(TASK) ;Checks if task is running
 | 
|---|
 | 119 |  ;  input  --  The taskman ID
 | 
|---|
 | 120 |  ;  output --  1=The task is running
 | 
|---|
 | 121 |  ;             0=The task is not running
 | 
|---|
 | 122 |  N STAT,ZTSK,Y
 | 
|---|
 | 123 |  S STAT=0,ZTSK=+TASK
 | 
|---|
 | 124 |  D STAT^%ZTLOAD
 | 
|---|
 | 125 |  S Y=ZTSK(1)
 | 
|---|
 | 126 |  I Y=0 S STAT=-1
 | 
|---|
 | 127 |  I ",1,2,"[(","_Y_",") S STAT=1
 | 
|---|
 | 128 |  I ",3,5,"[(","_Y_",") S STAT=0
 | 
|---|
 | 129 |  Q STAT
 | 
|---|
 | 130 | IVM2 S X="IVM*2.0*102 DOD Post-Install transmit Z07's to HEC" Q
 | 
|---|
 | 131 | LMINUS L -^XTMP("IVM2B102") Q
 | 
|---|