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

BQISCHED.m

Go to the documentation of this file.
  1. BQISCHED ;PRXM/HC/ALA - Set scheduled tasks ; 22 Feb 2016 7:27 AM
  1. ;;2.7;ICARE MANAGEMENT SYSTEM;**1**;Dec 19, 2017;Build 12
  1. ;
  1. EN ; Entry point
  1. NEW DR,DIE,DA,DIC,DLAYGO,BI,FREQ,I,OPT,OPTN,OPTION,SAT,SUN,SDATM,SDOW,TIME,X
  1. NEW DIFROM,CIEN,CDATM,CDATE,CTIME,DIFF,ERROR,Y
  1. F BI=1:1 S OPT=$P($T(TSK+BI)," ;;",2,99) Q:OPT="" D
  1. . S OPTION=$P(OPT,U,1),FREQ=$P(OPT,U,2)
  1. . I OPT["BQI UPDATE MEAN USE",'$$PATCH^XPDUTL("BJPC*2.0*6") Q
  1. . I OPT["BQI UPDATE MU CQM",'$$PATCH^XPDUTL("BGP*11.0*2") Q
  1. . S OPTN=$$FIND(OPTION) Q:OPTN'>0
  1. . I $O(^DIC(19.2,"B",OPTN,""))'="" D Q
  1. .. S CIEN=$O(^DIC(19.2,"B",OPTN,""))
  1. .. S CDATM=$P(^DIC(19.2,CIEN,0),U,2)
  1. .. S CDATE=$P(CDATM,".",1),CTIME=$P(CDATM,".",2)
  1. .. I CDATE>DT Q
  1. .. S DIFF=$$FMDIFF^XLFDT(DT,CDATE,1)
  1. .. S SDOW=$P(OPT,U,3)
  1. .. ; If day of week is defined and the difference between today
  1. .. ; and the time scheduled to run is not greater than 14 days, quit
  1. .. I SDOW'="",DIFF'>14 Q
  1. .. I SDOW="",DIFF'>2 Q
  1. .. S SAT=$$SAT(DT)
  1. .. S SUN=$$FMADD^XLFDT(SAT,1)
  1. .. S FRI=$$FMADD^XLFDT(SAT,-1)
  1. .. I SDOW="" S SDATM=$$FMADD^XLFDT(DT,1)_"."_CTIME
  1. .. I SDOW="SAT" S SDATM=SAT_"."_CTIME
  1. .. I SDOW="SUN" S SDATM=SUN_"."_CTIME
  1. .. I SDOW="FRI" S SDATM=FRI_"."_CTIME
  1. .. D RESCH^XUTMOPT(OPTION,SDATM,"",FREQ,"L",.ERROR)
  1. . ;
  1. . S OPTION=$P(OPT,U,1)
  1. . S FREQ=$P(OPT,U,2)
  1. . S SDOW=$P(OPT,U,3) I SDOW'="" D
  1. .. S SAT=$$SAT(DT)
  1. .. S SUN=$$FMADD^XLFDT(SAT,1)
  1. .. S FRI=$$FMADD^XLFDT(SAT,-1)
  1. . S TIME=$P(OPT,U,4),TIME=$$STRIP^BQIUL1(TIME,"0")
  1. . I SDOW="" S SDATM=$$FMADD^XLFDT(DT,1)_"."_TIME
  1. . I SDOW="SAT" S SDATM=SAT_"."_TIME
  1. . I SDOW="SUN" S SDATM=SUN_"."_TIME
  1. . I SDOW="FRI" S SDATM=FRI_"."_TIME
  1. . D RESCH^XUTMOPT(OPTION,SDATM,"",FREQ,"L",.ERROR)
  1. . S OPTN=$$FIND(OPTION) Q:OPTN'>0
  1. . NEW DA,DIC,X,DLAYGO,Y
  1. . S DA=$O(^DIC(19.2,"B",OPTN,"")) I DA="" D
  1. .. S X=OPTION,DIC(0)="NL",DIC="^DIC(19.2,",DLAYGO=19.2
  1. .. D ^DIC
  1. .. S DA=+Y
  1. . ;S BQIUPD(19.2,DA_",",9)="P"
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. . K SDOW,SAT,SUN,TIME
  1. K BQIUPD
  1. Q
  1. ;
  1. FIND(X,F) ;EP - Find an option
  1. S X=$O(^DIC(19,"B",X,0)) I X'>0 Q -1
  1. Q X
  1. ;
  1. SAT(RDATE) ;EP - Find the next Saturday date from the passed in date
  1. NEW CDOW,FDATE,NDAYS
  1. S CDOW=$$DOW^XLFDT(RDATE,1),NDAYS=6-CDOW
  1. I NDAYS=0 S NDAYS=7
  1. S FDATE=$$FMADD^XLFDT(RDATE,NDAYS)
  1. Q FDATE
  1. ;
  1. ;
  1. TSK ; TASK STRUCTURE - OPTION^FREQUENCY^DOW^TIME
  1. ;;BQI NIGHTLY BACKGROUND^1D^^2000
  1. ;;BQI UPDATE ALL REMINDERS^7D^FRI^1900
  1. ;;BQI UPDATE TASK^7D^SAT^0200
  1. ;;BQI UPDATE TREATMENT^7D^SUN^0900
  1. ;;BQI UPDATE CARE MGMT^7D^SAT^0600