[613] | 1 | EAS25UEI ;ALB/CKN - GEOGRAPHIC MEANS TEST PHASE II ; 03-MAR-2003
|
---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**25**;Mar 15, 2001
|
---|
| 3 | ;This post install routine will check inpatient/outpatient encounters,
|
---|
| 4 | ;future appointments and fee basis authorizations to determine
|
---|
| 5 | ;User Enrollee status for each Veteran in PATIENT(#2) file.
|
---|
| 6 | ;User Enrollee data will be stored in PATIENT file and transmitted
|
---|
| 7 | ;to HEC via Z07 HL7 messages.
|
---|
| 8 | Q
|
---|
| 9 | EP ;Entry point
|
---|
| 10 | N DONE,TXT
|
---|
| 11 | ;create bulletin message in install file.
|
---|
| 12 | S TXT(1)="The Post Install will now process through PATIENT (#2) file"
|
---|
| 13 | S TXT(2)="to determine User Enrollee status for each Veteran by checking"
|
---|
| 14 | S TXT(3)="inpatient/outpatient encounter for current fiscal year, any"
|
---|
| 15 | S TXT(4)="future appointments and any fee basis authorizations."
|
---|
| 16 | S TXT(5)=" "
|
---|
| 17 | D BMES^XPDUTL(.TXT)
|
---|
| 18 | ;check for completion of checkpoint, quit if checkpoint completed.
|
---|
| 19 | ;create new checkpoint if necessary
|
---|
| 20 | D CHECK Q:DONE
|
---|
| 21 | D QUETASK
|
---|
| 22 | Q
|
---|
| 23 | CHECK ;Initial checking
|
---|
| 24 | N STAT,TASKNUM
|
---|
| 25 | S DONE=0
|
---|
| 26 | I '$D(^XTMP("EAS*1*25")) Q
|
---|
| 27 | I $G(^XTMP("EAS*1*25","COMPLETED"))=1 D Q
|
---|
| 28 | . N MSG,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 29 | . S (XMDUZ,XMSUB)="USER ENROLLEE INITIAL DETERMINATION PROCESS"
|
---|
| 30 | . S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG("
|
---|
| 31 | . S MSG(1)="User Enrollee initial determination process was completed in previous run."
|
---|
| 32 | . S DONE=1 D ^XMD
|
---|
| 33 | . D BMES^XPDUTL(.MSG)
|
---|
| 34 | S TASKNUM=$G(^XTMP("EAS*1*25","TASK"))
|
---|
| 35 | I TASKNUM'="" D
|
---|
| 36 | . S STAT=$$ACTIVE(TASKNUM)
|
---|
| 37 | . I STAT>0 D
|
---|
| 38 | . . N MSG,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 39 | . . S (XMDUZ,XMSUB)="USER ENROLLEE INITIAL DETERMINATION PROCESS"
|
---|
| 40 | . . S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG("
|
---|
| 41 | . . S MSG(1)="Task: "_TASKNUM_" is currently running User Enrollee determination"
|
---|
| 42 | . . S MSG(2)="process. Duplicate process cannot be started."
|
---|
| 43 | . . S DONE=1 D ^XMD
|
---|
| 44 | . . D BMES^XPDUTL(.MSG)
|
---|
| 45 | Q
|
---|
| 46 | ACTIVE(TASK) ;Checks if task is running or not
|
---|
| 47 | ; input -- The taskman ID
|
---|
| 48 | ; output -- 1=The task is running
|
---|
| 49 | ; 0=The task is not running
|
---|
| 50 | ;
|
---|
| 51 | N ZTSK,STAT,Y
|
---|
| 52 | S STAT=0,ZTSK=+TASK
|
---|
| 53 | D STAT^%ZTLOAD
|
---|
| 54 | S Y=ZTSK(1)
|
---|
| 55 | I Y=0 S STAT=-1
|
---|
| 56 | I ",1,2,"[(","_Y_",") S STAT=1
|
---|
| 57 | I ",3,5,"[(","_Y_",") S STAT=0
|
---|
| 58 | Q STAT
|
---|
| 59 | ;
|
---|
| 60 | QUETASK ;Queue the task
|
---|
| 61 | N TXT,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH
|
---|
| 62 | S ZTRTN="EP1^EAS25UEI",ZTIO="",ZTDTH=$$NOW^XLFDT()
|
---|
| 63 | S ZTDESC="USER ENROLLEE INITIAL DETERMINATION PROCESS"
|
---|
| 64 | D ^%ZTLOAD S ^XTMP("EAS*1*25","TASK")=ZTSK
|
---|
| 65 | S TXT(1)="Task: "_ZTSK_" Queued."
|
---|
| 66 | D BMES^XPDUTL(.TXT)
|
---|
| 67 | Q
|
---|
| 68 | EP1 ;Entry point
|
---|
| 69 | N X,X1,X2,BDT,FDT,UEST,CNT,TXT,XIEN,TOT,ZTSTOP
|
---|
| 70 | S ZTSTOP=0
|
---|
| 71 | S XIEN=+$G(^XTMP("EAS*1*25","CURRENT IEN"))
|
---|
| 72 | S X1=DT,X2=60 D C^%DTC
|
---|
| 73 | S ^XTMP("EAS*1*25",0)=X_"^"_$$DT^XLFDT_"^EAS*1*25 GMT PHASE II-UE POST INSTALL"
|
---|
| 74 | ;store start date
|
---|
| 75 | I '$D(^XTMP("EAS*1*25","DATE")) S $P(^XTMP("EAS*1*25","DATE"),"^",1)=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
|
---|
| 76 | S TOT=$P($G(^XTMP("EAS*1*25",1)),"^"),CNT=$P($G(^XTMP("EAS*1*25",1)),"^",2)
|
---|
| 77 | ;Loop through Patient file (#2)
|
---|
| 78 | F S XIEN=$O(^DPT(XIEN)) Q:+XIEN=0!(ZTSTOP) D
|
---|
| 79 | . S TOT=TOT+1 ;processed records counter
|
---|
| 80 | . S ^XTMP("EAS*1*25","CURRENT IEN")=XIEN
|
---|
| 81 | . I (TOT#1000=0),$$S^%ZTLOAD S ZTSTOP=1 ;Check for Stop request
|
---|
| 82 | . I $$DECEASED^EASMTUTL(XIEN) D Q ; Quit if Deceased
|
---|
| 83 | . . S ^XTMP("EAS*1*25",1)=TOT_"^"_CNT
|
---|
| 84 | . ;Remove current value to avoid any invalid data
|
---|
| 85 | . S CURUE=$P($G(^DPT(XIEN,.361)),"^",7,8)
|
---|
| 86 | . I $P(CURUE,"^")'=""!($P(CURUE,"^",2)'="") D
|
---|
| 87 | . . S (DATA(.3617),DATA(.3618))="@"
|
---|
| 88 | . . S UPD=$$UPD^DGENDBS(2,XIEN,.DATA)
|
---|
| 89 | . . K UPD,DATA,CURUE
|
---|
| 90 | . K TEMP
|
---|
| 91 | . D SCHED,ENC,FBENC ;Determine UE status
|
---|
| 92 | . S UEST=$O(TEMP("UE",9999999),-1) ;get last from all encounters
|
---|
| 93 | . I +$G(UEST) D
|
---|
| 94 | . . S CNT=CNT+1 ;User Enrollee counter
|
---|
| 95 | . . I $$UPDCHK^EASUER(XIEN,UEST) D FILE^EASUER(XIEN,UEST) ;file data
|
---|
| 96 | . S ^XTMP("EAS*1*25",1)=TOT_"^"_CNT
|
---|
| 97 | S $P(^XTMP("EAS*1*25","DATE"),"^",2)=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
|
---|
| 98 | I ZTSTOP D Q
|
---|
| 99 | . N MSG,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 100 | . S (XMDUZ,XMSUB)="USER ENROLLEE INITIAL DETERMINATION PROCESS"
|
---|
| 101 | . S (XMY(.5),XMY(DUZ))="",XMTEXT="MSG("
|
---|
| 102 | . S MSG(1)="USER ENROLLEE INITIAL DETERMINATION PROCESS TASK: "_$G(^XTMP("EAS*1*25","TASK"))
|
---|
| 103 | . S MSG(2)=""
|
---|
| 104 | . S MSG(3)="User Enrollee initial determination process is requested to stop"
|
---|
| 105 | . S MSG(4)="by the user. Please restart the process by using the following"
|
---|
| 106 | . S MSG(5)="command at the programmer prompt:"
|
---|
| 107 | . S MSG(6)=""
|
---|
| 108 | . S MSG(7)="D EP^EAS25UEI"
|
---|
| 109 | . D ^XMD
|
---|
| 110 | D MAIL ;send mailman message to User
|
---|
| 111 | S ^XTMP("EAS*1*25","COMPLETED")=1
|
---|
| 112 | D BMES^XPDUTL("Post install process for initial User Enrollee determination is completed.")
|
---|
| 113 | Q
|
---|
| 114 | SCHED ;Check for future appointment
|
---|
| 115 | N XDT,NODE,SDRESULT
|
---|
| 116 | D GETAPPT^SDAMA201(XIEN,1,"R",DT,,.SDRESULT)
|
---|
| 117 | I SDRESULT>0 D
|
---|
| 118 | . S NODE=$O(^TMP($J,"SDAMA201","GETAPPT",""),-1)
|
---|
| 119 | . S XDT=$G(^TMP($J,"SDAMA201","GETAPPT",NODE,1))
|
---|
| 120 | . S XDT=$$FY^EASUER(XDT) I +$G(XDT) S TEMP("UE",XDT)="SCH"
|
---|
| 121 | Q
|
---|
| 122 | ENC ;Check for Inpatient/Outpatient encounters
|
---|
| 123 | N ENC,DFN,SDRESULT,DFN,VAIP
|
---|
| 124 | S ENC=$$EXOE^SDOEOE(XIEN,3021001,DT)
|
---|
| 125 | I ENC D Q
|
---|
| 126 | . S XDT=$$FY^EASUER(DT),TEMP("UE",XDT)="ENC"
|
---|
| 127 | I $O(^DPT(XIEN,"S",9999999))="" D ;Get appt between Oct1 - today
|
---|
| 128 | . D GETAPPT^SDAMA201(XIEN,1,"R",3021001,DT,.SDRESULT)
|
---|
| 129 | . I SDRESULT>0 D
|
---|
| 130 | . . S XDT=$$FY^EASUER(DT),TEMP("UE",XDT)="ENC"
|
---|
| 131 | I $G(SDRESULT)>0 Q
|
---|
| 132 | S DFN=XIEN D IN5^VADPT I +$G(VAIP(10)) D Q ;Check for Inpatient
|
---|
| 133 | . S XDT=$$FY^EASUER(DT),TEMP("UE",XDT)="ENC"
|
---|
| 134 | Q
|
---|
| 135 | FBENC ;Check for Fee basis encounters
|
---|
| 136 | N EDATE,TDATE
|
---|
| 137 | S TDATE=$$AUTH^FBGMT2(XIEN)
|
---|
| 138 | I TDATE=0!(TDATE<3021001) Q
|
---|
| 139 | S TDATE=$$FY^EASUER(TDATE) I +$G(TDATE) S TEMP("UE",TDATE)="FB"
|
---|
| 140 | Q
|
---|
| 141 | MAIL ;
|
---|
| 142 | N MSG,XMDUZ,XMSUB,XMTEXT,XMY,SITE,STATN,SITENM
|
---|
| 143 | S SITE=$$SITE^VASITE,STATN=$P($G(SITE),"^",3),SITENM=$P($G(SITE),"^",2)
|
---|
| 144 | S (XMDUZ,XMSUB)="GMTII - USER ENROLLEE INITIAL DETERMINATION PROCESS"
|
---|
| 145 | S (XMY(DUZ),XMY(.5))="",XMY("NAIK.CHINTAN@FORUM.VA.GOV")=""
|
---|
| 146 | S XMTEXT="MSG("
|
---|
| 147 | S MSG(1)="User Enrollee initial determination process is completed successfully."
|
---|
| 148 | S MSG(1.5)="Task: "_$G(^XTMP("EAS*1*25","TASK"))
|
---|
| 149 | S MSG(2)=""
|
---|
| 150 | S MSG(3)="Site Station number: "_STATN
|
---|
| 151 | S MSG(4)="Site Name: "_SITENM
|
---|
| 152 | S MSG(5)=""
|
---|
| 153 | S MSG(6)="Process started at : "_$P($G(^XTMP("EAS*1*25","DATE")),"^",1)
|
---|
| 154 | S MSG(7)="Process completed at : "_$P($G(^XTMP("EAS*1*25","DATE")),"^",2)
|
---|
| 155 | S MSG(8)="Total Veterans processed : "_$P($G(^XTMP("EAS*1*25",1)),"^",1)
|
---|
| 156 | S MSG(9)="Total Veterans with UE status: "_$P($G(^XTMP("EAS*1*25",1)),"^",2)
|
---|
| 157 | D ^XMD
|
---|
| 158 | Q
|
---|