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

ACHSDSTL.m

Go to the documentation of this file.
  1. ACHSDSTL ;IHS/OIT/FCJ - DOCUMENT STATUS REPORT BY FY; [ 02/09/2001 10:54 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**26**;JUN 11, 2001;Build 43
  1. ;3.1*26 IHS/OIT/FCJ NEW RTN FR A 1.6 VERSION
  1. ;
  1. ;
  1. W !!,$$C^XBFUNC("*** DOCUMENT STATUS REPORT FOR SPECIAL LOCAL PO'S ***",80)
  1. W !!,$$C^XBFUNC("for "_$P(^DIC(4,DUZ(2),0),"^"),80)
  1. S ACHSIO=IO
  1. D ^ACHSVAR,LINES^ACHSFU
  1. BDT ; Enter beginning date.
  1. S ACHSBDT=$$DATE^ACHS("B","for Special Local PO's","ISSUE")
  1. G ENDQ:$D(DUOUT)!$D(DTOUT)!(ACHSBDT<1)
  1. EDT ; Enter the ending date.
  1. S ACHSEDT=$$DATE^ACHS("E","for Special Local PO's","ISSUE")
  1. G BDT:$D(DUOUT)!(ACHSEDT<1),EDT:$$EBB^ACHS(ACHSBDT,ACHSEDT)
  1. TYPE ;
  1. S TYPE=3 ;COMBINED OPEN,CLOSED, CANCELLED
  1. TOT ;
  1. S TOTONLY=0
  1. W !!,"TYPE OF DATA ON REPORT: ",!!," 1. TOTALS ONLY",!," 2. DETAILED DOCUMENTS & TOTALS",!!," ENTER 1 or 2: 1//" D READ^ACHSFU I $D(DLOUT)!(Y="") S Y=1
  1. G ENDQ:$D(DTOUT)!$D(DFOUT),EDT:$D(DUOUT) I "12"[Y&(Y>0)&(Y<3) S TOTONLY=Y
  1. I (TOTONLY'=1)&(TOTONLY'=2) W *7," ??" G TOT
  1. FY ;
  1. W !!,"Enter Fiscal Year (e.g. 2016): " D READ^ACHSFU
  1. G ENDQ:$D(DTOUT)!$D(DFOUT),TOT:$D(DUOUT)!$D(DLOUT)
  1. I Y'?4N W *7," ??" H 2 G FY
  1. I '$D(^ACHS(9,DUZ(2),"FY",Y)) W !!,*7,"NO DATA ON FILE FOR FY!!" H 2 G FY
  1. S TOTFYN=$E(Y,4) S TOTFY=$E(Y,3,4)
  1. DEVICE ;
  1. W ! K IOP,%ZIS("B") S %ZIS="PQ" D ^%ZIS K %ZIS I IO="" W !,*7,"No device specified." S IOP=$I D ^%ZIS Q
  1. I $D(IO("Q"))#2,$E(IOST)'="P" W *7,!,"Please queue to printers only." K IO("Q") G DEVICE
  1. I $D(IO("Q")) K IO("Q") S ZTRTN="ST^ACHSDSTL1",ZTDESC="CHS Document Status - Special Local PO's, "_$E(ACHSBDT,2,7)_" to "_$E(ACHSEDT,2,7) F G="DUZ(2)","ACHSBDT","ACHSEDT","TYPE","TOTFY","TOTFYN","TOTONLY" S ZTSAVE(G)=""
  1. I D ^%ZTLOAD G ENDQ
  1. I IO=$I G ST
  1. S IOP=IO D ^%ZIS I 'POP G ST
  1. W !,*7,"Device ",IO," busy." G DEVICE
  1. ST ;
  1. D ^ACHSVAR,LINES^ACHSFU
  1. S ACHSPG=0,(TOTP,CNX,OPEN,TOTP("$"),CNX("$"),OPEN("$"))=0,ACHSLOC=$P(^DIC(4,DUZ(2),0),U),Y=ACHSBDT X ^DD("DD") S BDT=Y,Y=ACHSEDT X ^DD("DD") S EDT=Y
  1. S X="SPECIAL LOCAL DOCUMENT REPORT",X=$$C^XBFUNC(X_" IN FY "_TOTFY,80)
  1. S ACHST1=X,X=$$C^XBFUNC("For the period "_BDT_" through "_EDT,80) S ACHST2=X K BDT,EDT
  1. U IO D NOW^ACHS D HEAD S ACHSBDT=ACHSBDT-1 D BM^ACHS
  1. A ; Main loop.
  1. S ACHSBDT=$O(^ACHSF(DUZ(2),"TB",ACHSBDT))
  1. G TOTAL:+ACHSBDT=0!(+ACHSBDT>ACHSEDT)
  1. S ACHSTYPE=""
  1. B ;
  1. S ACHSTYPE=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE))
  1. G A:ACHSTYPE=""
  1. G B:ACHSTYPE'="I"
  1. S ACHSDIEN=0
  1. C ;
  1. S ACHSDIEN=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE,ACHSDIEN))
  1. G B:+ACHSDIEN=0,C:'$D(^ACHSF(DUZ(2),"D",ACHSDIEN,0))
  1. G:$P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),"^",3)'=2 C ;TEST FOR SPECIAL LOCAL PO
  1. G C:$P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),U,14)'=TOTFYN ;TEST FOR FY
  1. STAT ;
  1. S ACHSDOC1=^ACHSF(DUZ(2),"D",ACHSDIEN,0)
  1. S ACHSSTS=$S($P(ACHSDOC1,U,12)=3:"P",$P(ACHSDOC1,U,12)=4:"C",1:"OPEN")
  1. S A("DOC1")=$P(ACHSDOC1,U),A("VPTR")=$P(ACHSDOC1,U,8),A("DOC2")=$P(ACHSDOC1,U,14),A("$")=$P(ACHSDOC1,U,9),TOS=$P(ACHSDOC1,U,4),BLANKET=+$P(ACHSDOC1,U,3)
  1. ;
  1. I TOTONLY=1 G TOTONLY
  1. G A:A("VPTR")']"",A:'$D(^AUTTVNDR(A("VPTR"),0)) S A("VENDOR")=$P(^(0),U) S EIN="" S:$D(^(11)) EIN=$P(^(11),U)
  1. S A("FC")=$P(^AUTTLOC(DUZ(2),0),U,17),A=$P(^(0),U,4),A("PFX")=$P(^AUTTAREA(A,0),U,3),A("FC")=$E(A("FC"),2,3),A("DOC")=A("DOC2")_"-"_A("PFX")_A("FC")_"-"_A("DOC1")
  1. S A=$O(^ACHSF(DUZ(2),"TB",ACHSBDT,ACHSTYPE,ACHSDIEN,0))
  1. I +A>0,$D(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",A,0))
  1. S ACHSNAME=$S($P(ACHSDOC1,U,3)=1:"* BLANKET",$P(ACHSDOC1,U,3)=2:"* SPECIAL TRANS",1:"")
  1. D ;
  1. G C:'$D(ACHSNAME) S:$D(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")) A("$")=+^("PA") S:$D(^ACHSF(DUZ(2),"D",ACHSDIEN,"ZA")) A("$")=+^("ZA")
  1. E ;
  1. G PRINT:ACHSSTS'="C" S A("$")=0,A(1)=0
  1. E1 ;
  1. S A(1)=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",A(1))) G PRINT:+A(1)=0 S A("$")=+$P(^(A(1),0),U,4) G E1
  1. PRINT ;
  1. S ACHSSTA=$S(ACHSSTS="P":"PAID",ACHSSTS="P":"CANCEL",1:"OPEN")
  1. I '$D(ZTSK),$Y>ACHSBM D RTRN^ACHS G:ACHSQUIT END D HEAD
  1. W !,$E(ACHSNAME,1,24),?25,$E(A("VENDOR"),1,26),?52,$$FMTE^XLFDT(ACHSBDT,"2D"),?63,ACHSSTA
  1. G P1:"PC"'[ACHSSTS W $S(ACHSSTS="P":"PAID",1:"CANCEL")
  1. S X=A("$") D MONEY W ?79-$L(X),X G P2
  1. P1 ;
  1. I +A("$")'=0 S X=A("$") D MONEY W ?79-$L(X),X
  1. P2 ;
  1. W !,A("DOC"),?25,EIN I +TOS W ?52,$S(+TOS=1:"HOSPITAL",+TOS=2:"DENTAL",+TOS=3:"OUTPATIENT",1:"")
  1. TOTONLY ;ENTRY POINT TO ONLY CALCULATE TOTALS FOR TOTAL ONLY PRINT
  1. I ACHSSTS="P" S TOTP=TOTP+1,TOTP("$")=TOTP("$")+A("$")
  1. I ACHSSTS="C" S CNX=CNX+1,CNX("$")=CNX("$")+A("$")
  1. I ACHSSTS="OPEN" S OPEN=OPEN+1,OPEN("$")=OPEN("$")+A("$")
  1. S ISSUE("YM")=$E(ACHSBDT,1,5)
  1. I '$D(TOPEN(ISSUE("YM"),"$")) S TOPEN(ISSUE("YM"),"$")=0,TOPEN(ISSUE("YM"),"DOC")=0
  1. S TOPEN(ISSUE("YM"),"$")=TOPEN(ISSUE("YM"),"$")+A("$")
  1. S TOPEN(ISSUE("YM"),"DOC")=TOPEN(ISSUE("YM"),"DOC")+1
  1. G C
  1. TOTAL ;
  1. ;PRINT OUT EACH MONTH END TOTAL
  1. S YRMO=0
  1. W !!,?10,"Month Issued",?30,"# of Documents",?65,"Total Amount",!,ACHS("-")
  1. F S YRMO=$O(TOPEN(YRMO)) Q:+YRMO=0 D ENDMOPT
  1. W !!,ACHS("-"),!
  1. TOTTYP ;PRINT DOCUMENT TOTALS BY TYPE
  1. I TOTP>0,TYPE>2 D
  1. .W "TOTAL PAID DOCUMENTS: ",?32-$L(TOTP),TOTP,?40,"TOTAL DOLLARS PAID: " S X=TOTP("$") D MONEY W ?79-$L(X),X,!
  1. I CNX>0,TYPE=3 D
  1. .W "TOTAL CANCELLED DOCUMENTS: ",?32-$L(CNX),CNX,?40,"TOTAL DOLLARS CANCELLED: " S X=CNX("$") D MONEY W ?79-$L(X),X,!
  1. I OPEN>0,TYPE=3 D
  1. .W "TOTAL OPEN DOCUMENTS: ",?32-$L(OPEN),OPEN,?40,"TOTAL DOLLARS: " S X=OPEN("$") D MONEY W ?79-$L(X),X,!
  1. TOTDOC ;
  1. W !,ACHS("-"),!
  1. S TOTDOC=0,TOT("$")=0
  1. S TOTDOC=TOTP+CNX+OPEN,TOT("$")=TOTP("$")+CNX("$")+OPEN("$")
  1. W "TOTAL DOCUMENTS: ",?32-$L(TOTDOC),TOTDOC,?40,"TOTAL DOLLARS: " S X=TOT("$") D MONEY W ?79-$L(X),X
  1. W !
  1. D RTRN^ACHS W @IOF
  1. END ;
  1. D ERPT^ACHS
  1. K ZTSK,A,AG,AGT,ACHS,ACHSBDT,CNX,ACHSEDT,EIN,ACHSLOC,OPEN,ACHSNAME,ACHSTYPE,ACHSSSN,ACHSQUIT
  1. K TOS,TOTP,TYPE,X,X2,Y,Z,BLANKET,TOPEN,K,YRMO,TOT,TOTDOC,TOTFY,TOTFYN,TOTONLY,ACHSSTA
  1. Q
  1. ENDQ ;
  1. K ACHSIO,ACHSBDT,DTOUT,DQOUT,DLOUT,DUOUT,DFOUT,ACHSEDT,X,Y
  1. Q
  1. S ACHSPG=ACHSPG+1,ACHS("LINE")="=" W @IOF,!!?20,"*** CONTRACT HEALTH CARE SYSTEM ***",!!,ACHSTIME,?80-$L(ACHSLOC)\2,ACHSLOC,?73,"page ",ACHSPG,!?29,"DOCUMENT STATUS REPORT"
  1. I $D(ZTSK) W ?77-$L(ZTSK),"(",ZTSK,")"
  1. W !!,ACHST1,!,ACHST2
  1. I TOTONLY=2 D
  1. .W !!,"Patient Name",?25,"Provider of Service",?52,"Trans Dt",?64,"Status",?73,"Amount",!,"Document #",?25,"EIN Number",?52,"Type"
  1. W !,ACHS("-"),!
  1. Q
  1. ENDMOPT ;PRINT OUT EACH MONTH TOTALS
  1. S Y=YRMO_"00" X ^DD("DD") W !?13,Y
  1. W ?35,TOPEN(YRMO,"DOC")
  1. S X=TOPEN(YRMO,"$") D MONEY W ?79-$L(X),X
  1. Q
  1. MONEY ;
  1. S X2=2 D COMMA^%DTC F Z=1:1 Q:$E(X)'=" " S X=$E(X,2,99)
  1. F Z=1:1 Q:$E(X,$L(X))'=" " S X=$E(X,1,$L(X)-1)
  1. Q
  1. ;