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

BARRCXL1.m

Go to the documentation of this file.
  1. BARRCXL1 ; IHS/SD/LSL - Cancelled Bills Report - Gather Data ;08/20/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**7,19**;OCT 26, 2005
  1. ;
  1. ; IHS/SD/PKD - 05/07/10 - BAR*1.8.19
  1. ; IHS/SD/LSL - 03/10/03 - Routine created
  1. ; Called by BARRCXL
  1. ; MODIFIED XTMP FILE NAME TO TMP TO MEET SAC REQUIREMENTS;MRS:BAR*1.8*7 IM29892
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ;
  1. COMPUTE ; EP
  1. ;
  1. S BAR("SUBR")="BAR-CXL"
  1. K ^TMP($J,"BAR-CXL"),^TMP($J,"BAR-CXL MULT"),^TMP($J,"BAR-CXL SUMY")
  1. S BARP("RTN")="BARRCXL1" ; Routine used to get data if no parameters
  1. ;S BARDUZ2=DUZ(2)
  1. ;S DUZ(2)=0
  1. ;F S DUZ(2)=$O(^BARBL(DUZ(2))) Q:'DUZ(2)!($G(BAR("F1")))
  1. ; Index "OBAL" should supercede any other Index
  1. S BAR=0
  1. I BARY("OBAL")=1 D Q
  1. . F S BAR=$O(^BARBL(DUZ(2),"OBAL",BAR)) Q:'BAR D DATA
  1. D LOOP^BARRUTL
  1. ;S DUZ(2)=BARDUZ2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DATA ; EP
  1. ; Called by BARRUTL if no parameters
  1. S BARP("HIT")=0
  1. D BILL^BARRCHK
  1. Q:'BARP("HIT")
  1. S BAR("3P LOC")=$$FIND3PB^BARUTL(DUZ(2),BAR)
  1. Q:BAR("3P LOC")="" ; Bill not found 3PB
  1. S BAR3PDUZ=$P(BAR("3P LOC"),",")
  1. S BAR3PIEN=$P(BAR("3P LOC"),",",2)
  1. ; BAR*1.8*19 IHS/SD/PKD 5/10/10 START
  1. ;S BARBSTAT=$P($G(^ABMDBILL(BAR3PDUZ,BAR3PIEN,0),U,4)
  1. S BARB3PB0=$G(^ABMDBILL(BAR3PDUZ,BAR3PIEN,0)) ; Need 3 pieces
  1. S BARBSTAT=$P(BARB3PB0,U,4) ; Bill Status
  1. I '($I(PKDTOT)#1000) W "."
  1. Q:BARBSTAT'="X"
  1. ;I '($I(PKDTOTC)#1000) W "X" ; Bill not cancelled in 3P
  1. I $G(BARY("PTYP"))=2,$P($G(^AUPNPAT(BAR("P"),11)),U,12)'="I" Q ;Not eligible
  1. I $G(BARY("PTYP"))=1,$P($G(^AUPNPAT(BAR("P"),11)),U,12)="I" Q ; Eligible
  1. S BARBVSTY=$P(BARB3PB0,U,7) ;Visit Type
  1. S BARBCLNC=$P(BARB3PB0,U,10) ; Visit Clinic
  1. S BARBCANC=$P($G(^ABMDBILL(BAR3PDUZ,BAR3PIEN,1)),U,11) ; Cancelling Official
  1. I $D(BARY("CANC")) Q:BARY("CANC")'=BARBCANC ; Quit if Cancelling Official doesn't match selection
  1. S:BARBCANC="" BARBCANC=0 ; Piece not set In come older records
  1. S BARBREAS=$P($G(^ABMDBILL(BAR3PDUZ,BAR3PIEN,1)),U,13) ; Reason Cancelled
  1. S:BARBREAS="" BARBREAS="Not Listed"
  1. ; END
  1. ;
  1. S BARLOC=""
  1. S:BAR("L")]"" BARLOC=$$GET1^DIQ(4,BAR("L"),.01)
  1. S:BARLOC="" BARLOC="No Visit Location" ; Visit Location Name
  1. S BARACCT=""
  1. S:BAR("I")]"" BARACCT=$$GET1^DIQ(90050.02,BAR("I"),.01)
  1. S:BARACCT="" BARACCT="No A/R Account" ; A/R Account Name
  1. S BARPAT=""
  1. S:BAR("P")]"" BARPAT=$$GET1^DIQ(9000001,BAR("P"),.01)
  1. S:BARPAT="" BARPAT="No Patient Name" ; Patient Name
  1. S BARBILL=$P(BAR(0),U) ; Bill Number
  1. S BARBAMT=$P(BAR(0),U,13) ; Amount Billed
  1. S BARBAL=$P(BAR(0),U,15) ; Bill Balance
  1. ;
  1. I BARY("RTYP")=1 D DETDATA
  1. D SUMDATA
  1. Q
  1. ; *********************************************************************
  1. DETDATA ;
  1. ; Build global for Detail Report
  1. ; BAR*1.8*19 IHS/SD/PKD 5/10/10 - Cancelling Official is primary sort - BEGIN
  1. ;S ^TMP($J,"BAR-CXL",BARLOC,BARACCT,BAR("D"),BARPAT,BARBILL)=BARBAMT_U_BARBAL
  1. ; SORT: Cashier, Location, Visit Type (or Clinic) plus PT NM,HRN,BILL#
  1. N BARSORT S BARSORT=$S(BARY("SORT")="V":BARBVSTY,1:BARBCLNC) ; visit type or Clinic
  1. N HRN S HRN=$P(BARBILL,"-",3) I 'HRN S HRN=$P(BAR(1),"^",7)
  1. I HRN="" S HRN="***** "
  1. S ^TMP($J,"BAR-CXL MULT",BARBCANC,BARLOC,BARSORT,BARPAT,BARBILL)=""
  1. S ^TMP($J,"BAR-CXL",BARBCANC,BARLOC,BARSORT,BARPAT,BARBILL)=BARBAMT_U_BARBAL
  1. S ^TMP($J,"BAR-CXL",BARBCANC,BARLOC,BARSORT,BARPAT,BARBILL,"MORE")=BARACCT_U_BAR("D")_U_HRN_U_BARBREAS
  1. ; END 1.8*19
  1. Q
  1. ; ********************************************************************
  1. ;
  1. SUMDATA ;
  1. ; BAR*1.8*19 IHS/SD/PKD 5/10/10 - Add Cancelling Official as primary sort
  1. ; Build global for Summary Report (and Detail totals)
  1. ; Sum by AR Account
  1. ;S BARHOLD=$G(^TMP($J,"BAR-CXL",BARLOC,BARACCT))
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC,BARACCT),U)=$P(BARHOLD,U)+1
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC,BARACCT),U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC,BARACCT),U,3)=$P(BARHOLD,U,3)+BARBAL
  1. ;
  1. ; Sum by Visit Location
  1. ;S BARHOLD=$G(^TMP($J,"BAR-CXL",BARLOC))
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC),U)=$P(BARHOLD,U)+1
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC),U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. ;S $P(^TMP($J,"BAR-CXL",BARLOC),U,3)=$P(BARHOLD,U,3)+BARBAL
  1. ;
  1. ; Sum for Report
  1. ;S BARHOLD=$G(^TMP($J,"BAR-CXL"))
  1. ;S $P(^TMP($J,"BAR-CXL"),U)=$P(BARHOLD,U)+1
  1. ;S $P(^TMP($J,"BAR-CXL"),U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. ;S $P(^TMP($J,"BAR-CXL"),U,3)=$P(BARHOLD,U,3)+BARBAL
  1. ; Build global for Summary Report (and Detail totals)
  1. ;
  1. ; BAR*1.8*19 BEGIN NEW CODE
  1. ;
  1. ; Sum by AR Visit TYPE or CLINIC
  1. N BARSORT S BARSORT=$S(BARY("SORT")="V":BARBVSTY,1:BARBCLNC)
  1. S BARHOLD=$G(^TMP($J,"BAR-CXL",BARBCANC,BARLOC,BARSORT))
  1. S $P(BARHOLD,U)=$P(BARHOLD,U)+1
  1. S $P(BARHOLD,U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. S $P(BARHOLD,U,3)=$P(BARHOLD,U,3)+BARBAL
  1. S ^TMP($J,"BAR-CXL",BARBCANC,BARLOC,BARSORT)=BARHOLD
  1. ;
  1. ; Sum by Visit Location
  1. S BARHOLD=$G(^TMP($J,"BAR-CXL",BARBCANC,BARLOC))
  1. S $P(BARHOLD,U)=$P(BARHOLD,U)+1
  1. S $P(BARHOLD,U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. S $P(BARHOLD,U,3)=$P(BARHOLD,U,3)+BARBAL
  1. S ^TMP($J,"BAR-CXL",BARBCANC,BARLOC)=BARHOLD
  1. ;
  1. ; Sum by Cancelling Official (cashier in 3PB)
  1. S BARHOLD=$G(^TMP($J,"BAR-CXL",BARBCANC))
  1. S $P(BARHOLD,U)=$P(BARHOLD,U)+1
  1. S $P(BARHOLD,U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. S $P(BARHOLD,U,3)=$P(BARHOLD,U,3)+BARBAL
  1. S ^TMP($J,"BAR-CXL",BARBCANC)=BARHOLD
  1. ;
  1. ; Sum for Report
  1. S BARHOLD=$G(^TMP($J,"BAR-CXL"))
  1. S $P(BARHOLD,U)=$P(BARHOLD,U)+1
  1. S $P(BARHOLD,U,2)=$P(BARHOLD,U,2)+BARBAMT
  1. S $P(BARHOLD,U,3)=$P(BARHOLD,U,3)+BARBAL
  1. S ^TMP($J,"BAR-CXL")=BARHOLD
  1. Q
  1. ; END BAR*1.8*19