| 1 | OOPSSUP1 ;HINES/WAA-S/E Supervisor Edit routine ;04/17/1998 | 
|---|
| 2 | ;;2.0;ASISTS;;Jun 03, 2002 | 
|---|
| 3 | ;; | 
|---|
| 4 | EN1(CALLER) ;  Main Entry Point | 
|---|
| 5 | S CALLER=$G(CALLER,"S") ; check CALLER | 
|---|
| 6 | N SSN,IEN,EDIT,OUT,FORM,SUP,SER | 
|---|
| 7 | S EDIT="" | 
|---|
| 8 | S (OUT,IEN)=0 | 
|---|
| 9 | Q:DUZ<1 | 
|---|
| 10 | Q:$G(^VA(200,DUZ,1))="" | 
|---|
| 11 | D INCIDENT(CALLER) Q:IEN<1  ; Select a Employee | 
|---|
| 12 | D ^OOPSDIS ; Display header information | 
|---|
| 13 | D SELECT  ; Select the form to be processed. | 
|---|
| 14 | Q:EDIT="" | 
|---|
| 15 | D FORMS ; Process the forms that ther user selected | 
|---|
| 16 | L -^OOPS(2260,IEN) | 
|---|
| 17 | Q | 
|---|
| 18 | SELECT ; Select a form | 
|---|
| 19 | ; Injury (2162,CA1) | 
|---|
| 20 | ; Illness (2162,CA2) | 
|---|
| 21 | ; VA form 2162 | 
|---|
| 22 | ; Get the type of incident | 
|---|
| 23 | ; If the supporting global doesn't exist force the | 
|---|
| 24 | ; Supervisor to fill both the 2162 and supporting form. | 
|---|
| 25 | N SIGN,INC,SAFE,CAT,INCTYP | 
|---|
| 26 | S EDIT="" | 
|---|
| 27 | S SIGN=$$EDSTA^OOPSUTL1(IEN,"S") | 
|---|
| 28 | S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 29 | S SAFE=+$$EDSTA^OOPSUTL1(IEN,"O") | 
|---|
| 30 | ; Allow Non-PAID employee - CAT=6 | 
|---|
| 31 | S CAT=$$GET1^DIQ(2260,IEN,2,"I") | 
|---|
| 32 | ; Patch 5 - change logic for other Personnel Types | 
|---|
| 33 | I '$$ISEMP^OOPSUTL4(IEN),'SAFE S EDIT="2162" Q  ;Person not EMP/NONPAID | 
|---|
| 34 | I SAFE S EDIT=$P("CA1^CA2",U,INC) Q | 
|---|
| 35 | ;  ^...The safety officer has sign and ca1 or ca2 can be edited | 
|---|
| 36 | S INCTYP=$P("CA1^CA2",U,INC) | 
|---|
| 37 | I $P($$EDSTA^OOPSUTL1(IEN,"E"),U,INC),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,INC) S EDIT="2162" Q | 
|---|
| 38 | I '$$CHECK^OOPSUTL3(IEN,INCTYP) S EDIT="2162^"_INCTYP Q | 
|---|
| 39 | ;     No data has been entered for the ca1/2 | 
|---|
| 40 | ; ^^^ Force the Super to edit both and once. | 
|---|
| 41 | S EDIT="" | 
|---|
| 42 | I '$P(SIGN,U,3) | 
|---|
| 43 | N DIR,Y | 
|---|
| 44 | N PROMPT1,PROMPT2,SEL1,SEL2 | 
|---|
| 45 | S PROMPT1="1) VA FORM 2162 " | 
|---|
| 46 | S PROMPT2="              2) "_$S(INC=1:"Injury (CA1",INC=2:"Illness (CA2",1:"")_")" | 
|---|
| 47 | W !," Select form: ",PROMPT1 | 
|---|
| 48 | W !,PROMPT2 | 
|---|
| 49 | S DIR(0)="SAO^1:2162;2:"_$S(INC=1:"CA1",INC=2:"CA2",1:"") | 
|---|
| 50 | S DIR("A")=" Select form: " | 
|---|
| 51 | S DIR("?")=" Select the form to be edited." | 
|---|
| 52 | D ^DIR | 
|---|
| 53 | I '$D(Y(0)) S EDIT="" Q | 
|---|
| 54 | S EDIT=Y(0) | 
|---|
| 55 | K MAX,MAX1 | 
|---|
| 56 | Q | 
|---|
| 57 | INCIDENT(CALLER) ; Select a case | 
|---|
| 58 | N DIC,X | 
|---|
| 59 | S DIC="^OOPS(2260," | 
|---|
| 60 | I CALLER="S" S DIC("S")="I $$SUP^OOPSSUP1(Y)" | 
|---|
| 61 | I CALLER="O" S DIC("S")="I $$SAFETY^OOPSSUP1(Y)" | 
|---|
| 62 | S DIC(0)="AEMNZ",DIC("A")="   Select Case: " | 
|---|
| 63 | D ^DIC | 
|---|
| 64 | Q:Y<1 | 
|---|
| 65 | Q:$D(DTOUT)!($D(DUOUT)) | 
|---|
| 66 | S IEN=$P(Y,U) | 
|---|
| 67 | Q | 
|---|
| 68 | SUP(IEN) ; Supervisor Screen | 
|---|
| 69 | N VIEW,ISEMP | 
|---|
| 70 | S VIEW=1 | 
|---|
| 71 | I $$GET1^DIQ(2260,IEN,51,"I") S VIEW=0 ; Case is not open | 
|---|
| 72 | I $$GET1^DIQ(2260,IEN,53,"I")'=DUZ,$$GET1^DIQ(2260,IEN,53.1,"I")'=DUZ S VIEW=0 ; Not the Super or Alternate Super | 
|---|
| 73 | ; Patch 5 - new $$ for determining if employee | 
|---|
| 74 | S ISEMP=$$ISEMP^OOPSUTL4(IEN) | 
|---|
| 75 | I 'ISEMP D  ; person is not an employee | 
|---|
| 76 | .I +$$EDSTA^OOPSUTL1(IEN,"O") S VIEW=0 Q  ; Safety has signed | 
|---|
| 77 | .Q | 
|---|
| 78 | I ISEMP D  ; filters emps who have sign, sup who sign & safety who sign | 
|---|
| 79 | .S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 80 | .I $P($$EDSTA^OOPSUTL1(IEN,"E"),U,INC),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,INC),+$$EDSTA^OOPSUTL1(IEN,"O") S VIEW=0 | 
|---|
| 81 | .Q | 
|---|
| 82 | Q VIEW | 
|---|
| 83 | SAFETY(IEN) ; Safety officer screen | 
|---|
| 84 | N VIEW,INC,ISEMP | 
|---|
| 85 | S VIEW=1 | 
|---|
| 86 | S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 87 | I $$GET1^DIQ(2260,IEN,51,"I") S VIEW=0 ; Case is not open | 
|---|
| 88 | S ISEMP=$$ISEMP^OOPSUTL4(IEN) | 
|---|
| 89 | I 'ISEMP D       ; person is not an employee | 
|---|
| 90 | .I +$$EDSTA^OOPSUTL1(IEN,"O") S VIEW=0 Q  ; Safety has signed | 
|---|
| 91 | .Q | 
|---|
| 92 | I ISEMP  D  ; This will filter emps who have sign, sup who sign and safety who sign | 
|---|
| 93 | .I $P($$EDSTA^OOPSUTL1(IEN,"E"),U,INC),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,INC),+$$EDSTA^OOPSUTL1(IEN,"O") S VIEW=0 | 
|---|
| 94 | .Q | 
|---|
| 95 | I $$GET1^DIQ(2260,IEN,53,"I")'=DUZ,$$GET1^DIQ(2260,IEN,53.1,"I")'=DUZ D | 
|---|
| 96 | .I $P($$EDSTA^OOPSUTL1(IEN,"E"),U,INC),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,INC),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,3) S VIEW=0 | 
|---|
| 97 | .Q | 
|---|
| 98 | Q VIEW | 
|---|
| 99 | FORMS ; Process Form | 
|---|
| 100 | N I | 
|---|
| 101 | ;Patch 7 - new variables used | 
|---|
| 102 | N AIEN,AGN,ADD,CITY,STATE,ZIP,PNAME,PADD,PCITY,PSTATE,PZIP,STAT,SIEN | 
|---|
| 103 | N FLD,PAY,RET,SAL | 
|---|
| 104 | ; Get default fields from PAID | 
|---|
| 105 | S FLD=28,SAL="" | 
|---|
| 106 | S SAL=$$PAID^OOPSUTL1(IEN,FLD) | 
|---|
| 107 | S FLD=26,RET="" | 
|---|
| 108 | S RET=$$PAID^OOPSUTL1(IEN,FLD) | 
|---|
| 109 | S RET=$S(RET="FULL CSRS":"CSRS",RET="FERS":"FERS",1:"OTHER") | 
|---|
| 110 | S FLD=19,PAY="" | 
|---|
| 111 | S PAY=$$PAID^OOPSUTL1(IEN,FLD) | 
|---|
| 112 | S PAY=$S(PAY="PER ANNUM":"ANNUAL",PAY="PER HOUR":"HOURLY","PER DIEM":"DAILY","BIWEEKLY":"BI-WEEKLY",1:"") | 
|---|
| 113 | F I=1:1 S FORM=$P(EDIT,U,I) Q:FORM=""  D  Q:OUT | 
|---|
| 114 | .N DR,DIE,SIGN,EDIT,I | 
|---|
| 115 | .I (CALLER="S"),($$GET1^DIQ(2260,IEN,53,"I")=DUZ!($$GET1^DIQ(2260,IEN,53.1,"I")=DUZ)) D CLRES^OOPSUTL1(IEN,"S",FORM) | 
|---|
| 116 | .I FORM="2162" D ASIST^OOPSSUP3 Q:OUT | 
|---|
| 117 | .I FORM="CA1" D CA1^OOPSSUPB Q:OUT | 
|---|
| 118 | .I FORM="CA2" D CA2^OOPSSUP2 Q:OUT | 
|---|
| 119 | .S DIE="^OOPS(2260,",DA=IEN | 
|---|
| 120 | .L +^OOPS(2260,IEN):2 | 
|---|
| 121 | .E  W !!?5,"Another user is editing this entry. Try later." S OUT=1 Q | 
|---|
| 122 | .D ^DIE | 
|---|
| 123 | .I ($D(Y)'=0)!($G(DIRUT)=1)  S OUT=1 Q  ; Quit if user exits | 
|---|
| 124 | .I $$GET1^DIQ(2260,IEN,53,"I")'=DUZ,$$GET1^DIQ(2260,IEN,53.1,"I")'=DUZ Q | 
|---|
| 125 | .D SIGNS(FORM) ; Sign/validate Document | 
|---|
| 126 | .Q:'$P(SIGN,U)   ; Quit if user doesn't sign | 
|---|
| 127 | .D FILE ; User Signs and files | 
|---|
| 128 | .Q | 
|---|
| 129 | Q | 
|---|
| 130 | SIGNS(FORM) ; Sign/validate Document | 
|---|
| 131 | N EMP,INC,VALID | 
|---|
| 132 | S VALID=0,SIGN="" | 
|---|
| 133 | S EMP=$$EDSTA^OOPSUTL1(IEN,"E") | 
|---|
| 134 | S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 135 | D VALIDATE^OOPSUTL4(IEN,FORM,"S",.VALID) | 
|---|
| 136 | I FORM'="2162",'$P(EMP,U,INC) D  Q  ;Employee has not signed yet | 
|---|
| 137 | .W !,?10,"The employee has not signed the ",FORM,"." Q | 
|---|
| 138 | .Q | 
|---|
| 139 | I FORM=2162,CALLER="O",('$P($$EDSTA^OOPSUTL1(IEN,"S"),U,3)) D  Q | 
|---|
| 140 | .W !?10,"Supervisor must sign before Safety Officer" | 
|---|
| 141 | I 'VALID Q | 
|---|
| 142 | S SIGN=$$SIG^OOPSESIG(DUZ,IEN) | 
|---|
| 143 | Q | 
|---|
| 144 | FILE ;File the ES and send a bull | 
|---|
| 145 | I FORM="2162" D | 
|---|
| 146 | . I CALLER="S" S $P(^OOPS(2260,IEN,"2162ES"),U,1,3)=SIGN D SAFETY^OOPSMBUL(IEN) | 
|---|
| 147 | . I CALLER="O" S $P(^OOPS(2260,IEN,"2162ES"),U,4,6)=SIGN | 
|---|
| 148 | I FORM="CA1" S $P(^OOPS(2260,IEN,"CA1ES"),U,4,6)=SIGN D SUPS^OOPSMBUL(IEN),UNION^OOPSMBUL(IEN) | 
|---|
| 149 | I FORM="CA2" S $P(^OOPS(2260,IEN,"CA2ES"),U,4,6)=SIGN D SUPS^OOPSMBUL(IEN),UNION^OOPSMBUL(IEN) | 
|---|
| 150 | Q | 
|---|