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