1 | OOPSGUI0 ;WIOFO/LLH-RPC routines ;01/02/02
|
---|
2 | ;;2.0;ASISTS;**2,4,7**;Jun 03, 2002
|
---|
3 | ;
|
---|
4 | GETCASE(RESULTS,PERSON,CSTAT,PSTAT,CALL,OPT) ; Subroutine for Case Selection
|
---|
5 | ; Returns a list of cases that can be displayed for selection
|
---|
6 | ; RESULTS = return array containing, CASE#^IEN^NAME^DATE TIME OCCUR
|
---|
7 | ; PERSON = 0^ if no person selected
|
---|
8 | ; 1^PERSON INVOLVED NAME
|
---|
9 | ; 2^SUPERVISOR DUZ
|
---|
10 | ; 3^USER SSN
|
---|
11 | ; 4^CASE NUMBER
|
---|
12 | ; CSTAT = #^#^#^# 0^1^2^3 0=open, 1=closed, 2=deleted, 3=replaced
|
---|
13 | ; 99^ if all Case Status should be included
|
---|
14 | ; CSTAT is only set programatically
|
---|
15 | ; PSTAT = 0^ if all personnel status types should be included
|
---|
16 | ; #^#^#^ for each personnel status selected
|
---|
17 | ; CALL = Calling menu, used to assure proper access
|
---|
18 | ; OPT = Option called from, used to assure proper access
|
---|
19 | ;
|
---|
20 | K ^TMP("OOPSCASE",DUZ)
|
---|
21 | N ARR,CNUM,OOPSDA,PER,STA,SUP,VIEWSUP,VIEWEMP,VALSSN
|
---|
22 | I $G(PERSON)="" Q
|
---|
23 | I +PERSON=1 D GETPER,SORT G EXIT
|
---|
24 | I +PERSON=4 D G EXIT
|
---|
25 | . S CNUM=$P($G(PERSON),U,2) I '$G(CNUM) Q
|
---|
26 | . S OOPSDA=$O(^OOPS(2260,"B",CNUM,"")) I '$G(OOPSDA) D Q
|
---|
27 | .. S ^TMP("OOPSCASE",DUZ,1)="No Cases Selectable"
|
---|
28 | .. S RESULTS=$NA(^TMP("OOPSCASE",DUZ))
|
---|
29 | ..; S RESULTS(0)="No Cases Selectable"
|
---|
30 | . S STA=$$GET1^DIQ(2260,OOPSDA,51,"I")
|
---|
31 | . I +CSTAT'=99,(CSTAT'[STA_"^") Q ;allow only selected case status
|
---|
32 | . I $$CALLER() S ARR(CNUM)=OOPSDA
|
---|
33 | . D SORT
|
---|
34 | S CNUM=0
|
---|
35 | F S CNUM=$O(^OOPS(2260,"B",CNUM)) Q:CNUM="" D
|
---|
36 | . S OOPSDA=""
|
---|
37 | . F S OOPSDA=$O(^OOPS(2260,"B",CNUM,OOPSDA)) Q:OOPSDA="" D
|
---|
38 | .. I +PERSON=3 D Q:'VIEWEMP
|
---|
39 | ... S VIEWEMP=1,VALSSN=$P($G(PERSON),U,2)
|
---|
40 | ... I $$GET1^DIQ(2260,OOPSDA,5,"I")'=VALSSN D
|
---|
41 | .... S VIEWEMP=0
|
---|
42 | .... S ^TMP("OOPSCASE",DUZ,1)="No Cases Selectable"
|
---|
43 | .... S RESULTS=$NA(^TMP("OOPSCASE",DUZ))
|
---|
44 | .. S STA=$$GET1^DIQ(2260,OOPSDA,51,"I")
|
---|
45 | .. I +CSTAT'=99,(CSTAT'[STA_"^") Q ;allow only selected case status
|
---|
46 | .. S PER=$$GET1^DIQ(2260,OOPSDA,2,"I")
|
---|
47 | .. I (+PSTAT)&(PSTAT'[(PER_"^")) Q ;allow only selected per status
|
---|
48 | .. I +PERSON=2 D Q:'VIEWSUP
|
---|
49 | ... S VIEWSUP=1,SUP=$P(PERSON,U,2)
|
---|
50 | ... I $$GET1^DIQ(2260,OOPSDA,53,"I")'=SUP,($$GET1^DIQ(2260,OOPSDA,53.1,"I")'=SUP) D Q
|
---|
51 | ....; S RESULTS(0)="No Cases Selectable",VIEWSUP=0
|
---|
52 | .... S ^TMP("OOPSCASE",DUZ,1)="No Cases Selectable",VIEWSUP=0
|
---|
53 | .... S RESULTS=$NA(^TMP("OOPSCASE",DUZ))
|
---|
54 | .. I $$CALLER() S CNUM=$$GET1^DIQ(2260,OOPSDA,.01),ARR(CNUM)=OOPSDA
|
---|
55 | D SORT
|
---|
56 | EXIT ; quit the routine
|
---|
57 | Q
|
---|
58 | GETPER ; Person Name passed in, match
|
---|
59 | ; See above for documentation
|
---|
60 | N NM
|
---|
61 | S OOPSDA="",NM=$P(PERSON,U,2)
|
---|
62 | F S OOPSDA=$O(^OOPS(2260,"C",NM,OOPSDA)) Q:OOPSDA="" D
|
---|
63 | . S STA=$$GET1^DIQ(2260,OOPSDA,51,"I")
|
---|
64 | . I +CSTAT'=99,(CSTAT'[STA_"^") Q ;allow only selected case status
|
---|
65 | . S PER=$$GET1^DIQ(2260,OOPSDA,2,"I")
|
---|
66 | . I (+PSTAT)&(PSTAT'[(PER_"^")) Q ;allow only selected per status
|
---|
67 | . I $$CALLER() S CNUM=$$GET1^DIQ(2260,OOPSDA,.01),ARR(CNUM)=OOPSDA
|
---|
68 | Q
|
---|
69 | CALLER() ; Check to make sure case should be included
|
---|
70 | N EES,ESTAT,FLD,INC,SIG,SSN,VIEWC
|
---|
71 | S VIEWC=1
|
---|
72 | S INC=$$GET1^DIQ(2260,OOPSDA,52,"I")
|
---|
73 | ; get users SSN
|
---|
74 | S SSN=$$GET1^DIQ(200,DUZ,9)
|
---|
75 | ; make sure user cannot access claim from any menu but Employee
|
---|
76 | I CALL'="E",($$GET1^DIQ(2260,OOPSDA,5,"I")=SSN) S VIEWC=0 Q VIEWC
|
---|
77 | ; Claim already sent to DOL, can't edit, Caller / Option doesnt matter
|
---|
78 | ; unless the Option = "CHGCASE"
|
---|
79 | ; Patch 4 llh - should also be able to create amendment. NOTE: Case
|
---|
80 | ; status should always = open
|
---|
81 | ; patch 7 llh - allow access if also opt=iocome
|
---|
82 | I ($$GET1^DIQ(2260,OOPSDA,66)'=""),(OPT'="CHGCASE"),(OPT'="PRINTCA"),(OPT'=2162),(OPT'="CRAMEND"),(OPT'="IOCOME") S VIEWC=0 Q VIEWC
|
---|
83 | ; for any option from the supervisor menu
|
---|
84 | I CALL="S" D I 'VIEWC Q VIEWC
|
---|
85 | . I $$GET1^DIQ(2260,OOPSDA,53,"I")'=DUZ,($$GET1^DIQ(2260,OOPSDA,53.1,"I")'=DUZ) S VIEWC=0 Q
|
---|
86 | ; if opt = 2162
|
---|
87 | I OPT=2162 D Q VIEWC
|
---|
88 | . I $$GET1^DIQ(2260,OOPSDA,51,"I")=1 S VIEWC=0 ; closed, can't edit
|
---|
89 | . ; signed SO, coming from Supervisor menu, cant access
|
---|
90 | . I (CALL="S"),+$$EDSTA^OOPSUTL1(OOPSDA,"O") S VIEWC=0
|
---|
91 | . I CALL="H" D
|
---|
92 | .. I $P($$EDSTA^OOPSUTL1(OOPSDA,"S"),U,3)!(+$$EDSTA^OOPSUTL1(OOPSDA,"O")) S VIEWC=0
|
---|
93 | . I CALL="W" D
|
---|
94 | .. I +$$EDSTA^OOPSUTL1(OOPSDA,"O") S VIEWC=0 ;safety signed cant see
|
---|
95 | ; if opt = CA1 only return/allow CA1's, caller doesnt matter
|
---|
96 | I OPT="CA1",INC'=1 S VIEWC=0 Q VIEWC
|
---|
97 | ; if opt = CA2 only return/allow CA2's, caller doesnt matter
|
---|
98 | I OPT="CA2",INC'=2 S VIEWC=0 Q VIEWC
|
---|
99 | I CALL="E" D Q VIEWC
|
---|
100 | . I '$$ISEMP^OOPSUTL4(OOPSDA) S VIEWC=0 Q
|
---|
101 | . I '$G(SSN) S VIEWC=0 Q
|
---|
102 | . I $D(^OOPS(2260,"SSN",SSN))<1 S VIEWC=0 Q
|
---|
103 | . ; user SSN must = case IEN from Employee menu
|
---|
104 | . I $$GET1^DIQ(2260,OOPSDA,5,"I")'=SSN S VIEWC=0 Q
|
---|
105 | . S SIG=$$EDSTA^OOPSUTL1(OOPSDA,"S")
|
---|
106 | . I (OPT'="PRINTCA"),$P(SIG,U,INC) S VIEWC=0 Q
|
---|
107 | I CALL="S" D Q VIEWC
|
---|
108 | . ; not Super or Sec Super, can't access form, regardless of form type
|
---|
109 | . I $$GET1^DIQ(2260,OOPSDA,53,"I")'=DUZ&($$GET1^DIQ(2260,OOPSDA,53.1,"I")'=DUZ) S VIEWC=0 Q
|
---|
110 | . ; Supervisor cannot complete their own form.
|
---|
111 | . I $$GET1^DIQ(2260,OOPSDA,5,"I")=SSN S VIEWC=0 Q
|
---|
112 | . I OPT="CA1"!(OPT="CA2") D Q
|
---|
113 | .. ; if form CA, must be employee to complete
|
---|
114 | .. I '$$ISEMP^OOPSUTL4(OOPSDA) S VIEWC=0 Q
|
---|
115 | .. ; commented out next 2 lines, ? whether wanted by TAG 11/1/01 llh
|
---|
116 | .. ; Employee hasn't signed, super can't get to
|
---|
117 | .. ; I '$P($$EDSTA^OOPSUTL1(OOPSDA,"E"),U,INC) S VIEWC=0 Q
|
---|
118 | .. ; Supervisor has signed, can't re-edit
|
---|
119 | .. I $P($$EDSTA^OOPSUTL1(OOPSDA,"S"),U,INC) S VIEWC=0 Q
|
---|
120 | I CALL="O"!(CALL="W")!(CALL="H") D Q VIEWC
|
---|
121 | . I OPT="CA1"!(OPT="CA2") D Q
|
---|
122 | .. I '$$ISEMP^OOPSUTL4(OOPSDA) S VIEWC=0 Q
|
---|
123 | . I OPT="WCSIGN" D Q
|
---|
124 | .. S ESTAT=$$EDSTA^OOPSUTL1(OOPSDA,"E")
|
---|
125 | .. I '$$ISEMP^OOPSUTL4(OOPSDA) S VIEWC=0 Q
|
---|
126 | .. I CALL'="W",$P(ESTAT,U,INC) S VIEWC=0 Q
|
---|
127 | .. I CALL="W" D
|
---|
128 | ... S FLD=$S(INC=1:119,INC=2:221,1:"") I 'FLD S VIEWC=0 Q
|
---|
129 | ... S EES=$$GET1^DIQ(2260,OOPSDA,FLD,"I")
|
---|
130 | ... ; employee hasn't signed, ok for WC to sign
|
---|
131 | ... I 'EES Q
|
---|
132 | ... ; employee signed, not signed by person accessing claim, no access
|
---|
133 | ... I EES'=DUZ S VIEWC=0 Q
|
---|
134 | ... I $P($$EDSTA^OOPSUTL1(OOPSDA,"S"),U,INC) S VIEWC=0 ;Sup Sign, no acc
|
---|
135 | . I OPT="WCEMPSIGN" D Q
|
---|
136 | .. N CALLER,SVIEW
|
---|
137 | .. S CALLER=CALL
|
---|
138 | .. I $$GET1^DIQ(2260,OOPSDA,51,"I") S VIEWC=0 Q ; claim must be open
|
---|
139 | .. I $$GET1^DIQ(2260,OOPSDA,77)="" S VIEWC=0 Q
|
---|
140 | .. I $$GET1^DIQ(2260,OOPSDA,80)="" S VIEWC=0 Q
|
---|
141 | .. S SVIEW=$$SCR^OOPSWCSE(OOPSDA) I 'SVIEW S VIEWC=0 Q
|
---|
142 | I CALL="U" D Q VIEWC
|
---|
143 | . I '+$$EDSTA^OOPSUTL1(OOPSDA,"O") S VIEWC=0 Q
|
---|
144 | . I '$P($$EDSTA^OOPSUTL1(OOPSDA,"S"),U,3) S VIEWC=0 Q
|
---|
145 | Q VIEWC
|
---|
146 | SORT ; put cases in reverse number order
|
---|
147 | N CN,CNUM,OOPSDA,SSN,DOI
|
---|
148 | S ^TMP("OOPSCASE",DUZ,0)="",CNUM="",CN=1
|
---|
149 | I '$D(ARR) S RESULTS(0)="No Cases Selectable" D
|
---|
150 | . S ^TMP("OOPSCASE",DUZ,1)="No Cases Selectable",VIEWSUP=0
|
---|
151 | . S RESULTS=$NA(^TMP("OOPSCASE",DUZ))
|
---|
152 | F S CNUM=$O(ARR(CNUM),-1) Q:CNUM="" D
|
---|
153 | . S OOPSDA=ARR(CNUM)
|
---|
154 | . S NM=$$GET1^DIQ(2260,OOPSDA,1)
|
---|
155 | . S DOI=$$GET1^DIQ(2260,OOPSDA,4)
|
---|
156 | . S SSN=$$GET1^DIQ(2260,OOPSDA,5)
|
---|
157 | . I CALL="U" S (NM,DOI,SSN)=""
|
---|
158 | . S ^TMP("OOPSCASE",DUZ,CN)=CNUM_U_DOI_U_NM_U_OOPSDA_U_SSN_$C(10),CN=CN+1
|
---|
159 | S RESULTS=$NA(^TMP("OOPSCASE",DUZ))
|
---|
160 | Q
|
---|