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

BARCHKLU.m

Go to the documentation of this file.
  1. BARCHKLU ; IHS/SD/LSL - Look up Collection Information for Insurance Company by Check Number ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;;OCT 26, 2005
  1. ;
  1. ; IHS/SD/LSL - 11/14/02 - V1.7 - NOIS XCA-0802-200093
  1. ; Modify code that $O thru the "D" x-ref to check for checks
  1. ; in all upper case if check entered in lower case and lower case
  1. ; check fails.
  1. ;
  1. ; ********************************************************************
  1. ;
  1. ;** Collection Batch information by check number
  1. ;** option Check Posting Summary (CPS)**
  1. ;
  1. ONE ;EP
  1. N DIC,BARCHKNO,BARCBDA,BARITMNO
  1. ;
  1. ; -------------------------------
  1. ASK W !!
  1. S DIC=$$DIC^XBDIQ1(90051.01)
  1. S DIC(0)="AEQZ"
  1. S D="D"
  1. S DIC("A")="Select Check Number: "
  1. D IX^DIC
  1. I X=" " W !," Must enter a Check Number " G ASK
  1. Q:+Y<0
  1. S BARCHKNO=X
  1. S BARCBDA=+Y
  1. S BARITMNO=0
  1. S BARCBNM=$P(Y,U,2)
  1. S BARITMNO=$O(^BARCOL(DUZ(2),"D",BARCHKNO,BARCBDA,BARITMNO))
  1. I BARITMNO="" D I BARITMNO="" K BARCBDA,BARITMNO,BARCHKNO G ASK
  1. . S BARCHKNO=$$UPC^BARUTL(X)
  1. . S BARCBDA=+Y
  1. . S BARITMNO=0
  1. . S BARITMNO=$O(^BARCOL(DUZ(2),"D",BARCHKNO,BARCBDA,BARITMNO))
  1. . I BARITMNO="" W !,"Couldn't find ITEM for this CHECK NUMBER. Please select again."
  1. I '$D(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,0)) D G ASK
  1. . W !,"PROBLEM WITH THIS ITEM SET UP CONTACT YOUR SUPPORT PERSONNEL"
  1. . K BARCBDA,BARITMNO,BARCHKNO
  1. I '$D(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,1)) D G ASK
  1. . W !,"PROBLEM WITH THIS ITEM SET UP CONTACT YOUR SUPPORT PERSONNEL"
  1. . K BARCBDA,BARITMNO,BARCHKNO
  1. I '$D(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,2)) D G ASK
  1. . W !,"PROBLEM WITH THIS ITEM SET UP CONTACT YOUR SUPPORT PERSONNEL"
  1. . K BARCBDA,BARITMNO,BARCHKNO
  1. S (BARCKAMT,BARINSNM,BARITMPD,BARITMBL,BARITMUD,BARITMUA,BARITMRF)=0
  1. S BARCKAMT=$P(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,1),"^")
  1. S BARINSNM=$P(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,2),"^")
  1. S BARITMPD=$$VAL^XBDIQ1(90051.1101,"BARCBDA,BARITMNO",18)
  1. S BARITMBL=$$VAL^XBDIQ1(90051.1101,"BARCBDA,BARITMNO",19)
  1. S BARITMUD=$P(^BARCOL(DUZ(2),BARCBDA,1,BARITMNO,1),"^",3)
  1. S BAR23=1
  1. S BARITMUA=$$ITT^BARCBC(BARCBDA,BARITMNO,"UN-ALLOCATED")
  1. K BAR23
  1. S BARITMRF=$$ITT^BARCBC(BARCBDA,BARITMNO,"REFUND")*-1
  1. W !,"Check No: ",BARCHKNO,?25,"From: ",$E(BARINSNM,1,30),?65,"For: ",$J(BARCKAMT,10,2),!
  1. K DIR
  1. S DIR(0)="Y"
  1. S DIR("A")=" CORRECT "
  1. S DIR("B")="YES"
  1. D ^DIR
  1. K DIR
  1. I Y'=1 G ASK
  1. D PRINT
  1. Q
  1. ; *********************************************************************
  1. ;
  1. I IOSL=6000 D
  1. .W $$EN^BARVDF("IOF")
  1. .W !?5,"Collection Batch: ",BARCBNM
  1. .W ?50,"Item Number: ",BARITMNO
  1. .W !,"Check Number: ",BARCHKNO
  1. .W ?32,"Issued By: ",BARINSNM
  1. .W !,"Check Amount: ",$J(BARCKAMT,10,2)
  1. .W ?27,"Amount Posted : ",$J(BARITMPD,10,2)
  1. .W ?55,"Balance : ",$J(BARITMBL,10,2)
  1. .W !,"Un-Allocated: ",$J(BARITMUA,10,2)
  1. .W ?55,"Refunded: ",$J(BARITMRF,10,2),!
  1. .W !,"Patient Name",?19,"3P Bill DT",?30,"Bill Name",?48,"DOS",?70,"Paid Amt.",!
  1. .D EBARPG
  1. I IOSL<6000 D BARHDR
  1. ;
  1. ; -------------------------------
  1. DETAILS ;
  1. ; Collect information on what bills this check applied to
  1. S BARBCNT=0
  1. S (BARDTTM,BARCHKPD)=0
  1. F S BARDTTM=$O(^BARTR(DUZ(2),"AD",BARCBDA,BARDTTM)) Q:BARDTTM'>0 D Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DROUT))
  1. .I $P(^BARTR(DUZ(2),BARDTTM,0),"^",15)'=BARITMNO Q
  1. .I '$D(^BARTR(DUZ(2),BARDTTM,1)) Q
  1. .I $P(^BARTR(DUZ(2),BARDTTM,1),"^")'=40 Q
  1. .S (BARBLDA,BARBLPT,BARPDAMT)=0
  1. .S (BARBLNM,BARBLPTN)=""
  1. .S BARPDAMT=$P(^BARTR(DUZ(2),BARDTTM,0),U,2)
  1. .S BARBLDA=$P(^BARTR(DUZ(2),BARDTTM,0),U,4)
  1. .S BARBLPT=$P(^BARTR(DUZ(2),BARDTTM,0),U,5)
  1. .S BARBLPTN=$E($$VAL^XBDIQ1(90050.01,BARBLDA,101),1,25)
  1. .S BARDOSB=$$VALI^XBDIQ1(90050.01,BARBLDA,102)
  1. .S BARDOSE=$$VALI^XBDIQ1(90050.01,BARBLDA,103)
  1. .S BARDOSEF=$$SDT^BARDUTL(BARDOSE)
  1. .S BARDOSBF=$$SDT^BARDUTL(BARDOSB) ;Y2000
  1. .S BARBLNM=$E($$VAL^XBDIQ1(90050.01,BARBLDA,.01),1,15)
  1. .S BAR3PAP=$$SDT^BARDUTL($P($G(^BARBL(DUZ(2),BARBLDA,0)),U,18))
  1. .W !,$E(BARBLPTN,1,18)
  1. .W ?19,BAR3PAP
  1. .W ?30,$E(BARBLNM,1,17)
  1. .W ?48,BARDOSBF_"-"_BARDOSEF
  1. .W ?70,$J(BARPDAMT,10,2)
  1. .S BARBCNT=BARBCNT+1
  1. .S BARCHKPD=BARCHKPD+BARPDAMT
  1. .D PG
  1. .Q
  1. W !!?40,"Bill Count: ",BARBCNT,?60,"TOTALS:",?68,$J(BARCHKPD,12,2),!
  1. D EBARPG
  1. I $E(IOST)="C",IOT["TRM" D EOP^BARUTL(0)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. PRINT ;**Print
  1. ;
  1. ; GET DEVICE (QUEUEING ALLOWED)
  1. S Y=$$DIR^XBDIR("S^P:PRINT Output;B:BROWSE Output on Screen","Do you wish to ","P","","","",1)
  1. K DA
  1. Q:$D(DIRUT)
  1. I Y="B" D Q
  1. . S XBFLD("BROWSE")=1
  1. . S BARIOSL=IOSL
  1. . S IOSL=600
  1. . D VIEWR^XBLM("HEADER^BARCHKLU")
  1. . D FULL^VALM1
  1. . W $$EN^BARVDF("IOF")
  1. .D CLEAR^VALM1 ;clears out all list man stuff
  1. .K XQORNEST,VALMKEY,VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCNT,VALMOFF
  1. .K VALMCON,VALMDN,VALMEVL,VALMIOXY,VALMLFT,VALMLST,VALMMENU,VALMSGR
  1. .K VALMUP,VALMWD,VALMY,XQORS,XQORSPEW,VALMCOFF
  1. .;
  1. .; ------------------------------
  1. DEVE .;
  1. .S IOSL=BARIOSL
  1. .K BARIOSL
  1. .Q
  1. S XBRP="HEADER^BARCHKLU"
  1. S XBNS="BAR"
  1. S XBRX="EXIT^BARCHKLU"
  1. D ^XBDBQUE
  1. ENDJOB Q
  1. ; *********************************************************************
  1. PG ;**page controller
  1. BARPG ;EP PAGE CONTROLLER
  1. ; This utility uses variables BARPG("HDR"),BARPG("DT"),BARPG("LINE"),BARPG("PG")
  1. ; kill variables by D EBARPG
  1. ;
  1. Q:($Y<(IOSL-6))!($G(DOUT)!$G(DFOUT))
  1. S:'$D(BARPG("PG")) BARPG("PG")=0
  1. S BARPG("PG")=BARPG("PG")+1
  1. I $E(IOST)="C",IOT["TRM" D EOP^BARUTL(0) Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DROUT))
  1. ;
  1. ; -------------------------------
  1. Q ;
  1. Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DROUT))
  1. ;
  1. ; -------------------------------
  1. BARHDR ; Write the Report Header
  1. S BARPG("HDR")="Check Posting Summary"
  1. W:$Y @IOF
  1. W !
  1. Q:'$D(BARPG("HDR"))
  1. S:'$D(BARPG("LINE")) $P(BARPG("LINE"),"-",IOM-2)=""
  1. S:'$D(BARPG("PG")) BARPG("PG")=1
  1. I '$D(BARPG("DT")) D
  1. . S %H=$H
  1. . D YX^%DTC
  1. . S BARPG("DT")=Y
  1. U IO
  1. W ?(IOM-$L(BARPG("HDR"))/2),BARPG("HDR")
  1. W !?(IOM-75),BARPG("DT"),?(IOM-15),"PAGE: ",BARPG("PG")
  1. W !,BARPG("LINE")
  1. ;
  1. ; -------------------------------
  1. BARHD ;EP
  1. ; Write column header / message
  1. W !?5,"Collection Batch: ",BARCBNM
  1. W ?50,"Item Number: ",BARITMNO
  1. W !,"Check Number: ",BARCHKNO
  1. W ?32,"Issued By: ",BARINSNM
  1. W !,"Check Amount: ",$J(BARCKAMT,10,2)
  1. W ?27,"Amount Posted : ",$J(BARITMPD,10,2)
  1. W ?55,"Balance : ",$J(BARITMBL,10,2),!
  1. W "Un-Allocated: ",$J(BARITMUA,10,2)
  1. W ?55,"Refunded: ",$J(BARITMRF,10,2),!
  1. W !,"Patient Name"
  1. W ?19,"3P Bill DT"
  1. W ?30,"Bill Name"
  1. W ?48,"DOS"
  1. W ?70,"Paid Amt.",!
  1. I ($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DROUT)) S BARQUIT=1
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EBARPG ;
  1. K BARPG("LINE"),BARPG("PG"),BARPG("HDR"),BARPG("DT")
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EXIT ; Exit routine
  1. Q