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

BTPWPCLO.m

Go to the documentation of this file.
  1. BTPWPCLO ;VNGT/HS/ALA-Close Event ; 20 Oct 2009 3:46 PM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;**1**;Feb 07, 2011;Build 37
  1. ;
  1. ;
  1. VAL(DATA,CLIST) ;EP -- BTPW VALIDATE CLOSE EVENT
  1. ; Input
  1. ; CLIST - List of tracked items that are being closed
  1. ; Output
  1. ; RESULT - 1 is okay to proceed, -1 cannot proceed
  1. ; MSG - Message to display for either a 'W' or an 'O'
  1. ; HANDLER - 'W' is a warning message to be displayed, 'O' is an override
  1. ; CMET_IEN - Record that passed or failed.
  1. NEW UID,II,BQI,LIST,BN,ANSWR,MESG,RES,MSG,VAL,ANSWF,ANSWN,CMIEN,HNDLR
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWPCLO",UID))
  1. K @DATA
  1. S II=0,MSG=""
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWPCLO D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="I00010RESULT^T00100MSG^T00001HANDLER^I00010CMET_IEN"_$C(30)
  1. ;
  1. I $D(CLIST)>1 D
  1. . S LIST="",BN=""
  1. . F S BN=$O(CLIST(BN)) Q:BN="" S LIST=LIST_CLIST(BN)
  1. . K CLIST S CLIST=LIST
  1. I $G(CLIST)'="" D
  1. . F BQI=1:1 S CMIEN=$P(CLIST,$C(28),BQI) Q:CMIEN="" D
  1. .. S ANSWR=$$FND(CMIEN),MESG="",MSG="",HNDLR="" K VAL
  1. .. S RES=$P(ANSWR,U,1),MSG=$P(ANSWR,U,2),VAL(RES)=$G(VAL(RES))_MSG_"; "
  1. .. S ANSWF=$$FOL(CMIEN)
  1. .. S RES=$P(ANSWF,U,1),MSG=$P(ANSWF,U,2),VAL(RES)=$G(VAL(RES))_MSG_"; "
  1. .. S ANSWN=$$NOT(CMIEN)
  1. .. S RES=$P(ANSWN,U,1),MSG=$P(ANSWN,U,2),VAL(RES)=$G(VAL(RES))_MSG_"; "
  1. .. S RES=$O(VAL(""))
  1. .. I RES=-1 S MESG=$$TKO^BQIUL1(VAL(RES),"; "),HNDLR="O"
  1. .. S II=II+1,@DATA@(II)=RES_"^"_$G(MESG)_U_$G(HNDLR)_U_$G(CMIEN)_$C(30)
  1. ;
  1. DONE ;
  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. FND(CMIEN) ;EP - Findings complete?
  1. NEW FN,FNDATA,FND
  1. S (FN,FND)=0 F S FN=$O(^BTPWP(CMIEN,10,FN)) Q:'FN D Q:FND
  1. . I $$GET1^DIQ(90620.01,FN_","_CMIEN_",",".01","I")="" Q ;Bad Entry
  1. . I $$GET1^DIQ(90620.01,FN_","_CMIEN_",",".08","I")="Y" Q ;Entered-in-Error
  1. . S FND=1
  1. I FND=0 Q "-1"_U_"No findings found"
  1. Q "1^"
  1. ;
  1. FOL(CMIEN) ;EP - Followup complete?
  1. NEW FN,FOL,FNDATA
  1. ;
  1. ;First check if follow-up is needed
  1. S FN=$$GET1^DIQ(90620,CMIEN_",",1.11,"I") I FN="N" Q "1^"
  1. S (FN,FOL)=0 F S FN=$O(^BTPWP(CMIEN,12,FN)) Q:'FN D Q:FOL
  1. . I $$GET1^DIQ(90620.012,FN_","_CMIEN_",",".01","I")="" Q ;Bad Entry
  1. . I $$GET1^DIQ(90620.012,FN_","_CMIEN_",",".07","I")="Y" Q ;Entered-in-Error
  1. . S FOL=1
  1. I FOL=0 Q "-1"_U_"No followup found"
  1. Q "1^"
  1. ;
  1. NOT(CMIEN) ;EP - Notification complete?
  1. NEW FN,NOT,FNDATA
  1. S (FN,NOT)=0 F S FN=$O(^BTPWP(CMIEN,11,FN)) Q:'FN D Q:NOT
  1. . I $$GET1^DIQ(90620.01,FN_","_CMIEN_",",".01","I")="" Q ;Bad Entry
  1. . I $$GET1^DIQ(90620.01,FN_","_CMIEN_",",".09","I")="Y" Q ;Entered-in-Error
  1. . S NOT=1
  1. I NOT=0 Q "-1"_U_"No Notifications found"
  1. Q "1^"