VistA-WorldVistAEHR/r/IFCAP-PRC-PRX--PRCA--PRCN/PRCUESIG.m

40 lines
1.3 KiB
Mathematica

PRCUESIG ;WISC@ALTOONA/CTB/TEN-ROUTINE TO ENTER OR CHANGE ELECTRONIC SIGNATURE CODE (IFCAP) ;5/4/93 8:31 AM
V ;;5.1;IFCAP;**68**;Oct 20, 2000
;Per VHA Directive 10-93-142, this routine should not be modified.
ENCODE(X,X1,X2) D EN^XUSHSHP Q X
DECODE(X,X1,X2) D DE^XUSHSHP Q X
HASH(X) D HASH^XUSHSHP Q X
SUM(X) ;CREATE CHECKSUM VALUE FOR STRING
N I,Y
S Y=0 F I=1:1:$L(X) S Y=$A(X,I)*I+Y
Q Y
ESIG(USERNUM,MESSAGE) ;interogate user for electronic signature code
;1= valid code entered
;0= invalid code entered
;-1= user up arrowed out
;-2= signature read time out
;-3= no signature on file
NEW X,SIGCODE,ZZI,OUT
I $G(PRCRMPR) S MESSAGE=1 Q
S SIGCODE=$P($G(^VA(200,USERNUM,20)),"^",4)
I SIGCODE="" W !,"You have no signature code on file. Please contact your IRM staff for assistance.",$C(7),! S MESSAGE=-3 QUIT
F ZZI=1:1:3 D Q:OUT]""
. K OUT
. W !,"Enter ELECTRONIC SIGNATURE CODE: "
. X ^%ZOSF("EOFF") R X:60 X ^%ZOSF("EON")
. I '$T S OUT=-2 QUIT
. I $E(X)="^" S OUT=-1 QUIT
. S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
. I $$HASH(X)=SIGCODE W ?60,"Thank you." S OUT=1 QUIT
. W !,"Sorry, but that's not your correct electronic signature code."
. S OUT=""
. QUIT
S MESSAGE=+$G(OUT)
Q
;
NOW() ;Extrinsic function to return current time
N %,%I,%H,X
D NOW^%DTC
QUIT %
;