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

BGP0DP.m

Go to the documentation of this file.
  1. BGP0DP ; IHS/CMI/LAB - IHS gpra print 03 Jul 2009 6:26 AM ;
  1. ;;10.0;IHS CLINICAL REPORTING;**1**;JUN 18, 2010
  1. ;
  1. ;
  1. PRINT ;
  1. K ^TMP($J)
  1. K BGPDELIM
  1. S BGPIOSL=$S($G(BGPGUI):55,1:$G(IOSL))
  1. S BGPQUIT=""
  1. S ^TMP($J,"BGPDEL",0)=0
  1. I $G(BGPAREAA) D SETEXCEL
  1. S BGPIFTR=""
  1. I BGPROT="D" G DEL
  1. S BGPPTYPE="P"
  1. S BGPQHDR=0
  1. D ^BGP0DH
  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 ^BGP0DH
  1. S BGPGPG=0
  1. S BGPQUIT=""
  1. D PRINT1
  1. D SAVEDEL^BGP0PDL ;D ^BGP0PDL ;create ^tmp of delimited report
  1. S BGPIFTR=1
  1. K ^XTMP("BGP0D",BGPJ,BGPH)
  1. K ^XTMP("BGP0DNP",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(^BGPINDT(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^BGP0DP($E(T,1,S),0,1,BGPPTYPE) ;W !,$E(T,1,S)
  1. D W^BGP0DP($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(^BGPNPLT(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(^BGPNPLT(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. I BGPRTYPE=1 D
  1. .I $G(BGPNPL),'$$ANYDEV() Q ;in lists and no developmental lists so skip this
  1. .I '$G(BGPSUMON) D HEADER^BGP0DPH
  1. .I '$G(BGPSUMON) D W^BGP0DP("The following section contains GPRA Developmental topics and measures",0,2,BGPPTYPE)
  1. .I '$G(BGPSUMON) D W^BGP0DP("followed by the GPRA Developmental Measures Clinical Performance Summary.",0,1,BGPPTYPE)
  1. .I '$G(BGPSUMON) D W^BGP0DP("",0,1,BGPPTYPE)
  1. .S BGPGDEV=1,BGPRTYPE=9 ;control variable
  1. .S BGPDEVOR=0 F S BGPDEVOR=$O(^BGPINDT("ADEVO",BGPDEVOR)) Q:BGPDEVOR'=+BGPDEVOR!(BGPQUIT) D
  1. ..S BGPIC=$O(^BGPINDT("ADEVO",BGPDEVOR,0)) Q:BGPIC=""
  1. ..I $P(^BGPINDT(BGPIC,0),U,14),$D(BGPIND(BGPIC)) D PRINT2
  1. ..Q:BGPQUIT
  1. ..I $G(BGPNPL),$D(BGPINDL(BGPIC)),'$D(BGP0NPLT) S BGPINDT=BGPIC D NPL1^BGP0NPLP ;printed nat gpra list
  1. ..I $G(BGPNPL),$D(BGPINDL(BGPIC)),$D(BGP0NPLT) S BGPINDT=BGPIC D CT^BGP0DSTM ;printed nat gpra SEARCH TEMPLATE
  1. .S BGPRTYPE=1 K BGPGDEV
  1. .Q:BGPQUIT
  1. .;NOW PRINT developmental summary sheet
  1. .D ^BGP0DSPD ;DEVELOPMENTAL
  1. .D ^BGP0SDPD ;SUMMARY DETAIL
  1. .;now print gpra divider page
  1. .;if no lists except developmental skip this
  1. .I $G(BGPNPL),$$ALLDEV() Q
  1. .I '$G(BGPSUMON) D HEADER^BGP0DPH
  1. .I '$G(BGPSUMON) D W^BGP0DP("The following section contains GPRA & PART and Non-GPRA Selected Topics",0,3,BGPPTYPE)
  1. .I '$G(BGPSUMON) D W^BGP0DP("and measures followed by the Clinical Performance Summaries for Non-GPRA",0,1,BGPPTYPE)
  1. .I '$G(BGPSUMON) D W^BGP0DP("Measures and GPRA & PART Measures.",0,1,BGPPTYPE)
  1. .I '$G(BGPSUMON) D W^BGP0DP("",0,1,BGPPTYPE)
  1. ;set back to report 1
  1. I BGPRTYPE=1,$G(BGPNPL),$$ALLDEV() Q
  1. S BGPORDSE=0 F S BGPORDSE=$O(^BGPINDT("AOI",BGPORDSE)) Q:BGPORDSE'=+BGPORDSE!(BGPQUIT) S BGPIC=$O(^BGPINDT("AOI",BGPORDSE,0)) I $D(BGPIND(BGPIC)) D
  1. .Q:BGPQUIT
  1. .I BGPRTYPE=1 Q:$P($G(^BGPINDT(BGPIC,13)),U,3) ;dev only, not nat gpra report
  1. .I BGPRTYPE=4 Q:$P($G(^BGPINDT(BGPIC,13)),U,4) ;not on selected measures report
  1. .D PRINT2
  1. .I $G(BGPNPL),$D(BGPINDL(BGPIC)),'$D(BGP0NPLT) S BGPINDT=BGPIC D NPL1^BGP0NPLP ;printed nat gpra list
  1. .I $G(BGPNPL),$D(BGPINDL(BGPIC)),$D(BGP0NPLT) S BGPINDT=BGPIC D CT^BGP0DSTM ;printed nat gpra SEARCH TEMPLATE
  1. Q:BGPQUIT
  1. PRINT3 ;
  1. D SUMP
  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(^BGPINDT(BGPIC,BGPNODE,BGPY,1,BGPZ)) Q:BGPZ'=+BGPZ D
  1. .S BGPLCNT=BGPLCNT+1
  1. .S X=^BGPINDT(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^BGP0DPH Q:BGPQUIT
  1. .D W^BGP0DP(^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. D
  1. .I $G(BGPSUMON) G CALC
  1. .D HEADER^BGP0DPH ;header for all measures
  1. .I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. .D WTITLE(BGPIC)
  1. .;W !,$P(^BGPINDT(BGPIC,0),U,3),!
  1. .I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. .D W^BGP0DP("Denominator(s):",0,1,BGPPTYPE)
  1. .S BGPNODE=$S(BGPRTYPE=1:81,BGPRTYPE=4:61,BGPRTYPE=7:83,BGPRTYPE=9:85,1:61)
  1. .S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,BGPNODE,"B",BGPX)) Q:BGPX'=+BGPX!(BGPQUIT) D
  1. ..S BGPY=0 F S BGPY=$O(^BGPINDT(BGPIC,BGPNODE,"B",BGPX,BGPY)) Q:BGPY'=+BGPY!(BGPQUIT) D
  1. ...I BGPRTYPE=4,'$D(^BGPINDT(BGPIC,BGPNODE,BGPY,12,"B",BGPINDT)) Q ;not this measure type on selected
  1. ...D WP
  1. ...Q
  1. ..Q
  1. .Q:BGPQUIT
  1. .I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. .D W^BGP0DP("Numerator(s):",0,2,BGPPTYPE)
  1. .S BGPNODE=$S(BGPRTYPE=1:82,BGPRTYPE=4:62,BGPRTYPE=7:84,BGPRTYPE=9:86,1:62)
  1. .S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,BGPNODE,"B",BGPX)) Q:BGPX'=+BGPX!(BGPQUIT) D
  1. ..S BGPY=0 F S BGPY=$O(^BGPINDT(BGPIC,BGPNODE,"B",BGPX,BGPY)) Q:BGPY'=+BGPY!(BGPQUIT) D
  1. ...I BGPRTYPE=4,'$D(^BGPINDT(BGPIC,BGPNODE,BGPY,12,"B",BGPINDT)) Q ;not this measure type on selected
  1. ...D WP
  1. ...Q
  1. ..Q
  1. .Q:BGPQUIT
  1. .S BGPNODE=11
  1. .I BGPRTYPE=1,$O(^BGPINDT(BGPIC,54,0)) S BGPNODE=54
  1. .I BGPRTYPE=7,$O(^BGPINDT(BGPIC,56,0)) S BGPNODE=56
  1. .I BGPRTYPE=9,$O(^BGPINDT(BGPIC,58,0)) S BGPNODE=58
  1. .D W^BGP0DP("Logic:",0,2,BGPPTYPE) S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,BGPNODE,BGPX)) Q:BGPX'=+BGPX D
  1. ..I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. ..D W^BGP0DP(^BGPINDT(BGPIC,BGPNODE,BGPX,0),0,1,BGPPTYPE)
  1. .I BGPRTYPE=9 G CALC
  1. .D W^BGP0DP("Performance Measure Description:",0,2,BGPPTYPE) S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,$S($G(BGPNGR09):57,1:51),BGPX)) Q:BGPX'=+BGPX D
  1. ..I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. ..D W^BGP0DP(^BGPINDT(BGPIC,$S($G(BGPNGR09):57,1:51),BGPX,0),0,1,BGPPTYPE)
  1. .I $O(^BGPINDT(BGPIC,52,0)) D W^BGP0DP("Past Performance and/or Target:",0,2,BGPPTYPE) S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,52,BGPX)) Q:BGPX'=+BGPX D
  1. ..I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. ..D W^BGP0DP(^BGPINDT(BGPIC,52,BGPX,0),0,1,BGPPTYPE)
  1. .I $O(^BGPINDT(BGPIC,55,0)) D W^BGP0DP("Source:",0,2,BGPPTYPE) S BGPX=0 F S BGPX=$O(^BGPINDT(BGPIC,55,BGPX)) Q:BGPX'=+BGPX D
  1. ..I BGPPTYPE="P",$Y>(BGPIOSL-3) D HEADER^BGP0DPH Q:BGPQUIT
  1. ..D W^BGP0DP(^BGPINDT(BGPIC,55,BGPX,0),0,1,BGPPTYPE)
  1. .I '$O(^BGPINDT(BGPIC,55,0)) D W^BGP0DP("",0,1,BGPPTYPE)
  1. CALC .I BGPPTYPE="P" X ^BGPINDT(BGPIC,3) D W^BGP0DP("",0,1,BGPPTYPE)
  1. .I BGPPTYPE="D" X ^BGPINDT(BGPIC,4) D W^BGP0DP("",0,1,BGPPTYPE)
  1. .;I $G(BGPNPL),$D(BGPINDL(BGPIC)),'$D(BGP0NPLT) S BGPINDT=BGPIC D NPL1^BGP0NPLP ;printed nat gpra list
  1. .;I $G(BGPNPL),$D(BGPINDL(BGPIC)),$D(BGP0NPLT) S BGPINDT=BGPIC D CT^BGP0DSTM ;printed nat gpra SEARCH TEMPLATE
  1. Q
  1. SUMP ;
  1. I BGPIC="" S BGPIFTR=1
  1. I BGPRTYPE=1 D ^BGP0DSPN ;NON GPRA
  1. I BGPRTYPE=1 D ^BGP0DSP ;GPRA
  1. I BGPRTYPE=1 D ^BGP0SDPN
  1. I BGPRTYPE=1 D ^BGP0SDP
  1. I BGPRTYPE=7 D ^BGP0DSPO
  1. I BGPRTYPE=7 D ^BGP0SDPO
  1. D ^BGP0DS
  1. I $G(BGPCPPL) D CPPL1^BGP0DCLP ;print comp pt list
  1. D EXIT
  1. Q
  1. KITM ;
  1. K ^TMP($J)
  1. K ^XTMP("BGP0D",BGPJ,BGPH)
  1. K ^XTMP("BGP0DNP",BGPJ,BGPH)
  1. K ^XTMP("BGP08CPL",BGPJ,BGPH)
  1. Q
  1. SETEXCEL ;EP
  1. I $G(BGPAREAA) D Q
  1. .S X=0 F S X=$O(BGPSUL(X)) Q:X'=+X D
  1. ..S N=^BGPGPDCT(X,0)
  1. ..S (D,L)=""
  1. ..S L=$P(N,U,9) I L S L=$O(^AUTTLOC("C",L,0)) I L S D=$P($G(^AUTTLOC(L,1)),U,3),L=$S(L:$P(^DIC(4,L,0),U),1:"?????")
  1. ..S BGPEI(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPEI(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPEI2(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPEI2(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPEIDV1(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPEIDV1(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPEIDV2(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPEIDV2(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPONN1(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPONN1(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPONN2(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPONN2(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..S BGPONN3(X)=L_U_$P(N,U,9)_U_D_U_$$DATE^BGP0UTL($P(N,U,13)) S P=5 F Y=1:1:6 S $P(BGPONN3(X),U,P)=$$DATE^BGP0UTL($P(N,U,Y)),P=P+1
  1. ..Q
  1. .Q
  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