| 1 | VAQUTL3 ;ALB/JRP - UTILITY ROUTINES;30-APR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | TRANENC(TRAN,RET) ;DETERMINE IF ENCRYPTION FOR A TRANSACTION IS TURNED ON | 
|---|
| 4 | ;INPUT  : TRAN - Pointer to VAQ - TRANSACTION file | 
|---|
| 5 | ;         RET - Flag indicating what to return | 
|---|
| 6 | ;               0 = Return 1 if encryption is on   (default flag) | 
|---|
| 7 | ;                   Return 0 if encryption is off | 
|---|
| 8 | ;               1 = Return pointer to VAQ - ENCRYPTION METHOD file | 
|---|
| 9 | ;                   Return 0 if encryption is off | 
|---|
| 10 | ;               2 = Return encryption method | 
|---|
| 11 | ;                   Return NULL if encryption is off | 
|---|
| 12 | ;               3 = Return type of encryption | 
|---|
| 13 | ;                   Return NULL if encryption is off | 
|---|
| 14 | ;OUTPUT : See definition of RET | 
|---|
| 15 | ;NOTES  : Existance of VAQIGNC will be checked.  If it exists and is | 
|---|
| 16 | ;         set to 1 encryption will be ignored for this transaction. | 
|---|
| 17 | ;       : If encryption is on and the transaction does not include | 
|---|
| 18 | ;         an encryption method, the default encryption method will | 
|---|
| 19 | ;         be used. | 
|---|
| 20 | ;       : Encryption off will be returned on error. | 
|---|
| 21 | ; | 
|---|
| 22 | ;CHECK INPUT | 
|---|
| 23 | S RET=+$G(RET) | 
|---|
| 24 | Q:('(+$G(TRAN))) $S((RET>1):"",1:0) | 
|---|
| 25 | Q:('$D(^VAT(394.61,TRAN))) $S((RET>1):"",1:0) | 
|---|
| 26 | ;CHECK VAQIGNC | 
|---|
| 27 | Q:($G(VAQIGNC)) $S((RET>1):"",1:0) | 
|---|
| 28 | ;DECLARE VARIABLES | 
|---|
| 29 | N TMP,MTHD | 
|---|
| 30 | ;CHECK ENCRYPTION FIELD | 
|---|
| 31 | S TMP=$G(^VAT(394.61,TRAN,"NCRPT")) | 
|---|
| 32 | S MTHD=+$P(TMP,"^",2) | 
|---|
| 33 | S TMP=+TMP | 
|---|
| 34 | ;ENCRYPTION OFF | 
|---|
| 35 | Q:('TMP) $S((RET>1):"",1:0) | 
|---|
| 36 | ;RETURN ENCRYPTION ON | 
|---|
| 37 | Q:('RET) 1 | 
|---|
| 38 | ;ENCRYPTION METHOD NOT THERE | 
|---|
| 39 | I ('MTHD) D  Q MTHD | 
|---|
| 40 | .S TMP=$S((RET=2):0,1:1) | 
|---|
| 41 | .S MTHD=$$DEFENC^VAQUTL2(0,TMP) | 
|---|
| 42 | .Q:(RET'=3) | 
|---|
| 43 | .I ('MTHD) S MTHD="" Q | 
|---|
| 44 | .S MTHD=$P($G(^VAT(394.72,MTHD,0)),"^",1) | 
|---|
| 45 | ;RETURN POINTER | 
|---|
| 46 | Q:(RET=1) MTHD | 
|---|
| 47 | ;RETURN METHOD | 
|---|
| 48 | Q:(RET=2) $$ENCMTHD^VAQUTL2(MTHD,0) | 
|---|
| 49 | ;RETURN TYPE | 
|---|
| 50 | Q:(RET=3) $P($G(^VAT(394.72,MTHD,0)),"^",1) | 
|---|
| 51 | ; | 
|---|
| 52 | DUZKEY(USER,PRIME) ;DETERMINE PRIMARY/SECONDARY KEY VALUES | 
|---|
| 53 | ;INPUT  : USER - Pointer to NEW PERSON file (defaults to DUZ) | 
|---|
| 54 | ;         PRIME - Indicates which key to return | 
|---|
| 55 | ;           If 1, returns primary key | 
|---|
| 56 | ;           If 0, returns secondary key (default) | 
|---|
| 57 | ;OUTPUT : The primary/secondary key value | 
|---|
| 58 | ;         NULL - Error | 
|---|
| 59 | ; | 
|---|
| 60 | ;CHECK INPUT | 
|---|
| 61 | S:('(+$G(USER))) USER=+$G(DUZ) | 
|---|
| 62 | S PRIME=+$G(PRIME) | 
|---|
| 63 | ;DECLARE VARIABLES | 
|---|
| 64 | N X,Y | 
|---|
| 65 | ;DETERMINE KEYS | 
|---|
| 66 | S X=$P($G(^VA(200,USER,0)),"^",1) | 
|---|
| 67 | Q:(X="") "" | 
|---|
| 68 | S:((USER=.5)!(X="POSTMASTER")) X="PDX Server" | 
|---|
| 69 | D:('PRIME) HASH^XUSHSHP | 
|---|
| 70 | X ^%ZOSF("LPC") | 
|---|
| 71 | Q Y | 
|---|
| 72 | ; | 
|---|
| 73 | NAMEKEY(USER,PRIME) ;DETERMINE PRIMARY/SECONDARY KEY VALUES | 
|---|
| 74 | ;INPUT  : USER - Name of user (defaults to current user) | 
|---|
| 75 | ;         PRIME - Indicates which key to return | 
|---|
| 76 | ;           If 1, returns primary key | 
|---|
| 77 | ;           If 0, returns secondary key (default) | 
|---|
| 78 | ;OUTPUT : The primary/secondary key value | 
|---|
| 79 | ;         NULL - Error | 
|---|
| 80 | ; | 
|---|
| 81 | ;CHECK INPUT | 
|---|
| 82 | I ($G(USER)="") S USER=+$G(DUZ) Q:(USER="")  S USER=$P($G(^VA(200,USER,0)),"^",1) | 
|---|
| 83 | Q:(USER="") "" | 
|---|
| 84 | S PRIME=+$G(PRIME) | 
|---|
| 85 | ;DECLARE VARIABLES | 
|---|
| 86 | N X,Y | 
|---|
| 87 | ;DETERMINE KEYS | 
|---|
| 88 | S X=USER | 
|---|
| 89 | S:(X="POSTMASTER") X="PDX Server" | 
|---|
| 90 | Q:(X="") "" | 
|---|
| 91 | D:('PRIME) HASH^XUSHSHP | 
|---|
| 92 | X ^%ZOSF("LPC") | 
|---|
| 93 | Q Y | 
|---|