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

BARBAD2.m

Go to the documentation of this file.
  1. BARBAD2 ; IHS/SD/LSL - PAYMENT PATIENT SELECTION JAN 15,1997 ; 05/07/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**4,14,19**;OCT 26, 2005
  1. ;
  1. ; ** patient a/r lookup based on from/thru dos
  1. ; ** called from ^BARBAD
  1. ; ** BARPASS = PATDFN^BEGDOS^ENDDOS
  1. ; ** builds an array that includes all entries from a/r that meet the
  1. ; criteria.
  1. ; - If Bill was 'CLOSED' then not displayed - not found in 3P system
  1. ; - If Bill was 'CANCELED' and current amount due is 0 - not displayes, already worked
  1. ;
  1. ; *********************************************************************
  1. ;
  1. EN(BARPASS) ; EP
  1. ; Pat/BIll lookup
  1. N DIC,DIQ,DR,BARBLV,BARDT,BARPAT,BARBEG,BAREND,BARHIT,BARCNT
  1. K ^BARTMP($J)
  1. Q:+BARPASS=0
  1. S BARPAT=+BARPASS
  1. S BARBEG=$P(BARPASS,U,2)
  1. S BAREND=$P(BARPASS,U,3)
  1. S X1=BARBEG
  1. S X2=-1
  1. D C^%DTC
  1. S BARDT=X
  1. S DIC="^BARBL(DUZ(2),"
  1. S DR=".01;3;13;15;16"
  1. S DIQ="BARBLV("
  1. S BARCNT=0
  1. F S BARDT=$O(^BARBL(DUZ(2),"ABC",BARPAT,BARDT)) Q:'BARDT!(BARDT>BAREND) D
  1. .S BARBDA=0
  1. .F S BARBDA=$O(^BARBL(DUZ(2),"ABC",BARPAT,BARDT,BARBDA)) Q:'BARBDA D
  1. ..S DA=BARBDA
  1. ..D EN^XBDIQ1
  1. ..S BARCNT=BARCNT+1
  1. ..I BARBLV(16)'="CLOSED" D
  1. ...S ^BARTMP($J,BARBDA,BARCNT)=BARDT_U_BARBLV(.01)_U_BARBLV(13)_U_BARBLV(3)_U_BARBLV(15)_U_U_U_BARBLV(16)
  1. ...S ^BARTMP($J,"B",BARCNT,BARBDA)=""
  1. ..I (BARBLV(16)="3P CANCELLED")&(BARBLV(15)=0) D
  1. ...K ^BARTMP($J,BARBDA,BARCNT)
  1. ...;K ^BARTMP($J,BARCNT,BARBDA)
  1. ...K ^BARTMP($J,"B",BARCNT,BARBDA) ;IHS/SD/TPF 9/24/2009 H5512
  1. ...S BARCNT=BARCNT-1
  1. ..I BARBLV(16)="CLOSED" S BARCNT=BARCNT-1
  1. ..K BARBLV
  1. Q BARCNT
  1. ; *********************************************************************
  1. ;
  1. HIT(BARPASS) ; EP
  1. ; ** display a/r bills found
  1. N BARBDA,BARLIN,BARREC,BARBLO
  1. S (BARBDA,BARPG,BARSTOP)=0
  1. D HEAD
  1. F S BARBDA=$O(^BARTMP($J,BARBDA)) Q:'BARBDA D Q:BARSTOP
  1. .S BARLIN=$O(^BARTMP($J,BARBDA,""))
  1. .S BARREC=^BARTMP($J,BARBDA,BARLIN)
  1. .S BARBLO=$P(BARREC,U,2)
  1. .I $D(^BARTR(DUZ(2),"AM4",+BARBLO)) S BARBLO="m"_BARBLO
  1. .S BARSTOP=$$CHKLINE(0)
  1. .Q:BARSTOP
  1. .S BARCMSG=" "
  1. .S:$P(BARREC,U,8)="3P CANCELLED" BARCMSG="3P CAN"
  1. .;start new code IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .S BARTPB=$$FIND3PB^BARUTL(DUZ(2),BARBDA)
  1. .S:$G(BARTPB)'="" BARSTAT=$P($G(^ABMDBILL($P(BARTPB,","),$P(BARTPB,",",2),0)),U,4)
  1. .;end new code IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .W !,$J(BARLIN,3)
  1. .W ?6,$$SDT^BARDUTL($P(BARREC,U,1))
  1. .;W ?18,BARBLO,?25,BARCMSG ;IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .W ?18,BARBLO_$S($G(BARSTAT)="X":"*",1:""),?25,BARCMSG ;IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .W ?32,$J($P(BARREC,U,3),8,2)
  1. .W ?44,$E($P(BARREC,U,4),1,23)
  1. .;W ?70,$J($P(BARREC,U,5),8,2)
  1. .S:'$G(BARJ) BARJ=1
  1. .W:$P($G(BARTR(BARLIN,BARJ)),U,5)="V" ?70,$J($P(BARREC,U,5)+$P(BARREC,U,4),8,2)
  1. .W:$P($G(BARTR(BARLIN,BARJ)),U,5)="S" ?70,$J($P(BARREC,U,5)-$P(BARREC,U,4),8,2)
  1. .W:'$D(BARTR(BARLIN,BARJ)) ?70,$J($P(BARREC,U,5),8,2)
  1. ;
  1. EXIT ;
  1. Q
  1. ; *********************************************************************
  1. ;
  1. W $$EN^BARVDF("IOF"),!
  1. N BARPTNAM
  1. S BARPG=BARPG+1
  1. S BARPTNAM=$P(^DPT(+BARPASS,0),U,1)
  1. I $D(^BARTR(DUZ(2),"AM5",+BARPASS)) S BARPTNAM="(msg) "_BARPTNAM
  1. W "Claims for "_BARPTNAM_" from "_$$SDT^BARDUTL($P(BARPASS,U,2))_" to "_$$SDT^BARDUTL($P(BARPASS,U,3))
  1. W ?(IOM-15),"Page: "_BARPG,!!
  1. ;D SUBHD(.BARCOL,.BARITM,BARPMT) ;BAR*1.8*4 DD 4.1.7.2
  1. D SUBHD(.BARCOL,.BARITM,$G(BARPMT)) ;BAR*1.8*4 DD 4.1.7.2
  1. W !!?32,"Billed",?70,"Current"
  1. W !,"Line #",?8,"DOS",?18,"Claim #",?32,"Amount",?44,"Billed To",?70,"Balance"
  1. S BARDSH=""
  1. S $P(BARDSH,"-",IOM)=""
  1. W !,BARDSH
  1. ;
  1. EHEAD ;
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ; changes needed for the Collection Batch DD update (triggers)
  1. SUBHD(BARCOL,BARITM,BARPMT) ; EP
  1. Q:'$D(BARCOL) ;BAR*1.8*4 DD 4.1.7.2
  1. ; ** display batch and item headers
  1. K BARCLV,BARITV,BAREOV
  1. N DA,DIC,DIQ,DR
  1. S DIC=90051.01
  1. S DIQ="BARCLV("
  1. S DR=".01;15:18;21"
  1. S DA=+BARCOL
  1. D EN^XBDIQ1
  1. ;
  1. S DIC=90051.1101
  1. S DIQ="BARITV("
  1. S DR=".01;18;19;101;103;105"
  1. S DA=+BARITM
  1. S DA(1)=+BARCOL
  1. D EN^XBDIQ1
  1. ;
  1. I +$G(BAREOB) D
  1. . S DIC=90051.1101601
  1. . S DIQ="BAREOV("
  1. . S DR=".01;2;3;4;5"
  1. . S DA=+BAREOB
  1. . S DA(2)=+BARCOL
  1. . S DA(1)=+BARITM
  1. . D EN^XBDIQ1
  1. ;
  1. W "Batch : "_$E($P(BARCLV(.01),"-",1),1,19)
  1. W ?27,"Item : "_BARITV(.01)
  1. I +$G(BAREOB) W ?50,"Location: "_BAREOV(.01)
  1. W !,"Amount : "_$J(BARCLV(15),8,2)
  1. ; changes needed for the Collection Batch DD update (triggers)
  1. W ?27,"Amount : "_$J(BARITV(101),8,2)
  1. I +$G(BAREOB) W ?50," Amount : "_$J(BAREOV(2),8,2)
  1. W !,"Posted : "_$J(BARCLV(16)+BARPMT,8,2)
  1. ; changes needed for the Collection Batch DD update (triggers)
  1. W ?27,"Posted : "_$J(BARITV(18)+BARPMT,8,2)
  1. I +$G(BAREOB) W ?50," Posted : "_$J(BAREOV(3)+BARPMT,8,2)
  1. W !,"Unalloc: "_$J(BARCLV(21),8,2)
  1. W ?27,"Unalloc: "_$J(BARITV(105),8,2)
  1. I +$G(BAREOB) W ?50," Unalloc: "_$J(BAREOV(5),8,2)
  1. W !
  1. ;
  1. B1 ;
  1. W "Balance: "_$J(BARCLV(17)-BARPMT,8,2)
  1. W ?27,"Balance: "_$J(BARITV(19)-BARPMT,8,2)
  1. ;
  1. B2 ;
  1. I +$G(BAREOB) W ?50," Balance: "_$J(BAREOV(4)-BARPMT,8,2)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. HIT1(BARPASS) ; EP
  1. ; ** display a/r bills found
  1. N BARHIT,BARLIN,BARREC,BARBLO
  1. S (BARTPAY,BARTADJ,BARHIT,BARPG,BARSTOP)=0
  1. D HEAD1
  1. F S BARHIT=$O(^BARTMP($J,BARHIT)) Q:'BARHIT DO Q:BARSTOP
  1. .S BARLIN=$O(^BARTMP($J,BARHIT,""))
  1. .S BARREC=^BARTMP($J,BARHIT,BARLIN)
  1. .S BARBLO=$P(BARREC,U,2) I $D(^BARTR(DUZ(2),"AM4",+BARBLO)) S BARBLO="m"_BARBLO
  1. .S BARTPAY=BARTPAY+$P(BARREC,U,6)
  1. .S BARTADJ=BARTADJ+$P(BARREC,U,7)
  1. .S BARSTOP=$$CHKLINE(1) Q:BARSTOP
  1. .S BARCMSG=" "
  1. .S:$P(BARREC,U,8)="3P CANCELLED" BARCMSG="3P CAN"
  1. .;start new code IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .S BARTPB=$$FIND3PB^BARUTL(DUZ(2),BARHIT)
  1. .S:$G(BARTPB)'="" BARSTAT=$P($G(^ABMDBILL($P(BARTPB,","),$P(BARTPB,",",2),0)),U,4)
  1. .;end new code IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .W !,$J(BARLIN,3),?6,$$SDT^BARDUTL($P(BARREC,U,1)),?18,BARBLO
  1. .W:($G(BARSTAT)="X") "*" ;IHS/SD/SDR bar*1.8*4 DD item 4.1.7.1
  1. .W ?25,BARCMSG
  1. .W ?32,$J($P(BARREC,U,3),8,2)
  1. .W ?49,$J($P(BARREC,U,6),8,2)
  1. .S:'$G(BARJ) BARJ=1
  1. .S:(($G(BARJ)>1)&'$G(BARTR(BARLIN,$G(BARJ)))) BARJ=1
  1. .I $D(BARTR(BARLIN,BARJ)) D
  1. . . W ?60,$J($P($G(BARTR(BARLIN,BARJ)),U,2),8,2)
  1. . . W:$P($G(BARTR(BARLIN,BARJ)),U,5)="V" ?71,$J($P($G(BARTR(BARLIN,BARJ)),U,6)+$P($G(BARTR(BARLIN,BARJ)),U,2),8,2)
  1. . . W:$P($G(BARTR(BARLIN,BARJ)),U,5)="S" ?71,$J($P($G(BARTR(BARLIN,BARJ)),U,6)-$P($G(BARTR(BARLIN,BARJ)),U,2),8,2)
  1. . . W:'$D(BARTR(BARLIN,BARJ)) ?71,$J($P($G(BARTR(BARLIN,BARJ)),U,6),8,2)
  1. .W:'$D(BARTR(BARLIN,BARJ)) ?60,"0.00"
  1. .W:'$D(BARTR(BARLIN,BARJ)) ?71,$J($P(BARREC,U,5),8,2)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. HEAD1 ;
  1. W $$EN^BARVDF("IOF"),!
  1. N BARPTNAM
  1. S BARPG=BARPG+1
  1. S BARPTNAM=$P(^DPT(+BARPASS,0),U,1)
  1. I $D(^BARTR(DUZ(2),"AM5",+BARPASS)) S BARPTNAM="(msg) "_BARPTNAM
  1. W "Claims for "_BARPTNAM_" from "_$$SDT^BARDUTL($P(BARPASS,U,2))_" to "_$$SDT^BARDUTL($P(BARPASS,U,3))
  1. W ?(IOM-15),"Page: "_BARPG,!!
  1. D SUBHD^BARBAD2(.BARCOL,.BARITM,$G(BARPMT))
  1. W !!?40,"Billed",?50,"Current",?61,"Current",?72,"Current"
  1. W !,"Line #",?8,"DOS",?18,"Claim #",?40,"Amount",?50,"Paymnts",?62,"Adjust",?72,"Balance"
  1. S BARDSH=""
  1. S $P(BARDSH,"-",IOM)=""
  1. W !,BARDSH
  1. Q
  1. ; *********************************************************************
  1. ;
  1. CHKLINE(BARHD) ;
  1. ; Q 0 = CONTINUE
  1. ; Q 1 = STOP
  1. N X
  1. I ($Y+5)<IOSL Q 0
  1. W !?(IOM-15),"continued==>"
  1. D EOP^BARUTL(0)
  1. I 'Y Q 1
  1. I BARHD=0 D HEAD
  1. I BARHD=1 D HEAD1
  1. ;
  1. ECHKLINE ;
  1. Q 0