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

BARRPRAC.m

Go to the documentation of this file.
  1. BARRPRAC ; IHS/SD/SDR - Reimbursable Activity Report ; 04/09/2013
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**23**;OCT 26, 2005
  1. ;;AUG 2013 NOHEAT P.OTTIS ADDED FILTER FOR FED LOC ONLY
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EN ; EP
  1. K BARY,BAR
  1. S BARDONE=0
  1. D:'$D(BARUSR) INIT^BARUTL ; Set up basic A/R Variables
  1. S BARP("RTN")="BARRPRAC" ; Routine used to gather data
  1. S BAR("PRIVACY")=1 ; Privacy act applies (used BARRHD)
  1. S BAR("LOC")="VISIT" ; PSR should always be VISIT
  1. D DTTYP
  1. Q:BARDONE=1
  1. D DATES ; Ask transaction date range
  1. I +BARSTART<1 D XIT Q ; Dates answered wrong
  1. D SETHDR ; Build header array
  1. S BARQ("RC")="COMPUTE^BARRPRAC" ; Build tmp global with data
  1. S BARQ("RP")="PRINT^BARRPRAC" ; Print reports from tmp global
  1. S BARQ("NS")="BAR" ; Namespace for variables
  1. S BARQ("RX")="POUT^BARRUTL" ; Clean-up routine
  1. D ^BARDBQUE ; Double queuing
  1. D PAZ^BARRUTL ; Press return to continue
  1. Q
  1. ; *********************************************************************
  1. DTTYP ;EP
  1. D ^XBFMK
  1. S DIR(0)="SO^1:Approval Date;2:Visit Date"
  1. S DIR("A")="Select TYPE of DATE Desired"
  1. D ^DIR
  1. K DIR
  1. I $D(DUOUT)!$D(DTOUT) S BARDONE=1
  1. S BARY("DT")=$S(Y=1:"A",1:"V")
  1. Q
  1. ;
  1. DATES ;
  1. ; Ask Date Range
  1. S BARDTYP=$S(BARY("DT")="A":"Approval Date",1:"Date of Service")
  1. W !!," ============ Entry of "_BARDTYP_" Range =============",!
  1. S BARSTART=$$DATE^BARDUTL(1)
  1. I BARSTART<1 Q
  1. S BAREND=$$DATE^BARDUTL(2)
  1. I BAREND<1 W ! G DATES
  1. I BAREND<BARSTART D G DATES
  1. .W *7
  1. .W !!,"The END date must not be before the START date.",!
  1. S BARY("DT",1)=BARSTART
  1. S BARY("DT",2)=BAREND
  1. Q
  1. ; ********************************************************************
  1. ;
  1. SETHDR ;
  1. ; Build header array
  1. S BAR("OPT")="RAC"
  1. S BAR("LVL")=0
  1. S BAR("HD",0)="Reimbursable Activity Report"
  1. D DT^BARRHD
  1. S BAR("LVL")=$G(BAR("LVL"))+1
  1. S BAR("HD",BAR("LVL"))=""
  1. S BAR("TXT")="ALL"
  1. I $D(BARY("LOC")) S BAR("TXT")=$P(^DIC(4,BARY("LOC"),0),U)
  1. I BAR("LOC")="BILLING" D
  1. . S BAR("TXT")=BAR("TXT")_" Visit location(s) under "
  1. . S BAR("TXT")=BAR("TXT")_$P(^DIC(4,DUZ(2),0),U)
  1. . S BAR("TXT")=BAR("TXT")_" Billing Location"
  1. E S BAR("TXT")=BAR("TXT")_" Visit location(s) regardless of Billing Location"
  1. S BAR("CONJ")="at "
  1. D CHK^BARRHD
  1. Q
  1. ; *********************************************************************
  1. ;
  1. COMPUTE ; EP
  1. S BAR("SUBR")="BAR-RAC"
  1. K ^TMP($J,"BAR-RAC")
  1. I BAR("LOC")="BILLING" D LOOP^BARRUTL Q
  1. S BARDUZ2=DUZ(2)
  1. S DUZ(2)=0
  1. ;F S DUZ(2)=$O(^BARBL(DUZ(2))) Q:'DUZ(2) D LOOP^BARRUTL ;old code
  1. F S DUZ(2)=$O(^BARBL(DUZ(2))) Q:'DUZ(2) I $$IHS^BARUFUT(DUZ(2)) D LOOP^BARRUTL ;FED LOC ONLY 8/27/13
  1. S DUZ(2)=BARDUZ2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DATA ; EP
  1. S BAR0=$G(^BARBL(DUZ(2),BAR,0))
  1. S D0=$P(BAR0,U,3)
  1. S BARITYP=$$VALI^BARVPM(8) ;GET INTERNAL CODE INSTEAD OF 'STANDS FOR'
  1. S:(BARITYP'="N") BARACCT=$$GET1^DIQ(90050.02,$P(BAR0,U,3),".01","E")
  1. S:(BARITYP="N") BARACCT="NON-BENEFICIARY"
  1. S BARBILLN=$P(BAR0,U)
  1. S BARAPPDT=$$CDT^BARDUTL($P(BAR0,U,18))
  1. S BARDUZ2=$P(BAR0,U,22)
  1. S BARIEN=$P(BAR0,U,17)
  1. S BARAPPR=$P($G(^ABMDBILL(BARDUZ2,BARIEN,1)),U,4)
  1. S BARAPPR=$$GET1^DIQ(200,BARAPPR,".01","E")
  1. S BARBAMT=$J($FN($P(BAR0,U,13),",",2),13)
  1. S BARCBAMT=$J($FN($P(BAR0,U,15),",",2),13)
  1. S BARDOS=$$CDT^BARDUTL($P($G(^BARBL(DUZ(2),BAR,1)),U,2))
  1. S D0=$P(BAR0,U,3)
  1. S BARITYP=$$VALI^BARVPM(8) ;GET INTERNAL CODE INSTEAD OF 'STANDS FOR'
  1. S BARITIEN=$O(^AUTTINTY("C",BARITYP,0))
  1. S BARITYP=$$GET1^DIQ(9999999.181,BARITIEN,".01","E")
  1. S BARSIEN=$O(^BARBL(DUZ(2),BAR,9,9999999),-1)
  1. S:BARSIEN BARSTAT=$P($G(^BARBL(DUZ(2),BAR,9,BARSIEN,0)),U,3)
  1. S:'BARSIEN BARSTAT="NONE"
  1. S BARVLOC=$$GET1^DIQ(90050.01,BAR,108,"E")
  1. S BARREC=BARBILLN_U_BARACCT_U_BARAPPDT_U_BARAPPR_U_BARBAMT_U_BARCBAMT_U_BARDOS_U_BARITYP_U_BARSTAT_U_BARVLOC
  1. S ^TMP($J,"BAR-RAC",BARBILLN)=BARREC
  1. Q
  1. ; *********************************************************************
  1. XIT ;
  1. D ^BARVKL0
  1. Q
  1. PRINT ;
  1. W !,"BILL#^A/R ACCT^APPROVAL DATE^APPROVING OFFICAL^BILL AMOUNT^CURRENT BILL AMOUNT^DATE OF SERVICE^INSURER TYPE^STATUS FIELD^VISIT LOCATION"
  1. S BARB=""
  1. F S BARB=$O(^TMP($J,"BAR-RAC",BARB)) Q:BARB="" D
  1. .W !,$G(^TMP($J,"BAR-RAC",BARB))
  1. Q