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

SDESGETDIVISION.m

Go to the documentation of this file.
  1. SDESGETDIVISION ;ALB/BWF,TJB - SDES GET DIVISION/FACILITY/TIMEZONE ;JUNE 5, 2023
  1. ;;5.3;Scheduling;**819,846**;Aug 13, 1993;Build 12
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. GETDIVISIONLIST(RESULTS,SEARCHTRM,EAS) ;
  1. N DATA,FACILITYNUM,FACARRY,ERRORS,ERR
  1. S SEARCHTRM=$G(SEARCHTRM)
  1. D VALINPUT(.ERRORS,SEARCHTRM)
  1. D VALIDATEEAS(.ERRORS,$G(EAS))
  1. I $D(ERRORS) D Q
  1. .S ERRORS("Division",1)=""
  1. .D BUILDJSON^SDESBUILDJSON(.RESULTS,.ERRORS) Q
  1. ; If INPUT data passed in use FIND to get the list of matching DIVISIONS
  1. I SEARCHTRM'="" D
  1. . K DATA,ERR D FIND^DIC(40.8,,".07I;1","M",SEARCHTRM,,,,,"DATA","ERR")
  1. ; Otherwise just list all DIVISION from file 40.8
  1. I SEARCHTRM="" D
  1. . K DATA,ERR D LIST^DIC(40.8,,".07I;1","",,,,,,,"DATA","ERR")
  1. I $D(ERR) D Q
  1. . S ERRORS("Division",1)=""
  1. . S ERRORS("Error",1)="Errors in "_$S(SEARCHTRM'="":"FIND^DIC",1:"LIST^DIC")
  1. . S ERRORS("Error",2)=$G(ERR("DIERR",1,"TEXT",1))
  1. . D BUILDJSON^SDESBUILDJSON(.RESULTS,.ERRORS) Q
  1. ; Build the FACARRY to then be returned
  1. D BUILDATA(.DATA,.FACARRY)
  1. D BUILDJSON^SDESBUILDJSON(.RESULTS,.FACARRY)
  1. Q
  1. VALINPUT(ERRORS,INPUT) ;
  1. Q:$G(INPUT)="" ; If INP is empty then just continue
  1. I $L($G(INPUT))<2 D ERRLOG^SDESJSON(.ERRORS,64)
  1. Q
  1. VALIDATEEAS(ERRORS,SDEAS) ;
  1. I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL($G(SDEAS))
  1. I $P($G(SDEAS),U)=-1 D ERRLOG^SDESJSON(.ERRORS,142)
  1. Q
  1. BUILDATA(DATA,FACARRY) ; Build out array to be put into JSON format
  1. N DCNT,ITEM,DIVNM,DIVIEN,FACILITYNUM,INST,INSTIMEZONE,FACTYP,PARINST,INSTFAC,J,JJ,TZARRAY,JTZ
  1. S (DCNT,ITEM,J)=0 F S ITEM=$O(DATA("DILIST",1,ITEM)) Q:'ITEM D
  1. . S (DIVNM,DIVIEN,FACILITYNUM,PARINST,FACTYP)=""
  1. . S DCNT=DCNT+1
  1. . S DIVNM=$G(DATA("DILIST",1,ITEM)) ; DIVISION Name
  1. . S DIVIEN=$G(DATA("DILIST",2,ITEM)) ; DIVISION IEN
  1. . S FACILITYNUM=$G(DATA("DILIST","ID",ITEM,1))
  1. . S PARINST=$G(DATA("DILIST","ID",ITEM,.07)) ; Parent Institution IEN
  1. . S FACARRY("Division",DCNT,"Name")=DIVNM
  1. . S FACARRY("Division",DCNT,"ID")=DIVIEN
  1. . S FACARRY("Division",DCNT,"FacilityNumber")=FACILITYNUM
  1. . ; Get data from the instution file
  1. . K INST,ERR D GETS^DIQ(4,PARINST_",","101;.01;99;11;13;800;802","IEP","INST","ERR")
  1. . S INSTIMEZONE=$G(INST(4,PARINST_",",800,"I"))
  1. . ; Get data from world timezone file
  1. . I INSTIMEZONE'="" K TZARRAY,ERR D GETS^DIQ(1.71,INSTIMEZONE_",","1*","IE","TZARRAY","ERR")
  1. . S FACTYP=$G(INST(4,PARINST_",",13,"I"))
  1. . ; Get data from the Facility Type file
  1. . I FACTYP'="" K INSTFAC,ERR D GETS^DIQ(4.1,FACTYP_",",".01;3","IE","INSTFAC","ERR")
  1. . S FACARRY("Division",DCNT,"Institution","Inactive")=$G(INST(4,PARINST_",",101,"I"))
  1. . S FACARRY("Division",DCNT,"Institution","Name")=$G(INST(4,PARINST_",",.01,"I"))
  1. . S FACARRY("Division",DCNT,"Institution","StationNumber")=$G(INST(4,PARINST_",",99,"I"))
  1. . S FACARRY("Division",DCNT,"FacilityType","Name")=$G(INSTFAC(4.1,FACTYP_",",.01,"I"))
  1. . S FACARRY("Division",DCNT,"FacilityType","Status")=$G(INSTFAC(4.1,FACTYP_",",3,"I"))
  1. . S FACARRY("Division",DCNT,"ParentFacility")=PARINST
  1. . S FACARRY("Division",DCNT,"Status")=$G(INST(4,PARINST_",",11,"I"))
  1. . S FACARRY("Division",DCNT,"InactiveFacilityFlag")=$G(INST(4,PARINST_",",101,"I"))
  1. . S FACARRY("Division",DCNT,"TimeZone")=$G(INST(4,PARINST_",",800,"E"))
  1. . I $D(TZARRAY(1.711))>0 S JJ="",J=0 F S JJ=$O(TZARRAY(1.711,JJ)) Q:JJ="" D
  1. . . S J=J+1
  1. . . S FACARRY("Division",DCNT,"TimeZoneDetails",J,"TimeFrame")=$G(TZARRAY(1.711,JJ,.01,"E"))
  1. . . S FACARRY("Division",DCNT,"TimeZoneDetails",J,"Offset")=$G(TZARRAY(1.711,JJ,.02,"E"))
  1. . . S FACARRY("Division",DCNT,"TimeZoneDetails",J,"TimeZoneCode")=$G(TZARRAY(1.711,JJ,.03,"E"))
  1. . S FACARRY("Division",DCNT,"TimeZoneException")=$G(INST(4,PARINST_",",802,"E"))
  1. I '$D(FACARRY) S FACARRY("Division",1)=""
  1. Q