BDGSECU ; IHS/ANMC/LJF - UPDATE SECURITY PARAMETERS ;
;;5.3;PIMS;**1004**;MAY 28, 2004
;IHS/OIT/LJF 11/03/2005 PATCH 1004 moved message subroutine to IHS routine
;
CHOOSE ; ask user to choose function to perform
NEW BDGA,Y
S BDGA(1)=$$SP(10)_"1. Edit Security Parameters"
S BDGA(2)=$$SP(10)_"2. Edit Mail Group Members"
S BDGA(3)=$$SP(10)_"3. List Security Key Holders"
S BDGA(4)=""
S Y=$$READ^BDGF("NO^1:3"," Select Action","","","",.BDGA)
Q:'Y D @Y
Q
;
1 ; -- call screenman to edit parameters
NEW DA,DIC,DDR,DLAYGO,BDGERR
;
; if no entry in MAS Parameters file, add one
I '$D(^DG(43,1,0)) D I $G(BDGERR) D MSG^BDGF(BDGERR) Q
. K DD,DO S (DIC,DLAYGO)=43,DIC(0)="L"
. S (X,DINUM)=1 D FILE^DICN
. I Y=-1 S BDGERR="Adding to MAS Parameter file failed; contact supervisor."
;
; -- call ScreenMan to add/edit parameters
S DDSFILE=43,DA=1,DR="[BDG SECURITY PARAMETERS]" D ^DDS
K DDSFILE,DR
Q
;
;
2 ; -- call screenman to edit mail group members
;NEW DA,DIC,DDR,DLAYGO
;
S X=$O(^XMB(3.8,"B","DG MISSING NEW PERSON SSN",0)) ;mailgroup ien
I 'X D Q ;mail group gone
. D MSG^BDGF("Mail Group DG MISSING NEW PERSON SSN not in file",2,0)
. D MSG^BDGF("Contact ITSC Help Desk for assistance",1,1)
. D PAUSE^BDGF
;
I '$O(^XMB(3.8,X,1,0)) D ;no members in mail group
. D MSG^BDGF("Don't forget to add members to DG MISSING NEW PERSON SSN mail group",2,0)
;
; ask user to select a mail group; screen by coordinator
S (DIC,DLAYGO)=3.8,DIC(0)="AEMQZL"
S DIC("S")="I ($D(^XUSEC(""XMMGR"",DUZ)))!($P($G(^XMB(3.8,+Y,0)),U,7)=DUZ)"
S DIC("DR")="4///PU;10///0;7///n"
W !! D ^DIC Q:Y<1
;
; -- call ScreenMan to add/edit parameters
S DDSFILE=3.8,DA=+Y,DR="[BDG SECURITY MAIL GROUP EDIT]" D ^DDS
K DDSFILE,DR
Q
;
3 ; -- list holders of module's security keys
D ^BDGSECU1
Q
;
PAD(D,L) ;EP -- SUBRTN to pad length of data
; -- D=data L=length
Q $E(D_$$REPEAT^XLFSTR(" ",L),1,L)
;
SP(N) ; -- SUBRTN to pad N number of spaces
Q $$PAD(" ",N)
;
;
;IHS/OIT/LJF 11/03/2005 PATCH 1004 added new subroutine
MSG ;EP - Warning message on sensitive patients
; called by PRIV^DGSEC4
S DGSENS(5)="* This record is protected by the Privacy Act of 1974 & Health Insurance*"
S DGSENS(6)="* Portability & Accountability Act of 1996. If you elect to proceed, you*"
S DGSENS(7)="* must prove you have a need to know. Access to this patient is tracked*"
S DGSENS(8)="* and your Security Officer will contact you for your justification. *"
Q
BDGSECU ; IHS/ANMC/LJF - UPDATE SECURITY PARAMETERS ;
+1 ;;5.3;PIMS;**1004**;MAY 28, 2004
+2 ;IHS/OIT/LJF 11/03/2005 PATCH 1004 moved message subroutine to IHS routine
+3 ;
CHOOSE ; ask user to choose function to perform
+1 NEW BDGA,Y
+2 SET BDGA(1)=$$SP(10)_"1. Edit Security Parameters"
+3 SET BDGA(2)=$$SP(10)_"2. Edit Mail Group Members"
+4 SET BDGA(3)=$$SP(10)_"3. List Security Key Holders"
+5 SET BDGA(4)=""
+6 SET Y=$$READ^BDGF("NO^1:3"," Select Action","","","",.BDGA)
+7 IF 'Y
QUIT
DO @Y
+8 QUIT
+9 ;
1 ; -- call screenman to edit parameters
+1 NEW DA,DIC,DDR,DLAYGO,BDGERR
+2 ;
+3 ; if no entry in MAS Parameters file, add one
+4 IF '$DATA(^DG(43,1,0))
Begin DoDot:1
+5 KILL DD,DO
SET (DIC,DLAYGO)=43
SET DIC(0)="L"
+6 SET (X,DINUM)=1
DO FILE^DICN
+7 IF Y=-1
SET BDGERR="Adding to MAS Parameter file failed; contact supervisor."
End DoDot:1
IF $GET(BDGERR)
DO MSG^BDGF(BDGERR)
QUIT
+8 ;
+9 ; -- call ScreenMan to add/edit parameters
+10 SET DDSFILE=43
SET DA=1
SET DR="[BDG SECURITY PARAMETERS]"
DO ^DDS
+11 KILL DDSFILE,DR
+12 QUIT
+13 ;
+14 ;
2 ; -- call screenman to edit mail group members
+1 ;NEW DA,DIC,DDR,DLAYGO
+2 ;
+3 ;mailgroup ien
SET X=$ORDER(^XMB(3.8,"B","DG MISSING NEW PERSON SSN",0))
+4 ;mail group gone
IF 'X
Begin DoDot:1
+5 DO MSG^BDGF("Mail Group DG MISSING NEW PERSON SSN not in file",2,0)
+6 DO MSG^BDGF("Contact ITSC Help Desk for assistance",1,1)
+7 DO PAUSE^BDGF
End DoDot:1
QUIT
+8 ;
+9 ;no members in mail group
IF '$ORDER(^XMB(3.8,X,1,0))
Begin DoDot:1
+10 DO MSG^BDGF("Don't forget to add members to DG MISSING NEW PERSON SSN mail group",2,0)
End DoDot:1
+11 ;
+12 ; ask user to select a mail group; screen by coordinator
+13 SET (DIC,DLAYGO)=3.8
SET DIC(0)="AEMQZL"
+14 SET DIC("S")="I ($D(^XUSEC(""XMMGR"",DUZ)))!($P($G(^XMB(3.8,+Y,0)),U,7)=DUZ)"
+15 SET DIC("DR")="4///PU;10///0;7///n"
+16 WRITE !!
DO ^DIC
IF Y<1
QUIT
+17 ;
+18 ; -- call ScreenMan to add/edit parameters
+19 SET DDSFILE=3.8
SET DA=+Y
SET DR="[BDG SECURITY MAIL GROUP EDIT]"
DO ^DDS
+20 KILL DDSFILE,DR
+21 QUIT
+22 ;
3 ; -- list holders of module's security keys
+1 DO ^BDGSECU1
+2 QUIT
+3 ;
PAD(D,L) ;EP -- SUBRTN to pad length of data
+1 ; -- D=data L=length
+2 QUIT $EXTRACT(D_$$REPEAT^XLFSTR(" ",L),1,L)
+3 ;
SP(N) ; -- SUBRTN to pad N number of spaces
+1 QUIT $$PAD(" ",N)
+2 ;
+3 ;
+4 ;IHS/OIT/LJF 11/03/2005 PATCH 1004 added new subroutine
MSG ;EP - Warning message on sensitive patients
+1 ; called by PRIV^DGSEC4
+2 SET DGSENS(5)="* This record is protected by the Privacy Act of 1974 & Health Insurance*"
+3 SET DGSENS(6)="* Portability & Accountability Act of 1996. If you elect to proceed, you*"
+4 SET DGSENS(7)="* must prove you have a need to know. Access to this patient is tracked*"
+5 SET DGSENS(8)="* and your Security Officer will contact you for your justification. *"
+6 QUIT