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

BGP1DBPR.m

Go to the documentation of this file.
  1. BGP1DBPR ; IHS/CMI/LAB - IHS gpra print 03 Jul 2010 6:26 AM ;
  1. ;;11.1;IHS CLINICAL REPORTING SYSTEM;**1**;JUN 27, 2011;Build 106
  1. ;
  1. ;
  1. PRINT ;
  1. K ^TMP($J)
  1. S BGPIOSL=$S($G(BGPGUI):55,1:$G(IOSL))
  1. S BGPQUIT=""
  1. S ^TMP($J,"BGPDEL",0)=0
  1. S BGPIFTR=""
  1. I BGPROT="D" G DEL
  1. S BGPPTYPE="P"
  1. S BGPQHDR=0
  1. D ^BGP1DH ;LORI
  1. I BGPQHDR D KITM Q
  1. S BGPGPG=0
  1. S BGPQUIT=""
  1. D PRINT1
  1. K ^TMP($J)
  1. I BGPROT="P" D KITM Q
  1. ;
  1. DEL ;create delimited output file
  1. I '$D(BGPGUI) D ^%ZISC ;close printer device
  1. K ^TMP($J)
  1. S ^TMP($J,"BGPDEL",0)=0
  1. S BGPQHDR=0
  1. S BGPPTYPE="D"
  1. D ^BGP1DH
  1. S BGPGPG=0
  1. S BGPQUIT=""
  1. D PRINT1
  1. D SAVEDEL^BGP1PDL ;D ^BGP1PDL ;create ^tmp of delimited report
  1. S BGPIFTR=1
  1. K ^XTMP("BGP1D",BGPJ,BGPH)
  1. K ^XTMP("BGP1DNP",BGPJ,BGPH)
  1. K ^XTMP("BGP10CPL",BGPJ,BGPH)
  1. K ^TMP($J)
  1. Q
  1. W(V,C,F,M,P,T) ;EP
  1. I $G(F)="" S F=1
  1. I $G(C)="" S C=0
  1. I $G(P)="" S P=1
  1. I $G(T)="" S T=0
  1. I M="P" D Q
  1. .;I $Y>(BGPIOSL-2) D EOP W:$D(IOF) @IOF
  1. .NEW X
  1. .F X=1:1:F W !
  1. .I C W $$CJ^XLFSTR(V,80)
  1. .I 'C W ?T,V
  1. ;set up array
  1. I '$G(F) S F=0
  1. NEW %,Z
  1. S Z=""
  1. S %=$P(^TMP($J,"BGPDEL",0),U)
  1. F Z=1:1:F S %=%+1 S ^TMP($J,"BGPDEL",%)=""
  1. S $P(^TMP($J,"BGPDEL",0),U)=%
  1. I '$D(^TMP($J,"BGPDEL",%)) S ^TMP($J,"BGPDEL",%)=""
  1. S $P(^TMP($J,"BGPDEL",%),U,P)=V
  1. Q
  1. ;
  1. WTITLE(I) ;EP - write title line
  1. NEW T,X,Y,S
  1. S T=$P(^BGPINDB(I,0),U,3)
  1. I BGPPTYPE="P",$L(T)<81 D W(T,0,1,BGPPTYPE),W("",0,1,BGPPTYPE) Q ; W !,T,! Q
  1. I BGPPTYPE="D" D W(T,0,1,BGPPTYPE),W("",0,1,BGPPTYPE) Q
  1. F X=$E(T,1,80)
  1. S S=""
  1. F Y=80:-1:1 Q:S S I=$E(X,Y) I I=" " S S=Y
  1. D W^BGP1DP($E(T,1,S),0,1,BGPPTYPE) ;W !,$E(T,1,S)
  1. D W^BGP1DP($E(T,(S+1),$L(T)),0,1,BGPPTYPE),W("",0,1,BGPPTYPE) ;W !,$E(T,(S+1),$L(T)),!
  1. Q
  1. ANYDEV() ;
  1. NEW X,G,Y
  1. S G=0
  1. S X=0 F S X=$O(BGPINDL(X)) Q:X'=+X S Y=0 F S Y=$O(BGPINDL(X,Y)) Q:Y'=+Y I $P(^BGPNPLB(Y,0),U,7)=9 S G=1
  1. Q G
  1. ALLDEV() ;
  1. NEW X,G,Y
  1. S G=1
  1. S X=0 F S X=$O(BGPINDL(X)) Q:X'=+X S Y=0 F S Y=$O(BGPINDL(X,Y)) Q:Y'=+Y I $P(^BGPNPLB(Y,0),U,7)=1 S G=0
  1. Q G
  1. PRINT1 ;EP
  1. ;if in NGR or GPU now print gpra dev measures and divider page
  1. NEW BGPPC,BGPORD
  1. I BGPPTYPE="P" D HEADER^BGP1DPH
  1. D W^BGP1DP($S($G(BGPAREAA):"AREA AGGREGATE ",1:"")_"Dashboard Report - "_$P(^DIC(4,$S($G(BGPISITE):BGPISITE,1:DUZ(2)),0),U,1),1,2,BGPPTYPE)
  1. D W^BGP1DP(" ",0,1,BGPPTYPE)
  1. D COLHDR
  1. S BGPORD=0
  1. S Y=$O(^BGPCTRL("B",2011,0))
  1. S Y=$P(^BGPCTRL(Y,0),U,8)
  1. S BGPPERY=$$FMDIFF^XLFDT(DT,Y)
  1. S BGPPERY=BGPPERY/365,BGPPERY=BGPPERY*100,BGPPERY=BGPPERY+.5,BGPPERY=$J(BGPPERY,3,0),BGPPERY=$$STRIP^XLFSTR(BGPPERY," ")
  1. F S BGPORD=$O(^BGPINDBC("ADASH",BGPORD)) Q:BGPORD'=+BGPORD!(BGPQUIT) D
  1. .S BGPPC=0 F S BGPPC=$O(^BGPINDBC("ADASH",BGPORD,BGPPC)) Q:BGPPC'=+BGPPC!(BGPQUIT) D
  1. ..;GET VALUES FOR PREVIOUS YEAR, CURRENT YEAR, GET DENOM VALUE FOR 2011
  1. ..S BGPDF=$P(^BGPINDBC(BGPPC,0),U,8)
  1. ..;get denom value
  1. ..S BGPNP=$P(^DD(90545.03,BGPDF,0),U,4),N=$P(BGPNP,";"),P=$P(BGPNP,";",2)
  1. ..S BGPCYD=$$V^BGP1DP1C(1,BGPRPT,N,P,1,1)
  1. ..S BGPPRD=$$V^BGP1DP1C(2,BGPRPT,N,P,1,1)
  1. ..;get numerator values
  1. ..S BGPNF=$P(^BGPINDBC(BGPPC,0),U,9)
  1. ..S BGPNP=$P(^DD(90545.03,BGPNF,0),U,4),N=$P(BGPNP,";"),P=$P(BGPNP,";",2)
  1. ..D SETN
  1. ..;now figure out out # needed and on track status
  1. ..I '$P($G(^BGPINDBC(BGPPC,23)),U,3) D
  1. ...S BGPGOAL=+$P($G(^BGPINDBC(BGPPC,14)),U,8)
  1. ...S BGPNEG=$P($G(^BGPINDBC(BGPPC,23)),U,5)
  1. ...S BGPOT=""
  1. ...S BGPGG=BGPGOAL/100
  1. ...S BGPNEED1=BGPGG*BGPCYD,BGPNEED1=BGPNEED1+.9,BGPNEED1=$P(BGPNEED1,".")
  1. ...S BGPCYPER=BGPCYP/100
  1. ...S BGPNEED2=BGPCYPER*BGPCYD,BGPNEED2=BGPNEED2+.9,BGPNEED2=$P(BGPNEED2,".") ;;;
  1. ...S BGPNEED=BGPNEED1-BGPNEED2
  1. ...I BGPNEG S BGPNEED=BGPNEED2-BGPNEED1
  1. ...;S BGPNEED=BGPNEED+.5,BGPNEED=$P(BGPNEED,".",1)
  1. ...S BGPCOLG=BGPCYPER/BGPGG,BGPCOLG=BGPCOLG*100
  1. ...I 'BGPNEG,BGPCOLG'<100 S BGPOT="ON TRACK" Q
  1. ...I BGPNEG,BGPCOLG'>100 S BGPOT="ON TRACK" Q
  1. ...I 'BGPNEG,BGPCOLG'<BGPPERY S BGPOT="WITHIN RANGE" Q
  1. ...I BGPNEG,BGPCOLG'>BGPPERY S BGPOT="WITHIN RANGE" Q
  1. ...S BGPOT="NOT ON TRACK"
  1. ..I $P($G(^BGPINDBC(BGPPC,23)),U,3) D
  1. ...S BGPGOAL=$P($G(^BGPINDBC(BGPPC,14)),U,8)
  1. ...S BGPOT=""
  1. ...S BGPGP=$P($G(^BGPINDBC(BGPPC,23)),U,4)
  1. ...S BGPGG=BGPGP/100
  1. ...;S BGPNGA=BGPGG*BGPPRN
  1. ...S BGPTN=BGPPRN*(1+BGPGG)
  1. ...S BGPTN=BGPTN+.9,BGPTN=$P(BGPTN,".")
  1. ...S BGPNEED=BGPTN-BGPCYN
  1. ...I BGPNEED<1 S BGPOT="ON TRACK" Q
  1. ...S G=BGPCYN/BGPTN
  1. ...I G'<BGPPERY S BGPOT="WITHIN RANGE" Q
  1. ...S BGPOT="NOT ON TRACK"
  1. ..;write out values for this measure
  1. ..I BGPPTYPE="P" I $Y>(IOSL-4) D HEADER^BGP1DPH Q:BGPQUIT D COLHDR
  1. ..I $P($G(^BGPINDBC(BGPPC,23)),U,1) D W^BGP1DP(" ",0,1,BGPPTYPE)
  1. ..D W^BGP1DP($P($G(^BGPINDBC(BGPPC,23)),U,2),0,1,BGPPTYPE,1,0)
  1. ..I BGPPTYPE="D" D
  1. ...D W^BGP1DP($S('$P(^BGPINDBC(BGPPC,23),U,3):BGPGOAL,1:+BGPTN),0,0,BGPPTYPE,2,30)
  1. ...I '$P(^BGPINDBC(BGPPC,23),U,3) D
  1. ....D W^BGP1DP($S(BGPPTYPE="D":$$SB($J(BGPPRP,5,1)),1:$J(BGPPRP,5,1)),0,0,BGPPTYPE,3,39)
  1. ....D W^BGP1DP(BGPCYN,0,0,BGPPTYPE,4,47)
  1. ....D W^BGP1DP(BGPCYD,0,0,BGPPTYPE,5,55)
  1. ....D W^BGP1DP($S(BGPPTYPE="D":$$SB($J(BGPCYP,5,1)),1:$J(BGPCYP,5,1)),0,0,BGPPTYPE,6,47)
  1. ....D W^BGP1DP($S(BGPNEED>0:BGPNEED,1:0),0,0,BGPPTYPE,7,65)
  1. ...I $P(^BGPINDBC(BGPPC,23),U,3) D
  1. ....D W^BGP1DP($S(BGPPTYPE="D":BGPPRN,1:BGPPRN),0,0,BGPPTYPE,3,39)
  1. ....D W^BGP1DP($S(BGPPTYPE="D":BGPCYN,1:BGPCYN),0,0,BGPPTYPE,4,47)
  1. ....D W^BGP1DP(BGPCYN,0,0,BGPPTYPE,6,55)
  1. ....D W^BGP1DP($S(BGPNEED>0:BGPNEED,1:0),0,0,BGPPTYPE,7,65)
  1. ...;D W^BGP1DP(BGPOT,0,0,BGPPTYPE,8,75)
  1. ..I BGPPTYPE="P" D
  1. ...D W^BGP1DP($S('$P(^BGPINDBC(BGPPC,23),U,3):$J(BGPGOAL,8),1:$$LBLK(+BGPTN,7)),0,0,BGPPTYPE,2,28)
  1. ...I '$P(^BGPINDBC(BGPPC,23),U,3) D
  1. ....D W^BGP1DP($S(BGPPTYPE="D":$$SB($J(BGPPRP,5,1)),1:$J(BGPPRP,5,1)),0,0,BGPPTYPE,3,40)
  1. ....D W^BGP1DP($$C(BGPCYN,0,8),0,0,BGPPTYPE,4,50)
  1. ....D W^BGP1DP($$C(BGPCYD,0,8),0,0,BGPPTYPE,5,60)
  1. ....D W^BGP1DP($S(BGPPTYPE="D":$$SB($J(BGPCYP,5,1)),1:$J(BGPCYP,5,1)),0,0,BGPPTYPE,6,70)
  1. ....D W^BGP1DP("# Needed to Achieve Target: "_$S(BGPNEED>0:$S(BGPNEG:"-",1:"")_BGPNEED,1:0),0,1,BGPPTYPE,0,5)
  1. ...I $P(^BGPINDBC(BGPPC,23),U,3) D
  1. ....D W^BGP1DP($S(BGPPTYPE="D":BGPPRN,1:$$C(BGPPRN,0,8)),0,0,BGPPTYPE,3,40)
  1. ....D W^BGP1DP($S(BGPPTYPE="D":BGPCYN,1:$$C(BGPCYN,0,8)),0,0,BGPPTYPE,4,50)
  1. ....D W^BGP1DP(BGPCYN,0,0,BGPPTYPE,7,70)
  1. ....D W^BGP1DP("# Needed to Achieve Target: "_$S(BGPNEED>0:BGPNEED,1:0),0,1,BGPPTYPE,,5)
  1. ...;D W^BGP1DP(BGPOT,0,0,BGPPTYPE,0,40)
  1. ..D W^BGP1DP(" ",0,1,BGPPTYPE)
  1. I BGPPTYPE="P" D W^BGP1DP("*Results reflect services provided as of the date this report was run or the ",0,1,BGPPTYPE) D W^BGP1DP("report period end date, whichever is earlier",0,1,BGPPTYPE)
  1. I BGPPTYPE="D" D W^BGP1DP("*Results reflect services provided as of the date this report was run or the report period end date, whichever is earlier",0,1,BGPPTYPE)
  1. D W^BGP1DP(" ",0,1,BGPPTYPE)
  1. Q
  1. SETN ;EP - set numerator fields
  1. S BGPCYN=$$V^BGP1DP1C(1,BGPRPT,N,P,2)
  1. S BGPPRN=$$V^BGP1DP1C(2,BGPRPT,N,P,2)
  1. S BGPCYP=$S(BGPCYD:((BGPCYN/BGPCYD)*100),1:"0.0")
  1. S BGPPRP=$S(BGPPRD:((BGPPRN/BGPPRD)*100),1:"0.0")
  1. Q
  1. COLHDR ;
  1. I BGPPTYPE="D" D Q
  1. .I '$G(BGPAREAA) D W^BGP1DP("National/Site 2011 Target",0,1,BGPPTYPE,2)
  1. .I $G(BGPAREAA) D W^BGP1DP("National/Area 2011 Target",0,1,BGPPTYPE,2)
  1. .D W^BGP1DP("2010 Final",0,0,BGPPTYPE,3)
  1. .D W^BGP1DP("Numerator",0,0,BGPPTYPE,4)
  1. .D W^BGP1DP("Denominator",0,0,BGPPTYPE,5)
  1. .D W^BGP1DP("2011*",0,0,BGPPTYPE,6)
  1. .D W^BGP1DP("# Needed to Achieve Target",0,0,BGPPTYPE,7)
  1. .;
  1. D W^BGP1DP("National"_$S('$G(BGPAREAA):"/Site",1:"/Area"),0,1,BGPPTYPE,2,30)
  1. D W^BGP1DP("2011",0,1,BGPPTYPE,2,30)
  1. D W^BGP1DP("2010",0,0,BGPPTYPE,3,40)
  1. D W^BGP1DP("Denom-",0,0,BGPPTYPE,,60)
  1. D W^BGP1DP("2011*",0,0,BGPPTYPE,,70)
  1. D W^BGP1DP("Target",0,1,BGPPTYPE,,30)
  1. D W^BGP1DP("Final",0,0,BGPPTYPE,,40)
  1. D W^BGP1DP("Numerator",0,0,BGPPTYPE,,50)
  1. D W^BGP1DP("inator",0,0,BGPPTYPE,,60)
  1. D W^BGP1DP("(Current)",0,0,BGPPTYPE,,70)
  1. D W^BGP1DP($TR($J("",80)," ","-"),0,1,BGPPTYPE)
  1. Q
  1. WP ;
  1. K ^UTILITY($J,"W")
  1. S BGPZ=0,BGPLCNT=0
  1. S DIWL=1,DIWR=80,DIWF="",BGPZ=0 F S BGPZ=$O(^BGPINDB(BGPIC,BGPNODE,BGPY,1,BGPZ)) Q:BGPZ'=+BGPZ D
  1. .S BGPLCNT=BGPLCNT+1
  1. .S X=^BGPINDB(BGPIC,BGPNODE,BGPY,1,BGPZ,0) S:BGPLCNT=1 X=" - "_X D ^DIWP
  1. .Q
  1. WPS ;
  1. S Z=0 F S Z=$O(^UTILITY($J,"W",DIWL,Z)) Q:Z'=+Z D
  1. .I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP1DPH Q:BGPQUIT
  1. .D W^BGP1DP(^UTILITY($J,"W",DIWL,Z,0),0,1,BGPPTYPE)
  1. K DIWL,DIWR,DIWF,Z
  1. K ^UTILITY($J,"W"),X
  1. Q
  1. PRINT2 ;
  1. Q
  1. KITM ;
  1. K ^TMP($J)
  1. K ^XTMP("BGP1D",BGPJ,BGPH)
  1. K ^XTMP("BGP1DNP",BGPJ,BGPH)
  1. K ^XTMP("BGP18CPL",BGPJ,BGPH)
  1. Q
  1. EXIT ;
  1. Q:BGPPTYPE'="P"
  1. I $E(IOST)="C",IO=IO(0),'$D(ZTQUEUED) W ! S DIR(0)="EO",DIR("A")="End of report. Press ENTER" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q
  1. C(X,X2,X3) ;
  1. D COMMA^%DTC
  1. Q X
  1. SB(X) ;EP - Strip leading and trailing blanks from X.
  1. NEW %
  1. X ^DD("FUNC",$O(^DD("FUNC","B","STRIPBLANKS",0)),1)
  1. Q X
  1. AREA ;EP - AREA DASHBOARD PRINT
  1. K ^TMP($J)
  1. S BGPIOSL=$S($G(BGPGUI):55,1:IOSL)
  1. S BGPGPG=0
  1. S BGPQUIT=""
  1. S BGPIFTR=""
  1. S ^TMP($J,"BGPDEL",0)=0
  1. S BGPPTYPE="P"
  1. I BGPROT="D" G DELA
  1. D AREACP^BGP1DH1
  1. S BGPQUIT="",BGPGPG=0,BGPRPT=0
  1. D PRINT1
  1. Q:BGPQUIT
  1. I $G(BGPAREAA) K BGPAREAA D INDSITE S BGPAREAA=1
  1. S BGPIFTR=1
  1. Q:BGPROT="P"
  1. DELA ;create delimited output file
  1. S BGPQUIT="",BGPGPG=0,BGPRPT=0,BGPIFTR=""
  1. D ^%ZISC ;close printer device
  1. K ^TMP($J)
  1. ;D ^BGP1PDL ;create ^tmp of delimited report
  1. S ^TMP($J,"BGPDEL",0)=0
  1. S BGPPTYPE="D",BGPQUIT=0
  1. D AREACP^BGP1DH
  1. S BGPQUIT="",BGPGPG=0,BGPRPT=0
  1. D PRINT1
  1. I $G(BGPAREAA) K BGPAREAA D INDSITE S BGPAREAA=1
  1. D SAVEDEL^BGP1PDL ;D ^BGP1PDL ;create ^tmp of delimited report
  1. S BGPIFTR=1
  1. K ^TMP($J)
  1. Q
  1. INDSITE ;
  1. S BGPRPT=0 F S BGPRPT=$O(BGPSUL(BGPRPT)) Q:BGPRPT'=+BGPRPT!(BGPQUIT) D
  1. .S BGPISITE=$P(^BGPGPDCB(BGPRPT,0),U,9),BGPISITE=$O(^AUTTLOC("C",BGPISITE,0))
  1. .D PRINT1
  1. .Q
  1. Q
  1. LBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=" "_V
  1. Q V