| 1 | MAGGTU9 ;WOIFO/LB/GEK - Imaging utilities assign key | 
|---|
| 2 | ;;3.0;IMAGING;**8,59**;Nov 27, 2007;Build 20 | 
|---|
| 3 | ;; Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ;; +---------------------------------------------------------------+ | 
|---|
| 5 | ;; | Property of the US Government.                                | | 
|---|
| 6 | ;; | No permission to copy or redistribute this software is given. | | 
|---|
| 7 | ;; | Use of unreleased versions of this software requires the user | | 
|---|
| 8 | ;; | to execute a written test agreement with the VistA Imaging    | | 
|---|
| 9 | ;; | Development Office of the Department of Veterans Affairs,     | | 
|---|
| 10 | ;; | telephone (301) 734-0100.                                     | | 
|---|
| 11 | ;; |                                                               | | 
|---|
| 12 | ;; | The Food and Drug Administration classifies this software as  | | 
|---|
| 13 | ;; | a medical device.  As such, it may not be changed in any way. | | 
|---|
| 14 | ;; | Modifications to this software may result in an adulterated   | | 
|---|
| 15 | ;; | medical device under 21CFR820, the use of which is considered | | 
|---|
| 16 | ;; | to be a violation of US Federal Statutes.                     | | 
|---|
| 17 | ;; +---------------------------------------------------------------+ | 
|---|
| 18 | ;; | 
|---|
| 19 | Q | 
|---|
| 20 | CHKKEY ; | 
|---|
| 21 | N NOGIVE | 
|---|
| 22 | S NOGIVE=1 | 
|---|
| 23 | GIVEKEY ;Give MAGDISP CLIN key to all MAG WINDOWS option holders | 
|---|
| 24 | ; that have neither MAGDISP CLIN nor MAGDISP ADMIN | 
|---|
| 25 | ;   Find the menu option's IEN | 
|---|
| 26 | N MKEYC,MKEYA,ERR,OPT,MAGUSER,I,KEYCLIN,KEYADMIN,KEYCT,KEYECT,XCT | 
|---|
| 27 | N KEYHASC,KEYHASA,KEYHASB,KEYNONE,SP,LSP | 
|---|
| 28 | N UCT,UTOT,OPTACC,MDOT,UDISCT | 
|---|
| 29 | ; This could be made Generic if ever a need, to search for users | 
|---|
| 30 | ; withour either key, and assigned those users the first (KEYCLIN) | 
|---|
| 31 | S KEYCLIN="MAGDISP CLIN" | 
|---|
| 32 | S KEYADMIN="MAGDISP ADMIN" | 
|---|
| 33 | S KEYCT=0 ; count of number of users that were assigned the key. | 
|---|
| 34 | S KEYECT=0 ; count of number of errors during the assignment. | 
|---|
| 35 | S KEYHASC=0 ; count of number of users that already have key Clin | 
|---|
| 36 | S KEYHASA=0 ; count of number of users that already have key Admin | 
|---|
| 37 | S KEYHASB=0 ; count of number of users that Have Both keys | 
|---|
| 38 | S KEYNONE=0 ; count of Users that have Neither Key. | 
|---|
| 39 | S OPTACC=0 ; count of users with access to MAG WINDOWS. | 
|---|
| 40 | S UDISCT=0 ; count of Disabled Users Skipped. | 
|---|
| 41 | S MDOT=10000 ; print '.' to screen to show progress. | 
|---|
| 42 | S UCT=0 ; user count. for progress | 
|---|
| 43 | S UTOT=$P(^VA(200,0),"^",4) | 
|---|
| 44 | ; | 
|---|
| 45 | I $G(NOGIVE) D | 
|---|
| 46 | . D MES^XPDUTL("Checking for users that have access to Option : "_"MAG WINDOWS") | 
|---|
| 47 | . D MES^XPDUTL("  but do not have either '"_KEYCLIN_"' or '"_KEYADMIN_"' Keys") | 
|---|
| 48 | . D MES^XPDUTL("  Disabled users (DISUSER=1) are skipped, they are not checked.") | 
|---|
| 49 | . Q | 
|---|
| 50 | E  D MES^XPDUTL("Assigning "_KEYCLIN_" to all users with access to Option : "_"MAG WINDOWS") | 
|---|
| 51 | D MES^XPDUTL("  ") | 
|---|
| 52 | S OPT=$$FIND1^DIC(19,"","X","MAG WINDOWS","","","ERR") | 
|---|
| 53 | I OPT="" D MES^XPDUTL("ERROR ",$G(ERR("DIERR",1,"TEXT",1))) Q | 
|---|
| 54 | I OPT=0 D MES^XPDUTL("MAG WINDOWS wasn't found in Option File") Q | 
|---|
| 55 | ;   Lookup the security key | 
|---|
| 56 | S MKEYC=$$LKUP^XPDKEY(KEYCLIN) | 
|---|
| 57 | S MKEYA=$$LKUP^XPDKEY(KEYADMIN) | 
|---|
| 58 | I ('MKEYC)!('MKEYA) D MES^XPDUTL("ERROR: Imaging Display Keys are not defined at this site") Q | 
|---|
| 59 | ;   Check all Users at site to see if they don't have either Clin or Admin | 
|---|
| 60 | D MES^XPDUTL("Checking users...") | 
|---|
| 61 | D MES^XPDUTL(" ") | 
|---|
| 62 | S I=0 F  S I=$O(^VA(200,I)) Q:'I  D | 
|---|
| 63 | . I $$GET1^DIQ(200,I,7,"E")]"" S UDISCT=UDISCT+1 Q | 
|---|
| 64 | . S UCT=UCT+1 I UCT>MDOT S MDOT=MDOT+10000 D MES^XPDUTL(UCT_" of "_UTOT_" users checked...") | 
|---|
| 65 | . I (($$ACCESS^XQCHK(I,OPT))>0) S OPTACC=OPTACC+1 D C(I) | 
|---|
| 66 | . Q | 
|---|
| 67 | S SP="          " | 
|---|
| 68 | S LSP=$L(UTOT)+3 | 
|---|
| 69 | D MES^XPDUTL("   ") | 
|---|
| 70 | I $G(NOGIVE) D | 
|---|
| 71 | . D MES^XPDUTL($E(SP,1,LSP-$L(OPTACC))_OPTACC_" of "_UTOT_" Users have access to option MAG WINDOWS.") | 
|---|
| 72 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASB))_KEYHASB_" Users have Both Keys ") | 
|---|
| 73 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASC))_KEYHASC_" Users only have "_KEYCLIN_" key") | 
|---|
| 74 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASA))_KEYHASA_" Users only have "_KEYADMIN_" key") | 
|---|
| 75 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYNONE))_KEYNONE_" Users have neither Key") | 
|---|
| 76 | . I KEYECT>0 D MES^XPDUTL(KEYECT_" Errors during Key Assignment. See install log for details") | 
|---|
| 77 | . Q | 
|---|
| 78 | I '$G(NOGIVE) D | 
|---|
| 79 | . D MES^XPDUTL($E(SP,1,LSP-$L(OPTACC))_OPTACC_" of "_UTOT_" Users have access to option MAG WINDOWS.") | 
|---|
| 80 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASB))_KEYHASB_" Users already have Both Keys ") | 
|---|
| 81 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASC))_KEYHASC_" Users have Only Key "_KEYCLIN) | 
|---|
| 82 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYHASA))_KEYHASA_" Users have Only Key "_KEYADMIN) | 
|---|
| 83 | . D MES^XPDUTL($E(SP,1,LSP-$L(KEYCT))_KEYCT_" Users were assigned key: "_KEYCLIN) | 
|---|
| 84 | . D MES^XPDUTL("Assignment Complete.") | 
|---|
| 85 | . I KEYECT>0 D MES^XPDUTL(KEYECT_" Errors during Key Assignment. See install log for details") | 
|---|
| 86 | . Q | 
|---|
| 87 | Q | 
|---|
| 88 | C(USER) ; | 
|---|
| 89 | ; check KEY for USER | 
|---|
| 90 | N DO,D1,MFDA,ZC,ZA,MIEN | 
|---|
| 91 | ; check to see if they have the Clin key | 
|---|
| 92 | S ZC=$$FIND1^DIC(200.051,","_USER_",","",KEYCLIN) | 
|---|
| 93 | I ZC="" D  Q | 
|---|
| 94 | . D MES^XPDUTL("ERROR Validating that user ("_USER_") has Key "_KEYCLIN) | 
|---|
| 95 | . S KEYECT=KEYECT+1 | 
|---|
| 96 | . Q | 
|---|
| 97 | ; check to see if they have the Admin key | 
|---|
| 98 | S ZA=$$FIND1^DIC(200.051,","_USER_",","",KEYADMIN) | 
|---|
| 99 | I ZA="" D  Q | 
|---|
| 100 | . D MES^XPDUTL("ERROR Validating that user ("_USER_") has Key "_KEYADMIN) | 
|---|
| 101 | . S KEYECT=KEYECT+1 | 
|---|
| 102 | . Q | 
|---|
| 103 | I ((+ZC)&(+ZA)) S KEYHASB=KEYHASB+1 Q | 
|---|
| 104 | I +ZC S KEYHASC=KEYHASC+1 Q | 
|---|
| 105 | I +ZA S KEYHASA=KEYHASA+1 Q | 
|---|
| 106 | S KEYNONE=KEYNONE+1 | 
|---|
| 107 | I $G(NOGIVE) D  Q | 
|---|
| 108 | . D MES^XPDUTL("User: "_$P($G(^VA(200,USER,0)),"^")_" has neither Key") | 
|---|
| 109 | . Q | 
|---|
| 110 | S MFDA(200.051,"+1,"_USER_",",.01)=MKEYC | 
|---|
| 111 | S MFDA(200.051,"+1,"_USER_",",1)=DUZ | 
|---|
| 112 | S MFDA(200.051,"+1,"_USER_",",2)=DT | 
|---|
| 113 | S MIEN(1)=MKEYC_"," | 
|---|
| 114 | D UPDATE^DIE("","MFDA","MIEN") | 
|---|
| 115 | I $D(DIERR) D  Q | 
|---|
| 116 | . D MES^XPDUTL("ERROR Assigning Key ("_KEYCLIN_") to user ("_USER_")") | 
|---|
| 117 | . S KEYECT=KEYECT+1 | 
|---|
| 118 | . D CLEAN^DILF | 
|---|
| 119 | . Q | 
|---|
| 120 | S KEYCT=KEYCT+1 | 
|---|
| 121 | D CLEAN^DILF | 
|---|
| 122 | Q | 
|---|
| 123 | FLT ;  Create a Few Public Filters as a default for sites. | 
|---|
| 124 | ;  Only create new public filters if file is empty. | 
|---|
| 125 | N DIK | 
|---|
| 126 | I +$P(^MAG(2005.87,0),"^",3) D  Q | 
|---|
| 127 | . D MES^XPDUTL("The IMAGE LIST FILTERS File is not empty,") | 
|---|
| 128 | . D MES^XPDUTL("  Default Public Filters were not installed.") | 
|---|
| 129 | . Q | 
|---|
| 130 | S ^MAG(2005.87,1,0)="Rad All^RAD^CLIN^^^^^^0" | 
|---|
| 131 | S ^MAG(2005.87,1,1)="^1^.05" | 
|---|
| 132 | S ^MAG(2005.87,2,0)="Clin All^^CLIN^^^^^^0" | 
|---|
| 133 | S ^MAG(2005.87,2,1)="^1^.05" | 
|---|
| 134 | S ^MAG(2005.87,3,0)="Admin All^^ADMIN^^^^^^0" | 
|---|
| 135 | S ^MAG(2005.87,3,1)="^1^.05" | 
|---|
| 136 | S ^MAG(2005.87,4,0)="Clin 2 yr^^CLIN^^^^^^-24" | 
|---|
| 137 | S ^MAG(2005.87,4,1)="^1^.05" | 
|---|
| 138 | S ^MAG(2005.87,5,0)="Admin 10-10EZ All^^ADMIN^46,^^^^^0" | 
|---|
| 139 | S ^MAG(2005.87,5,1)="^1^.05" | 
|---|
| 140 | S ^MAG(2005.87,6,0)="Adv Directives^^CLIN^67^^^^^0" | 
|---|
| 141 | S ^MAG(2005.87,6,1)="^1^.05" | 
|---|
| 142 | S ^MAG(2005.87,7,0)="All^^^^^^^^0" | 
|---|
| 143 | S ^MAG(2005.87,7,1)="^1^.05" | 
|---|
| 144 | S ^MAG(2005.87,8,0)="All 2 yr^^^^^^^^-24" | 
|---|
| 145 | S ^MAG(2005.87,8,1)="^1^.05" | 
|---|
| 146 | S ^MAG(2005.87,9,0)="All 6 mth^^^^^^^^-6" | 
|---|
| 147 | S ^MAG(2005.87,9,1)="^1^.05" | 
|---|
| 148 | ;All Advance Directives^^CLIN^67^^^^^0 | 
|---|
| 149 | S DIK="^MAG(2005.87," D IXALL^DIK | 
|---|
| 150 | D MES^XPDUTL("Default Public Filters added to IMAGE LIST FILTERS File.") | 
|---|
| 151 | Q | 
|---|