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

BARRERL.m

Go to the documentation of this file.
  1. BARRERL ; IHS/SD/LSL - Bill File Error Checker ; 07/2/2010
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;*23*;OCT 26, 2005
  1. ;
  1. ; IHS/ASDS/LSL - 09/11/01 - Version 1.5 Patch 2 - NOIS CGA-0701-110093
  1. ; Modified to set 0 node of A/R Bill Error File if it doesn't
  1. ; already exist. This allows the BES to work for all facilities on
  1. ; one machine.
  1. ;
  1. ; IHS/SD/LSL - 12/06/02 - Version 1.7 - NOIS NHA-0601-180049
  1. ; Modified to look for 3P bill properly.
  1. ;
  1. ; JUNE 2013 P.OTT MODIFIED TO ACCOMODATE NEW INSURER TYPE FILE (^AUTTINTY)
  1. ;
  1. ; ***********************************************************************
  1. ;
  1. W !!,"This option will scan the A/R Bill file for problems and must be"
  1. W !,"run before printing any of the synchronization reports",!
  1. I $G(^BARBLER(DUZ(2),"LASTRUN")) D Q:Y'=1
  1. .W !,"A/R Bill File error check was last run on "
  1. .W $$MDT^BARDUTL(^BARBLER(DUZ(2),"LASTRUN")),".",!
  1. .K DIR
  1. .S DIR(0)="Y"
  1. .S DIR("A")="Re-run"
  1. .S DIR("B")="NO"
  1. .D ^DIR
  1. .K DIR
  1. I '$P($G(^BAR(90052.06,DUZ(2),DUZ(2),0)),"^",14) D
  1. .W !!,"Enter Small Balance Amount."
  1. .S DIE="^BAR(90052.06,DUZ(2),"
  1. .S DA=DUZ(2)
  1. .S DR="14//5.00"
  1. .D ^DIE
  1. ; -------------------------------
  1. ;
  1. ADT ;ask for date range
  1. W !!,"Select A/R Bills by DOS Date Range."
  1. F D Q:$G(BARDTOK)
  1. .K BARSDT,BAREDT,BARDTOK
  1. .S BARSDT=$$DATE^BARDUTL(1)
  1. .I BARSDT'>0 S BARDTOK=-1 Q
  1. .S BAREDT=$$DATE^BARDUTL(2)+.9
  1. .I BAREDT'>0 S BARDTOK=-1 Q
  1. .I BAREDT>BARSDT S BARDTOK=1 Q
  1. .W " ??",*7
  1. I BARDTOK'>0 K BARSDT,BAREDT,BARDTOK Q
  1. ; -------------------------------
  1. ;
  1. QUE ;que to taskman
  1. S ZTRTN="EN^BARRERL"
  1. S ZTSAVE("BARSDT")=""
  1. S ZTSAVE("BAREDT")=""
  1. S ZTDESC="A/R Re-Roll"
  1. S ZTIO=""
  1. D ^%ZTLOAD
  1. W:$G(ZTSK) !,"Task# ",ZTSK," queued.",!
  1. D EOP^BARUTL(1)
  1. K BAREDT,BARSDT,BARDTOK
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EN ;EP - looking for A/R Bills that have problems
  1. D KILL
  1. D LOOP
  1. S ^BARBLER(DUZ(2),"LASTRUN")=DT
  1. K ^BARBLER(DUZ(2),"RUNNING")
  1. K BARSDT,BAREDT,BARIDT
  1. Q
  1. ; *********************************************************************
  1. ;
  1. KILL ;delete existing entries
  1. S DIK="^BARBLER(DUZ(2),"
  1. S DA=0
  1. F S DA=$O(^BARBLER(DUZ(2),DA)) Q:'DA D ^DIK
  1. K ^BARBLER(DUZ(2),"LASTRUN")
  1. I '$D(^BARBLER(DUZ(2),0)) S ^BARBLER(DUZ(2),0)="A/R BILL ERROR^90050.04P"
  1. S ^BARBLER(DUZ(2),"RUNNING")=1
  1. Q
  1. ; *********************************************************************
  1. ;
  1. LOOP ; go thru A/R Bill file
  1. S BARIDT=BARSDT-.1
  1. F S BARIDT=$O(^BARBL(DUZ(2),"E",BARIDT)) Q:'BARIDT!(BARIDT>BAREDT) D
  1. .S BARBLDA=0
  1. .F S BARBLDA=$O(^BARBL(DUZ(2),"E",BARIDT,BARBLDA)) Q:'BARBLDA D ONE
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ONE ;examine one a/r bill for errors
  1. K BARNO3P
  1. S DIE="^BARBLER(DUZ(2),"
  1. N I
  1. F I=0,1,2 S BAR(I)=$G(^BARBL(DUZ(2),BARBLDA,I))
  1. S BAR3PNM=$P(BAR(0),"^",1)
  1. S BAR3PNM=$P(BAR3PNM,"-")
  1. S BARBAL=$P(BAR(0),"^",15)
  1. D SBL
  1. D NEG
  1. S BARDOS=$P(BAR(1),U,2)
  1. S BARPAT=$P(BAR(1),U)
  1. S BAR("3P LOC")=$$FIND3PB^BARUTL(DUZ(2),BARBLDA)
  1. I BAR("3P LOC")="" D Q
  1. . S DA=BARBLDA
  1. . S DR=".05///1"
  1. . D ^DIE
  1. S BAR3PDUZ=$P(BAR("3P LOC"),",")
  1. S BAR3PDA=$P(BAR("3P LOC"),",",2)
  1. S BARDUZ2=BAR3PDUZ
  1. S DA=BARBLDA
  1. S DIC="^BARBL(DUZ(2),"
  1. S DIQ="BAR("
  1. S DIQ(0)="IE"
  1. S DR="3;101"
  1. D EN^DIQ1
  1. D MM
  1. D RR
  1. K BAR,BAR3P,BARDUZ2,BAR3PNM,BAR3PNMB,BARMM,BARNO3P,BAR3PDA
  1. Q
  1. ; *********************************************************************
  1. ;
  1. FIXIEN ;attempt to find missing 3p bill
  1. Q
  1. ; *********************************************************************
  1. ;
  1. MM ;check for 3p/ar mis-matches
  1. N I
  1. F I=0,2,7 S BAR3P(I)=$G(^ABMDBILL(BARDUZ2,BAR3PDA,I))
  1. S BAR3PNMB=$P(BAR3P(0),"^",1)
  1. K BARMM
  1. S:BAR3PNM'=BAR3PNMB BARMM=1 ;bill names
  1. S:$P(BAR3P(0),"^",5)'=$P(BAR(1),"^",1) BARMM=1 ;patient
  1. S:(($P(BAR3P(2),"^",1)+.005)\.01/100)'=(($P(BAR(0),"^",13)+.005)\.01/100) BARMM=1 ;amt billed
  1. S:$P(BAR3P(7),"^",1)'=$P(BAR(1),"^",2) BARMM=1 ;dos from
  1. ;insurer
  1. ;;;S BARITYP=$P($G(^AUTNINS(+$P(BAR3P(0),"^",8),2)),"^",1)
  1. S BARINAME=$P($G(^AUTNINS(+$P(BAR3P(0),U,8),0)),"^",1)
  1. S BARITYPX=$P($G(^AUTNINS(+$P(BAR3P(0),U,8),3)),"^",1) ;PTR TO ^AUTTINTY (.211)
  1. S BARITYP=$P($G(^AUTTINTY(BARITYPX,0)),U,2) ;P.OTT
  1. ;I DUZ=838 W !,"BARITYP= ",BARITYP," ",$ZR R ASD QUIT ;------------------>
  1. I BARITYP'="N" D
  1. .Q:BARINAME=$G(BAR(90050.01,BARBLDA,3,"E"))
  1. .S BARMM=1
  1. I BARITYP="N" D
  1. .Q:$P(^BARAC(DUZ(2),BAR(90050.01,BARBLDA,3,"I"),0),U)'["DPT("
  1. .Q:BAR(90050.01,BARBLDA,3,"E")=BAR(90050.01,BARBLDA,101,"E")
  1. .S BARMM=1
  1. Q:'$G(BARMM)
  1. D ADD
  1. S DR=".04///1"
  1. D ^DIE
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SBL ;check for small balance
  1. Q:BARBAL'>0
  1. S BARSBL=$P($G(^BAR(90052.06,DUZ(2),DUZ(2),0)),"^",14)
  1. S:'BARSBL BARSBL=5
  1. Q:BARBAL>BARSBL
  1. D ADD
  1. S DR=".03///1"
  1. D ^DIE
  1. Q
  1. ; *********************************************************************
  1. ;
  1. NEG ;check for negative balance
  1. Q:BARBAL'<0
  1. D ADD
  1. S DR=".02///1"
  1. D ^DIE
  1. Q
  1. ; *********************************************************************
  1. ;
  1. RR ;check if re-roll is needed
  1. Q:BARBAL'=0
  1. Q:$P(BAR3P(0),"^",4)="C"
  1. Q:$P(BAR3P(0),"^",4)="X"
  1. Q:$P(BAR(2),"^",8)'="R"
  1. Q:'+$P(BAR(0),"^",13)
  1. Q:$G(BARMM)
  1. D ADD
  1. S DR=".06///1"
  1. D ^DIE
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ADD ;add to a/r bill error file
  1. S DA=BARBLDA
  1. Q:+$G(^BARBLER(DUZ(2),DA,0))
  1. S DIC="^BARBLER(DUZ(2),"
  1. S DIC(0)="LX"
  1. S X="`"_DA
  1. K DD,DO
  1. D ^DIC
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DEV ;select device
  1. S %ZIS="NQ"
  1. D ^%ZIS
  1. Q:POP
  1. I IO'=IO(0) D QUE,HOME^%ZIS Q
  1. I $D(IO("S")) D
  1. .S IOP=ION
  1. .D ^%ZIS
  1. Q