source: FOIAVistA/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/DGSEC1.m@ 905

Last change on this file since 905 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 4.0 KB
Line 
1DGSEC1 ;ALB/RMO-MAS Security Options ;7/24/99 23:48
2 ;;5.3;Registration;**222,149,214**;Aug 13, 1993
3 N I,X,DIK
4 G:$D(^DOPT("DGSEC1",4)) A S ^DOPT("DGSEC1",0)="Security Menu Options^1N^" F I=1:1 S X=$T(@(I)+1) Q:X="" S ^DOPT("DGSEC1",I,0)=$P(X,";;",2,99)
5 S DIK="^DOPT(""DGSEC1""," D IXALL^DIK
6A N DIC,Y,X
7 W !! S DIC="^DOPT(""DGSEC1"",",DIC(0)="AEQM" D ^DIC Q:Y<0 D @+Y G A
81 ;
9 ;;Enter/Edit Patient Security Level
10 N DA,DLAYGO,DR,DIC,X,Y
11 I '$D(^XUSEC("DG SENSITIVITY",DUZ)) W !!?3,$C(7),"You do not have the appropriate access privileges to assign security." Q
12 S DIC("A")="Select PATIENT NAME: ",DIC="^DGSL(38.1,",DLAYGO=38.1,DIC(0)="AELMQ",DGSENFLG="" W ! D ^DIC K DIC("A"),DGSENFLG Q:Y<0
13 S DA=+Y
14 ;
15 ; warn user if attempting to edit security level from remote source
16 N SECSRCE,OK
17 S SECSRCE=$P($G(^DGSL(38.1,DA,0)),"^",5)
18 I SECSRCE'="" D G:'OK 1
19 .W !!?3,$C(7),">>> WARNING: The source that assigned this patient's security level"
20 .W !,?16,"is '"_$S(SECSRCE="AAC":"VBA",1:"UNKNOWN")_"'. Editing the patient security level will"
21 .W !,?16,"cause the security source to be deleted.",!
22 .S OK=$$RUSURE()
23 ;
24 N SENSBEF,SENSAFTR
25 S SENSBEF=$P($G(^DGSL(38.1,DA,0)),"^",2)
26 S DIE="^DGSL(38.1,"
27 S DR="2;3////"_DUZ_";4///NOW"
28 I SECSRCE'="",$G(OK) S DR=DR_";5////@"
29 D ^DIE
30 K DE,DQ,DIE
31 S SENSAFTR=$P($G(^DGSL(38.1,DA,0)),"^",2)
32 ;
33 ;CIRN CHANGES
34 I SENSBEF'=SENSAFTR D SECA08^VAFCDD01(DA)
35 K SENSBEF,SENSAFTR
36 G 1
37 ;
38BULTIN ;This bulletin is sent if a patient's sensitivity is removed.
39 N SECSRCE,SUB,DIC,X,Y S SUB=1
40 K DGB I $D(^DG(43,1,"NOT")),+$P(^("NOT"),"^",11) S DGB=11
41 Q:'$D(DGB)
42 S DGB=+$P($G(^DG(43,1,"NOT")),U,DGB) Q:'DGB
43 S DGB=$P($G(^XMB(3.8,DGB,0)),U) Q:'$L(DGB)
44 N XMB,XMY,XMY0,XMZ,DGI
45 S XMB="DG SENSITIVITY REMOVED" S Y=$$NOW^XLFDT() X ^DD("DD") S XMB(7)=Y
46 S XMB(1)="UNKNOWN",X=+$P(^DGSL(38.1,DA,0),"^",3) I X D
47 .S DIC="^VA(200,",DIC(0)="MO",X="`"_X D ^DIC
48 .S:Y>0 XMB(1)=$P(Y,U,2) S:XMB(1)="" XMB(1)="UNKNOWN"
49 .Q
50 S XMB(2)=$S($D(^DPT(DA,0)):$P(^(0),"^")_" ("_$P(^(0),"^",9)_")",1:"UNKNOWN")
51 F DGI=3:1:6 S XMB(DGI)=""
52 S SECSRCE=$P($G(^DGSL(38.1,DA,0)),"^",5) I SECSRCE'="" D
53 .S XMB(3)=" >>> WARNING: The source of the patient sensitivity"
54 .S XMB(4)=" removed was "_$S(SECSRCE="AAC":"VBA",1:"UNKNOWN")
55 I $D(^DGSL(38.1,DA,0)),'$O(^("D",0)) D
56 .S XMB(5)="No record of user access, patient should be removed"
57 .S XMB(6)="from the security log."
58 S XMY("G."_DGB)="" D SEND^DGSEC(.XMB,.XMY)
59 Q
602 ;
61 ;;Display User Access to Patient Record
62 G ^DGSEC2
633 ;
64 ;;Purge Record of User Access from Security Log
65 G ^DGSEC3
664 ;
67 ;;Purge Non-sensitive Patients from Security Log
68 I '$D(^XUSEC("DG SECURITY OFFICER",DUZ)) W !!?3,$C(7),"You do not have the appropriate access privileges to purge patients." Q
69ASKPUR N %
70 W !!,"Are you sure you want to purge all non-sensitive patients" S %=2 D YN^DICN G Q:%<0!(%=2)
71 I '% W !!,"Enter 'YES' to purge non-sensitive patients, or 'NO' to exit this process." G ASKPUR
72 ;
73ASKPRT W !!,"Do you want to print patients as they are purged" S %=2 D YN^DICN G Q:%<0 S DGPRT=$S(%=2:"QUE",1:"") I '% W !!,"Enter 'YES' to print patients being purged, or 'NO' to schedule purge." G ASKPRT
74 S DGPGM="PURNON^DGSEC1",DGVAR="DGPRT^DUZ" I DGPRT="" W ! D ZIS^DGUTQ G Q:POP,PURNON
75 I DGPRT="QUE" S ION="" W ! D QUE^DGUTQ G Q
76 ;
77PURNON N DIC,Y
78 I DGPRT="" S DGCNT=0 W !!,"Purge Non-sensitive Patients from Security Log started " D H^DGUTL S Y=DGTIME D DT^DIQ W ".",!
79 F DFN=0:0 S DFN=$O(^DGSL(38.1,"ANS",DFN)) Q:'DFN I $D(^DGSL(38.1,DFN,0)),'$P(^(0),"^",2) S DA=DFN,DIK="^DGSL(38.1," D ^DIK I DGPRT="" W !," ...",$S($D(^DPT(DFN,0)):$P(^(0),"^")_" ("_$P(^(0),"^",9)_")",1:"Unknown") S DGCNT=DGCNT+1
80 I DGPRT="" W !!,"Purge completed " D H^DGUTL S Y=DGTIME D DT^DIQ W ". ","Number of records purged: ",DGCNT
81 ;
82Q K DFN,DGCNT,DGPGM,DGPRT,DGVAR,POP D CLOSE^DGUTQ
83 Q
84 ;
85 ;
86RUSURE() ; Description: Asks user if they are sure they want to edit the DG SECURITY LOG record.
87 ;
88 N DIR,DIRUT,X,Y
89 S DIR(0)="Y"
90 S DIR("A")="Are you sure that you want to edit the patient's security level"
91 S DIR("B")="NO"
92 D ^DIR
93 Q:$D(DIRUT) 0
94 Q Y
Note: See TracBrowser for help on using the repository browser.