| 1 | OOPSUTL2 ;HINES/WAA-Utilities Routines ;3/24/98 | 
|---|
| 2 | ;;2.0;ASISTS;;Jun 03, 2002 | 
|---|
| 3 | ;; | 
|---|
| 4 | CARE2(IEN) ; Update location field | 
|---|
| 5 | N LOC,GEN | 
|---|
| 6 | S GEN=$$GET1^DIQ(2260,IEN,27,"I") | 
|---|
| 7 | S LOC=$$GET1^DIQ(2261.4,GEN,2,"I") | 
|---|
| 8 | S $P(^OOPS(2260,IEN,"2162B"),U,1)=LOC | 
|---|
| 9 | Q | 
|---|
| 10 | VCHAR ; Write error message if invalid character | 
|---|
| 11 | W !,"Invalid character entered (~,`,@,#,$,%,*,_,|,\,},{,[,],>, or <)",!,"please edit.",! | 
|---|
| 12 | Q | 
|---|
| 13 | DEVSZ(IEN,DEV) ; This screens responses to the DEVICE SIZE table based on whether | 
|---|
| 14 | ; the OBJECT CAUSING INJURY field contains the word Needle or Syringe | 
|---|
| 15 | ; | 
|---|
| 16 | ;  Input:  IEN - Internal Record Number of claim | 
|---|
| 17 | ;          DEV - Internal Record Number in ^OOPS(2262.2) | 
|---|
| 18 | ; Output: VIEW - if 1, can select, if 0, not available | 
|---|
| 19 | ; | 
|---|
| 20 | N OBJECT,VIEW | 
|---|
| 21 | S VIEW=0 | 
|---|
| 22 | S OBJECT=$$UP^OOPSUTL4($$GET1^DIQ(2260,IEN,38)) | 
|---|
| 23 | S TYPE=$$GET1^DIQ(2262.2,DEV,1,"I") | 
|---|
| 24 | I (OBJECT["NEEDLE")&(TYPE="N"!(TYPE="NS")) S VIEW=1 | 
|---|
| 25 | I (OBJECT["SYRINGE")&(TYPE="S"!(TYPE="NS")) S VIEW=1 | 
|---|
| 26 | Q VIEW | 
|---|
| 27 | EQUIP() ; This will ask if the product failed | 
|---|
| 28 | N ANS,DIR,Y | 
|---|
| 29 | S ANS=0 | 
|---|
| 30 | S DIR(0)="YO^" | 
|---|
| 31 | S ANS=0,DIR("B")=$S($P($G(^OOPS(2260,IEN,"2162D")),U,7)'="":"YES",1:"NO") | 
|---|
| 32 | S DIR("A")="WAS THERE AN EQUIPMENT/DEVICE/PRODUCT FAILURE" | 
|---|
| 33 | S DIR("?")="Enter Yes or No to indicate that it was a failure of an device." | 
|---|
| 34 | D ^DIR | 
|---|
| 35 | I Y=1 S ANS=1 | 
|---|
| 36 | I ANS'=1,$P($G(^OOPS(2260,IEN,"2162D")),U,7)'="" S $P(^("2162D"),U,7)="" | 
|---|
| 37 | Q ANS | 
|---|
| 38 | DISP ; disp text for prompt | 
|---|
| 39 | W !,"Was the exposed part:" | 
|---|
| 40 | W !,"      Skin," | 
|---|
| 41 | W !,"      Eyes(Conjunctiva)," | 
|---|
| 42 | W !,"      Nose(mucosa)," | 
|---|
| 43 | W !,"      Mouth(mucosa)" | 
|---|
| 44 | W !,"      Other" | 
|---|
| 45 | W ! | 
|---|
| 46 | Q | 
|---|
| 47 | CARE(IEN,GEN) ; Select Patient Care Area | 
|---|
| 48 | N AREA,TYPE,VIEW | 
|---|
| 49 | S VIEW=0 | 
|---|
| 50 | S AREA=$$GET1^DIQ(2260,IEN,26,"I") | 
|---|
| 51 | I AREA="" S AREA="U" | 
|---|
| 52 | I AREA="U" S VIEW=1 | 
|---|
| 53 | E  D | 
|---|
| 54 | .S TYPE=$$GET1^DIQ(2261.4,GEN,2,"I") | 
|---|
| 55 | .I AREA=TYPE S VIEW=1 | 
|---|
| 56 | .Q | 
|---|
| 57 | Q VIEW | 
|---|
| 58 | ; | 
|---|
| 59 | N AREA,OTHER | 
|---|
| 60 | N SELECT,DIR,Y,DEFAULT,INC | 
|---|
| 61 | S INC=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 62 | S SELECT="" | 
|---|
| 63 | ;W ! | 
|---|
| 64 | ;W !,"  Select the Area Type:",! | 
|---|
| 65 | ;W !,"                  1) Patient" | 
|---|
| 66 | ;W !,"                  2) Non-patient" | 
|---|
| 67 | ;W !,"                  3) Unknown",! | 
|---|
| 68 | S DIR(0)="SAO^1:Patient;2:Non-patient;3:Unknown" | 
|---|
| 69 | S DIR("A")="GENERAL SETTING OF "_$S(INC=1:"INJURY",INC=2:"ILLNESS",1:"")_": " | 
|---|
| 70 | S DIR("?")="Select the area type to be used." | 
|---|
| 71 | S SELECT=$$GET1^DIQ(2260,IEN,27,"I") | 
|---|
| 72 | S SELECT=$S(SELECT'="":$$GET1^DIQ(2261.4,SELECT,2,"I"),1:"") | 
|---|
| 73 | S:SELECT'="" SELECT=$S(SELECT="P":"Patient",SELECT="N":"Non-patient",1:"") | 
|---|
| 74 | S:SELECT'="" DIR("B")=SELECT | 
|---|
| 75 | D ^DIR | 
|---|
| 76 | I $D(DTOUT)!($D(DUOUT)) S Y(0)="",AREA=-1 | 
|---|
| 77 | S (OTHER,AREA)=$S(Y(0)="Patient":"P",Y(0)="Non-patient":"N",Y(0)="Unknown":"",1:"-1") | 
|---|
| 78 | I AREA'=-1 D | 
|---|
| 79 | .I AREA'="",$E(AREA,1)=$E(SELECT,1) S DEFAULT=$$GET1^DIQ(2261.4,$$GET1^DIQ(2260,IEN,27,"I"),.01,"E") | 
|---|
| 80 | .D | 
|---|
| 81 | ..N DIC,X | 
|---|
| 82 | ..S DIC="^OOPS(2261.4," | 
|---|
| 83 | ..I AREA'="" S DIC("S")="I $$GET1^DIQ(2261.4,Y,2,""I"")=AREA" | 
|---|
| 84 | ..I $D(DEFAULT) S DIC("B")=DEFAULT | 
|---|
| 85 | ..S DIC("A")=$S(AREA="P":"PATIENT ",AREA="N":"NON-PATIENT ",1:" ")_"CARE AREA: ",DIC(0)="AQEMNZ" | 
|---|
| 86 | ..D ^DIC | 
|---|
| 87 | ..I $D(DTOUT)!($D(DUOUT)) S AREA=-1 Q | 
|---|
| 88 | ..I Y<1 S AREA=-1 Q | 
|---|
| 89 | ..S AREA=$P(Y,U) | 
|---|
| 90 | ..Q | 
|---|
| 91 | .Q | 
|---|
| 92 | I AREA>0 S AREA=AREA_U_OTHER | 
|---|
| 93 | Q AREA | 
|---|
| 94 | SAFETY(IEN,OPEN) ; Safety Officer Screen | 
|---|
| 95 | N VIEW | 
|---|
| 96 | S VIEW=0,OPEN=$G(OPEN,0) | 
|---|
| 97 | ;I FORM= | 
|---|
| 98 | I OPEN,'$P(^OOPS(2260,IEN,0),U,6) S VIEW=1 | 
|---|
| 99 | I 'OPEN,$P(^OOPS(2260,IEN,0),U,6)'=2,$P($$EDSTA^OOPSUTL1(IEN,"S"),U,3) S VIEW=1 | 
|---|
| 100 | Q VIEW | 
|---|
| 101 | SUPSCR(SUP,IEN,OPEN) ; Supervisor screen | 
|---|
| 102 | ; Input | 
|---|
| 103 | ;   SUP the DUZ of the Supervisor | 
|---|
| 104 | ;   IEN the IEN of the ENTRY in file 2260 | 
|---|
| 105 | ; | 
|---|
| 106 | ; Output | 
|---|
| 107 | ;   VIEW 1 Sup can see | 
|---|
| 108 | ;        0 Sup can't see | 
|---|
| 109 | N VIEW | 
|---|
| 110 | S VIEW=0,OPEN=$G(OPEN,0) | 
|---|
| 111 | I $$OPEN^OOPSUTL1(IEN,OPEN) D  ;Form can be selected | 
|---|
| 112 | .N INJ | 
|---|
| 113 | .S INJ=$$GET1^DIQ(2260,IEN,52,"I") | 
|---|
| 114 | .I ($$GET1^DIQ(2260,IEN,53,"I")'=DUZ)&($$GET1^DIQ(2260,IEN,53.1,"I")'=DUZ) Q  ; Not the Primary or secondary super | 
|---|
| 115 | .I $$EDSTA^OOPSUTL1(IEN,"O") Q | 
|---|
| 116 | .;     ^^^ 2162 has been signed by the Safety Officer | 
|---|
| 117 | . | 
|---|
| 118 | .I ($P($$EDSTA^OOPSUTL1(IEN,"S"),U,INJ)),($P($$EDSTA^OOPSUTL1(IEN,"S"),U,3)) Q  ; Form can not be selected because both | 
|---|
| 119 | . ;the 2162 and the CA1/2 have been signed | 
|---|
| 120 | .S VIEW=1 | 
|---|
| 121 | .Q | 
|---|
| 122 | Q VIEW | 
|---|
| 123 | AGNINFO ;Patch 7 - default Agency info if available | 
|---|
| 124 | S AIEN=$P(^OOPS(2260,IEN,"2162A"),"^",9) | 
|---|
| 125 | S AGN=$$GET1^DIQ(4,AIEN,.01,"E") | 
|---|
| 126 | S ADD=$$GET1^DIQ(4,AIEN,1.01,"E") | 
|---|
| 127 | S CITY=$$GET1^DIQ(4,AIEN,1.03,"E") | 
|---|
| 128 | S STATE=$$GET1^DIQ(4,AIEN,.02,"E") | 
|---|
| 129 | S ZIP=$$GET1^DIQ(4,AIEN,1.04,"E") | 
|---|
| 130 | Q | 
|---|
| 131 | PHINFO  ;Patch 7 - default physician data, if available | 
|---|
| 132 | S STAT=0 | 
|---|
| 133 | S AIEN=$P(^OOPS(2260,IEN,"2162A"),"^",9) | 
|---|
| 134 | ; get physician data for correct STATION | 
|---|
| 135 | F  S STAT=$O(^OOPS(2262,1,1,STAT)) Q:STAT'>0  I ($P(^OOPS(2262,1,1,STAT,0),"^")=AIEN) Q  ;found match, quit | 
|---|
| 136 | I STAT D | 
|---|
| 137 | .S SIEN=STAT_",1," | 
|---|
| 138 | .S PNAME=$$GET1^DIQ(2262.03,SIEN,1) | 
|---|
| 139 | .S PADD=$$GET1^DIQ(2262.03,SIEN,2) | 
|---|
| 140 | .S PCITY=$$GET1^DIQ(2262.03,SIEN,3) | 
|---|
| 141 | .S PSTATE=$$GET1^DIQ(2262.03,SIEN,4) | 
|---|
| 142 | .S PZIP=$$GET1^DIQ(2262.03,SIEN,5) | 
|---|
| 143 | .S PTITLE=$$GET1^DIQ(2262.03,SIEN,"6:1") | 
|---|
| 144 | Q | 
|---|
| 145 | RWS ;Regular Work Schedule | 
|---|
| 146 | N Y S DIR(0)="LA^1:7" | 
|---|
| 147 | S DIR("?",1)="     Enter the employee's work schedule at the time of the incident." | 
|---|
| 148 | S DIR("?",2)="     The numbers 1-7 correspond to the days of the week." | 
|---|
| 149 | S DIR("?",3)="       1 = Sunday" | 
|---|
| 150 | S DIR("?",4)="       2 = Monday" | 
|---|
| 151 | S DIR("?",5)="       3 = Tuesday" | 
|---|
| 152 | S DIR("?",6)="       4 = Wednesday" | 
|---|
| 153 | S DIR("?",7)="       5 = Thursday" | 
|---|
| 154 | S DIR("?",8)="       6 = Friday" | 
|---|
| 155 | S DIR("?",9)="       7 = Saturday" | 
|---|
| 156 | S DIR("?",10)="     Enter the day numbers as a range or list separated by commas." | 
|---|
| 157 | S DIR("?",11)="" | 
|---|
| 158 | S DIR("?",12)="     Examples: For Mon-Fri     enter 2-6 (or 2,3,4,5,6)" | 
|---|
| 159 | S DIR("?",13)="               For Wed-Sat     enter 4-7 (or 4,5,6,7)" | 
|---|
| 160 | S DIR("?")="               For Mon,Wed,Fri enter 2,4,6" | 
|---|
| 161 | D ^DIR | 
|---|
| 162 | I $P(X,"-",2)>7 W !,"     Range exceeds 1-7 limit." G RWS | 
|---|
| 163 | Q:$D(DIRUT) | 
|---|
| 164 | S:ITEM=21 $P(^OOPS(2260,D0,"CA1F"),U,11)=Y | 
|---|
| 165 | S:ITEM=22 $P(^OOPS(2260,D0,"CA2I"),U,8)=Y | 
|---|
| 166 | Q | 
|---|
| 167 | EXCEPT ; Exception statement | 
|---|
| 168 | W !," ",ITEM,". A supervisor who knowingly certifies to any false statement," | 
|---|
| 169 | W !,"     misrepresentation, concealment of fact, etc., in respect of" | 
|---|
| 170 | W !,"     this claim may also be subject to appropriate felony criminal" | 
|---|
| 171 | W !,"     prosecution." | 
|---|
| 172 | W ! | 
|---|
| 173 | W !,"     I certify that the information given above and that furnished" | 
|---|
| 174 | W !,"     by the employee is true to the best of my knowledge with the" | 
|---|
| 175 | W !,"     following exception." | 
|---|
| 176 | W ! | 
|---|
| 177 | Q | 
|---|
| 178 | MKNUM(INSTR) ; Strip/Convert num numerics from a string - Patch 11 | 
|---|
| 179 | ;   Input  - INSTR  - Character String that should be a number | 
|---|
| 180 | ;  Output  - NUMOUT - String stripped of all non-numeric characters. | 
|---|
| 181 | N K,NUMOUT | 
|---|
| 182 | S NUMOUT="" | 
|---|
| 183 | F K=1:1:$L(INSTR) I ($A(INSTR,K)>47)&($A(INSTR,K)<58) S NUMOUT=NUMOUT_$E(INSTR,K) | 
|---|
| 184 | Q NUMOUT | 
|---|
| 185 | RWSOT ;Regular Work Schedule output transform | 
|---|
| 186 | N I,HOLD | 
|---|
| 187 | S HOLD="" | 
|---|
| 188 | F I=1:1:($L(Y)/2) S HOLD=HOLD_$P("Sun,Mon,Tue,Wed,Thu,Fri,Sat",",",$P(Y,",",I))_"," | 
|---|
| 189 | S Y=$E(HOLD,1,($L(HOLD)-1)) | 
|---|
| 190 | Q | 
|---|
| 191 | UNION(IEN) ; | 
|---|
| 192 | ; Input: IEN   = Internal Entry Number of entry in file 2260 | 
|---|
| 193 | ; Output VALID = 1 Valid to be seen by Union | 
|---|
| 194 | ;              = 0 Not Valid to be seen by Union | 
|---|
| 195 | N VALID | 
|---|
| 196 | S VALID=0 | 
|---|
| 197 | I $$EDSTA^OOPSUTL1(IEN,"O"),$P($$EDSTA^OOPSUTL1(IEN,"S"),U,3) S VALID=1 | 
|---|
| 198 | Q VALID | 
|---|