| 1 | IVM2101C ;ALB/CKN,GTS - FILED BY IVM FLAG CLEANUP ; 2/17/05 4:52pm | 
|---|
| 2 | ;;2.0;INCOME VERIFICATION MATCH;**101**; 21-OCT-94;Build 5 | 
|---|
| 3 | Q | 
|---|
| 4 | TEST ; Test Mode | 
|---|
| 5 | S MODE=0 | 
|---|
| 6 | ; | 
|---|
| 7 | EP ; | 
|---|
| 8 | N TXT | 
|---|
| 9 | ;Create bulletin message in install file. | 
|---|
| 10 | ;Quit if initial check fails. | 
|---|
| 11 | Q:$$CHECK() | 
|---|
| 12 | ;Queue task | 
|---|
| 13 | D QUETASK | 
|---|
| 14 | Q | 
|---|
| 15 | NMSPC() ; | 
|---|
| 16 | Q "IVM*2*101" | 
|---|
| 17 | ; | 
|---|
| 18 | CHECK() ;Initial Checking | 
|---|
| 19 | ; Output : 0 - Conversion not running or completed | 
|---|
| 20 | ;          1 - Task is running or completed | 
|---|
| 21 | ; | 
|---|
| 22 | N DONE,STAT,TASKNUM,NAMESPC | 
|---|
| 23 | S DONE=0 | 
|---|
| 24 | S NAMESPC=$$NMSPC() | 
|---|
| 25 | I '$D(^XTMP(NAMESPC)) Q DONE | 
|---|
| 26 | I $G(^XTMP(NAMESPC,"CONFIG","COMPLETED"))=1 D  Q DONE | 
|---|
| 27 | . D DONEMSG | 
|---|
| 28 | . S DONE=1 | 
|---|
| 29 | S TASKNUM=$G(^XTMP(NAMESPC,"CONFIG","TASK")) | 
|---|
| 30 | I TASKNUM'="" D | 
|---|
| 31 | . S STAT=$$ACTIVE(TASKNUM) | 
|---|
| 32 | . I STAT>0 D RUNMSG S DONE=1 | 
|---|
| 33 | Q DONE | 
|---|
| 34 | ACTIVE(TASK) ;Checks if task is running or not | 
|---|
| 35 | ;  input   --   The taskman ID | 
|---|
| 36 | ;  output  --   1=The task is running | 
|---|
| 37 | ;               0=The task is not running | 
|---|
| 38 | ; | 
|---|
| 39 | N ZTSK,STAT,Y | 
|---|
| 40 | S STAT=0,ZTSK=+TASK | 
|---|
| 41 | D STAT^%ZTLOAD | 
|---|
| 42 | S Y=ZTSK(1) | 
|---|
| 43 | I Y=0 S STAT=-1 | 
|---|
| 44 | I ",1,2,"[(","_Y_",") S STAT=1 | 
|---|
| 45 | I ",3,5,"[(","_Y_",") S STAT=0 | 
|---|
| 46 | Q STAT | 
|---|
| 47 | ; | 
|---|
| 48 | QUETASK ;Queue the Task | 
|---|
| 49 | N TXT,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH,NAMESPC | 
|---|
| 50 | S NAMESPC=$$NMSPC() | 
|---|
| 51 | S ZTRTN="EP1^IVM2101C",ZTIO="",ZTDTH=$$NOW^XLFDT() | 
|---|
| 52 | S ZTDESC=NAMESPC_" - FILED BY IVM FLAG CLEANUP" | 
|---|
| 53 | ; Create XTMP array | 
|---|
| 54 | S X1=DT,X2=120 D C^%DTC | 
|---|
| 55 | S ^XTMP(NAMESPC,0)=X_"^"_$$DT^XLFDT_"^"_NAMESPC_" FIX FILED BY IVM ERROR" | 
|---|
| 56 | D ^%ZTLOAD S ^XTMP(NAMESPC,"CONFIG","TASK")=ZTSK | 
|---|
| 57 | S TXT(1)="Task: "_ZTSK_" Queued." | 
|---|
| 58 | D BMES^XPDUTL(.TXT) | 
|---|
| 59 | Q | 
|---|
| 60 | EP1 ;Entry Point | 
|---|
| 61 | N XIEN,XIYR,EIEN,XRELIEN,XDGMT,AMTIEN,SOURCE,FIVM,NAMESPC | 
|---|
| 62 | N X,X1,X2,TOT,CNT,ZTSTOP | 
|---|
| 63 | S ZTSTOP=0 | 
|---|
| 64 | S NAMESPC=$$NMSPC() | 
|---|
| 65 | S XIEN=+$G(^XTMP(NAMESPC,"CONFIG","CURRENT IEN")) | 
|---|
| 66 | ; Update XTMP array 0 node purge date. | 
|---|
| 67 | S X1=DT,X2=120 D C^%DTC | 
|---|
| 68 | S ^XTMP(NAMESPC,0)=X_"^"_$$DT^XLFDT_"^"_NAMESPC_" FIX FILED BY IVM ERROR" | 
|---|
| 69 | ;Store start date | 
|---|
| 70 | I '$D(^XTMP(NAMESPC,"CONFIG","START DATE")) S ^XTMP(NAMESPC,"CONFIG","START DATE")=$$FMTE^XLFDT($$NOW^XLFDT(),"5P") | 
|---|
| 71 | S TOT=+$G(^XTMP(NAMESPC,"CONFIG","TOTAL PROCESSED")) | 
|---|
| 72 | S CNT=+$G(^XTMP(NAMESPC,"CONFIG","TOTAL FOUND")) | 
|---|
| 73 | ;Loop through 408.12 file - get Veteran IEN | 
|---|
| 74 | F  S XIEN=$O(^DGPR(408.12,"B",XIEN)) Q:+XIEN=0!(ZTSTOP)  D | 
|---|
| 75 | . S TOT=TOT+1  ;Processed records counter | 
|---|
| 76 | . S ^XTMP(NAMESPC,"CONFIG","TOTAL PROCESSED")=TOT | 
|---|
| 77 | . S ^XTMP(NAMESPC,"CONFIG","CURRENT IEN")=XIEN | 
|---|
| 78 | . I (TOT#1000=0),$$S^%ZTLOAD S ZTSTOP=1  ;Check for stop request | 
|---|
| 79 | . S XRELIEN=0 | 
|---|
| 80 | . ;Get 408.12 iens for each Veteran | 
|---|
| 81 | . F  S XRELIEN=$O(^DGPR(408.12,"B",XIEN,XRELIEN)) Q:XRELIEN=""  D | 
|---|
| 82 | . . S EIEN=0 | 
|---|
| 83 | . . F  S EIEN=$O(^DGPR(408.12,XRELIEN,"E",EIEN)) Q:EIEN=""  D | 
|---|
| 84 | . . . ;Get Filed By IVM flag | 
|---|
| 85 | . . . S FIVM=$P($G(^DGPR(408.12,XRELIEN,"E",EIEN,0)),"^",3) | 
|---|
| 86 | . . . I FIVM="" Q  ;Quit if flag is not set | 
|---|
| 87 | . . . ; Get Annual Means test ien for FILED BY IVM flag | 
|---|
| 88 | . . . S AMTIEN=$P($G(^DGPR(408.12,XRELIEN,"E",EIEN,0)),"^",4) | 
|---|
| 89 | . . . Q:AMTIEN=""  ;Quit if Annual MT IEN is not set. | 
|---|
| 90 | . . . S XIYR=$P($G(^DGMT(408.31,AMTIEN,0)),"^")  ;Income Year | 
|---|
| 91 | . . . I XIYR<3040000 Q  ;Quit if income year is less than 2004 | 
|---|
| 92 | . . . ;Get source of MT | 
|---|
| 93 | . . . S SOURCE=$P($G(^DGMT(408.31,AMTIEN,0)),"^",23) | 
|---|
| 94 | . . . ;If SOURCE OF INCOME TEST is VAMC or OTHER FACILITY | 
|---|
| 95 | . . . I (FIVM=1),((SOURCE=1)!(SOURCE=4)) D | 
|---|
| 96 | . . . . S SOURCE=SOURCE_"^"_$P($G(^DG(408.34,SOURCE,0)),"^",1) | 
|---|
| 97 | . . . . S CNT=CNT+1,^XTMP(NAMESPC,"CONFIG","TOTAL FOUND")=CNT | 
|---|
| 98 | . . . . S ^XTMP(NAMESPC,CNT,"PATIENT IEN")=XIEN | 
|---|
| 99 | . . . . S ^XTMP(NAMESPC,CNT,"ANNUAL MT IEN")=AMTIEN | 
|---|
| 100 | . . . . S ^XTMP(NAMESPC,CNT,"PATIENT RELATION IEN")=XRELIEN | 
|---|
| 101 | . . . . S ^XTMP(NAMESPC,CNT,"SOURCE OF INCOME TEST")=SOURCE | 
|---|
| 102 | . . . . S ^XTMP(NAMESPC,CNT,"PREVIOUS FILED BY IVM")=FIVM_"^YES" | 
|---|
| 103 | . . . . ;Reset FILED BY IVM field to NULL | 
|---|
| 104 | . . . . S $P(^DGPR(408.12,XRELIEN,"E",EIEN,0),"^",3)="" | 
|---|
| 105 | S ^XTMP(NAMESPC,"CONFIG","STOP DATE")=$$FMTE^XLFDT($$NOW^XLFDT(),"5P") | 
|---|
| 106 | I ZTSTOP D  Q | 
|---|
| 107 | . D ABORTMSG | 
|---|
| 108 | S ^XTMP(NAMESPC,"CONFIG","COMPLETED")=1 | 
|---|
| 109 | D COMPMSG | 
|---|
| 110 | Q | 
|---|
| 111 | ; | 
|---|
| 112 | DONEMSG ;Send message that process is already Completed. | 
|---|
| 113 | N MSG,XMDUZ,XMSUB,XMTEXT,XMY | 
|---|
| 114 | S XMSUB=NAMESPC_" - FILED BY IVM FLAG CLEANUP already completed" | 
|---|
| 115 | S XMDUZ=NAMESPC_" INSTALLATION PROCESS" | 
|---|
| 116 | S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG(" | 
|---|
| 117 | S MSG(1)="FILED BY IVM FLAG CLEANUP process was completed in previous run." | 
|---|
| 118 | D ^XMD | 
|---|
| 119 | D BMES^XPDUTL(.MSG) | 
|---|
| 120 | Q | 
|---|
| 121 | RUNMSG ;Send message that process is currently running. | 
|---|
| 122 | N NAMESPC,MSG,XMDUZ,XMSUB,XMTEXT,XMY | 
|---|
| 123 | S NAMESPC=$$NMSPC() | 
|---|
| 124 | S XMSUB=NAMESPC_" - FILED BY IVM FLAG CLEANUP running" | 
|---|
| 125 | S XMDUZ=NAMESPC_" INSTALLATION PROCESS" | 
|---|
| 126 | S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG(" | 
|---|
| 127 | S MSG(1)="TASK: "_TASKNUM_" is currently running FILED BY IVM FLAG CLEANUP" | 
|---|
| 128 | S MSG(2)="process. Duplicate process cannot be started." | 
|---|
| 129 | D ^XMD | 
|---|
| 130 | D BMES^XPDUTL(.MSG) | 
|---|
| 131 | Q | 
|---|
| 132 | ABORTMSG ;Send message for stop request. | 
|---|
| 133 | N MSG,XMDUX,XMSUB,XMTEXT,XMY | 
|---|
| 134 | S XMSUB=NAMESPC_" - FILED BY IVM FLAG CLEANUP stopped" | 
|---|
| 135 | S XMDUZ=NAMESPC_" INSTALLATION PROCESS" | 
|---|
| 136 | S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG(" | 
|---|
| 137 | S MSG(1)="TASK: "_$G(^XTMP(NAMESPC,"CONFIG","TASK"))_" FILED BY IVM FLAG CLEANUP" | 
|---|
| 138 | S MSG(2)="" | 
|---|
| 139 | S MSG(3)="FILED BY IVM error cleanup process was requested to stop" | 
|---|
| 140 | S MSG(4)="by the user. Please restart the process by using the following" | 
|---|
| 141 | S MSG(5)="command at the programmer prompt:" | 
|---|
| 142 | S MSG(6)="D EP^IVM2101C" | 
|---|
| 143 | D ^XMD | 
|---|
| 144 | Q | 
|---|
| 145 | COMPMSG ;Send message for completed Task. | 
|---|
| 146 | N MSG,XMDUX,XMSUB,XMTEXT,XMY | 
|---|
| 147 | S XMSUB=NAMESPC_" - FILED BY IVM FLAG CLEANUP completed" | 
|---|
| 148 | S XMDUZ=NAMESPC_" INSTALLATION PROCESS" | 
|---|
| 149 | S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG(" | 
|---|
| 150 | S MSG(1)="TASK: "_$G(^XTMP(NAMESPC,"CONFIG","TASK"))_" FILED BY IVM FLAG CLEANUP" | 
|---|
| 151 | S MSG(2)="" | 
|---|
| 152 | S MSG(3)="FILED BY IVM error cleanup process has completed.  Review the" | 
|---|
| 153 | S MSG(4)="following ^XTMP global for details on the Patient Relation file (408.12)" | 
|---|
| 154 | S MSG(5)="records converted: ^XTMP("""_NAMESPC_"""," | 
|---|
| 155 | S MSG(6)="" | 
|---|
| 156 | S MSG(7)="This global will be deleted in no more than 120 days from the date" | 
|---|
| 157 | S MSG(8)="of this message." | 
|---|
| 158 | D ^XMD | 
|---|
| 159 | Q | 
|---|