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

ABMRDNY1.m

Go to the documentation of this file.
  1. ABMRDNY1 ; IHS/SD/SDR - Printer - Fixed Length Record (Paper printing) ;
  1. ;;2.6;IHS Third Party Billing;**21**;NOV 12, 2009;Build 379
  1. ;IHS/SD/SDR - 2.6*21 - HEAT241429 - New Report
  1. ;
  1. PRINT ;EP for printing data
  1. S ABM("TXT")=""
  1. D HDB
  1. S (ABM("CNT"),ABM("SUBCNT"))=0
  1. S ABM("PRV")=""
  1. S ABM("A")="TMP(""ABM-RDNY"","_$J
  1. S ABM="^"_ABM("A")_")"
  1. I '$D(@ABM) Q
  1. F S ABM=$Q(@ABM) Q:ABM'[ABM("A") D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .S ABM("T")=$P(ABM,"ABM-RDNY",2)
  1. .S ABM("TXT")=+$P(ABM("T"),",",5) ;BDFN
  1. .I $Y>(IOSL-5) D HD Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT) D PRV W " (cont)"
  1. .S ABM("C")=$G(^ABMDBILL(DUZ(2),ABM("TXT"),0)) Q:ABM("C")=""
  1. .Q:'ABM("C")!'$P(ABM("C"),U,7)!'$P(ABM("C"),U,8)
  1. .I ABM("PRV")'=$TR($P(ABM("T"),",",3,4),"""") S ABM("PRV")="" D SUB,PRV
  1. .S ABM("PRV")=$TR($P(ABM("T"),",",3,4),"""") ;provider name
  1. .W !,$E($P(ABM("C"),U),1,10) ;bill number
  1. .W ?12,$$SDT^ABMDUTL($P($G(^ABMDBILL(DUZ(2),ABM("TXT"),7)),U)) ;DOS
  1. .;
  1. .S ABMP("INS")=$P(ABM("C"),U,8)
  1. .S ABMP("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMP("INS"),".211","I"),1,"I")
  1. .S ABMP("VTYP")=$P(ABM("C"),U,7)
  1. .S ABMP("CLN")=$P(ABM("C"),U,10)
  1. .S ABMP("CLIN")=$$GET1^DIQ(40.7,$P(ABM("C"),U,10),"1","E")
  1. .S ABMP("BDFN")=ABM("TXT")
  1. .S ABMP("VDT")=$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),7)),U)
  1. .S ABMP("BTYP")=$P(ABM("C"),U,2)
  1. .S ABMP("LDFN")=$P(ABM("C"),U,3)
  1. .S ABMP("EXP")=$P(ABM("C"),U,6)
  1. .D CPTS ;gather CPTs on claim
  1. .D PSTING ;gather posting info
  1. .;
  1. .W ?24,$E($P($G(ABMT(1)),U,2),1,7) ;first CPT
  1. .W ?32,$E($P($G(^AUTNINS($P(ABM("C"),U,8),0)),U),1,12) ;active insurer
  1. .W ?46,$J($FN(+$P($G(ABMT(1)),U,6),",",2),9) ;billed
  1. .W ?57,$J($FN(+$G(ABMD("P")),",",2),9) ;paid
  1. .W ?67,$J($FN(+$G(ABMD(1)),",",2),9) ;denial
  1. .S ABMD("DTOT")=+$G(ABMD("DTOT"))+$G(ABMD(1))
  1. .W ?77,$P($G(ABMD(1)),U,2) ;SAR
  1. .S ABM("CNT")=ABM("CNT")+1,ABM("SUBCNT")=ABM("SUBCNT")+1
  1. .;
  1. .I $O(ABMT(9999999),-1)>1!($O(ABMD(9999),-1)>1) D
  1. ..F ABMI=2:1 D Q:'$D(ABMT(ABMI))&('$D(ABMD(ABMI)))
  1. ...Q:'$D(ABMT(ABMI))&('$D(ABMD(ABMI))) ;quit if no further entries for either
  1. ...W !
  1. ...I $P($G(ABMT(ABMI)),U,2)'="" D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT) ;if there's a CPT on the line
  1. ....W ?24,$E($P(ABMT(ABMI),U,2),1,7) ;CPT
  1. ....W ?46,$J($FN(+$P($G(ABMT(ABMI)),U,6),",",2),9) ;billed
  1. ...I +$P($G(ABMD(ABMI)),U)'=0 W ?67,$J($FN(+$P($G(ABMD(ABMI)),U),",",2),9) S ABMD("DTOT")=+$G(ABMD("DTOT"))+$P($G(ABMD(ABMI)),U) ;denied
  1. ...I $P($G(ABMD(ABMI)),U,2)'="" W ?77,$P($G(ABMD(ABMI)),U,2) ;SAR
  1. ...I $Y>(IOSL-5) D HD Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT) D PRV W " (cont)"
  1. .;
  1. .W !,?46,"---------",?57,"---------",?67,"---------"
  1. .S ABMP("GL")="^ABMDBILL(DUZ(2),"_ABMP("BDFN")_",",ABMP("TOT")=0,ABMP("NC")=0
  1. .D ^ABMDESM1
  1. .W !?20,"Total for Bill: ",$E($P(ABM("C"),U),1,10),?46,$J($FN(+$G(ABMS("TOT")),",",2),9),?57,$J($FN(+$G(ABMD("P")),",",2),9),?67,$J($FN(+$G(ABMD("DTOT")),",",2),9),!
  1. Q:$D(DIROUT)!($D(DUOUT))!($D(DTOUT))
  1. D SUB
  1. W !?52,"======"
  1. W !?46,"Total:",?52,$FN(ABM("CNT"),",",0)
  1. Q
  1. ;
  1. HD D PAZ^ABMDRUTL Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. HDB ;
  1. S ABM("PG")=ABM("PG")+1
  1. D WHD^ABMDRHD
  1. W !,"Bill#",?12,"DOS",?24,"CPT",?30,"Active Insurer",?47,"Billed",?57,"Paid",?67,"Denied",?77,"SAR"
  1. S $P(ABM("LINE"),"-",80)="" W !,ABM("LINE") K ABM("LINE")
  1. Q
  1. ;
  1. PRV ;
  1. W !!?3,"Provider: ",$TR($P(ABM("T"),",",3,4),"""")
  1. Q
  1. ;
  1. SUB ;
  1. Q
  1. Q:'ABM("SUBCNT")
  1. W !?27,"------"
  1. W !?3,"#Claims for provider:",?27,$FN(ABM("SUBCNT"),",",0)
  1. S ABM("SUBCNT")=0
  1. Q
  1. CPTS ;EP
  1. N ABM
  1. K ABMRV,ABMT,ABMD
  1. S ABMTCNT=1
  1. D ^ABMEHGRV
  1. S ABMI=0
  1. F S ABMI=$O(ABMRV(ABMI)) Q:'ABMI D
  1. .S ABMJ=0
  1. .F S ABMJ=$O(ABMRV(ABMI,ABMJ)) Q:'ABMJ D
  1. ..S ABMK=0
  1. ..F S ABMK=$O(ABMRV(ABMI,ABMJ,ABMK)) Q:(ABMK="") D
  1. ...S ABMT(ABMTCNT)=$G(ABMRV(ABMI,ABMJ,ABMK))
  1. ...S ABMTCNT=+$G(ABMTCNT)+1
  1. Q
  1. PSTING ;EP
  1. S ABMB=0
  1. S ABMTCNT=1
  1. F S ABMB=$O(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB)) Q:'ABMB D
  1. .S ABMD("P")=+$G(ABMD("P"))+$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB,0)),U,10)
  1. .F ABMA=3,4,6,7,9,12,13 D
  1. ..I +$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB,0)),U,ABMA)'=0 D
  1. ...S ABMD(ABMTCNT)=+$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB,0)),U,ABMA)
  1. ...I +$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB,0)),U,17)'=0 S ABMD(ABMTCNT)=ABMD(ABMTCNT)_U_$$GET1^DIQ(90056.06,$P($G(^ABMDBILL(DUZ(2),ABM("TXT"),3,ABMB,0)),U,17),".01","E")
  1. ...S ABMTCNT=+$G(ABMTCNT)+1
  1. Q