Released OOPS*2*14 SEQ #15 Extracted from mail message **KIDS**:OOPS*2.0*14^ **INSTALL NAME** OOPS*2.0*14 "BLD",7563,0) OOPS*2.0*14^ASISTS^0^3080219^y "BLD",7563,1,0) ^^3^3^3080219^ "BLD",7563,1,1,0) "BLD",7563,1,2,0) This patch will fix reporting errors with the OSHA 300 Log report "BLD",7563,1,3,0) and the OSHA 300A Summary report. "BLD",7563,4,0) ^9.64PA^^ "BLD",7563,6.3) 1 "BLD",7563,"KRN",0) ^9.67PA^8989.52^19 "BLD",7563,"KRN",.4,0) .4 "BLD",7563,"KRN",.401,0) .401 "BLD",7563,"KRN",.402,0) .402 "BLD",7563,"KRN",.403,0) .403 "BLD",7563,"KRN",.5,0) .5 "BLD",7563,"KRN",.84,0) .84 "BLD",7563,"KRN",3.6,0) 3.6 "BLD",7563,"KRN",3.8,0) 3.8 "BLD",7563,"KRN",9.2,0) 9.2 "BLD",7563,"KRN",9.8,0) 9.8 "BLD",7563,"KRN",9.8,"NM",0) ^9.68A^1^1 "BLD",7563,"KRN",9.8,"NM",1,0) OOPSGUIR^^0^B67711787 "BLD",7563,"KRN",9.8,"NM","B","OOPSGUIR",1) "BLD",7563,"KRN",19,0) 19 "BLD",7563,"KRN",19.1,0) 19.1 "BLD",7563,"KRN",101,0) 101 "BLD",7563,"KRN",409.61,0) 409.61 "BLD",7563,"KRN",771,0) 771 "BLD",7563,"KRN",870,0) 870 "BLD",7563,"KRN",8989.51,0) 8989.51 "BLD",7563,"KRN",8989.52,0) 8989.52 "BLD",7563,"KRN",8994,0) 8994 "BLD",7563,"KRN","B",.4,.4) "BLD",7563,"KRN","B",.401,.401) "BLD",7563,"KRN","B",.402,.402) "BLD",7563,"KRN","B",.403,.403) "BLD",7563,"KRN","B",.5,.5) "BLD",7563,"KRN","B",.84,.84) "BLD",7563,"KRN","B",3.6,3.6) "BLD",7563,"KRN","B",3.8,3.8) "BLD",7563,"KRN","B",9.2,9.2) "BLD",7563,"KRN","B",9.8,9.8) "BLD",7563,"KRN","B",19,19) "BLD",7563,"KRN","B",19.1,19.1) "BLD",7563,"KRN","B",101,101) "BLD",7563,"KRN","B",409.61,409.61) "BLD",7563,"KRN","B",771,771) "BLD",7563,"KRN","B",870,870) "BLD",7563,"KRN","B",8989.51,8989.51) "BLD",7563,"KRN","B",8989.52,8989.52) "BLD",7563,"KRN","B",8994,8994) "BLD",7563,"QDEF") ^^^^NO^^^^NO^^NO "BLD",7563,"QUES",0) ^9.62^^ "BLD",7563,"REQB",0) ^9.611^1^1 "BLD",7563,"REQB",1,0) OOPS*2.0*11^1 "BLD",7563,"REQB","B","OOPS*2.0*11",1) "MBREQ") 0 "PKG",472,-1) 1^1 "PKG",472,0) ASISTS^OOPS^Automated Safety Incident Surveillance Tracking System "PKG",472,20,0) ^9.402P^^ "PKG",472,22,0) ^9.49I^1^1 "PKG",472,22,1,0) 2.0^3020709^3030401^66481 "PKG",472,22,1,"PAH",1,0) 14^3080219 "PKG",472,22,1,"PAH",1,1,0) ^^3^3^3080219 "PKG",472,22,1,"PAH",1,1,1,0) "PKG",472,22,1,"PAH",1,1,2,0) This patch will fix reporting errors with the OSHA 300 Log report "PKG",472,22,1,"PAH",1,1,3,0) and the OSHA 300A Summary report. "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 1 "RTN","OOPSGUIR") 0^1^B67711787^B67650815 "RTN","OOPSGUIR",1,0) OOPSGUIR ;WIOFO/LLH-RPC routine for misc reports ;03/16/04 "RTN","OOPSGUIR",2,0) ;;2.0;ASISTS;**8,7,11,14**;Jun 03, 2002;Build 1 "RTN","OOPSGUIR",3,0) ; "RTN","OOPSGUIR",4,0) ENT(RESULTS,INPUT,CALL) ; get the data for the report "RTN","OOPSGUIR",5,0) ; Input: INPUT - contains 3 values, the START AND END DATE, "RTN","OOPSGUIR",6,0) ; STATION. The Date of Occ (fld #4) is used to "RTN","OOPSGUIR",7,0) ; in/exclude claims from the report. If Station='ALL' "RTN","OOPSGUIR",8,0) ; then all claims are included, if not 'All', then "RTN","OOPSGUIR",9,0) ; only 1 station is included. "RTN","OOPSGUIR",10,0) ; CALL - contains the report call which will invoke "RTN","OOPSGUIR",11,0) ; the appropriate M call "RTN","OOPSGUIR",12,0) ; Output: RESULTS - the results array passes data back to the client. "RTN","OOPSGUIR",13,0) N CAX,FI,LP,MENU,SDATE,STDT,STA,STATION,ENDDT,EDATE,TAG,X,Y,%DT "RTN","OOPSGUIR",14,0) S RESULTS(0)="Processing..." "RTN","OOPSGUIR",15,0) S STDT=$P($G(INPUT),U),ENDDT=$P($G(INPUT),U,2) "RTN","OOPSGUIR",16,0) S STA=$P($G(INPUT),U,3),TAG=CALL "RTN","OOPSGUIR",17,0) I (STDT="")!(ENDDT="")!(STA="")!(TAG="") D Q "RTN","OOPSGUIR",18,0) . S RESULTS(0)="Input parameters missing, cannot run report." Q "RTN","OOPSGUIR",19,0) K ^TMP($J,TAG) "RTN","OOPSGUIR",20,0) S (SDATE,EDATE,MENU)="" "RTN","OOPSGUIR",21,0) S X=STDT D ^%DT S SDATE=Y "RTN","OOPSGUIR",22,0) S X=ENDDT D ^%DT S EDATE=Y "RTN","OOPSGUIR",23,0) ; SDATE made last time in day prior so start date correct "RTN","OOPSGUIR",24,0) I TAG="LOG300U" S TAG="LOG300",MENU="U" "RTN","OOPSGUIR",25,0) S SDATE=(SDATE-1)+.9999,EDATE=EDATE_".9999" "RTN","OOPSGUIR",26,0) D @TAG "RTN","OOPSGUIR",27,0) Q "RTN","OOPSGUIR",28,0) SERVICE ; Service/Detail Location report - patch 11 "RTN","OOPSGUIR",29,0) DSPUTE ; Reason for Dispute report. Patch 11 "RTN","OOPSGUIR",30,0) FLD174 ; Report compiles filing instruction result counts "RTN","OOPSGUIR",31,0) FLD332 ; Use this tag for Reason for Controvert report. Patch 11 "RTN","OOPSGUIR",32,0) N ARR,CODE,CN,LP,IEN,I,GOON,P2,TX "RTN","OOPSGUIR",33,0) S LP="",IEN="",CN=0 "RTN","OOPSGUIR",34,0) I TAG="FLD174" D "RTN","OOPSGUIR",35,0) .S CODE=$P($G(^DD(2260,174,0)),U,3) "RTN","OOPSGUIR",36,0) .F I=1:1 S LP=$P(CODE,";",I) Q:$G(LP)="" I $P(LP,":",2)'="" S ARR(LP)=0 "RTN","OOPSGUIR",37,0) .S ARR(I_":No Data Entered")=0 "RTN","OOPSGUIR",38,0) I TAG="FLD332" D "RTN","OOPSGUIR",39,0) .F I=1:1 Q:'$D(^OOPS(2262.4,I)) S ARR(I_":"_$P(^OOPS(2262.4,I,0),U))=0 "RTN","OOPSGUIR",40,0) .S ARR(98_":Blk 36 also has text entered")=0 "RTN","OOPSGUIR",41,0) .S ARR(99_":Controvert question checked Yes, but no Controvert Code entered")=0 "RTN","OOPSGUIR",42,0) F LP=SDATE:0 S LP=$O(^OOPS(2260,"AD",LP)) Q:(LP'>0)!(LP>EDATE) D "RTN","OOPSGUIR",43,0) .F S IEN=$O(^OOPS(2260,"AD",LP,IEN)) Q:IEN'>0 D "RTN","OOPSGUIR",44,0) ..I $$GET1^DIQ(2260,IEN,51,"I")>1 Q ;only allow open/closed cases "RTN","OOPSGUIR",45,0) ..S CAX=$$GET1^DIQ(2260,IEN,52,"I") "RTN","OOPSGUIR",46,0) ..I TAG'="SERVICE"&(CAX=2) Q ;only allow CA1's "RTN","OOPSGUIR",47,0) ..S STATION=$P(^OOPS(2260,IEN,"2162A"),U,9) "RTN","OOPSGUIR",48,0) ..I ($G(STA)'="A"),(STATION'=STA) Q ;get correct station "RTN","OOPSGUIR",49,0) ..;patch 11 - sent to OOPSGUIF due to size this routine "RTN","OOPSGUIR",50,0) ..I TAG="DSPUTE" D DSPUTE^OOPSGUIF "RTN","OOPSGUIR",51,0) ..I TAG="SERVICE" D SERVICE^OOPSGUIU "RTN","OOPSGUIR",52,0) ..; Filing instructions report "RTN","OOPSGUIR",53,0) ..I TAG="FLD174" D "RTN","OOPSGUIR",54,0) ...S FI=$$GET1^DIQ(2260,IEN,174,"I")_":"_$$GET1^DIQ(2260,IEN,174) "RTN","OOPSGUIR",55,0) ...I $$GET1^DIQ(2260,IEN,174)="" S FI=I_":No Data Entered" "RTN","OOPSGUIR",56,0) ...S ARR(FI)=ARR(FI)+1 "RTN","OOPSGUIR",57,0) ...;patch 11 - Reason for controvert report "RTN","OOPSGUIR",58,0) ..I TAG="FLD332" D "RTN","OOPSGUIR",59,0) ...;first Agency Controvert must = "Y" to be counted "RTN","OOPSGUIR",60,0) ...S GOON=$$GET1^DIQ(2260,IEN,165.1,"I") I $G(GOON)'="Y" D Q "RTN","OOPSGUIR",61,0) ....S:'$D(ARR("999:Case not controverted, no controvert code expected")) ARR("999:Case not controverted, no controvert code expected")=0 "RTN","OOPSGUIR",62,0) ....S ARR("999:Case not controverted, no controvert code expected")=ARR("999:Case not controverted, no controvert code expected")+1 "RTN","OOPSGUIR",63,0) ...S FI=$$GET1^DIQ(2260,IEN,332,"I")_":"_$$GET1^DIQ(2260,IEN,332) "RTN","OOPSGUIR",64,0) ...I $$GET1^DIQ(2260,IEN,332)="" S FI=99_":Controvert question checked Yes, but no Controvert Code entered" "RTN","OOPSGUIR",65,0) ...S ARR(FI)=ARR(FI)+1 "RTN","OOPSGUIR",66,0) ...I $G(^OOPS(2260,IEN,"CA1K",1,0))'="" D "RTN","OOPSGUIR",67,0) ....;if case is diputed, don't count in Controvert rpt - quit "RTN","OOPSGUIR",68,0) ....S GOON=$$GET1^DIQ(2260,IEN,165.2,"I") I $G(GOON)="Y" Q "RTN","OOPSGUIR",69,0) ....S ARR(98_":Blk 36 also has text entered")=ARR(98_":Blk 36 also has text entered")+1 "RTN","OOPSGUIR",70,0) I TAG'="DSPUTE",(TAG'="SERVICE") D "RTN","OOPSGUIR",71,0) .S CN=0,FI="",P2="" "RTN","OOPSGUIR",72,0) .F S FI=$O(ARR(FI)) Q:FI="" D "RTN","OOPSGUIR",73,0) ..S CN=$P(FI,":"),P2=$P(FI,":",2),CODE=0 "RTN","OOPSGUIR",74,0) ..I TAG="FLD332" S TX=$O(^OOPS(2262.4,"B",P2,"")) I $G(TX) S CODE=$P(^OOPS(2262.4,TX,0),U,2) "RTN","OOPSGUIR",75,0) ..S ^TMP($J,TAG,CN)=P2_U_CODE_U_ARR(FI) "RTN","OOPSGUIR",76,0) ..; rearrange 'bogus' Controvert Codes for report formating "RTN","OOPSGUIR",77,0) ..I TAG="FLD332",(CN>97) S ^TMP($J,TAG,CN)=U_P2_U_ARR(FI) "RTN","OOPSGUIR",78,0) I TAG="SERVICE" D CMPLSRV^OOPSGUIU "RTN","OOPSGUIR",79,0) I TAG="DSPUTE" D DSPUTE^OOPSGUIU "RTN","OOPSGUIR",80,0) S RESULTS=$NA(^TMP($J,TAG)) "RTN","OOPSGUIR",81,0) Q "RTN","OOPSGUIR",82,0) SUM300A ; Summary of Work-related injuries and illness report "RTN","OOPSGUIR",83,0) N CN,EMP,FAC,HRS,STATE,STR "RTN","OOPSGUIR",84,0) N COLG,COLH,COLI,COLJ,COLK,COLL,COLM "RTN","OOPSGUIR",85,0) S (COLG,COLH,COLI,COLJ,COLK,COLL)=0 "RTN","OOPSGUIR",86,0) S (COLM(1),COLM(2),COLM(3),COLM(4),COLM(5),COLM(6))=0 "RTN","OOPSGUIR",87,0) S ^TMP($J,TAG,0)="No worksheet data for this station." "RTN","OOPSGUIR",88,0) S FAC=$$GET1^DIQ(4,STA,.01,"E") "RTN","OOPSGUIR",89,0) K ARR D STATINFO^OOPSGUI3(.ARR,STA) I $D(ARR) D "RTN","OOPSGUIR",90,0) .S STATE=$P($G(ARR(0)),U,3) "RTN","OOPSGUIR",91,0) .I $G(STATE)'="" D "RTN","OOPSGUIR",92,0) ..S STATE=$O(^DIC(5,"B",STATE,"")) "RTN","OOPSGUIR",93,0) ..S $P(ARR(0),U,3)=$P(^DIC(5,STATE,0),U,2) "RTN","OOPSGUIR",94,0) .S ^TMP($J,TAG,0)=FAC_U_ARR(0) "RTN","OOPSGUIR",95,0) K ARR D SITEPGET^OOPSGUI6(.ARR,"OSHA300") I $D(ARR) D "RTN","OOPSGUIR",96,0) .S CN=0 F S CN=$O(ARR(CN)) Q:CN="" D "RTN","OOPSGUIR",97,0) ..I $P(ARR(CN),U,11)'=STA Q "RTN","OOPSGUIR",98,0) ..S STR=$P($P(ARR(CN),U,1)," = ",2) "RTN","OOPSGUIR",99,0) ..S STR=$P(ARR(CN),U,3)_U_$P(ARR(CN),U,4)_U_$P(ARR(CN),U,6)_U "RTN","OOPSGUIR",100,0) ..S STR=STR_$P(ARR(CN),U,7)_U_$P(ARR(CN),U,8) "RTN","OOPSGUIR",101,0) ..S ^TMP($J,TAG,0)=^TMP($J,TAG,0)_U_STR "RTN","OOPSGUIR",102,0) K ARR,DATA S DATA="" "RTN","OOPSGUIR",103,0) D EMPHRS,DETAIL "RTN","OOPSGUIR",104,0) Q "RTN","OOPSGUIR",105,0) IRWSHT ; Incidence Rates Worksheet Report "RTN","OOPSGUIR",106,0) N COLHI,EMP,HRS "RTN","OOPSGUIR",107,0) S ^TMP($J,TAG,1)="No Worksheet Data for this Station" "RTN","OOPSGUIR",108,0) S COLHI=0 "RTN","OOPSGUIR",109,0) K ARR,DATA S DATA="" "RTN","OOPSGUIR",110,0) D EMPHRS,DETAIL "RTN","OOPSGUIR",111,0) Q "RTN","OOPSGUIR",112,0) DETAIL ; now get employee information "RTN","OOPSGUIR",113,0) LOG300 ; entry point for the OSHA 300 LOG "RTN","OOPSGUIR",114,0) N CN,CASES,DOI,FLD,IEN,INC,STATION,TYPE "RTN","OOPSGUIR",115,0) S DOI=SDATE,CASES=0,CN=1 "RTN","OOPSGUIR",116,0) F S DOI=$O(^OOPS(2260,"AF",DOI)) Q:(DOI>EDATE)!(DOI="") S IEN=0 D "RTN","OOPSGUIR",117,0) .F S IEN=$O(^OOPS(2260,"AF",DOI,"Y",IEN)) Q:IEN="" D "RTN","OOPSGUIR",118,0) ..S STATION=$P(^OOPS(2260,IEN,"2162A"),U,9) I $G(STATION)'=STA Q "RTN","OOPSGUIR",119,0) ..I $P(^OOPS(2260,IEN,0),U,6)>1 Q "RTN","OOPSGUIR",120,0) ..S CASES=CASES+1 "RTN","OOPSGUIR",121,0) ..I TAG="IRWSHT" D "RTN","OOPSGUIR",122,0) ...I $D(^OOPS(2260,IEN,"OUTC","AC","A","J"))!$D(^OOPS(2260,IEN,"OUTC","AC","A","A")) S COLHI=COLHI+1 "RTN","OOPSGUIR",123,0) ..I TAG="SUM300A" D FLD95 "RTN","OOPSGUIR",124,0) ..I TAG="LOG300" D FLD95 D "RTN","OOPSGUIR",125,0) ...S ARR(1)=$$GET1^DIQ(2260,IEN,.01),ARR(2)=$$GET1^DIQ(2260,IEN,1) "RTN","OOPSGUIR",126,0) ...I $$GET1^DIQ(2260,IEN,337,"I")="Y" S ARR(2)="Privacy Case" "RTN","OOPSGUIR",127,0) ...S TYPE=$$GET1^DIQ(2260,IEN,3,"I") "RTN","OOPSGUIR",128,0) ...I TYPE>10&(TYPE<15) S ARR(2)="Privacy Case" "RTN","OOPSGUIR",129,0) ...I MENU="U" S ARR(2)="" "RTN","OOPSGUIR",130,0) ...S INC=$$GET1^DIQ(2260,IEN,52,"I"),FLD=$S(INC=1:111,INC=2:208,1:"") "RTN","OOPSGUIR",131,0) ...S ARR(3)=$$GET1^DIQ(2260,IEN,FLD) "RTN","OOPSGUIR",132,0) ...S ARR(4)=$P($$FMTE^XLFDT(($$GET1^DIQ(2260,IEN,4,"I")),2),"@") "RTN","OOPSGUIR",133,0) ...S ARR(5)=$$GET1^DIQ(2260,IEN,27,"E") "RTN","OOPSGUIR",134,0) ...S ARR(6)=$$GET1^DIQ(2260,IEN,3)_";"_$$GET1^DIQ(2260,IEN,30) "RTN","OOPSGUIR",135,0) ...S DATA=ARR(1)_U_ARR(2)_U_ARR(3)_U_ARR(4)_U_ARR(5)_U_ARR(6)_U_ARR(7)_U "RTN","OOPSGUIR",136,0) ...S DATA=DATA_ARR(8)_U_ARR(9)_U_ARR(10) "RTN","OOPSGUIR",137,0) ...S ^TMP($J,TAG,CN)=DATA,CN=CN+1 "RTN","OOPSGUIR",138,0) I TAG="IRWSHT" S ^TMP($J,TAG,1)=CASES_U_COLHI_U_HRS "RTN","OOPSGUIR",139,0) I TAG="SUM300A" D "RTN","OOPSGUIR",140,0) .S DATA=CASES_U_EMP_U_HRS_U_COLG_U_COLH_U_COLI_U_COLJ_U_COLK_U_COLL_U "RTN","OOPSGUIR",141,0) .S DATA=DATA_COLM(1)_U_COLM(2)_U_COLM(3)_U_COLM(4)_U_COLM(5)_U_COLM(6) "RTN","OOPSGUIR",142,0) .S ^TMP($J,TAG,1)=DATA "RTN","OOPSGUIR",143,0) S RESULTS=$NA(^TMP($J,TAG)) "RTN","OOPSGUIR",144,0) K ARR,DATA "RTN","OOPSGUIR",145,0) Q "RTN","OOPSGUIR",146,0) FLD95 ; use OUTC subrecord to retrieve data "RTN","OOPSGUIR",147,0) N AVAIL,ED,SD,S0,INC,ILL,DAYA,DAYJ,DAYS,IEN95,OC,OUTC,S95,TDAY "RTN","OOPSGUIR",148,0) S S0=$G(^OOPS(2260,IEN,0)),INC=$P(S0,U,7) "RTN","OOPSGUIR",149,0) S ILL=$P($G(^OOPS(2260,IEN,"2162B")),U,15) "RTN","OOPSGUIR",150,0) S TDAY=$$HTFM^XLFDT(+$H) "RTN","OOPSGUIR",151,0) ; add days away & job transfer up only to 180 for log, 4 300A get all "RTN","OOPSGUIR",152,0) S (DAYA,DAYJ,TAWAY)=0,IEN95=0 "RTN","OOPSGUIR",153,0) F S IEN95=$O(^OOPS(2260,IEN,"OUTC",IEN95)) Q:IEN95'>0 D "RTN","OOPSGUIR",154,0) .S S95=$G(^OOPS(2260,IEN,"OUTC",IEN95,0)) "RTN","OOPSGUIR",155,0) .S SD=$P(S95,U,1),ED=$P(S95,U,2),OC=$P(S95,U,3),DAYS=0 "RTN","OOPSGUIR",156,0) .I $P(S95,U,11)="D" Q ; entry is deleted "RTN","OOPSGUIR",157,0) .;patch 11 - added logic that if TAG=LOG300 include all incident days "RTN","OOPSGUIR",158,0) .; up to 180, else 300A, only include date range incidents "RTN","OOPSGUIR",159,0) .I (TAG="SUM300A"),(EDATEEDATE) S DAYS=$$FMDIFF^XLFDT(EDATE,SD,1)+1 "RTN","OOPSGUIR",163,0) .I TAG="LOG300",($G(ED)="") S DAYS=$$FMDIFF^XLFDT(TDAY,SD,1)+1 "RTN","OOPSGUIR",164,0) .I '$G(DAYS) S DAYS=$S(OC="A":$P(S95,U,4),OC="J":$P(S95,U,5),1:0) "RTN","OOPSGUIR",165,0) .I DAYA+DAYJ>179 Q "RTN","OOPSGUIR",166,0) .S AVAIL=0 "RTN","OOPSGUIR",167,0) .I DAYS>179 S AVAIL=(180-(DAYA+DAYJ)) "RTN","OOPSGUIR",168,0) .I (DAYS<180) D "RTN","OOPSGUIR",169,0) ..I (DAYS+DAYA+DAYJ)<180 S AVAIL=DAYS "RTN","OOPSGUIR",170,0) ..I (DAYS+DAYA+DAYJ)>180 S AVAIL=(180-(DAYA+DAYJ)) "RTN","OOPSGUIR",171,0) .I $G(OC)="A" S DAYA=DAYA+AVAIL "RTN","OOPSGUIR",172,0) .I $G(OC)="J" S DAYJ=DAYJ+AVAIL "RTN","OOPSGUIR",173,0) I TAG="SUM300A" D "RTN","OOPSGUIR",174,0) .S:$G(INC)=1 COLM(1)=COLM(1)+1 "RTN","OOPSGUIR",175,0) .I INC=2 D "RTN","OOPSGUIR",176,0) ..I $G(ILL) S COLM(ILL)=COLM(ILL)+1 "RTN","OOPSGUIR",177,0) ..I '$G(ILL) S COLM(6)=COLM(6)+1 "RTN","OOPSGUIR",178,0) .S COLK=COLK+DAYA,COLL=COLL+DAYJ "RTN","OOPSGUIR",179,0) .I $D(OUTC("D")) S COLG=COLG+1 Q "RTN","OOPSGUIR",180,0) .I $D(OUTC("A")) S COLH=COLH+1 Q "RTN","OOPSGUIR",181,0) .I $D(OUTC("J")) S COLI=COLI+1 Q "RTN","OOPSGUIR",182,0) .I $D(OUTC("O")) S COLJ=COLJ+1 Q "RTN","OOPSGUIR",183,0) I TAG="LOG300" D "RTN","OOPSGUIR",184,0) .S ARR(7)="",ARR(10)="",(ARR(8),ARR(9))=0 "RTN","OOPSGUIR",185,0) .I INC=1 S ARR(10)=1 "RTN","OOPSGUIR",186,0) .I INC=2 S:$G(ILL) ARR(10)=ILL S:'$G(ILL) ARR(10)=6 "RTN","OOPSGUIR",187,0) .S ARR(8)=DAYA,ARR(9)=DAYJ "RTN","OOPSGUIR",188,0) .I $D(OUTC("D")) S ARR(7)="D" S (ARR(8),ARR(9))=0 Q "RTN","OOPSGUIR",189,0) .I $D(OUTC("A")) S ARR(7)="A" Q "RTN","OOPSGUIR",190,0) .I $D(OUTC("J")) S ARR(7)="J" Q "RTN","OOPSGUIR",191,0) .I $D(OUTC("O")) S ARR(7)="O" Q "RTN","OOPSGUIR",192,0) Q "RTN","OOPSGUIR",193,0) EMPHRS ; get Total Num Employees and Hours worked "RTN","OOPSGUIR",194,0) N CASES,ED,LV1,LV2,MON,OK,PAR,SD,SIEN,STR,WS,X,X1,X2 "RTN","OOPSGUIR",195,0) S (EMP,HRS,WS)=0 "RTN","OOPSGUIR",196,0) S PAR="^OOPS(2262,0)",PAR=$Q(@PAR),PAR=$Q(@PAR) "RTN","OOPSGUIR",197,0) S LV1=$P(PAR,",",2),LV2=$P(PAR,",",3) "RTN","OOPSGUIR",198,0) S SIEN=$O(^OOPS(2262,LV1,LV2,"B",STA,-1)) Q:SIEN="" "RTN","OOPSGUIR",199,0) ; get month range to make sure all emp numbers and hours are entered "RTN","OOPSGUIR",200,0) S SDATE=SDATE\1 "RTN","OOPSGUIR",201,0) S SD=$E(SDATE,1,5)_"00"_$E(SDATE,8,$L(SDATE)) "RTN","OOPSGUIR",202,0) S ED=$E(EDATE,1,5)_"00"_$E(EDATE,8,$L(EDATE)) "RTN","OOPSGUIR",203,0) S X1=$E(ED,1,3),X2=$E(SD,1,3) "RTN","OOPSGUIR",204,0) I X1>X2 D "RTN","OOPSGUIR",205,0) .S OK=0,X=(X1-X2) S:X>1 OK=(X-1)*12 "RTN","OOPSGUIR",206,0) .S OK=OK+((12-$E(SD,4,5))+1)+$E(ED,4,5) "RTN","OOPSGUIR",207,0) I X1=X2 S OK=($E(ED,4,5)-$E(SD,4,5))+1 "RTN","OOPSGUIR",208,0) S MON=OK "RTN","OOPSGUIR",209,0) F S WS=$O(^OOPS(2262,LV1,LV2,SIEN,2,WS)) Q:(WS'>0) D "RTN","OOPSGUIR",210,0) .S STR=^OOPS(2262,LV1,LV2,SIEN,2,WS,0) "RTN","OOPSGUIR",211,0) .I ($P(STR,U)'ED) D "RTN","OOPSGUIR",212,0) ..I ($P(STR,U,2)="")!($P(STR,U,3)="") Q "RTN","OOPSGUIR",213,0) ..S EMP=EMP+$P(STR,U,2),HRS=HRS+$P(STR,U,3),OK=OK-1 "RTN","OOPSGUIR",214,0) I '$G(OK) S EMP=EMP/MON "RTN","OOPSGUIR",215,0) I $G(OK) S (EMP,HRS)="INCOMPLETE DATA" "RTN","OOPSGUIR",216,0) Q "VER") 8.0^22.0 "BLD",7563,6) ^15 **END** **END**