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

ACHSDSTE.m

Go to the documentation of this file.
  1. ACHSDSTE ; IHS/OIT/FCJ - DOCUMENT STATUS REPORT FOR EOBR DATA ; [ 01/16/2003 8:54 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**26**;JUN 11, 2001;Build 43
  1. ;ACHS*3.1*26 NEW ROUTINE
  1. ;Modified routine to just print documents that have had payments
  1. ;between a specific data range. This report if for aiding in service
  1. ;units monthly reconciliation.
  1. ;
  1. ;
  1. D ^ACHSVAR
  1. TITLE ;;DOCUMENT STATUS
  1. S ACHSIO=IO
  1. K X2,X3
  1. BDT ;
  1. S ACHSBDT=$$DATE^ACHS("B",$P($T(TITLE),";",3),"ISSUE")
  1. G K:$D(DUOUT)!$D(DTOUT)!(ACHSBDT<1)
  1. EDT ;
  1. S ACHSEDT=$$DATE^ACHS("E",$P($T(TITLE),";",3),"ISSUE")
  1. G K:$D(DTOUT)!(ACHSEDT<1),BDT:$D(DUOUT)
  1. G:$$EBB^ACHS(ACHSBDT,ACHSEDT) EDT
  1. FY ;
  1. W !!,"Enter Fiscal (e.g. 2016): " D READ^ACHSFU Q:$D(DUOUT)!$D(DTOUT) I Y'?4N W !!,*7,"Enter 4 DIGIT Fiscal Year" G FY
  1. S FY=$E(Y,4),ACHSFY=$E(Y,3,4)
  1. ;
  1. W !!!,"ONLY DOCUMENTS THAT HAVE HAD PAYMENTS WILL BE LISTED (P/IP/ZA)"
  1. W !!
  1. ;
  1. DEV ;
  1. S %ZIS="OPQ"
  1. D ^%ZIS
  1. I POP D HOME^%ZIS G K
  1. G:'$D(IO("Q")) PRINT
  1. K IO("Q")
  1. I $D(IO("S"))!($E(IOST)'="P") W *7,!,"Please queue to system printers." D ^%ZISC G DEV
  1. S ZTRTN="PRINT^ACHSDSTE",ZTIO="",ZTDESC="CHS PAYMENTS",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. F ACHS="ACHSQIO","ACHSBDT","ACHSEDT","ACHSRPT","ACHSFY","FY" S ZTSAVE(ACHS)=""
  1. D ^%ZTLOAD
  1. G:'$D(ZTSK) DEV
  1. K ;
  1. K ACHS,ACHSIO,ACHSQIO,ACHSBDT,ACHSEDT,ACHSRPT,ZTIO,ZTSK,ACHSFY,FY
  1. D ^%ZISC
  1. Q
  1. ;
  1. PRINT ;EP - From TaskMan.
  1. ;
  1. D FC^ACHSUF
  1. I $D(ACHSERR),ACHSERR=1 K ZTSK G KILL
  1. S (ACHSTOTP,ACHSCNX,ACHSOPEN,ACHSTOTP("$"),ACHSCNX("$"),ACHSOPEN("$"))=0
  1. S ACHST1=$$C^XBFUNC("PAYMENTS",80),ACHST2=$$C^XBFUNC("For the period "_$$FMTE^XLFDT(ACHSBDT)_" through "_$$FMTE^XLFDT(ACHSEDT),80)
  1. D BRPT^ACHSFU
  1. D HDR
  1. S X3=0,ACHSBDT=ACHSBDT-1
  1. A ; Main loop.
  1. F S ACHSBDT=$O(^ACHSF(DUZ(2),"TB",ACHSBDT)) Q:(ACHSBDT'?1N.N)!(ACHSBDT>ACHSEDT) D Q:$D(QFLG)
  1. .S ACHSTYPE=0 F S ACHSTYPE=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE)) Q:ACHSTYPE="" D Q:$D(QFLG)
  1. ..I (ACHSTYPE'["P"),(ACHSTYPE'="ZA") Q
  1. ..S DA=0 F S DA=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE,DA)) Q:DA="" D Q:$D(QFLG)
  1. ...Q:'$D(^ACHSF(DUZ(2),"D",DA,0))
  1. ...Q:FY'=$P(^ACHSF(DUZ(2),"D",DA,0),U,14)
  1. ...S ACHSDOC1=$P(^ACHSF(DUZ(2),"D",DA,0),U),ACHSVPTR=$P(^(0),U,8),ACHSDOC2=$P(^(0),U,14),ACHSTOS=$P(^(0),U,4),ACHSBLNK=+$P(^(0),U,3)
  1. ...Q:(ACHSVPTR']"")!('$D(^AUTTVNDR(ACHSVPTR,0)))
  1. ...S ACHSVNDR=$P(^AUTTVNDR(ACHSVPTR,0),U)
  1. ...S ACHSDOC=ACHSDOC2_"-"_ACHSFC_"-"_ACHSDOC1
  1. ...S TXN=0 F S TXN=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE,DA,TXN)) Q:TXN="" D Q:$D(QFLG)
  1. ....S ACHSTXN=^ACHSF(DUZ(2),"D",DA,"T",TXN,0)
  1. ....S DFN=$P(ACHSTXN,U,3) I +DFN>0,$D(^DPT(DFN,0)) S ACHSNAME=$P(^(0),U)
  1. ....I '$D(ACHSNAME),ACHSBLNK S ACHSNAME=$S(ACHSBLNK=1:"* BLANKET",1:"* SPECIAL TRANS")
  1. ....S ACHSTXDT=$P(ACHSTXN,U,1)
  1. ....S ACHSTXTP=$P(ACHSTXN,U,2)
  1. ....S ACHSTXAM=$P(ACHSTXN,U,4)
  1. ....S ACHSPMTP=$P(ACHSTXN,U,5)
  1. ....S ACHSEOBR=$P(ACHSTXN,U,13)
  1. ....W $E(ACHSNAME,1,24),?25,$E(ACHSVNDR,1,26),?52,$E(ACHSTXDT,4,5)_"/"_$E(ACHSTXDT,6,7)_"/"_$E(ACHSTXDT,2,3)
  1. ....W ?66
  1. ....W ACHSTXTP
  1. ....S X=ACHSTXAM
  1. ....D COMMA^%DTC
  1. ....W ?80-$L(X),X
  1. ....W !,ACHSDOC,?25,$S(ACHSTOS=1:"HOSPITAL",ACHSTOS=2:"DENTAL",ACHSTOS=3:"OUTPATIENT",1:""),?52,$E(ACHSEOBR,4,5)_"/"_$E(ACHSEOBR,6,7)_"/"_$E(ACHSEOBR,2,3)
  1. ....S ACHSTOTP=ACHSTOTP+1,ACHSTOTP("$")=ACHSTOTP("$")+ACHSTXAM
  1. ....W !!
  1. ....I $Y>ACHSBM D CHECK Q:$D(QFLG) D HDR
  1. ;
  1. END ; Print totals, ask RTRN, write IOF.
  1. W !,$$REPEAT^XLFSTR("-",79),!
  1. S X2="2$",X3=14
  1. I ACHSTOTP S X=ACHSTOTP("$") D COMMA^%DTC W "TOTAL PAID DOCUMENTS:",$J(ACHSTOTP,11),?40,"TOTAL DOLLARS PAID: ",X,!
  1. D CHECK Q:$D(QFLG)
  1. W @IOF
  1. KILL ; Do ERPT, kill vars, quit.
  1. I $D(ZTQUEUED) K ACHSFC
  1. D ERPT^ACHS
  1. K ACHSDOC,ACHSDOC1,ACHSDOC2,ACHSBLNK,ACHSCNX,ACHSDOS,ACHSTYPE,ACHSVNDR,ACHSOPEN,ACHSNAME,ACHSSTS,ACHSTOS,ACHSTOTP,ACHSVPTR,ACHSTXN,ACHSTXDT,ACHSTXTP,ACHSTXAM,ACHSPMTP,ACHSEOBR
  1. K DA,DFN,X2,X3,TXN,FY
  1. Q
  1. ;
  1. HDR ; Print report header.
  1. S ACHSPG=ACHSPG+1
  1. W @IOF,!!,ACHSUSR,?71,"Page",$J(ACHSPG,3),!,$$C^XBFUNC("*** CONTRACT HEALTH MANAGEMENT SYSTEM ***",80),!!,ACHSLOC,!?25,"DOCUMENT STATUS REPORT"_" - "_"FY-"_ACHSFY
  1. W !,ACHSTIME,!,ACHST1,!,ACHST2,!!,"Patient Name",?25,"Provider of Service",?52,"Trans Date",?64,"Status",?73,"Amount",!,"Document Number",?25,"Type",?52,"EOBR Date"
  1. W !,$$REPEAT^XLFSTR("=",79),!
  1. Q
  1. ;
  1. CHECK ;Check for Quit
  1. Q:$D(IO("S"))
  1. Q:$D(ZTQUEUED)
  1. K QFLG
  1. K DIR
  1. S DIR(0)="E"
  1. D ^DIR
  1. I ($D(DTOUT))!($D(DUOUT)) S QFLG=1
  1. Q