| [613] | 1 | OOPSGUI4 ;WIOFO/LLH-RPC BROKER CALLS ;10/02/01
 | 
|---|
 | 2 |  ;;2.0;ASISTS;**4,8,7,11**;Jun 03, 2002
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | PAID(RESULTS,NAME) ; retrieves PAID employee and data from file 450
 | 
|---|
 | 5 |  ;  Input:    NAME - the Employee Name or partial name Passed in
 | 
|---|
 | 6 |  ; Output: RESULTS - array containing PAID fields in the order returned
 | 
|---|
 | 7 |  ;                   from FIND^DIC
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  N IEN200,LP,PAY,PAYP,PHONE,OCCDESC,RET,SAL,SSN,X,STATE,SERV,SAMEFLG
 | 
|---|
 | 10 |  N IEN450
 | 
|---|
 | 11 |  I NAME="" S RESULTS(1)="^NO SSN OR NAME PROVIDED" Q
 | 
|---|
 | 12 |  S X=NAME,SAMEFLG=0
 | 
|---|
 | 13 |  D FIND^DIC(450,,"@;.01;6;8;10;13;16EI;31;32;38;186.1;186.2;186;186.4;458I;30","MPS",X,500)
 | 
|---|
 | 14 |  I $G(DIERR) D CLEAN^DILF Q
 | 
|---|
 | 15 |  I $P(^TMP("DILIST",$J,0),U)=0 S RESULTS(0)="^NO PAID EMPLOYEE FOUND" Q
 | 
|---|
 | 16 |  F LP=0:0 S LP=$O(^TMP("DILIST",$J,LP)) Q:LP=""  D
 | 
|---|
 | 17 |  .; cannot pick yourself if selecting case,use SSN to see if DUZ matches
 | 
|---|
 | 18 |  .S SSN=$TR($P($G(^TMP("DILIST",$J,LP,0)),U,4),"-","")
 | 
|---|
 | 19 |  .I $G(SSN) S IEN200=$O(^VA(200,"SSN",SSN,""))
 | 
|---|
 | 20 |  .; 12/29/03 llh - also cannot pick a person from the PAID file with
 | 
|---|
 | 21 |  .;                a pseudo SSN (one that begins with 000)
 | 
|---|
 | 22 |  .I $E(SSN,1,3)="000" Q
 | 
|---|
 | 23 |  .I DUZ=IEN200 S SAMEFLG=1 Q
 | 
|---|
 | 24 |  .S RESULTS(LP)=^TMP("DILIST",$J,LP,0)
 | 
|---|
 | 25 |  .S $P(RESULTS(LP),U,5)=$E($P(RESULTS(LP),U,5),1,45)
 | 
|---|
 | 26 |  .S $P(RESULTS(LP),U,8)=$E($P($G(RESULTS(LP)),U,8),1,4)
 | 
|---|
 | 27 |  .S PHONE=""  ; ,SSN=$TR($P($G(RESULTS(LP)),U,4),"-","")
 | 
|---|
 | 28 |  .I $G(IEN200) S PHONE=$P($G(^VA(200,IEN200,.13)),U)
 | 
|---|
 | 29 |  .I $TR(PHONE,"(,)-^*/# &%@!","")'?10N S PHONE=""  ;Must be 10 char
 | 
|---|
 | 30 |  .S RESULTS(LP)=RESULTS(LP)_U_PHONE
 | 
|---|
 | 31 |  .S IEN450=$P(RESULTS(LP),U)
 | 
|---|
 | 32 |  .I $G(IEN450) D
 | 
|---|
 | 33 |  ..S PAYP=$$GET1^DIQ(450,IEN450,20) I $G(PAYP)'="" S PAYP=$$PAYP^OOPSUTL1(PAYP)
 | 
|---|
 | 34 |  ..S SAL=$$GET1^DIQ(450,IEN450,28)
 | 
|---|
 | 35 |  ..S RET=$$GET1^DIQ(450,IEN450,26) I $G(RET)'="" S RET=$S(RET="FULL CSRS":"CSRS",RET="FERS":"FERS",1:"OTHER")
 | 
|---|
 | 36 |  ..S PAY=$$GET1^DIQ(450,IEN450,19) I $G(PAY)'="" S PAY=$S(PAY="PER ANNUM":"ANNUAL",PAY="PER HOUR":"HOURLY","PER DIEM":"DAILY","BIWEEKLY":"BI-WEEKLY",1:"")
 | 
|---|
 | 37 |  ..S OCCDESC=$E($$GET1^DIQ(450,IEN450,16),1,30)
 | 
