Released OOPS*2*28 SEQ #27 Extracted from mail message **KIDS**:OOPS*2.0*28^ **INSTALL NAME** OOPS*2.0*28 "BLD",10057,0) OOPS*2.0*28^ASISTS^0^3151028^y "BLD",10057,1,0) ^^5^5^3151006^ "BLD",10057,1,1,0) This patch fixes the following issues: "BLD",10057,1,2,0) "BLD",10057,1,3,0) 1) Total Days Issue "BLD",10057,1,4,0) 2) Save Location of Injury detail edits "BLD",10057,1,5,0) 3) Incident Report Location of Injury availability "BLD",10057,4,0) ^9.64PA^^ "BLD",10057,6.3) 2 "BLD",10057,"KRN",0) ^9.67PA^779.2^20 "BLD",10057,"KRN",.4,0) .4 "BLD",10057,"KRN",.401,0) .401 "BLD",10057,"KRN",.402,0) .402 "BLD",10057,"KRN",.403,0) .403 "BLD",10057,"KRN",.5,0) .5 "BLD",10057,"KRN",.84,0) .84 "BLD",10057,"KRN",3.6,0) 3.6 "BLD",10057,"KRN",3.8,0) 3.8 "BLD",10057,"KRN",9.2,0) 9.2 "BLD",10057,"KRN",9.8,0) 9.8 "BLD",10057,"KRN",9.8,"NM",0) ^9.68A^1^1 "BLD",10057,"KRN",9.8,"NM",1,0) OOPSGUI1^^0^B34497535 "BLD",10057,"KRN",9.8,"NM","B","OOPSGUI1",1) "BLD",10057,"KRN",19,0) 19 "BLD",10057,"KRN",19.1,0) 19.1 "BLD",10057,"KRN",101,0) 101 "BLD",10057,"KRN",409.61,0) 409.61 "BLD",10057,"KRN",771,0) 771 "BLD",10057,"KRN",779.2,0) 779.2 "BLD",10057,"KRN",870,0) 870 "BLD",10057,"KRN",8989.51,0) 8989.51 "BLD",10057,"KRN",8989.52,0) 8989.52 "BLD",10057,"KRN",8994,0) 8994 "BLD",10057,"KRN","B",.4,.4) "BLD",10057,"KRN","B",.401,.401) "BLD",10057,"KRN","B",.402,.402) "BLD",10057,"KRN","B",.403,.403) "BLD",10057,"KRN","B",.5,.5) "BLD",10057,"KRN","B",.84,.84) "BLD",10057,"KRN","B",3.6,3.6) "BLD",10057,"KRN","B",3.8,3.8) "BLD",10057,"KRN","B",9.2,9.2) "BLD",10057,"KRN","B",9.8,9.8) "BLD",10057,"KRN","B",19,19) "BLD",10057,"KRN","B",19.1,19.1) "BLD",10057,"KRN","B",101,101) "BLD",10057,"KRN","B",409.61,409.61) "BLD",10057,"KRN","B",771,771) "BLD",10057,"KRN","B",779.2,779.2) "BLD",10057,"KRN","B",870,870) "BLD",10057,"KRN","B",8989.51,8989.51) "BLD",10057,"KRN","B",8989.52,8989.52) "BLD",10057,"KRN","B",8994,8994) "BLD",10057,"QUES",0) ^9.62^^ "BLD",10057,"REQB",0) ^9.611^1^1 "BLD",10057,"REQB",1,0) OOPS*2.0*23^1 "BLD",10057,"REQB","B","OOPS*2.0*23",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) 28^3151028 "PKG",472,22,1,"PAH",1,1,0) ^^5^5^3151028 "PKG",472,22,1,"PAH",1,1,1,0) This patch fixes the following issues: "PKG",472,22,1,"PAH",1,1,2,0) "PKG",472,22,1,"PAH",1,1,3,0) 1) Total Days Issue "PKG",472,22,1,"PAH",1,1,4,0) 2) Save Location of Injury detail edits "PKG",472,22,1,"PAH",1,1,5,0) 3) Incident Report Location of Injury availability "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","OOPSGUI1") 0^1^B34497535^B34497365 "RTN","OOPSGUI1",1,0) OOPSGUI1 ;WIOFO/LLH - RPC routines ;9/3/01 "RTN","OOPSGUI1",2,0) ;;2.0;ASISTS;**4,8,7,11,15,18,20,21,23,28**;Jun 03, 2002;Build 2 "RTN","OOPSGUI1",3,0) ; "RTN","OOPSGUI1",4,0) OPT(RESULTS,INP) ; Returns the ASISTS GUI Menus user has access to "RTN","OOPSGUI1",5,0) ; INP - Input String containing the version of GUI making call "RTN","OOPSGUI1",6,0) ; RESUTLS - return value for broker call "RTN","OOPSGUI1",7,0) ; P1 = 1 DUZ defined "RTN","OOPSGUI1",8,0) ; P2 = 1 Emp Health menu accessible "RTN","OOPSGUI1",9,0) ; P3 = 1 Employee menu accessible "RTN","OOPSGUI1",10,0) ; P4 = 1 Supervisor menu accessible "RTN","OOPSGUI1",11,0) ; P5 = 1 Safety Officer menu accessible "RTN","OOPSGUI1",12,0) ; P6 = 1 Union menu accessible "RTN","OOPSGUI1",13,0) ; P7 = 1 Workers' Comp menu accessible "RTN","OOPSGUI1",14,0) ; P8 = SSN from New Person file for user "RTN","OOPSGUI1",15,0) ; P9 = server version # "RTN","OOPSGUI1",16,0) ; "RTN","OOPSGUI1",17,0) N CNT,MENU,OPT,PRIM,SM,VER "RTN","OOPSGUI1",18,0) S CNT=1 "RTN","OOPSGUI1",19,0) I 'DUZ S RESULTS="0^^^^^^^" Q "RTN","OOPSGUI1",20,0) S RESULTS=DUZ_"^0^0^0^0^0^0^" "RTN","OOPSGUI1",21,0) ;V1_P28 - changed version to 28 "RTN","OOPSGUI1",22,0) S VER="2.28.1.0" ;Define version check patch #4 "RTN","OOPSGUI1",23,0) I $G(INP)=""!($G(INP)'=VER) Q "RTN","OOPSGUI1",24,0) S PRIM=$$GET1^DIQ(200,DUZ,201) ; get primary menu "RTN","OOPSGUI1",25,0) I $G(PRIM)'="" S MENU(PRIM)="" "RTN","OOPSGUI1",26,0) S SM=0 "RTN","OOPSGUI1",27,0) F S SM=$O(^VA(200,DUZ,203,SM)) Q:SM'>0 D "RTN","OOPSGUI1",28,0) . S OPT=$$GET1^DIQ(19,$P($G(^VA(200,DUZ,203,SM,0)),U),.01) "RTN","OOPSGUI1",29,0) . I $G(OPT)'="" S MENU(OPT)="" "RTN","OOPSGUI1",30,0) I $D(MENU("OOPS GUI EMPLOYEE HEALTH MENU")) S $P(RESULTS,U,2)=1 "RTN","OOPSGUI1",31,0) I $D(MENU("OOPS GUI EMPLOYEE")) S $P(RESULTS,U,3)=1 "RTN","OOPSGUI1",32,0) I $D(MENU("OOPS GUI SUPERVISOR MENU")) S $P(RESULTS,U,4)=1 "RTN","OOPSGUI1",33,0) I $D(MENU("OOPS GUI SAFETY OFFICER MENU")) S $P(RESULTS,U,5)=1 "RTN","OOPSGUI1",34,0) I $D(MENU("OOPS GUI UNION MENU")) S $P(RESULTS,U,6)=1 "RTN","OOPSGUI1",35,0) I $D(MENU("OOPS GUI WORKERS' COMP MENU")) S $P(RESULTS,U,7)=1 "RTN","OOPSGUI1",36,0) I +$$ACCESS^XQCHK(DUZ,"OOPS GUI EMPLOYEE") S $P(RESULTS,U,3)=1 "RTN","OOPSGUI1",37,0) S $P(RESULTS,U,8)=$$GET1^DIQ(200,DUZ,9) "RTN","OOPSGUI1",38,0) S $P(RESULTS,U,9)=VER ;return the version defined above. "RTN","OOPSGUI1",39,0) Q "RTN","OOPSGUI1",40,0) SETSIGN(RESULTS,INPUT,SIGN) ; This subroutine validates that the signature "RTN","OOPSGUI1",41,0) ; can be entered and is valid "RTN","OOPSGUI1",42,0) ; Input: INPUT - Contains the IEN of the ASISTS case, the form type, "RTN","OOPSGUI1",43,0) ; and the field number. The field number is used "RTN","OOPSGUI1",44,0) ; to trigger what validation should be preformed on "RTN","OOPSGUI1",45,0) ; the fields in the form so that the signature can "RTN","OOPSGUI1",46,0) ; be applied. The fourth parameter is a special flag "RTN","OOPSGUI1",47,0) ; indicating the Workers Comp is signing for employee "RTN","OOPSGUI1",48,0) ; Format is IEN^FORM^FIELD^WCFLAG "RTN","OOPSGUI1",49,0) ; SIGN - contains the signature test to be encrypted. "RTN","OOPSGUI1",50,0) ; Output: RESULTS - is an array containing a list of fields that did "RTN","OOPSGUI1",51,0) ; not pass the data validation and must be corrected "RTN","OOPSGUI1",52,0) ; prior to applying a signature. "RTN","OOPSGUI1",53,0) N CALL,DTIME,FDUZ,FDT,FLD,IEN,INC,FORM,ESIG,VALID,CALLER,WOK "RTN","OOPSGUI1",54,0) N DR,DA,DIE,WCFLG "RTN","OOPSGUI1",55,0) S IEN=$P($G(INPUT),U),FORM=$P($G(INPUT),U,2),FLD=$P($G(INPUT),U,3) "RTN","OOPSGUI1",56,0) I '$G(IEN)!('$G(FLD)) S RESULTS(1)="User not Authorized to sign form" Q "RTN","OOPSGUI1",57,0) I FLD=45!(FLD=170)!(FLD=266) S CALL="S" "RTN","OOPSGUI1",58,0) I FLD=49!(FLD=77) S CALL="O" "RTN","OOPSGUI1",59,0) ; Patch 5 ll - added !(FLD=313)!(FLD=320) "RTN","OOPSGUI1",60,0) I FLD=68!(FLD=313)!(FLD=320) S CALL="W" "RTN","OOPSGUI1",61,0) I FLD=80 S CALL="H" "RTN","OOPSGUI1",62,0) ; Patch 5 llh - added !(FLD=310) "RTN","OOPSGUI1",63,0) I FLD=120!(FLD=222)!(FLD=310) S CALL="E" "RTN","OOPSGUI1",64,0) S WCFLG=$P($G(INPUT),U,4) "RTN","OOPSGUI1",65,0) I WCFLG'="W" D "RTN","OOPSGUI1",66,0) .; Patch 5 llh - moved non fld check logic to separate line "RTN","OOPSGUI1",67,0) .; added stuff to check if dual benefits have been signed "RTN","OOPSGUI1",68,0) .I (FLD=120!(FLD=222)) D "RTN","OOPSGUI1",69,0) ..I ($$GET1^DIQ(2260,IEN,71,"I")'="Y") D Q "RTN","OOPSGUI1",70,0) ...S RESULTS(1)="Claim cannot be signed until the Bill of Rights Statement is understood." "RTN","OOPSGUI1",71,0) ...D WCPBOR^OOPSMBUL(IEN) "RTN","OOPSGUI1",72,0) ;..Commented out Patch 11 cvw "RTN","OOPSGUI1",73,0) ;..I $$GET1^DIQ(2260,IEN,310)="" D Q "RTN","OOPSGUI1",74,0) ;...S RESULTS(1)="Claim cannot be signed until the Dual Benefits form has been signed." "RTN","OOPSGUI1",75,0) ; check to make sure PAID fields (also Service) not "", if "" get data "RTN","OOPSGUI1",76,0) D CHKPAID "RTN","OOPSGUI1",77,0) S VALID=0 "RTN","OOPSGUI1",78,0) S INC=$$GET1^DIQ(2260,IEN,52,"I") "RTN","OOPSGUI1",79,0) ; Patch 5 llh - added ,(FLD'>300) "RTN","OOPSGUI1",80,0) I (FLD'=77),(FLD'=80),(FLD'>300) D I 'VALID Q "RTN","OOPSGUI1",81,0) .D VALIDATE^OOPSGUI9(IEN,FORM,CALL,.VALID) "RTN","OOPSGUI1",82,0) I $G(SIGN)="" S RESULTS(1)="No Signature Entered" Q "RTN","OOPSGUI1",83,0) S VALID=$$VALIDATE($$DECRYP^XUSRB1(SIGN)) "RTN","OOPSGUI1",84,0) I 'VALID D Q "RTN","OOPSGUI1",85,0) .I $P($G(^VA(200,DUZ,20)),"^",4)="" S RESULTS(1)="No Electronic Signature on File" Q "RTN","OOPSGUI1",86,0) .S RESULTS(1)="Invalid Signature Entered." "RTN","OOPSGUI1",87,0) SIGN ; All field validated, file signature "RTN","OOPSGUI1",88,0) I FLD=77 S FDUZ=76,FDT=78 ; Safety approve WC sign "RTN","OOPSGUI1",89,0) I FLD=80 S FDUZ=79,FDT=81 ; EH approve WC sign "RTN","OOPSGUI1",90,0) I FLD=120 S FDUZ=119,FDT=121 ; Employee sign CA1 "RTN","OOPSGUI1",91,0) I FLD=222 S FDUZ=221,FDT=223 ; Employee sign CA2 "RTN","OOPSGUI1",92,0) I FLD=170 S FDUZ=169,FDT=171 ; Super sign CA1 "RTN","OOPSGUI1",93,0) I FLD=266 S FDUZ=265,FDT=267 ; Super sign CA2 "RTN","OOPSGUI1",94,0) I FLD=45 S FDUZ=44,FDT=46 ; Super sign 2162 "RTN","OOPSGUI1",95,0) I FLD=49 S FDUZ=48,FDT=50 ; Safety sign 2162 "RTN","OOPSGUI1",96,0) I FLD=68 S FDUZ=67,FDT=69,WOK=1 ; WC approve to DOL "RTN","OOPSGUI1",97,0) ; patch 5 llh - added next 2 lines (may need more) "RTN","OOPSGUI1",98,0) I FLD=310 S FDUZ=309,FDT=311 ; Emp sign Dual Benefits "RTN","OOPSGUI1",99,0) I FLD=313 S FDUZ=312,FDT=314 ; WC sign Dual Benefits "RTN","OOPSGUI1",100,0) D NOW^%DTC S DTIME=% "RTN","OOPSGUI1",101,0) K DR S DIE="^OOPS(2260,",DA=IEN "RTN","OOPSGUI1",102,0) S DR=FDUZ_"////^S X=+DUZ;"_FLD_"////^S X=ESIG;"_FDT_"////^S X=DTIME" "RTN","OOPSGUI1",103,0) D ^DIE "RTN","OOPSGUI1",104,0) I $G(Y)'="" Q "RTN","OOPSGUI1",105,0) I FLD=68 D WCP^OOPSMBUL(IEN,"S") "RTN","OOPSGUI1",106,0) I FLD=120!(FLD=222) S CALLER=CALL D EMP^OOPSVAL1 "RTN","OOPSGUI1",107,0) I FLD=45 D SAFETY^OOPSMBUL(IEN) "RTN","OOPSGUI1",108,0) I (FLD=170)!(FLD=266) D SUPS^OOPSMBUL(IEN),UNION^OOPSMBUL(IEN) "RTN","OOPSGUI1",109,0) Q "RTN","OOPSGUI1",110,0) VALIDATE(X) ; Validate Electronic Sign code "RTN","OOPSGUI1",111,0) ; Input: X - contains the signature to be validated "RTN","OOPSGUI1",112,0) ; Output: VSIGN - contains a 1 if a valid e-signature, a 0 if not valid "RTN","OOPSGUI1",113,0) N VSIGN "RTN","OOPSGUI1",114,0) S VSIGN=0 "RTN","OOPSGUI1",115,0) D HASH^XUSHSHP "RTN","OOPSGUI1",116,0) I X'="",(X=$P($G(^VA(200,DUZ,20)),"^",4)) S VSIGN=1,ESIG=X "RTN","OOPSGUI1",117,0) Q VSIGN "RTN","OOPSGUI1",118,0) CHKPAID ; check to make sure PAID fields have data, if not populate "RTN","OOPSGUI1",119,0) ; this subroutine can be removed when go completely to GUI "RTN","OOPSGUI1",120,0) N DA,DIE,DR,CAT,FLD,IEN200,OCCD,PAY,PAYP,RET,SAL,SERV,SSN "RTN","OOPSGUI1",121,0) I $$GET1^DIQ(2260,IEN,60)="" D "RTN","OOPSGUI1",122,0) .S FLD=26,RET="",RET=$$PAID^OOPSUTL1(IEN,FLD) "RTN","OOPSGUI1",123,0) .S RET=$S(RET="FULL CSRS":"CSRS",RET="FERS":"FERS",1:"OTHER") "RTN","OOPSGUI1",124,0) .S DIE="^OOPS(2260,",DA=IEN,DR="60///^S X=RET" D ^DIE "RTN","OOPSGUI1",125,0) I $$GET1^DIQ(2260,IEN,86)="" D "RTN","OOPSGUI1",126,0) .S SERV="",SSN=$$GET1^DIQ(2260,IEN,5,"I") "RTN","OOPSGUI1",127,0) .I $G(SSN) S IEN200=$O(^VA(200,"SSN",SSN,"")) "RTN","OOPSGUI1",128,0) .I $G(IEN200) S SERV=$$GET1^DIQ(200,IEN200,29) "RTN","OOPSGUI1",129,0) .S DIE="^OOPS(2260,",DA=IEN,DR="86///^S X=SERV" D ^DIE "RTN","OOPSGUI1",130,0) I $$GET1^DIQ(2260,IEN,166)="" D "RTN","OOPSGUI1",131,0) .S FLD=28,SAL="",SAL=$$PAID^OOPSUTL1(IEN,FLD) "RTN","OOPSGUI1",132,0) .S DIE="^OOPS(2260,",DA=IEN,DR="166///^S X=SAL" D ^DIE "RTN","OOPSGUI1",133,0) I $$GET1^DIQ(2260,IEN,167)="" D "RTN","OOPSGUI1",134,0) .S FLD=19,PAY="",PAY=$$PAID^OOPSUTL1(IEN,FLD) "RTN","OOPSGUI1",135,0) .S PAY=$S(PAY="PER ANNUM":"ANNUAL",PAY="PER HOUR":"HOURLY","PER DIEM":"DAILY","BIWEEKLY":"BI-WEEKLY",1:"") "RTN","OOPSGUI1",136,0) .S DIE="^OOPS(2260,",DA=IEN,DR="167///^S X=PAY" D ^DIE "RTN","OOPSGUI1",137,0) I $$GET1^DIQ(2260,IEN,63)="",($$GET1^DIQ(2260,IEN,2,"I")<3) D "RTN","OOPSGUI1",138,0) .S CAT=$$GET1^DIQ(2260,IEN,2,"I") "RTN","OOPSGUI1",139,0) .I CAT=1 S PAYP=$$PAID^OOPSUTL1(IEN,20) I $G(PAYP)'="" S PAYP=$$PAYP^OOPSUTL1(PAYP) "RTN","OOPSGUI1",140,0) .I CAT=2 S PAYP="VO" "RTN","OOPSGUI1",141,0) .S DIE="^OOPS(2260,",DA=IEN,DR="63///^S X=PAYP" D ^DIE "RTN","OOPSGUI1",142,0) I $$GET1^DIQ(2260,IEN,111)="" D "RTN","OOPSGUI1",143,0) .S FLD=16,OCCD="",OCCD=$$PAID^OOPSUTL1(IEN,FLD) "RTN","OOPSGUI1",144,0) .S DIE="^OOPS(2260,",DA=IEN,DR="111///^S X=OCCD" D ^DIE "RTN","OOPSGUI1",145,0) Q "RTN","OOPSGUI1",146,0) VALEMP(RESULTS,INPUT) ; This broker call should be used if the Pay "RTN","OOPSGUI1",147,0) ; Plan = "OT" (other) to determine if the claim "RTN","OOPSGUI1",148,0) ; can be successfully submitted to DOL. The PERSONNEL "RTN","OOPSGUI1",149,0) ; STATUS is assumed to equal 1 (employee) "RTN","OOPSGUI1",150,0) S IEN=$P($G(INPUT),U,2),FORM=$P($G(INPUT),U) "RTN","OOPSGUI1",151,0) I '$G(IEN)!($G(FORM)="") S RESULTS="Invalid Input, cannot continue." Q "RTN","OOPSGUI1",152,0) I $$VALEMP^OOPSUTL6 S RESULTS="Valid" Q "RTN","OOPSGUI1",153,0) S RESULTS="Invalid data on claim" "RTN","OOPSGUI1",154,0) Q "VER") 8.0^22.0 "BLD",10057,6) ^27 **END** **END**