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

SDESGETCLNSCHEDS.m

Go to the documentation of this file.
  1. SDESGETCLNSCHEDS ;ALB/BLB - SDES GET AVAIL BY CLIN LIST; Oct 17, 2022@20:49
  1. ;;5.3;Scheduling;**838**;Aug 13, 1993;Build 7
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. GETSCHEDULES(JSONRETURN,AUDITIEN,CLINICS,STARTDATETIME,ENDDATETIME) ;
  1. N ERRORS,RETURN,SCHEDULES
  1. ;
  1. D VALIDATECLINICS(.ERRORS,.CLINICS)
  1. D VALIDATESTART(.ERRORS,STARTDATETIME)
  1. D VALIDATEEND(.ERRORS,ENDDATETIME)
  1. I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
  1. ;
  1. D BUILDSCHEDULES(.CLINICS,.SCHEDULES,STARTDATETIME,ENDDATETIME)
  1. ;
  1. I '$D(SCHEDULES) S SCHEDULES("ClinicSchedules",1)=""
  1. M RETURN=SCHEDULES D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN)
  1. Q
  1. ;
  1. BUILDSCHEDULES(CLINICS,SCHEDULES,STARTDATETIME,ENDDATETIME) ;
  1. N CLINICCOUNT,CLINICIEN,RESOURCEIEN,SLOTS,SLOTIEN,RET,COUNT
  1. ;
  1. S CLINICCOUNT=0,COUNT=0
  1. F S CLINICCOUNT=$O(CLINICS(CLINICCOUNT)) Q:'CLINICCOUNT D
  1. .N SLOTS,RET
  1. .S CLINICIEN=$G(CLINICS(CLINICCOUNT))
  1. .D GETCLAVAILABLTY^SDESCLINICAVAIL(.RET,CLINICIEN,STARTDATETIME,ENDDATETIME),DECODE^XLFJSON("RET","SLOTS")
  1. .;
  1. .;I '$L($G(SLOTS("ClinAvail",1,"BeginTime"))) Q
  1. .S SLOTIEN=0
  1. .S COUNT="",COUNT=$O(SCHEDULES("ClinicSchedules",COUNT),-1)+1
  1. .F S SLOTIEN=$O(SLOTS("ClinAvail",SLOTIEN)) Q:'SLOTIEN D
  1. ..S SCHEDULES("ClinicSchedules",COUNT,"ClinicIEN")=CLINICIEN
  1. ..S SCHEDULES("ClinicSchedules",COUNT,"ClinicName")=$$GET1^DIQ(44,CLINICIEN,.01,"E")
  1. ..S SCHEDULES("ClinicSchedules",COUNT,"Slot",SLOTIEN,"StartTime")=$G(SLOTS("ClinAvail",SLOTIEN,"BeginTime"))
  1. ..S SCHEDULES("ClinicSchedules",COUNT,"Slot",SLOTIEN,"EndTime")=$G(SLOTS("ClinAvail",SLOTIEN,"EndTime"))
  1. ..S SCHEDULES("ClinicSchedules",COUNT,"Slot",SLOTIEN,"AvailableSlots")=$G(SLOTS("ClinAvail",SLOTIEN,"SlotsAvail"))
  1. Q
  1. ;
  1. VALIDATECLINICS(ERRORS,CLINICS) ;
  1. N CLINICIEN,ERRORFOUND,CLINICIEN,CLINICCOUNT
  1. ;
  1. I '$D(CLINICS) D ERRLOG^SDESJSON(.ERRORS,18) Q
  1. ;
  1. S CLINICCOUNT=0,ERRORFOUND=0
  1. F S CLINICCOUNT=$O(CLINICS(CLINICCOUNT)) Q:'CLINICCOUNT!(ERRORFOUND) D
  1. .S CLINICIEN=$G(CLINICS(CLINICCOUNT))
  1. .I '$D(^SC(CLINICIEN,0)) S ERRORFOUND=1 D ERRLOG^SDESJSON(.ERRORS,19)
  1. ;
  1. I CLINICCOUNT>50 D ERRLOG^SDESJSON(.ERRORS,430)
  1. Q
  1. ;
  1. VALIDATESTART(ERRORS,STARTDATETIME) ;
  1. N ERRORFLAG
  1. I STARTDATETIME="" D ERRLOG^SDESJSON(.ERRORS,25) Q
  1. I STARTDATETIME'="" D
  1. .S STARTDATETIME=$$ISOTFM^SDAMUTDT(STARTDATETIME)
  1. .I STARTDATETIME=-1!(STARTDATETIME="") D ERRLOG^SDESJSON(.ERRORS,27)
  1. Q
  1. ;
  1. VALIDATEEND(ERRORS,ENDDATETIME) ;
  1. N ERRORFLAG
  1. I ENDDATETIME="" D ERRLOG^SDESJSON(.ERRORS,26) Q
  1. I ENDDATETIME'="" D
  1. .S ENDDATETIME=$$ISOTFM^SDAMUTDT(ENDDATETIME)
  1. .I ENDDATETIME=-1!(ENDDATETIME="") D ERRLOG^SDESJSON(.ERRORS,28)
  1. Q
  1. ;
  1. BUILDJSON(JSONRETURN,RETURN) ;
  1. D ENCODE^XLFJSON("RETURN","JSONRETURN")
  1. Q
  1. ;