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

SDESCCAVAIL2.m

Go to the documentation of this file.
  1. SDESCCAVAIL2 ;ALB/BWF - VISTA SCHEDULING RPCS CANCEL CLINIC AVAILABILITY UTILITIES ; August 30, 2022
  1. ;;5.3;Scheduling;**824**;Aug 13, 1993;Build 3
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ;
  1. Q ;No Direct Call
  1. ;
  1. COED(SDCL,SDBEG,SDEND,SDMSG) ; -- scan appts for those co'ed
  1. N SDDA,SDATE,SD0,SDC,SDESC
  1. S SDESC=0,SDATE=SDBEG-.0000001
  1. F S SDATE=$O(^SC(SDCL,"S",SDATE)) Q:'SDATE!(SDATE>SDEND) D
  1. .S SDDA=0 F S SDDA=$O(^SC(SDCL,"S",SDATE,1,SDDA)) Q:'SDDA D
  1. ..I $$GET1^DIQ(44.003,SDDA_","_SDATE_","_SDCL_",",310,"I")="C" Q
  1. ..I $$GET1^DIQ(44.003,SDDA_","_SDATE_","_SDCL_",",303,"I") S SDESC=1
  1. Q SDESC
  1. ;
  1. CHKOVERLAP(CANARY,FROM,TO) ;
  1. N CHKDT,SDERR
  1. S (CHKDT,SDERR)=0
  1. F S CHKDT=$O(CANARY(CHKDT)) Q:'CHKDT!(SDERR) D
  1. .S SDERR=$S(FROM'<CHKDT&(FROM<CANARY(CHKDT)):1,TO>CHKDT&(TO<CANARY(CHKDT)):1,1:0) Q:SDERR
  1. .I CHKDT'<FROM&(CHKDT<TO) S SDERR=1 Q
  1. I $G(SDERR) Q 1
  1. Q 0
  1. ;
  1. TC(TIME,SD,STARTOFDAY,SI) ;
  1. N %DT,X,Y,SDXX,FTIME,MSG
  1. ; fix times less than 4 characters
  1. S FTIME=SD_"."_TIME
  1. S FTIME=$P($$FMTE^XLFDT(FTIME,"T"),"@",2)
  1. S FTIME=$TR(FTIME,":","")
  1. S X=$$FMTE^XLFDT(SD)_"@"_FTIME,%DT="T"
  1. D ^%DT
  1. I Y<0!(X["?") Q ""
  1. S X=$E($P(Y_"0000",".",2),1,4)
  1. S SDXX=$E(X,3,4)
  1. S SDXX=X\100-STARTOFDAY*SI+(SDXX*SI\60)*2
  1. I SDXX<0 S MSG="Day Starts at "_STARTOFDAY,Y=-1
  1. I SDXX>72 S MSG="Day Ends prior to provided end time "_X,Y=-1
  1. Q X_U_Y_U_SDXX_U_$G(MSG)
  1. ;
  1. CK1(CANDTTM,DFN,SDIV) ;
  1. N SDX,SD1,CANDATE,CANDATELOOP,SDQUIT,STATUS,CANDATE
  1. S SDQUIT=0
  1. S (CANDATELOOP,CANDATE)=$P(CANDTTM,".")
  1. F S CANDATELOOP=$O(^DPT(DFN,"S",CANDATELOOP)) Q:'CANDATELOOP!(CANDATELOOP'=CANDATE) D
  1. .S STATUS=$$GET1^DIQ(2.98,CANDATELOOP_","_DFN_",",3,"I")
  1. .I STATUS'["C",STATUS'["N" S SDQUIT=1
  1. Q:SDQUIT
  1. F SD1=2,4 I $D(^SC("AAS",CANDTTM,CANDATE,DFN)) S SDQUIT=1 Q:SDQUIT
  1. I $D(^SCE(+$$EXAE^SDOE(DFN,CANDATE,CANDATE),0)) S SDQUIT=1 Q:SDQUIT
  1. ; future - try to locate index for the below line to properly kill it with fileman
  1. K ^DPT("ASDPSD","B",SDIV,CANDATE,DFN)
  1. Q
  1. ;
  1. EVT(DFN,SDTTM,SDSC,SDPL,SDCNHDL) ; -- separate tag if need to NEW vars
  1. ; -- cancel event
  1. N FR,I,SDTIME,DH,SC
  1. D CANCEL^SDAMEVT(.SDATA,DFN,SDTTM,SDSC,SDPL,0,SDCNHDL) K SDATA,SDCNHDL
  1. Q
  1. ;