| 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)
 | 
|---|