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

IBTRED1.m

Go to the documentation of this file.
  1. IBTRED1 ;ALB/AAS - CLAIMS TRACKING EDIT ; 06-JUL-93
  1. ;;2.0;INTEGRATED BILLING;**458**;21-MAR-94;Build 4
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. % G ^IBTRE
  1. ;
  1. NX(IBTMPNM) ; -- edit next template
  1. N IBXX,VALMY,IBTRV,IBTRC
  1. D EN^VALM(IBTMPNM)
  1. I '$D(IBFASTXT) D BLD^IBTRED
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. EDIT(IBTEMP,BLD) ; -- edit entry point for claims tracking
  1. ; -- Input IBTEMP = template name or dr string
  1. ; BLD = any non-zero value if calling routine is doing own
  1. ; rebuild
  1. ;
  1. D FULL^VALM1 W !
  1. L +^IBT(356,+IBTRN):5 I '$T D LOCKED^IBTRCD1 G EDITQ
  1. D SAVE
  1. S DIE="^IBT(356,",DA=IBTRN
  1. S DR=IBTEMP
  1. D ^DIE K DA,DR,DIC,DIE
  1. D COMP
  1. I IBDIF=1 D UPDATE I '$G(BLD) D HDR^IBTRED,BLD^IBTRED
  1. L -^IBT(356,+IBTRN)
  1. EDITQ K ^TMP($J,"IBT")
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. SAVE ; -- Save the global before editing
  1. K ^TMP($J,"IBT")
  1. S ^TMP($J,"IBT",356,IBTRN,0)=$G(^IBT(356,IBTRN,0))
  1. S ^TMP($J,"IBT",356,IBTRN,1)=$G(^IBT(356,IBTRN,1))
  1. Q
  1. ;
  1. COMP ; -- Compare before editing with globals
  1. S IBDIF=0
  1. I $G(^IBT(356,IBTRN,0))'=$G(^TMP($J,"IBT",356,IBTRN,0)) S IBDIF=1
  1. I $G(^IBT(356,IBTRN,1))'=$G(^TMP($J,"IBT",356,IBTRN,1)) S IBDIF=1
  1. Q
  1. ;
  1. UPDATE ; -- enter date and user if editing has taken place
  1. ; entry locked by edit, locks not needed here
  1. S DIE="^IBT(356,",DA=IBTRN
  1. S DR="1.03///NOW;1.04////"_DUZ
  1. D ^DIE K DA,DR,DIC,DIE
  1. Q
  1. ;
  1. DICS(Y) ; -- called by input transform and screen logic for type of diagnois
  1. N IBY
  1. S IBY=0
  1. I Y=2 S IBY=1 G DICSQ
  1. I Y=1 I '$D(^IBT(356.9,"ATP",+$P($G(^IBT(356.9,DA,0)),U,2),1))!($O(^IBT(356.9,"ATP",+$P($G(^IBT(356.9,DA,0)),U,2),1,0))=DA) S IBY=1
  1. I Y=3 I '$D(^IBT(356.9,"ATP",+$P($G(^IBT(356.9,DA,0)),U,2),3))!($O(^IBT(356.9,"ATP",+$P($G(^IBT(356.9,DA,0)),U,2),3,0))=DA) S IBY=1
  1. ;I Y=3 I '$D(^IBT(356.9,"ADG",+$P($G(^IBT(356.9,DA,0)),U,2),+^(0)))!($O(^IBT(356.9,"ADG",+$P($G(^IBT(356.9,DA,0)),U,2),+^(0),0))=DA) S IBY=1
  1. DICSQ Q IBY
  1. ;
  1. BILLD(IBTRN) ; -- compute total amount billed and received for this visit
  1. ; -- output total amount billed (minus offset) ^ total amount recieved
  1. N X,Y,Z,IBY,IBZ
  1. S (IBY,IBZ)=0
  1. I '$G(IBTRN) G BILLDQ
  1. ;
  1. S (X,Y,Z)=0 F S X=$O(^IBT(356.399,"ACB",IBTRN,X)) Q:X="" D COMPUT
  1. ;
  1. I 'IBY,'IBZ D ;look to 399 if no ct pointer
  1. .N DGPM,IBEVDT
  1. .S IBEVDT=$P(^IBT(356,+IBTRN,0),"^",6)
  1. .;inpatient
  1. .S DGPM=$P(^IBT(356,+IBTRN,0),"^",5) I DGPM D
  1. ..S (X,Y,Z)=0 F S X=$O(^DGCR(399,"D",IBEVDT,X)) Q:'X D COMPUT
  1. .;
  1. .;outpatient
  1. .I $P($G(^IBE(356.6,+$P(^IBT(356,+IBTRN,0),"^",18),0)),"^",8)=2 D
  1. ..S IBEVDT=+$P(IBEVDT,"."),DFN=$P(^IBT(356,+IBTRN,0),"^",2)
  1. ..S (X,Y,Z)=0 F S X=$O(^DGCR(399,"AOPV",DFN,IBEVDT,X)) Q:'X D COMPUT
  1. ..;I IBY S IBY=IBY_" (May include multiple visit dates)"
  1. ;
  1. BILLDQ I 'IBY,$P(^IBT(356,+IBTRN,0),"^",29) S IBY=$P(^IBT(356,+IBTRN,0),"^",29)_" (Estimated)"
  1. Q $G(IBY)_"^"_+$G(IBZ)
  1. ;
  1. COMPUT ; -- add up the numbers
  1. Q:$P($G(^DGCR(399,X,"S")),"^",17)
  1. S Y=$P($G(^DGCR(399,X,"U1")),"^",1)-$P($G(^("U1")),"^",2)
  1. I Y>0 S IBY=IBY+Y
  1. S Z=$$TPR^PRCAFN(X)
  1. I Z>0 S IBZ=IBZ+Y
  1. Q