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

SDES2GETAPPTRPCS.m

Go to the documentation of this file.
  1. SDES2GETAPPTRPCS ;ALB/LAB,JAS,LAB,TJB - VISTA SCHEDULING RPCS TO GET APPOINTMENTS ;JUL 29,2024
  1. ;;5.3;Scheduling;**871,873,875,877,880,886**;Aug 13, 1993;Build 13
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ;
  1. BYAPPTIEN(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPT BY APPT IEN
  1. N ERRORS,APPTOBJ,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D VALIDATEBYIEN(.ERRORS,.APPTPARAMS)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTPARAMS("APPOINTMENT IEN"),1,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. APPTSBYIENLIST(RESULT,SDCONTEXT,SDPARAM) ;SDES2 GET APPTS BY APPT IENS
  1. N APPTIEN,APPTOBJ,ERRORS,RECCNT,SDDUZ,VALFLAG
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. S RECCNT=0
  1. S APPTIEN=""
  1. F S APPTIEN=$O(SDPARAM("APPOINTMENT IEN",APPTIEN)) Q:(APPTIEN="")!(RECCNT>50) D
  1. . S RECCNT=RECCNT+1
  1. . I RECCNT>50 D
  1. . . D ERRLOG^SDESJSON(.ERRORS,429)
  1. . Q:RECCNT>50
  1. . S VALFLAG=1
  1. . D VALIDATEBYIENS(.ERRORS,APPTIEN,.VALFLAG)
  1. . D:VALFLAG BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. BYCLINICLIST(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPTS BY CLINIC LIST
  1. N ERRORS,CLINICCNT,CLINICIEN,RESOURCEIEN,SDBEGDATE,SDENDDATE,SDDUZ,RECCNT,APPTOBJ,VALFLAG,APPTDATE,APPTIEN
  1. N TODAY,CLINTODAY
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S TODAY=$$FMTISO^SDAMUTDT($$NOW^XLFDT)
  1. S CLINICCNT=0
  1. S CLINICIEN=""
  1. S RECCNT=0
  1. F S CLINICIEN=$O(APPTPARAMS("ClinicIEN",CLINICIEN)) Q:(CLINICIEN="")!(CLINICCNT>50) D
  1. . S CLINICCNT=CLINICCNT+1
  1. . I CLINICCNT>50 D
  1. . . D ERRLOG^SDESJSON(.ERRORS,429)
  1. . Q:CLINICCNT>50
  1. . S VALFLAG=1
  1. . D VALFILEIEN^SDES2VALUTIL(.VALFLAG,.ERRORS,44,$G(CLINICIEN),1,0,18,19)
  1. . Q:'VALFLAG
  1. . ; The date conversions need to be done on a per clinic basis because of timezones
  1. . S CLINTODAY=$P($$ISOTFM^SDAMUTDT(TODAY,CLINICIEN),".",1)
  1. . S SDBEGDATE=$$FMADD^XLFDT(CLINTODAY,"","","",-1)
  1. . S SDENDDATE=$$FMADD^XLFDT(CLINTODAY,"",23,59,59) ;end of today
  1. . S RESOURCEIEN=$$GETRES^SDES2UTIL1(CLINICIEN,1)
  1. . I RESOURCEIEN="" S VALFLAG=0 D ERRLOG^SDES2JSON(.ERRORS,52,"Clinic is missing a resourceIEN")
  1. . Q:'VALFLAG
  1. . S APPTDATE=SDBEGDATE-.0001
  1. . F S APPTDATE=$O(^SDEC(409.84,"ARSRC",RESOURCEIEN,APPTDATE)) Q:(APPTDATE>SDENDDATE)!(APPTDATE="") D
  1. . . S APPTIEN=""
  1. . . F S APPTIEN=$O(^SDEC(409.84,"ARSRC",RESOURCEIEN,APPTDATE,APPTIEN)) Q:APPTIEN="" D
  1. . . . S RECCNT=RECCNT+1
  1. . . . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S:'$D(APPTOBJ) APPTOBJ("Appointment",1)=""
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. BYCLINIEN(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPTS BY CLINIC IEN
  1. N ERRORS,SDBEGDATE,SDENDDATE,RESOURCEIEN,APPTIEN,APPTOBJ,RECCNT,APPTDATE,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D VALIDATEBYCLIN(.ERRORS,.APPTPARAMS,.SDBEGDATE,.SDENDDATE)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S RESOURCEIEN=$$GETRES^SDES2UTIL1(APPTPARAMS("ClinicIEN"),1)
  1. I RESOURCEIEN="" D ERRLOG^SDES2JSON(.ERRORS,52,"Clinic is missing a resourceIEN")
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. ;add error if resource not found]
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. S APPTDATE=SDBEGDATE-.0001
  1. S RECCNT=0
  1. F S APPTDATE=$O(^SDEC(409.84,"ARSRC",RESOURCEIEN,APPTDATE)) Q:(APPTDATE>SDENDDATE)!(APPTDATE="") D
  1. . S APPTIEN=""
  1. . F S APPTIEN=$O(^SDEC(409.84,"ARSRC",RESOURCEIEN,APPTDATE,APPTIEN)) Q:APPTIEN="" D
  1. . . S RECCNT=RECCNT+1
  1. . . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S:'$D(APPTOBJ) APPTOBJ("Appointment",1)=""
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. BYPATDFN(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPTS BY PATIENT DFN
  1. N ERRORS,SDBEGDATE,SDENDDATE,APPTOBJ,APPTIEN,APPTDATE,RECCNT,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D VALIDATEBYDFN(.ERRORS,.APPTPARAMS,.SDBEGDATE,.SDENDDATE)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. S APPTDATE=SDBEGDATE-.0001
  1. S RECCNT=0
  1. F S APPTDATE=$O(^SDEC(409.84,"APTDT",APPTPARAMS("DFN"),APPTDATE)) Q:(APPTDATE>SDENDDATE)!(APPTDATE="") D
  1. . S APPTIEN=""
  1. . F S APPTIEN=$O(^SDEC(409.84,"APTDT",APPTPARAMS("DFN"),APPTDATE,APPTIEN)) Q:APPTIEN="" D
  1. . . S RECCNT=RECCNT+1
  1. . . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S:'$D(APPTOBJ) APPTOBJ("Appointment",1)=""
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. BYPATDFN2(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPTS BY PATIENT DFN2
  1. N ERRORS,SDBEGDATE,SDENDDATE,APPTOBJ,APPTIEN,APPTDATE,RECCNT,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D VALIDATEBYDFN2(.ERRORS,.APPTPARAMS,.SDBEGDATE,.SDENDDATE)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. S APPTDATE=SDBEGDATE-.0001
  1. S SDENDDATE=SDENDDATE+.2359
  1. S RECCNT=0
  1. F S APPTDATE=$O(^SDEC(409.84,"APTDT",APPTPARAMS("DFN"),APPTDATE)) Q:(APPTDATE>SDENDDATE)!(APPTDATE="") D
  1. . S APPTIEN=""
  1. . F S APPTIEN=$O(^SDEC(409.84,"APTDT",APPTPARAMS("DFN"),APPTDATE,APPTIEN)) Q:APPTIEN="" D
  1. . . S RECCNT=RECCNT+1
  1. . . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S:'$D(APPTOBJ) APPTOBJ("Appointment",1)=""
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. BYCLINRESOURCE(RESULT,SDCONTEXT,APPTPARAMS) ;SDES2 GET APPTS BY CLN RES IEN
  1. N ERRORS,SDBEGDATE,SDENDDATE,APPTIEN,APPTOBJ,RECCNT,APPTDATE,SDDUZ
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. D VALIDATEBYRES(.ERRORS,.APPTPARAMS,.SDBEGDATE,.SDENDDATE)
  1. I $D(ERRORS) S ERRORS("Appointment",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. ;add error if resource not found]
  1. S SDDUZ=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
  1. S APPTDATE=SDBEGDATE-.0001
  1. S RECCNT=0
  1. F S APPTDATE=$O(^SDEC(409.84,"ARSRC",APPTPARAMS("ResourceIEN"),APPTDATE)) Q:(APPTDATE>SDENDDATE)!(APPTDATE="") D
  1. . S APPTIEN=""
  1. . F S APPTIEN=$O(^SDEC(409.84,"ARSRC",APPTPARAMS("ResourceIEN"),APPTDATE,APPTIEN)) Q:APPTIEN="" D
  1. . . S RECCNT=RECCNT+1
  1. . . D BUILDAPPTOBJ^SDES2BLDAPPTOBJ(.APPTOBJ,APPTIEN,RECCNT,.ERRORS,SDDUZ)
  1. I $D(ERRORS) S:'$D(APPTOBJ) ERRORS("Appointment",1)="" M ERRORS=APPTOBJ D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
  1. S:'$D(APPTOBJ) APPTOBJ("Appointment",1)=""
  1. D BUILDJSON^SDES2JSON(.RESULT,.APPTOBJ)
  1. Q
  1. ;
  1. VALIDATEBYIEN(ERRORS,APPTPARAMS) ;
  1. ; Validate APPT IEN
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,409.84,$G(APPTPARAMS("APPOINTMENT IEN")),1,0,14,15) Q
  1. Q
  1. ;
  1. VALIDATEBYIENS(ERRORS,APPTIEN,VALFLAG) ;
  1. ;Validate APPT IEN
  1. D VALFILEIEN^SDES2VALUTIL(.VALFLAG,.ERRORS,409.84,$G(APPTIEN),1,0,14,15,,," "_APPTIEN) Q
  1. Q
  1. ;
  1. VALIDATEBYCLIN(ERRORS,APPTPARAMS,SDBEGDATE,SDENDDATE) ;
  1. ; Validate Clinic IEN
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,44,$G(APPTPARAMS("ClinicIEN")),1,0,18,19)
  1. S SDBEGDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("BeginDateTime")),$G(APPTPARAMS("ClinicIEN")),1,9,11)
  1. S SDENDDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("EndDateTime")),$G(APPTPARAMS("ClinicIEN")),1,10,12)
  1. Q:(SDBEGDATE="")!(SDENDDATE="")
  1. I SDBEGDATE>SDENDDATE D ERRLOG^SDESJSON(.ERRORS,13)
  1. Q
  1. ;
  1. VALIDATEDATES(ERRORS,CLINICIEN,APPTPARAMS,SDBEGDATE,SDENDDATE,VALFLAG) ;
  1. S SDBEGDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("BeginDateTime")),CLINICIEN,1,9,11)
  1. S SDENDDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("EndDateTime")),CLINICIEN,1,10,12)
  1. S:(SDBEGDATE="")!(SDENDDATE="") VALFLAG=0
  1. Q:'VALFLAG
  1. I SDBEGDATE>SDENDDATE D ERRLOG^SDESJSON(.ERRORS,13) S VALFLAG=0
  1. Q
  1. ;
  1. VALIDATEBYRES(ERRORS,APPTPARAMS,SDBEGDATE,SDENDDATE) ;
  1. ; Validate Clinic IEN
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,409.831,$G(APPTPARAMS("ResourceIEN")),1,0,69,70)
  1. S SDBEGDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("BeginDateTime")),$G(APPTPARAMS("ClinicIEN")),1,9,11)
  1. S SDENDDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("EndDateTime")),$G(APPTPARAMS("ClinicIEN")),1,10,12)
  1. I SDBEGDATE>SDENDDATE D ERRLOG^SDESJSON(.ERRORS,13)
  1. Q
  1. ;
  1. VALIDATEBYDFN(ERRORS,APPTPARAMS,SDBEGDATE,SDENDDATE) ;
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,2,$G(APPTPARAMS("DFN")),1,,1,2)
  1. S SDBEGDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("BeginDateTime")),,1,9,11)
  1. S SDENDDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("EndDateTime")),,1,10,12)
  1. Q
  1. ;
  1. VALIDATEBYDFN2(ERRORS,APPTPARAMS,SDBEGDATE,SDENDDATE) ;
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,2,$G(APPTPARAMS("DFN")),1,,1,2)
  1. S SDBEGDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("BeginDate")),,1,9,11)
  1. S SDENDDATE=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPTPARAMS("EndDate")),,1,10,12)
  1. I SDBEGDATE>SDENDDATE D ERRLOG^SDESJSON(.ERRORS,13)
  1. Q:$D(ERRORS)
  1. I ($P($G(APPTPARAMS("BeginDate")),"T",2)'="") D ERRLOG^SDES2JSON(.ERRORS,11,"Time must not be included on BeginDate")
  1. I ($P($G(APPTPARAMS("EndDate")),"T",2)'="") D ERRLOG^SDES2JSON(.ERRORS,12,"Time must not be included on EndDate")
  1. Q
  1. ;