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

ABMMUPH1.m

Go to the documentation of this file.
  1. ABMMUPH1 ;IHS/SD/SDR - MU Patient Volume Hospital Report ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**7,8,9**;NOV 12, 2009
  1. ;
  1. MET ;EP
  1. W !!,"Patient Volume: ",+$P($G(^XTMP("ABM-PVH",$J,"LOC TOP",ABMVLOC)),U)_"%"
  1. W !!,"Patient Volume for the Qualification Year was calculated using the Medicaid"
  1. W !,"calculation method for the hospital and includes ER encounters"
  1. W !!,"Total Patient Encounters "_ABMLOC_": ",?54,$J(+$G(^XTMP("ABM-PVH",$J,"LOC-DENOM",ABMSDT,ABMVLOC)),8)
  1. W !,"Total Medicaid Encounters "_ABMLOC_": ",?54,$J(+$G(^XTMP("ABM-PVH",$J,"LOC ENC CNT",ABMSDT,ABMVLOC,"MCD")),8)
  1. W !,"Total Kidscare/Chip Encounters "_ABMLOC_": ",?54,$J(+$G(^XTMP("ABM-PVH",$J,"LOC ENC CNT",ABMSDT,ABMVLOC,"CHIP")),8)
  1. W !,"Total Other Encounters "_ABMLOC_": ",?54,$J(+$G(^XTMP("ABM-PVH",$J,"LOC ENC CNT",ABMSDT,ABMVLOC,"OTHR")),8)
  1. Q
  1. NOTMET ;EP
  1. W !!,"The Patient Volume Threshold (10% for Hospitals) was not met for the MU"
  1. W !,"Qualification year. Details for the volumes that were achieved are provided"
  1. W !,"for your information."
  1. W !!,"Highest Patient Volume Met: ",+$P($G(^XTMP("ABM-PVH",$J,"LOC TOP",ABMVLOC)),U)
  1. W !,"First Day Highest Patient Volume Achieved: ",$$SDT^ABMDUTL(ABMSDT)
  1. W !!,"Patient Volume for the Qualification Year was calculated using the Medicaid"
  1. W !,"calculation method for the hospital and includes ER encounters"
  1. S ABMTHPV=0
  1. S:ABMSDT ABMTHPV=+$G(^XTMP("ABM-PVH",$J,"LOC-DENOM",ABMSDT,ABMVLOC))
  1. S ABMMHPV=0
  1. S:ABMSDT ABMMHPV=+$G(^XTMP("ABM-PVH",$J,"LOC-NUM",ABMSDT,ABMVLOC))
  1. W !!,"Total Patient Encounters of First Highest Patient Volume Period: ",ABMTHPV
  1. W !,"Total Hospital"_$S(+$G(ABMER)=1:"/ER",1:"")_" Encounters of First Highest Patient Volume Period: ",ABMMHPV
  1. S ABMCNT=0
  1. K ABMLN
  1. ;
  1. I +$G(ABMY("TVDTS"))'=0 D
  1. .S ABMCNT=0
  1. .S ABMDT=0
  1. .F S ABMDT=$O(^XTMP("ABM-PVH",$J,"LOC PERCENT",ABMDT)) Q:'ABMDT D
  1. ..S ABMLOC=0
  1. ..F S ABMLOC=$O(^XTMP("ABM-PVH",$J,"LOC PERCENT",ABMDT,ABMLOC)) Q:'ABMLOC D
  1. ...S ABMCNT=ABMCNT+1
  1. ...S ABMPRC($G(^XTMP("ABM-PVH",$J,"LOC PERCENT",ABMDT,ABMLOC)),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-PVH",$J,"LOC PERCENT",$G(ABMPRC(ABMP,ABMCNT)))
  1. .....S ABMC=ABMC+1
  1. ;
  1. D NMHDR
  1. S ABMSDT=0,ABMCNT=0
  1. F S ABMSDT=$O(^XTMP("ABM-PVH",$J,"LOC-DENOM",ABMSDT)) Q:'ABMSDT D
  1. .;start old code abm*2.6*8 NOHEAT
  1. .;S X1=ABMSDT
  1. .;S X2=89
  1. .;D C^%DTC
  1. .;S ABMEDT=X
  1. .;end old code start new code
  1. .;I +$G(ABMY("EDT"))=0 D ;abm*2.6*9 NOHEAT
  1. .I +$G(ABMP("EDT"))=0 D ;abm*2.6*9 NOHEAT
  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") ;abm*2.6*9 NOHEAT
  1. .I +$G(ABMP("EDT"))'=0 S ABMEDT=ABMP("EDT") ;abm*2.6*9 NOHEAT
  1. .;end new code
  1. .S ABMCNT=ABMCNT+1
  1. .S ABMLN(ABMCNT)=$TR($P($$MDT^ABMDUTL(ABMSDT),"-",1,2),"-"," ")_" - "_$TR($P($$MDT^ABMDUTL(ABMEDT),"-",1,2),"-"," ") ;report period
  1. .S $P(ABMLN(ABMCNT),U,2)=$J($G(^XTMP("ABM-PVH",$J,"LOC PERCENT",ABMSDT)),3)_"%" ;rate
  1. .S $P(ABMLN(ABMCNT),U,3)=$J(+$G(^XTMP("ABM-PVH",$J,"LOC-DENOM",ABMSDT)),6) ;denominator
  1. .S $P(ABMLN(ABMCNT),U,4)=$J(+$G(^XTMP("ABM-PVH",$J,"LOC-NUM",ABMSDT)),6) ;numerator
  1. S ABMCUTOF=$S(ABMCNT#2=1:(ABMCNT+1)\2,1:ABMCNT\2)
  1. S ABMMCNT=1
  1. F ABMCUTOF=(ABMCUTOF+1):1:ABMCNT D
  1. .S ABMLN(ABMMCNT)=ABMLN(ABMMCNT)_U_ABMLN(ABMCUTOF)
  1. .K ABMLN(ABMCUTOF)
  1. .S ABMMCNT=+$G(ABMMCNT)+1
  1. S ABMCNT=0
  1. F S ABMCNT=$O(ABMLN(ABMCNT)) Q:'ABMCNT D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .I $Y+5>IOSL D HD^ABMMUPV3,NMHDR Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .S ABMPD=$P(ABMLN(ABMCNT),U)
  1. .S ABMRT=$P(ABMLN(ABMCNT),U,2)
  1. .S ABMDEN=$P(ABMLN(ABMCNT),U,3)
  1. .S ABMNUM=$P(ABMLN(ABMCNT),U,4)
  1. .S ABMPD2=$P(ABMLN(ABMCNT),U,5)
  1. .S ABMRT2=$P(ABMLN(ABMCNT),U,6)
  1. .S ABMDEN2=$P(ABMLN(ABMCNT),U,7)
  1. .S ABMNUM2=$P(ABMLN(ABMCNT),U,8)
  1. .W !,ABMPD,?16,ABMRT,?21,ABMDEN,?29,ABMNUM,?40,ABMPD2,?56,ABMRT2,?63,ABMDEN2,?71,ABMNUM2
  1. Q
  1. NMHDR ;EP
  1. W !
  1. F ABM=1:1:80 W "="
  1. W !,"HOSPITAL"_$S($G(ABMER)=1:"/ER",1:"")_" PATIENT VOLUME - QUALIFICATION YEAR ",ABMY("QYR")
  1. W !,"Report Period",?16,"Rate",?22,"Denom-",?31,"Numer-",?40,"Report Period",?56,"Rate",?63,"Denom-",?71,"Numer-"
  1. W !?22,"inator",?31,"ator",?63,"inator",?71,"ator"
  1. W !
  1. F ABM=1:1:80 W "="
  1. Q
  1. PATIENT ;EP
  1. S ABM("PG")=1
  1. S ABMSDT=$P($G(^XTMP("ABM-PVH",$J,"LOC TOP",ABMVLOC)),U,2)
  1. D HDR^ABMMUPV3
  1. D PTHDR
  1. S ABMITYP=""
  1. F S ABMITYP=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP)) Q:ABMITYP="" D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .S ABMINS=""
  1. .F S ABMINS=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS)) Q:ABMINS="" D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ..S ABMPTL=""
  1. ..F S ABMPTL=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL)) Q:ABMPTL="" D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ...S ABMPTF=""
  1. ...F S ABMPTF=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF)) Q:ABMPTF="" D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ....S ABMVDT=0
  1. ....F S ABMVDT=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF,ABMVDT)) Q:'ABMVDT D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .....S ABMVDFN=0
  1. .....F S ABMVDFN=$O(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF,ABMVDT,ABMVDFN)) Q:'ABMVDFN D Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ......S ABMPT=$P($G(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF,ABMVDT,ABMVDFN)),U,2)
  1. ......S ABMTRIEN=$P($G(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF,ABMVDT,ABMVDFN)),U,3)
  1. ......S IENS=ABMVLOC_","_ABMPT_","
  1. ......S ABMHRN=$$GET1^DIQ(9000001.41,IENS,.02)
  1. ......W !,$E(ABMPTL_", "_ABMPTF,1,16) ;pt name
  1. ......W ?18,ABMHRN ;HRN
  1. ......W ?25,$E($$GET1^DIQ(9000010,ABMVDFN,.07,"E"),1,3) ;Category
  1. ......W ?29,$E($$GET1^DIQ(9000010,ABMVDFN,.08,"E"),1,8) ;clinic
  1. ......W ?39,$S(ABMITYP="X":"",1:ABMITYP) ;insurer type
  1. ......W ?42,$S(ABMINS="NO BILL":"",1:$E(ABMINS,1,10)) ;insurer
  1. ......W ?53,$$CDT^ABMDUTL(ABMVDT) ;visit date
  1. ......W ?70,$S(+ABMTRIEN:$$SDTO^ABMDUTL(ABMTRIEN),1:"") ;dt paid
  1. ......I $P($G(^XTMP("ABM-PVH",$J,"PT LST",ABMSDT,ABMVLOC,ABMITYP,ABMINS,ABMPTL,ABMPTF,ABMVDT,ABMVDFN)),U,4)'="" W ?79,$P(^(ABMVDFN),U,4)
  1. ......I $Y+5>IOSL D HD^ABMMUPV3,PTHDR Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. Q
  1. PTHDR ;
  1. W !,"VISIT LOCATION: ",$$GET1^DIQ(9999999.06,ABMVLOC,.02,"E"),!
  1. F ABM=1:1:80 W "="
  1. W !,?25,"Ser",?39,"I.",?42,"Billed",?53,"Date of",?70,"Date"
  1. W !,"PATIENT NAME",?18,"CHART#",?25,"Cat",?29,"Clinic",?39,"T.",?42,"To",?53,"Service",?70,"Paid",!
  1. F ABM=1:1:80 W "="
  1. Q