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

IBTUTL4.m

Go to the documentation of this file.
  1. IBTUTL4 ;ALB/AAS - CLAIMS TRACKING UTILITY ROUTINE ; 21-JUN-93
  1. ;;2.0;INTEGRATED BILLING;**60,91**;21-MAR-94
  1. ;;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. AEA(IBTRC,X) ; -- dd input call for authorize entire admission (field 1.08)
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. I X,$P($G(^IBT(356.2,+IBTRC,1)),"^",7) D NOTOK("Deny Entire Admission already answered 'YES'.") G AEAQ
  1. D ARRAY^IBTUTL3(IBTRC)
  1. I $G(ARRAY(0)) D NOTOK("Entired Admission already denied on "_$$FMTE^XLFDT(+$G(^IBT(356.2,+ARRAY(0),0))))
  1. I $G(ARRAY),ARRAY'=IBTRC D NOTOK("Entire Admission has already be authorized on "_$$FMTE^XLFDT(+$G(^IBT(356.2,+ARRAY,0))))
  1. AEAQ Q IBOK
  1. ;
  1. DEA(IBTRC,X) ; -- dd input call for deny entry admission (field 1.07)
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. I X,$P($G(^IBT(356.2,+IBTRC,1)),"^",8) D NOTOK("Authorize Entire Admission already answered 'YES'.") G DEAQ
  1. D ARRAY^IBTUTL3(IBTRC)
  1. I $G(ARRAY(0)),+ARRAY(0)'=IBTRC D NOTOK("Entired Admission already denied on "_$$FMTE^XLFDT(+$G(^IBT(356.2,+ARRAY(0),0))))
  1. I $G(ARRAY) D NOTOK("Entire Admission has already be authorized on "_$$FMTE^XLFDT(+$G(^IBT(356.2,+ARRAY,0))))
  1. DEAQ Q IBOK
  1. ;
  1. AFDT(IBTRC,X) ; -- dd input call for check to approved from date (field .12)
  1. ; -- returns 1 if date okay, 0 if not, let input transform kill x
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. ;
  1. D CHK I 'IBOK G AFDTQ
  1. ;
  1. I $P(^IBT(356.2,+IBTRC,0),U,13),X>$P(^(0),"^",13) D NOTOK("Care Authorized From Date must be before the Care Authorized To Date ("_$$FMTE^XLFDT($P(^IBT(356.2,+IBTRC,0),"^",13))_")!") G AFDTQ
  1. ;
  1. D CHK2 I '$D(ARRAY) G AFDTQ
  1. S M=0 F S M=$O(ARRAY(M)) Q:'M S N=0 F S N=$O(ARRAY(M,N)) Q:'N I IBTRC'=+ARRAY(M,N),X'<M,X'>N D NOTOK("Date entered is already covered by another entry.")
  1. AFDTQ Q IBOK
  1. ;
  1. ATDT(IBTRC,X) ; -- dd input call for check to approved to date (field .13)
  1. ; -- returns 1 if date okay, 0 if not, let input transform kill x
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. D CHK G:'IBOK ATDTQ
  1. ;
  1. I $P(^IBT(356.2,+IBTRC,0),U,12),X<$P(^(0),"^",12) D NOTOK("Care Authorized To Date must not be before the Care Authorized From Date ("_$$FMTE^XLFDT($P(^IBT(356.2,+IBTRC,0),"^",13))_")!") G ATDTQ
  1. ;
  1. D CHK2 I '$D(ARRAY) G ATDTQ
  1. S M=0 F S M=$O(ARRAY(M)) Q:'M S N=0 F S N=$O(ARRAY(M,N)) Q:'N I IBTRC'=+ARRAY(M,N),X'<M,X'>N D NOTOK("Date entered is already covered by another entry.")
  1. ATDTQ Q IBOK
  1. ;
  1. DFDT(IBTRC,X) ; -- dd input call for check to denied from date (field .15)
  1. ; -- returns 1 if date okay, 0 if not, let input transform kill x
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. D CHK G:'IBOK DFDTQ
  1. ;
  1. I $P(^IBT(356.2,+IBTRC,0),U,16),X>$P(^(0),"^",16) D NOTOK("Care Denied From Date must be before the Care Denied To Date ("_$$FMTE^XLFDT($P(^IBT(356.2,+IBTRC,0),"^",13))_")!") G DFDTQ
  1. ;
  1. D CHK2 I '$D(ARRAY) G DFDTQ
  1. S M=0 F S M=$O(ARRAY(M)) Q:'M S N=0 F S N=$O(ARRAY(M,N)) Q:'N I IBTRC'=+ARRAY(M,N),X'<M,X'>N D NOTOK("Date entered is already covered by another entry.")
  1. DFDTQ Q IBOK
  1. ;
  1. DTDT(IBTRC,X) ; -- dd input call for check to denied to date (field .16)
  1. ; -- returns 1 if date okay, 0 if not, let input transform kill x
  1. N ARRAY,IBOK,IBTRN,IBTRND,Y,I,J,M,N S IBOK=1
  1. D CHK G:'IBOK DTDTQ
  1. ;
  1. I $P(^IBT(356.2,+IBTRC,0),U,15),X<$P(^(0),"^",15) D NOTOK("Date must not be before the Care Denied From Date ("_$$FMTE^XLFDT($P(^IBT(356.2,+IBTRC,0),"^",13))_")!") G DTDTQ
  1. ;
  1. D CHK2 I '$D(ARRAY) G DTDTQ
  1. S M=0 F S M=$O(ARRAY(M)) Q:'M S N=0 F S N=$O(ARRAY(M,N)) Q:'N I IBTRC'=+ARRAY(M,N),X'<M,X'>N D NOTOK("Date entered is already covered by another entry.")
  1. DTDTQ Q IBOK
  1. ;
  1. CHK ; -- generic check functions
  1. I '$G(X)!('$G(IBTRC))!($G(^IBT(356.2,+$G(IBTRC),0))="") S IBOK=0 Q
  1. S IBTRND=$G(^IBT(356,+$P($G(^IBT(356.2,+IBTRC,0)),"^",2),0))
  1. ;
  1. I X<($P(IBTRND,"^",6)\1) D NOTOK("Date can't be before admission or visit date ("_$$FMTE^XLFDT($P(IBTRND,"^",6))_")!") Q
  1. ;
  1. S Y=$$DISCH(+$P(IBTRND,"^",5)) I Y,X>Y D NOTOK("Date can not be after Discharge Date ("_$$FMTE^XLFDT(Y)_")!") Q
  1. Q
  1. ;
  1. CHK2 ; -- if pass first set of check do these
  1. D ARRAY^IBTUTL3(IBTRC)
  1. I $G(ARRAY) D NOTOK("Whole Admission has already been Authorized, can not add partial dates!")
  1. I $G(ARRAY(0)) D NOTOK("Whole Admission has already been Denied, can not add partial dates!")
  1. Q
  1. ;
  1. NOTOK(MESS) ; -- process not okays
  1. S IBOK=0
  1. I '$D(ZTQUEUED),$G(MESS)'="" W !,MESS,!
  1. Q
  1. ;
  1. DISCH(DGPM) ; -- find discharge date for an admission
  1. ;
  1. N X S X=""
  1. I '$G(^DGPM(+$G(DGPM),0)) G DISCHQ
  1. S X=+$G(^DGPM(+$P($G(^DGPM(DGPM,0)),"^",17),0))
  1. DISCHQ Q X
  1. ;
  1. ;
  1. ASK(IBTRN,IBW) ; Prompt for Provider or Diagnosis from PCE
  1. ; Input: IBTRN -- Pointer to Claims Tracking entry in #356
  1. ; IBW -- 1 - Provider | 2 - Diagnosis
  1. ;
  1. N DFN,IBVSIT,IBTRND,IBPKG,IBOEDATA,IBRESULT,IBCLIN,IBERROR
  1. S IBERROR=""
  1. I '$G(IBTRN) S IBERROR="No Claims Tracking entry has been provided!" G ASKQ
  1. I "^1^2^"'[("^"_$G(IBW)_"^") S IBERROR="The prompt type was not specified!" G ASKQ
  1. ;
  1. S IBPKG=$O(^DIC(9.4,"C","IB",0))
  1. I 'IBPKG S IBERROR="Cannot determine the Package file entry for IB!" G ASKQ
  1. ;
  1. S IBTRND=$G(^IBT(356,IBTRN,0)),IBOEDATA=$$SCE^IBSDU(+$P(IBTRND,"^",4))
  1. S IBVSIT=$P(IBTRND,"^",3),IBCLIN=$P(IBOEDATA,"^",4),DFN=$P(IBTRND,"^",2)
  1. I 'IBVSIT S IBVSIT=$P(IBOEDATA,"^",5)
  1. I 'IBVSIT S IBERROR="Cannot determine the Visit file entry!" G ASKQ
  1. I 'IBCLIN S IBERROR="Cannot determine the Clinic location of the visit!" G ASKQ
  1. ;
  1. S IBRESULT=$$INTV^PXAPI($S(IBW=1:"PRV",1:"POV"),IBPKG,"IB DATA",IBVSIT,IBCLIN,DFN)
  1. ;
  1. ASKQ I IBERROR]"" W !!,IBERROR,! S DIR(0)="E" D ^DIR K DIR
  1. Q