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

ABMUVBC2.m

Go to the documentation of this file.
  1. ABMUVBC2 ; 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 from ABMUVBCH
  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. SET ;SET UP SOME THINGS
  1. ;ABME("BDATE") = Batch export date
  1. ;ABME("FNAME") = File Name
  1. S ABMSAV=ABMSUMDT ;save original option
  1. K Y,DIRUT,DIROUT,DTOUT,DUOUT
  1. S ABMSUMDT=$S(ABMSUMDT="X"!(ABMSUMDT="D"):"D",1:"S") ;change option back for summary
  1. F S ABMP("XMIT")=$O(^ABMUTXMT(ABMP("XMIT"))) Q:'+ABMP("XMIT")!(ABMP("XMIT")>ABME("XMITE")) D Q:(IOST["C")&(($G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .S Y=$P(^ABMUTXMT(ABMP("XMIT"),0),U)
  1. .D DD^%DT
  1. .S ABME("BDATE")=Y
  1. .S ABME("FNAME")=$P($G(^ABMUTXMT(ABMP("XMIT"),0)),U,2)
  1. .S ABME("LOC")=$P($G(^ABMUTXMT(ABMP("XMIT"),0)),U,4)
  1. .S ABME("TOT")=0
  1. .S ABME("STOT")=0
  1. .S ABME("CNT")=0
  1. .S $P(ABME("-"),"-",81)=""
  1. .S $P(ABME("EQ"),"=",81)=""
  1. .I "PXG"[ABMSAV D ;print reconcile page before summary
  1. ..D LOOP^ABMUVBCR(ABMP("XMIT"),ABME("LOC"))
  1. ..S ABME("PG")=0 ;reset page cntr
  1. .F ABMI=1,2 D
  1. ..S ABMUS=0
  1. ..F S ABMUS=$O(^ABMUTXMT(ABMP("XMIT"),ABMI,ABMUS)) Q:+ABMUS=0 D
  1. ...S ABMUSR=$G(^ABMUTXMT(ABMP("XMIT"),ABMI,ABMUS,0))
  1. ...Q:+ABMUSR=0
  1. ...S ABMSDT=0
  1. ...F S ABMSDT=$O(^ABMUTXMT(ABMP("XMIT"),ABMI,ABMUSR,2,ABMSDT)) Q:+ABMSDT=0 D
  1. ....S ABMLOOP=$S(ABMI=1:10,1:20)
  1. ....S ABM0=$G(^ABMUCASH(ABME("LOC"),ABMLOOP,ABMUSR,20,ABMSDT,0))
  1. ....S ABMSTR=$P(ABM0,U,4)_U_$P(ABM0,U,3) ;SESSION STATUS^SIGN OUT DATE
  1. ....S ABMUSER=$S(ABMLOOP=20:"POS",1:ABMUSR) ;SUB "POS" FOR USER IEN
  1. ....S ABMC(ABMSDT,ABMUSER,ABMSDT)=ABMSTR ;Create local ABMC array
  1. .D HD^ABMUVBCH
  1. .D:ABMSAV'="G" LOOP^ABMUVBCH Q:(IOST["C")&(($G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .D:ABMSAV="G" GLOOP^ABMUVBCH,GRANDTOT^ABMUVBCH Q:(IOST["C")&(($G(Y)=0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. Q
  1. LOOP ; Loop through bills of specified batch to gather data and print report
  1. S ABMSDT=0
  1. F S ABMSDT=$O(ABMC(ABMSDT)) Q:+ABMSDT=0 D
  1. .S ABMUSER=""
  1. .F S ABMUSER=$O(ABMC(ABMSDT,ABMUSER)) Q:ABMUSER="" D
  1. ..S ABMLOOP=$S(+ABMUSER'=0:1,1:2)
  1. ..S ABMUS=ABMUSER
  1. ..I ABMUS="POS" S ABMUS=1
  1. ..W !!,"SESSION ID: ",ABMSDT
  1. ..;start old abm*2.6*1
  1. ..;W:ABMUS'=1 ?30,"BILLER: ",$P($P($G(^VA(200,ABMUS,0)),U),",")_","_$E($P($P($G(^VA(200,ABMUS,0)),U),",",2),1),!
  1. ..;W:ABMUS=1 ?30,"BILLER: POS CLAIMS",!
  1. ..;end old start new
  1. ..W:ABMUS'=1 ?30,"BILLER: ",$P($P($G(^VA(200,ABMUS,0)),U),",")_","_$E($P($P($G(^VA(200,ABMUS,0)),U),",",2),1)
  1. ..W:ABMUS=1 ?30,"BILLER: POS CLAIMS"
  1. ..;end new
  1. ..;start new abm*2.6*1 NOHEAT
  1. ..D TOTAL^ABMUVBC1
  1. ..W ?55,"TOTAL: ",$J($FN(ABME("TAMT"),",",2),10)
  1. ..;end new NOHEAT
  1. ..S ABMBA=0,ABMEXCNT=0,ABMEXAMT=0
  1. ..F S ABMBA=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA)) Q:+ABMBA=0 D Q:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. ...S ABMBAOUT=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,0)),U)
  1. ...K ABME(ABMBAOUT)
  1. ...S ABMBIEN=0
  1. ...;W !?2,$P($T(@ABMBAOUT^ABMUCASH),";;",2) ;abm*2.6*21 IHS/SD/SDR HEAT129446
  1. ...W !?2,$$INSTYP^ABMUCASH(ABMBAOUT) ;abm*2.6*21 IHS/SD/SDR HEAT129446
  1. ...F S ABMBIEN=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMSDT,11,ABMBA,2,ABMBIEN)) Q:+ABMBIEN=0 D Q:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. ....I ABMSUMDT="D" D DTAIL^ABMUVBCH
  1. ....I ABMSUMDT="S" D SUMMARY^ABMUVBCH
  1. ....Q:((IOST["C")&(+$G(Y)=0))!$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. ...I ABMSUMDT="S" D
  1. ....W ?35,+$G(ABME(ABMBAOUT)),$S(+$G(ABME(ABMBAOUT))=1:" bill",1:" bills")
  1. ....W ?50,$J($FN(ABME(ABMBAOUT,"AMT"),",",2),10)
  1. ...;start new abm*2.6*1 NOHEAT
  1. ...I ABMSUMDT="D" D
  1. ....W !?68,"----------"
  1. ....W !?68,$J($FN(ABME(ABMBAOUT,"AMT"),",",2),10)
  1. ...;end new NOHEAT
  1. ..I +$G(ABMEXCNT)'=0 D
  1. ...W !?26,+$G(ABMEXCNT)," excluded "_$S(+$G(ABMEXCNT)=1:"bill",1:"bills"),?45,$J($FN(ABMEXAMT,",",2),10),!
  1. W !!,$$EN^ABMVDF("HIN"),"TOTAL BILLS FOR THIS EXPORT: ",$$EN^ABMVDF("HIF"),?35,ABME("CNT")_$S(ABME("CNT")=1:" bill",1:" bills"),?$S(ABMSUMDT="S":50,1:69),$J($FN(ABME("TOT"),",",2),10)
  1. S ABME("TOT")=0
  1. Q
  1. GLOOP ;Loop thru bills of specified batch to gather data and print report
  1. K ABMT
  1. S ABMEXCNT=0,ABMEXAMT=0
  1. K ABMBAT ;abm*2.6*3
  1. F ABMLOOP=1,2 D Q:(IOST["C")&(($G(Y)<0)!($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. .S ABMU=0
  1. .F S ABMU=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMU)) Q:+ABMU=0 D Q:(IOST["C")&(($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ..S ABMUS=$G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMU,0))
  1. ..Q:+ABMUS=0
  1. ..S ABMDT=0
  1. ..F S ABMDT=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT)) Q:+ABMDT=0 D Q:(IOST["C")&(($D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)))
  1. ...S ABMBA=0
  1. ...F S ABMBA=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA)) Q:+ABMBA=0 D Q:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. ....S ABMBAOUT=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA,0)),U)
  1. ....;S ABMBAOUT=$P($T(@ABMBAOUT),";;",2) ;abm*2.6*21 IHS/SD/SDR HEAT279161
  1. ....S ABMBAOUT=$$INSTYP^ABMUCASH(ABMBAOUT) ;abm*2.6*21 IHS/SD/SDR HEAT279161
  1. ....S ABMBIEN=0
  1. ....F S ABMBIEN=$O(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA,2,ABMBIEN)) Q:+ABMBIEN=0 D Q:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. .....K ABMDUZ2,ABMBDFN
  1. .....S ABMDUZ2=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA,2,ABMBIEN,0)),U,2)
  1. .....S ABMBDFN=$P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA,2,ABMBIEN,0)),U,3)
  1. .....S ABMT(ABMDUZ2,ABMBAOUT)=+$G(ABMT(ABMDUZ2,ABMBAOUT))+1 ;cnt b.a. bills for location
  1. .....;start new abm*2.6*3 NOHEAT
  1. .....S ABMBAT(ABMBAOUT,"CNT")=+$G(ABMBAT(ABMBAOUT,"CNT"))+1 ;cnt b.a. tot
  1. .....S ABMBAT(ABMBAOUT,"AMT")=+$G(ABMBAT(ABMBAOUT,"AMT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt b.a. total amt
  1. .....;end new abm*2.6*3
  1. .....S ABMT(ABMDUZ2,ABMBAOUT,"AMT")=+$G(ABMT(ABMDUZ2,ABMBAOUT,"AMT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt bill amt
  1. .....S ABM(ABMDUZ2,"CNT")=+$G(ABM(ABMDUZ2,"CNT"))+1 ;cnt bills for loc
  1. .....S ABM("CNT")=+$G(ABM("CNT"))+1 ;cnt total bills
  1. .....S ABM(ABMDUZ2,"TOT")=+$G(ABM(ABMDUZ2,"TOT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt amt for location
  1. .....S ABM("TOT")=+$G(ABM("TOT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt tot bill amt
  1. .....I $P($G(^ABMUTXMT(ABMP("XMIT"),ABMLOOP,ABMUS,2,ABMDT,11,ABMBA,2,ABMBIEN,0)),U,5)=1 D ;excluded bills
  1. ......S ABMT(ABMDUZ2,ABMBAOUT,"ECNT")=+$G(ABMT(ABMDUZ2,ABMBAOUT,"ECNT"))+1 ;cnt excluded by loc/Budget act.
  1. ......S ABMT(ABMDUZ2,ABMBAOUT,"EAMT")=+$G(ABMT(ABMDUZ2,ABMBAOUT,"EAMT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;excl. amt
  1. ......;start new abm*2.6*3 NOHEAT
  1. ......S ABMBAT(ABMBAOUT,"ECNT")=+$G(ABMBAT(ABMBAOUT,"ECNT"))+1 ;cnt b.a. E-total
  1. ......S ABMBAT(ABMBAOUT,"EAMT")=+$G(ABMBAT(ABMBAOUT,"ETOT"))+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U)) ;cnt b.a. total E-amt
  1. ......;end new abm*2.6*3
  1. ......S ABMEXCNT=+$G(ABMEXCNT)+1
  1. ......S ABMEXAMT=+$G(ABMEXAMT)+($P($G(^ABMDBILL(ABMDUZ2,ABMBDFN,2)),U))
  1. .....S ABMU(ABMDT,ABMUS)=""
  1. Q