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

BARRADJ2.m

Go to the documentation of this file.
  1. BARRADJ2 ; IHS/SD/TPF - TRANSACTION/ADJUSTMENT REPORT ;08/20/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**6,7,19,20,21,23,24**;OCT 26, 2005;Build 69
  1. ; IHS/SD/POT 03/20/12 HEAT60464 FIXING INITIAL VALUE OF DSRCTOT ;BAR*1.8*23
  1. ; IHS/SD/POT 03/19/13 HEAT107110 FIXING TOTALS ;BAR*1.8*23
  1. ; IHS/SD/POT 01/15/14 HEAT124730 ADDING DOS TO REPORT ;BAR*1.8*24
  1. ; IHS/SD/POT 02/18/14 HEAT153046 FIXING TOTALS (COLUMN TRANSACTIONS) ;BAR*1.8*24
  1. Q
  1. ;
  1. DETAIL ; EP
  1. N BARBILL,BARBILLO ;BAR*1.8*6
  1. ; Print Detail
  1. N TT S TT=$O(BARY("TRANS TYPE",""))
  1. ;TT = 40 FOR PAYMENT TRANSACTION TYPE
  1. ;AND 43 FOR AN ADJUST ACCOUNT
  1. ;AND 993 FOR 'STATUS CHANGE' TRANSACTION TYPE ;bar*1.8*19*ADD*TMM
  1. I 'TT W !!,"TRANSACTION TYPE PARAMETER MUST BE DEFINED!" H 2 Q
  1. I 'SUMMARY D
  1. . S BAR("COL")="W !,""Bill"",?15,""Transaction"",?26,"""",?45,""Amount"",?56,""Transaction"""_$S(TT=40:"",1:",?69,""Adjustment""")
  1. . I TT=40 S BAR("COL")=BAR("COL")_",?75,""DOS""" ;P.OTT HEAT#124730
  1. . S BAR("COL",0)="W !,""Number"",?19,""Date"",?32,""Insurer"",?45,""Billed"",?59,""Amount"""_$S(TT=40:"",1:",?73,""Type""")
  1. . I TT'=40 S BAR("COL",1)="W !?19,""DOS""" ;P.OTT HEAT#124730
  1. . S BAR("HD",0)="DETAIL Transaction"_$P(BAR("HD",0),"Transaction",2,99)
  1. E D
  1. .S BAR("COL")="W !,"""",?15,"""",?32,""Bill"",?45,""Amount"",?56,""Transaction"",?69,"""""
  1. .S BAR("COL",0)="W !,"""",?5,""Insurer"",?32,""Count"",?45,""Billed"",?59,""Amount"",?73,"""""
  1. .S BAR("HD",0)="SUMMARY Transaction"_$P(BAR("HD",0),"Transaction",2,99)
  1. D:'BARTEXT HDB ;Page and column header
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) S BAR("F1")=1 ;bar*1.8*19*ADD*TMM
  1. Q:$G(BAR("F1")) ;bar*1.8*19*ADD*TMM
  1. ;INITIALIZE TOTALS
  1. K VLOCTTOT,TRANTTOT,ADJTTTOT,SORTTTOT,ARTTOT
  1. S TOTBILLS=0 ;BILL COUNT
  1. S GRANBILL=0 ;BILL AMT GRAND TOT
  1. S GRANTRAN=0 ;TRANS AMT GRAND TOT
  1. S DSRCTOT=0 ;HEAT#60464 FIXING INITIAL VALUE OF DSRCTOT
  1. ;
  1. K I,Y,X
  1. S BARDASH=" ---------- ----------"
  1. S BAREQUAL=" ========== =========="
  1. S BAR("AR")="" ;Initialize A/R Clerk (1)
  1. S BAR("L")="" ;Initialize location (2)
  1. S BAR("TRANS")="" ;Initialize transaction (3)
  1. S BAR("B")="" ;Initialize Batch (3)
  1. S BAR("IT")="" ;Initialize Item (4)
  1. S BAR("SORT")="" ;Initialize sort (5)
  1. S BAR("ACCT")="" ;Initialize A/R account (6)
  1. S BAR("ADJCAT")=""
  1. S BAR("OINS")="" ;OLD INSURER
  1. S BAR("O11")="" ;OLD INS IEN
  1. S BARTR("DATA SRC")=""
  1. S BARPREV="BEGIN"
  1. S BAR("Z")="TMP("_$J_",""BAR-TSR"""
  1. S BAR="^"_BAR("Z")_")"
  1. I '$D(@BAR) D Q ;No data, message, quit
  1. . W $$CJ^XLFSTR("*** NO DATA TO PRINT FOR "_$P($G(^DIC(4,DUZ(2),0)),U)_" ***",IOM)
  1. . D EOP^BARUTL(0)
  1. . I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) S BAR("F1")=1 Q ;IHS/SD/AR 1.8*19
  1. S BARBILLO="" ;BAR*1.8*6
  1. F S BAR=$Q(@BAR) Q:BAR[("BAR-TSRS") D Q:$G(BAR("F1"))
  1. . ;OLD CODE I $Y>(IOSL-5) D HD Q:$G(BAR("F1")) D SUBHD ;
  1. . I 'BARTEXT I $Y>(IOSL-5) D HD Q:$G(BAR("F1")) D SUBHD ;4/1/14 BAR*1.8*24 (NO PAGING)
  1. .S BAR("TXT")=$P($P(BAR,",",4,99),"""",2)
  1. .S BAR("TXT")=$P(BAR,",",3)_U_BAR("TXT") ;Subscript
  1. .S BAR("TXTO")=BAR("TXT") ;NOW THIS IS THE SAME ORDER AS IN ^BARRADJ
  1. .;THIS NEXT LINE TAKES DUZ(2) AND STICKS IT AT THE END OF THE STRING?
  1. .S BAR("TXT")=$P(BAR("TXTO"),U)_U_$P(BAR("TXTO"),U,3,99)_U_$P(BAR("TXTO"),U,2)
  1. .S BAR("NODE")=@BAR ;Data
  1. .S BARBILL=$P(BAR("TXT"),U,7) ;BAR*1.8*6
  1. .S BAR(1)=$P(BAR("NODE"),U) ;Bill number
  1. .S BAR(2)=$P(BAR("NODE"),U,2) ;PAY-AMT
  1. .S BAR(3)=$P(BAR("NODE"),U,3) ;PRV-CRD
  1. .S BAR(4)=$P(BAR("NODE"),U,4) ;Refund
  1. .S BAR(5)=$P(BAR("NODE"),U,5) ;Payment
  1. .S BAR(6)=$P(BAR("NODE"),U,6) ;Bill Amount
  1. .S BAR(7)=$P(BAR("NODE"),U,7) ;Adjustment
  1. .S BAR(8)=$P(BAR("NODE"),U,8) ;transaction type
  1. .S BAR(9)=$P(BAR("NODE"),U,9) ;insurer
  1. .S BAR(10)=$P(BAR("NODE"),U,10) ;transaction date
  1. .S BAR(11)=$P(BAR("NODE"),U,11) ;A/R ACCT PTR (INSURER PTR)
  1. .S BAR(12)=$P(BAR("NODE"),U,12) ;Adjustment category
  1. .S BAR(13)=$P(BAR("NODE"),U,13) ;Adjustment Type
  1. .I BARTEXT D
  1. ..Q:$L(BAR("NODE"),U)<10
  1. ..N BARDLMTD
  1. ..S BARDLMTD("CLINICVISIT")="NONE"
  1. ..S BARDLMTD("VISIT")=$P(BAR("TXT"),U,2)
  1. ..I BARY("SORT")="C" D
  1. ...I $P(BAR("TXT"),U,6)=99999 S BARDLMTD("CLINICVISIT")="NO CLINIC" ;bar*1.8*21 SDR
  1. ...S BARDLMTD("CLINICVISIT")=$P(^DIC(40.7,$P(BAR("TXT"),U,6),0),U) ;bar*1.8*21 SDR
  1. ..I BARY("SORT")="V" D
  1. ...I $P(BAR("TXT"),U,6)=99999 S BARDLMTD("CLINICVISIT")="NO VISIT TYPE" ;bar*1.8*21 SDR
  1. ...S BARDLMTD("CLINICVISIT")=$P($G(^ABMDVTYP($P(BAR("TXT"),U,6),0)),U) ;bar*1.8*21 SDR
  1. ..S BARDLMTD("BILLNUM")=BAR(1)
  1. ..S BARDLMTD("DOS")=$$GETDOS(BARBILL) ;P.OTT HEAT#124730
  1. ..S BARDLMTD("TRANSDATE")=BAR(10)
  1. ..S BARDLMTD("INSURER")=BAR(9)
  1. ..S BARDLMTD("BILLAMT")=$FN(BAR(6),",",2)
  1. ..S BARDLMTD("TRXNAMT")=$FN(BAR(3)+BAR(4)+BAR(5)+BAR(7),",",2)
  1. ..I $D(BARY("TRANS TYPE",43))!$D(BARY("TRANS TYPE",993)) D ;M819*ADD*TMM
  1. ...I '$P(BAR("TXT"),U,3) S BARDLMTD("ADJCAT")=$P(BAR("TXT"),U,3)
  1. ...E S BARDLMTD("ADJCAT")=$$GET1^DIQ(90052.01,$P(BAR("TXT"),U,3)_",",.01,"E")
  1. ...S BARDLMTD("ADJTYPE")=$E($$GET1^DIQ(90052.02,BAR(12)_",",.01),1,12)
  1. ... ;IHS/SD/POT BAR*1.8*24 ADDED DOS
  1. ... ;W:BARY("SORT")="N" !,BARDLMTD("VISIT")_U_BARDLMTD("ADJCAT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")_U_BARDLMTD("ADJTYPE")
  1. ... ;W:BARY("SORT")'="N" !,BARDLMTD("VISIT")_U_BARDLMTD("CLINICVISIT")_U_BARDLMTD("ADJCAT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")_U_BARDLMTD("ADJTYPE")
  1. ... W:BARY("SORT")="N" !,BARDLMTD("VISIT")_U_BARDLMTD("ADJCAT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("DOS")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")_U_BARDLMTD("ADJTYPE")
  1. ... W:BARY("SORT")'="N" !,BARDLMTD("VISIT")_U_BARDLMTD("CLINICVISIT")_U_BARDLMTD("ADJCAT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("DOS")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")_U_BARDLMTD("ADJTYPE")
  1. ..E D
  1. ... ;IHS/SD/POT BAR*1.8*24 ADDED DOS
  1. ... ;W:BARY("SORT")="N" !,BARDLMTD("VISIT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")
  1. ... ;W:BARY("SORT")'="N" !,BARDLMTD("VISIT")_U_BARDLMTD("CLINICVISIT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")
  1. ...W:BARY("SORT")="N" !,BARDLMTD("VISIT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("DOS")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")
  1. ...W:BARY("SORT")'="N" !,BARDLMTD("VISIT")_U_BARDLMTD("CLINICVISIT")_U_BARDLMTD("BILLNUM")_U_BARDLMTD("DOS")_U_BARDLMTD("TRANSDATE")_U_BARDLMTD("INSURER")_U_BARDLMTD("BILLAMT")_U_BARDLMTD("TRXNAMT")
  1. .Q:BARTEXT
  1. .I BARPREV="BEGIN" D
  1. ..S BARPREV=BAR(12)
  1. .E D
  1. ..I BARPREV'=BAR(12),$D(BARY("TRANS TYPE",43))!$D(BARY("TRANS TYPE",993)) D ;M819*ADD*TMM
  1. ...S BARPREV=BAR(12)
  1. ...D SUBTYPE
  1. .I $D(BARY("AR")),BAR("AR")'=$P(BAR("TXT"),U) D
  1. ..S BAR("L")=""
  1. ..D SUBHD
  1. .S BAR("AR")=$P(BAR("TXT"),U)
  1. .;
  1. .I BAR("L")'=$P(BAR("TXT"),U,2) D
  1. ..I BAR("L")]"" D
  1. ...I SUMMARY D GETCOUNT
  1. ...Q:$G(BAR("F1"))
  1. ...W !,BARDASH
  1. ...D SUBLOC
  1. ...W !
  1. ..W !?1,"Visit Location.......: ",$P(BAR("TXT"),U,2)
  1. ..S (BAR("TRANS"))=""
  1. ..S (TRANBTOT,TRANTTOT)=0
  1. .S BAR("L")=$P(BAR("TXT"),U,2)
  1. .;
  1. .I BAR("TRANS")'=$P(BAR("TXT"),U,3) D
  1. ..I BAR("TRANS")]"" D
  1. ...Q:$G(BAR("F1"))
  1. ...I SUMMARY D GETCOUNT
  1. ...W !,BARDASH
  1. ...D SUBTRAN
  1. ...W !
  1. ..I $D(BARY("TRANS TYPE",43)) W !?5,"Adjustment Category.......: "
  1. ..I $D(BARY("TRANS TYPE",993)) W !?5,"Adjustment Category.......: " ;M819*ADD*TMM
  1. ..I '$P(BAR("TXT"),U,3) W $P(BAR("TXT"),U,3)
  1. ..E D
  1. ...I $D(BARY("TRANS TYPE",43))!$D(BARY("TRANS TYPE",993)) W $$GET1^DIQ(90052.01,$P(BAR("TXT"),U,3)_",",.01,"E") ;M819*ADD*TMM
  1. ...E W $$GET1^DIQ(90052.02,$P(BAR("TXT"),U,3)_",",.01,"E")
  1. .S BAR("TRANS")=$P(BAR("TXT"),U,3)
  1. .I BAR("SORT")'=$P(BAR("TXT"),U,6) D
  1. ..I BAR("SORT")]"" D
  1. ...Q:$G(BAR("F1"))
  1. ...I SUMMARY D GETCOUNT
  1. ...W !,BARDASH
  1. ...D SUBSORT
  1. ...W !
  1. ..I BARTR("DATA SRC")'=$P(BAR("TXT"),U,5) D
  1. ...I BARTR("DATA SRC")]"" D
  1. ....I SUMMARY D GETCOUNT
  1. ....Q:$G(BAR("F1"))
  1. ....W !,BARDASH
  1. ....D SUBDSRC
  1. ....W !
  1. ...W !?10,"Data Source..........: ",$S($P(BAR("TXT"),U,5)="e":"ELECTRONIC",1:"MANUAL")
  1. ..S BARTR("DATA SRC")=$P(BAR("TXT"),U,5)
  1. ..I BARY("SORT")="C" D
  1. ...W !?10,"Clinic Type..........: "
  1. ...I $P(BAR("TXT"),U,6)=99999 W "NO CLINIC" Q
  1. ...W $P(^DIC(40.7,$P(BAR("TXT"),U,6),0),U),!
  1. ..I BARY("SORT")="V" D
  1. ...W !?10,"Visit Type...........: "
  1. ...I $P(BAR("TXT"),U,6)=99999 W "NO VISIT TYPE" Q
  1. ...W $P($G(^ABMDVTYP($P(BAR("TXT"),U,6),0)),U),!
  1. .S BAR("SORT")=$P(BAR("TXT"),U,6)
  1. .I 'SUMMARY W !,$E(BAR(1),1,15) ; A/R Bill ;BAR*1.8*1 item 1 page 12
  1. .I 'SUMMARY W ?15,BAR(10) ;TRANS DATE
  1. .I SUMMARY S OFFSET=10
  1. .E S OFFSET=27
  1. .I $L($E(BAR(9),1,15))<15 D
  1. ..K FILL
  1. ..S $P(FILL," ",16-$L(BAR(9)))=""
  1. ..W:'SUMMARY ?OFFSET,$E(BAR(9),1,15)_FILL
  1. .E W:'SUMMARY ?OFFSET,$E(BAR(9),1,15) ;INSURER
  1. .I 'SUMMARY D
  1. ..Q:BARBILL=BARBILLO
  1. ..W ?41,$J($FN(BAR(6),",",2),10) ; Bill Amt
  1. .I 'SUMMARY W ?55,$J($FN(BAR(3)+BAR(4)+BAR(5)+BAR(7),",",2),10) ;GET ALL ADJS
  1. .I 'SUMMARY W $P(BAR("TXT"),U,5)
  1. .I 'SUMMARY,'$D(BARY("TRANS TYPE",40)) W ?67,$E($$GET1^DIQ(90052.02,BAR(12)_",",.01),1,12) ;ADJ TYPE
  1. . S BARDOS=$$GETDOS(BARBILL) ;P.OTT HEAT#124730
  1. . I 'SUMMARY I TT=40 W ?69,BARDOS
  1. . I 'SUMMARY I TT'=40 W !?15,BARDOS ;P.OTT
  1. .;ADD THE SUBTOTALS ONLY IFA NEW BILL. AND DON'T ADD IF THE BILL AMT FOR A BILL HAS ALREADY BEEN COUNTED
  1. .I BARBILL'=BARBILLO D
  1. .. S VLOCBTOT=$G(VLOCBTOT)+BAR(6)
  1. .. S TRANBTOT=$G(TRANBTOT)+BAR(6)
  1. .. S ADJTBTOT=$G(ADJTBTOT)+BAR(6)
  1. .. S SORTBTOT=$G(SORTBTOT)+BAR(6)
  1. .. S ARBTOT=$G(ARBTOT)+BAR(6)
  1. .. S DSRCBTOT=$G(DSRCBTOT)+BAR(6)
  1. .. S BARBILLO=BARBILL
  1. .. ;following 2 lines moved from bottom p.ott HEAT 107110
  1. .. S GRANBILL=GRANBILL+BAR(6) ;p.ott
  1. .. ;;;S GRANTRAN=GRANTRAN+BAR(3)+BAR(4)+BAR(5)+BAR(7) ;p.ott LINE DEATIVATED 2/18/2014 HEAT 153046
  1. . S VLOCTTOT=$G(VLOCTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7) ;WAS ADDING BAR(2)
  1. . S TRANTTOT=$G(TRANTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7)
  1. . S ADJTTTOT=$G(ADJTTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7)
  1. . S SORTTTOT=$G(SORTTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7)
  1. . S ARTTOT=$G(ARTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7)
  1. . S DSRCTTOT=$G(DSRCTTOT)+BAR(3)+BAR(4)+BAR(5)+BAR(7)
  1. . ;S GRANBILL=GRANBILL+BAR(6) ;p.ott 2 lines taken from here UP 107110 FIXING TOTALS
  1. . S GRANTRAN=GRANTRAN+BAR(3)+BAR(4)+BAR(5)+BAR(7) ;LINE ACTIVATED 2/18/2014 HEAT 153046
  1. Q:$G(BAR("F1"))!BARTEXT
  1. I SUMMARY D GETCOUNT
  1. W !,BARDASH
  1. D SUBSORT ;2 LINES SWAPPED 107110 FIXING TOTALS ; Totals by Sort type
  1. D SUBDSRC ; Totals by Data Source
  1. W ! D SUBTRAN
  1. W ! D SUBLOC
  1. D TOT
  1. Q
  1. HD ; EP
  1. D PAZ^BARRUTL
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) S BAR("F1")=1 Q
  1. HDB ; EP
  1. ; Page and column header
  1. S BAR("PG")=BAR("PG")+1
  1. S BAR("I")=""
  1. D WHD^BARRHD ; Report header
  1. X BAR("COL")
  1. X BAR("COL",0)
  1. I $G(BAR("COL",1))]"" X BAR("COL",1) ;P.OTT
  1. S $P(BAR("DASH"),"=",$S($D(BAR(132)):132,1:80))=""
  1. W !,BAR("DASH")
  1. Q
  1. SUBHD ;
  1. ; If A/R clerk specified
  1. Q:'$D(BARY("AR"))
  1. Q:'+$P(BAR("TXT"),U)
  1. W !!,"A/R Entry Clerk: ",$P(^VA(200,$P(BAR("TXT"),U),0),U)
  1. Q
  1. SUBTRAN ;EP - TOTALS BY TRANSACTION TYPE
  1. I $D(BARY("TRANS TYPE",40)) W !?10,"Totals by Transaction type:"
  1. E W !?10,"Totals by Adjustment Category:"
  1. W ?42,$J($FN(TRANBTOT,",",2),10)
  1. W ?55,$J($FN(TRANTTOT,",",2),10)
  1. S (TRANBTOT,TRANTTOT)=0
  1. Q
  1. SUBLOC ;
  1. ; Totals by Visit location.
  1. W !,"Location Tot:"
  1. W ?42,$J($FN(VLOCBTOT,",",2),10)
  1. W ?55,$J($FN(VLOCTTOT,",",2),10)
  1. S (VLOCBTOT,VLOCTTOT)=0
  1. Q
  1. SUBADJ ;
  1. ; Totals by adjustment category
  1. W !,"Adjustment Category Tot:"
  1. W ?41,$J($FN(ADJTBTOT,",",2),10)
  1. W ?55,$J($FN(ADJTTTOT,",",2),10)
  1. S (ADJTBTOT,ADJTTTOT)=0
  1. Q
  1. SUB2 ;
  1. ; Totals by Collection Batch
  1. Q
  1. Q:'BAR("BTOT2")
  1. W !," Batch Tot:"
  1. W ?41,$J($FN(BAR("BTOT2"),",",2),10)
  1. W ?55,$J($FN(BAR("ATOT2"),",",2),10)
  1. S (BAR("PATOT2"),BAR("PCTOT2"),BAR("RTOT2"),BAR("PTOT2"),BAR("BTOT2"),BAR("ATOT2"))=0
  1. Q
  1. SUB3 ;
  1. Q
  1. ; Totals by Collection Batch Item
  1. Q:'BAR("BTOT3")
  1. W !," Item Tot:"
  1. W ?41,$J($FN(BAR("BTOT3"),",",2),10)
  1. W ?55,$J($FN(BAR("ATOT3"),",",2),10)
  1. S (BAR("PATOT3"),BAR("PCTOT3"),BAR("RTOT3"),BAR("PTOT3"),BAR("BTOT3"),BAR("ATOT3"))=0
  1. Q
  1. ;
  1. SUBDSRC ;
  1. ; Totals by Data Source
  1. W !?25,"Data Source Tot:"
  1. I SUMMARY W !?5,"Subtotal:",?33,$J(DSRCTTOT,5,0) ;IHS/SD/TPF 7/27/2011 BAR*1.8*21 BUG FOUND BY ADRIAN TYPO
  1. W ?42,$J($FN(DSRCBTOT,",",2),10)
  1. W ?55,$J($FN(DSRCTTOT,",",2),10)
  1. S (DSRCBTOT,DSRCTTOT)=0
  1. Q
  1. ;
  1. SUBSORT ;
  1. ; Totals by Sort type
  1. ;
  1. I BARY("SORT")="C",'SUMMARY W !?25,"Clinic Tot:"
  1. I BARY("SORT")="V",'SUMMARY W !?25,"Visit Type Tot:"
  1. ;
  1. I BARY("SORT")'="N" D
  1. .I SUMMARY W !?5,"Subtotal:",?33,$J(SUBTOT,5,0)
  1. .W ?42,$J($FN(SORTBTOT,",",2),10)
  1. .W ?55,$J($FN(SORTTTOT,",",2),10)
  1. S (SORTBTOT,SORTTTOT)=0
  1. Q
  1. SUB5 ;
  1. Q
  1. ; totals by A/R Account
  1. Q:'BAR("BTOT5")
  1. W !,"A/R Acct Tot:"
  1. W ?41,$J($FN(BAR("BTOT5"),",",2),10)
  1. W ?55,$J($FN(BAR("ATOT5"),",",2),10)
  1. S (BAR("PATOT5"),BAR("PCTOT5"),BAR("RTOT5"),BAR("PTOT5"),BAR("BTOT5"),BAR("ATOT5"))=0
  1. Q
  1. TOT ;
  1. ; Report (a/r clerk) totals
  1. W !!,BAREQUAL
  1. I 'SUMMARY W !,"REPORT TOTAL"
  1. E W !,"Total:"
  1. I SUMMARY W ?33,$J($G(TOTBILLS),5,0)
  1. W ?42,$J($FN(GRANBILL,",",2),10)
  1. W ?55,$J($FN(GRANTRAN,",",2),10)
  1. S BAR("ST")=1
  1. Q
  1. GETCOUNT ;
  1. N BILL,INSURER
  1. S SUBTOT=0
  1. S SUBS=$P(BAR("TXTO"),U,1,7)
  1. S $P(SUBS,U,7)=BAR("SORT")
  1. S INSURER=""
  1. F S INSURER=$O(^TMP($J,"BAR-TSRS-INS",SUBS,INSURER)) Q:INSURER="" D
  1. .W !?5,$E($$GET1^DIQ(90050.02,INSURER_",",.01,"E"),1,25)
  1. .S BILL=""
  1. .F CNT=0:1 S BILL=$O(^TMP($J,"BAR-TSRS-INS",SUBS,INSURER,BILL)) Q:BILL=""
  1. .W ?33,$J(CNT,5,0)
  1. .S TOTBILLS=TOTBILLS+CNT
  1. .S SUBTOT=SUBTOT+CNT
  1. Q
  1. SUBTYPE ;
  1. W !,BARDASH
  1. W !,?20,"Adjustment Type Tot:"
  1. W ?41,$J($FN(ADJTBTOT,",",2),10)
  1. W ?55,$J($FN(ADJTTTOT,",",2),10)
  1. W !
  1. S (ADJTBTOT,ADJTTTOT)=0
  1. Q
  1. GETDOS(BARBILL) ;
  1. NEW X,Y
  1. S X=$$GET1^DIQ(90050.01,BARBILL,102,"I") ;P.OTT DOS BEGIN WAS "I"
  1. Q $$SDT^BARDUTL(X)
  1. ;EOR