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

ABMM2P11.m

Go to the documentation of this file.
  1. ABMM2P11 ;IHS/SD/SDR - MU Patient Volume EP Report ; 12 Feb 2014 3:32 PM
  1. ;;2.6;IHS 3P BILLING SYSTEM;**15**;NOV 12, 2009;Build 251
  1. ;IHS/SD/SDR - 2.6*15 - HEAT161159 - Changed PT LST to sort differently so there won't be duplicate vsts on pt lst. Also added record indicator.
  1. ;IHS/SD/SDR - 2.6*15 - HEAT157235 - Code change to stop <UNDEF>ENROLL+39^ABMM2PV7
  1. ;IHS/SD/SDR - 2.6*15 - HEAT157688 - Code change to stop <UNDEF>OTHRVST+1^ABMM2PV7
  1. ;IHS/SD/SDR - 2.6*15 - HEAT156874 - Code for <SUBSCR>PTDATA+16^ABMM2PV7. Occurs when no patient on visit.
  1. ;IHS/SD/SDR - 2.6*15 - HEAT183289 - Added tribal self-insured counters.
  1. ;
  1. GPTDATA ;EP
  1. I +$G(ABMP("VDFN"))'=0 D
  1. .S ABMVHLD=ABMVDFN
  1. .S ABMVDFN=ABMP("VDFN")
  1. S ABMPNM=$$GET1^DIQ(2,ABMPT,.01,"E")
  1. I '$D(^DPT(ABMPT))!(ABMPNM="") Q ;abm*2.6*15 HEAT156874
  1. I +$G(ABMINS)&(+$G(ABMEFLG)'=1) S ABMOINS=$$GET1^DIQ(9999999.18,ABMINS,.01,"E")
  1. E S ABMOINS="NO BILL"
  1. I +$G(ABMARACT) S ABMARACT=$$GET1^DIQ(90050.01,ABMARIEN_",",3,"E")
  1. S:$G(ABMITYP)="" ABMITYP="X"
  1. I +$G(ABMTRIEN)'=0 D
  1. .S ABMRECPD=""
  1. .I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))),(+$G(ABMTRTYP)'=40)&("^113^114^121^132^137^138^139^"'[("^"_+$G(ABMADJT)_"^")) S ABMRIND="ZPD" ;abm*2.6*15 HEAT161159
  1. .I (+$G(ABMTRTYP)'=40)&("^113^114^121^132^137^138^139^"'[("^"_+$G(ABMADJT)_"^")) S ABMRECPD="" Q ;abm*2.6*14 HEAT161159
  1. .;I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))) S ABMRECPD="*",ABMFOUND=1 ;abm*2.6*15 HEAT161159
  1. .I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))) S ABMRECPD="*",ABMFOUND=1,ABMRIND="PD" ;abm*2.6*15 HEAT161159
  1. I +$G(ABMTRIEN)=0 S ABMTRIEN="NOT PAID",ABMRECPD=""
  1. S ABMREC=ABMVDFN_U_ABMPT_U_$S(+$G(ABMTRIEN)'=0:$P($G(ABMTRIEN),"."),1:"")_U_ABMRECPD
  1. S ABMREC=ABMREC_U_$G(ABMBILLN)_U_$S($G(ABMBILLN):+$G(ABMTRAMT),1:$G(ABMTRAMT))_U_$G(ABMDX)
  1. S ABMPNPI=$P($G(^XTMP("ABM-PVP2",$J,"PRVS",ABMVDFN)),U) ;abm*2.6*15 HEAT174501
  1. S ABMPRVN=$P($G(^XTMP("ABM-PVP2",$J,"PRVS",ABMVDFN)),U,2) ;abm*2.6*15 HEAT174501
  1. S ABMREC=ABMREC_U_ABMITYP_U_$S($G(ABMARACT)'="":ABMARACT,1:ABMOINS)_U_$P(ABMPNM,",")_U_$P(ABMPNM,",",2)_U_$G(ABMPNPI)_U_$G(ABMPRVN)_U_$P($G(^AUPNVSIT(ABMVDFN,0)),U) ;abm*2.6*15 HEAT161159 and HEAT174501
  1. S ABMREC=ABMREC_U_+$G(ABMNPI)_U_$G(ABMTIN)_U_$G(ABMRIND) ;abm*2.6*15 HEAT171490 AND HEAT161159
  1. ;S ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMVLOC,ABMITYP,$S($G(ABMARACT)'="":ABMARACT,1:ABMOINS),$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)=ABMREC ;abm*2.6*15 HEAT161159
  1. S ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMVLOC,$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)=ABMREC ;abm*2.6*15 HEAT161159
  1. ;start old abm*2.6*15 HEAT161159
  1. ;I (+$G(ABMBILLN)'=0)&$D(^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMVLOC,"X","NO BILL",$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)) D ;abm*2.6*12
  1. ;.K ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMVLOC,"X","NO BILL",$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)
  1. ;end old abm*2.6*15 HEAT161159
  1. I +$G(ABMP("VDFN"))'=0 D
  1. .S ABMVDFN=ABMVHLD
  1. Q
  1. PTDATA ;EP
  1. I +$G(ABMP("VDFN"))'=0 D
  1. .S ABMVHLD=ABMVDFN
  1. .S ABMVDFN=ABMP("VDFN")
  1. S ABMPNM=$$GET1^DIQ(2,ABMPT,.01,"E")
  1. I '$D(^DPT(ABMPT))!(ABMPNM="") Q ;abm*2.6*15 HEAT156874
  1. I +$G(ABMINS)&(+$G(ABMEFLG)'=1) S ABMOINS=$$GET1^DIQ(9999999.18,ABMINS,.01,"E")
  1. E S ABMOINS="NO BILL"
  1. I +$G(ABMARACT) S ABMARACT=$$GET1^DIQ(90050.01,ABMARIEN_",",3,"E")
  1. S:$G(ABMITYP)="" ABMITYP="X"
  1. I +$G(ABMTRIEN)'=0 D
  1. .S ABMRECPD=""
  1. .I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))),(+$G(ABMTRTYP)'=40)&("^113^114^121^132^137^138^139^"'[("^"_+$G(ABMADJT)_"^")) S ABMRIND="ZPD" ;abm*2.6*15 HEAT161159
  1. .I (+$G(ABMTRTYP)'=40)&("^113^114^121^132^137^138^139^"'[("^"_+$G(ABMADJT)_"^")) S ABMRECPD="" Q ;abm*2.6*14 HEAT161159
  1. .;I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))) S ABMRECPD="*",ABMFOUND=1 ;abm*2.6*15 HEAT161159
  1. .I (ABMITYP="D")&(+$G(ABMEFLG)=0)!($D(ABMI("INS",ABMINS))) S ABMRECPD="*",ABMFOUND=1,ABMRIND="PD" ;abm*2.6*15 HEAT161159
  1. I +$G(ABMTRIEN)=0 S ABMTRIEN="NOT PAID",ABMRECPD=""
  1. S ABMREC=ABMVDFN_U_ABMPT_U_$S(+$G(ABMTRIEN)'=0:$P($G(ABMTRIEN),"."),1:"")_U_ABMRECPD
  1. S ABMREC=ABMREC_U_$G(ABMBILLN)_U_$S($G(ABMBILLN):+$G(ABMTRAMT),1:$G(ABMTRAMT))_U_$G(ABMDX)
  1. S ABMREC=ABMREC_U_ABMITYP_U_$S($G(ABMARACT)'="":ABMARACT,1:ABMOINS)_U_$P(ABMPNM,",")_U_$P(ABMPNM,",",2)_U_$P($G(^AUPNVSIT(ABMVDFN,0)),U) ;abm*2.6*15 HEAT161159
  1. S ABMREC=ABMREC_U_+$G(ABMNPI)_U_$G(ABMTIN)_U_$G(ABMRIND) ;abm*2.6*15 HEAT171490 AND HEAT161159
  1. ;S ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMPRV,ABMVLOC,ABMITYP,$S($G(ABMARACT)'="":ABMARACT,1:ABMOINS),$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)=ABMREC ;abm*2.6*15 HEAT161159
  1. S ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMPRV,ABMVLOC,$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)=ABMREC ;abm*2.6*15 HEAT161159
  1. ;start old abm*2.6*15 HEAT161159
  1. ;I (+$G(ABMBILLN)'=0)&$D(^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMPRV,ABMVLOC,"X","NO BILL",$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)) D
  1. ;.K ^XTMP("ABM-PVP2",$J,"PT LST",ABMP("BDT"),ABMPRV,ABMVLOC,"X","NO BILL",$P(ABMPNM,","),$P(ABMPNM,",",2),$P($G(^AUPNVSIT(ABMVDFN,0)),U),ABMVDFN)
  1. ;end old abm*2.6*15 HEAT161159
  1. I +$G(ABMP("VDFN"))'=0 D
  1. .S ABMVDFN=ABMVHLD
  1. Q
  1. GENROLL ;EP
  1. D CALCDTS^ABMM2PV1
  1. S ABMDTFLG=0
  1. S ABMP("BDT")=ABMP("BSDT")
  1. F D Q:ABMDTFLG=1
  1. .I ABMP("VDT")<ABMP("BSDT") Q ;vst is before 90-day window
  1. .I (+$G(ABML("MCD"))=0&(+$G(ABML("CHIP"))=0))&(+$G(ABML("OTHR"))=1) D
  1. ..Q:+$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))=2 ;counted as pd; cnting here would be duplicate
  1. ..I ($G(ABMTSI)="Y") Q ;abm*2.6*15
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMGRP))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMVLOC,ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMVLOC,ABMGRP))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMVLOC)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM OELIG",ABMP("BDT"),ABMVLOC))+1
  1. .I (+$G(ABML("MCD"))=1!(+$G(ABML("CHIP"))=1)) D
  1. ..F ABMGRP="MCD","CHIP" D
  1. ...I +$G(ABML(ABMGRP))'=1 Q
  1. ...I ABMGRP="MCD",((+$G(ABML("MCD"))=1)&(+$G(ABML("CHIP"))=1)) Q
  1. ...I +$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))=2 D
  1. ....I $D(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"),ABMVLOC)) D
  1. .....S ^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"),ABMVLOC,"OTHR")=^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"),ABMVLOC,"OTHR")-1
  1. .....S ^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"),"OTHR")=^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"),"OTHR")-1
  1. ....I '$D(^XTMP("ABM-PVP2",$J,"PRV-NUM ZEROPD",ABMP("BDT"))) D
  1. .....S ^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMP("BDT"),ABMVLOC,"OTHR")=^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMP("BDT"),ABMVLOC,"OTHR")-1
  1. .....S ^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMP("BDT"),"OTHR")=^XTMP("ABM-PVP2",$J,"PRV-NUM PD",ABMP("BDT"),"OTHR")-1
  1. ...;start new abm*2.6*15 HEAT161159
  1. ...S ABMINS=0
  1. ...S ABMRIND="" ;abm*2.6*15
  1. ...F S ABMINS=$O(ABMILST(ABMINS)) Q:'ABMINS D
  1. ....I ABMGRP="MCD"!(ABMGRP="CHIP")!($D(ABMI("INS",ABMINS))) S ABMRIND="ENR"
  1. ...;end new HEAT161159
  1. ...S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMP("BDT"),ABMVLOC,ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMP("BDT"),ABMVLOC,ABMGRP))+1
  1. ...S ^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMP("BDT"),ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV ENC CNT",ABMP("BDT"),ABMGRP))+1
  1. ...S ^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMGRP))+1
  1. ...S ^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMVLOC,ABMGRP)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMVLOC,ABMGRP))+1
  1. ...S ^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMVLOC)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM ENR",ABMP("BDT"),ABMVLOC))+1
  1. ...;I +$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))'=2 D GPTDATA ;abm*2.6*15
  1. ...I +$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))'=1 D GPTDATA ;abm*2.6*15
  1. ...S ^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN)=1
  1. ...;start new abm*2.6*15 HEAT183289
  1. .;I +$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))=0,($G(ABMTSI)="Y"),(+$G(ABMICNT)=1) D ;abm*2.6*15
  1. .I +$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))'=1,($G(ABMTSI)="Y"),(+$G(ABMICNT)=1) D ;abm*2.6*15
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),ABMGRP,ABMVLOC,"TRIBSI")=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),ABMGRP,ABMVLOC,"TRIBSI"))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),ABMVLOC,"TRIBSI")=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),ABMVLOC,"TRIBSI"))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),"TRIBSI")=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM TRIBSI",ABMP("BDT"),"TRIBSI"))+1
  1. .;end new HEAT183289
  1. .;start new abm*2.6*15 uncomp care
  1. .I '$D(ABML) D
  1. ..Q:+$G(^XTMP("ABM-PVP2",$J,"VISITS",ABMVDFN))=2
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),"UNCOMP")=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),"UNCOMP"))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),ABMVLOC,"UNCOMP")=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),ABMVLOC,"UNCOMP"))+1
  1. ..S ^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),ABMVLOC)=+$G(^XTMP("ABM-PVP2",$J,"PRV-NUM UNCOMP",ABMP("BDT"),ABMVLOC))+1
  1. .;end new abm*2.6*15
  1. .S X1=ABMP("BDT")
  1. .S X2=1
  1. .D C^%DTC
  1. .I X>ABMP("BEDT") S ABMDTFLG=1 Q
  1. .S ABMP("BDT")=X
  1. Q