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

ACHSCPTF.m

Go to the documentation of this file.
  1. ACHSCPTF ; IHS/ITSC/TPF/PMF - PRINT CHS CPT CODE REPORT-BY VENDOR/SUMMARY ; JUL 10, 2008
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**14**;JUN 11,2001
  1. ;3.1*14 12.4.2007 IHS/OIT/FCJ ADDED CSV CHANGES
  1. ;
  1. D BRPT^ACHSFU
  1. S (ACHSPAGE,C,ACHSCHBS,ACHSDOCT,ACHSDGT,ACHSDOC,ACHSCHAT,ACHSCHBT,ACHSCHAS,ACHS43S,ACHS43T,ACHS57S,ACHS57T,ACHS64S,ACHS64T,ACHSCS,ACHSCT)=0
  1. S ACHSVNDR=""
  1. P1 ;
  1. S ACHSVNDR=$O(^TMP("ACHSCPT",$J,ACHSVNDR))
  1. G TOTL:ACHSVNDR=""
  1. I ACHSVNDR=0 G NODATA1
  1. I $D(^TMP("ACHSCPT",$J,ACHSVNDR,0)) G NODATA
  1. S ACHSCODE=""
  1. D HEADER,HEADER1
  1. P2 ;
  1. S ACHSCODE=$O(^TMP("ACHSCPT",$J,ACHSVNDR,ACHSCODE))
  1. G:ACHSCODE="" SUBTOTL
  1. S ACHSDOCS=$P($G(^TMP("ACHSCPT",$J,ACHSVNDR,ACHSCODE)),U)
  1. S ACHSCHB=$P($G(^TMP("ACHSCPT",$J,ACHSVNDR,ACHSCODE)),U,2)
  1. S ACHSCHA=$P($G(^TMP("ACHSCPT",$J,ACHSVNDR,ACHSCODE)),U,3)
  1. ;3.1*14 12.4.2007 IHS/OIT/FCJ ADDED CSV CHANGES NXT 4 LINES
  1. ;S ACHSCODP=$S($D(^ICPT(ACHSCODE,0)):$P($G(^ICPT(ACHSCODE,0)),U,2),1:"NOT ON FILE")
  1. S ACHSCODP=$S($D(^ICPT(ACHSCODE,0)):$P($$CPT^ICPTCOD(ACHSCODE),U,3),1:"NOT ON FILE")
  1. ;S ACHSCOD=$S($D(^ICPT(ACHSCODE,0)):$P($G(^ICPT(ACHSCODE,0)),U),1:ACHSCODE)
  1. S ACHSCOD=$S($D(^ICPT(ACHSCODE,0)):$P($$CPT^ICPTCOD(ACHSCODE),U,2),1:ACHSCODE)
  1. PRINT ;Prints data totals
  1. W !?1,$J(ACHSCOD,6)_"-"_ACHSCODP,?40,$J(ACHSDOCS,4)
  1. S X=ACHSCHB,X2=2
  1. D COMMA^%DTC
  1. W ?50,X
  1. S X=ACHSCHA,X2=2
  1. D COMMA^%DTC
  1. W ?65,X
  1. I IOST["P-"&($Y>56) D HEADER,HEADER1
  1. I IOST["C-",'$D(IO("S"))&($Y>24) K DIR S DIR(0)="E" W !! D ^DIR G END:Y=0 D HEADER,HEADER1
  1. S Z=$G(^TMP("ACHSCPT",$J,ACHSVNDR,ACHSCODE))
  1. S ACHS43=$P(Z,U,4),ACHS57=$P(Z,U,5),ACHS64=$P(Z,U,6),ACHS43S=ACHS43S+ACHS43,ACHS57S=ACHS57S+ACHS57,ACHS64S=ACHS64S+ACHS64
  1. S ACHSCHBS=ACHSCHBS+ACHSCHB,ACHSCHAS=ACHSCHAS+ACHSCHA,ACHSDOCT=ACHSDOCT+ACHSDOCS,ACHSCS=ACHSCS+1
  1. S (ACHSCHB,ACHSDOCS,ACHSCHA,C)=0
  1. G P2
  1. ;
  1. SUBTOTL ; Print subtotals.
  1. W !!,$$REPEAT^XLFSTR("-",80),!?1,"SUBTOTAL",?10,ACHSCS,?40,$J(ACHSDOCT,4)
  1. S X=ACHSCHBS,X2="2$"
  1. D COMMA^%DTC
  1. W ?50,X
  1. S X=ACHSCHAS,X2="2$"
  1. D COMMA^%DTC
  1. W ?65,X
  1. I ACHSCHBS>0&(ACHSCHAS>0) S X=(ACHSCHAS/ACHSCHBS)*100 W !!?1,"PERCENTAGE OF CHGS ALLOWED TO CHGS BILLED" W ?61,$E(X,1,5)_"%"
  1. W !!?3,"** HOSP - "_ACHS43S_" **",?32,"** DENT - "_ACHS57S_" **",?62,"** OUTP - "_ACHS64S_" **"
  1. S ACHSCHBT=ACHSCHBT+ACHSCHBS,ACHSCHAT=ACHSCHAT+ACHSCHAS,ACHSDGT=ACHSDGT+ACHSDOCT
  1. S ACHS43T=ACHS43T+ACHS43S,ACHS57T=ACHS57T+ACHS57S,ACHS64T=ACHS64T+ACHS64S,ACHSCT=ACHSCT+ACHSCS
  1. K DIR
  1. I IOST["C-",'$D(IO("S")) S DIR(0)="E" W !! D ^DIR G END:Y=0
  1. S (C,ACHSCHBS,ACHSCHAS,ACHSDOCT,ACHSPAGE,ACHS43S,ACHS57S,ACHS64S,ACHSCS)=0
  1. G P1
  1. ;
  1. TOTL ; Print totals.
  1. W !!!!,$$REPEAT^XLFSTR("=",80),!!?1,"TOTAL",?10,ACHSCT,?40,$J(ACHSDGT,4)
  1. S X=ACHSCHBT,X2="2$"
  1. D COMMA^%DTC
  1. W ?50,X
  1. S X=ACHSCHAT,X2="2$"
  1. D COMMA^%DTC
  1. W ?65,X
  1. I ACHSCHBT>0&(ACHSCHAT>0) S X=(ACHSCHAT/ACHSCHBT)*100 W !!?1,"PERCENTAGE OF CHGS ALLOWED TO CHS BILLED" W ?61,$E(X,1,5)_"%"
  1. W !!?3,"** HOSP - "_ACHS43T_" **",?32,"** DENT - "_ACHS57T_" **",?62,"** OUTP - "_ACHS64T_" **"
  1. K DIR
  1. I IOST["C-",'$D(IO("S")) S DIR(0)="E" W !! D ^DIR G END:Y=0
  1. END ;Close device, kill variables, quit
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. D ^%ZISC
  1. K ACHSPAGE,C,ACHSCHB,ACHSCHA,ACHSDOCS,ACHSCHBS
  1. K ACHS43,ACHS43S,ACHS43T,ACHS57,ACHS57S,ACHS57T,ACHS64,ACHS64S,ACHS64T
  1. K ACHSBEG,ACHSCOD,ACHSCODP,ACHSCS,ACHSCT,ACHSEND,Z
  1. K ACHSDOCT,ACHSDOC,ACHSCODE,ACHSDAT,ACHSTIM,ACHSDGT
  1. K ACHSQIO,ACHSCHBT,ACHSCHAT,ACHSCHAS,ACHSUSR,ACHSVNDR,I
  1. K X2,^TMP("ACHSCPT",$J),DIR
  1. Q
  1. ;
  1. NODATA ;
  1. D HEADER
  1. S %=$P($G(^AUTTVNDR(ACHSVNDR,0)),U),%=$P(%,",",2)_" "_$P(%,",",1)
  1. W !!!,$$C^XBFUNC("NO DATA AVAILABLE FOR "_%_" FOR SPECIFIED DATE RANGE",80),!!!!
  1. I IOST["C-",'$D(IO("S")),'$D(ZTQUEUED) K DIR S DIR(0)="E" U IO(0) D ^DIR K DIR Q:Y=0
  1. K ^TMP("ACHSCPT",$J,ACHSVNDR,0) S ACHSPAGE=0
  1. G P1
  1. ;
  1. NODATA1 ;
  1. K DIR
  1. D HEADER
  1. S DIR(0)="E"
  1. W !!!,"NO DATA AVAILABLE FOR SPECIFIED CRITERIA",!!!!
  1. I IOST["C-",'$D(IO("S")) D ^DIR G END:Y=0
  1. K DIR,^TMP("ACHSCPT",$J)
  1. D END
  1. G ^ACHSCPTD:'$D(ZTQUEUED)
  1. Q
  1. ;
  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="CPT CODE Summary Report BY VENDOR - Page "
  1. W ?((80/2)-($L(X)/2)),X_ACHSPAGE
  1. W !
  1. S X="For "_$$FMTE^XLFDT(ACHSBEG)_" To "_$$FMTE^XLFDT(ACHSEND)
  1. W ?((80/2)-($L(X)/2)),X,!
  1. W $$REPEAT^XLFSTR("*",80)
  1. Q
  1. ;
  1. HEADER1 ;Prints Vendor
  1. W !!?23,"Vendor: ",$S($D(^AUTTVNDR(ACHSVNDR,0)):$P($G(^AUTTVNDR(ACHSVNDR,0)),U),1:"NOT ON FILE"),!!?1,"CPTCODE",?40,"# DOCS #",?52,"$ CHG BLD $",?66,"$ CHG ALWD $",!,$$REPEAT^XLFSTR("~",80)
  1. Q
  1. ;