|---|
 | 38 |  .S SERV="" I $G(IEN200) S SERV=$$GET1^DIQ(200,IEN200,29)
 | 
|---|
 | 39 |  .S RESULTS(LP)=RESULTS(LP)_U_PAY_U_SAL_U_RET_U_PAYP_U_OCCDESC_U_SERV
 | 
|---|
 | 40 |  I SAMEFLG,'$D(RESULTS) S RESULTS(0)="^CANNOT CREATE CASE FOR YOURSELF"
 | 
|---|
 | 41 |  KILL DIERR,^TMP("DILIST",$J)
 | 
|---|
 | 42 |  Q
 | 
|---|
 | 43 |  ;
 | 
|---|
 | 44 | ASISTS(RESULTS,NAME) ; Lookup on ASISTS Accident Reporting file_2260
 | 
|---|
 | 45 |  ;  Input:  - Name or partial name of person to lookup on
 | 
|---|
 | 46 |  ; Output:  - array with name of person, sex, DOB, and SSN
 | 
|---|
 | 47 |  ;
 | 
|---|
 | 48 |  N ARR,I,X,SAMEFLG
 | 
|---|
 | 49 |  K ^TMP("DILIST",$J)
 | 
|---|
 | 50 |  I NAME="" S RESULTS(0)="^NO SSN OR NAME PROVIDED" Q
 | 
|---|
 | 51 |  S X=NAME,SAMEFLG=0
 | 
|---|
 | 52 |  ; patch 5 llh - added the 3 indices
 | 
|---|
 | 53 |  D FIND^DIC(2260,,"@;1;7;6;5","PSMC",X,500,"C^SSN^BS5")
 | 
|---|
 | 54 |  I $G(DIERR) D CLEAN^DILF Q
 | 
|---|
 | 55 |  I $P(^TMP("DILIST",$J,0),"^")=0 S RESULTS(1)="^NO ASISTS CASE FOUND" Q
 | 
|---|
 | 56 |  F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:I=""  D
 | 
|---|
 | 57 |  . I DUZ=$P(^TMP("DILIST",$J,I,0),U) S SAMEFLG=1 Q
 | 
|---|
 | 58 |  . I $D(ARR($P(^TMP("DILIST",$J,I,0),U,2))) Q
 | 
|---|
 | 59 |  . S ARR($P(^TMP("DILIST",$J,I,0),U,2))=""
 | 
|---|
 | 60 |  . S RESULTS(I)=^TMP("DILIST",$J,I,0)
 | 
|---|
 | 61 |  I SAMEFLG,'$D(RESULTS) S RESULTS(0)="^CANNOT CREATE CASE FOR YOURSELF"
 | 
|---|
 | 62 |  I '$D(RESULTS) S RESULTS(0)="^NO SELECTABLE CASES FOUND"
 | 
|---|
 | 63 |  K DIERR,^TMP("DILIST",$J)
 | 
|---|
 | 64 |  Q
 | 
