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

BARRSEL.m

Go to the documentation of this file.
  1. BARRSEL ; IHS/SD/LSL - Selective Report Parameters ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**6,16,19,20,23,24,28**;OCT 26,2005;Build 92
  1. ;
  1. ; IHS/ASDS/LSL - 08/26/00 - Routine created
  1. ; IHS/ASDS/LSL - 01/16/01 - Add Allowance Category Parameter for Period
  1. ; Summary Report at the request of Finance/AR group
  1. ; IHS/ASDS/SDH - 11/21/01 - A/R Statistical Report
  1. ; Modified to check if it is the statistical report and only
  1. ; show related choices
  1. ; IHS/SD/LSL - 05/16/02 - V1.6 Patch 2
  1. ; Modified to display message based on Location type for reports parameter.
  1. ; IHS/SD/LSL - 03/12/04 - V1.8 - Added reports to use inclusion parameters
  1. ; IHS/SD/SDR - v1.8 p6 - DD 4.1.3 - Added negative balance
  1. ; IHS/SD/PKD - 05/07/10 1.8*19 CXL;TDN;PAY reports- Added inclusion parameters
  1. ; IHS/SD/TMM 07/20/2010 1.8*19 Add Group Plan.
  1. ; IHS/SD/PKD 1/26/11 1.8*20 Move code from tags: DISP; CLIN; VTYP to BARRSEL1
  1. ;IHS/SD/POT - 1.8*23 - JUN 2013 MOD FOR ICD9/10 DX (DROPPED 'PRIMARY')
  1. ;IHS/SD/POT - 1.8*23 - SEP 2013 made selection of DXs BAR(DX) mandatory for IPDR report
  1. ; ASKAGAIN replaced by ASKAGAI1 (to keep the current selection in BARY()
  1. ;IHS/SD/POT - 1.8*24 - HEAT150941 Allow ALL DX9/10 2/9/2014: if no DX selected: show ALL DX of ALL available coding systems; 3/10/2014
  1. ;IHS/SD/SDR - 1.8*28 - Updated p23, p24 documentation'
  1. ;IHS/SD/POT - 1.8*28 - MADE DT SELECTION MANDATORY FOR IPDR REPORT
  1. ;
  1. ; *********************************************************************
  1. ;
  1. ;start old bar*1.8*23 IHS/SD/POT
  1. ;ASKAGAIN ;EP - IHS/SD/TPF BAR*1.8*6 DD 4.1.5
  1. ;K DIC,DIR,BARY
  1. ;end old start new bar*1.8*23 IHS/SD/POT
  1. ASKAGAIN ;EP
  1. K BARY
  1. ;start new bar*1.8*24 IHS/SD/POT
  1. ;DEFAULT DX VALUES ; 3/10/2014
  1. I BARP("RTN")="BARRIDR"!(BARP("RTN")="BARRPAY") D
  1. .I $T(+1^ICDEX)="" S BARY("DX-ICDVER")="9",BARY("DX9")="ALL"
  1. .I $T(+1^ICDEX)]"" S BARY("DX-ICDVER")="B",BARY("DX9")="ALL",BARY("DX10")="ALL"
  1. ;end new bar*1.8*24 IHS/SD/POT
  1. ASKAGAI1 ;KEEP CURRENT BARY SELECTION
  1. K DIC,DIR
  1. ;end new bar*1.8*23 IHS/SD/POT
  1. S BARY("X")="W $$SDT^BARDUTL(X)"
  1. S (BARASK,BARDONE)=0
  1. S BARMENU=$S($D(XQY0):$P(XQY0,U,2),1:$P($G(^XUTL("XQ",$J,"S")),U,3))
  1. S BAR("OPT")="LIST" ; Default
  1. S:BARMENU["Negative" BAR("OPT")="NEG" ;IHS/SD/SDR bar*1.8*6 DD 4.1.3
  1. S:BARMENU["Transaction" BAR("OPT")="TAR"
  1. S:BARMENU["Age Detail" BAR("OPT")="AGE"
  1. S:BARMENU["Statistical" BAR("OPT")="STA"
  1. S:BARMENU["Inpatient" BAR("OPT")="IPDR"
  1. S:BARMENU["Payment" BAR("OPT")="PRP"
  1. S:BARMENU["Transaction" BAR("OPT")="TAR"
  1. S:BARMENU["Days in AR" BAR("OPT")="DAYS" ;BAR*1.8*16 IHS/SD/TPF 1/27/10
  1. ; BAR*1.8*19 IHS/SD/PKD 5/05/10
  1. I BARMENU["Cancelled Bills Report" D ; Set Defaults
  1. .S BAR("OPT")="CXL"
  1. .I '$D(BARY("OBAL")) D OBAL^BARRCXL
  1. .I '$G(BARY("RTYP")) S BARY("RTYP")=1,BARY("RTYP","NM")="DETAIL"
  1. S:BARMENU="Payment Summary Report by TDN" BAR("OPT")="TDN"
  1. S:BARMENU="Top Payer Report" BAR("OPT")="PAY"
  1. I BAR("OPT")="TDN"!(BAR("OPT")="PAY") S BAR("RTYP")=1,BAR("RTYP","NM")="Summary"
  1. ; END BAR*1.8*19
  1. ;IHS/SD/TPF 5/22/08 BAR*1.8*6 DD 4.1.5
  1. I BARMENU["Transaction Statistical" D
  1. .S BAR("OPT")="TSR"
  1. .S BARY("RTYP")=1
  1. .S BARY("RTYP","NM")="DETAIL"
  1. .S BARY("TRANS TYPE",40)="PAYMENT"
  1. .S BARY("DATA SRC")="BOTH" ;bar*1.8*20 REQ10
  1. ;END BAR*1.8*6 DD 4.1.5
  1. I BARMENU["Large" D
  1. .S BAR("OPT")="LBL"
  1. .S BARY("LBL")=5000
  1. I BARMENU["Small" D
  1. .S BAR("OPT")="SBL"
  1. .S BARY("SBL")=5
  1. I ",TAR,AGE,LIST,"[(","_BAR("OPT")_",") D
  1. .S BARY("RTYP")=1
  1. .S BARY("RTYP","NM")="Detail"
  1. D MSG
  1. ;F D Q:+BARDONE2!(+BARDONE) ;bar*1.8*28 IHS/SD/SDR HEAT204148
  1. F D Q:+BARDONE2!(+BARDONE)!$D(DIRUT) ;bar*1.8*28 IHS/SD/SDR HEAT204148
  1. .Q:$G(DIRUT) ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. .D DISP ; Display current parameters
  1. .D PARM ; Select additional parameters
  1. I $G(DUOUT) D ^BARVKL0 Q ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. I +BARDONE D ^BARVKL0 Q
  1. ;start old bar*1.8*24 IHS/SD/POT
  1. ;;start new bar*1.8*23 IHS/SD/POT
  1. ;I BAR("OPT")="IPDR" I '$D(BARY("DX9")) I '$D(BARY("DX10")) D G ASKAGAI1
  1. ;.W !!,"The 'Inpatient Primary Diagnosis Report' requires you enter"
  1. ;.W !,"a diagnosis.",!!
  1. ;.Q
  1. ;;end new bar*1.8*23 IHS/SD/POT
  1. ;end old bar*1.8*24 IHS/SD/POT
  1. ;
  1. I BAR("OPT")="IPDR"&('$D(BARY("DT"))) G ASKAGAI1 ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. Q:BAR("OPT")="IPDR"!(BAR("OPT")="PRP")
  1. ;BEGIN BAR*1.8*16 IHS/SD/TPF 1/27/10
  1. I (BAR("OPT")="DAYS"),'$D(BARY("DT")) D G ASKAGAIN
  1. .W !!,"The 'Days in AR' report requires you to enter"
  1. .W !,"a Visit date range."
  1. .W !!
  1. .D ^XBFMK ;bar*1.8*28 IHS/SD/SDR HEAT224215
  1. .H 1 ;bar*1.8*28 IHS/SD/SDR HEAT224215
  1. .Q ;bar*1.8*24 IHS/SD/POT
  1. ;END BAR*1.8*16
  1. ; BEGIN BAR*1.8.19 PKD
  1. ;I BAR("OPT")="PAY"&('$D(BARY("DT"))) D G ASKAGAIN ;bar*1.8*23 IHS/SD/POT
  1. I BAR("OPT")="PAY"&('$D(BARY("DT"))) D G ASKAGAI1 ;bar*1.8*23 IHS/SD/POT
  1. .W !!,"This is a required response. Enter '^' to exit.",!,*7," A Date Range must be entered for the report."
  1. ; IHS/SD/PKD 1.8*19 6/28/10
  1. TDNCHK ;
  1. I BAR("OPT")="TDN"&('$D(BARY("DT"))&('$D(BARY("TDN")))) D G ASKAGAIN
  1. .W !!,"This is a required response. Enter '^' to exit."
  1. .W !," A Date Range must be entered for the report.",!! ;bar*1.8*24 IHS/SD/POT
  1. .Q ;bar*1.8*24 IHS/SD/POT
  1. ; end BAR 1.8*19
  1. ;IHS/SD/TPF BEGIN BAR*1.8*6 DD 4.1.5
  1. I ((BAR("OPT")="TSR"))&('$D(BARY("TRANS TYPE"))) D G ASKAGAIN
  1. .W !!,"The 'Transaction Statistical Report' requires you enter"
  1. .W !,"a transaction type."
  1. ;END BAR*1.8*6
  1. ;IHS/SD/AR BAR*1.8*19
  1. I "TSR"[BAR("OPT") S BARY("SORT")="N"
  1. ;I ",LBL,SBL,"[(","_BAR("OPT")_",") D Q ;IHS/SD/SDR bar*1.8*6 DD 4.1.3
  1. I ",LBL,SBL,NEG,"[(","_BAR("OPT")_",") D Q ;IHS/SD/SDR bar*1.8*6 DD 4.1.3
  1. .D ASKSORT
  1. .D:BARASK SORT
  1. D SORT
  1. Q
  1. ; *********************************************************************
  1. ;
  1. MSG ; EP
  1. N X S X=$G(BAR("OPT")) Q:(X="PAY"!(X="TDN"))&($I(BARMSGPT)>1) ; IHS/BAR*1.8*19 PKD
  1. W !!,$$EN^BARVDF("RVN"),"NOTE:",$$EN^BARVDF("RVF")
  1. I BAR("LOC")="BILLING" D MSG1
  1. E D MSG2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. MSG1 ;
  1. ; Message if Site Parameter "Location type for Reports" is BILLING
  1. W ?7,"This report will contain data for the BILLING location you are logged "
  1. W !?7,"into. Selecting a Visit Location will allow you to run the report for"
  1. W !?7,"a specific VISIT location under this BILLING location."
  1. Q
  1. ; *********************************************************************
  1. ;
  1. MSG2 ;
  1. ; Message if Site Parameter "Location type for Reports" is VISIT
  1. W ?7,"This report will contain data for VISIT location(s) regardless of"
  1. W !?7,"BILLING location."
  1. Q
  1. ; *********************************************************************
  1. ; *********************************************************************
  1. ;
  1. DISP ;
  1. ; Display current inclusion parameters
  1. ; IHS/SD/PKD 1.8*20 SAC size limitations: move code
  1. D DISP^BARRSEL1
  1. Q
  1. ; *********************************************************************
  1. ; *********************************************************************
  1. ;
  1. PARM ;
  1. ; Choose additional inclusion parameters
  1. S (BARDONE2,BARDONE3)=0
  1. K DIR
  1. S DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:DATE RANGE;4:PROVIDER;5:REPORT TYPE"
  1. S:BAR("OPT")="AGE" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:PROVIDER;4:REPORT TYPE"
  1. S:BAR("OPT")="TAR" DIR(0)="SO^1:LOCATION;2:TRANSACTION DATE RANGE;3:COLLECTION BATCH;4:COLLECTION BATCH ITEM;5:A/R ENTRY CLERK;6:PROVIDER;7:REPORT TYPE"
  1. S:BAR("OPT")="STA" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:DATE RANGE;4:PROVIDER"
  1. ;S:BAR("OPT")="IPDR" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:ALLOWANCE CATEGORY;4:DATE RANGE;5:PROVIDER;6:PRIMARY DIAGNOSIS;7:DISCHARGE SERVICE" ;bar*1.8*24 IHS/SD/POT
  1. ;S:BAR("OPT")="IPDR" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:ALLOWANCE CATEGORY;4:DATE RANGE;5:PROVIDER;6:DIAGNOSIS;7:DISCHARGE SERVICE" ;bar*1.8*24 IHS/SD/POT
  1. S:BAR("OPT")="LBL" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:ALLOWANCE CATEGORY;4:LARGE BALANCE"
  1. S:BAR("OPT")="SBL" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:ALLOWANCE CATEGORY;4:SMALL BALANCE"
  1. S:BAR("OPT")="PRP" DIR(0)="SO^1:LOCATION;2:COLLECTION POINT;3:INSURER TYPE"
  1. S:BAR("OPT")="NEG" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:ALLOWANCE CATEGORY" ;IHS/SD/SDR bar*1.8*6 DD 4.1.3
  1. ;IHS/SD/TPF BAR*1.8*6 DD 4.1.5
  1. I BAR("OPT")="TSR" D
  1. .;S DIR(0)="SO^1:DATE RANGE;2:BILLING ENTITY;3:COLLECTION BATCH;4:COLLECTION BATCH ITEM;5:POSTING CLERK;6:LOCATION;7:PROVIDER;8:ALLOWANCE CATEGORY;9:TRANSACTION TYPE;10:REPORT TYPE" ;bar*1.8*20 REQ10
  1. .S DIR(0)="SO^1:DATE RANGE;2:BILLING ENTITY;3:COLLECTION BATCH;4:COLLECTION BATCH ITEM;5:POSTING CLERK;6:LOCATION;7:PROVIDER;8:ALLOWANCE CATEGORY;9:TRANSACTION TYPE;10:REPORT TYPE;11:DATA SOURCE" ;bar*1.8*20 REQ10
  1. ;END
  1. ;BEGIN BAR*1.8*16 IHS/SD/TPF 1/2/7/10
  1. S:BAR("OPT")="DAYS" DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:DATE RANGE;4:PROVIDER"
  1. ;END
  1. ;BEGIN BAR*1.8.19 IHS/SD/PKD 5/05/10
  1. I BAR("OPT")="CXL" D
  1. .S DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:DATE RANGE;4:CANCELLING OFFICIAL;5:PROVIDER;6:ELIGIBILITY STATUS;7:REPORT TYPE"
  1. S:BAR("OPT")="TDN" DIR(0)="SO^1:LOCATION;2:One or more TDN's;3:DATE RANGE"
  1. ;S:BAR("OPT")="PAY" DIR(0)="SO^1:LOCATION;2:DATE RANGE;3:PROVIDER;4:CLINIC;5:APPROVING OFFICIAL;6:PRIMARY DIAGNOSIS;7:ADJUSTMENT;8:ALLOWANCE CATEGORY" ;bar*1.8*24 IHS/SD/POT
  1. S:BAR("OPT")="PAY" DIR(0)="SO^1:LOCATION;2:DATE RANGE;3:PROVIDER;4:CLINIC;5:APPROVING OFFICIAL;6:DIAGNOSIS;7:ADJUSTMENT;8:ALLOWANCE CATEGORY" ;bar*1.8*24 IHS/SD/POT
  1. ;END
  1. S DIR("A")="Select ONE or MORE of the above INCLUSION PARAMETERS"
  1. S DIR("?")="The report can be restricted to one or more of the listed parameters. A parameter can be removed by reselecting it and making a null entry."
  1. D ^DIR
  1. K DIR
  1. I $D(DIRUT) Q ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. ;I $E(X)="^" S BARDONE=1 Q ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. I $E(Y)="^" S BARDONE=1 Q ;bar*1.8*28 IHS/SD/POT HEAT182240
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIRUT)) S BARDONE2=1 Q
  1. S BARSEL=Y
  1. K BARTAG
  1. ;
  1. ;BEGIN IHS/SD/TPF BAR*1.8*6 DD 4.1.5
  1. I BAR("OPT")="TSR" D Q
  1. .S:BARSEL=1 BARTAG="DT"
  1. .S:BARSEL=2 BARTAG="TYP"
  1. .S:BARSEL=3 BARTAG="BATCH"
  1. .S:BARSEL=4 BARTAG="ITEM"
  1. .S:BARSEL=5 BARTAG="AR"
  1. .S:BARSEL=6 BARTAG="LOC"
  1. .S:BARSEL=7 BARTAG="PRV"
  1. .S:BARSEL=8 BARTAG="ALL"
  1. .S:BARSEL=9 BARTAG="TRANTYP"
  1. .S:BARSEL=10 BARTAG="RTYP"
  1. .S:BARSEL=11 BARTAG="DATASRC" ;bar*1.8*20 REQ10
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;END NEW CODE
  1. ;BEGIN IHS/SD/PKD BAR*1.8*19 4/27/10
  1. CXL I BAR("OPT")="CXL" D Q
  1. .S BARTAG=$P("LOC^TYP^DT^CANC^PRV^PTYP^RTYP",U,BARSEL)
  1. .I BARSEL=4!(BARSEL=6) S BARTAG=BARTAG_"^BARRSL2"
  1. .E S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. PAY I BAR("OPT")="PAY" D Q
  1. .S BARTAG=$P("LOC^DT^PRV^CLIN^APPR^DX^ADJTYP^ALL",U,BARSEL)
  1. .I "12368"[BARSEL S BARTAG=BARTAG_"^BARRSL1" ;
  1. .I "5"[BARSEL S BARTAG=BARTAG_"^BARRSL2" ; ApprOfficial
  1. .I BARSEL=7 S BARTAG=BARTAG_"^BARRPAY" ; AdjTyp
  1. .D @BARTAG
  1. TDN I BAR("OPT")="TDN" D Q
  1. .S:BARSEL=1 BARTAG="LOC^BARRSL1"
  1. .S:BARSEL=2 BARTAG="TDN^BARRSL2",BARSRT=2
  1. .S:BARSEL=3 BARTAG="DATES^BARRPTD",BARSRT=1
  1. .D @BARTAG
  1. ;END NEW CODE 1.8*19
  1. ;
  1. I BAR("OPT")="AGE" D Q
  1. .S BARTAG="RTYP"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="TYP"
  1. .S:BARSEL=3 BARTAG="PRV"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;
  1. I BAR("OPT")="TAR" D Q
  1. .S BARTAG="RTYP"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="DT"
  1. .S:BARSEL=3 BARTAG="BATCH"
  1. .S:BARSEL=4 BARTAG="ITEM"
  1. .S:BARSEL=5 BARTAG="AR"
  1. .S:BARSEL=6 BARTAG="PRV"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;
  1. I BAR("OPT")="IPDR" D Q
  1. .S BARTAG="DSVC"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="TYP"
  1. .S:BARSEL=3 BARTAG="ALL"
  1. .S:BARSEL=4 BARTAG="DT"
  1. .S:BARSEL=5 BARTAG="PRV"
  1. .S:BARSEL=6 BARTAG="DX"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;
  1. I ",LBL,SBL,"[(","_BAR("OPT")_",") D Q
  1. .S BARTAG="ALL"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="TYP"
  1. .I BARSEL=4,BAR("OPT")="LBL" S BARTAG="LBL"
  1. .I BARSEL=4,BAR("OPT")="SBL" S BARTAG="SBL"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;
  1. I BAR("OPT")="PRP" D Q
  1. .S BARTAG="ITYP"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="COLPT"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;
  1. ;start new code IHS/SD/SDR bar*1.8*6 DD 4.1.3
  1. I BAR("OPT")="NEG" D Q
  1. .S BARTAG="ALL"
  1. .S:BARSEL=1 BARTAG="LOC"
  1. .S:BARSEL=2 BARTAG="TYP"
  1. .S BARTAG=BARTAG_"^BARRSL1"
  1. .D @BARTAG
  1. ;end new code 4.1.3
  1. ;
  1. S BARTAG="RTYP"
  1. S:BARSEL=1 BARTAG="LOC"
  1. S:BARSEL=2 BARTAG="TYP"
  1. S:BARSEL=3 BARTAG="DT"
  1. S:BARSEL=4 BARTAG="PRV"
  1. S BARTAG=BARTAG_"^BARRSL1"
  1. D @BARTAG
  1. Q
  1. ; *********************************************************************
  1. ; *********************************************************************
  1. ;
  1. ASKSORT ; EP
  1. W !
  1. K DIR
  1. S DIR(0)="Y^A"
  1. S DIR("A")="INCLUDE CLINIC OR VISIT TYPE? "
  1. S DIR("B")="N"
  1. D ^DIR
  1. S:Y BARASK=1
  1. K DIR
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SORT ; EP
  1. ; Sort criteria
  1. ; BAR*1.8*19 IHS/SD/PKD 6/9/10
  1. Q:BAR("OPT")="TDN"!(BAR("OPT")="PAY") ; Sort by TDN or Date ; END
  1. W !
  1. K DIR
  1. S DIR(0)="SA^C:CLINIC;V:VISIT TYPE"
  1. S DIR("A")="Sort Report by [V]isit Type or [C]linic: "
  1. S DIR("B")="V"
  1. S DIR("?")="Enter 'V' to sort the report by Visit Type (inpatient, outpatient, etc.) or a 'C' to sort it by the Clinic associated with each visit."
  1. D ^DIR
  1. K DIR
  1. I $D(DIROUT)!$D(DIRUT) S BARDONE=1 Q
  1. S BARY("SORT")=Y
  1. I BARY("SORT")="C" D CLIN Q
  1. D VTYP
  1. Q
  1. ; *********************************************************************
  1. ;
  1. CLIN ; EP
  1. ; Select clinics to sort by
  1. ; IHS/SD/PKD 1.8*20 Move Code SAC size
  1. D CLIN^BARRSEL1
  1. Q
  1. ; *********************************************************************
  1. ;
  1. VTYP ; EP
  1. ; Select Vitst Types to sort by
  1. ; IHS/SD/PKD 1.8*20 SAC Size limits move code
  1. D VTYP^BARRSEL1
  1. Q