[628] | 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 | ;
|
---|