|---|
 | 65 | PER(RESULTS,NAME) ; Lookup for Non-Paid Employee (New Person file_
 | 
|---|
 | 66 |  ;  Input:  - Name or partial name of person to lookup on
 | 
|---|
 | 67 |  ; Output:  - array with name of new person, sex, DOB, and SSN
 | 
|---|
 | 68 |  ;
 | 
|---|
 | 69 |  N I,SSN,X,SAMEFLG
 | 
|---|
 | 70 |  K ^TMP("DILIST",$J)
 | 
|---|
 | 71 |  I NAME="" S RESULTS(0)="^NO SSN OR NAME PROVIDED" Q
 | 
|---|
 | 72 |  S X=NAME,SAMEFLG=0
 | 
|---|
 | 73 |  D FIND^DIC(200,,"@;.01;4;5;9;29","PSMC",X,500)
 | 
|---|
 | 74 |  I $G(DIERR) D CLEAN^DILF Q
 | 
|---|
 | 75 |  I $P(^TMP("DILIST",$J,0),"^")=0 S RESULTS(1)="^NO NEW PERSON FOUND" Q
 | 
|---|
 | 76 |  F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:I=""  D
 | 
|---|
 | 77 |  . ; make sure not a PAID Employee
 | 
|---|
 | 78 |  . S SSN=$P(^TMP("DILIST",$J,I,0),U,5)
 | 
|---|
 | 79 |  . I $G(SSN),$$FIND1^DIC(450,"","MX",SSN) Q
 | 
|---|
 | 80 |  . I DUZ=$P(^TMP("DILIST",$J,I,0),U) S SAMEFLG=1 Q
 | 
|---|
 | 81 |  . S RESULTS(I)=^TMP("DILIST",$J,I,0)
 | 
|---|
 | 82 |  I SAMEFLG,'$D(RESULTS) S RESULTS(0)="^CANNOT CREATE CASE FOR YOURSELF"
 | 
|---|
 | 83 |  I '$D(RESULTS) S RESULTS(0)="^NO SELECTABLE CASES FOUND"
 | 
|---|
 | 84 |  K DIERR,^TMP("DILIST",$J)
 | 
|---|
 | 85 |  Q
 | 
|---|
 | 86 | SUPER(RESULTS,NAME,EMPSSN) ; Lookup for Supervisors or anyone from the New 
 | 
|---|
 | 87 |  ;                 Person file.  This broker call will also be used to
 | 
|---|
 | 88 |  ;                 lookup Union representatives for the Enter/Edit
 | 
|---|
 | 89 |  ;                 Union Information.
 | 
|---|
 | 90 |  ;  Input:    NAME - Name or partial name of person to lookup on
 | 
|---|
 | 91 |  ;             SSN - SSN of the Person Involved if called from 2162
 | 
|---|
 | 92 |  ; Output: RESULTS - array with name of new person, sex, DOB, and SSN
 | 
|---|
 | 93 |  ;
 | 
|---|
 | 94 |  N I,SSN,SAME,X
 | 
|---|
 | 95 |  K ^TMP("DILIST",$J)
 | 
|---|
 | 96 |  I NAME="" S RESULTS(1)="^NO SSN OR NAME PROVIDED" Q
 | 
|---|
 | 97 |  S X=NAME,SAME=0
 | 
|---|
 | 98 |  D FIND^DIC(200,,".01;9","PSCM",X,500)
 | 
|---|
 | 99 |  I $G(DIERR) D CLEAN^DILF Q
 | 
|---|
 | 100 |  I $P(^TMP("DILIST",$J,0),"^")=0 S RESULTS(1)="^NO NEW PERSON FOUND" Q
 | 
|---|
 | 101 |  F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:I=""  D
 | 
|---|
 | 102 |  . I $G(EMPSSN)'="",($P(^TMP("DILIST",$J,I,0),U,3)=$G(EMPSSN)) S SAME=1 Q
 | 
|---|
 | 103 |  . S RESULTS(I)=^TMP("DILIST",$J,I,0)
 | 
|---|
 | 104 |  I SAME,'$D(RESULTS) S RESULTS(1)="^CANNOT BE SUPERVISOR FOR YOUR CLAIM"
 | 
|---|
 | 105 |  I '$D(RESULTS) S RESULTS(1)="^NO VALID SELECTION"
 | 
|---|
 | 106 |  K DIERR,^TMP("DILIST",$J)
 | 
|---|
 | 107 |  Q
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | LOAD(RESULTS,ARR) ; Create new OOPS record
 | 
|---|
 | 110 |  ;  Input:     ARR  - contains data entered from the Create Accident/
 | 
|---|
 | 111 |  ;                    Illness Report Option
 | 
|---|
 | 112 |  ; Output:  RESULTS - status message
 | 
|---|
 | 113 |  ;
 | 
|---|
 | 114 |  N ASUB,CAT,DA,DATE,DIC,DR,ERROR,FLDS,FNUM,FYEAR,IEN2260,LP,NUM,PCE,SSN,X
 | 
|---|
 | 115 |  N LIST,CNT,DLAYGO
 | 
|---|
 | 116 |  S CAT=""
 | 
|---|
 | 117 |  I $G(ARR(2)) S CAT=ARR(2)
 | 
|---|
 | 118 |  I $G(ARR(5)) S SSN=ARR(5)
 | 
|---|
 | 119 |  D NOW^%DTC
 | 
|---|
 | 120 |  S DATE=X
 | 
|---|
 | 121 |  S FYEAR=""
 | 
|---|
 | 122 |  S FYEAR=$$FYEAR^OOPSCSN(X)
 | 
|---|
 | 123 |  S NUM=$$NEWR^OOPSCSN(FYEAR)
 | 
|---|
 | 124 |  K DD,DO
 | 
|---|
 | 125 |  S DLAYGO=2260,DIC="^OOPS(2260,"
 | 
|---|
 | 126 |  S DIC(0)="QLZ"
 | 
|---|
 | 127 |  S X=NUM
 | 
|---|
 | 128 |  D FILE^DICN
 | 
|---|
 | 129 |  I Y<0 S (RESULTS,RESULTS(0))="UNABLE TO CREATE RECORD" Q
 | 
|---|
 | 130 |  S IEN2260=+Y
 | 
|---|
 | 131 |  S DIE="^OOPS(2260,"
 | 
|---|
 | 132 |  S DA=IEN2260
 | 
|---|
 | 133 |  ;
 | 
|---|
 | 134 |  S LIST="1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,52,60,63,86,90,335,"
 | 
|---|
 | 135 |  S LIST=LIST_"336,338,339,349,350,351,352,"
 | 
|---|
 | 136 |  I ARR(52)="Injury" S LIST=LIST_",111,166,167"
 | 
|---|
 | 137 |  I ARR(52)="Illness/Disease" S LIST=LIST_",208,334"
 | 
|---|
 | 138 |  F CNT=1:1 S FNUM=$P(LIST,",",CNT) Q:FNUM=""  I $G(ARR(FNUM))'="" D VAL(DA,FNUM,ARR(FNUM))
 | 
|---|
 | 139 |  K DR S DIE="^OOPS(2260,",DA=IEN2260,DR=""
 | 
|---|
 | 140 |  S DR(1,2260,1)="1///^S X=ARR(1)"
 | 
|---|
 | 141 |  S DR(1,2260,2)="2///^S X=ARR(2)"
 | 
|---|
 | 142 |  S DR(1,2260,3)="3///^S X=ARR(3)"
 | 
|---|
 | 143 |  S DR(1,2260,4)="4///^S X=ARR(4)"
 | 
|---|
 | 144 |  S DR(1,2260,5)="5///^S X=ARR(5)"
 | 
|---|
 | 145 |  S DR(1,2260,6)="6///^S X=ARR(6)"
 | 
|---|
 | 146 |  S DR(1,2260,7)="7///^S X=ARR(7)"
 | 
|---|
 | 147 |  S DR(1,2260,8)="8///^S X=ARR(8)"
 | 
|---|
 | 148 |  S DR(1,2260,9)="9///^S X=ARR(9)"
 | 
|---|
 | 149 |  S DR(1,2260,10)="10///^S X=ARR(10)"
 | 
|---|
 | 150 |  S DR(1,2260,12)="11///^S X=ARR(11)"
 | 
|---|
 | 151 |  S DR(1,2260,15)="12///^S X=ARR(12)"
 | 
|---|
 | 152 |  S DR(1,2260,18)="13////^S X=ARR(13)"     ; sending pointer
 | 
|---|
 | 153 |  S DR(1,2260,21)="14///^S X=ARR(14)"
 | 
|---|
 | 154 |  S DR(1,2260,24)="15///^S X=ARR(15)"
 | 
|---|
 | 155 |  S DR(1,2260,27)="16///^S X=ARR(16)"
 | 
|---|
 | 156 |  S DR(1,2260,30)="17///^S X=ARR(17)"
 | 
|---|
 | 157 |  S DR(1,2260,33)="18///^S X=ARR(18)"
 | 
|---|
 | 158 |  S DR(1,2260,36)="52///^S X=ARR(52)"
 | 
|---|
 | 159 |  S DR(1,2260,39)="53////^S X=ARR(53)"     ; send pointer
 | 
|---|
 | 160 |  S DR(1,2260,42)="53.1////^S X=ARR(22)"   ; send pointer
 | 
|---|
 | 161 |  S DR(1,2260,45)="56////^S X=ARR(48)"     ; send pointer
 | 
|---|
 | 162 |  S DR(1,2260,48)="60///^S X=ARR(60)"
 | 
|---|
 | 163 |  S DR(1,2260,51)="63///^S X=ARR(63)"
 | 
|---|
 | 164 |  S DR(1,2260,54)="86///^S X=ARR(86)"
 | 
|---|
 | 165 |  S DR(1,2260,57)="90///^S X=ARR(90)"
 | 
|---|
 | 166 |  S DR(1,2260,58)="335///^S X=ARR(169)"
 | 
|---|
 | 167 |  S DR(1,2260,59)="336///^S X=ARR(170)"
 | 
|---|
 | 168 |  I ARR(52)="Injury" D
 | 
|---|
 | 169 |  . S DR(1,2260,60)="111///^S X=ARR(19)"
 | 
|---|
 | 170 |  . S DR(1,2260,63)="166///^S X=ARR(166)"
 | 
|---|
 | 171 |  . S DR(1,2260,67)="167///^S X=ARR(167)"
 | 
|---|
 | 172 |  I ARR(52)="Illness/Disease" D
 | 
|---|
 | 173 |  . S DR(1,2260,60)="208///^S X=ARR(19)"
 | 
|---|
 | 174 |  . S DR(1,2260,61)="334///^S X=ARR(168)"
 | 
|---|
 | 175 |  ; patch 11 - new OSHA 300 questions
 | 
|---|
 | 176 |  S DR(1,2260,70)="349///^S X=ARR(171)"
 | 
|---|
 | 177 |  S DR(1,2260,71)="339///^S X=ARR(172)"
 | 
|---|
 | 178 |  S DR(1,2260,72)="338///^S X=ARR(173)"
 | 
|---|
 | 179 |  S DR(1,2260,73)="350///^S X=ARR(174)"
 | 
|---|
 | 180 |  S DR(1,2260,74)="351///^S X=ARR(175)"
 | 
|---|
 | 181 |  S DR(1,2260,75)="352///^S X=ARR(176)"
 | 
|---|
 | 182 |  D ^DIE
 | 
|---|
 | 183 |  D CASE^OOPSMBUL(IEN2260) D:(CAT=1)!(CAT=6) BOR^OOPSMBUL(IEN2260):$D(^VA(200,"SSN",SSN))
 | 
|---|
 | 184 |  K DR S DIE="^OOPS(2260,",DA=IEN2260,DR="51///0" D ^DIE
 | 
|---|
 | 185 |  K DIE,DR,DA
 | 
|---|
 | 186 |  S (RESULTS,RESULTS(1))="OK" S:$G(ERROR)]"" (RESULTS,RESULTS(1))=ERROR
 | 
