| 1 | OOPSPRT ;HIRMFO/GWB-Print Report of Accident ;3/5/98
 | 
|---|
| 2 |  ;;2.0;ASISTS;;Jun 03, 2002
 | 
|---|
| 3 | SUP S DIC="^OOPS(2260,"
 | 
|---|
| 4 |  S DIC("S")="I $$GET1^DIQ(2260,Y,53,""I"")=DUZ!($$GET1^DIQ(2260,Y,53.1,""I"")=DUZ)"
 | 
|---|
| 5 |  G DIC
 | 
|---|
| 6 | SO S DIC="^OOPS(2260,"
 | 
|---|
| 7 | DIC S DIC(0)="AEMNZ",DIC("A")="Select case: "
 | 
|---|
| 8 |  D ^DIC Q:(Y<1)!($D(DTOUT))!($D(DUOUT))
 | 
|---|
| 9 |  S IEN=+Y
 | 
|---|
| 10 |  K IOP,%ZIS S %ZIS="MQ" W ! D ^%ZIS K %ZIS,IOP G:POP KILL
 | 
|---|
| 11 |  I $D(IO("Q")) S OOPSLST="IEN^UNION" D TASK G KILL
 | 
|---|
| 12 |  U IO D PRT D ^%ZISC K %ZIS,IOP G KILL
 | 
|---|
| 13 | PRT N LIN,SUP,AETBF,CAT,PPE,INCID
 | 
|---|
| 14 |  S PG=0,EX="",LIN=$S(($E(IOST,1,2)="C-"):IOSL-2,1:IOSL-6),IE=IEN
 | 
|---|
| 15 |  D NOW^%DTC S DATE=%,Y=DATE X ^DD("DD") S DATE=$P(Y,":",1,2)
 | 
|---|
| 16 |  K DIQ,DA,DR S DIC="^OOPS(2260,",DR=".01:99",DA=IEN,DIQ="OOPS" D EN^DIQ1
 | 
|---|
| 17 |  I $D(^OOPS(2260,IEN,"2162E")) S EIEN=0 F  S EIEN=$O(^OOPS(2260,IEN,"2162E",EIEN)) Q:EIEN=""  K DIQ S DIC="^OOPS(2260,",DR=39,DA=IEN,DIQ="OOPS",DR(2260.039)=.01,DA(2260.039)=EIEN D EN^DIQ1
 | 
|---|
| 18 |  I $D(^OOPS(2260,IEN,"2162F")) S FIEN=0 F  S FIEN=$O(^OOPS(2260,IEN,"2162F",FIEN)) Q:FIEN=""  K DIQ S DIC="^OOPS(2260,",DR=40,DA=IEN,DIQ="OOPS",DR(2260.01)=.01,DA(2260.01)=FIEN D EN^DIQ1
 | 
|---|
| 19 |  S CN=OOPS(2260,IEN,.01)
 | 
|---|
| 20 |  S TOI=OOPS(2260,IEN,3)
 | 
|---|
| 21 |  ; Patch 5 - have changed this logic, matches other routines
 | 
|---|
| 22 |  S CAT=$$GET1^DIQ(2260,IEN,2,"I")
 | 
|---|
| 23 |  S SUP=$S((CAT=1!(CAT>6)):"SUPERVISOR...................:",CAT=2:"VOLUNTARY SVC SUPERVISOR.....:",CAT=3:"CONTRACT ADMINISTRATOR.......:",1:"SAFETY OFFICER...............:")
 | 
|---|
| 24 |  D HDR
 | 
|---|
| 25 |  W !,"CASE NUMBER..................: ",OOPS(2260,IEN,.01) D P Q:EX=U
 | 
|---|
| 26 |  W !,"PERSONNEL STATUS.............: ",OOPS(2260,IEN,2) D P Q:EX=U
 | 
|---|
| 27 |  W !,"SERVICE......................: ",OOPS(2260,IEN,86) D P Q:EX=U
 | 
|---|
| 28 |  W !,"TYPE OF INCIDENT.............: ",OOPS(2260,IEN,3) D P Q:EX=U
 | 
|---|
| 29 |  W !,"CASE STATUS..................: ",OOPS(2260,IEN,51) D P Q:EX=U
 | 
|---|
| 30 |  W !,"INJURY/ILLNESS...............: ",OOPS(2260,IEN,52) D P Q:EX=U
 | 
|---|
| 31 |  ; Patch 5 - added the block structure
 | 
