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

ABMDRSL1.m

Go to the documentation of this file.
  1. ABMDRSL1 ; IHS/ASDST/DMJ - Selective Report Parameters-PART 2 ;
  1. ;;2.6;IHS Third Party Billing;**1,4,6,11,21**;NOV 12, 2009;Build 379
  1. ;Original;TMD;07/14/95 12:27 PM
  1. ;
  1. ;IHS/SD/SDR - V2.5 P8 - Added code for Cancelling official
  1. ;IHS/SD/SDR - v2.5 p8 - Added code for pending status (12)
  1. ;IHS/SD/SDR - v2.5 p13 - NO IM
  1. ;
  1. ;IHS/SD/SDR - 2.6*1 - HEAT4482 - Added claim status prompt
  1. ;IHS/SD/SDR - 2.6*4 - NOHEAT - fixed report headers for closed/exported dates
  1. ;IHS/SD/SDR - 2.6*21 - HEAT241429 - Added code to do Visit Dates only for Denied Bills Report
  1. ;IHS/SD/SDR - 2.6*21 - VMBP - Updated p11 changes to include Serena ref#s
  1. ;IHS/SD/SDR - 2.6*21 - VMBP - Updated to include all new insurer types
  1. ;
  1. LOC ;EP
  1. W ! K DIC,ABMY("LOC")
  1. S DIC="^BAR(90052.05,DUZ(2),"
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select LOCATION: "
  1. D ^DIC K DIC
  1. Q:+Y<1
  1. S ABMY("LOC")=+Y
  1. Q
  1. INS ;EP
  1. K ABMY("TYP"),ABMY("INS")
  1. W !
  1. S DIC="^AUTNINS("
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. Q:+Y<0
  1. S ABMY("INS")=+Y
  1. Q
  1. ;
  1. PAT ;
  1. K ABMY("TYP"),ABMY("PAT")
  1. W !
  1. S DIC="^AUPNPAT("
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. K AUPNLK("ALL")
  1. Q:+Y<0
  1. S ABMY("PAT")=+Y
  1. Q
  1. ;
  1. TYP ;EP
  1. K DIR,ABMY("TYP"),ABMY("INS"),ABMY("PAT")
  1. ;S DIR(0)="SO^1:MEDICARE;2:MEDICAID;3:PRIVATE INSURANCE;4:NON-BENEFICIARY PATIENTS;5:BENEFICIARY PATIENTS;6:SPECIFIC INSURER;7:SPECIFIC PATIENT;8:WORKMEN'S COMP;9:PRIVATE + WORKMEN'S COMP;10:CHIP" ;abm*2.6*11 VMBP#3
  1. ;start new abm*2.6*21 IHS/SD/SDR VMBP#3 RQMT_96
  1. S DIR(0)="SO^1:MEDICARE;2:MEDICAID;3:PRIVATE INSURANCE;4:NON-BENEFICIARY PATIENTS;5:BENEFICIARY PATIENTS;6:SPECIFIC INSURER;7:SPECIFIC PATIENT;8:WORKMEN'S COMP;9:PRIVATE + WORKMEN'S COMP;10:CHIP;11:VETERANS MEDICAL BENEFIT"
  1. S DIR(0)=DIR(0)_";12:3P LIABILITY;13:FPL 133 PERCENT;14:GUARANTOR;15:MEDICARE HMO;16:STATE EXCHANGE PLAN;17:TRIBAL SELF INSURED"
  1. ;end new abm*2.6*21 IHS/SD/SDR RQMT_96
  1. S DIR("A")="Select TYPE of BILLING ENTITY to Display"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)!$D(DIROUT)
  1. ;S ABMY("TYP")=$S(Y=1:"R",Y=2:"D",Y=3:"PHFM",Y=4:"N",Y=5:"I",Y=8:"W",Y=9:"PHFMW",Y=10:"K",1:Y) ;abm*2.6*11 VMBP#3
  1. ;S ABMY("TYP")=$S(Y=1:"R",Y=2:"D",Y=3:"PHFM",Y=4:"N",Y=5:"I",Y=8:"W",Y=9:"PHFMW",Y=10:"K",Y=11:"V",1:Y) ;abm*2.6*11 VMBP#3 RQMT_96 ;abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. ;start new abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. I Y=1 S ABMY("TYP")="^R^MMC^MC^MD^"
  1. I Y=2 S ABMY("TYP")="^D^"
  1. I Y=3 S ABMY("TYP")="^P^H^F^C^M^"
  1. I Y=4 S ABMY("TYP")="^N^"
  1. I Y=5 S ABMY("TYP")="^I^"
  1. I Y=8 S ABMY("TYP")="^W^"
  1. I Y=9 S ABMY("TYP")="^P^H^F^M^W^"
  1. I Y=10 S ABMY("TYP")="^K^"
  1. I Y=11 S ABMY("TYP")="^V^"
  1. I Y=12 S ABMY("TYP")="^T^"
  1. I Y=13 S ABMY("TYP")="^FPL^"
  1. I Y=14 S ABMY("TYP")="^G^"
  1. I Y=15 S ABMY("TYP")="^MH^"
  1. I Y=16 S ABMY("TYP")="^SEP^"
  1. I Y=17 S ABMY("TYP")="^TSI^"
  1. S:$G(ABMY("TYP"))="" ABMY("TYP")=Y
  1. ;end new abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. S ABMY("TYP","NM")=Y(0)
  1. ;
  1. I Y'=6,Y'=7 Q ;Only want specific insurer or patient
  1. D CK ; Check for date range
  1. Q:$D(DIRUT)!$D(DIROUT)
  1. G INS:ABMY("TYP","NM")["INS",PAT:ABMY("TYP","NM")["PAT" ;Y has changed
  1. Q
  1. ;
  1. CK I $D(ABMY("DT",2)) Q ;Already has dates set
  1. D DT ; Go get date range
  1. I '$D(ABMY("DT",2)) S DIROUT=1 ; Set quit if date not set
  1. Q
  1. ;
  1. STATUS ;EP
  1. K DIR
  1. ;S DIR(0)="SO^1:FLAGGED AS BILLABLE;2:IN EDIT MODE;3:BILLED AND UNEDITABLE;4:COMPLETED ALL BILLING;5:ROLLED FROM A/R AND IN EDIT MODE" ;abm*2.6*1 HEAT4482
  1. ;I $G(ABM("STA"))="I" S DIR(0)=DIR(0)_";6:INCOMPLETE STATUS;7:ALL",DIR("B")="INCOMPLETE STATUS" ;abm*2.6*1 HEAT4482
  1. ;E S DIR(0)=DIR(0)_";6:ALL" ;abm*2.6*1 HEAT4482
  1. ;S DIR(0)="SO^1:FLAGGED AS BILLABLE (includes IN EDIT MODE);1:IN EDIT MODE;3:BILLED AND UNEDITABLE;4:COMPLETED ALL BILLING;5:ROLLED FROM A/R AND IN EDIT MODE;6:ALL" ;abm*2.6*1 HEAT4482 ;abm*2.6*6 HEAT16168
  1. S DIR(0)="SO^1:FLAGGED AS BILLABLE (includes IN EDIT MODE);2:IN EDIT MODE;3:BILLED AND UNEDITABLE;4:COMPLETED ALL BILLING;5:ROLLED FROM A/R AND IN EDIT MODE;6:ALL" ;abm*2.6*1 HEAT4482 ;abm*2.6*6 HEAT16168
  1. S DIR("A")="Select TYPE of CLAIM STATUS to Display"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)!$D(DIROUT)
  1. S ABM("STA")=$S(Y=1:"F",Y=2:"E",Y=3:"U",Y=4:"C",Y=5:"O",1:"")
  1. S ABM("STA","NM")=Y(0)
  1. Q
  1. ;
  1. DT ;EP
  1. K DIR,ABMY("DT")
  1. I $G(ABM("DT"))="C" S Y=4 G DTYP
  1. ;I $D(ABM("STA")),($G(ABM("STA"))'="X") S Y=2 G DTYP ;abm*2.6*4 NOHEAT
  1. I $D(ABM("STA")),($G(ABM("STA"))'="M") S Y=2 G DTYP ;abm*2.6*4 NOHEAT
  1. I $D(ABM("DNYDT")) S Y=2 G DTYP ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. S DIR(0)="SO^1:Approval Date;2:Visit Date"
  1. G DDIR:$G(ABMP("TYP"))=2
  1. I $D(ABM("PAY")) S DIR(0)=DIR(0)_";3:Payment Date"
  1. E S DIR(0)=DIR(0)_";3:Export Date"
  1. ;I $G(ABM("STA"))="X" G DTYP2 ;Closed ;abm*2.6*4 NOHEAT
  1. I $G(ABM("STA"))="M" G DTYP2 ;Closed ;abm*2.6*4 NOHEAT
  1. ;
  1. DDIR ;
  1. S DIR("A")="Select TYPE of DATE Desired"
  1. D ^DIR
  1. Q:$D(DIROUT)!$D(DIRUT)
  1. I Y=3 S Y=$S(DIR(0)["Pay":5,1:3)
  1. ;
  1. DTYP ;
  1. Q:$D(DIRUT)
  1. S ABMY("DT")=$S(Y=1:"A",Y=2:"V",Y=3:"X",Y=4:"C",1:"P")
  1. S Y=$S(Y=1:"APPROVAL",Y=2:"VISIT",Y=3:"EXPORT",Y=4:"CANCELLATION",1:"PAYMENT")_" DATE"
  1. W !!," ============ Entry of ",Y," Range =============",!
  1. S DIR("A")="Enter STARTING "_Y_" for the Report"
  1. S DIR(0)="DO^::EP"
  1. D ^DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",1)=Y
  1. W !
  1. S DIR("A")="Enter ENDING DATE for the Report"
  1. D ^DIR
  1. K DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",2)=Y
  1. I ABMY("DT",1)>ABMY("DT",2) W !!,*7,"INPUT ERROR: Start Date is Greater than than the End Date, TRY AGAIN!",!! G DT
  1. Q
  1. DTYP2 ;
  1. S DIR(0)="SO^1:Closed Date;2:Visit Date"
  1. S DIR("A")="Select TYPE of DATE Desired"
  1. D ^DIR
  1. Q:$D(DIROUT)!$D(DIRUT)
  1. ;S ABMY("DT")=$S(Y=1:"X",1:"V") ;abm*2.6*4 NOHEAT
  1. S ABMY("DT")=$S(Y=1:"M",1:"V") ;abm*2.6*4 NOHEAT
  1. S Y=$S(Y=1:"CLOSED",1:"VISIT")_" DATE"
  1. W !!," ============ Entry of ",Y," Range =============",!
  1. S DIR("A")="Enter STARTING "_Y_" for the Report"
  1. S DIR(0)="DO^::EP"
  1. D ^DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",1)=Y
  1. W !
  1. S DIR("A")="Enter ENDING DATE for the Report"
  1. D ^DIR
  1. K DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",2)=Y
  1. I ABMY("DT",1)>ABMY("DT",2) W !!,*7,"INPUT ERROR: Start Date is Greater than than the End Date, TRY AGAIN!",!! G DT
  1. Q
  1. ;
  1. APPR ;EP
  1. K ABMY("APPR")
  1. W !
  1. S DIC="^VA(200,"
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. S:+Y>0 ABMY("APPR")=+Y
  1. Q
  1. ;
  1. CANC ;EP
  1. K ABMY("CANC")
  1. W !
  1. S DIC="^VA(200,"
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. S:+Y>0 ABMY("CANC")=+Y
  1. Q
  1. CLOS ;EP
  1. K ABMY("CLOS")
  1. W !
  1. S DIC="^VA(200,"
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. S:+Y>0 ABMY("CLOS")=+Y
  1. Q
  1. ;
  1. PRV ;EP
  1. K ABMY("PRV")
  1. W !
  1. S DIC="^VA(200,"
  1. S DIC(0)="QEAM"
  1. D ^DIC
  1. S:+Y>0 ABMY("PRV")=+Y
  1. Q
  1. INC ;EP - choose status updater
  1. K DIR,DIC,DIE,DR
  1. S DIC(0)="AEMQ"
  1. S DIC="^VA(200,"
  1. D ^DIC
  1. I +Y<0 S ABMY("STATUS UPDATER")=""
  1. E S ABMY("STATUS UPDATER")=+Y
  1. Q