|---|
 | 187 |  S RESULTS(2)=$P(^OOPS(2260,IEN2260,0),"^")
 | 
|---|
 | 188 |  Q
 | 
|---|
 | 189 |  ;
 | 
|---|
 | 190 | DELETE ;Delete incomplete case
 | 
|---|
 | 191 |  N DIK,DA
 | 
|---|
 | 192 |  S DIK="^OOPS(2260,",DA=IEN2260
 | 
|---|
 | 193 |  D ^DIK
 | 
|---|
 | 194 |  Q
 | 
|---|
 | 195 |  ;
 | 
|---|
 | 196 | VAL(DA,FIELD,VALUE) ;Validate Input
 | 
|---|
 | 197 |  ;  Input:   DA  - IEN of the ASISTS record
 | 
|---|
 | 198 |  ;        FIELD  - field number for data to be validated
 | 
|---|
 | 199 |  ;        VALUE  - data to be validated
 | 
|---|
 | 200 |  ; Output:
 | 
|---|
 | 201 |  ;        none
 | 
|---|
 | 202 |  N X
 | 
|---|
 | 203 |  D VAL^DIE(2260,DA,FIELD,"",VALUE,.X)
 | 
|---|
 | 204 |  I X=U D
 | 
|---|
 | 205 |  .S:$G(ERROR)]"" ERROR=ERROR_","
 | 
