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

IBCSC4B.m

Go to the documentation of this file.
  1. IBCSC4B ;ALB/MJB - MCCR PTF SCREEN (CONT.) ;24 FEB 89 9:52
  1. ;;2.0;INTEGRATED BILLING;**210,228,304,479,522,714**;21-MAR-94;Build 8
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;
  1. PRO ; display PTF procedures within date range of bill
  1. ; ^UTILITY is rebuilt because PCM may have changed since originally built
  1. ;
  1. D PTFPDSP($G(IBIFN))
  1. Q
  1. ;
  1. PTFPDSP(IBIFN) ; display PTF procedures within the date range of the bill
  1. ; Output: ^UTILITY($J,"IB") as defined by PTFPRDT^IBCSC4A
  1. ; includes ICD Surgeries (401) and ICD Procedures (601) or CPT Professional Services (801)
  1. N IB0,IBU,IBPTF,IBFDT,IBTDT,IBPCM K ^UTILITY($J,"IB")
  1. N IBLCNT,IBE,IBE1,IBE2,IBC,IBI,IBINDTS,IBR,IBHEADER,IBCODE,IBLINE,IBCNT,TYPE,SGRP,IBSGCD,PRTARR,DIR,Y,X
  1. ;
  1. S IB0=$G(^DGCR(399,+$G(IBIFN),0)),IBPTF=$P(IB0,U,8),IBPCM=+$P(IB0,U,9)
  1. S IBINDTS=$P(IB0,U,28) ; initial date of service IB*2.0*714
  1. S IBU=$G(^DGCR(399,+IBIFN,"U")),IBFDT=+IBU,IBTDT=$P(IBU,U,2) Q:$P(IB0,U,5)>2
  1. ;
  1. D PTFPRDT^IBCSC4A(IBPTF,$S(IBINDTS>0:IBINDTS,1:IBFDT),IBTDT,IBPCM,IBIFN) ; IB*2.0*714
  1. ;
  1. W @IOF,?27,"OPERATION/PROCEDURE SCREEN",! S IBLCNT=2
  1. I '$O(^UTILITY($J,"IB",0)) W !!,"* No PROCEDURE CODES in PTF record for this episode of care.",!! Q
  1. ;
  1. S IBE1=0 F S IBE1=$O(^UTILITY($J,"IB",IBE1)) Q:'IBE1 S IBE2=$O(^UTILITY($J,"IB",IBE1)) D S IBE1=IBE2 Q:'IBE1
  1. . ;
  1. . K PRTARR S PRTARR(1)=""
  1. . ;
  1. . S IBE=IBE1,IBCNT=2,IBR=0 D S IBE=IBE2,IBCNT=2,IBR=40 I +IBE D
  1. .. ;
  1. .. S IBHEADER=$G(^UTILITY($J,"IB",IBE,1)),TYPE=$P(IBHEADER,U,4),SGRP=$P(IBHEADER,U,3)
  1. .. S IBLINE=$G(PRTARR(IBCNT)) S PRTARR(IBCNT)=IBLINE_$$DSPWDH(IBLINE,IBR)_$$DSPHDR(IBHEADER,TYPE) S IBCNT=IBCNT+1
  1. .. ;
  1. .. S IBC=0 F S IBC=$O(^UTILITY($J,"IB",IBE,IBC)) Q:'IBC D
  1. ... ;
  1. ... S IBCODE=$G(^UTILITY($J,"IB",IBE,IBC)),IBSGCD=SGRP_IBC
  1. ... S IBLINE=$G(PRTARR(IBCNT)) S PRTARR(IBCNT)=IBLINE_$$DSPWDH(IBLINE,IBR)_$$DSPCOD(IBCODE,TYPE,IBSGCD) S IBCNT=IBCNT+1
  1. .. ;
  1. . S IBI="" F S IBI=$O(PRTARR(IBI)) Q:IBI="" W !,PRTARR(IBI) S IBLCNT=IBLCNT+1 I IBLCNT>21 D S IBLCNT=1 I 'Y S IBE2=0 Q
  1. .. W ! S DIR(0)="E" D ^DIR K DIR,DIRUT W !
  1. ;
  1. Q
  1. ;
  1. DSPWDH(LN,RCOL) ; Pad line to RCOL width
  1. S LN=$G(LN) S LN=$J("",($G(RCOL)-$L(LN)))
  1. Q LN
  1. ;
  1. DSPHDR(LN,TYPE) ; Format header line
  1. N IBX,IBLINE S IBLINE=""
  1. I $G(TYPE)="" S IBLINE="Surgery Date: "
  1. I $G(TYPE)="*" S IBLINE="Non-O/R Procedure Date: "
  1. I $G(TYPE)="+" S IBLINE="Prof Svc Date: "
  1. S IBX=$P($G(LN),U,2) I +IBX S IBLINE=IBLINE_$$FMTE^XLFDT(+IBX)
  1. ;
  1. S IBLINE=$E(IBLINE,1,38)
  1. Q IBLINE
  1. ;
  1. DSPCOD(LN,TYPE,SG) ; Format code line
  1. N IBX,IBPB,IBLINE S IBLINE=""
  1. S IBPB=" " I $G(SG)'="" S IBPB=$G(^UTILITY($J,"IB","B",SG)) S IBPB=$S($P(IBPB,U,3)="Y":"*",1:" ")
  1. ;
  1. I '$G(LN) S IBLINE=$J($G(SG)_"-",4)_"UNSPECIFIED CODE"
  1. ;
  1. I $G(TYPE)'="+",+$G(LN) S IBX=$$ICD0^IBACSV(+LN) D
  1. . S IBLINE=IBPB_$J($G(SG)_"-",4)_$P(IBX,U,1) S IBLINE=IBLINE_$$DSPWDH(IBLINE,14)_$P(IBX,U,4)
  1. ;
  1. I $G(TYPE)="+",+$G(LN) S IBX=$$CPT^IBACSV(+LN) D
  1. . S IBLINE=$J($G(SG)_"-",4)_$P(IBX,U,1) I $P(LN,U,5)'="" S IBLINE=IBLINE_"("_$P(LN,U,5)_")"
  1. . S IBLINE=IBLINE_$$DSPWDH(IBLINE,13)_"PROV-"_$P($G(^VA(200,+$P($G(LN),U,13),0)),U,1)
  1. . I $P(LN,U,10)>1 S IBLINE=$E(IBLINE,1,(38-($L($P(LN,U,10))+3)))_" ("_$P(LN,U,10)_")"
  1. ;
  1. S IBLINE=$E(IBLINE,1,38)
  1. Q IBLINE
  1. ;
  1. ;
  1. Q K IB3,IB4,IB5,IB6,IB7,IB8,IB9,IBAE,IBAO,IBCT,IBDIA,IBDP,IBDX,IBDXC,IBDXX,IBDXY,IBI,IBNC,IBNOR,IBP,IBPY,IBOP,IBOPC,IBOPX,IBOPY,IBPP,IBPX,IBSD,IBSP,IBWE,IBWO,IBPRO,IBPROT
  1. K %DT,A,B,DIC,F,I,J,K,M,S,X,Y,N,P
  1. Q