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

ACHS3PPP.m

Go to the documentation of this file.
ACHS3PPP ; IHS/ITSC/TPF/PMF - PRINT THIRD PARTY PAYMENT REPORT (ALL PATS) ;  
 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**16**;JUN 11, 2001
 ;
 D BRPT^ACHSFU
 I $D(^TMP("ACHS3PP",$J,ACHSFAC,0)) S ACHSPAGE=0 D HEADER G NODATA
 S (ACHSOBL,ACHSOBLS,ACHSOBLT,ACHS3PP,ACHS3PPS,ACHS3PPT,ACHSDOCS)=0
 S (ACHSDOCT,ACHSIHSP,ACHSIHSS,ACHSIHST,C,ACHSPAGE,ACHS43ST,ACHS57ST)=0
 S (ACHS64ST,ACHS0ST,ACHS43T,ACHS57T,ACHS64T,ACHS0T)=0
 S ACHSFAC=""
 I (ACHSRTYP="T")!(ACHSRTYP="P") G ^ACHS3PPT       ;ACHS*3.1*16 IHS.OIT.FCJ ADDED LINE FOR INS REP
P1 ;
 S ACHSFAC=$O(^TMP("ACHS3PP",$J,ACHSFAC))
 G:ACHSFAC="" TOTL
 S ACHSDOC=""
 S ACHSPAGE=0
 D HEADER
P2 ;
 S ACHSDOC=$O(^TMP("ACHS3PP",$J,ACHSFAC,ACHSDOC))
 G:ACHSDOC="" TOTL
 S Z=$G(^TMP("ACHS3PP",$J,ACHSFAC,ACHSDOC))
GETPAT ;
 I '$D(ACHSPAT(0)) S P=$S($P(Z,U,7):$P(Z,U,7),1:"NO NAME") S:$D(^DPT(P,0)) ACHSPAT=$P($G(^DPT(P,0)),U) S ACHSHRN=$S($P(Z,U,8):$P(Z,U,8),1:"NO HRN") D PATHEAD
 I ACHSFLG=0 D HEADER1
