1 | OOPSDOL ;WIOFO/CAH-ASISTS TRANSMISSION OF CA1/CA2 TO DOL ;3/15/00
|
---|
2 | ;;2.0;ASISTS;;Jun 03, 2002
|
---|
3 | ;
|
---|
4 | N ARR,FIELD,FL,MSG,VAL,XMZ
|
---|
5 | S MAN=1
|
---|
6 | ;Check for security keys
|
---|
7 | I '$D(^XUSEC("OOPS DOL XMIT DATA",DUZ)) D G EXIT
|
---|
8 | .S DIR(0)="FO" W !
|
---|
9 | .S DIR("A")="You do not have the required Security Key."
|
---|
10 | .S DIR("A")=DIR("A")_" Press Enter to continue"
|
---|
11 | .D ^DIR K DIR
|
---|
12 | ;Assure the Queue (Q-AST) has been defined
|
---|
13 | S VAL="Q-AST.MED.VA.GOV",FIELD=.01,FL="X"
|
---|
14 | D FIND^DIC(4.2,"",FIELD,FL,VAL,"","","","","ARR")
|
---|
15 | I '$D(ARR("DILIST",1)) D G EXIT
|
---|
16 | .S DIR(0)="FO" W !
|
---|
17 | .S DIR("A")="Domain not found in the DOMAIN File,"
|
---|
18 | .S DIR("A")=DIR("A")_" No Transmission. Press Enter to continue"
|
---|
19 | .D ^DIR K DIR
|
---|
20 | S DIR(0)="D"
|
---|
21 | S DIR("A")="Re-transmit cases for what date "
|
---|
22 | S DIR("?",1)="Enter the date of original transmission for cases "
|
---|
23 | S DIR("?")="that need to be resent"
|
---|
24 | D ^DIR K DIR G:$D(DIRUT) EXIT I Y S RDATE=Y
|
---|
25 | S DIR(0)="Y",DIR("B")="Y",DIR("A")="Do you want to Queue Transmission"
|
---|
26 | S DIR("?",1)="Enter 'Y' if you want the CA1/CA2 data placed in mail"
|
---|
27 | S DIR("?")="message as part of a tasked job."
|
---|
28 | D ^DIR K DIR G:$D(DIRUT) EXIT I Y D G EXIT
|
---|
29 | .S ZTRTN="EN^OOPSDOL",ZTIO=""
|
---|
30 | .S ZTDESC="TRANSMIT DOL CA1/CA2 DATA"
|
---|
31 | .D ^%ZTLOAD
|
---|
32 | S DIR(0)="Y"
|
---|
33 | S DIR("A")="Transmission NOT queued, OK to continue"
|
---|
34 | D ^DIR K DIR I 'Y G EXIT
|
---|
35 | S MSG("DIHELP",1)="Processing" W !
|
---|
36 | D MSG^DIALOG("WH","","","","MSG")
|
---|
37 | EN ;Routine Entry
|
---|
38 | S WOK=1
|
---|
39 | N CNT,ERR,ERROR,FAIL,OPMG,OPQ
|
---|
40 | K VMSG,INV ; used for data validation of records
|
---|
41 | S CTR=1 ; counter for Mail message array
|
---|
42 | S (START,END,FAIL)=""
|
---|
43 | ; Assure the Queue (Q-AST) has been defined
|
---|
44 | S VAL="Q-AST.MED.VA.GOV",FIELD=.01,FL="X"
|
---|
45 | D FIND^DIC(4.2,"",FIELD,FL,VAL,"","","","","ARR")
|
---|
46 | I '$D(ARR("DILIST",1)) D G EXIT
|
---|
47 | . S ERROR(1)="The Queue Q-AST.MED.VA.GOV has not been created. Please contact your IRM "
|
---|
48 | . S ERROR(2)="Dept. to have Patch XM*999*136 installed; once installed complete manual "
|
---|
49 | . S ERROR(3)="transmission of DOL Data."
|
---|
50 | . D ERROR2
|
---|
51 | ; Make sure Mail Group Exists
|
---|
52 | S OPMG=$$FIND1^DIC(3.8,"","X","OOPS WC MESSAGE")
|
---|
53 | I 'OPMG D G EXIT
|
---|
54 | . S ERROR(1)="The Mail Group OOPS WC MESSAGE is missing."
|
---|
55 | . S ERROR(2)="Add the Group so that ASISTS data can be transmitted "
|
---|
56 | . S ERROR(3)="to the AAC. Then contact Worker Compensation office "
|
---|
57 | . S ERROR(4)="to complete manual Transmission of DOL Data."
|
---|
58 | . D ERROR
|
---|
59 | ; Get list of members
|
---|
60 | D LIST^DIC(3.81,","_OPMG_",","","",1,"","","","","","OPQ")
|
---|
61 | I '$P(OPQ("DILIST",0),U) D G EXIT
|
---|
62 | . S ERROR(1)="There are no members of the OOPS WC MESSAGE "
|
---|
63 | . S ERROR(1)=ERROR(1)_"Mail Group."
|
---|
64 | . S ERROR(2)="Enter at least one member to the group. This person "
|
---|
65 | . S ERROR(3)="will receive messages concerning the transmission of "
|
---|
66 | . S ERROR(4)="ASISTS DOL data to and from the AAC. After adding member"
|
---|
67 | . S ERROR(5)="contact Worker Compensation office to complete manual transmission of DOL data."
|
---|
68 | . D ERROR
|
---|
69 | GETREC ; Loop thru ^OOP(2260 "AW" or "AWC" XRef to get records to transmit
|
---|
70 | ; AW=Schedule Transmission
|
---|
71 | ; AWC=Manual Transmission
|
---|
72 | N OOPDA,SMSG,STA,XMDUZ,XMTEXT,XMSUB,XMY,MDATA,VALID
|
---|
73 | N Y,%,%H,%I
|
---|
74 | K ^TMP($J,"C"),^TMP($J,"D")
|
---|
75 | S (CNT,OOPDA)=0
|
---|
76 | D NOW^%DTC S DATE=%,Y=DATE X ^DD("DD")
|
---|
77 | S MTIME=$P(Y,"@",2),DATE=$$DC^OOPSUTL3(%)
|
---|
78 | I $D(MAN) S INDEX="^OOPS(2260,""AWC"",OPI)",INDEX2="^OOPS(2260,""AWC"",OPI,OOPDA)"
|
---|
79 | E S INDEX="^OOPS(2260,""AW"",OPI)",INDEX2="^OOPS(2260,""AW"",OPI,OOPDA)"
|
---|
80 | S OPI=0 F S OPI=$O(@INDEX) Q:'OPI D
|
---|
81 | .S OOPDA=0 F S OOPDA=$O(@INDEX2) Q:'OOPDA D
|
---|
82 | .. I $D(MAN),OPI'=RDATE Q
|
---|
83 | .. I '$G(MAN),($$GET1^DIQ(2260,OOPDA,66)'="") D Q
|
---|
84 | ... K ^OOPS(2260,"AW",OPI,OOPDA)
|
---|
85 | .. I '$$VERIFY^OOPSUTL6(OOPDA) Q ; verify data not chged
|
---|
86 | .. S VALID=$$VAL^OOPSUTL5(OOPDA)
|
---|
87 | .. ; Get Station #, use w/Mail Grp by Station for messages, if there
|
---|
88 | .. S STA=$$GET1^DIQ(4,$P(^OOPS(2260,OOPDA,"2162A"),U,9),99,"E")
|
---|
89 | .. ; Valid Case
|
---|
90 | .. I $G(VALID)'="" S CNT=CNT+1,^TMP($J,"C",OOPDA)="",SMSG(STA,OOPDA)="" Q
|
---|
91 | .. ; Invalid Case
|
---|
92 | .. S T="" F S T=$O(NULL(T)) Q:'T S ^TMP($J,"D",STA,OOPDA,T)=$G(NULL(T))
|
---|
93 | S ^TMP($J,"C")=CNT
|
---|
94 | NOCASES ; No Cases to Send - Send Mail Message with only DOL segment
|
---|
95 | I $D(MAN),CNT=0 D G EXIT
|
---|
96 | .S DIR(0)="FO"
|
---|
97 | .S DIR("A")="No cases to transmit for requested date"
|
---|
98 | .D ^DIR K DIR
|
---|
99 | I CNT=0 D G EXIT
|
---|
100 | . S XMDUZ="ASISTS Report on Daily Transmission to the AAC"
|
---|
101 | . S GRP="OOPS WC MESSAGE"
|
---|
102 | . S XMY("G."_GRP)=""
|
---|
103 | . ; If no one in mail group (this should not occur), send to user
|
---|
104 | . I $D(XMY)<9 S XMY(DUZ)=""
|
---|
105 | . S XMSUB="ASISTS no claims to process"
|
---|
106 | . S XMTEXT="MSG("
|
---|
107 | . S MSG(1)="There were no claims ready for transmission"
|
---|
108 | . S MSG(2)="to the Austin Automation Center when the."
|
---|
109 | . S MSG(3)="scheduled task last ran."
|
---|
110 | . D ^XMD
|
---|
111 | . K MSG
|
---|
112 | . Q
|
---|
113 | PROCESS ;
|
---|
114 | D CREATE G:FAIL EXIT
|
---|
115 | ; START - First case number in MM, End - Last Case # in MM
|
---|
116 | S OOPDA="",START="",END="",OPAST=""
|
---|
117 | F S OPAST=OOPDA,OOPDA=$O(^TMP($J,"C",OOPDA)) Q:OOPDA="" D
|
---|
118 | . D ^OOPSDOLX
|
---|
119 | . ; if first send, Set DATE TRANSMITTED TO WCMIS in ^OOPS(2260
|
---|
120 | . I $$GET1^DIQ(2260,OOPDA,66)="" D
|
---|
121 | .. K DR S DIE="^OOPS(2260,",(IEN,DA)=OOPDA,DR="66///TODAY"
|
---|
122 | .. D ^DIE K DR,DA,DIE
|
---|
123 | . I $$GET1^DIQ(2260,OOPDA,199,"I")="Y" D WCP^OOPSMBUL(OOPDA,"E")
|
---|
124 | ; If any records left to send and no FAILure
|
---|
125 | I ($G(XMZ)'<1)&('FAIL) D
|
---|
126 | . I END="" S END=$P($P(^OOPS(2260,OPAST,0),U),"-",2)
|
---|
127 | . D SEND
|
---|
128 | EXIT ; Quit the program
|
---|
129 | D BADREC ; Send Mail if any Bad Records
|
---|
130 | D SENTMSG ; Send message to OOPS WCP with sent claims
|
---|
131 | I $G(FAIL) D
|
---|
132 | .S ERROR(1)="Mail Message was not created. Contact Worker Compensation office "
|
---|
133 | .S ERROR(2)="to complete the transmission of ASISTS DOL data."
|
---|
134 | .D ERROR2
|
---|
135 | K CTR,DATE,ERR,ERROR,GRP,INV,OPL,MSIZE,MTIME,XMSUB,XMTEXT,XMY,MSG,MAN
|
---|
136 | K ^TMP($J),%DT,CATY,D,DO,DATA,DI,DIC,DISYS,DIW,DIWI,DAS,DIWT,DN,DQ
|
---|
137 | K END,FL174,FLD,HOUR,I,INDEX,INDEX2,MAX,MIN,OOPSAR,OPAST,OPI,OSHA
|
---|
138 | K OSHASC,P,RPOL,START,T,WOK,X,XMDUN,XMY,XMZ,Y,Z,RDATE,IEN,OPHM,CONV
|
---|
139 | K COPDT,DIWTC,DIWX,OTIME,REL,SIEN
|
---|
140 | Q
|
---|
141 | CREATE ; Create Mailman Message
|
---|
142 | N OPDATA,SN
|
---|
143 | S MSIZE=0
|
---|
144 | I $G(XMZ)'<1 D SEND
|
---|
145 | S OPL=0
|
---|
146 | S XMSUB="ASISTS DOL DATA"
|
---|
147 | S XMDUZ=DUZ
|
---|
148 | D XMZ^XMA2 I XMZ<1 S FAIL=1 Q
|
---|
149 | S SN=$$GET1^DIQ(4,$P($G(^XMB(1,1,"XUS")),U,17),99)
|
---|
150 | S SN=$E("0000000",$L(SN)+1,7)_SN
|
---|
151 | S OPDATA="0DOL^ASISTS^"_SN_U_DATE
|
---|
152 | S OPDATA=OPDATA_U_U_"001"_U_"|"
|
---|
153 | S OPL=OPL+1,^XMB(3.9,XMZ,2,OPL,0)=OPDATA
|
---|
154 | Q
|
---|
155 | SEND ; Send Mailman Message
|
---|
156 | N NUMCASE
|
---|
157 | S ^XMB(3.9,XMZ,2,0)="^3.92A^"_OPL_U_OPL_U_DT
|
---|
158 | ; Set # of Cases in this Mail Message
|
---|
159 | S NUMCASE=$S(START'="":START_"-"_END,1:0)
|
---|
160 | S $P(^XMB(3.9,XMZ,2,1,0),U,5)=NUMCASE
|
---|
161 | ; Indicate last line of message
|
---|
162 | S OPL=OPL+1,^XMB(3.9,XMZ,2,OPL,0)="NNNN"_$C(13)_$C(10)
|
---|
163 | S XMY(DUZ)="" ; also send here, in case of error.
|
---|
164 | S XMY("XXX@Q-AST.MED.VA.GOV")=""
|
---|
165 | S XMCHAN=1 D ENT1^XMD K XMCHAN
|
---|
166 | K XMZ
|
---|
167 | Q
|
---|
168 | BADREC ; If any records with missing data, send mail message
|
---|
169 | S OOPDA=0,OPI=0,STA=""
|
---|
170 | F S STA=$O(^TMP($J,"D",STA)) Q:STA="" K MSG S CTR=1 D
|
---|
171 | . F S OOPDA=$O(^TMP($J,"D",STA,OOPDA)) Q:OOPDA="" D
|
---|
172 | .. S MSG(CTR)="Case: "_$$GET1^DIQ(2260,OOPDA,.01)_" has missing required data or word processing fields that are",CTR=CTR+1
|
---|
173 | .. S MSG(CTR)="larger than DOL requirements. Please edit the case(s); and once completed,",CTR=CTR+1
|
---|
174 | .. S MSG(CTR)="the cases will be transmitted with the next scheduled transmission. ",CTR=CTR+1
|
---|
175 | .. F S OPI=$O(^TMP($J,"D",STA,OOPDA,OPI)) Q:OPI="" D
|
---|
176 | ... S MSG(CTR)=" >"_$G(^TMP($J,"D",STA,OOPDA,OPI)),CTR=CTR+1
|
---|
177 | .. S MSG(CTR)=$C(10),CTR=CTR+1
|
---|
178 | . I $D(MSG) D
|
---|
179 | .. S XMSUB="ASISTS Record(s) not transmitted for Station "_STA
|
---|
180 | .. S GRP="OOPS WCP"
|
---|
181 | .. I $$FIND1^DIC(3.8,"","AMX",GRP_" - "_STA) S GRP=GRP_" - "_STA
|
---|
182 | .. S XMY("G."_GRP)=""
|
---|
183 | .. S XMTEXT="MSG("
|
---|
184 | .. D ^XMD
|
---|
185 | Q
|
---|
186 | SENTMSG ; Send message to OOPS WCP mail group with claims sent to AAC
|
---|
187 | N CNT,MSG,STA,STR,OOPDA
|
---|
188 | S (STA,OOPDA)=""
|
---|
189 | F S STA=$O(SMSG(STA)) Q:STA="" K MSG S CNT=1 D
|
---|
190 | . S MSG(CNT)="The following claims have been transmitted to the AAC:"
|
---|
191 | . S CNT=CNT+1
|
---|
192 | . F S OOPDA=$O(SMSG(STA,OOPDA)) Q:OOPDA="" D
|
---|
193 | .. S STR=^OOPS(2260,OOPDA,0)
|
---|
194 | .. S MSG(CNT)="> "_$P(STR,U)_" "_$P(STR,U,2),CNT=CNT+1
|
---|
195 | . S XMSUB="ASISTS Record(s) transmitted to AAC for Station "_STA
|
---|
196 | . S GRP="OOPS WCP"
|
---|
197 | . I $$FIND1^DIC(3.8,"","AMX",GRP_" - "_STA) S GRP=GRP_" - "_STA
|
---|
198 | . S XMY("G."_GRP)=""
|
---|
199 | . S XMTEXT="MSG("
|
---|
200 | . D ^XMD
|
---|
201 | Q
|
---|
202 | ERROR ; Create appropriate Error message and Send message
|
---|
203 | S XMDUZ="ASISTS Package"
|
---|
204 | ; If no one in mail group (this should not occur), send to user
|
---|
205 | I $D(XMY)<9 S XMY(DUZ)=""
|
---|
206 | S XMSUB="ASISTS DOL Error Notification Message"
|
---|
207 | S XMTEXT="ERROR("
|
---|
208 | D ^XMD
|
---|
209 | I '$D(ZTQUEUED) D
|
---|
210 | . S MSG("DIHELP",1)="An Error Occurred during Processing, check"
|
---|
211 | . S MSG("DIHELP",2)="Mailman Message for details."
|
---|
212 | . D MSG^DIALOG("WH","","","","MSG")
|
---|
213 | K ERROR
|
---|
214 | Q
|
---|
215 | ERROR2 ; Create appropriate Error message and Send message
|
---|
216 | S XMDUZ="ASISTS Package"
|
---|
217 | S GRP="OOPS WC MESSAGE"
|
---|
218 | D GRP^OOPSMBUL
|
---|
219 | ; If no one in mail group (this should not occur), send to user
|
---|
220 | I $D(XMY)<9 S XMY(DUZ)=""
|
---|
221 | S XMSUB="ASISTS DOL Error Notification Message"
|
---|
222 | S XMTEXT="ERROR("
|
---|
223 | D ^XMD
|
---|
224 | I '$D(ZTQUEUED) D
|
---|
225 | . S MSG("DIHELP",1)="An Error Occurred during Processing, check"
|
---|
226 | . S MSG("DIHELP",2)="Mailman Message for details."
|
---|
227 | . D MSG^DIALOG("WH","","","","MSG")
|
---|
228 | K ERROR
|
---|
229 | Q
|
---|