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

ABMUVBCH.m

Go to the documentation of this file.
  1. ABMUVBCH ; IHS/SD/SDR - 3PB/UFMS View Batch option
  1. ;;2.6;IHS Third Party Billing;**1,3,9,11,21**;NOV 12, 2009;Build 379
  1. ; View Batch
  1. ;IHS/SD/SDR v2.6 p1 NO HEAT - Added totals for cash. sessions
  1. ;IHS/SD/SDR 2.6 p9 HEAT28995 - added screen so only exports from current DUZ(2) display
  1. ;IHS/SD/SDR v2.6 p11 added V to list of codes
  1. ;IHS/SD/SDR 2.6*21 split to ABMUVBC2
  1. ;IHS/SD/SDR 2.6*21 HEAT129446 - Made change so insurer type would show correctly on report; was blank because of code
  1. ; change made in p11.
  1. ;
  1. START ;START HERE
  1. ; Find requested UFMS export batch in UFMS export file
  1. BEG ;Find beg. export batch
  1. S ABMTRIBL=$P($G(^ABMDPARM(DUZ(2),1,4)),U,14)
  1. W !
  1. K DIC,DIE,X,Y,DA
  1. S DIC="^ABMUTXMT("
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select beginning export: "
  1. S ABMSCRND=$P($G(^ABMDPARM(DUZ(2),1,4)),U,16) ;only show limited entries
  1. S DIC("S")="I $P(^(0),U,4)=DUZ(2) S X1=DT,X2=$P(^ABMUTXMT(Y,0),U) D ^%DTC I X<ABMSCRND" ;abm*2.6*9 HEAT28995
  1. D ^DIC
  1. Q:Y<0
  1. S ABME("XMITB")=+Y
  1. END ;Find end. export batch
  1. W !
  1. S DIC("A")="Select ending export: "
  1. D ^DIC
  1. K DIC
  1. Q:Y<0
  1. S ABME("XMITE")=+Y
  1. I ABME("XMITE")<ABME("XMITB") W !!,"INVALID RANGE!" G BEG
  1. SUMDET ;summary or detail?
  1. K DIC,DIE,DIR,X,Y,DA
  1. S DIR(0)="S^S:SUMMARY;D:DETAIL;P:SUMMARY WITH EXPORT PAGE;X:DETAIL WITH EXPORT PAGE;G:GRAND TOTAL ALL FILES BY TRANSMISSION DATE"
  1. S DIR("A")="SUMMARY OR DETAIL"
  1. S DIR("B")="SUMMARY"
  1. D ^DIR K DIR
  1. S ABMSUMDT=Y
  1. K ABMSAV
  1. SEL ;Select device
  1. S %ZIS="NQ"
  1. S %ZIS("A")="Enter DEVICE: "
  1. D ^%ZIS Q:POP
  1. I IO'=IO(0) D QUE,HOME^%ZIS S DIR(0)="E" D ^DIR K DIR Q
  1. I $D(IO("S")) S IOP=ION D ^%ZIS
  1. PRINT ;EP
  1. ;Callable point for queuing
  1. S ABME("PG")=0
  1. S ABMP("XMIT")=ABME("XMITB")-1
  1. D SET Q:(IOST["C")&(($G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. W !!,$$EN^ABMVDF("HIN"),"E N D O F R E P O R T",$$EN^ABMVDF("HIF"),!
  1. I $E(IOST)="C" S DIR(0)="E" D ^DIR K DIR
  1. I $E(IOST)="P" W $$EN^ABMVDF("IOF")
  1. I $D(IO("S")) D ^%ZISC
  1. K ABME
  1. Q
  1. SET ;SET UP SOME THINGS
  1. D SET^ABMUVBC2 ;abm*2.6*21 IHS/SD/SDR split routine
  1. Q
  1. LOOP ; Loop through bills of specified batch to gather data and print report
  1. D LOOP^ABMUVBC2 ;abm*2.6*21 IHS/SD/SDR split routine
  1. Q
  1. SUMMARY ;
  1. K ABMDUZ2,ABMBDFN
  1. S ABME(ABMBAOUT)=+$G(ABME(ABMBAOUT))+1 ;cnt budget activity bills
  1. S ABMDUZ2=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN,0)),U,2)
  1. S ABMBDFN=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN,0)),U,3)
  1. S ABME(ABMBAOUT,"AMT")=+$G(ABME(ABMBAOUT,"AMT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt bill amt
  1. S ABME("CNT")=+$G(ABME("CNT"))+1 ;cnt total bills
  1. S ABME("TOT")=+$G(ABME("TOT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt total bill amt
  1. I $P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN,0)),U,5)=1 D ;excluded bills
  1. .S ABMEXCNT=+$G(ABMEXCNT)+1
  1. .S ABMEXAMT=+$G(ABMEXAMT)+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U))
  1. Q
  1. DTAIL ;DISPLAY DETAIL
  1. S ABME(ABMBAOUT)=+$G(ABME(ABMBAOUT))+1 ;cnt budget activity bills
  1. S ABMDUZ2=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN,0)),U,2)
  1. S ABMBDFN=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN,0)),U,3)
  1. S ABME(21)=$P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)
  1. S ABME(ABMBAOUT,"AMT")=$G(ABME(ABMBAOUT,"AMT"))+(ABME(21)) ;count bill amt
  1. S ABME("CNT")=+$G(ABME("CNT"))+1 ;cnt total bills
  1. S ABME("TOT")=+$G(ABME("TOT"))+(ABME(21)) ;cnt total bill amt
  1. S ABME(71)=$$SDT^ABMDUTL($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,7)),U))
  1. S ABME(1)=$P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,0)),U)
  1. S ABME(3)=$P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,0)),U,3)
  1. S ABME(5)=$P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,0)),U,5)
  1. S ABME(15)=$$SDT^ABMDUTL($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,1)),U,5))
  1. S ABME("HRN")=$P($G(^AUPNPAT(+ABME(5),41,+ABMDUZ2,0)),U,2)
  1. S ABME("SUFFIX")=$P($G(^ABMDPARM(ABME(3),1,2)),U,4)
  1. W !,ABME("SUFFIX")
  1. ;W ?4,ABME(1),?13,ABME("HRN"),?21,$P($G(^DPT(+ABME(5),0)),U),?48,ABME(15) ;abm*2.6*1 NO HEAT
  1. W ?4,ABME(1),?13,ABME("HRN"),?21,$E($P($G(^DPT(+ABME(5),0)),U),1,22),?45,ABME(15) ;abm*2.6*1 NO HEAT
  1. ;W ?59,ABME(71),?70,$J($FN(ABME(21),",",2),10) ;abm*2.6*1 NO HEAT
  1. W ?57,ABME(71),?68,$J($FN(ABME(21),",",2),10) ;abm*2.6*1 NO HEAT
  1. S ABMXMIT=$O(^ABMDBILL(ABMDUZ2,ABMBDFN,69,"B",ABMP("XMIT"),0))
  1. ;excluded/tribal data
  1. I (ABMTRIBL=1),(+$G(ABMXMIT)'=0),($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,69,ABMXMIT,0)),U,3)=1) W "*"
  1. I $Y+5>IOSL D HD Q:(IOST["C")&((+$G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. Q
  1. GLOOP ;Loop thru bills of specified batch to gather data and print report
  1. D GLOOP^ABMUVBC2 ;abm*2.6*21 IHS/SD/SDR split routine
  1. Q
  1. GRANDTOT ;EP
  1. S ABMDT=0
  1. F S ABMDT=$O(ABMU(ABMDT)) Q:+ABMDT=0 D
  1. .S ABMUS=0
  1. .F S ABMUS=$O(ABMU(ABMDT,ABMUS)) Q:+ABMUS=0 D
  1. ..W !,"SESSION ID: ",ABMDT,?32,"BILLER: ",$S(ABMUS=1:"POS CLAIMS",1:$P($G(^VA(200,ABMUS,0)),U))
  1. W !,ABMLINE
  1. ;
  1. S ABMDUZ2=0
  1. F S ABMDUZ2=$O(ABMT(ABMDUZ2)) Q:+ABMDUZ2=0 D
  1. .W !,$P($G(^DIC(4,ABMDUZ2,0)),U) ;facility name
  1. .S ABMBAOUT=""
  1. .F S ABMBAOUT=$O(ABMT(ABMDUZ2,ABMBAOUT)) Q:ABMBAOUT="" D
  1. ..W !?3,ABMBAOUT,?26,$J(+$G(ABMT(ABMDUZ2,ABMBAOUT)),6),$S(+$G(ABMT(ABMDUZ2,ABMBAOUT))=1:" bill ",1:" bills")
  1. ..W ?40,$J($FN(ABMT(ABMDUZ2,ABMBAOUT,"AMT"),",",2),10)
  1. ..W ?55,$J(+$G(ABMT(ABMDUZ2,ABMBAOUT,"ECNT")),6)_$S(+$G(ABMT(ABMDUZ2,ABMBAOUT,"ECNT"))=1:" bill ",1:" bills")
  1. ..W ?65,$J($FN(+$G(ABMT(ABMDUZ2,ABMBAOUT,"EAMT")),",",2),10)
  1. .W !?5,"Total for facility",?26,$J(+$G(ABM(ABMDUZ2,"CNT")),6),$S(+$G(ABM(ABMDUZ2,"CNT"))=1:" bill ",1:" bills")
  1. .W ?40,$J($FN(ABM(ABMDUZ2,"TOT"),",",2),10),!
  1. ;
  1. W !?5,$$EN^ABMVDF("HIN"),"TOTAL BILLS: ",$$EN^ABMVDF("HIF"),?26,$J(+$G(ABM("CNT")),6)_$S(+$G(ABM("CNT"))=1:" bill",1:" bills"),?$S($G(ABMSUMDT)="S":40,1:69),$J($FN(+$G(ABM("TOT")),",",2),10)
  1. W ?55,$J(+$G(ABMEXCNT),6),$S(+$G(ABMEXCNT)=1:" bill",1:" bills"),?65,$J($FN(+$G(ABMEXAMT),",",2),10),!
  1. ;start new abm*2.6*3 NOHEAT
  1. W !,$E(ABMLINE,1,3)_" EXPORT SUMMARY "_$E(ABMLINE,1,60)
  1. S ABMBAOUT=""
  1. F S ABMBAOUT=$O(ABMBAT(ABMBAOUT)) Q:($G(ABMBAOUT)="") D
  1. .W !?2,ABMBAOUT,?26,$J(+$G(ABMBAT(ABMBAOUT,"CNT")),6),$S(+$G(ABMBAT(ABMBAOUT,"CNT"))=1:" bill ",1:" bills")
  1. .W ?40,$J($FN(ABMBAT(ABMBAOUT,"AMT"),",",2),10)
  1. .W ?55,$J(+$G(ABMBAT(ABMBAOUT,"ECNT")),6),$S(+$G(ABMBAT(ABMBAOUT,"ECNT"))=1:" bill ",1:" bills")
  1. .W ?65,$J($FN(+$G(ABMBAT(ABMBAOUT,"EAMT")),",",2),10)
  1. W !,ABMLINE
  1. ;end new abm*2.6*3 NOHEAT
  1. W !!?5,"TOTAL EXPORTED: ",?26,$J((+$G(ABM("CNT"))-(+$G(ABMEXCNT))),6)_$S(+$G(ABM("CNT"))=1:" bill",1:" bills"),?40,$J($FN((+$G(ABM("TOT"))-(+$G(ABMEXAMT))),",",2),10)
  1. ;
  1. S ABM("TOT")=0
  1. Q
  1. HD ;HEADER FOR DETAIL LISTING
  1. I $G(ABME("PG")),($E(IOST)="C") S DIR(0)="E" D ^DIR K DIR Q:Y=0!$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. S ABME("PG")=ABME("PG")+1
  1. W $$EN^ABMVDF("IOF"),!,?30,$$EN^ABMVDF("HIN"),"UFMS EXPORT SUMMARY",?70,"Page: ",$$EN^ABMVDF("HIF"),ABME("PG")
  1. W !,$$EN^ABMVDF("HIN"),"LOCATION: ",$$EN^ABMVDF("HIF"),$P($G(^AUTTLOC(ABME("LOC"),0)),U,2)
  1. W !,$$EN^ABMVDF("HIN"),"EXPORT DATE: ",$$EN^ABMVDF("HIF"),ABME("BDATE")
  1. W !,$$EN^ABMVDF("HIN"),"FILE NAME: ",$$EN^ABMVDF("HIF"),ABME("FNAME")
  1. W !,$$EN^ABMVDF("HIN")
  1. ;
  1. W "EXPORT(S) RESENT: ",$$EN^ABMVDF("HIF")
  1. S ABMEU=0
  1. F S ABMEU=$O(^ABMUTXMT(ABMP("XMIT"),1,ABMEU)) Q:+ABMEU=0 D
  1. .S ABMEDT=""
  1. .F S ABMEDT=$O(^ABMUTXMT(ABMP("XMIT"),1,ABMEU,2,ABMEDT)) Q:+$G(ABMEDT)=0 D
  1. ..S ABMREXP=0
  1. ..F S ABMREXP=$O(^ABMUTXMT(ABMP("XMIT"),1,ABMEU,2,ABMEDT,3,ABMREXP)) Q:+ABMREXP=0 D
  1. ...S ABMRXIEN=$P($G(^ABMUTXMT(ABMP("XMIT"),1,ABMEU,2,ABMEDT,3,ABMREXP,0)),U)
  1. ...S ABMRXFIL=$P($G(^ABMUTXMT(ABMRXIEN,0)),U,2),ABMREXPF=1
  1. ...W !?3,ABMRXFIL_" IN SESSION "_ABMEDT
  1. I $G(ABMREXPF)'=1 W " <<NONE>>"
  1. ;
  1. W !,$$EN^ABMVDF("HIN")
  1. W ABME("EQ")
  1. ;
  1. ;I ABMSUMDT="D" D ;abm*2.6*1
  1. I ABMSUMDT="D"!(ABMSUMDT="X") D ;abm*2.6*1
  1. .W:(ABMTRIBL=1) !,"NOTE: ""*"" by amount means it was excluded from export"
  1. .W !,?48,"APPROVAL",?60,"DATE OF"
  1. .W !,"LOC",?4,"BILL #",?13,"HRN",?21,"PATIENT",?48,"DATE",?60,"SERVICE",?72,"AMOUNT"
  1. ;I ABMSAV="S" D ;abm*2.6*1
  1. I "^S^P^"[("^"_ABMSAV_"^") D ;abm*2.6*1
  1. .W !,?4,"BUDGET ACTIVITY",?35,"BILL COUNT",?50,"AMOUNT"
  1. I ABMSAV="G" D
  1. .W !,?4,"BUDGET ACTIVITY",?30,"BILL CNT",?43,"AMOUNT",?54,"EXCL.CNT",?67,"EXCL.AMT"
  1. W !,ABME("-"),$$EN^ABMVDF("HIF")
  1. Q
  1. QUE ;QUE TO TASKMAN
  1. S ZTRTN="PRINT^ABMUVBCH"
  1. S ZTDESC="3P UFMS TX EXPORT SUMMARY"
  1. S ZTSAVE("ABM*")=""
  1. K ZTSK
  1. D ^%ZTLOAD
  1. W:$G(ZTSK) !,"Task # ",ZTSK," queued.",!
  1. Q
  1. STOT ;SITE TOTAL
  1. W !!,$$EN^ABMVDF("HIN"),"SITE/BILL TYPE TOTAL:",$$EN^ABMVDF("HIF"),?68,$J($FN(ABME("STOT"),",",2),10)
  1. S ABME("STOT")=0
  1. Q
  1. R ;;MEDICARE
  1. MD ;;MEDICARE
  1. MH ;;MEDICARE
  1. MC ;;MEDICARE
  1. MMC ;;MEDICARE
  1. D ;;MEDICAID
  1. K ;;MEDICAID
  1. FPL ;;MEDICAID
  1. F ;;PRIVATE INSURANCE
  1. P ;;PRIVATE INSURANCE
  1. H ;;PRIVATE INSURANCE
  1. M ;;PRIVATE INSURANCE
  1. N ;;OTHER
  1. I ;;OTHER
  1. W ;;OTHER
  1. C ;;OTHER
  1. G ;;OTHER
  1. T ;;OTHER
  1. SEP ;;OTHER
  1. TSI ;;OTHER
  1. V ;;VET