| 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
 | 
|---|