1 | DG53632P ;ALB/LBD - Post install routine for DG*5.3*632; 1 NOV 2004
|
---|
2 | ;;5.3;Registration;**632**; Aug 13, 1993
|
---|
3 | ;
|
---|
4 | POST ; Post install entry point
|
---|
5 | D FVINC Q:$G(XPDABORT)=2
|
---|
6 | D UNEMPOW
|
---|
7 | Q
|
---|
8 | FVINC ; Add new entry #86 to the INCONSISTENT DATA ELEMENTS file (#38.6)
|
---|
9 | N DGFDA,DGIEN,DGERR,ROOT,DGWP,DGINC
|
---|
10 | K XPDABORT
|
---|
11 | D BMES^XPDUTL(">>> Adding entry #86 to the INCONSISTENT DATA ELEMENTS file (#38.6) <<<")
|
---|
12 | S DGINC="INEL FIL VET SHOULD BE VET='N'"
|
---|
13 | I $D(^DGIN(38.6,86,0)) D Q
|
---|
14 | .D BMES^XPDUTL(" Internal entry #86 already exists in file #38.6")
|
---|
15 | .I $P($G(^DGIN(38.6,86,0)),U)=DGINC D MES^XPDUTL(" Entry matches incoming inconsistency for Filipino Vet - OK") Q
|
---|
16 | .D MES^XPDUTL(" >>> ERROR: Entry #86 needs to be reviewed by EVS!")
|
---|
17 | .D MES^XPDUTL(" Existing entry: "_$P($G(^DGIN(38.6,86,0)),U))
|
---|
18 | .D MES^XPDUTL(" Incoming entry: "_DGINC)
|
---|
19 | .D BMES^XPDUTL(" <<<< INSTALLATION ABORTED >>>>")
|
---|
20 | .S XPDABORT=2
|
---|
21 | S ROOT="DGFDA(38.6,""?+1,"")"
|
---|
22 | S @ROOT@(.01)=DGINC
|
---|
23 | S @ROOT@(2)="INELIGIBLE FILIPINO VETERAN SHOULD HAVE A VETERAN STATUS OF 'NO'"
|
---|
24 | S @ROOT@(3)=3
|
---|
25 | S @ROOT@(50)="DGWP"
|
---|
26 | S DGWP(1,0)="Inconsistency results if a veteran has a Filipino Veteran branch of"
|
---|
27 | S DGWP(2,0)="service (F.COMMONWEALTH, F.GUERILLA, F.SCOUTS NEW, or F.SCOUTS OLD),"
|
---|
28 | S DGWP(3,0)="but is ineligible because of no World War II military service dates"
|
---|
29 | S DGWP(4,0)="or no proof of F.Vet eligibility (for the first three BOS only), and"
|
---|
30 | S DGWP(5,0)="the Veteran Status is set to 'YES'."
|
---|
31 | S DGIEN(1)=86
|
---|
32 | D UPDATE^DIE("","DGFDA","DGIEN","DGERR")
|
---|
33 | I $D(DGERR) D Q
|
---|
34 | .D BMES^XPDUTL(" >>> ERROR: "_DGINC_" not added to file #38.6")
|
---|
35 | .D MES^XPDUTL(" "_DGERR("DIERR",1)_": "_DGERR("DIERR",1,"TEXT",1))
|
---|
36 | .D BMES^XPDUTL(" <<<< INSTALLATION ABORTED >>>>")
|
---|
37 | .S XPDABORT=2
|
---|
38 | D BMES^XPDUTL(" "_DGINC_" successfully added.")
|
---|
39 | Q
|
---|
40 | ;
|
---|
41 | UNEMPOW ; Run update process for Unemployable and POW Veterans
|
---|
42 | D BMES^XPDUTL(">>> Update process for Unemployable and POW Veterans <<<")
|
---|
43 | Q:'$$CHK
|
---|
44 | D QUETASK
|
---|
45 | Q
|
---|
46 | QUETASK ; Queue the Unemp/POW Vet update job
|
---|
47 | N TXT,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH
|
---|
48 | S ZTRTN="EN^DG53632P",ZTIO="",ZTDTH=$$NOW^XLFDT()
|
---|
49 | S ZTDESC="UPDATE PROCESS FOR UNEMPLOYABLE AND POW VETS"
|
---|
50 | D ^%ZTLOAD S ^XTMP("DG53632P",0,"TASK")=$G(ZTSK)
|
---|
51 | S TXT=$S($G(ZTSK):"Task: "_ZTSK_" Queued.",1:"Error: Process not queued!")
|
---|
52 | D BMES^XPDUTL(TXT)
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | EN ; Entry point for queued process
|
---|
56 | I $G(ZTSK) S ZTREQ="@"
|
---|
57 | S $P(^XTMP("DG53632P",0,"DATE"),U,1)=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
|
---|
58 | ; Loop through Patient file "AENRC" x-ref for verified enrollments (2)
|
---|
59 | N DFN
|
---|
60 | S DFN=0
|
---|
61 | F S DFN=$O(^DPT("AENRC",2,DFN)) Q:'DFN D
|
---|
62 | .I $$POW(DFN) D Q
|
---|
63 | ..S ^XTMP("DG53632P","POWTOT")=$G(^XTMP("DG53632P","POWTOT"))+1
|
---|
64 | ..D UPRX(DFN,"POW")
|
---|
65 | .I $$UNEMP(DFN) D
|
---|
66 | ..S ^XTMP("DG53632P","UNEMPTOT")=$G(^XTMP("DG53632P","UNEMPTOT"))+1
|
---|
67 | ..D UPRX(DFN,"UNEMP")
|
---|
68 | S $P(^XTMP("DG53632P",0,"DATE"),U,2)=$$FMTE^XLFDT($$NOW^XLFDT(),"5P")
|
---|
69 | S ^XTMP("DG53632P",0,"COMPLETED")=1
|
---|
70 | D SENDMSG
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | POW(DFN) ; Is veteran a POW?
|
---|
74 | I '$G(DFN) Q 0
|
---|
75 | I $P($G(^DPT(DFN,.52)),U,5)="Y" Q 1 ;POW Indicator='Y'
|
---|
76 | I +$G(^DPT(DFN,.36))=18 Q 1 ;Primary Eligibility code = POW
|
---|
77 | I $D(^DPT(DFN,"E",18)) Q 1 ;Secondary Eligibility code = POW
|
---|
78 | Q 0
|
---|
79 | ;
|
---|
80 | UNEMP(DFN) ; Is veteran Unemployable Priority 1?
|
---|
81 | N DGENRIEN
|
---|
82 | S DGENRIEN=$$FINDCUR^DGENA(DFN) Q:'DGENRIEN 0 ;Get current enrollment
|
---|
83 | Q:'$$GET^DGENA(DGENRIEN,.DGENR) 0 ;Get enrollment data
|
---|
84 | Q:$G(DGENR("PRIORITY"))'=1 0 ;Quit if not priority group 1
|
---|
85 | Q:$G(DGENR("ELIG","UNEMPLOY"))'="Y" 0 ;Quit if not unemployable
|
---|
86 | Q:$G(DGENR("ELIG","SCPER"))>49 0 ;Quit if SC % 50-100
|
---|
87 | Q 1
|
---|
88 | ;
|
---|
89 | UPRX(DFN,EX) ; Update RX Copay status in Annual Means Test file (#408.31)
|
---|
90 | ; and Billing Patient file (#354)
|
---|
91 | ; INPUT - DFN = Patient IEN
|
---|
92 | ; EX = Exemption type, either POW or UNEMP
|
---|
93 | N REAS,STAT
|
---|
94 | I '$D(^IBA(354,DFN)) Q
|
---|
95 | S STAT=$$GET1^DIQ(354,DFN_",",.04,"E")
|
---|
96 | S REAS=$$GET1^DIQ(354,DFN_",",.05,"E")
|
---|
97 | I REAS[EX Q ;correct exemption type already set
|
---|
98 | I EX="POW",STAT="EXEMPT",REAS'["INCOME" Q
|
---|
99 | D EN^DGMTCOR ;Update RX copay test and IB file #354
|
---|
100 | S ^XTMP("DG53632P",EX_"UP")=$G(^XTMP("DG53632P",EX_"UP"))+1
|
---|
101 | S ^XTMP("DG53632P","VET",DFN)=EX
|
---|
102 | Q
|
---|
103 | CHK() ; Check if Unemp Vet update process should be run
|
---|
104 | N CDT,TASK,TXT
|
---|
105 | I '$D(^XTMP("DG53632P",0)) S ^XTMP("DG53632P",0)=$$FMADD^XLFDT(DT,60)_U_DT_U_"DG*5.3*632 POST-INSTALL UPDATE FOR POW & UNEMP VETS" Q 1
|
---|
106 | I $G(^XTMP("DG53632P",0,"COMPLETED")) D Q 0
|
---|
107 | .S CDT=$P($G(^XTMP("DG53632P",0,"DATE")),U,2)
|
---|
108 | .S TXT(1)="The update process for Unemployable and POW Veterans was completed"
|
---|
109 | .S TXT(2)="on "_CDT
|
---|
110 | .D BMES^XPDUTL(.TXT)
|
---|
111 | S TASK=$G(^XTMP("DG53632P",0,"TASK")) I 'TASK Q 1
|
---|
112 | I $$ACTIVE(TASK) D Q 0
|
---|
113 | .S TXT(1)="Task: "_TASK_" is currently running the update process for unemployable"
|
---|
114 | .S TXT(2)="& POW veterans. A duplicate job cannot be started."
|
---|
115 | .D BMES^XPDUTL(.TXT)
|
---|
116 | Q 1
|
---|
117 | ACTIVE(TASK) ; Check if task is running
|
---|
118 | ; Input -- TASK = Task number
|
---|
119 | ; Output -- 1 = Task is running
|
---|
120 | ; 0 = Task is not running
|
---|
121 | N STAT,ZTSK,Y
|
---|
122 | S STAT=0,ZTSK=+$G(TASK) I 'ZTSK Q STAT
|
---|
123 | D STAT^%ZTLOAD
|
---|
124 | S Y=ZTSK(1)
|
---|
125 | I "^1^2^"[(U_Y_U) S STAT=1
|
---|
126 | I "^3^5^"[(U_Y_U) S STAT=0
|
---|
127 | Q STAT
|
---|
128 | ;
|
---|
129 | SENDMSG ; Send Mailman bulletin when process completes
|
---|
130 | N SITE,STATN,SITENM,XMDUZ,XMSUB,XMY,XMTEXT,MSG
|
---|
131 | S SITE=$$SITE^VASITE,STATN=$P($G(SITE),U,3),SITENM=$P($G(SITE),U,2)
|
---|
132 | S:$$GET1^DIQ(869.3,"1,",.03,"I")'="P" STATN=STATN_" [TEST]"
|
---|
133 | S XMDUZ="UNEMPLOYABLE AND POW VETS UPDATE",XMSUB=XMDUZ_" (DG*5.3*632) - "_STATN
|
---|
134 | S (XMY(DUZ),XMY("linda.desmond@med.va.gov"))=""
|
---|
135 | S XMTEXT="MSG("
|
---|
136 | S MSG(1)="The post-install process for patch DG*5.3*632 has completed successfully."
|
---|
137 | S MSG(2)="This process searched for POW and Priority 1 Unemployable Veterans and"
|
---|
138 | S MSG(3)="updated their RX copay status to Exempt in the Billing Patient file #354,"
|
---|
139 | S MSG(3.1)="if necessary."
|
---|
140 | S MSG(4)=""
|
---|
141 | S MSG(5)="Task: "_$G(^XTMP("DG53632P",0,"TASK"))
|
---|
142 | S MSG(6)="Site Station Number: "_STATN
|
---|
143 | S MSG(7)="Site Name: "_SITENM
|
---|
144 | S MSG(8)=""
|
---|
145 | S MSG(9)="Process started : "_$P($G(^XTMP("DG53632P",0,"DATE")),U,1)
|
---|
146 | S MSG(10)="Process completed : "_$P($G(^XTMP("DG53632P",0,"DATE")),U,2)
|
---|
147 | S MSG(10.5)=""
|
---|
148 | S MSG(11)="Total Priority 1 Unemployable Vets : "_+$G(^XTMP("DG53632P","UNEMPTOT"))
|
---|
149 | S MSG(12)="Total RX Copay Status Updates : "_+$G(^XTMP("DG53632P","UNEMPUP"))
|
---|
150 | S MSG(12.5)=""
|
---|
151 | S MSG(13)="Total Former POW Veterans : "_+$G(^XTMP("DG53632P","POWTOT"))
|
---|
152 | S MSG(14)="Total RX Copay Status Updates : "_+$G(^XTMP("DG53632P","POWUP"))
|
---|
153 | D ^XMD
|
---|
154 | Q
|
---|