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

ABMDRSEL.m

Go to the documentation of this file.
  1. ABMDRSEL ; IHS/ASDST/DMJ - Selective Report Parameters ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**3,4,14,21**;NOV 12, 2009;Build 379
  1. ;Original;TMD;07/14/95 12:23 PM
  1. ;
  1. ;IHS/SD/SDR - v2.5 p8 - Added code for cancelling official
  1. ;IHS/SD/SDR,TPB - v2.5 p8 - Added code for pending status (12)
  1. ;IHS/SD/SDR - v2.5 p10 - IM20566 - Fix for <UNDEF>PRINT+13^ABMDRST1
  1. ;
  1. ;IHS/SD/SDR - 2.6*4 - NO HEAT - Fixed closed/exported dates
  1. ;IHS/SD/SDR - 2.6*14 - ICD10 009 - Added code for ICD-10 prompts
  1. ;IHS/SD/SDR 2.6*14 - HEAT165197 (CR3109) - Made it so a range of alphanumeric codes can be selected.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT186137 - Fixed pending report so user can select all visit types and still pick specific reasons
  1. ;IHS/SD/SDR - 2.6*21 - HEAT241429 - Added code to not ask ELIGIBILITY STATUS
  1. ;
  1. K DIC,DIR,ABMY
  1. S U="^"
  1. S ABMY("X")="W $$SDT^ABMDUTL(X)"
  1. I $D(ABM("APPR")) S ABMY("APPR")=ABM("APPR")
  1. I $D(ABM("CANC")) S ABMY("CANC")=ABM("CANC")
  1. I $D(ABM("CLOS")) S ABMY("CLOS")=ABM("CLOS") ;Closed
  1. I $D(ABM("OVER-DUE")) D
  1. .S ABMY("DT")="X"
  1. .I ABM("OVER-DUE")=2 D Q
  1. ..S ABMY("DT")="" ;abm*2.6*3 NOHEAT
  1. ..S ABMY("DT",1)=$E(DT,1,5)_"01"
  1. ..S ABMY("DT",2)=DT
  1. .I ABM("OVER-DUE")=3 D Q
  1. ..S ABMY("DT",1)=$S($E(DT,4,5)>10:$E(DT,1,3)_1001,1:($E(DT,1,3)-1)_1001)
  1. ..S ABMY("DT",2)=DT
  1. .S X1=DT
  1. .S X2=-30
  1. .D C^%DTC
  1. .S ABMY("DT",2)=X
  1. .S X1=DT
  1. .S X2=-330
  1. .D C^%DTC
  1. .S ABMY("DT",1)=X
  1. .Q
  1. ;
  1. LOOP ;
  1. ; Display current exclusion parameters
  1. G XIT:$D(DUOUT)!$D(DTOUT)!$D(DIROUT)
  1. W !!?3,"EXCLUSION PARAMETERS Currently in Effect for RESTRICTING the EXPORT to:",!?3,"======================================================================="
  1. I $D(ABMY("LOC")) W !?3,"- Visit Location.....: ",$P(^DIC(4,ABMY("LOC"),0),U)
  1. I $D(ABMY("INS")) W !?3,"- Billing Entity.....: ",$P(^AUTNINS(ABMY("INS"),0),U)
  1. I $D(ABMY("PAT")) W !?3,"- Billing Entity.....: ",$P(^DPT(ABMY("PAT"),0),U)
  1. I $D(ABMY("TYP")) W !?3,"- Billing Entity.....: ",ABMY("TYP","NM")
  1. I $D(ABMY("DT")) D
  1. .;start old code abm*2.6*4 NOHEAT
  1. .;W !?3,"- ",$S(ABMY("DT")="A":"Approval Dates from: ",ABMY("DT")="V":"Visit Dates from...: ",ABMY("DT")="P":"Payment Dates from.: ",ABMY("DT")="C":"Cancellation Dates from:",ABMY("DT")="X":"Closed Dates from:",1:"Export Dates from..: ")
  1. .;end old code start new code NOHEAT
  1. .W !?3,"- ",$S(ABMY("DT")="A":"Approval Dates from: ",ABMY("DT")="V":"Visit Dates from...: ",ABMY("DT")="P":"Payment Dates from.: ",ABMY("DT")="C":"Cancellation Dates from:",ABMY("DT")="M":"Closed Dates from:",1:"Export Dates from..: ")
  1. .;end new code NOHEAT
  1. I S X=ABMY("DT",1) X ABMY("X") W " to: " S X=ABMY("DT",2) X ABMY("X")
  1. I $G(ABMY("STATUS UPDATER"))'="" W !?3,"- Status Updater.....: ",$P($G(^VA(200,$G(ABMY("STATUS UPDATER")),0)),U)
  1. I $D(ABMY("APPR")) W !?3,"- Approving Official.: ",$P(^VA(200,ABMY("APPR"),0),U)
  1. I $D(ABMY("CANC")) W !?3,"- Cancelling Official.: ",$P(^VA(200,ABMY("CANC"),0),U)
  1. I $D(ABMY("CLOS")) W !?3,"- Closing Official.: ",$P(^VA(200,ABMY("CLOS"),0),U) ;Closing
  1. I $D(ABM("STA")) W !?3,"- Claim Status.......: ",ABM("STA","NM")
  1. I $D(ABMY("PRV")) W !?3,"- Provider...........: ",$P(^VA(200,ABMY("PRV"),0),U)
  1. I $G(ABMY("PTYP")) W !?3,"- Eligibility Status.: ",ABMY("PTYP","NM")
  1. ;I $D(ABMY("DX")) W !?3,"- Diagnosis Code from: ",ABMY("DX",1)," to: ",ABMY("DX",2)," (",$S($D(ABMY("DX","ALL")):"Check All Diagnosis",1:"Primary Diagnosis Only"),")" ;abm*2.6*14 ICD10 009
  1. I $D(ABMY("DX",1)) W !?3,"- Diagnosis (ICD-9) Code from: ",ABM("DX",1)," to: ",ABM("DX",2)," (",$S($D(ABMY("DX","ALL")):"Check All Diagnosis",1:"Primary Diagnosis Only"),")" ;abm*2.6*14 ICD10 009 and HEAT165197 (CR3109)
  1. I $D(ABMY("DX",3)) W !?3,"- Diagnosis (ICD-10) Code from: ",ABM("DX",3)," to: ",ABM("DX",4)," (",$S($D(ABMY("DX10","ALL")):"Check All Diagnosis",1:"Primary Diagnosis Only"),")" ;abm*2.6*14 ICD10 009 and HEAT165197 (CR3109)
  1. I $D(ABMY("PX")) W !?3,"- CPT Range from.....: ",ABMY("PX",1)," to: ",ABMY("PX",2)
  1. I $G(ABM("RTYP")) W !?3,"- Report Type........: ",ABM("RTYP","NM")
  1. I $G(ABM("RFOR")) W !?3,"- Output Type........: ",ABM("RFOR","NM") ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. I (+$G(ABM("RFOR"))=2) W !,?7,"Write file to ",ABM("RPATH")_ABM("RFN") ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. ;
  1. PARM ;
  1. ; Choose additional exclusion parameters
  1. K DIR
  1. S DIR(0)="SO^1:LOCATION;2:BILLING ENTITY;3:DATE RANGE;4:"
  1. S DIR(0)=DIR(0)_$S($D(ABM("CANC")):"CANCELLING OFFICIAL",$D(ABM("CLOS")):"CLOSING OFFICIAL",($G(ABM("STA"))'="")&($G(ABM("STA"))'="P"):"CLAIM STATUS",$G(ABM("STA"))="P":"STATUS UPDATER",1:"APPROVING OFFICIAL")
  1. ;S DIR(0)=DIR(0)_";5:PROVIDER;6:ELIGIBILITY STATUS" ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. S DIR(0)=DIR(0)_";5:PROVIDER"_$S($D(ABM("NOSTAT")):"",1:";6:ELIGIBILITY STATUS") ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. S DIR(0)=DIR(0)_$S($D(ABM("RFOR")):";6:OUTPUT TYPE",1:"") ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. I '$D(ABM("NODX")) S DIR(0)=DIR(0)_";7:DIAGNOSIS RANGE;8:CPT RANGE"
  1. I $G(ABM("RTYP")) S DIR(0)=DIR(0)_";"_$S($D(ABM("NODX")):7,1:9)_":REPORT TYPE"
  1. S DIR("A")="Select ONE or MORE of the above EXCLUSION 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. G XIT:$D(DIRUT)!$D(DIROUT)
  1. I Y<6 D @($S(Y=1:"LOC",Y=2:"TYP",Y=3:"DT",$G(ABM("STA"))="P"&(Y=4):"INC",Y=5:"PRV",$D(ABM("CANC")):"CANC",$D(ABM("CLOS")):"CLOS",$D(ABM("STA")):"STATUS",1:"APPR")_"^ABMDRSL1") G LOOP ;Closed
  1. I Y=6&($D(ABM("RFOR"))) D RFOR^ABMDRSL2 G LOOP ;abm*2.6*21 IHS/SD/SDR HEAT241429
  1. I Y=6 D PTYP^ABMDRSL2 G LOOP
  1. I '$D(ABM("NODX")) D @($S(Y=7:"DX",Y=8:"PX",1:"RTYP")_"^ABMDRSL2") G LOOP
  1. D RTYP^ABMDRSL2 G LOOP
  1. ;
  1. INS ;
  1. W !!?5,"You can RESTRICT the REPORT to either a SPECIFIC INSURER or",!?5,"else a TYPE of INSURER (i.e. PRIVATE INSURANCE, MEDICAID...).",!
  1. S DIR(0)="Y"
  1. S DIR("A")="Restrict Report to a SPECIFIC INSURER (Y/N)"
  1. S DIR("B")="N"
  1. D ^DIR
  1. G XIT:$D(DIRUT)
  1. D @($S(Y=1:"INS",1:"TYP")_"^ABMDRSL1")
  1. I '$D(DTOUT)!'$D(DUOUT)!'$D(DIROUT) G LOOP
  1. ;
  1. XIT ;
  1. G XIT2:'$D(ABM("RTYP"))!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  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. I '$D(DIROUT)&('$D(DIRUT)) D
  1. .S ABMY("SORT")=Y
  1. .I ABMY("SORT")="C" D CLIN,REASON:$D(ABM("REASON")) Q
  1. .;D VTYP,REASON:$D(ABM("REASON"))&($D(ABMY("VTYP"))) ;abm*2.6*21 IHS/SD/SDR HEAT186137
  1. .I ABMY("SORT")="V" D VTYP,REASON:$D(ABM("REASON")) ;abm*2.6*21 IHS/SD/SDR HEAT186137
  1. .Q
  1. ;
  1. XIT2 ;
  1. K ABMY("I"),ABMY("X"),DIR
  1. Q
  1. ;
  1. CLIN ;SELECT CLINICS
  1. K ABMY("CLIN")
  1. S DIC="^DIC(40.7,"
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select Clinic: ALL// "
  1. F D Q:+Y<0
  1. .I $D(ABMY("CLIN")) S DIC("A")="Select Another Clinic: "
  1. .D ^DIC
  1. .Q:+Y<0
  1. .S ABMY("CLIN",+Y)=""
  1. I '$D(ABMY("CLIN")) D
  1. .I $D(DUOUT) K ABMY("SORT") Q
  1. .W "ALL"
  1. K DIC
  1. Q
  1. ;
  1. VTYP ;SELECT VISIT TYPES
  1. K ABMY("VTYP")
  1. S DIC="^ABMDVTYP("
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select Visit Type: ALL// "
  1. F D Q:+Y<0
  1. .I $D(ABMY("VTYP")) S DIC("A")="Select Another Visit Type: "
  1. .D ^DIC
  1. .Q:+Y<0
  1. .S ABMY("VTYP",+Y)=""
  1. I '$D(ABMY("VTYP")) D
  1. .I $D(DUOUT) K ABMY("SORT") Q
  1. .W "ALL"
  1. K DIC
  1. Q
  1. REASON ; select reasons (for cancelled and pending claim reports)
  1. K ABMY("REASON")
  1. S DIC=$S($G(ABM("REASON"))="PEND":"^ABMPSTAT(",1:"^ABMCCLMR(")
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select Reason: ALL// "
  1. F D Q:+Y<0
  1. .I $D(ABMY("REASON")) S DIC("A")="Select Another Reason: "
  1. .D ^DIC
  1. .Q:+Y<0
  1. .S ABMY("REASON",+Y)=""
  1. I '$D(ABMY("REASON")) D
  1. .I $D(DUOUT) K ABMY("SORT") Q
  1. .W "ALL"
  1. K DIC
  1. Q