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

ACHSOCVD.m

Go to the documentation of this file.
  1. ACHSOCVD ; IHS/ITSC/PMF - DETAILED PRINT CHS OBJCLAS CODE - VENDOR ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. D BRPT^ACHSFU
  1. S ACHSFAC=DUZ(2),ACHSPAGE=0
  1. I $D(^TMP("ACHSOCV",$J,ACHSFAC,0)) G NODATA
  1. S (ACHSOB,C,ACHSOBST,ACHSPMST,ACHSDOCS,ACHSOBT,ACHSPMTT,ACHSDOCT,ACHSDOC,ACHSFLG,ACHSPAGE,ACHSVDCT,ACHSVOBT,ACHSVPMT)=0
  1. S ACHSVNDR=""
  1. P2 ;
  1. S ACHSVNDR=$O(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR))
  1. G TOTL:ACHSVNDR=""
  1. S ACHSOC=""
  1. P3 ;
  1. S ACHSOC=$O(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC))
  1. G:ACHSOC="" VNDRTOT
  1. D HEADER
  1. S ACHSOCD=$E($P($G(^ACHS(3,ACHSFAC,1,ACHSOC,0)),U),1,2)_"."_$E($P($G(^ACHS(3,ACHSFAC,1,ACHSOC,0)),U),3,4),ACHSOCD=ACHSOCD_" -"_$S($P($G(^ACHS(3,ACHSFAC,1,ACHSOC,0)),U,2)]"":$P($G(^ACHS(3,ACHSFAC,1,ACHSOC,0)),U,2),1:"NOT ON FILE")
  1. S ACHSDOC=""
  1. P4 ;
  1. S ACHSDOC=$O(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC,ACHSDOC))
  1. G:ACHSDOC="" SUBTOTL
  1. GETADD ;Vendor address
  1. S ACHSVEN=$P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC,ACHSDOC),U,5),Z=$G(^AUTTVNDR(ACHSVEN,13))
  1. S ACHSVADD=$S(Z="":"NOT ON FILE",1:$P(Z,U,1)),ACHSVCIT=$S(Z="":Z,1:$P(Z,U,2)),ACHSVST=$S(Z="":Z,1:$P(Z,U,3)),ACHSVST=$S(ACHSVST="":ACHSVST,1:$P(^DIC(5,ACHSVST,0),U,1)),ACHSZIP=$S(Z="":Z,1:$P(Z,U,4))
  1. D:ACHSFLG=0 HEADER1
  1. S X=^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC,ACHSDOC)
  1. GETPAT ;
  1. S P=$P(X,U,1),ACHSPAT=$S(P]"":$P(^DPT(P,0),U,1),1:"No NAME on file")
  1. GETHRN ;
  1. S ACHSHRN=$S($P(X,U,2)]"":$P(X,U,2),1:"NONE"),ACHSOB=$P(X,U,3),A=$P(X,U,4),ACHSPMT=$S(A="":0,1:A)
  1. PRINT ;Prints data totals
  1. W !,ACHSDOC,?17,$E(ACHSPAT,1,25),?45,$J(ACHSHRN,6)
  1. S X=ACHSOB,X2=2
  1. D COMMA^%DTC
  1. W ?54,X
  1. S X=ACHSPMT,X2=2
  1. D COMMA^%DTC
  1. W ?68,X
  1. S ACHSOBST=ACHSOBST+ACHSOB,ACHSPMST=ACHSPMST+ACHSPMT,C=C+1,ACHSDOCS=C,ACHSFLG=1
  1. I IOST["P-",$Y>56 S ACHSFLG=1 D HEADER,HEADER1
  1. I IOST["C-",'$D(IO("S")),$Y>24 G END:'$$DIR^XBDIR("E") S ACHSFLG=1 D HEADER,HEADER1
  1. G P4
  1. ;
  1. SUBTOTL ;
  1. W !!,$$REPEAT^XLFSTR("-",80),!,"SUBTOTAL",?25,$J(ACHSDOCS,4)
  1. S X=ACHSOBST,X2="2$"
  1. D COMMA^%DTC
  1. W ?54,X
  1. S X=ACHSPMST,X2="2$"
  1. D COMMA^%DTC
  1. W ?68,X
  1. S ACHSOBT=ACHSOBT+ACHSOBST,ACHSPMTT=ACHSPMTT+ACHSPMST,ACHSDOCT=ACHSDOCT+ACHSDOCS
  1. I ACHSOBST>0,ACHSPMST>0 S X=(ACHSPMST/ACHSOBST)*100 W !!,"PERCENTAGE OF PAYMENT TO OBLIGATED" W ?67,$E(X,1,5)_"%"
  1. S ACHSVDCT=ACHSVDCT+ACHSDOCS,ACHSVOBT=ACHSVOBT+ACHSOBST,ACHSVPMT=ACHSVPMT+ACHSPMST
  1. I IOST["C-",'$D(IO("S")) W !! G END:'$$DIR^XBDIR("E")
  1. S (C,ACHSOBST,ACHSPMST,ACHSFLG,ACHSDOCS)=0
  1. G P3
  1. ;
  1. VNDRTOT ;
  1. W !!,$$REPEAT^XLFSTR("=",80),!,"VENDOR TOTALS",?25,$J(ACHSVDCT,4)
  1. S X=ACHSVOBT,X2="2$"
  1. D COMMA^%DTC
  1. W ?54,X
  1. S X=ACHSVPMT,X2="2$"
  1. D COMMA^%DTC
  1. W ?68,X
  1. I ACHSVOBT>0,ACHSVPMT>0 S X=(ACHSVPMT/ACHSVOBT)*100 W !!,"PERCENTAGE OF PAYMENT TO OBLIGATED" W ?67,$E(X,1,5)_"%"
  1. I IOST["C-",'$D(IO("S")) W !! G END:'$$DIR^XBDIR("E")
  1. S (ACHSVDCT,ACHSFLG,ACHSVOBT,ACHSVPMT,ACHSPAGE)=0
  1. G P2
  1. ;
  1. TOTL ;
  1. W !!!!,$$REPEAT^XLFSTR("=",80),!!,"TOTAL",?25,$J(ACHSDOCT,4)
  1. S X=ACHSOBT,X2="2$"
  1. D COMMA^%DTC
  1. W ?56,X
  1. S X=ACHSPMTT,X2="2$"
  1. D COMMA^%DTC
  1. W ?68,X
  1. I ACHSOBT>0,ACHSPMTT>0 S X=(ACHSPMTT/ACHSOBT)*100 W !!,"PERCENTAGE OF PAYMENT TO OBLIGATED" W ?67,$E(X,1,5)_"%"
  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 I,P,Z,X,X2,Y,^TMP("ACHSOCV",$J)
  1. D EN^XBVK("ACHS"),^ACHSVAR
  1. Q
  1. ;
  1. NODATA ;
  1. D HEADER
  1. W !!!,"NO DATA FOR SPECIFIED FISCAL YEAR",!!!!
  1. I IOST["C-",'$D(IO("S")) Q:'$$DIR^XBDIR("E")
  1. K ^TMP("ACHSOCV",$J,ACHSFAC,0)
  1. G END
  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. S X="Detailed SERVICE CLASSIFICATION Report BY VENDOR - Page "
  1. W !!?((80/2)-($L(X)/2)),X_ACHSPAGE
  1. S X="For FISCAL YEAR: "
  1. W !?((80/2)-($L(X)/2)),X_ACHSFY,!,$$REPEAT^XLFSTR("*",80)
  1. Q
  1. ;
  1. HEADER1 ;Prints Object Class Code/Vendor Data
  1. W !!?5,"Object Class Code: ",ACHSOCD,!?16,"Vendor: ",ACHSVNDR,!?24,ACHSVADD,!?24,ACHSVCIT," ",?34,ACHSVST," ",?45,ACHSZIP,!!?1,"# DOCS #",?17,"PATIENT NAME",?44,"# CHART #",?56,"$ OBLIG $",?68,"$ PAYMENT $",!
  1. Q
  1. ;