| 1 | OOPSUTL1 ;HINES/WAA-Utilities Routines ;3/24/98 | 
|---|
| 2 | ;;2.0;ASISTS;**8**;Jun 03, 2002 | 
|---|
| 3 | ;; | 
|---|
| 4 | EMP(IEN,SSN,OPEN) ; DIC filter for Employee enter edit | 
|---|
| 5 | ;This is a screening routine that will filter | 
|---|
| 6 | ;  out those entries that the user cannot see. | 
|---|
| 7 | ; Input: | 
|---|
| 8 | ;  IEN  is the internal entry number for the entry in 2260. | 
|---|
| 9 | ;  SSN is the Employee Number in file 200 | 
|---|
| 10 | ;========================================= | 
|---|
| 11 | ;  VIEW is an indicator telling if the user can enter/edit | 
|---|
| 12 | ;       this entry | 
|---|
| 13 | ; | 
|---|
| 14 | N VIEW | 
|---|
| 15 | S VIEW=0 | 
|---|
| 16 | S OPEN=$G(OPEN,0) | 
|---|
| 17 | I $$OPEN(IEN,OPEN) D  ;Record | 
|---|
| 18 | .I $$GET1^DIQ(2260,IEN,5,"I")=SSN D  ; Is this record for this employee | 
|---|
| 19 | ..N SIG,INC | 
|---|
| 20 | ..S SIG=$$EDSTA^OOPSUTL1(IEN,"S") | 
|---|
| 21 | ..S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 22 | ..I '$P(SIG,U,INC) S VIEW=1 ; Super has not signed | 
|---|
| 23 | ..I $$GET1^DIQ(2260,IEN,67)'="" S VIEW=0  ; Patch 8, no edit if to DOL | 
|---|
| 24 | .Q | 
|---|
| 25 | Q VIEW | 
|---|
| 26 | WS ; The following 4 subroutines are added with Patch 8 - DOL project | 
|---|
| 27 | ; Sets the "W" xref. A routine call is used to prevent the inadvertent | 
|---|
| 28 | ; re-indexing of xref.  Xref is used for determining which records | 
|---|
| 29 | ; should be included in transmission of claims to DOL.  When the record | 
|---|
| 30 | ; is placed in a Mailman message (WC xref set) this xref is killed. | 
|---|
| 31 | ; Variables | 
|---|
| 32 | ;           WOK = set in OOPSWCE, used to prevent inadvertent | 
|---|
| 33 | ;                 re-indexing of ^OOPS(2260,"AW",X,IEN) | 
|---|
| 34 | ;           IEN = uses IEN for DA of file 2260 | 
|---|
| 35 | ;           X   = field 67 (DUZ) | 
|---|
| 36 | I '$D(WOK) Q | 
|---|
| 37 | I '$D(IEN) D  Q | 
|---|
| 38 | . S MSG("DIHELP",1)="Required Cross Reference (""AW"") was not set up, call your IRM." | 
|---|
| 39 | . D MSG^DIALOG("WH","","","","MSG") | 
|---|
| 40 | S ^OOPS(2260,"AW",X,IEN)="" | 
|---|
| 41 | Q | 
|---|
| 42 | WK ; Kills the "AW" xref.  See above as reason for manually setting | 
|---|
| 43 | ;           WOK = set in OOPSWCE, used to prevent inadvertent reindex | 
|---|
| 44 | ;           IEN = uses IEN for DA of file 2260 | 
|---|
| 45 | ;           X   = field 67, file 2260 = DUZ | 
|---|
| 46 | N WCDUZ | 
|---|
| 47 | I '$D(WOK) Q | 
|---|
| 48 | I '$D(IEN) D  Q | 
|---|
| 49 | . S MSG("DIHELP",1)="Required Cross Reference (""AW"") was not properly destroyed, call your IRM." | 
|---|
| 50 | . D MSG^DIALOG("WH","","","","MSG") | 
|---|
| 51 | ; V2.0 temp fix to keep duplicate entries out of x-ref | 
|---|
| 52 | S WCDUZ="" | 
|---|
| 53 | F  S WCDUZ=$O(^OOPS(2260,"AW",WCDUZ)) Q:WCDUZ=""  D | 
|---|
| 54 | . I $D(^OOPS(2260,"AW",WCDUZ,IEN)) K ^OOPS(2260,"AW",WCDUZ,IEN) | 
|---|
| 55 | Q | 
|---|
| 56 | WCS ; Sets the "AWC" xref. A routine call is used to prevent inadvertent | 
|---|
| 57 | ; re-indexing of the xref.  Xref is used for determining which records | 
|---|
| 58 | ; were included in Mailman messages that transmitted claims to DOL | 
|---|
| 59 | ; Variables | 
|---|
| 60 | ;           WOK = set in OOPSWCE, used to prevent inadvertent | 
|---|
| 61 | ;                 re-indexing of ^OOPS(2260,"AW",DUZ,IEN) | 
|---|
| 62 | ;           IEN = record ID file 2260 | 
|---|
| 63 | ;           X   = field 66 - Date Transmitted to DOL | 
|---|
| 64 | N WCDUZ | 
|---|
| 65 | I '$D(WOK) Q | 
|---|
| 66 | I '$D(IEN) D  Q | 
|---|
| 67 | . S MSG("DIHELP",1)="Required Cross Reference (""AWC"") was not set up, call your IRM." | 
|---|
| 68 | . D MSG^DIALOG("WH","","","","MSG") | 
|---|
| 69 | S ^OOPS(2260,"AWC",X,IEN)="" | 
|---|
| 70 | ; V2.0 temp fix to keep duplicate entries out of x-ref | 
|---|
| 71 | S WCDUZ="" | 
|---|
| 72 | F  S WCDUZ=$O(^OOPS(2260,"AW",WCDUZ)) Q:WCDUZ=""  D | 
|---|
| 73 | . I $D(^OOPS(2260,"AW",WCDUZ,IEN)) K ^OOPS(2260,"AW",WCDUZ,IEN) | 
|---|
| 74 | Q | 
|---|
| 75 | WCK ; Kills the "AWC" xref.  See above as reason for manually setting | 
|---|
| 76 | ;           WOK = set in OOPSWCE, used to prevent inadvertent reindex | 
|---|
| 77 | ;           IEN = uses IEN for DA of file 2260 | 
|---|
| 78 | ;           X   = field 66 - Date Transmitted to DOL | 
|---|
| 79 | I '$D(WOK) Q | 
|---|
| 80 | I '$D(IEN) D  Q | 
|---|
| 81 | . S MSG("DIHELP",1)="Required Cross Reference (""AWC"") was not properly destroyed, call your IRM." | 
|---|
| 82 | . D MSG^DIALOG("WH","","","","MSG") | 
|---|
| 83 | K ^OOPS(2260,"AWC",X,IEN) | 
|---|
| 84 | Q | 
|---|
| 85 | OPEN(IEN,OPEN) ; Determine if record is open | 
|---|
| 86 | N VIEW | 
|---|
| 87 | S OPEN=$G(OPEN,0) | 
|---|
| 88 | S VIEW=0 | 
|---|
| 89 | I $G(^OOPS(2260,IEN,0))="" Q VIEW | 
|---|
| 90 | I 'OPEN,'$P(^OOPS(2260,IEN,0),U,6) S VIEW=1 | 
|---|
| 91 | I OPEN,$P(^OOPS(2260,IEN,0),U,6)'=2 S VIEW=1 | 
|---|
| 92 | Q VIEW | 
|---|
| 93 | EDSTA(IEN,CALLER) ; Gives the status of form to allows the user to | 
|---|
| 94 | ;Inputs: | 
|---|
| 95 | ; IEN is the internal entry number for the entry in 2260. | 
|---|
| 96 | ; CALLER is the type of user who is calling the routine. | 
|---|
| 97 | ;   "E" = EMPLOYEE | 
|---|
| 98 | ;   "S" = SUPERVISOR | 
|---|
| 99 | ;   "O" = SAFETY | 
|---|
| 100 | ;   "V" = VOLUNTEER | 
|---|
| 101 | ; | 
|---|
| 102 | ;   ====================================== | 
|---|
| 103 | ;Outputs | 
|---|
| 104 | ;   If the Caller is Employee: | 
|---|
| 105 | ;   SELECT=1^1 Both FORMS have been signed | 
|---|
| 106 | ;          0^0 Neither form has been signed | 
|---|
| 107 | ;          1^0 CA1 has been signed | 
|---|
| 108 | ;          0^1 CA2 has been signed | 
|---|
| 109 | ;   If caller is Supervisor: | 
|---|
| 110 | ;   SELECT=1^1^1 all FORMS have been signed | 
|---|
| 111 | ;          0^0^0 no form has been signed | 
|---|
| 112 | ;          1^0^0 CA1 has been signed | 
|---|
| 113 | ;          0^1^0 CA2 has been signed | 
|---|
| 114 | ;          0^0^1 2162 has been signed | 
|---|
| 115 | ;   If caller is Safety Officer | 
|---|
| 116 | ;   SELECT=1 File has been signed | 
|---|
| 117 | ;          0 File has not been signed | 
|---|
| 118 | ;   If caller is Volunteer Supervisor | 
|---|
| 119 | ;   SELECT=1 File has been signed | 
|---|
| 120 | ;          0 File has not been signed | 
|---|
| 121 | N SELECT,CA1,CA2,ACCD | 
|---|
| 122 | S SELECT="" | 
|---|
| 123 | I CALLER="S" D | 
|---|
| 124 | .N LINE | 
|---|
| 125 | .S LINE="" | 
|---|
| 126 | .F I=170,266,45 D | 
|---|
| 127 | ..S LINE=LINE_$S($$GET1^DIQ(2260,IEN,I,"I")'="":1,1:0)_U | 
|---|
| 128 | ..Q | 
|---|
| 129 | .S SELECT=$P(LINE,U,1,3) | 
|---|
| 130 | .Q | 
|---|
| 131 | I CALLER="E" S SELECT=$S($$GET1^DIQ(2260,IEN,120,"I")'="":1,1:0)_U_$S($$GET1^DIQ(2260,IEN,222,"I")'="":1,1:0) | 
|---|
| 132 | I CALLER="O" S SELECT=$S($$GET1^DIQ(2260,IEN,49,"I")'="":1,1:0)_U | 
|---|
| 133 | Q SELECT | 
|---|
| 134 | ; | 
|---|
| 135 | EDSEL(IEN,CALLER) ; Allow you to select the form part to edit | 
|---|
| 136 | ; | 
|---|
| 137 | ; | 
|---|
| 138 | ; IEN is the internal entry number for the entry in 2260. | 
|---|
| 139 | ; CALLER is the type of user who is calling the routine. | 
|---|
| 140 | ;   "E" = EMPLOYEE | 
|---|
| 141 | ;   "S" = SUPERVISOR | 
|---|
| 142 | ;   "O" = SAFETY OFFICER | 
|---|
| 143 | ; | 
|---|
| 144 | ; | 
|---|
| 145 | N SELECT,EEFORM,CNT,Y,SEC | 
|---|
| 146 | S CNT=0 | 
|---|
| 147 | S SELECT="",SEC="0^0",FORM="" | 
|---|
| 148 | S EEFORM=$$EDSTA(IEN,CALLER) | 
|---|
| 149 | I CALLER="E" S SEC=$$EDSTA^OOPSUTL1(IEN,"S") | 
|---|
| 150 | W @IOF,!!,?10,"Select Forms: " | 
|---|
| 151 | I CALLER="S" S CNT=CNT+1 W !,?20,CNT,") Form 2162" S FORM=FORM_"2162^" | 
|---|
| 152 | I '$P(SEC,U,1) S CNT=CNT+1 W !,?20,CNT,") ",$S($P(EEFORM,U)=1:"Edit",1:"Enter")," form CA1 (Injury)" S FORM=FORM_"CA1^" | 
|---|
| 153 | I '$P(SEC,U,2) S CNT=CNT+1 W !,?20,CNT,") ",$S($P(EEFORM,U,2)=1:"Edit",1:"Enter")," form CA2 (Illness)" S FORM=FORM_"CA2^" | 
|---|
| 154 | I CNT=1 S Y="1," | 
|---|
| 155 | E  D | 
|---|
| 156 | .W !!! | 
|---|
| 157 | .N DIR | 
|---|
| 158 | .S DIR("A")=" Select Forms" | 
|---|
| 159 | .S DIR(0)="L^1:"_CNT | 
|---|
| 160 | .D ^DIR | 
|---|
| 161 | I +Y F I=1:1 Q:$P(Y,",",I)<1  S SELECT=SELECT_$P(FORM,U,$P(Y,",",I))_"^" | 
|---|
| 162 | Q SELECT | 
|---|
| 163 | CLRES(IEN,CALLER,FORM) ; Clean out electronic SIG | 
|---|
| 164 | ;Input | 
|---|
| 165 | ;   IEN = Internal Entry Number from file 2260 | 
|---|
| 166 | ;   CALLER is the type of user who is calling the routine. | 
|---|
| 167 | ;     "E" = EMPLOYEE | 
|---|
| 168 | ;     "S" = SUPERVISOR | 
|---|
| 169 | ;     "O" = SAFETY OFFICER | 
|---|
| 170 | ;     "W" = WORKER'S COMP OFFICIAL | 
|---|
| 171 | ;   FORM Is the form to clear out ES | 
|---|
| 172 | ;     Safety Officer = 2162 | 
|---|
| 173 | ;     Supervisor = CA1,CA2 and 2162 | 
|---|
| 174 | ;     Employee = CA1 and CA2, DUAL  ;patch 5 added DUAL | 
|---|
| 175 | ;     Workers Comp = CA1 and CA2, DUAL | 
|---|
| 176 | ; | 
|---|
| 177 | ;   DOL = 1 if call from ^OOPSUTL6 to suppress printing cleared msg. | 
|---|
| 178 | ; | 
|---|
| 179 | N SIG,NODE,FIELD,FLG,CALL | 
|---|
| 180 | Q:FORM="" | 
|---|
| 181 | S FLG="" | 
|---|
| 182 | ; patch 5 llh - added D block logic and new form DUAL | 
|---|
| 183 | I CALLER="W" D | 
|---|
| 184 | . S SIG="WCES;1,3" | 
|---|
| 185 | . I FORM="DUAL" S SIG="DUAL;10,12" | 
|---|
| 186 | I CALLER="O" S SIG=$S(FORM="2162":"2162ES;4,6",1:"") | 
|---|
| 187 | S:CALLER="S" SIG=$S(FORM="CA1":"CA1ES;4,6",FORM="CA2":"CA2ES;4,6",FORM="2162":"2162ES;1,3",1:"") | 
|---|
| 188 | ; patch 5 llh - added logic for DUAL | 
|---|
| 189 | S:CALLER="E" SIG=$S(FORM="CA1":"CA1ES;1,3",FORM="CA2":"CA2ES;1,3",FORM="DUAL":"DUAL;7,9",1:"") | 
|---|
| 190 | Q:SIG="" | 
|---|
| 191 | S NODE=$P(SIG,";") Q:NODE="" | 
|---|
| 192 | S FIELD=$P(SIG,";",2) | 
|---|
| 193 | S CALL=$S(CALLER="W":2,CALLER="O":1,CALLER="S":1,CALLER="E":2,1:"") | 
|---|
| 194 | I 'CALL Q | 
|---|
| 195 | I '$D(^OOPS(2260,IEN,NODE)) Q | 
|---|
| 196 | I CALL=1,$P(^OOPS(2260,IEN,NODE),U,5)'="" S FLG=1 | 
|---|
| 197 | I CALL=2,$P(^OOPS(2260,IEN,NODE),U,2)'="" S FLG=1 | 
|---|
| 198 | ; patch 5 llh - added reset flag if form = DUAL | 
|---|
| 199 | I FORM="DUAL" S FLG="" | 
|---|
| 200 | F I=$P(FIELD,","):1:$P(FIELD,",",2) S $P(^OOPS(2260,IEN,NODE),U,I)="" | 
|---|
| 201 | I FLG&('$G(DOL)) D | 
|---|
| 202 | . ; Added '$$BROKER^XWBLIB to line below ASISTS V2.0 11/09/01 LLH | 
|---|
| 203 | . I '$$BROKER^XWBLIB W !!,"Your ES has been cleared.  You will need to resign.",! | 
|---|
| 204 | . ;PATCH 11 CLEAR DATE SENT TO NDB IF SAFETY SIGNATURE REMOVED | 
|---|
| 205 | . I CALLER="O" S $P(^OOPS(2260,IEN,0),U,11)="" | 
|---|
| 206 | ; Security on ES - late in patch 8 | 
|---|
| 207 | ; clears checksums set when emp portion of claim signed by emp | 
|---|
| 208 | ; patch 5 llh - added form DUAL | 
|---|
| 209 | I CALLER="E"&('$G(DOL)),(FORM'="DUAL") D | 
|---|
| 210 | . N RECORD | 
|---|
| 211 | . S RECORD=$G(^OOPS(2260,IEN,"CA")) | 
|---|
| 212 | . S $P(RECORD,U,7)="",$P(RECORD,U,9)="",^OOPS(2260,IEN,"CA")=RECORD | 
|---|
| 213 | Q | 
|---|
| 214 | PAID(IEN,FLD) ; Get the data value from the PAID file (#450), if employee | 
|---|
| 215 | ;   Input - IEN     internal entry number of case in file 2260 | 
|---|
| 216 | ;         - FLD     the PAID field number to retrieve | 
|---|
| 217 | ;         - NAME    Name of Person Involved, used to get PAID IEN | 
|---|
| 218 | ;         - VAL     Data value from the PAID #450, field #FLD | 
|---|
| 219 | ;  Output - DESC    Description from Paid, if there | 
|---|
| 220 | ; | 
|---|
| 221 | N DESC,IEN450,NAME,LP | 
|---|
| 222 | S DESC="",LP=0 | 
|---|
| 223 | S NAME=$$GET1^DIQ(2260,IEN,1) | 
|---|
| 224 | D FIND^DIC(450,,"@;8","MPS",NAME,100) | 
|---|
| 225 | I $G(DIERR) D CLEAN^DILF Q | 
|---|
| 226 | F  S LP=$O(^TMP("DILIST",$J,LP)) Q:LP=""  D | 
|---|
| 227 | . I $$GET1^DIQ(2260,IEN,5)=$P(^TMP("DILIST",$J,LP,0),U,2) D | 
|---|
| 228 | .. S IEN450=$P(^TMP("DILIST",$J,LP,0),U) | 
|---|
| 229 | .. S DESC=$$GET1^DIQ(450,IEN450,FLD) | 
|---|
| 230 | Q DESC | 
|---|
| 231 | ; | 
|---|
| 232 | PAYP(PAY) ; Map PAID Pay Plan to higher category for DOL project | 
|---|
| 233 | ; | 
|---|
| 234 | ;   Input   - PLAN    This is the PAID Pay Plan Description | 
|---|
| 235 | ;                     from file 454, not the PAID Code | 
|---|
| 236 | ;  Output   - PPLAN   Pay Plan that PAID Code maps to | 
|---|
| 237 | ; | 
|---|
| 238 | N PPLAN | 
|---|
| 239 | S PPLAN=$S($E(PAY)="G":"GS",$E(PAY)="W":"WG",$E(PAY)="N":"WG",$E(PAY)="V":PAY,PAY="AD":PAY,$E(PAY)="E":PAY,$E(PAY)="S":PAY,1:"OT") | 
|---|
| 240 | Q PPLAN | 
|---|