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

ABMESTAT.m

Go to the documentation of this file.
  1. ABMESTAT ; IHS/SD/SDR - Bills Export Statistical Report;
  1. ;;2.6;IHS Third Party Billing System;**3,10,11**;NOV 12, 2009;Build 133
  1. ; IHS/SD/SDR - abm*2.6*3 - MU - new routine
  1. ;
  1. K ABM,ABMY
  1. S ABM("NODX")=""
  1. ;
  1. D ^XBFMK
  1. S DIR(0)="S^1:Summarized Report by ALLOWANCE CATEGORY;2:Summarized Report by INSURER;3:Summarized Report by INSURER TYPE"
  1. S DIR("A")="Select the desired REPORT TYPE: "
  1. S DIR("B")="1"
  1. D ^DIR K DIR
  1. S ABM("SRT")=$S(Y=2:"I",Y=3:"T",1:"A")
  1. S ABM("DT")="A"
  1. S ABM("DT",1)=3090101
  1. S ABM("DT",2)=DT
  1. ;
  1. SEL ;
  1. D ^ABMDRSEL Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S ABM("HD",0)="BILLS Export Statistical Report"
  1. D ^ABMDRHD
  1. S ABMQ("RC")="COMPUTE^ABMESTAT"
  1. S ABMQ("RX")="POUT^ABMDRUTL"
  1. S ABMQ("NS")="ABM"
  1. S ABMQ("RP")="PRINT^ABMESTAT"
  1. D ^ABMDRDBQ
  1. Q
  1. ;
  1. COMPUTE ;EP - Entry Point for Setting up Data
  1. S ABM("SUBR")="ABM-ES" K ^TMP("ABM-ES",$J) S ABM("PG")=0
  1. SLOOP I $D(ABMY("DT")) D Q
  1. .S ABM("RD")=ABMY("DT",1)-1
  1. .S ABMY("DT",2)=ABMY("DT",2)_".999999"
  1. .I ABMY("DT")="A" D Q
  1. ..F S ABM("RD")=$O(^ABMDBILL(DUZ(2),"AP",ABM("RD"))) Q:'+ABM("RD")!(ABM("RD")>ABMY("DT",2)) D
  1. ...S ABM="" F S ABM=$O(^ABMDBILL(DUZ(2),"AP",ABM("RD"),ABM)) Q:'ABM D DATA
  1. .I ABMY("DT")="V" D Q
  1. ..S ABMVDFN=0
  1. ..F S ABMVDFN=$O(^ABMDBILL(DUZ(2),"AV",ABMVDFN)) Q:'ABMVDFN D
  1. ...S ABMVDT=$P($P($G(^AUPNVSIT(ABMVDFN,0)),U),".")
  1. ...I (ABMVDT<ABMY("DT",1)!(ABMVDT>ABMY("DT",2))) Q
  1. ...S ABM="" F S ABM=$O(^ABMDBILL(DUZ(2),"AV",ABMVDFN,ABM)) Q:'ABM D DATA
  1. .S ABMXMT=0
  1. .F S ABMXMT=$O(^ABMDBILL(DUZ(2),"AX",ABMXMT)) Q:'ABMXMT D
  1. ..S ABMXDT=$P($P($G(^ABMDTXST(DUZ(2),ABMXMT,0)),U),".")
  1. ..I (ABMXDT<ABMY("DT",1)!(ABMXDT>ABMY("DT",2))) Q
  1. ..S ABM=0 F S ABM=$O(^ABMDBILL(DUZ(2),"AX",ABMXMT,ABM)) Q:'ABM D DATA
  1. ;
  1. S ABM=0
  1. F S ABM=$O(^ABMDBILL(DUZ(2),ABM)) Q:'ABM D DATA
  1. Q
  1. ;
  1. DATA ;
  1. S ABMP("HIT")=0 D BILL^ABMDRCHK Q:'ABMP("HIT")
  1. I ABM("SRT")="I" S ABM("SORT")=$P($G(^AUTNINS(ABM("I"),0)),U)
  1. I ABM("SRT")="T" D
  1. .;S ABM("SORT")=$$GET1^DIQ(9999999.18,ABM("I"),".21","E") ;abm*2.6*10 HEAT73780
  1. .S ABM("SORT")=$$GET1^DIQ(9999999.18,ABM("I"),".211","E") ;abm*2.6*10 HEAT73780
  1. ;I ABM("SRT")="A" S ABM("SORT")=$P($T(@($P(^AUTNINS(ABM("I"),2),U))),";;",2) ;abm*2.6*10 HEAT73780
  1. I ABM("SRT")="A" S ABM("SORT")=$P($T(@($$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("I"),".211","I"),1,"I"))),";;",2) ;abm*2.6*10 HEAT73780
  1. S ABM("L")=$P(^DIC(4,ABM("L"),0),U)
  1. S ABM("EXP")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,6)
  1. S:$G(ABM("EXP"))="" ABM("EXP")="MANUAL BILL W/O EXPORT MODE" ;no export mode--manual bill
  1. S:($G(^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT")))="") ^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT"))=ABM("L")_U_ABM("EXP")_U_ABM("SORT")
  1. S $P(^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT")),U,4)=+$P($G(^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT"))),U,4)+1 ;number bills
  1. S $P(^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT")),U,5)=+$P($G(^TMP("ABM-ES",$J,ABM("L"),ABM("EXP"),ABM("SORT"))),U,5)+$P($G(^ABMDBILL(DUZ(2),ABM,2)),U) ;total
  1. Q
  1. PRINT ;
  1. S ABM("TXT")=""
  1. S ABM("PG")=0
  1. D HDB
  1. S (ABM("SUBCNT"),ABM("SUBAMT"))=0,(ABM("EXP"),ABM("V"))=""
  1. S (ABM("TCNT"),ABM("TAMT"))=0
  1. S ABM("A")="TMP(""ABM-ES"","_$J
  1. S ABM="^"_ABM("A")_")" I '$D(@ABM) Q
  1. ;
  1. F S ABM=$Q(@ABM) Q:ABM'[ABM("A") D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .S ABM("TCNT")=ABM("TCNT")+$P($G(@ABM),U,4)
  1. ;
  1. S ABM="^"_ABM("A")_")" I '$D(@ABM) Q
  1. F S ABM=$Q(@ABM) Q:ABM'[ABM("A") D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .I $Y>(IOSL-5) D HD Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT) D EXP W " (cont)"
  1. .S ABM("TXT")=$G(@ABM)
  1. .I ABM("EXP")'=$P(ABM("TXT"),U,2) S ABM("V")="" D SUB,EXP
  1. .S ABM("EXP")=$P(ABM("TXT"),U,2)
  1. .W !?10,$P(ABM("TXT"),U,3)
  1. .W ?40,$J($P(ABM("TXT"),U,4),"6R")
  1. .W ?64,$J($FN($P(ABM("TXT"),U,5),",",2),"12R")
  1. .S ABM("SUBCNT")=ABM("SUBCNT")+$P(ABM("TXT"),U,4)
  1. .S ABM("TAMT")=ABM("TAMT")+$P(ABM("TXT"),U,5),ABM("SUBAMT")=ABM("SUBAMT")+$P(ABM("TXT"),U,5)
  1. Q:$D(DIROUT)!($D(DUOUT))!($D(DTOUT))
  1. D SUB
  1. W !!?40,"======",?64,"============"
  1. W !?20,"Total:",?40,$J(ABM("TCNT"),"6R"),?64,$J($FN(ABM("TAMT"),",",2),"12R")
  1. Q
  1. ;
  1. HD D PAZ^ABMDRUTL Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. HDB S ABM("PG")=ABM("PG")+1 D WHD^ABMDRHD
  1. W !?40,"Number"
  1. W !?10,$S(ABM("SRT")="I":"Insurer",ABM("SRT")="A":"Allowance Category",1:"Insurer Type")
  1. W ?40,"Bills",?53,"Percent",?68,"Total"
  1. S $P(ABM("LINE"),"-",80)="" W !,ABM("LINE") K ABM("LINE")
  1. Q
  1. ;
  1. EXP W !!?3,"Export Mode: "_$S(+$P(ABM("TXT"),U,2):$P($G(^ABMDEXP($P(ABM("TXT"),U,2),0)),U),1:$P(ABM("TXT"),U,2))
  1. Q
  1. ;
  1. SUB Q:'ABM("SUBCNT")
  1. W !?40,"------",?64,"------------"
  1. W !?20,"Subtotal:",?40,$J(ABM("SUBCNT"),"6R"),?55,$J((ABM("SUBCNT")/ABM("TCNT")*100),".",1),?64,$J($FN(ABM("SUBAMT"),",",2),"12R")
  1. S ABM("SUBCNT")=0,ABM("SUBAMT")=0
  1. Q
  1. ;abm*2.6*11 VMBP#4
  1. TXT ;
  1. H ;;PRIVATE
  1. M ;;PRIVATE
  1. D ;;MEDICAID
  1. R ;;MEDICARE
  1. P ;;PRIVATE
  1. W ;;OTHER
  1. C ;;OTHER
  1. F ;;PRIVATE
  1. N ;;OTHER
  1. I ;;OTHER
  1. K ;;MEDICAID
  1. T ;;OTHER
  1. G ;;OTHER
  1. MD ;;MEDICARE
  1. MH ;;MEDICARE
  1. V ;;VMBP