[613] | 1 | DGSEC1 ;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
|
---|
| 6 | A N DIC,Y,X
|
---|
| 7 | W !! S DIC="^DOPT(""DGSEC1"",",DIC(0)="AEQM" D ^DIC Q:Y<0 D @+Y G A
|
---|
| 8 | 1 ;
|
---|
| 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 | ;
|
---|
| 38 | BULTIN ;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
|
---|
| 60 | 2 ;
|
---|
| 61 | ;;Display User Access to Patient Record
|
---|
| 62 | G ^DGSEC2
|
---|
| 63 | 3 ;
|
---|
| 64 | ;;Purge Record of User Access from Security Log
|
---|
| 65 | G ^DGSEC3
|
---|
| 66 | 4 ;
|
---|
| 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
|
---|
| 69 | ASKPUR 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 | ;
|
---|
| 73 | ASKPRT 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 | ;
|
---|
| 77 | PURNON 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 | ;
|
---|
| 82 | Q K DFN,DGCNT,DGPGM,DGPRT,DGVAR,POP D CLOSE^DGUTQ
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | ;
|
---|
| 86 | RUSURE() ; 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
|
---|