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

ABMM2PV4.m

Go to the documentation of this file.
  1. ABMM2PV4 ;IHS/SD/SDR - MU Patient Volume EP Report ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**11,12,15**;NOV 12, 2009;Build 251
  1. ;IHS/SD/SDR - 2.6*12 - Made changes for uncomp care; uncomp should be a separate detail line
  1. ; and should be included in pt vol total, not as separate line
  1. ;IHS/SD/SDR - 2.6*12 - Included numerator and msgs about numerator, denominator
  1. ;IHS/SD/SDR - 2.6*15 - HEAT161159 - Changed PT LST to sort differently so there won't be duplicate vsts on pt lst.
  1. ;IHS/SD/SDR - 2.6*15 - HEAT174501 - Added Provider NPI to host file
  1. ;IHS/SD/SDR - 2.6*15 - HEAT171490 - Added facility NPI and TIN to pt list host file
  1. ;IHS/SD/SDR - 2.6*15 - HEAT183289 - Added Tribal self-insured flag to output and summary total lines
  1. ;
  1. GRPPRT ;EP
  1. I ABMY("RFMT")="P" D PATIENT Q
  1. I +$G(^XTMP("ABM-PVP2",$J,"PRV TOP"))>29.5 S ABMPMET=1 D MET Q
  1. D NOTMET
  1. K ^XTMP("ABM-PVP2",$J)
  1. Q
  1. MET ;
  1. S ABM("PG")=1
  1. S ABMSDT=$P($G(^XTMP("ABM-PVP2",$J,"PRV TOP")),U,2)
  1. D HDR^ABMM2PV3
  1. I $Y+5>IOSL D HD^ABMM2PV3 Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. S ABMNUMT=0 ;abm*2.6*12
  1. S ABMVLOC=0
  1. F S ABMVLOC=$O(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT,ABMVLOC)) Q:'ABMVLOC D
  1. .I $Y+5>IOSL D HD^ABMM2PV3 Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .F ABM=1:1:80 W "-"
  1. .S ABMLOC=$$GET1^DIQ(9999999.06,ABMVLOC,.02,"E")
  1. .S (ABMTENC,ABMDENOM)=+$G(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT,ABMVLOC))
  1. .S ABMMPD=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,ABMVLOC,"MCD"))
  1. .S ABMMZPD=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,ABMVLOC,"MCD"))
  1. .S ABMMENR=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,ABMVLOC,"MCD"))
  1. .S ABMCPD=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,ABMVLOC,"CHIP"))
  1. .S ABMCZPD=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,ABMVLOC,"CHIP"))
  1. .S ABMCENR=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,ABMVLOC,"CHIP"))
  1. .S ABMOTHPD=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"OTHR"))
  1. .;start new abm*2.6*12
  1. .I $G(ABMFQHC)=1 D
  1. ..S ABMUNCR=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,ABMVLOC,"UNCOMP")) ;abm*2.6*12 uncomp care
  1. ..S ABMTSI=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMSDT,ABMVLOC,"TRIBSI")) ;abm*2.6*15 HEAT183289 tribal self-insured
  1. .S ABMNUMT=+$G(ABMNUMT)+ABMMPD+ABMMZPD+ABMMENR+ABMCPD+ABMCZPD+ABMCENR+$G(ABMUNCR) ;abm*2.6*15 HEAT183289
  1. .;S ABMNUMT=+$G(ABMNUMT)+ABMMPD+ABMMZPD+ABMMENR+ABMCPD+ABMCZPD+ABMCENR+$G(ABMUNCR)+$G(ABMTSI) ;abm*2.6*15 HEAT183289
  1. .;end new abm*2.6*12
  1. .S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"UNCOMP")=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"UNCOMP"))+$G(ABMUNCOM) ;abm*2.6*12 uncomp care
  1. .S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,"UNCOMP")=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,"UNCOMP"))+$G(ABMUNCOM) ;abm*2.6*12 uncomp care
  1. .;start new abm*2.6*15 HEAT183289 tribal self-insured
  1. .;S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"TRIBSI")=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"TRIBSI"))+$G(ABMTSI)
  1. .;S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,"TRIBSI")=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,"TRIBSI"))+$G(ABMTSI)
  1. .;end new HEAT183289
  1. .W !,"Patient Volume "_ABMLOC_": "_+$P($G(^XTMP("ABM-PVP2",$J,"PRV PERCENT",ABMSDT,ABMVLOC)),U)_"%"
  1. .W !!,"Total Patient Encounters (Denominator) "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT,ABMVLOC)),8)
  1. .W !,"Total Numerator Encounters "_ABMLOC_": ",?70,$J((ABMMPD+ABMMZPD+ABMMENR+ABMCPD+ABMCZPD+ABMCENR+$G(ABMUNCR)),8)
  1. .W !,"Total Medicaid Paid Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,ABMVLOC,"MCD")),8)
  1. .W !,"Total Medicaid Zero Paid Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,ABMVLOC,"MCD")),8)
  1. .W !,"Total Medicaid Enrolled (Not Billed) Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,ABMVLOC,"MCD")),8)
  1. .W !,"Total Kidscare/Chip Paid Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,ABMVLOC,"CHIP")),8)
  1. .W !,"Total Kidscare/Chip Zero Paid Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,ABMVLOC,"CHIP")),8)
  1. .W !,"Total Kidscare/Chip Enrolled (Not Billed) Encounters "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,ABMVLOC,"CHIP")),8)
  1. .;W !,"Total Paid Other Encounters "_ABMLOC_" (*not included in numer.): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,ABMVLOC,"OTHR")),8) ;abm*2.6*15
  1. .W !,"Total Paid Other Encounters "_ABMLOC_" (*not included in numer.): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,ABMVLOC,"OTHR")),8) ;abm*2.6*15
  1. .;W:($G(ABMFQHC)=1) !,"Total Uncompensated Care "_ABMLOC_": ",?70,$J(ABMUNCR,8) ;abm*2.6*12 uncomp care ;abm*2.6*15 HEAT183289
  1. .;start new abm*2.6*15 HEAT183289
  1. .I ($G(ABMFQHC)=1) D
  1. ..;W !,"Total Uncompensated Care "_ABMLOC_": ",?70,$J(ABMUNCR,8) ;abm*2.6*15
  1. ..W !,"Total Uncompensated Care "_ABMLOC_": ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,ABMVLOC,"UNCOMP")),8) ;abm*2.6*15
  1. ..;W !,"Total Tribal Self-Insured "_ABMLOC_" (*not incl. in numerator): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMSDT,"TRIBSI")),8) ;abm*2.6*15
  1. ..W !,"Total Tribal Self-Insured "_ABMLOC_" (*not incl. in numerator): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMSDT,ABMVLOC,"TRIBSI")),8) ;abm*2.6*15 ;end new HEAT183289
  1. ;
  1. W !
  1. F ABM=1:1:80 W "-"
  1. W !,"Patient Volume all calculated Facilities: ",+$P($G(^XTMP("ABM-PVP2",$J,"PRV TOP")),U)_"%"
  1. W !!,"Total Patient Encounters (Denominator) All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT)),8)
  1. W !,"Total Numerator Encounters All Facilities Total: ",?70,$J(ABMNUMT,8)
  1. W !,"Total Medicaid Paid Encounters All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,"MCD")),8)
  1. W !,"Total Medicaid Zero Paid Encounters All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,"MCD")),8)
  1. W !,"Total Medicaid Enrolled (Not Billed) Encounters All Facs Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,"MCD")),8) ;abm*2.6*12
  1. W !,"Total Kidscare/Chip Paid Encounters All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,"CHIP")),8)
  1. W !,"Total Kidscare/Chip Zero Paid Encounters All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,"CHIP")),8)
  1. ;W !,"Total Kidscare/Chip Enrolled Encounters All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,"CHIP")),8) ;abm*2.6*12
  1. W !,"Total Kidscare/Chip Enrolled (Not Billed) Encounters All Facs: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,"CHIP")),8) ;abm*2.6*12
  1. ;W !,"Total Paid Other Encounters All Fac. (*not included in numerator): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMSDT,"OTHR")),8) ;abm*2.6*12 ;abm*2.6*15
  1. W !,"Total Paid Other Encounters All Fac. (*not included in numerator): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,"OTHR")),8) ;abm*2.6*12 ;abm*2.6*15
  1. ;W:($G(ABMFQHC)=1) !,"Total Uncompensated Care All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,"UNCOMP")),8) ;abm*2.6*12 uncomp care ;abm*2.6*15 HEAT183289
  1. ;start new abm*2.6*15 HEAT183289
  1. I ($G(ABMFQHC)=1) D
  1. .W !,"Total Uncompensated Care All Facilities Total: ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,"UNCOMP")),8)
  1. .W !,"Total Tribal Self-Insured All Facilities Total (*not incl. in numer.): ",?70,$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMSDT,"TRIBSI")),7)
  1. ;end new HEAT183289
  1. W !
  1. Q
  1. NOTMET ;EP
  1. S ABMCNT=0
  1. K ABMLN
  1. S ABMSDT=$P($G(^XTMP("ABM-PVP2",$J,"PRV TOP")),U,2)
  1. ;
  1. I +$G(ABMY("TVDTS"))'=0 D
  1. .S ABMCNT=0
  1. .S ABMDT=0
  1. .F S ABMDT=$O(^XTMP("ABM-PVP2",$J,"PRV PERCENT",ABMDT)) Q:'ABMDT D
  1. ..;I ABMY("90")'="A"&(ABMY("SDT")'=ABMSDT) Q ;abm*2.6*12 HEAT134048
  1. .I "^A^D^"'[("^"_ABMY("90")_"^")&(ABMY("SDT")'=ABMSDT) Q ;only whole yr for auto ;abm*2.6*12 uncomp care
  1. .;start new abm*2.6*12 HEAT134048
  1. .S X1=ABMY("SDT")
  1. .S X2=275
  1. .D C^%DTC
  1. .I "^A^D^"[("^"_ABMY("90")_"^")&(ABMSDT>X) Q ;275 days after start won't be 90 days anymore
  1. .;end new HEAT134048
  1. ..S ABMPRC($G(^XTMP("ABM-PVP2",$J,"PRV PERCENT",ABMDT)),ABMCNT)=ABMDT
  1. .S ABMP=""
  1. .S ABMSAV=ABMCNT-ABMY("TVDTS")
  1. .F S ABMP=$O(ABMPRC(ABMP)) Q:ABMP="" D
  1. ..S ABMCNT=0,ABMC=0
  1. ..F S ABMCNT=$O(ABMPRC(ABMP,ABMCNT)) Q:'ABMCNT D Q:(ABMC=ABMSAV)
  1. ...K ^XTMP("ABM-PVP2",$J,"PRV PERCENT",$G(ABMPRC(ABMP,ABMCNT))),ABMP("PRV")
  1. ...S ABMC=ABMC+1
  1. ;
  1. S ABM("PG")=1
  1. S ABMSDT=$P($G(^XTMP("ABM-PVP2",$J,"PRV TOP")),U,2)
  1. I +ABMSDT=0 S ABMSDT=ABMY("SDT")
  1. D HDR^ABMM2PV3
  1. W !,"The Patient Volume Threshold (30% for EPs, or 20% for Pediatricians) was not"
  1. W !,"met for the "_$S(("^A^B^C^"[("^"_ABMY("90")_"^")):"timeframe entered",1:"MU Qualification year")_"."
  1. W !,"Details for the volumes that were achieved are provided for your information.",!
  1. W !,"Highest Patient Volume Met: ",+$P($G(^XTMP("ABM-PVP2",$J,"PRV TOP")),U)_"%"
  1. W !,"First Day Highest Patient Volume Achieved: ",$$SDT^ABMDUTL(ABMSDT)
  1. ;
  1. I $Y+5>IOSL D HD^ABMM2PV3 Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. S ABMTHPV=0
  1. S:ABMSDT ABMTHPV=+$G(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT))
  1. S ABMMHPV=0
  1. S:ABMSDT ABMMHPV=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM",ABMSDT))
  1. W !!,"Total Patient Encounters of First Highest Patient Volume Period: ",ABMTHPV,!
  1. S ABMU("TXT")="Total Medicaid"_$S(+$G(ABMFQHC)=1:"/Needy Individual",1:"")
  1. S ABMU("TXT")=ABMU("TXT")_" Encounters of First Highest Patient Volume Period: "_ABMMHPV
  1. S ABMU("LM")=0,ABMU("RM")=80,ABMU("LNG")=80
  1. D ^ABMDWRAP
  1. D NMHDR^ABMM2PV5
  1. ;
  1. S ABMSDT=0,ABMCNT=0
  1. S ABMDTCNT=0
  1. F S ABMSDT=$O(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT)) Q:'ABMSDT D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .I "^A^D^"'[("^"_ABMY("90")_"^")&(ABMY("SDT")'=ABMSDT) Q ;only whole year for automated ;abm*2.6*12 uncomp care
  1. .;start new abm*2.6*12 HEAT134048
  1. .S X1=ABMY("SDT")
  1. .S X2=275
  1. .D C^%DTC
  1. .I "^A^D^"[("^"_ABMY("90")_"^")&(ABMSDT>X) Q ;275 days after start won't be 90 days anymore
  1. .;end new HEAT134048
  1. .S ABMDTCNT=+$G(ABMDTCNT)+1
  1. .;
  1. .I $Y+5>IOSL D HD^ABMM2PV3,NMHDR^ABMM2PV5 Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .I +$G(ABMY("EDT"))=0 D
  1. ..S X1=ABMSDT
  1. ..S X2=89
  1. ..D C^%DTC
  1. ..S ABMEDT=X
  1. .I +$G(ABMY("EDT"))'=0 S ABMEDT=ABMY("EDT")
  1. .S ABMPD=$TR($P($$MDT^ABMDUTL(ABMSDT),"-",1,2),"-"," ")_"-"_$TR($P($$MDT^ABMDUTL(ABMEDT),"-",1,2),"-"," ") ;rpt prd
  1. .S ABMRT=$J($G(^XTMP("ABM-PVP2",$J,"PRV PERCENT",ABMSDT)),5)_"%" ;rate
  1. .S ABMDEN=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-DENOM",ABMSDT)),6) ;denom.
  1. .S ABMNUM=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM",ABMSDT)),6) ;num.
  1. .S ABMMCDPD=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,"MCD")),6)
  1. .S ABMSCHPD=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMSDT,"CHIP")),5)
  1. .S ABMMCDZP=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,"MCD")),6)
  1. .S ABMMCDEN=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,"MCD")),6)
  1. .S ABMSCHZP=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMSDT,"CHIP")),5)
  1. .S ABMSCHEN=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMSDT,"CHIP")),5)
  1. .;S ABMUNCOM=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,"UNCOMP")),6) ;abm*2.6*12 ;abm*2.6*15
  1. .S ABMUNCOM=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMSDT,"UNCOMP")),4) ;abm*2.6*12 ;abm*2.6*15
  1. .S ABMTSI=$J(+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMSDT,"TRIBSI")),2) ;abm*2.6*15 HEAT183289
  1. .;W !,ABMPD,?15,ABMRT,?20,ABMDEN,?28,ABMNUM,?35,ABMMCDPD,?41,ABMMCDZP,?50,ABMMCDEN,?57,ABMSCHPD,?63,ABMSCHZP,?73,ABMSCHEN ;abm*2.6*12
  1. .W !,ABMPD,?13,ABMRT,?20,ABMDEN,?27,ABMNUM,?34,ABMMCDPD,?41,ABMMCDZP,?48,ABMMCDEN,?55,ABMSCHPD,?62,ABMSCHZP,?67,ABMSCHEN ;abm*2.6*12
  1. .;I ABMFQHC=1 W ?74,ABMUNCOM ;abm*2.6*12 ;abm*2.6*15
  1. .I ABMFQHC=1 W ?74,ABMUNCOM,?78,ABMTSI ;abm*2.6*15
  1. I ABMDTCNT=0 D
  1. .W !!, "<< NO DATA FOUND FOR SELECTION >>"
  1. Q
  1. PATIENT ;EP
  1. D PATIENT^ABMM2P10 ;abm*2.6*15 split routine due to size
  1. Q