| 1 | VAQUTL2 ;ALB/JRP - UTILITY ROUTINES;30-APR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;**5**;NOV 17, 1993 | 
|---|
| 3 | NCRYPTON(RETMTHD) ;DETERMINE IF ENCRYPTION HAS BEEN TURNED ON | 
|---|
| 4 | ;INPUT  : RETMTHD - Flag indicating what to return | 
|---|
| 5 | ;                   0 = Return pointer to default encryption (default) | 
|---|
| 6 | ;                       Return 0 if encryption is off | 
|---|
| 7 | ;                   1 = Return default encryption method | 
|---|
| 8 | ;                       Return NULL if encryption is off | 
|---|
| 9 | ;                   2 = Return default encryption type | 
|---|
| 10 | ;                       Return NULL if encryption is off | 
|---|
| 11 | ;OUTPUT : See definition of RETMTHD | 
|---|
| 12 | ;NOTES  : Existance of VAQIGNC will be checked.  If it exists and is | 
|---|
| 13 | ;         set to 1 encryption rules will be ignored. | 
|---|
| 14 | ;       : Encryption off will be returned on error | 
|---|
| 15 | ; | 
|---|
| 16 | ;CHECK INPUT | 
|---|
| 17 | S RETMTHD=+$G(RETMTHD) | 
|---|
| 18 | ;IGNORE FLAG TURNED ON | 
|---|
| 19 | I (+$G(VAQIGNC)) Q $S(RETMTHD:"",1:0) | 
|---|
| 20 | ;DECLARE VARIABLES | 
|---|
| 21 | N X,Y | 
|---|
| 22 | ;GET ENTRY IN PARAMETER FILE | 
|---|
| 23 | S X=$O(^VAT(394.81,0)) | 
|---|
| 24 | ;COULDN'T FIND ENTRY IN PARAMETER - ASSUME ENCRYPTION IS OFF | 
|---|
| 25 | Q:('X) $S(RETMTHD:"",1:0) | 
|---|
| 26 | ;CHECK ENCRYPTION FLAG | 
|---|
| 27 | S Y=$G(^VAT(394.81,X,"ECR")) | 
|---|
| 28 | ;COULDN'T FIND ENCRYPTION FLAG - ASSUME ENCRYPTION IS OFF | 
|---|
| 29 | Q:('Y) $S(RETMTHD:"",1:0) | 
|---|
| 30 | ;ENCRYPTION TURNED ON | 
|---|
| 31 | S X=+$P(Y,"^",2) | 
|---|
| 32 | ;RETURN POINTER | 
|---|
| 33 | Q:('RETMTHD) X | 
|---|
| 34 | ;RETURN METHOD | 
|---|
| 35 | Q:(RETMTHD=1) $$ENCMTHD(X,0) | 
|---|
| 36 | ;RETURN TYPE | 
|---|
| 37 | Q $P($G(^VAT(394.72,X,0)),"^",1) | 
|---|
| 38 | ; | 
|---|
| 39 | NCRPFLD(FILE,FIELD) ;DETERMINE IF A FILE/FIELD IS MARKED FOR ENCRYPTION | 
|---|
| 40 | ;INPUT  : FILE - File number | 
|---|
| 41 | ;         FIELD - Field number | 
|---|
| 42 | ;         VAQIGNC - Indicates if encryption rules should be ignored | 
|---|
| 43 | ;           If 1, ignore encryption rules (never encrypt) | 
|---|
| 44 | ;           If 0 or doesn't exist, obey encryption rules (default) | 
|---|
| 45 | ;OUTPUT : 1 - File/field is marked for encryption | 
|---|
| 46 | ;         0 - File/field not marked for encryption | 
|---|
| 47 | ; | 
|---|
| 48 | ;CHECK INPUT (ASSUME NOT MARKED ON ERROR) | 
|---|
| 49 | S FILE=+$G(FILE) | 
|---|
| 50 | S FIELD=+$G(FIELD) | 
|---|
| 51 | Q:(('FILE)!('FIELD)) 0 | 
|---|
| 52 | ;IGNORE FLAG TURNED ON | 
|---|
| 53 | Q:(+$G(VAQIGNC)) 0 | 
|---|
| 54 | ;NOT MARKED FOR ENCRYPTION | 
|---|
| 55 | Q:('$D(^VAT(394.73,"A-NCRYPT",FILE,FIELD))) 0 | 
|---|
| 56 | ;MARKED | 
|---|
| 57 | Q 1 | 
|---|
| 58 | ; | 
|---|
| 59 | ENCMTHD(ENCPTR,DCRYPT) ;RETURN ENCRYPTION/DECRYPTION METHOD | 
|---|
| 60 | ;INPUT  : ENCPTR - Pointer to VAQ - ENCRYPTION METHOD file | 
|---|
| 61 | ;         DCRYPT - Indicates which method to return | 
|---|
| 62 | ;           If 0, return encryption method (default) | 
|---|
| 63 | ;           If 1, return decryption method | 
|---|
| 64 | ;OUTPUT : The encryption/decryption method | 
|---|
| 65 | ;         NULL - Error | 
|---|
| 66 | ; | 
|---|
| 67 | ;CHECK INPUT | 
|---|
| 68 | S ENCPTR=+$G(ENCPTR) | 
|---|
| 69 | Q:('ENCPTR) "" | 
|---|
| 70 | S DCRYPT=+$G(DCRYPT) | 
|---|
| 71 | ;RETURN DECRYPTION METHOD | 
|---|
| 72 | Q:(DCRYPT) $G(^VAT(394.72,ENCPTR,"DCR")) | 
|---|
| 73 | ;RETURN ENCRYPTION METHOD | 
|---|
| 74 | Q $G(^VAT(394.72,ENCPTR,"ECR")) | 
|---|
| 75 | ; | 
|---|
| 76 | DEFENC(DCRYPT,POINT) ;RETURN DEFAULT ENCRYPTION/DECRYPTION METHOD | 
|---|
| 77 | ;INPUT  : DCRYPT - Indicates which method to return | 
|---|
| 78 | ;           If 0, return encryption method (default) | 
|---|
| 79 | ;           If 1, return decryption method | 
|---|
| 80 | ;         POINT - Indicates if a pointer to VAQ - ENCRYPTION METHOD | 
|---|
| 81 | ;                 file should be returned | 
|---|
| 82 | ;           If 0, return method (default) | 
|---|
| 83 | ;           If 1, return pointer to method | 
|---|
| 84 | ;OUTPUT : If method is requested | 
|---|
| 85 | ;           The default encryption/decryption method | 
|---|
| 86 | ;           NULL - Error | 
|---|
| 87 | ;         If pointer is requested | 
|---|
| 88 | ;           Pointer to VAQ - ENCRYPTION METHOD | 
|---|
| 89 | ;           0 - Error | 
|---|
| 90 | ; | 
|---|
| 91 | ;CHECK INPUT | 
|---|
| 92 | S DCRYPT=+$G(DCRYPT) | 
|---|
| 93 | S POINT=+$G(POINT) | 
|---|
| 94 | ;DECLARE VARIABLES | 
|---|
| 95 | N X,Y | 
|---|
| 96 | ;GET ENTRY IN PARAMTER FILE | 
|---|
| 97 | S X=$O(^VAT(394.81,0)) | 
|---|
| 98 | ;COULDN'T FIND ENTRY IN PARAMETER | 
|---|
| 99 | Q:('X) "" | 
|---|
| 100 | ;GET POINTER TO METHOD | 
|---|
| 101 | S Y=$G(^VAT(394.81,X,"ECR")) | 
|---|
| 102 | S Y=+$P(Y,"^",2) | 
|---|
| 103 | ;POINTER TO METHOD DIDN'T EXIST | 
|---|
| 104 | Q:('Y) $S(POINT:0,1:"") | 
|---|
| 105 | ;RETURN POINTER | 
|---|
| 106 | Q:(POINT) Y | 
|---|
| 107 | ;RETURN METHOD | 
|---|
| 108 | Q $$ENCMTHD(Y,DCRYPT) | 
|---|