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

BARRASM.m

Go to the documentation of this file.
  1. BARRASM ; IHS/SD/LSL - Age Summary Report ; 09/15/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**1,6,7,23,24**;OCT 26, 2005;Build 69
  1. ; MODIFIED XTMP FILE NAME TO TMP TO MEET SAC REQUIREMENTS;MRS:BAR*1.8*7 IM29892
  1. ; IHS/ASDS/LSL - 02/27/02 - Routine created to replace BARRSAGE
  1. ;
  1. ; IHS/SD/LSL - 02/20/03 - V1.7 Patch 1
  1. ; Modified to include report by Discharge Service
  1. ; When sort by Clinic, make it alphabetical
  1. ;
  1. ; IHS/SD/LSL - 11/24/03 - V1.7 Patch 4
  1. ; Add Visit Location Sort level to accomodate EISS
  1. ;
  1. ;IHS/SD/POT 03/15/13 ADDED NEW VA billing ;BAR*1.8*23
  1. ;
  1. ;IHS\OCAO\CPC -20131007 OCT 2013 HEAT#132196 PROBLEM WITH NO BILLING ENTITY - BAR*1.8*24
  1. Q
  1. ; *********************************************************************
  1. EN ; EP
  1. K BARY,BAR
  1. D:'$D(BARUSR) INIT^BARUTL ; Set up basic A/R Variables
  1. S BARP("RTN")="BARRASM" ; Routine used to gather data
  1. S BAR("PRIVACY")=1 ; Privacy act applies (used BARRHD)
  1. S BAR("LOC")=$$GET1^DIQ(90052.06,DUZ(2),16) ; BILLING or VISIT
  1. I BAR("LOC")="" S BAR("LOC")="VISIT"
  1. D ASK^BARRASMA ; Ask all question
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) Q
  1. D SETHDR ; Build header array
  1. S BARQ("RC")="COMPUTE^BARRASM" ; Build tmp global with data
  1. S BARQ("RP")="PRINT^BARRASMB" ; 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. ;
  1. SETHDR ;
  1. ; Build header array
  1. S BAR("LVL")=0
  1. S BAR("HD",0)="Age Summary Report"
  1. I $D(BARP("UAGE")) S BAR("HD",0)="UFMS "_BAR("HD",0)_" for FY "_$P(BARP("UAGE"),U) ;MRS:BAR*1.8*7 TO131 REQ_2
  1. I ",1,2,3,4,"[(","_BARY("STCR")_",") S BAR("HD",0)=BAR("HD",0)_" by "_BARY("STCR","NM")
  1. I BARY("STCR")=5 D ALLOW^BARRHD,CHK^BARRHD
  1. I BARY("STCR")=6 D BIL^BARRHD,CHK^BARRHD
  1. I BARY("STCR")=7 D ITYP^BARRHD,CHK^BARRHD
  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 - CALLED FROM BARBIZ
  1. S BAR("SUBR")="BAR-ASM"
  1. K ^TMP($J,"BAR-ASM")
  1. K ^TMP($J,"BAR-ASMT")
  1. D NOW^%DTC
  1. S BARRUN=%
  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
  1. S DUZ(2)=BARDUZ2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DATA ;
  1. ; Gather data for bills found in LOOP^BARRUTL
  1. ;
  1. ; BAR("SUB0") = Visit Location
  1. ; BAR("SUB1") = Clinic / visit type / A/R Account / Discharge Service
  1. ; BAR("SUB2") = Billing Entity / Allowance Category / Insurer Type
  1. ; BAR("SUB3") = A/R Account
  1. ; BAR("SUB4") = A/R Bill
  1. ;
  1. ; BAR(1) = 0-30 (Current)
  1. ; BAR(2) = 31-60
  1. ; BAR(3) = 61-90
  1. ; BAR(4) = 91-120
  1. ; BAR(5) = 120+
  1. ; BAR(6) = Account Balance
  1. ; -------------------------------
  1. ;
  1. F I=1:1:6 S BAR(I)=0
  1. K BAR("SUB0")
  1. K BAR("SUB1"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")
  1. S BARP("HIT")=0
  1. I $D(BARP("UAGE")) Q:'$$UAGE^BARRASM2(BAR) ;MRS:BAR*1.8*7 TO131 REQ_2
  1. D BILL^BARRCHK
  1. Q:'BARP("HIT")
  1. S BAR(1)=$$GET1^DIQ(90050.01,BAR,7.3)
  1. S BAR(2)=$$GET1^DIQ(90050.01,BAR,7.4)
  1. S BAR(3)=$$GET1^DIQ(90050.01,BAR,7.5)
  1. S BAR(4)=$$GET1^DIQ(90050.01,BAR,7.6)
  1. S BAR(5)=$$GET1^DIQ(90050.01,BAR,7.7)
  1. S BAR(6)=$$GET1^DIQ(90050.01,BAR,15,"I")
  1. S BARRAGE=$$GET1^DIQ(90050.01,BAR,7.2)
  1. S ^BARASMD(BARRUN,BAR)=BAR(6)_U_BARRAGE_U_BAR("I")
  1. S BAR("SUB0")=$$GET1^DIQ(9999999.06,BAR("L"),.01)
  1. S:BAR("SUB0")="" BAR("SUB0")="No Visit Location"
  1. I ",1,2,3,4,"[(","_BARY("STCR")_",") D Q
  1. . I BARY("STCR")=1 D
  1. . . S BAR("SUB1")=BAR("I")
  1. . . I BAR("SUB1")]"" S BAR("SUB1")=$$GET1^DIQ(90050.02,BAR("SUB1"),.01)
  1. . . I BAR("SUB1")="" S BAR("SUB1")="No A/R Account"
  1. . I BARY("STCR")=2 D
  1. . . S BAR("SUB1")=BAR("C")
  1. . . I BAR("SUB1")]"",BAR("SUB1")'=99999 S BAR("SUB1")=$$GET1^DIQ(40.7,BAR("SUB1"),.01)
  1. . . I BAR("SUB1")=""!(BAR("SUB1")=99999) S BAR("SUB1")="No Clinic Type"
  1. . I BARY("STCR")=3 D
  1. . . S BAR("SUB1")=BAR("V")
  1. . . I BAR("SUB1")]"",BAR("SUB1")'=99999 S BAR("SUB1")=$$GET1^DIQ(9002274.8,BAR("SUB1"),.01)
  1. . . I BAR("SUB1")=""!(BAR("SUB1")=99999) S BAR("SUB1")="No Visit Type"
  1. . I BARY("STCR")=4 D
  1. . . S BAR("SUB1")=BAR("DS")
  1. . . I BAR("SUB1")]"",BAR("SUB1")'=99999 S BAR("SUB1")=$$GET1^DIQ(45.7,BAR("SUB1"),.01)
  1. . . I BAR("SUB1")=""!(BAR("SUB1")=99999) S BAR("SUB1")="No Discharge Service"
  1. . D STANDARD
  1. I BARY("STCR")=5 D
  1. . S BAR("SUB2")="OTHER"
  1. . ;
  1. . I BAR("ALL")="D" S BAR("SUB2")="MEDICAID"
  1. . I BAR("ALL")="K" S BAR("SUB2")="MEDICAID"
  1. . I BAR("ALL")="FPL" S BAR("SUB2")="MEDICAID"
  1. . ;
  1. . I BAR("ALL")="R" S BAR("SUB2")="MEDICARE"
  1. . I BAR("ALL")="MH" S BAR("SUB2")="MEDICARE"
  1. . I BAR("ALL")="MD" S BAR("SUB2")="MEDICARE"
  1. . I BAR("ALL")="MC" S BAR("SUB2")="MEDICARE"
  1. . I BAR("ALL")="MCC" S BAR("SUB2")="MEDICARE"
  1. . ;
  1. . I BAR("ALL")="H" S BAR("SUB2")="PRIVATE INSURANCE"
  1. . I BAR("ALL")="M" S BAR("SUB2")="PRIVATE INSURANCE"
  1. . I BAR("ALL")="P" S BAR("SUB2")="PRIVATE INSURANCE"
  1. . I BAR("ALL")="F" S BAR("SUB2")="PRIVATE INSURANCE"
  1. . ;
  1. . I BAR("ALL")="V" S BAR("SUB2")="VETERANS"
  1. . ;
  1. ;I BARY("STCR")=6 D ;OLD CODE
  1. ;. ;I $L(BAR("BI")) S BAR("SUB2")=$P($T(@BAR("BI")),";;",2) ;BAR*1.8*1 IM21585
  1. ;. I $L(BAR("BI"))<4 S BAR("SUB2")=$P($T(@BAR("BI")),";;",2) ;BAR*1.8*1 IM21585
  1. ;. S:BAR("SUB2")="" BAR("SUB2")=BAR("BI")
  1. ;. E S BAR("SUB2")=BAR("BI")
  1. ;PROBLEM WITH NO BILLING ENTITY - IHS\OCAO\CPC -20131007 NEW CODE
  1. I BARY("STCR")=6 D
  1. . S BAR("SUB2")=BAR("BI") ;No Billing Entity
  1. . I $L(BAR("BI"))<4 I $P($T(@BAR("BI")),";;",2)]"" D
  1. . . S BAR("SUB2")=$P($T(@BAR("BI")),";;",2)
  1. I BARY("STCR")=7 D
  1. . I $L(BAR("BI")) S BAR("SUB2")=$P($T(@BAR("BI")),";;",3) ;BAR*1.8*1 IM21585
  1. . S:BAR("SUB2")="" BAR("SUB2")="No Insurer Type"
  1. . E S BAR("SUB2")="No Insurer Type"
  1. S BAR("SUB3")=BAR("I")
  1. I BAR("SUB3")]"" S BAR("SUB3")=$$GET1^DIQ(90050.02,BAR("SUB3"),.01)
  1. I BAR("SUB3")="" S BAR("SUB3")="No A/R Account"
  1. S BAR("SUB4")=$$GET1^DIQ(90050.01,BAR,.01)
  1. I $G(BARY("RTYP"))=2 D
  1. . D DETAIL
  1. I $G(BARY("RTYP"))=3 D
  1. . D BILL
  1. . D DETAIL
  1. D SUMMARY
  1. Q
  1. ; *********************************************************************
  1. ;
  1. STANDARD ;
  1. ; Temp global for SORT CRITERIA Clinic or Visit or A/R Account
  1. ; or Discharge Service
  1. ; Detail Lines
  1. S BARHLD=$G(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")))
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0"),BAR("SUB1")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. ;
  1. ; Visit location totals
  1. S BARHLD=$G(^TMP($J,"BAR-ASM",BAR("SUB0")))
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASM",BAR("SUB0")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. ;
  1. ; Report Total
  1. S BARHLD=$G(^TMP($J,"BAR-ASM"))
  1. S $P(^TMP($J,"BAR-ASM"),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASM"),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASM"),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASM"),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASM"),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASM"),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SUMMARY ;
  1. ; Temp global for SORT CRITERIA Allowance Category or Billing Entity
  1. ; and Report Type Summarize.
  1. ;
  1. ; Detail Lines
  1. S BARHLD=$G(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")))
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. ;
  1. ; Visit location totals
  1. S BARHLD=$G(^TMP($J,"BAR-ASMT",BAR("SUB0")))
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0")),U,7)=BAR("L") ; DUZ(2) value
  1. ;
  1. ; Report Total
  1. S BARHLD=$G(^TMP($J,"BAR-ASMT"))
  1. S $P(^TMP($J,"BAR-ASMT"),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASMT"),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASMT"),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASMT"),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASMT"),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASMT"),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DETAIL ;
  1. ; Temp global for SORT CRITERIA Allowance Category or Billing Entity
  1. ; and Report Type Summarize by payor w/in.
  1. ;
  1. ; Detail Lines
  1. S BARHLD=$G(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")))
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. BILL ;
  1. ; Temp global for SORT CRITERIA Allowance Category or Billing Entity
  1. ; and Report Type Summarize by bill w/in payer w/in all cat/bill ent
  1. ;
  1. ; Detail Lines
  1. S BARHLD=$G(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")))
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U)=$P(BARHLD,U)+BAR(1)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U,2)=$P(BARHLD,U,2)+BAR(2)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U,3)=$P(BARHLD,U,3)+BAR(3)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U,4)=$P(BARHLD,U,4)+BAR(4)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U,5)=$P(BARHLD,U,5)+BAR(5)
  1. S $P(^TMP($J,"BAR-ASMT",BAR("SUB0"),BAR("SUB2"),BAR("SUB3"),BAR("SUB4")),U,6)=$P(BARHLD,U,6)+BAR(6)
  1. Q
  1. ; ********************************************************************
  1. ;
  1. ; ********************************************************************
  1. ;THIS TABLE REPLICATES ^AUTTINTY INSURER TYPE (21 ENTRIES) P.OTT 4/12/2013
  1. ;AND MAPS INSURER TYPE CODE TO CATEGORY (IE: W --> OTHER)
  1. H ;;PRIVATE INSURANCE;;HMO
  1. M ;;PRIVATE INSURANCE;;MEDICARE SUPPL.
  1. D ;;MEDICAID;;MEDICAID FI
  1. R ;;MEDICARE;;MEDICARE FI
  1. P ;;PRIVATE INSURANCE;;PRIVATE INSURANCE
  1. W ;;OTHER;;WORKMEN'S COMP
  1. C ;;OTHER;;CHAMPUS
  1. N ;;OTHER;;NON-BENEFICIARY (NON-INDIAN)
  1. I ;;OTHER;;INDIAN PATIENT
  1. K ;;MEDICAID;;CHIP (KIDSCARE)
  1. T ;;OTHER;;THIRD PARTY LIABILITY
  1. G ;;OTHER;;GUARANTOR
  1. MD ;;MEDICARE;;MCR PART D
  1. MH ;;MEDICARE;;MEDICARE HMO
  1. MMC ;;MEDICARE;;MCR MANAGED CARE
  1. TSI ;;OTHER;;TRIBAL SELF INSURED
  1. SEP ;;OTHER;;STATE EXCHANGE PLAN
  1. FPL ;;MEDICAID;;FPL 133 PERCENT
  1. MC ;;MEDICARE;;MCR PART C
  1. F ;;PRIVATE INSURANCE;;FRATERNAL ORGANIZATION
  1. V ;;VETERAN;;VETERANS MEDICAL BENEFITS
  1. ;;***END OF TABLE**