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

BTPWETRG.m

Go to the documentation of this file.
  1. BTPWETRG ;VNGT/HS/BEE-Event Triggers ; 20 Jan 2010 10:00 AM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
  1. ;
  1. EN(DATA,BTPWSTGE) ;EP -- BTPW EVENT TRIGGER
  1. NEW UID,II,SOURCE,TYPE,ABLE,HELP,VALUE,%
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00030PROP_VALUE^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. I $E(BTPWSTGE,1)="O" S SOURCE="BTPWPCLR",TYPE="C",ABLE="N",HELP="",VALUE="" D UP
  1. I $E(BTPWSTGE,1)="C" S SOURCE="BTPWPCLR",TYPE="C",ABLE="Y",HELP="",VALUE="" D UP
  1. ;
  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. UP ; Update
  1. S II=II+1,@DATA@(II)=SOURCE_U_TYPE_U_VALUE_U_ABLE_U_HELP_$C(30)
  1. Q
  1. ;
  1. FND(DATA,CMIEN) ;EP -- BTPW FIND EVENT TRIG
  1. ;
  1. ; *Initial Trigger for Findings Dialog Box
  1. ;
  1. NEW UID,II,PRCN,FN,VALUE,SOURCE,TYPE,ABLE,HELP,IEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. S PRCN=$P(^BTPWP(CMIEN,0),U,1)
  1. S FN=0,VALUE="",SOURCE="BTPWPFND",TYPE="T",ABLE="Y",HELP=""
  1. F S FN=$O(^BTPW(90621,PRCN,6,FN)) Q:'FN D
  1. . S IEN=$P(^BTPW(90621,PRCN,6,FN,0),U,1)
  1. . S VALUE=VALUE_IEN_$C(29)_$$GET1^DIQ(90620.9,IEN_",",.01,"E")_$C(28)
  1. S VALUE=$$TKO^BQIUL1(VALUE,$C(28)) D UP
  1. ;
  1. S SOURCE="CMIEN",VALUE=CMIEN,TYPE="N",ABLE="N",HELP="" D UP
  1. S SOURCE="BTPWFDTM",VALUE=$$FMTE^BQIUL1(DT),TYPE="D",ABLE="Y",HELP="" D UP
  1. D NOW^%DTC
  1. S SOURCE="BTPWLMDT",VALUE=$$FMTE^BQIUL1(%),TYPE="D",ABLE="N",HELP="" D UP
  1. S SOURCE="BTPWLMBY",VALUE=DUZ,TYPE="T",ABLE="N",HELP="" D UP
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. INFOL(DATA,CMIEN) ;EP -- BTPW FOL EVENT TRIG
  1. ;
  1. ; *Initial Trigger for Follow-up Dialog Box
  1. ;
  1. NEW UID,II,PRCN,CAT,FN,VALUE,SOURCE,TYPE,ABLE,HELP
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. ;
  1. S PRCN=$P(^BTPWP(CMIEN,0),U,1)
  1. S CAT=$P(^BTPW(90621,PRCN,0),U,10)
  1. S FN=0,VALUE="",SOURCE="BTPWPFOL",TYPE="T",ABLE="Y",HELP=""
  1. F S FN=$O(^BTPW(90621,"AD",CAT,FN)) Q:'FN S VALUE=VALUE_FN_$C(29)_$P(^BTPW(90621,FN,0),U,1)_$C(28)
  1. S VALUE=$$TKO^BQIUL1(VALUE,$C(28)) D UP
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. FIN(DATA,CMIEN,BTPWPFND) ;EP -- BTPW EVENT FIND TRIG
  1. ;
  1. ; Called from the Finding field in the Finding Dialog Box
  1. ;
  1. NEW UID,II,BTPWPRC,SOURCE,TYPE,ABLE,HELP,IEN,VALUE
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. S BTPWPRC=$P(^BTPWP(CMIEN,0),U,1)
  1. S IEN=$O(^BTPW(90621,BTPWPRC,6,"B",BTPWPFND,"")) Q:IEN=""
  1. S VALUE=$P(^BTPW(90621,BTPWPRC,6,IEN,0),U,2),VALUE=VALUE_$C(28)_$$STC^BQIUL2(90621.06,.02,VALUE)
  1. S SOURCE="BTPWFNTR",TYPE="C",ABLE="",HELP="" D UP
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. FNFL(DATA,BTPWFLUN,CMIEN,BTPWFIND) ;EP -- BTPW EVENT FIND FOL TRIG
  1. NEW UID,II,SOURCE,TYPE,ABLE,HELP,VALUE,BTPFNDTM,BTPWPFND,BTPWFNTR,BTPFNCOM,BTPFLND,BTPEDTM,BTPEDBY
  1. ;
  1. ; *Called by Follow-up Needed Field (in the worksheet)
  1. ;
  1. NEW UID,II,SOURCE,TYPE,ABLE,HELP,VALUE,PRCN,CAT,FN,BQ
  1. NEW FNDDT,BTPFNDTM,BTPWPFND,BTPWFNTR,BTPFNCOM,BTPFLND,BTPEDTM,BTPEDBY
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWFNFL",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. ;
  1. ;Re-Assemble parameter list if in an array
  1. S BTPWFIND=$G(BTPWFIND,"")
  1. I BTPWFIND="" D
  1. . N LIST,BN
  1. . S LIST="",BN=""
  1. . F S BN=$O(BTPWFIND(BN)) Q:BN="" S LIST=LIST_BTPWFIND(BN)
  1. . K BTPWFIND
  1. . S BTPWFIND=LIST
  1. . K LIST
  1. ;
  1. ;Parse Parameters
  1. S (BTPFNDTM,BTPWPFND,BTPWFNTR,BTPFNCOM,BTPFLND,BTPEDTM,BTPEDBY)=""
  1. F BQ=1:1:$L(BTPWFIND,$C(28)) D
  1. . N PDATA,NAME,VALUE,BP,BV
  1. . S PDATA=$P(BTPWFIND,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1) I NAME=""!(NAME="CMIEN")!(NAME="EVIEN") Q
  1. . S VALUE=$P(PDATA,"=",2,99) Q:VALUE=""
  1. . F BP=1:1:$L(VALUE,$C(29)) S BV=$P(VALUE,$C(29),BP),@NAME=$G(@NAME)_$S(BP=1:"",1:$C(29))_BV
  1. ;
  1. ;Get earliest finding date
  1. S FNDDT=""
  1. I BTPFNDTM]"" D
  1. . N I,VAL,CVAL
  1. . S CVAL="" F I=1:1:$L(BTPFNDTM,$C(29)) S VAL=$$DATE^BQIUL1($P(BTPFNDTM,$C(29),I)) I VAL'="",(VAL<CVAL)!(CVAL="") S CVAL=VAL
  1. . S FNDDT=CVAL
  1. ;
  1. ;Calculate Follow-up Decision Due By
  1. S SOURCE="BTPWFDUE",TYPE="D",ABLE="N",HELP="",VALUE=""
  1. I BTPWFLUN["N" S ABLE="N",VALUE=""
  1. I BTPWFLUN["Y" D
  1. . N IEN
  1. . S ABLE="Y"
  1. . S IEN=$O(^BTPW(90628,0)) Q:IEN=""
  1. . S VALUE=$$GET1^DIQ(90628,IEN_",",1.02,"E") D SYS^BTPWPUTL
  1. . S:FNDDT="" FNDDT=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMADD^XLFDT(FNDDT,VALUE) S:VALUE<$$DATE^BQIUL1("T") VALUE=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMTE^BQIUL1(VALUE)
  1. ;
  1. D UP
  1. ;
  1. ;Enable/disable Follow-up Grid
  1. S SOURCE="BTPWFU",TYPE="M",ABLE="N",HELP="",VALUE=""
  1. I BTPWFLUN["Y" S ABLE="Y"
  1. D UP
  1. ;
  1. ;Populate Notification Due By
  1. I BTPWFLUN["N" D
  1. . N IEN,DUEDT
  1. . S SOURCE="BTPWNDUE",TYPE="D",HELP="",ABLE="Y",VALUE=""
  1. . S IEN=$O(^BTPW(90628,0)) Q:IEN=""
  1. . S VALUE=$$GET1^DIQ(90628,IEN_",",1.03,"E") D SYS^BTPWPUTL
  1. . S DUEDT=FNDDT
  1. . S:DUEDT="" DUEDT=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMADD^XLFDT(DUEDT,VALUE) S:VALUE<$$DATE^BQIUL1("T") VALUE=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMTE^BQIUL1(VALUE)
  1. . D UP
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. FOL(DATA,CMIEN,BTPFNDTM,BTPWFLUN,BTPWNDUE,BTPWFIND) ;EP -- BTPW EVENT FOL TRIGGER
  1. ;
  1. ; *Called by Finding Date field in Finding Dialog Box (after OK is entered)
  1. ;
  1. NEW UID,II,VALUE,BTPWFDUE,SOURCE,TYPE,ABLE,HELP
  1. NEW BTPFNDTM,BTPWPFND,BTPWFNTR,BTPFNCOM,BTPFLND,BTPEDTM,BTPEDBY,BQ,FNDDT,FOLND,BTPWFNER
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. ;
  1. ;Re-Assemble parameter list if in an array
  1. S BTPWFIND=$G(BTPWFIND,"")
  1. I BTPWFIND="" D
  1. . N LIST,BN
  1. . S LIST="",BN=""
  1. . F S BN=$O(BTPWFIND(BN)) Q:BN="" S LIST=LIST_BTPWFIND(BN)
  1. . K BTPWFIND
  1. . S BTPWFIND=LIST
  1. . K LIST
  1. ;
  1. ;Parse Parameters
  1. S (BTPFNDTM,BTPWPFND,BTPWFNTR,BTPFNCOM,BTPFLND,BTPEDTM,BTPEDBY,BTPWFNER)=""
  1. F BQ=1:1:$L(BTPWFIND,$C(28)) D
  1. . N PDATA,NAME,VALUE,BP,BV
  1. . S PDATA=$P(BTPWFIND,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1) I NAME=""!(NAME="CMIEN")!(NAME="EVIEN") Q
  1. . S VALUE=$P(PDATA,"=",2,99) Q:VALUE=""
  1. . F BP=1:1:$L(VALUE,$C(29)) S BV=$P(VALUE,$C(29),BP),@NAME=$G(@NAME)_$S(BP=1:"",1:$C(29))_BV
  1. ;
  1. ;Get earliest finding date
  1. S FNDDT=""
  1. I BTPFNDTM]"" D
  1. . N I,VAL,CVAL
  1. . S CVAL="" F I=1:1:$L(BTPFNDTM,$C(29)) I $P($G(BTPWFNER),$C(29),I)'="Y" S VAL=$$DATE^BQIUL1($P(BTPFNDTM,$C(29),I)) I VAL'="",(VAL<CVAL)!(CVAL="") S CVAL=VAL
  1. . S FNDDT=CVAL
  1. ;
  1. ;Get Followup Needed Values
  1. S FOLND=""
  1. I BTPFLND]"" D
  1. . N I,VAL,LAST
  1. . S LAST=$P(BTPFLND,$C(29),$L(BTPFLND,$C(29)))
  1. . I BTPWFLUN="N",LAST="N" S FOLND="N" Q ;Use Existing Value if new value is NO
  1. . I BTPWFLUN="Y" S FOLND="Y" Q
  1. . F I=1:1:$L(BTPFLND,$C(29)) I $P($G(BTPWFNER),$C(29),I)'="Y" S VAL=$P(BTPFLND,$C(29),I) S:VAL]"" FOLND=VAL I FOLND="Y" Q
  1. ;
  1. ;Enable/disable Follow-up Needed
  1. S SOURCE="BTPWFLUN",TYPE="C",HELP="",ABLE="N",VALUE=""
  1. I FNDDT]"" S ABLE="Y",VALUE=FOLND
  1. D UP
  1. ;
  1. ;Calculate Follow-up Decision Due By
  1. S SOURCE="BTPWFDUE",TYPE="D",ABLE="N",HELP="",VALUE=""
  1. I FOLND="N" S ABLE="N",VALUE=""
  1. I FOLND="Y" D
  1. . N IEN,DUEDT
  1. . S ABLE="Y"
  1. . S IEN=$O(^BTPW(90628,0)) Q:IEN=""
  1. . S VALUE=$$GET1^DIQ(90628,IEN_",",1.02,"E") D SYS^BTPWPUTL
  1. . S DUEDT=FNDDT
  1. . S:DUEDT="" DUEDT=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMADD^XLFDT(DUEDT,VALUE) S:VALUE<$$DATE^BQIUL1("T") VALUE=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMTE^BQIUL1(VALUE)
  1. D UP
  1. ;
  1. ;Enable/disable Follow-up Grid
  1. S SOURCE="BTPWFU",TYPE="M",ABLE="N",HELP="",VALUE=""
  1. I FOLND="Y" S ABLE="Y"
  1. D UP
  1. ;
  1. ;Enable/disable Notification Due By
  1. S SOURCE="BTPWNDUE",TYPE="D",HELP="",ABLE="N",VALUE=BTPWNDUE
  1. I FNDDT]"" D
  1. . S ABLE="Y"
  1. . I FOLND="N" D
  1. .. N IEN,DUEDT
  1. .. S IEN=$O(^BTPW(90628,0)) Q:IEN=""
  1. .. S VALUE=$$GET1^DIQ(90628,IEN_",",1.03,"E") D SYS^BTPWPUTL
  1. .. S DUEDT=FNDDT
  1. .. S:DUEDT="" DUEDT=$$DATE^BQIUL1("T")
  1. .. S VALUE=$$FMADD^XLFDT(DUEDT,VALUE) S:VALUE<$$DATE^BQIUL1("T") VALUE=$$DATE^BQIUL1("T")
  1. .. S VALUE=$$FMTE^BQIUL1(VALUE)
  1. D UP
  1. ;
  1. ;Enable/disable Notifications
  1. S SOURCE="BTPWNTY",TYPE="M",HELP="",ABLE="N",VALUE=""
  1. I FNDDT]"" S ABLE="Y"
  1. D UP
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. NOT(DATA,BTPFLDTM,BTPWFU) ; EP -- BTPW EVENT NOT TRIGGER
  1. NEW UID,II,VALUE,BTPWNDUE,SOURCE,TYPE,ABLE,HELP
  1. NEW BTPFLDTM,BTPWPFOL,BTPWPFLD,BTPEDBY,BTPEDTM,BTPWPFCM,FOLDT,BQ
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWETRG",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWETRG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00001ABLE_FLAG^T00200HELP_TEXT"_$C(30)
  1. ;
  1. ;Re-Assemble parameter list if in an array
  1. S BTPWFU=$G(BTPWFU,"")
  1. I BTPWFU="" D
  1. . N LIST,BN
  1. . S LIST="",BN=""
  1. . F S BN=$O(BTPWFU(BN)) Q:BN="" S LIST=LIST_BTPWFU(BN)
  1. . K BTPWFU
  1. . S BTPWFU=LIST
  1. . K LIST
  1. ;
  1. ;Parse Parameters
  1. S (BTPFLDTM,BTPWPFOL,BTPWPFLD,BTPEDBY,BTPEDTM,BTPWPFCM)=""
  1. F BQ=1:1:$L(BTPWFU,$C(28)) D
  1. . N PDATA,NAME,VALUE,BP,BV
  1. . S PDATA=$P(BTPWFU,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1) I NAME=""!(NAME="CMIEN")!(NAME="EVIEN") Q
  1. . S VALUE=$P(PDATA,"=",2,99) Q:VALUE=""
  1. . F BP=1:1:$L(VALUE,$C(29)) S BV=$P(VALUE,$C(29),BP),@NAME=$G(@NAME)_$S(BP=1:"",1:$C(29))_BV
  1. ;
  1. ;Get earliest follow-up creation date
  1. S FOLDT=""
  1. I BTPFLDTM]"" D
  1. . N I,VAL,CVAL
  1. . S CVAL="" F I=1:1:$L(BTPFLDTM,$C(29)) S VAL=$$DATE^BQIUL1($P(BTPFLDTM,$C(29),I)) I VAL'="",(VAL<CVAL)!(CVAL="") S CVAL=VAL
  1. . S FOLDT=CVAL
  1. ;
  1. ;Patient Notification Due Date
  1. S SOURCE="BTPWNDUE",TYPE="D",ABLE="N",HELP=""
  1. I FOLDT]"" D
  1. . S ABLE="Y"
  1. . N IEN,DUEDT
  1. . S IEN=$O(^BTPW(90628,0)) Q:IEN=""
  1. . S VALUE=$$GET1^DIQ(90628,IEN_",",1.03,"E") D SYS^BTPWPUTL
  1. . S DUEDT=FOLDT
  1. . S:DUEDT="" DUEDT=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMADD^XLFDT(DUEDT,VALUE) S:VALUE<$$DATE^BQIUL1("T") VALUE=$$DATE^BQIUL1("T")
  1. . S VALUE=$$FMTE^BQIUL1(VALUE)
  1. D UP
  1. ;
  1. ;Enable/disable Notifications
  1. S SOURCE="BTPWNTY",TYPE="M",HELP="",ABLE="N",VALUE=""
  1. I FOLDT]"" S ABLE="Y"
  1. D UP
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q