|---|
 | 206 |  .S ERROR=$G(ERROR)_$$GET1^DID(2260,FIELD,"","LABEL")_U_VALUE
 | 
|---|
 | 207 |  .; set the data to nil so filing will not bomb
 | 
|---|
 | 208 |  .S ARR(FIELD)=""
 | 
|---|
 | 209 |  Q
 | 
|---|
 | 210 | DUP(RESULTS,SSN) ; Duplicate Case error checking broker call
 | 
|---|
 | 211 |  ;  Input:    INPUT - SSN of current ASISTS case number
 | 
|---|
 | 212 |  ; Output:  RESULTS - return array with case information
 | 
|---|
 | 213 |  ;
 | 
|---|
 | 214 |  N CN,DT,IEN,NM,TYPE
 | 
|---|
 | 215 |  S IEN="",CN=0
 | 
|---|
 | 216 |  S RESULTS(CN)="NO MATCHES FOUND"
 | 
|---|
 | 217 |  F  S IEN=$O(^OOPS(2260,"SSN",SSN,IEN)) Q:IEN=""  D
 | 
|---|
 | 218 |  . I $$GET1^DIQ(2260,IEN,51,"I") Q        ;case not open, don't include
 | 
|---|
 | 219 |  . S NM=$$GET1^DIQ(2260,IEN,1)
 | 
|---|
 | 220 |  . S TYPE=$$GET1^DIQ(2260,IEN,"3:.01")
 | 
|---|
 | 221 |  . S DT=$$GET1^DIQ(2260,IEN,4)
 | 
|---|
 | 222 |  . S RESULTS(CN)=NM_"  "_DT_"  "_TYPE
 | 
|---|
 | 223 |  . S CN=CN+1,(NM,TYPE,DT)=""
 | 
|---|
 | 224 |  Q
 | 
|---|