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