Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDES2PRIVUSERS

SDES2PRIVUSERS.m

Go to the documentation of this file.
SDES2PRIVUSERS ;ALB/MCB - SDES2 ADD,DELETE, DELETE ALL, GET PRIVILEGED USERS ; July 13,2026
 ;;5.3;Scheduling;**951**;Aug 13, 1993;Build 5
 ;;Per VHA Directive 6402, this routine should not be modified
 ;
 ;External References
 ;-------------------
 ; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
 ; Reference to DUZ^XUP is supported by IA #7487
 ;
 ;Global References
 ;-----------------
 ; Reference to LIST^DIC(200   is supported by IA #10060
 ;
 Q
 ;
 ; Input: Add and Delete PRIV USER
 ; S SDINPUT("Clinic IEN")- [required] - The Hopspital Location IEN
 ; S SDINPUT("PRIV DUZ")- [required] - The New Person IEN (#200)
 ;
ADDPRIV(JSON,SDCONTEXT,SDINPUT) ; SDES2 ADD PRIV USER
 N RETURN,ERRORS,CLINDATA
 ; Leaking Variables
 N SDECI,TYPE
 ; Validate SDCONTEXT
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 ;
 D VALIDATE(.ERRORS,.SDINPUT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 ;
 D ADDUSER(.ERRORS,SDINPUT("Clinic IEN"),SDINPUT("PRIV DUZ"))
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 D EASAUDIT(.ERRORS,SDINPUT("Clinic IEN"),.SDCONTEXT) S CLINDATA("Success")="User is successfully added."
 ;
 D BLDCLNREC^SDES2CLININFO(.CLINDATA,SDINPUT("Clinic IEN"))
 D BUILDJSON^SDES2JSON(.JSON,.CLINDATA)
 Q
 ;
DELPRIV(JSON,SDCONTEXT,SDINPUT) ; SDES2 DELETE PRIV USER
 N RETURN,ERRORS,CLINDATA
 ; Leaking Variables
 N SDECI,X,Y
 ; Validate SDCONTEXT
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 ;
 D VALIDATE(.ERRORS,.SDINPUT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 ;
 D DELUSER(.ERRORS,SDINPUT("Clinic IEN"),SDINPUT("PRIV DUZ"))
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.RETURN,.ERRORS) Q
 D EASAUDIT(.ERRORS,SDINPUT("Clinic IEN"),.SDCONTEXT) S CLINDATA("Success")="User is successfully deleted."
 ;
 D BLDCLNREC^SDES2CLININFO(.CLINDATA,SDINPUT("Clinic IEN"))
 D BUILDJSON^SDES2JSON(.JSON,.CLINDATA)
 Q
 ;
DELALLPRIV(JSON,SDCONTEXT,SDINPUT) ; SDES2 DELETE(DEL) ALL PRIV USERS
 ; Input:
 ; S SDINPUT("Clinic IEN")-[required]-The Hopspital Location IEN
 ; Leaking Variables
 N SDECI,X,Y
 N RETURN,ERRORS,CLINDATA
 ; Validate SDCONTEXT
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 ;
 D VALIDATER(.ERRORS,.SDINPUT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 ;
 D DELALUSERS(.ERRORS,SDINPUT("Clinic IEN"))
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.RETURN,.ERRORS) Q
 D EASAUDIT(.ERRORS,SDINPUT("Clinic IEN"),.SDCONTEXT) S CLINDATA("Success")="All Users are successfully deleted."
 ;
 D BLDCLNREC^SDES2CLININFO(.CLINDATA,SDINPUT("Clinic IEN"))
 D BUILDJSON^SDES2JSON(.JSON,.CLINDATA)
 Q
 ;
GETPRIV(JSON,SDCONTEXT,SDINPUT) ;SDES2 GET PRIV USERS
 ; Input:
 ; S SDINPUT("Clinic IEN")-[required]-The Hopspital Location IEN
 ;
 N ERRORS,CLINDATA
 ; Validate SDCONTEXT
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 ;
 D VALIDATER(.ERRORS,.SDINPUT)
 I $D(ERRORS) S ERRORS("Clinic IEN",1)="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
 ;
 D GETUSRLIST(.CLINDATA,.SDINPUT)
 ;
 D BUILDJSON^SDES2JSON(.JSON,.CLINDATA)
 Q
 ;
VALIDATE(ERRORS,SDINPUT) ; Validate Clinic IEN, Privileged DUZ
 N ERRORFLAG,CLININE,PRIVDUZ
 ; Location IEN
 S CLINIEN=$G(SDINPUT("Clinic IEN"))
 I CLINIEN="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,18) Q $D(ERRORFLAG)
 I '$D(^SC(CLINIEN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,19) Q $D(ERRORFLAG)
 ; User IEN
 S PRIVDUZ=$G(SDINPUT("PRIV DUZ"))
 I PRIVDUZ="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,223) Q $D(ERRORFLAG)
 I '$D(^VA(200,$G(PRIVDUZ),0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,44) Q $D(ERRORFLAG)
 Q $D(ERRORFLAG)
 ;
VALIDATER(ERRORS,SDINPUT) ; Validate Clinic IEN
 N ERRORFLAG,CLINIEN
 ;
 ; Location IEN
 S CLINIEN=$G(SDINPUT("Clinic IEN"))
 I CLINIEN="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,18) Q $D(ERRORFLAG)
 I '$D(^SC(CLINIEN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,19) Q $D(ERRORFLAG)
 Q $D(ERRORFLAG)
 ;
ADDUSER(ERRORS,CLINIEN,PRIVDUZ) ; Add User
 N IENS,ERR,FDA
 S IENS(1)=+PRIVDUZ
 S FDA(44.04,"+1,"_CLINIEN_",",.01)=+PRIVDUZ
 D UPDATE^DIE(,"FDA","IENS","ERR")
 I $D(ERR) D
 .S ERRORS("Error",1)="Error adding User to Hospital Location: "_$G(ERR("DIERR",1,"TEXT",1))
 Q
 ;
DELUSER(ERRORS,CLINIEN,PRIVDUZ) ; Delete User
 N DIK,DA,ERRORS
 S DIK="^SC("_CLINIEN_",""SDPRIV"","
 S DA(1)=CLINIEN
 S DA=PRIVDUZ
 D ^DIK
 Q
 ;
DELALUSERS(ERRORS,CLINIEN) ; Delete All Users
 N DIK,DA,ERRORS
 S DIK="^SC("_CLINIEN_",""SDPRIV"","
 S DA(1)=CLINIEN
 S DA=999999999 F  S DA=$O(^SC(CLINIEN,"SDPRIV",DA),-1) Q:'DA  D ^DIK
 Q
 ;
GETUSRLIST(ELGARRAY,SDINPUT) ; Return all Users
 N USRCNT,PRIVDUZ,USRNAME,CLINIEN
 S CLINIEN=$G(SDINPUT("Clinic IEN"))
 S PRIVDUZ=$G(SDINPUT("PRIV DUZ"))
 S (USRCNT,PRIVDUZ)=0
 F  S PRIVDUZ=$O(^SC(CLINIEN,"SDPRIV",PRIVDUZ)) Q:'PRIVDUZ  D
 .S USRCNT=USRCNT+1
 .S ELGARRAY("Privileged User",USRCNT,"IEN")=PRIVDUZ
 .S ELGARRAY("Privileged User",USRCNT,"Name")=$$GET1^DIQ(44.04,PRIVDUZ_","_CLINIEN,.01)
 I USRCNT=0 S ELGARRAY("Error",1)="No privileged users are found."
 Q
 ;
EASAUDIT(ERRORS,CLINIEN,SDCONTEXT) ; Update EAS Audit Fields
 N FDA,ERR
 S FDA(44,CLINIEN_",",100)=$G(SDCONTEXT("ACHERON AUDIT ID"))
 S FDA(44,CLINIEN_",",100.2)=$G(SDCONTEXT("APPID"))
 S FDA(44,CLINIEN_",",100.1)=$G(XWB(2,"RPC"))
 D FILE^DIE(,"FDA","ERR")
 I $D(ERR) S ERRORS("Error",1)="Error adding User to Hospital Location: "_$G(ERR("DIERR",1,"TEXT",1))
 Q
 ;