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

BTPWSCHD.m

Go to the documentation of this file.
  1. BTPWSCHD ;VNGT/HS/ALA-CMET Scheduler ; 19 Jun 2009 9:40 AM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
  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,BTPWDA,ECTIME,EFREQ,BTPWDA
  1. S BTPWDA=1,QFL=0
  1. S ECTIME=$$GET1^DIQ(90628,BTPWDA_",",.05,"E"),EFREQ=$$GET1^DIQ(90628,BTPWDA_",",.04,"E")
  1. ;
  1. F BI=1:1 S OPT=$P($T(TSK+BI)," ;;",2,99) Q:OPT="" D Q:'QFL
  1. . S OPTION=$P(OPT,U,1),FREQ=$P(OPT,U,2)
  1. . I EFREQ'="",EFREQ'=FREQ S FREQ=EFREQ
  1. . I '$$GET1^DIQ(90628,BTPWDA_",",.03,"I") Q
  1. . S QFL=1
  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 ECTIME'="",ECTIME'=CTIME S CTIME=ECTIME
  1. .. I CDATE>DT Q
  1. .. S DIFF=$$FMDIFF^XLFDT(DT,CDATE,1)
  1. .. I DIFF'>14 Q
  1. .. S SDOW=$P(OPT,U,3) I SDOW'="" D
  1. ... S SAT=$$SAT^BQISCHED(DT)
  1. ... S SUN=$$FMADD^XLFDT(SAT,1)
  1. ... I SDOW="SAT" S SDATM=SAT_"."_CTIME
  1. ... I SDOW="SUN" S SDATM=SUN_"."_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^BQISCHED(DT)
  1. .. S SUN=$$FMADD^XLFDT(SAT,1)
  1. . ;S TIME=$P(OPT,U,4),TIME=$$STRIP^BQIUL1(TIME,"0")
  1. . S TIME=ECTIME,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. . D RESCH^XUTMOPT(OPTION,SDATM,"",FREQ,"L",.ERROR)
  1. . K SDOW,SAT,SUN,TIME
  1. Q
  1. ;
  1. GET(DATA,FAKE) ;EP -- BTPW GET SITE PARAMETERS
  1. ; Get specific CMET system parameters from the Site Parameter file
  1. NEW UID,II,IEN,JOB,FREQ,START,DDATA
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWSCHD",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00003BTPWSJOB^T00004BTPWQFRQ^T00004BTPWQSTT^T00035WHO^D00030WHEN"_$C(30)
  1. ;
  1. S IEN=$O(^BTPW(90628,0)) I IEN="" S BMXSEC="No site defined" Q
  1. S DDATA=$G(^BTPW(90628,IEN,0))
  1. S JOB=$P(DDATA,U,3)
  1. S FREQ=$P(DDATA,U,4)
  1. S START=$P(DDATA,U,5)
  1. S WHO=$$GET1^DIQ(90628,IEN_",",.09,"E")
  1. S WHEN=$$GET1^DIQ(90628,IEN_",",.1,"I"),WHEN=$$FMTE^BQIUL1(WHEN)
  1. S II=II+1,@DATA@(II)=JOB_U_FREQ_U_START_U_WHO_U_WHEN_$C(30)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. EDUE(DATA,FAKE) ; EP -- BTPW GET EVENT DUE PARAMS
  1. ; Retrieves the information about the default due dates
  1. NEW UID,II,IEN,DDATA,ERDUE,ERWHEN,ERWHO,EFDUE,EFWHEN,EFWHO,ENDUE,ENWHEN,ENWHO
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWEDUE",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00004BTPWERDU^D00030ERWHEN^T00035ERWHO^T00004BTPWEFDU^D00030EFWHEN^"
  1. S @DATA@(II)=@DATA@(II)_"T00035EFWHO^T00004BTPWENDU^D00030ENWHEN^T00035ENWHO"_$C(30)
  1. ;
  1. S IEN=$O(^BTPW(90628,0))
  1. S DDATA=$G(^BTPW(90628,IEN,1))
  1. S ERDUE=$P(DDATA,U,1),ERWHEN=$P(DDATA,U,4),ERWHEN=$$FMTE^BQIUL1(ERWHEN)
  1. S ERWHO=$$GET1^DIQ(90628,IEN_",",1.05,"E")
  1. S EFDUE=$P(DDATA,U,2),EFWHEN=$P(DDATA,U,6),EFWHEN=$$FMTE^BQIUL1(EFWHEN)
  1. S EFWHO=$$GET1^DIQ(90628,IEN_",",1.07,"E")
  1. S ENDUE=$P(DDATA,U,3),ENWHEN=$P(DDATA,U,8),ENWHEN=$$FMTE^BQIUL1(ENWHEN)
  1. S ENWHO=$$GET1^DIQ(90628,IEN_",",1.09,"E")
  1. ;
  1. S II=II+1,@DATA@(II)=ERDUE_U_ERWHEN_U_ERWHO_U_EFDUE_U_EFWHEN_U_EFWHO_U_ENDUE_U_ENWHEN_U_ENWHO_$C(30)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. UDUE(DATA,PARMS) ;EP -- BTPW UPDATE EVENT DUE
  1. ; Updates the default event due date frequency
  1. NEW UID,II,BN,LIST,PDATA,NAME,VALUE,VFIEN,FILE,PTYP,CHIEN,FIELD,EXEC
  1. NEW BQIDATA,ERROR,RESULT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWUDUE",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T001024ERROR"_$C(30)
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","CMET Event Due",""))
  1. I VFIEN="" S BMXSEC="RPC Call Failed: CMET Event Due Definition does not exist." Q
  1. S FILE=$P(^BQI(90506.3,VFIEN,0),U,2),BTPWDA=1
  1. D GEN
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. FOL(DATA,FAKE) ;EP -- BTPW GET FOLLOWUP PARAMETERS
  1. ; Returns the values for the special followup defaults
  1. NEW UID,II,IEN,PRCN,PN,NOT,PDATA,PDATA1,WHO,WHEN,EVT,FIND
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWFOLP",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ;S @DATA@(II)="I00010EVIEN^T00030EVNAME^T00030BTPWPINT^T00004BTPWPFRQ^T00030EVWHOM^D00030EVWHEN"_$C(30)
  1. S @DATA@(II)="I00010EVIEN^T00030EVNAME^T00004BTPWPFRQ^T00030EVWHOM^D00030EVWHEN^T00030EVNOT^T00065BTPNFIND"_$C(30)
  1. ;
  1. S IEN=$O(^BTPW(90628,0))
  1. S PN=0
  1. F S PN=$O(^BTPW(90628,IEN,2,PN)) Q:'PN D
  1. . S PDATA=^BTPW(90628,IEN,2,PN,0)
  1. . S PRCN=$P(PDATA,U,1),FREQ=$P(PDATA,U,2),WHO=$P(PDATA,U,3),WHEN=$P(PDATA,U,4),NOT=$P(PDATA,U,5)
  1. . S PDATA1=$G(^BTPW(90628,IEN,2,PN,1))
  1. . S FIND=$P(PDATA1,U,1)
  1. . I WHO'="" S WHO=$P(^VA(200,WHO,0),U,1)
  1. . S WHEN=$$FMTE^BQIUL1(WHEN)
  1. . S EVT=$P(^BTPW(90621,PRCN,0),U,1)
  1. . S II=II+1,@DATA@(II)=PRCN_U_EVT_U_FREQ_U_WHO_U_WHEN_U_NOT_U_FIND_$C(30)
  1. . ;D FOL^BTPWPTBL(.DATA,PRCN)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. UFOL(DATA,EVIEN,PARMS) ;EP -- BTPW UPDATE FOLLOWUP PARAMS
  1. ; Updates the default event due date frequency
  1. NEW UID,II,BN,LIST,PDATA,NAME,VALUE,VFIEN,FILE,PTYP,CHIEN,FIELD,EXEC
  1. NEW BQIDATA,ERROR,RESULT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWUFOL",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T001024ERROR"_$C(30)
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","CMET Event Followups",""))
  1. I VFIEN="" S BMXSEC="RPC Call Failed: CMET Event Followups Definition does not exist." Q
  1. S FILE=$P(^BQI(90506.3,VFIEN,0),U,2)
  1. S BTPWDA=$O(^BTPW(90628,1,2,"B",EVIEN,"")) I BTPWDA="" S BMXSEC="RPC Call Failed: Event does not exist." Q
  1. NEW DA,IENS
  1. S DA(1)=1,DA=BTPWDA,IENS=$$IENS^DILF(.DA),BTPWDA=IENS
  1. D GEN
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  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. UPD(DATA,PARMS) ; EP - BTPW UPDATE SITE PARAMETERS
  1. NEW UID,II,BN,LIST,PDATA,NAME,VALUE,VFIEN,FILE,PTYP,CHIEN,FIELD,EXEC
  1. NEW BQIDATA,ERROR,RESULT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWUPD",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T001024ERROR"_$C(30)
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","CMET Site Parameters",""))
  1. I VFIEN="" S BMXSEC="RPC Call Failed: CMET Site Parameters Definition does not exist." Q
  1. S FILE=$P(^BQI(90506.3,VFIEN,0),U,2),BTPWDA=1
  1. D GEN
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . I VALUE="" S VALUE="@"
  1. . ;I VALUE="" Q
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . I PFIEN="" S BMXSEC=NAME_" not a valid parameter for this update" Q
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . I PTYP="D" S VALUE=$$DATE^BQIUL1(VALUE)
  1. . I PTYP="C" D
  1. .. S CHIEN=$O(^BQI(90506.3,VFIEN,10,PFIEN,5,"B",VALUE,"")) I CHIEN="" Q
  1. .. S VALUE=$P(^BQI(90506.3,VFIEN,10,PFIEN,5,CHIEN,0),U,2)
  1. . S @NAME=VALUE
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1)
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . I PFIEN="" S BMXSEC=NAME_" not a valid parameter for this update" Q
  1. . S FIELD=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,3)),U,1)
  1. . S EXEC=$G(^BQI(90506.3,VFIEN,10,PFIEN,7))
  1. . I EXEC'="" X EXEC Q
  1. . I FIELD="" Q
  1. . S BTPWDTA(FILE,BTPWDA_",",FIELD)=@NAME
  1. ;
  1. S RESULT=1_U
  1. I $D(ERROR)>0 S RESULT=-1_U
  1. K ERROR
  1. I $D(BQIDATA)>0 D FILE^DIE("","BTPWDTA","ERROR")
  1. I $D(ERROR)>0 S RESULT=-1_U_$G(ERROR("DIERR",1,"TEXT",1))
  1. I $P(RESULT,U,1)'=-1 S RESULT=1_U
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. GEN ; General update code
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . I VALUE="" S VALUE="@"
  1. . ;I VALUE="" Q
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . I PFIEN="" S BMXSEC=NAME_" not a valid parameter for this update" Q
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . I PTYP="D" S VALUE=$$DATE^BQIUL1(VALUE)
  1. . I PTYP="C" D
  1. .. S CHIEN=$O(^BQI(90506.3,VFIEN,10,PFIEN,5,"B",VALUE,"")) I CHIEN="" Q
  1. .. S VALUE=$P(^BQI(90506.3,VFIEN,10,PFIEN,5,CHIEN,0),U,2)
  1. . S @NAME=VALUE
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1)
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . I PFIEN="" S BMXSEC=NAME_" not a valid parameter for this update" Q
  1. . S FIELD=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,3)),U,1)
  1. . S EXEC=$G(^BQI(90506.3,VFIEN,10,PFIEN,7))
  1. . I EXEC'="" X EXEC Q
  1. . I FIELD="" Q
  1. . I '$G(IENS) S IENS=BTPWDA_","
  1. . S BTPWDTA(FILE,IENS,FIELD)=@NAME
  1. ;
  1. S RESULT=1_U
  1. I $D(ERROR)>0 S RESULT=-1_U
  1. K ERROR
  1. I $D(BTPWDTA)>0 D FILE^DIE("","BTPWDTA","ERROR")
  1. I $D(ERROR)>0 S RESULT=-1_U_$G(ERROR("DIERR",1,"TEXT",1))
  1. I $P(RESULT,U,1)'=-1 S RESULT=1_U
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. Q
  1. ;
  1. NORM(DATA,PRCN) ; EP -- BTPW GET NORMAL FINDINGS
  1. NEW UID,II
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWNORM",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWSCHD D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="I00010FNIEN^T00065BTPNFIND"_$C(30)
  1. S FN=0
  1. F S FN=$O(^BTPW(90621,PRCN,6,FN)) Q:'FN D
  1. . I $P(^BTPW(90621,PRCN,6,FN,0),U,2)'="N" Q
  1. . S IEN=$P(^BTPW(90621,PRCN,6,FN,0),U,1)
  1. . S II=II+1,@DATA@(II)=IEN_U_$$GET1^DIQ(90620.9,IEN_",",.01,"E")_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. ;
  1. Q
  1. ;
  1. TSK ; TASK STRUCTURE - OPTION^FREQUENCY^DOW^TIME
  1. ;;BTPW NIGHTLY BACKGROUND^1D^^0130