GETIDT ;
 S D=$P(Z,U,1),ACHSIDT=$E(D,4,5)_"/"_$E(D,6,7)_"/"_$E(D,2,3)
 S S=$P(Z,U,5),ACHSSERV=$S(S=1:"HOSP",S=2:"DENT",S=3:"OUTP",1:"UNKN")
 S ACHSOBL=$P(Z,U,2),ACHS3PP=$P(Z,U,3),ACHSIHSP=$P(Z,U,4)
 S C=C+1,ACHSDOCS=C,ACHSFLG=1
 ;Prints Data 
 I ACHSRTYP["D" D
 . W !?1,ACHSDOC,?15,ACHSSERV,?23,ACHSIDT,?40
 . S X=ACHSOBL,X2=2
 . D COMMA^%DTC
 . W $J(X,12),?55
 . S X=ACHSIHSP,X2=2
 . D COMMA^%DTC
 . W $J(X,12),?68
 . S X=ACHS3PP,X2=2
 . D COMMA^%DTC
 . W $J(X,12)
 .Q
 I IOST["P-",$Y>ACHSBM S ACHSFLG=0 D HEADER
 I IOST["C-",'$D(IO("S")),$Y>ACHSBM G END:'$$DIR^XBDIR("E") S ACHSFLG=0 D HEADER
 S ACHSOBLS=ACHSOBLS+ACHSOBL,ACHS3PPS=ACHS3PPS+ACHS3PP,ACHSIHSS=ACHSIHSS+ACHSIHSP
 I ACHSSER=4 D
 . S:S=1 ACHS43ST=ACHS43ST+1
 . S:S=2 ACHS57ST=ACHS57ST+1
 . S:S=3 ACHS64ST=ACHS64ST+1
 . I S'=1&(S'=2)&(S'=3) S ACHS0ST=ACHS0ST+1
 .Q
 G P2
 ;
TOTL ;
 W !!,$$REPEAT^XLFSTR("-",80),!?1,"TOTAL",?10,$J(ACHSDOCS,4)
 S X=ACHSOBLS,X2="2$"
 D COMMA^%DTC
 W ?40,$J(X,12)
 S X=ACHSIHSS,X2="2$"
 D COMMA^%DTC
 W ?55,$J(X,12)
 S X=ACHS3PPS,X2="2$"
 D COMMA^%DTC
 W ?68,$J(X,12)
 I ACHSOBLS>0&(ACHSIHSS>0) W !! S Z=(ACHSIHSS/ACHSOBLS)*100 W "PERCENTAGE OF PAYMENT TO OBLIGATED",?61,$E(Z,1,5)_"%"
 I ACHSOBLS>0&(ACHS3PPS>0) S X=(ACHS3PPS/ACHSOBLS)*100 W ?74,$E(X,1,5)_"%"
 I ACHSSER=4 W !?5,"*HOSP - ",ACHS43ST,"*",?25,"*DENT - ",ACHS57ST,"*",?45,"*OUTP - ",ACHS64ST,"*",?65,"*UNKN - ",ACHS0ST,"*"
 K DIR
 I IOST["C-",'$D(IO("S")) W !! G END:'$$DIR^XBDIR("E")
END ;Close device, kill variables, quit
 S:$D(ZTQUEUED) ZTREQ="@"
 D ^%ZISC
 K ACHS3PP,ACHS3PPS,ACHS3PPT,ACHSDAT,ACHSDOC,ACHSDOCS,ACHSDOCT
 K ACHSHRN,ACHSIDT,ACHSIHSP,ACHSIHSS,ACHSIHST,ACHSQIO,ACHS0ST
 K ACHSOBL,ACHSOBLS,ACHSOBLT,ACHSPAT,ACHSSERP,ACHSSERV,ACHSTIM,ACHSUSR,C,Z,S,D,P
 K ACHSFLG,ACHSPAGE,DIR,I,X,X2,Y,ACHSOT,ACHS43ST,ACHS43T,ACHS57ST,ACHS57T
 K ACHS64ST,ACHS64T,ACHSSER
 K ^TMP("ACHS3PP",$J)
 Q
 ;
 U IO
 W @IOF
 S ACHSPAGE=ACHSPAGE+1
 S Y=$$HTE^XLFDT($H),ACHSDAT=$P(Y,"@",1),ACHSTIM=$P(Y,"@",2)
 W !,"*",ACHSDAT
 S X=$$LOC^ACHS
 W ?((80/2)-($L(X)/2)),X
 W ?71,ACHSTIM,"*",!,"*User: ",ACHSUSR,?70,"Device:",IO,"*"
 W !!
 S X="3rd Party Payment Report - Page "
 W ?((80/2)-($L(X)/2)),X_ACHSPAGE
 W !
 S X="For FISCAL YEAR: "
 W ?((80/2)-($L(X)/2)),X_ACHSFY
 W !
 I ACHSSER'=4 S ACHSSERP=$S(ACHSSER=1:"HOSPITAL",ACHSSER=2:"DENTAL",ACHSSER=3:"OUTPATIENT",1:"UNKNOWN") W ?33,"SERVICE: "_ACHSSERP W !
 W $$REPEAT^XLFSTR("*",80)
 S ACHSFLG=0
 Q
 ;
HEADER1 ;
 W !!?1,"# DOCS #"
 W:ACHSRTYP["D" ?15,"SERV",?23,"ISSUE DT"
 W ?41,"$ OBLIGD $",?55,"$ IHS PMT $",?70,"$ 3P PMT $",!
 Q
 ;
PATHEAD ;
 W !!?1,"Patient: ",ACHSPAT,"      Chart #: ",ACHSHRN
 G GETIDT
 ;
NODATA ;
 W !!!,"NO DATA FOR SPECIFIED FISCAL YEAR"
 K ^TMP("ACHS3PP",$J)
 I $D(ACHSSERP) W " FOR "_ACHSSERP_" SERVICE(S)" W !!!!
 I IOST["C-",'$D(IO("S")) G:'$$DIR^XBDIR("E") END G ^ACHS3PPQ
 G END
 ;