Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: OOPSGUI1

OOPSGUI1.m

Go to the documentation of this file.
  1. OOPSGUI1 ;WIOFO/LLH - RPC routines ;9/3/01
  1. ;;2.0;ASISTS;**4,8,7,11,15,18,20,21,23,28,29,30,31,32**;Jun 03, 2002;Build 1
  1. ;
  1. OPT(RESULTS,INP) ; Returns the ASISTS GUI Menus user has access to
  1. ; INP - Input String containing the version of GUI making call
  1. ; RESUTLS - return value for broker call
  1. ; P1 = 1 DUZ defined
  1. ; P2 = 1 Emp Health menu accessible
  1. ; P3 = 1 Employee menu accessible
  1. ; P4 = 1 Supervisor menu accessible
  1. ; P5 = 1 Safety Officer menu accessible
  1. ; P6 = 1 Union menu accessible
  1. ; P7 = 1 Workers' Comp menu accessible
  1. ; P8 = SSN from New Person file for user
  1. ; P9 = server version #
  1. ;
  1. N CNT,MENU,OPT,PRIM,SM,VER
  1. S CNT=1
  1. I 'DUZ S RESULTS="0^^^^^^^" Q
  1. S RESULTS=DUZ_"^0^0^0^0^0^0^"
  1. ;V1_P29 - changed version to 31
  1. S VER="2.31.1.0" ;Define version check patch #4
  1. I $G(INP)=""!($G(INP)'=VER) Q
  1. S PRIM=$$GET1^DIQ(200,DUZ,201) ; get primary menu
  1. I $G(PRIM)'="" S MENU(PRIM)=""
  1. S SM=0
  1. F S SM=$O(^VA(200,DUZ,203,SM)) Q:SM'>0 D
  1. . S OPT=$$GET1^DIQ(19,$P($G(^VA(200,DUZ,203,SM,0)),U),.01)
  1. . I $G(OPT)'="" S MENU(OPT)=""
  1. ;I $D(MENU("OOPS GUI EMPLOYEE HEALTH MENU")) S $P(RESULTS,U,2)=1 ;OOPS*2.0*32-Disabling for decommission
  1. ;I $D(MENU("OOPS GUI EMPLOYEE")) S $P(RESULTS,U,3)=1 ;OOPS*2.0*32-Disabling for decommission
  1. ;I $D(MENU("OOPS GUI SUPERVISOR MENU")) S $P(RESULTS,U,4)=1 ;OOPS*2.0*32-Disabling for decommision
  1. I $D(MENU("OOPS GUI SAFETY OFFICER MENU")) S $P(RESULTS,U,5)=1
  1. ;I $D(MENU("OOPS GUI UNION MENU")) S $P(RESULTS,U,6)=1 ;OOPS*2.0*32-Disabling for decommission
  1. I $D(MENU("OOPS GUI WORKERS' COMP MENU")) S $P(RESULTS,U,7)=1
  1. ;I +$$ACCESS^XQCHK(DUZ,"OOPS GUI EMPLOYEE") S $P(RESULTS,U,3)=1 ;OOPS*2.0*32-Disabling for decommission
  1. S $P(RESULTS,U,8)=$$GET1^DIQ(200,DUZ,9)
  1. S $P(RESULTS,U,9)=VER ;return the version defined above.
  1. Q
  1. SETSIGN(RESULTS,INPUT,SIGN) ; This subroutine validates that the signature
  1. ; can be entered and is valid
  1. ; Input: INPUT - Contains the IEN of the ASISTS case, the form type,
  1. ; and the field number. The field number is used
  1. ; to trigger what validation should be preformed on
  1. ; the fields in the form so that the signature can
  1. ; be applied. The fourth parameter is a special flag
  1. ; indicating the Workers Comp is signing for employee
  1. ; Format is IEN^FORM^FIELD^WCFLAG
  1. ; SIGN - contains the signature test to be encrypted.
  1. ; Output: RESULTS - is an array containing a list of fields that did
  1. ; not pass the data validation and must be corrected
  1. ; prior to applying a signature.
  1. N CALL,DTIME,FDUZ,FDT,FLD,IEN,INC,FORM,ESIG,VALID,CALLER,WOK
  1. N DR,DA,DIE,WCFLG
  1. S IEN=$P($G(INPUT),U),FORM=$P($G(INPUT),U,2),FLD=$P($G(INPUT),U,3)
  1. I '$G(IEN)!('$G(FLD)) S RESULTS(1)="User not Authorized to sign form" Q
  1. I FLD=45!(FLD=170)!(FLD=266) S CALL="S"
  1. I FLD=49!(FLD=77) S CALL="O"
  1. ; Patch 5 ll - added !(FLD=313)!(FLD=320)
  1. I FLD=68!(FLD=313)!(FLD=320) S CALL="W"
  1. I FLD=80 S CALL="H"
  1. ; Patch 5 llh - added !(FLD=310)
  1. I FLD=120!(FLD=222)!(FLD=310) S CALL="E"
  1. S WCFLG=$P($G(INPUT),U,4)
  1. I WCFLG'="W" D
  1. .; Patch 5 llh - moved non fld check logic to separate line
  1. .; added stuff to check if dual benefits have been signed
  1. .I (FLD=120!(FLD=222)) D
  1. ..I ($$GET1^DIQ(2260,IEN,71,"I")'="Y") D Q
  1. ...S RESULTS(1)="Claim cannot be signed until the Bill of Rights Statement is understood."
  1. ...D WCPBOR^OOPSMBUL(IEN)
  1. ;..Commented out Patch 11 cvw
  1. ;..I $$GET1^DIQ(2260,IEN,310)="" D Q
  1. ;...S RESULTS(1)="Claim cannot be signed until the Dual Benefits form has been signed."
  1. ; check to make sure PAID fields (also Service) not "", if "" get data
  1. D CHKPAID
  1. S VALID=0
  1. S INC=$$GET1^DIQ(2260,IEN,52,"I")
  1. ; Patch 5 llh - added ,(FLD'>300)
  1. I (FLD'=77),(FLD'=80),(FLD'>300) D I 'VALID Q
  1. .D VALIDATE^OOPSGUI9(IEN,FORM,CALL,.VALID)
  1. I $G(SIGN)="" S RESULTS(1)="No Signature Entered" Q
  1. S VALID=$$VALIDATE($$DECRYP^XUSRB1(SIGN))
  1. I 'VALID D Q
  1. .I $P($G(^VA(200,DUZ,20)),"^",4)="" S RESULTS(1)="No Electronic Signature on File" Q
  1. .S RESULTS(1)="Invalid Signature Entered."
  1. SIGN ; All field validated, file signature
  1. I FLD=77 S FDUZ=76,FDT=78 ; Safety approve WC sign
  1. I FLD=80 S FDUZ=79,FDT=81 ; EH approve WC sign
  1. I FLD=120 S FDUZ=119,FDT=121 ; Employee sign CA1
  1. I FLD=222 S FDUZ=221,FDT=223 ; Employee sign CA2
  1. I FLD=170 S FDUZ=169,FDT=171 ; Super sign CA1
  1. I FLD=266 S FDUZ=265,FDT=267 ; Super sign CA2
  1. I FLD=45 S FDUZ=44,FDT=46 ; Super sign 2162
  1. I FLD=49 S FDUZ=48,FDT=50 ; Safety sign 2162
  1. I FLD=68 S FDUZ=67,FDT=69,WOK=1 ; WC approve to DOL
  1. ; patch 5 llh - added next 2 lines (may need more)
  1. I FLD=310 S FDUZ=309,FDT=311 ; Emp sign Dual Benefits
  1. I FLD=313 S FDUZ=312,FDT=314 ; WC sign Dual Benefits
  1. D NOW^%DTC S DTIME=%
  1. K DR S DIE="^OOPS(2260,",DA=IEN
  1. S DR=FDUZ_"////^S X=+DUZ;"_FLD_"////^S X=ESIG;"_FDT_"////^S X=DTIME"
  1. D ^DIE
  1. I $G(Y)'="" Q
  1. I FLD=68 D WCP^OOPSMBUL(IEN,"S")
  1. I FLD=120!(FLD=222) S CALLER=CALL D EMP^OOPSVAL1
  1. I FLD=45 D SAFETY^OOPSMBUL(IEN)
  1. I (FLD=170)!(FLD=266) D SUPS^OOPSMBUL(IEN),UNION^OOPSMBUL(IEN)
  1. Q
  1. VALIDATE(X) ; Validate Electronic Sign code
  1. ; Input: X - contains the signature to be validated
  1. ; Output: VSIGN - contains a 1 if a valid e-signature, a 0 if not valid
  1. N VSIGN
  1. S VSIGN=0
  1. D HASH^XUSHSHP
  1. I X'="",(X=$P($G(^VA(200,DUZ,20)),"^",4)) S VSIGN=1,ESIG=X
  1. Q VSIGN
  1. CHKPAID ; check to make sure PAID fields have data, if not populate
  1. ; this subroutine can be removed when go completely to GUI
  1. N DA,DIE,DR,CAT,FLD,IEN200,OCCD,PAY,PAYP,RET,SAL,SERV,SSN
  1. I $$GET1^DIQ(2260,IEN,60)="" D
  1. .S FLD=26,RET="",RET=$$PAID^OOPSUTL1(IEN,FLD)
  1. .S RET=$S(RET="FULL CSRS":"CSRS",RET="FERS":"FERS",1:"OTHER")
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="60///^S X=RET" D ^DIE
  1. I $$GET1^DIQ(2260,IEN,86)="" D
  1. .S SERV="",SSN=$$GET1^DIQ(2260,IEN,5,"I")
  1. .I $G(SSN) S IEN200=$O(^VA(200,"SSN",SSN,""))
  1. .I $G(IEN200) S SERV=$$GET1^DIQ(200,IEN200,29)
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="86///^S X=SERV" D ^DIE
  1. I $$GET1^DIQ(2260,IEN,166)="" D
  1. .S FLD=28,SAL="",SAL=$$PAID^OOPSUTL1(IEN,FLD)
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="166///^S X=SAL" D ^DIE
  1. I $$GET1^DIQ(2260,IEN,167)="" D
  1. .S FLD=19,PAY="",PAY=$$PAID^OOPSUTL1(IEN,FLD)
  1. .S PAY=$S(PAY="PER ANNUM":"ANNUAL",PAY="PER HOUR":"HOURLY","PER DIEM":"DAILY","BIWEEKLY":"BI-WEEKLY",1:"")
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="167///^S X=PAY" D ^DIE
  1. I $$GET1^DIQ(2260,IEN,63)="",($$GET1^DIQ(2260,IEN,2,"I")<3) D
  1. .S CAT=$$GET1^DIQ(2260,IEN,2,"I")
  1. .I CAT=1 S PAYP=$$PAID^OOPSUTL1(IEN,20) I $G(PAYP)'="" S PAYP=$$PAYP^OOPSUTL1(PAYP)
  1. .I CAT=2 S PAYP="VO"
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="63///^S X=PAYP" D ^DIE
  1. I $$GET1^DIQ(2260,IEN,111)="" D
  1. .S FLD=16,OCCD="",OCCD=$$PAID^OOPSUTL1(IEN,FLD)
  1. .S DIE="^OOPS(2260,",DA=IEN,DR="111///^S X=OCCD" D ^DIE
  1. Q
  1. VALEMP(RESULTS,INPUT) ; This broker call should be used if the Pay
  1. ; Plan = "OT" (other) to determine if the claim
  1. ; can be successfully submitted to DOL. The PERSONNEL
  1. ; STATUS is assumed to equal 1 (employee)
  1. S IEN=$P($G(INPUT),U,2),FORM=$P($G(INPUT),U)
  1. I '$G(IEN)!($G(FORM)="") S RESULTS="Invalid Input, cannot continue." Q
  1. I $$VALEMP^OOPSUTL6 S RESULTS="Valid" Q
  1. S RESULTS="Invalid data on claim"
  1. Q