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

ACHS3PPT.m

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