| [613] | 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
 | 
|---|