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

SDESGETUD.m

Go to the documentation of this file.
  1. SDESGETUD ;ALB/ANU,LAB,MGD,JAS - VISTA SCHEDULING RPCS GET USER KEYS AND OPTIONS ; August 26, 2024@12:10
  1. ;;5.3;Scheduling;**801,805,809,814,819,820,890**;Aug 13, 1993;Build 5
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ;External References
  1. ;-------------------
  1. ; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
  1. ; Reference to ^%DT in ICR #10003
  1. ; Reference to $$FIND1^DIC in ICR #2051
  1. ; Reference to NEW PERSON in ICR #10060
  1. ; Reference to $$ACTIVE^XUSER in ICR #2343
  1. ;
  1. ; Global References Supported
  1. ; ----------------- ----------------- ----------
  1. ; ^TMP($J SACC 2.3.2.5.1
  1. Q
  1. ;
  1. GETUSRDTL(SDUSRJSON,SDSECID,SDEAS) ;Called from RPC: SDES GET USRPROFILE
  1. ; This RPC gets User name, Keys and Scheduling Options for a given User.
  1. ; Input:
  1. ; SDCLNJSON - [required] - Successs or Error message
  1. ; SDSECID - [required] - The SECID from the NEW PERSON File #200
  1. ; SDEAS - [optional] - Enterprise Appointment Scheduling (EAS) Tracking Number associated to an appointment.
  1. ;
  1. N SDUSRSREC,SDUSRIEN,SDDIV,SDDIVIENC,HASSDERRORS
  1. D VALIDATESECID(.HASSDERRORS,SDSECID)
  1. D VALIDATEEAS(.HASSDERRORS,.SDEAS)
  1. I $D(HASSDERRORS) D
  1. . S HASSDERRORS("User",1)=""
  1. . M SDUSRSREC=HASSDERRORS
  1. I '$D(HASSDERRORS) D
  1. . D GETUSRINFO(.SDUSRSREC,SDUSRIEN)
  1. D BUILDJSON^SDESBUILDJSON(.SDUSRJSON,.SDUSRSREC)
  1. Q
  1. ;
  1. GETUSRDTLDUZ(SDUSRJSON,SDUSRIEN,SDEAS) ;Called from RPC: SDES GET USER PROFILE BY DUZ
  1. N SDUSRSREC,HASSDERRORS
  1. D VALIDATEUSRIEN(.HASSDERRORS,SDUSRIEN)
  1. D VALIDATEEAS(.HASSDERRORS,.SDEAS)
  1. I $D(HASSDERRORS) D
  1. . S HASSDERRORS("User",1)=""
  1. . M SDUSRSREC=HASSDERRORS
  1. I '$D(HASSDERRORS) D
  1. . D GETUSRINFO(.SDUSRSREC,SDUSRIEN)
  1. D BUILDJSON^SDESBUILDJSON(.SDUSRJSON,.SDUSRSREC)
  1. Q
  1. ;
  1. VALIDATESECID(HASSDERRORS,SDSECID) ;
  1. I $G(SDSECID)="" D ERRLOG^SDESJSON(.HASSDERRORS,130) Q
  1. I '$D(HASSDERRORS) D
  1. . D GETUSRIEN(.HASSDERRORS,SDSECID,.SDUSRIEN)
  1. . I '$D(HASSDERRORS) D
  1. . . D VALIDATEUSRIEN(.HASSDERRORS,SDUSRIEN)
  1. Q
  1. ;
  1. VALIDATEEAS(HASSDERRORS,SDEAS) ;
  1. S SDEAS=$G(SDEAS,"")
  1. I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL(SDEAS)
  1. I SDEAS=-1 D ERRLOG^SDESJSON(.HASSDERRORS,142)
  1. Q
  1. ;
  1. GETUSRIEN(HASSDERRORS,SDSECID,SDUSRIEN) ;
  1. N SCERR
  1. S SDUSRIEN=$$FIND1^DIC(200,,"X",SDSECID,"ASECID",,"SCERR")
  1. I $D(SCERR) D ERRLOG^SDESJSON(.HASSDERRORS,156)
  1. Q
  1. ;
  1. VALIDATEUSRIEN(HASSDERRORS,SDUSRIEN) ;
  1. I SDUSRIEN="" D ERRLOG^SDESJSON(.HASSDERRORS,127) Q
  1. I '$D(^VA(200,SDUSRIEN,0)) D ERRLOG^SDESJSON(.HASSDERRORS,44) Q
  1. I '$$ACTIVE^XUSER(SDUSRIEN) D ERRLOG^SDESJSON(.HASSDERRORS,458) Q
  1. Q
  1. ;
  1. GETUSRINFO(SDUSRSREC,SDUSRIEN) ; Get User Keys and Scheduling Options
  1. N SDFIELDS,SDDATA,SDMSG,SDX,SDC,SDOPT,SDKEY,SDDIV,SDDIVIEN,SDSTN,SDDEF
  1. S SDFIELDS=".01;201;203*;51*;16*"
  1. D GETS^DIQ(200,SDUSRIEN_",",SDFIELDS,"IE","SDDATA","SDMSG")
  1. S SDUSRSREC("User","Name")=$G(SDDATA(200,SDUSRIEN_",",.01,"E")) ;User Name
  1. S SDUSRSREC("User","IEN")=SDUSRIEN
  1. S SDUSRSREC("User","Station ID")=$$DEFAULTSTATION^SDECDUZ()
  1. S SDOPT=$G(SDDATA(200,SDUSRIEN_",",201,"E"))
  1. S SDUSRSREC("User","Primary Menu Option")=SDOPT ;Primary Menu Option
  1. ; Secondary Options Multiple
  1. S SDX="",SDC=0
  1. F S SDX=$O(SDDATA(200.03,SDX)) Q:SDX="" D
  1. . S SDOPT=$G(SDDATA(200.03,SDX,.01,"E"))
  1. . S SDC=SDC+1 S SDUSRSREC("User","Secondary Menu",SDC,"Option")=SDOPT
  1. ; Security Keys Multiple
  1. S SDX="",SDC=0
  1. F S SDX=$O(SDDATA(200.051,SDX)) Q:SDX="" D
  1. . S SDKEY=$G(SDDATA(200.051,SDX,.01,"E"))
  1. . S SDC=SDC+1 S SDUSRSREC("User","Security Key",SDC,"Name")=SDKEY
  1. ; Divisions Multiple
  1. S (SDX,SDSTN,SDDEF)="",SDC=0
  1. F S SDX=$O(SDDATA(200.02,SDX)) Q:SDX="" D
  1. . S SDDIVIEN=$G(SDDATA(200.02,SDX,.01,"I"))
  1. . S SDSTN=$$GET1^DIQ(4,SDDIVIEN,99,"I")
  1. . S SDDIV=$G(SDDATA(200.02,SDX,.01,"E"))
  1. . S SDDEF=$G(SDDATA(200.02,SDX,1,"I"))
  1. . S SDDEF=$S(SDDEF=1:"YES",1:"")
  1. . S SDC=SDC+1
  1. . S SDUSRSREC("User","Division",SDC,"Name")=SDDIV
  1. . S SDUSRSREC("User","Division",SDC,"IEN")=SDDIVIEN
  1. . S SDUSRSREC("User","Division",SDC,"Division")=SDSTN
  1. . S SDUSRSREC("User","Division",SDC,"Default")=SDDEF
  1. I SDC=0 D
  1. . I $G(DUZ(2))'="" D
  1. . . S SDC=SDC+1
  1. . . S SDUSRSREC("User","Division",SDC,"Division")=$G(DUZ(2))
  1. . . S SDUSRSREC("User","Division",SDC,"IEN")=$G(DUZ(2))
  1. . . S SDUSRSREC("User","Division",SDC,"Name")=$$GET1^DIQ(4,$G(DUZ(2)),.01,"E")
  1. . . S SDUSRSREC("User","Division",SDC,"Default")=""
  1. I '$D(SDUSRSREC("User")) S SDUSRSREC("User",1)=""
  1. Q