|---|
| 32 |  I $G(UNION)'="Y" D  Q:EX=U
 | 
|---|
| 33 |  . W !,"PERSON INVOLVED..............: ",OOPS(2260,IEN,1) D P Q:EX=U
 | 
|---|
| 34 |  . W !,"SSN..........................: ",OOPS(2260,IEN,5) D P Q:EX=U
 | 
|---|
| 35 |  . W !,"DATE OF BIRTH................: ",OOPS(2260,IEN,6) D P Q:EX=U
 | 
|---|
| 36 |  . W !,"SEX..........................: ",OOPS(2260,IEN,7) D P Q:EX=U
 | 
|---|
| 37 |  . W !,"HOME ADDRESS.................: ",OOPS(2260,IEN,8) D P Q:EX=U
 | 
|---|
| 38 |  . I (OOPS(2260,IEN,9)'="")!(OOPS(2260,IEN,10)'="")!(OOPS(2260,IEN,11)'="") W !,"                               ",OOPS(2260,IEN,9),", ",OOPS(2260,IEN,10)," ",OOPS(2260,IEN,11) D P Q:EX=U
 | 
|---|
| 39 |  . W !,"HOME PHONE NUMBER............: ",OOPS(2260,IEN,12) D P Q:EX=U
 | 
|---|
| 40 |  . ; Patch 5 - print station #
 | 
|---|
| 41 |  . W !,"STATION NUMBER...............: ",OOPS(2260,IEN,13) D P Q:EX=U
 | 
|---|
| 42 |  . W !,"COST CENTER/ORG..............: ",OOPS(2260,IEN,14) D P Q:EX=U
 | 
|---|
| 43 |  . W !,"OCCUPATION...................: ",OOPS(2260,IEN,15) D P Q:EX=U
 | 
|---|
| 44 |  . W !,"GRADE/STEP...................: ",OOPS(2260,IEN,16) W:OOPS(2260,IEN,16)'="" "/" W OOPS(2260,IEN,17) D P Q:EX=U
 | 
|---|
| 45 |  . W !,"EDUCATION....................: ",OOPS(2260,IEN,18) D P Q:EX=U
 | 
|---|
| 46 |  . W !,SUP," ",OOPS(2260,IEN,53) D P Q:EX=U
 | 
|---|
| 47 |  . W !,"SECONDARY SUPERVISOR.........: ",OOPS(2260,IEN,53.1) D P Q:EX=U
 | 
|---|
| 48 |  ; Patch 5 - new logic for Station Number display
 | 
|---|
| 49 |  I $G(UNION)="Y" D  Q:EX=U
 | 
|---|
| 50 |  . W !,"STATION NUMBER...............: ",OOPS(2260,IEN,13) D P Q:EX=U
 | 
|---|
| 51 |  W !,"DATE/TIME OF OCCURRENCE......: ",OOPS(2260,IEN,4) D P Q:EX=U
 | 
|---|
| 52 |  W !,"GENERAL SETTING OF INCIDENT..: ",OOPS(2260,IEN,26) D P Q:EX=U
 | 
|---|
| 53 |  W !,"LOCATION OF INCIDENT.........: ",OOPS(2260,IEN,27) D P Q:EX=U
 | 
|---|
| 54 |  W !,"CHARACTERIZATION OF INJURY...: ",OOPS(2260,IEN,29) D P Q:EX=U
 | 
|---|
| 55 |  ; Patch 5 - added write
 | 
|---|
| 56 |  W !,"MEDICAL EMERGENCY............: ",OOPS(2260,IEN,29.5) D P Q:EX=U
 | 
|---|
| 57 |  W !,"BODY PART MOST AFFECTED......: ",OOPS(2260,IEN,30) D P Q:EX=U
 | 
|---|
| 58 |  W !,"ADDITIONAL BODY PART AFFECTED: ",OOPS(2260,IEN,30.1) D P Q:EX=U
 | 
|---|
| 59 |  W !,"SIDE OF BODY AFFECTED........: ",OOPS(2260,IEN,31) D P Q:EX=U
 | 
|---|
| 60 |  W !,"DUTY RETURNED TO.............: ",OOPS(2260,IEN,32) D P Q:EX=U
 | 
|---|
| 61 |  W !,"LOST TIME....................: ",OOPS(2260,IEN,33) D P Q:EX=U
 | 
|---|
| 62 |  W !,"DESCRIPTION OF INCIDENT......:"
 | 
|---|
| 63 |  S DOI=0 F  S DOI=$O(OOPS(2260,IEN,28,DOI)) Q:DOI=""  W !," ",OOPS(2260,IEN,28,DOI) D P Q:EX=U
 | 
|---|
| 64 |  ; Patch 11 - set INCID and use rather than global hit
 | 
|---|
| 65 |  S INCID=$P(^OOPS(2260,IEN,0),U,4)
 | 
|---|
| 66 |  I INCID>10 D  Q:EX=U
 | 
|---|
| 67 |  .W !,"PATIENT SOURCE...............: ",OOPS(2260,IEN,34) D P Q:EX=U
 | 
|---|
| 68 |  I (INCID=11)!(INCID=12)!(INCID=14) D
 | 
|---|
| 69 |  .W !,"CONTAMINATION................: ",OOPS(2260,IEN,35) D P Q:EX=U
 | 
|---|
| 70 |  .W !,"PURPOSE OF SHARP OBJECT......: ",OOPS(2260,IEN,36) D P Q:EX=U
 | 
|---|
| 71 |  .W !,"ACTIVITY AT TIME OF INJURY...: ",OOPS(2260,IEN,37) D P Q:EX=U
 | 
|---|
| 72 |  .W !,"OBJECT CAUSING INJURY........: ",OOPS(2260,IEN,38) D P Q:EX=U
 | 
|---|
| 73 |  .I OOPS(2260,IEN,83)'="" D
 | 
|---|
| 74 |  ..W !,"DEVICE SIZE..................: ",OOPS(2260,IEN,83) D P Q:EX=U
 | 
|---|
| 75 |  .W !,"BRAND........................: ",OOPS(2260,IEN,82) D P Q:EX=U
 | 
|---|
| 76 |  I INCID=13 D  Q:EX=U
 | 
|---|
| 77 |  .W !,"AREA EXPOSED TO BODILY FLUID.: "
 | 
|---|
| 78 |  .K IND S AETBF=0 F  S AETBF=$O(OOPS(2260.039,AETBF)) Q:AETBF=""  W ?31,OOPS(2260.039,AETBF,.01),! S IND="" D P Q:EX=U
 | 
|---|
| 79 |  .W:'$D(IND) ! W "PERSONAL PROTECTIVE EQUIPMENT: " K IND
 | 
|---|
| 80 |  .K IND S PPE=0 F  S PPE=$O(OOPS(2260.01,PPE)) Q:PPE=""  W ?31,OOPS(2260.01,PPE,.01),! S IND="" D P Q:EX=U
 | 
|---|
| 81 |  .W:'$D(IND) ! W "BODILY FLUID EXPOSURE SOURCE.: ",OOPS(2260,IEN,41) K IND D P Q:EX=U
 | 
|---|
| 82 |  I INCID>10 D  Q:EX=U
 | 
|---|
| 83 |  .; Patch 5 - added If
 | 
|---|
| 84 |  .I OOPS(2260,IEN,42.5)="Yes" D  Q:EX=U
 | 
|---|
| 85 |  ..W !,"EQUIPMENT/DEVICE FAILURE.....: ",OOPS(2260,IEN,42) D P Q:EX=U
 | 
|---|
| 86 |  .W !,"SAFETY DESIGN DEVICE USED....: ",OOPS(2260,IEN,43) D P Q:EX=U
 | 
|---|
| 87 |  .I (OOPS(2260,IEN,43)="Yes") D
 | 
|---|
| 88 |  .. W !,"DID INJURY OCCUR BEFORE"
 | 
|---|
| 89 |  .. W !," SAFETY DEVICE WAS ENGAGED...: ",OOPS(2260,IEN,87) D P Q:EX=U
 | 
|---|
| 90 |  .. W !,"SAFETY CHARACTERISTICS.......: ",OOPS(2260,IEN,84) D P Q:EX=U
 | 
|---|
| 91 |  .W:(OOPS(2260,IEN,43)="No") !,"EXPLAIN WHY SAFE DEV NOT USED: ",OOPS(2260,IEN,85) D P Q:EX=U
 | 
|---|
| 92 |  W !,"CORRECTIVE ACTION............: "
 | 
|---|
| 93 |  S OPFLD=47 D WP K OPFLD
 | 
|---|
| 94 |  W !,"SAFETY OFF. COMMENTS.........: "
 | 
|---|
| 95 |  S OPFLD=55 D WP K OPFLD
 | 
|---|
| 96 |  W !,"PERSON ENTERING STUB RECORD..: ",OOPS(2260,IEN,56) D P Q:EX=U
 | 
|---|
| 97 |  I $G(UNION)'="Y" W !,"/ES/SUPERVISOR...............: ",OOPS(2260,IEN,44) D P Q:EX=U
 | 
|---|
| 98 |  W !,"SUPERVISOR SIGNATURE DATE....: ",OOPS(2260,IEN,46) D P Q:EX=U
 | 
|---|
| 99 |  W !,"/ES/SAFETY OFFICER...........: ",OOPS(2260,IEN,48) D P Q:EX=U
 | 
|---|
| 100 |  W !,"SAFETY OFFICER SIGNATURE DATE: ",OOPS(2260,IEN,50) D P Q:EX=U
 | 
|---|
| 101 |  I $E(IOST,1,2)="C-" W ! K DIR S DIR(0)="E" D ^DIR W @IOF
 | 
|---|
| 102 | KILL ;Kill Variables and Exit
 | 
|---|
| 103 |  K %,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 104 |  K CA,CACNT,CN,D0,DA,DASHES,DATE,DIC,DIQ,DIQ2,DOI,DR,EIEN,EX,FIEN,I,IE
 | 
|---|
| 105 |  K IEN,OOPS,PG,TOI,SUP,UNION
 | 
|---|
| 106 |  Q
 | 
|---|
| 107 | P ;Print
 | 
|---|
| 108 |  I ($Y'<(LIN-3)) D  Q:EX=U
 | 
|---|
| 109 |  .I IOST?1"C".E W ! K DIR S DIR(0)="E" D ^DIR I 'Y S EX=U Q
 | 
|---|
| 110 |  .D HDR Q
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | TASK ;Queue a task
 | 
|---|
| 113 |  K IO("Q"),ZTUCI,ZTDTH,ZTIO,ZTSAVE
 | 
|---|
| 114 |  S ZTRTN="PRT^OOPSPRT",ZTREQ="@",ZTSAVE("ZTREQ")=""
 | 
|---|
| 115 |  S ZTDESC="ASISTS REPORT OF ACCIDENT"
 | 
|---|
| 116 |  F V2=1:1 S V1=$P(OOPSLST,"^",V2) Q:V1=""  S ZTSAVE(V1)=""
 | 
|---|
| 117 |  D ^%ZTLOAD D ^%ZISC U IO W !,"Request Queued",!
 | 
|---|
| 118 |  K V1,V2,OOPSLST,ZTSK Q
 | 
|---|
| 119 | WP ; Process Word Processing Fields (#47, #55)
 | 
|---|
| 120 |  N DIWL,DIWR,DIWF,OPGLB,OPI,OPNODE,OPT,OPC
 | 
|---|
| 121 |  K ^UTILITY($J,"W")
 | 
|---|
| 122 |  S DIWL=1,DIWR="",DIWF="|C76"
 | 
|---|
| 123 |  S OPNODE=$P($$GET1^DID(2260,OPFLD,"","GLOBAL SUBSCRIPT LOCATION"),";")
 | 
|---|
| 124 |  S OPI=0 F  S OPI=$O(^OOPS(2260,IEN,OPNODE,OPI)) Q:'OPI  S X=$G(^OOPS(2260,IEN,OPNODE,OPI,0)) D:X]"" ^DIWP
 | 
|---|
| 125 |  S OPT=$G(^UTILITY($J,"W",1))+0
 | 
|---|
| 126 |  I OPT S OPI=0 F OPC=1:1 S OPI=$O(^UTILITY($J,"W",1,OPI)) Q:'OPI!(EX=U)  D
 | 
|---|
| 127 |  . W !?1,^UTILITY($J,"W",1,OPI,0) D P Q:EX=U
 | 
|---|
| 128 |  K ^UTILITY($J,"W"),X
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | HDR ;Header
 | 
|---|
| 131 |  W @IOF S PG=PG+1 K DASHES S $P(DASHES,"-",80)="-"
 | 
|---|
| 132 |  W !,"Report of Accident ",CN,?73,"Page ",PG
 | 
|---|
| 133 |  ;W ?62,ONDATE,!,DASHES
 | 
|---|
| 134 |  W !,DASHES
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 | UNION ; Union Entry point
 | 
|---|
| 137 |  S UNION="Y"
 | 
|---|
| 138 |  S DIC="^OOPS(2260,"
 | 
|---|
| 139 |  S DIC("S")="I $$UNION^OOPSUTL2(Y)"
 | 
|---|
| 140 |  G DIC
 | 
|---|