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

BEHOXQPC.m

Go to the documentation of this file.
  1. BEHOXQPC ;MSC/IND/DKM - PCC-related notifications ;28-Jan-2008 13:08;DKM
  1. ;;1.1;BEH COMPONENTS;**002003**;Mar 20, 2007
  1. ;=================================================================
  1. ; RPC: Generate a missing POV alert
  1. NOPOV(DATA,VSIT,PRI) ;EP
  1. N DFN,PRV
  1. S DATA=0,VSIT(0)=$G(^AUPNVSIT(+VSIT,0))
  1. S DFN=+$P(VSIT(0),U,5)
  1. I 'DFN S DATA="-1^Bad visit specifier" Q
  1. I $D(^AUPNVPOV("AD",VSIT)) S DATA="-2^Visit has POV" Q
  1. I '$D(^TIU(8925,"V",VSIT)) S DATA="-8^Visit has no note" Q
  1. S PRV=$$PRIPRV(VSIT)
  1. I PRV<0 S DATA=PRV Q
  1. D SEND(.DATA,"VPOV","Visit is missing a purpose of visit.",99001,VSIT,PRV,.PRI)
  1. Q
  1. ;EP - Returns true if POV notification is still valid
  1. VALIDPOV(AID) ;
  1. N VSIT,PRV,DEL,RET,PPRV
  1. Q:$E(AID,1,4)'="VPOV" 0
  1. S VSIT=+$P(AID,",",2),PRV=+$P(AID,",",3),PPRV=$$PRIPRV(VSIT)
  1. I 'VSIT S RET=0,DEL=1
  1. E I $D(^AUPNVPOV("AD",VSIT)) S RET=0,DEL=1
  1. E I '$D(^TIU(8925,"V",VSIT)) S RET=0,DEL=1
  1. E I PRV=PPRV!(PPRV<1) S RET=1,DEL=0
  1. E D
  1. .; If primary provider changed, forward to new primary provider
  1. .D SEND(,"VPOV","Visit is missing a purpose of visit.",99001,VSIT,PPRV)
  1. .S (RET,DEL)=1
  1. D:DEL BEHDEL^BEHOXQ(AID,1)
  1. Q RET
  1. ; RPC: Generate missing E&M code alert
  1. NOEMC(DATA,VSIT,PRI) ;EP
  1. N DFN,PRV,IEN,X
  1. S DATA=0,VSIT(0)=$G(^AUPNVSIT(+VSIT,0))
  1. S DFN=+$P(VSIT(0),U,5)
  1. I 'DFN S DATA="-1^Bad visit specifier" Q
  1. I '$D(^TIU(8925,"V",VSIT)) S DATA="-8^Visit has no note" Q
  1. S PRV=$$PRIPRV(VSIT)
  1. I PRV<0 S DATA=PRV Q
  1. S DATA=$$NEEDSEMC(VSIT,PRV)
  1. D:'DATA SEND(.DATA,"VEM","Visit is missing an E&M code.",99002,VSIT,PRV,.PRI)
  1. Q
  1. ;EP - Returns true if E&M notification is still valid
  1. VALIDEMC(AID) ;
  1. N VSIT
  1. Q:$E(AID,1,3)'="VEM" 0
  1. S VSIT=+$P(AID,",",2)
  1. I $D(^TIU(8925,"V",VSIT)),'$$NEEDSEMC(+$P(AID,",",2),+$P(AID,",",3)) Q 1
  1. D BEHDEL^BEHOXQ(AID,1)
  1. Q 0
  1. ; Returns 0 if E&M code required
  1. NEEDSEMC(VSIT,DUZ) ;
  1. N IEN,RTN,PAR,X
  1. S X=$G(^AUPNVSIT(VSIT,0))
  1. Q:"CTEDX"[$P(X,U,7) "-7^E&M code not required."
  1. S RTN=0,PAR="BEHOXQPC REQUIRES E&M CODE"
  1. F IEN=0:0 S IEN=$O(^AUPNVCPT("AD",VSIT,IEN)) Q:'IEN!RTN D
  1. .S X=+$G(^AUPNVCPT(IEN,0))
  1. .I X'<99200,X<99500 S RTN="-2^Visit has E&M code"
  1. Q:RTN RTN
  1. S:'$$GET^XPAR($$ENT^CIAVMRPC(PAR),PAR) RTN="-5^Provider does not require E&M code"
  1. Q RTN
  1. ; Send the alert
  1. SEND(DATA,AID,SUB,ORN,VSIT,PRV,PRI) ;
  1. N PAR,X
  1. I '$$ENABLED^BEHOXQ($G(ORN),PRV) S DATA="-6^Notification is disabled" Q
  1. S AID=AID_","_VSIT_","_PRV,X=$O(^XTV(8992,"AXQA",AID))
  1. I $P(X,";")=AID S DATA="-4^Notification exists" Q
  1. S PAR("LOC")="SEND",PAR("XQA,"_PRV)="",PAR("XQAID")=AID
  1. S PAR("XQADATA")="DFN="_DFN_"^PRI="_$G(PRI,3)_"^INF=0^VSIT="_VSIT
  1. S PAR("XQAMSG")=SUB
  1. D ENTRY^XQALGUI(,.PAR)
  1. S DATA="0^Notification was delivered"
  1. Q
  1. ; Get primary provider for a visit
  1. PRIPRV(VSIT) ;
  1. N PRV
  1. D GETPRV2^BEHOENCX(.PRV,VSIT,1)
  1. S PRV=$O(PRV(0))
  1. S:'PRV PRV="-3^No primary provider"
  1. Q PRV