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

BTPWPEVO.m

Go to the documentation of this file.
  1. BTPWPEVO ;VNGT/HS/BEE-CMET Event Utilities ; 04 Feb 2009 2:55 PM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
  1. ;
  1. ROPEN(DATA,CMIEN,COMMENT) ;EP -- BTPW REOPEN CLOSED EVENT
  1. ; Input Parameters
  1. ; CMIEN - IENs of the file 90620 entry or entries to be reopened
  1. ; COMMENT - New Comment
  1. ;
  1. ; Output Value
  1. ; RESULT = Piece 1 - (1) - Successful/(-1) - Unsuccessful
  1. ; = Piece 2 - Error Message
  1. ;
  1. NEW UID,II,PIEN,PC
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWPEVO",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWPEVO D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^I00010CMET_IEN^T01024MSG^T00060EVENT^D00015EVENT_DATE^T00050PATIENT_NAME^T00030HRN"_$C(30)
  1. ;
  1. ;Make sure IEN is populated
  1. I $TR($G(CMIEN),$C(29))="" S II=II+1,@DATA@(II)="-1^^Event IEN is required^^^^"_$C(30) G DONE
  1. ;
  1. ;Loop through entries and close
  1. F PC=1:1:$L(CMIEN,$C(29)) S PIEN=$P(CMIEN,$C(29),PC) I PIEN]"" D REOP(PIEN,COMMENT)
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. REOP(PIEN,COMMENT) ;EP - Reopen Individual Record
  1. ;
  1. N STATE,LN,I,P,BTPUPD,ERROR,CMTVAR,COM,DTTM
  1. ;
  1. ;Make sure event exists
  1. I $$GET1^DIQ(90620,PIEN_",",".01","I")="" S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Could not find event corresponding to provided IEN")_$C(30) Q
  1. ;
  1. ;Make sure event is in a closed state
  1. S STATE=$$GET1^DIQ(90620,PIEN_",",1.01,"I")
  1. I STATE'="C" S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Event is not in a closed state")_$C(30) Q
  1. ;
  1. ;Set up comment for processing
  1. S COMMENT=$G(COMMENT,"")
  1. S LN=0 F I=1:1:$L(COMMENT,$C(13)_$C(10)) S P=$P(COMMENT,$C(13)_$C(10),I) S LN=LN+1,COM(LN)=P
  1. I '$D(COM(1)) S CMTVAR="@"
  1. E S CMTVAR="COM"
  1. ;
  1. S DTTM=$$NOW^XLFDT()
  1. S BTPUPD(90620,PIEN_",",1.01)="O"
  1. S BTPUPD(90620,PIEN_",",1.09)=DTTM
  1. S BTPUPD(90620,PIEN_",",1.1)=DUZ
  1. S BTPUPD(90620,PIEN_",",1.04)="@"
  1. S BTPUPD(90620,PIEN_",",1.08)="@"
  1. ;
  1. ;Save History
  1. D RLOG^BTPWHIST(.BTPUPD,DUZ,DTTM,"Event Reopen")
  1. ;
  1. ;Reopen event
  1. D FILE^DIE("","BTPUPD","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Unable to reopen event")_$C(30) Q
  1. ;
  1. ;Save Comment History
  1. D WLOG^BTPWHIST(.COM,"90620:3",PIEN_",",DUZ,DTTM,"Event Reopened")
  1. ;
  1. ;Save comments
  1. D WP^DIE(90620,PIEN_",",3,"",CMTVAR)
  1. ;
  1. S II=II+1,@DATA@(II)="1^"_PIEN_"^^^^^"_$C(30)
  1. ;
  1. Q
  1. ;
  1. CLOSE(DATA,CMIEN,CREASON,COMMENT) ;EP -- BTPW CLOSE EVENT
  1. ; Input Parameters
  1. ; CMIEN - IENs of the file 90620 entry or entries to be closed
  1. ; CREASON - Close Reason
  1. ; COMMENT - New Comment
  1. ;
  1. ; Output Value
  1. ; RESULT = Piece 1 - (1) - Successful/(-1) - Unsuccessful
  1. ; = Piece 2 - Error Message
  1. ;
  1. NEW UID,II,ERROR,PC,PIEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWPEVO",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWPEVO D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^I00010CMET_IEN^T01024MSG^T00060EVENT^D00015EVENT_DATE^T00050PATIENT_NAME^T00030HRN"_$C(30)
  1. ;
  1. ;Make sure IEN is populated
  1. I $TR($G(CMIEN),$C(29))="" S II=II+1,@DATA@(II)="-1^^Event IEN is required^^^^"_$C(30) G XDONE
  1. ;
  1. ;Loop through entries and close
  1. F PC=1:1:$L(CMIEN,$C(29)) S PIEN=$P(CMIEN,$C(29),PC) I PIEN]"" D CLS(PIEN,CREASON,COMMENT)
  1. ;
  1. XDONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. CLS(PIEN,CREASON,COMMENT) ;EP - Close individual record
  1. N STATE,LN,I,P,CMTVAR,COM,BTPUPD,DTTM
  1. ;
  1. ;Make sure event exists
  1. I $$GET1^DIQ(90620,PIEN_",",".01","I")="" S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Could not find event corresponding to provided IEN")_$C(30) Q
  1. ;
  1. ;Make sure event is not in a closed state
  1. S STATE=$$GET1^DIQ(90620,PIEN_",",1.01,"I")
  1. I STATE="C" S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Event is already in a closed state")_$C(30) Q
  1. ;
  1. ;Check for valid Close Reason
  1. I CREASON]"",CREASON'=1,CREASON'=2,CREASON'=3,CREASON'=4 S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Invalid Close Reason")_$C(30) Q
  1. S:CREASON="" CREASON="@" ;If blank, clear out what is in field
  1. ;
  1. ;Set up comment for processing
  1. S COMMENT=$G(COMMENT,"")
  1. S LN=0 F I=1:1:$L(COMMENT,$C(13)_$C(10)) S P=$P(COMMENT,$C(13)_$C(10),I) S LN=LN+1,COM(LN)=P
  1. I '$D(COM(1)) S CMTVAR="@"
  1. E S CMTVAR="COM"
  1. ;
  1. S DTTM=$$NOW^XLFDT()
  1. S BTPUPD(90620,PIEN_",",1.01)="C"
  1. S BTPUPD(90620,PIEN_",",1.09)=DTTM
  1. S BTPUPD(90620,PIEN_",",1.1)=DUZ
  1. S BTPUPD(90620,PIEN_",",1.04)=CREASON
  1. S BTPUPD(90620,PIEN_",",1.08)="@"
  1. ;
  1. ;Save History
  1. D RLOG^BTPWHIST(.BTPUPD,DUZ,DTTM,"Event Closed")
  1. ;
  1. ;Close the event
  1. D FILE^DIE("","BTPUPD","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)=$$EMSG(PIEN,"Unable to close event")_$C(30) Q
  1. ;
  1. ;Save Comment History
  1. D WLOG^BTPWHIST(.COM,"90620:3",PIEN_",",DUZ,DTTM,"Event Close")
  1. ;
  1. ;Save comments
  1. D WP^DIE(90620,PIEN_",",3,"",CMTVAR)
  1. ;
  1. S II=II+1,@DATA@(II)="1^"_PIEN_"^^^^^"_$C(30)
  1. ;
  1. Q
  1. ;
  1. EMSG(PIEN,MSG) ; EP - Compose Return Error Message
  1. N RET,TDATA,DFN,PNAM,PROC,PROCNM,PRCDT,HRN
  1. S TDATA=$G(^BTPWP(PIEN,0)),DFN=$P(TDATA,U,2),PNAM=$P(^DPT(DFN,0),"^",1)
  1. S PROC=$P(TDATA,U,1),PROCNM=$P(^BTPW(90621,PROC,0),U,1) ;Procedure/Name (Event)
  1. S PRCDT=$$FMTE^BQIUL1($P(TDATA,U,3)) ;Event Date
  1. S HRN=$TR($$HRNL^BQIULPT(DFN),";",$C(10)) ;HRN
  1. S RET="-1"_U_PIEN_U_MSG_U_PROCNM_U_PRCDT_U_PNAM_U_HRN
  1. Q RET
  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. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. EIE(DATA,CMIEN,TYPE,IENS) ;EP -- BTPW EVENT ENT IN ERROR
  1. ; Input Parameters
  1. ; CMIEN - IENs of the file 90620 entry
  1. ; TYPE - Type of Entry - 'Finding'
  1. ; 'Follow-up'
  1. ; 'Notification'
  1. ; IENS (OPT) - Specific entries to mark entered in error
  1. ;
  1. ; Output Value
  1. ; RESULT = Piece 1 - (1) - Successful/(-1) - Unsuccessful
  1. ; = Piece 2 - Error Message
  1. ;
  1. NEW UID,II,PIEN,DTTM
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWPEVO",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWPEVO D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^I00010IEN^T01024MSG"_$C(30)
  1. S IENS=$G(IENS)
  1. ;
  1. ;Make sure IEN is populated
  1. I $TR($G(CMIEN),$C(29))="" S II=II+1,@DATA@(II)="-1^^Event IEN is required"_$C(30) G EDONE
  1. ;
  1. ;Make sure TYPE is defined
  1. I TYPE'="Finding",TYPE'="Follow-up",TYPE'="Notification" S II=II+1,@DATA@(II)="-1^^Event TYPE is required"_$C(30) G EDONE
  1. ;
  1. ;Pull current date/time
  1. S DTTM=$$NOW^XLFDT()
  1. ;
  1. ;Findings
  1. I TYPE="Finding" D G EDONE
  1. . N IEN
  1. . ;
  1. . ;Process Individual Findings
  1. . I IENS]"" D Q
  1. .. N I
  1. .. F I=1:1:$L(IENS,$C(29)) S IEN=$P(IENS,$C(29),I) D EFND(CMIEN,IEN,DTTM)
  1. . ;
  1. . ;Process All Findings
  1. . S IEN=0 F S IEN=$O(^BTPWP(CMIEN,10,IEN)) Q:'IEN D EFND(CMIEN,IEN,DTTM)
  1. ;
  1. ;Follow-ups
  1. I TYPE="Follow-up" D G EDONE
  1. . N IEN
  1. . ;
  1. . ;Process Individual Follow-ups
  1. . I IENS]"" D Q
  1. .. N I
  1. .. F I=1:1:$L(IENS,$C(29)) S IEN=$P(IENS,$C(29),I) D EFOL(CMIEN,IEN,DTTM)
  1. . ;
  1. . ;Process All Follow-ups
  1. . S IEN=0 F S IEN=$O(^BTPWP(CMIEN,10,IEN)) Q:'IEN D EFOL(CMIEN,IEN,DTTM)
  1. ;
  1. ;Notifications
  1. I TYPE="Notification" D G EDONE
  1. . N IEN
  1. . ;
  1. . ;Process Individual Notifications
  1. . I IENS]"" D Q
  1. .. N I
  1. .. F I=1:1:$L(IENS,$C(29)) S IEN=$P(IENS,$C(29),I) D ENOT(CMIEN,IEN,DTTM)
  1. . ;
  1. . ;Process All Notifications
  1. . S IEN=0 F S IEN=$O(^BTPWP(CMIEN,10,IEN)) Q:'IEN D ENOT(CMIEN,IEN,DTTM)
  1. ;
  1. EDONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ;Mark Findings as ENTERED IN ERROR
  1. EFND(CMIEN,IEN,DTTM) ;
  1. N BTPWDTA,DA,IENS,ERROR
  1. ;
  1. S DA(1)=CMIEN,DA=IEN,IENS=$$IENS^DILF(.DA)
  1. S BTPWDTA(90620.01,IENS,.08)="Y"
  1. S BTPWDTA(90620.01,IENS,.04)=DTTM
  1. S BTPWDTA(90620.01,IENS,.05)=DUZ
  1. S BTPWDTA(90620,CMIEN_",",1.09)=DTTM
  1. S BTPWDTA(90620,CMIEN_",",1.1)=DUZ
  1. ;
  1. ;Save History
  1. D RLOG^BTPWHIST(.BTPWDTA,DUZ,DTTM,"Entered In Error")
  1. ;
  1. D FILE^DIE("","BTPWDTA","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1^"_IEN_"^Could not set finding to ENTERED IN ERROR"_$C(30) G XEFND
  1. S II=II+1,@DATA@(II)="1^"_IEN_"^"_$C(30)
  1. ;
  1. XEFND Q
  1. ;
  1. ;Mark Follow-ups as ENTERED IN ERROR
  1. EFOL(CMIEN,IEN,DTTM) ;
  1. N BTPWDTA,DA,IENS,ERROR,FTIEN
  1. ;
  1. S DA(1)=CMIEN,DA=IEN,IENS=$$IENS^DILF(.DA)
  1. S BTPWDTA(90620.012,IENS,.07)="Y"
  1. S BTPWDTA(90620.012,IENS,.03)=DTTM
  1. S BTPWDTA(90620.012,IENS,.04)=DUZ
  1. S BTPWDTA(90620,CMIEN_",",1.09)=DTTM
  1. S BTPWDTA(90620,CMIEN_",",1.1)=DUZ
  1. ;
  1. ;Save History
  1. D RLOG^BTPWHIST(.BTPWDTA,DUZ,DTTM,"Entered In Error")
  1. ;
  1. D FILE^DIE("","BTPWDTA","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1^"_IEN_"^Could not set Follow-up to ENTERED IN ERROR"_$C(30) G XEFND
  1. S II=II+1,@DATA@(II)="1^"_IEN_"^"_$C(30)
  1. ;
  1. ;Process Future Record
  1. ;
  1. ;Delete if still in a FUTURE state
  1. S FTIEN=$$GET1^DIQ(90620.012,IENS,.06,"I") Q:FTIEN=""
  1. I $$GET1^DIQ(90620,FTIEN_",",1.01,"I")="F" D Q
  1. . N DA,DIK
  1. . S DA=FTIEN,DIK="^BTPWP(" D ^DIK Q
  1. ;
  1. ;Future record no longer in FUTURE state, remove pointer
  1. N BTPWUPD
  1. S BTPWUPD(90620,FTIEN_",",.11)="@"
  1. D FILE^DIE("","BTPWUPD","ERROR")
  1. ;
  1. Q
  1. ;
  1. ;Mark Notifications as ENTERED IN ERROR
  1. ENOT(CMIEN,IEN,DTTM) ;
  1. N BTPWDTA,DA,IENS,ERROR
  1. ;
  1. S DA(1)=CMIEN,DA=IEN,IENS=$$IENS^DILF(.DA)
  1. S BTPWDTA(90620.011,IENS,.09)="Y"
  1. S BTPWDTA(90620.011,IENS,.03)=DTTM
  1. S BTPWDTA(90620.011,IENS,.04)=DUZ
  1. S BTPWDTA(90620,CMIEN_",",1.09)=DTTM
  1. S BTPWDTA(90620,CMIEN_",",1.1)=DUZ
  1. ;
  1. ;Save History
  1. D RLOG^BTPWHIST(.BTPWDTA,DUZ,DTTM,"Entered In Error")
  1. ;
  1. D FILE^DIE("","BTPWDTA","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1^"_IEN_"^Could not set Notification to ENTERED IN ERROR"_$C(30) G XEFND
  1. S II=II+1,@DATA@(II)="1^"_IEN_"^"_$C(30)
  1. ;
  1. Q