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

ABMDRSL2.m

Go to the documentation of this file.
  1. ABMDRSL2 ; IHS/ASDST/DMJ - Selective Report Parameters-PART 3 ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**14,21**;NOV 12, 2009;Build 379
  1. ;Original;TMD;
  1. ;
  1. ; IHS/SD/SDR - v2.5 p8 - task 12
  1. ; Added code so only brief and statistical will be asked
  1. ; for pending report
  1. ;
  1. ; IHS/SD/SDR - v2.6 CSV
  1. ;IHS/SD/SDR - 2.6*14 - ICD10 009 - Updated reports to look for ICD10 codes
  1. ;IHS/SD/SDR - 2.6*14 - HEAT165197 (CR3109) - Added code for $$NUM to validate alphanumeric values
  1. ;IHS/SD/SDR - 2.6*21 - HEAT140244 - Made change so extended report will print for cancelled claims report
  1. ;IHS/SD/SDR - 2.6*21 - HEAT214020 - Updated prompts for ICD-9 codes to actually say ICD-9, not just ICD
  1. ;IHS/SD/SDR - 2.6*21 - HEAT241429 - Added prompt for PRINTER vs COMMA-DELIMITED
  1. ;
  1. PTYP ;EP
  1. K DIR
  1. S DIR(0)="SO^1:INDIAN BENEFICIARY PATIENTS;2:NON-BENEFICIARY PATIENTS"
  1. S DIR("A")="Select the PATIENT ELIGIBILITY STATUS"
  1. S DIR("?")="Selection of an Eligibility Status will restrict the report to only those visits in which the patient is of the type designated."
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. S ABMY("PTYP")=Y
  1. S ABMY("PTYP","NM")=Y(0)
  1. Q
  1. ;
  1. RTYP ;EP
  1. K DIR
  1. S DIR(0)="SO^1:BRIEF LISTING (80 Width);2:EXTENDED LISTING (132 Width);3:STATISTICAL SUMMARY ONLY"_$S($D(ABM("COST")):";4:ITEMIZED COST REPORT",1:"")
  1. I $G(ABM("REASON"))="PEND" S DIR(0)="SO^1:BRIEF LISTING (80 Width);2:STATISTICAL SUMMARY ONLY"
  1. S DIR("A")="Select TYPE of LISTING to Display"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. S ABM("RTYP")=Y
  1. S ABM("RTYP","NM")=Y(0)
  1. K ABM(132)
  1. ;I $D(ABM("REASON")),(Y=2) S (Y,ABM("RTYP"))=3 ;abm*2.6*21 IHS/SD/SDR HEAT140244
  1. I $D(ABM("REASON")),$G(ABM("REASON"))="PEND",(Y=2) S (Y,ABM("RTYP"))=3 ;abm*2.6*21 IHS/SD/SDR HEAT140244
  1. I Y=2 S ABM(132)="" Q
  1. I Y>2,+$G(ABMP("TYP"))'=0 S ABM(132)=""
  1. Q
  1. ;
  1. DX ;EP
  1. ;start old code abm*2.6*14 ICD10 009
  1. ;K DIR,ABMY("DX")
  1. ;W !!,"ENTRY of ICD DIAGNOSIS RANGE:",!,"============================="
  1. ;end old code start new code ICD10 009
  1. K ABMY("DX"),ABM("DX")
  1. D ^XBFMK
  1. W !!,"ENTRY of ICD DIAGNOSIS RANGE:",!,"============================="
  1. I '$D(^DIC(9.8,"B","ICDEX")) D DLOW Q ;if ICD-10 codes aren't present
  1. S DIR(0)="S^9:ICD-9;10:ICD-10;B:Both coding versions"
  1. S DIR("A")="Select ICD Version "
  1. D ^DIR
  1. Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!$D(DIRUT)
  1. S ABMY("DXANS")=Y
  1. ;if 9 or both
  1. I ABMY("DXANS")'=10 D ^XBFMK,DLOW
  1. ;if 10 or both
  1. I ABMY("DXANS")'=9 D ^XBFMK,DLOW10
  1. Q
  1. ;end new code ICD10 009
  1. ;
  1. DLOW ;
  1. S DIR(0)="PO^80:QEAM"
  1. I $D(^DIC(9.8,"B","ICDEX")) S DIR("S")="I $P($$DX^ABMCVAPI(+Y,""""),U,20)=1" ;abm*2.6*14 ICD10 009 and update API call
  1. ;S DIR("A")="Low ICD Code" ;abm*2.6*21 IHS/SD/SDR HEAT214020
  1. S DIR("A")="Low ICD-9 Code" ;abm*2.6*21 IHS/SD/SDR HEAT214020
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. G DLOW:+Y<1
  1. ;S ABMY("DX",1)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABM("DX",1)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABMY("DX",1)=$$NUM^ABMCVAPI($P($$DX^ABMCVAPI(+Y,""),U,2)) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. ;
  1. DHI ;
  1. S DIR(0)="PO^80:QEAM"
  1. I $D(^DIC(9.8,"B","ICDEX")) S DIR("S")="I $P($$DX^ABMCVAPI(Y,""""),U,20)=1" ;abm*2.6*14 ICD10 009 and update API call
  1. ;S DIR("A")="High ICD Code" ;abm*2.6*21 IHS/SD/SDR HEAT214020
  1. S DIR("A")="High ICD-9 Code" ;abm*2.6*21 IHS/SD/SDR HEAT214020
  1. D ^DIR
  1. K DIR
  1. G DX:$D(DIRUT)
  1. G DHI:+Y<1
  1. ;S ABMY("DX",2)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABM("DX",2)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABMY("DX",2)=$$NUM^ABMCVAPI($P($$DX^ABMCVAPI(+Y,""),U,2)) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. I ABMY("DX",1)>ABMY("DX",2)!('+ABMY("DX",1)&($E(ABMY("DX",1),2,9)>$E(ABMY("DX",2),2,9))) W !!,*7,"INPUT ERROR: Low Diagnosis is Greater than than the High, TRY AGAIN!",!! G DX
  1. W !
  1. S DIR(0)="S^A:ALL DIAGNOSIS;P:PRIMARY DIAGNOSIS ONLY"
  1. S DIR("B")="A"
  1. S DIR("A")="For each visit, Check [A]ll Diagnosis or just the [P]rimary"
  1. S DIR("?")="Enter either 'A' to have ALL of the Diagnosis checked for consistency with the range specified, or 'P' for checking just the Primary Diagnosis."
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S:Y="A" ABMY("DX","ALL")=""
  1. Q
  1. ;
  1. ;start new code abm*2.6*14 ICD10 009
  1. DLOW10 ;
  1. S DIR(0)="PO^80:QEAM"
  1. S DIR("S")="I $P($$DX^ABMCVAPI(+Y),U,20)=30"
  1. S DIR("A")="Low ICD-10 Code"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. G DLOW10:+Y<1
  1. ;S ABMY("DX",3)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABM("DX",3)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABMY("DX",3)=$$NUM^ABMCVAPI($P($$DX^ABMCVAPI(+Y,""),U,2)) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. ;
  1. DHI10 ;
  1. S DIR(0)="PO^80:QEAM"
  1. S DIR("S")="I $P($$DX^ABMCVAPI(+Y),U,20)=30"
  1. S DIR("A")="High ICD-10 Code"
  1. D ^DIR
  1. K DIR
  1. G DX:$D(DIRUT)
  1. G DHI10:+Y<1
  1. ;S ABMY("DX",4)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABM("DX",4)=$P($$DX^ABMCVAPI(+Y,""),U,2) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. S ABMY("DX",4)=$$NUM^ABMCVAPI($P($$DX^ABMCVAPI(+Y,""),U,2)) ;CSV-c ;abm*2.6*14 HEAT165197 (CR3109)
  1. ;I ABMY("DX",3)>ABMY("DX",4)!('+ABMY("DX",3)&($E(ABMY("DX",3),2,9)>$E(ABMY("DX",4),2,9))) W !!,*7,"INPUT ERROR: Low Diagnosis is Greater than than the High, TRY AGAIN!",!! G DX ;abm*2.6*14
  1. I ABMY("DX",3)>ABMY("DX",4) W !!,*7,"INPUT ERROR: Low Diagnosis is Greater than than the High, TRY AGAIN!",!! G DX ;abm*2.6*14
  1. W !
  1. S DIR(0)="S^A:ALL DIAGNOSIS;P:PRIMARY DIAGNOSIS ONLY"
  1. S DIR("B")="A"
  1. S DIR("A")="For each visit, Check [A]ll Diagnosis or just the [P]rimary"
  1. S DIR("?")="Enter either 'A' to have ALL of the Diagnosis checked for consistency with the range specified, or 'P' for checking just the Primary Diagnosis."
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S:Y="A" ABMY("DX10","ALL")=""
  1. Q
  1. ;end new code ICD10 009
  1. ;
  1. PX ;EP
  1. K DIR,ABMY("PX")
  1. W !!,"ENTRY of CPT PROCEDURE RANGE:",!,"============================="
  1. ;
  1. PLOW ;
  1. S DIR(0)="PO^81:QEAM"
  1. S DIR("A")="Low CPT Code"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. G PLOW:+Y<1
  1. S ABMY("PX",1)=$P($$CPT^ABMCVAPI(+Y,""),U,2) ;CSV-c
  1. ;
  1. PHI ;
  1. S DIR(0)="PO^81:QEAM"
  1. S DIR("A")="High CPT Code"
  1. D ^DIR
  1. K DIR
  1. G PX:$D(DIRUT)
  1. G PHI:+Y<1
  1. S ABMY("PX",2)=$P($$CPT^ABMCVAPI(+Y,""),U,2) ;CSV-c
  1. I ABMY("PX",1)>ABMY("PX",2) W !!,*7,"INPUT ERROR: Low CPT Code is Greater than than the High, TRY AGAIN!",!! G PX
  1. Q
  1. ;
  1. ;start new abm*2.6*21 IHS/SD/SDR HEAT241429
  1. RFOR ;EP
  1. K DIR
  1. S DIR(0)="SO^1:Printer;2:Comma-Delimited (for Excel Importing)"
  1. S DIR("A")="Select TYPE of Output"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. S ABM("RFOR")=Y
  1. S ABM("RFOR","NM")=Y(0)
  1. I ABM("RFOR")=1 Q ;stop here if printer
  1. ;ask path and filename
  1. K DIR
  1. S DIR(0)="F"
  1. S DIR("A")="Path"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. S ABM("RPATH")=Y
  1. K DIR
  1. S DIR(0)="F"
  1. S DIR("A")="Filename"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DIRUT)
  1. S ABM("RFN")=Y
  1. Q
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT241429