BGP6ELL1 ; IHS/CMI/LAB - print ind 1 ; 20 Jan 2016  4:52 PM
 ;;16.1;IHS CLINICAL REPORTING;;MAR 22, 2016;Build 170
 ;
 ;
I1 ;EP
 D H1
I1A1 ;001.A, 001.B, 001.C
 F BGPPC1="1.1","1.2","1.3" D PI
 D I1AGE^BGP6ELL2
 Q
I2 ;EP
 D H1
 F BGPPC1="2.1" D PI
 D I1AGE^BGP6ELL3
 Q
I3 ;EP
 D H1
 F BGPPC1="3.1" D PI
 D I1AGE^BGP6ELL4
 Q
STAT ;
 D H1
 F BGPPC1="4.1","4.2","4.3","4.4","4.5","4.6" D PI
 ;D I1AGE^BGP6ELL5
 Q
I5 ;EP
 D H1
 F BGPPC1="5.1" D PI
 D I1AGE^BGP6ELL6
 Q
I6 ;EP
 D H1
 F BGPPC1="6.1" D PI
 D I1AGE^BGP6ELL7
 Q
I7 ;EP
 D H1
 F BGPPC1="7.1" D PI
 D I1AGE^BGP6ELL8
 Q
I8 ;EP
 D H1
 F BGPPC1="8.1" D PI
 D I1AGE^BGP6ELL9
 Q
I9 ;EP
 D H1
 F BGPPC1="9.1" D PI
 D I1AGE^BGP6ELLA
 Q
I10 ;EP
 D H1
 F BGPPC1="10.1" D PI
 D I1AGE^BGP6ELLB
 Q
I11 ;EP
 D H1
 F BGPPC1="11.1" D PI
 D I1AGE^BGP6ELLC
 Q
I12 ;EP
 D H1
 F BGPPC1="12.1","12.2","12.3" D PI
 D I1AGE^BGP6ELLD
 Q
I13 ;EP
 D H1
 F BGPPC1="13.1","13.2","13.3" D PI
 D I1AGE^BGP6ELLE
 Q
I14 ;EP
 D H1
 F BGPPC1="14.1" D PI
 D I1AGE^BGP6ELLF
 Q
I15 ;EP
 D H1
 F BGPPC1="15.1","15.2","15.3" D PI
 D I1AGE^BGP6ELLG
 Q
I16 ;EP
 D H1
 F BGPPC1="16.1","16.2","16.3" D PI
 D I1AGE^BGP6ELLH
 Q
I17 ;EP
 D H1
 F BGPPC1="17.1","17.2","17.3" D PI
 D I1AGE^BGP6ELLI
 Q
I18 ;EP
 D H1
 F BGPPC1="18.1","18.2","18.3" D PI
 D I1AGE^BGP6ELLJ
 Q
I19 ;EP
 D H1
 F BGPPC1="19.1" D PI
 D I1AGE^BGP6ELLK
 Q
EFR ;EP
 D H1
 S BGPPC0=$P(^BGPELIM(BGPIC,0),U,6)
 F BGPPCX=1,2,3 S BGPPC1=BGPPC0_"."_BGPPCX D PI
 D I1AGE^BGP6ELLR
 Q
IEDA ;EP
 D H1
 S BGPPC0=$P(^BGPELIM(BGPIC,0),U,6)
 F BGPPCX=1,2,3 S BGPPC1=BGPPC0_"."_BGPPCX D PI
 D I1AGE^BGP6ELLS
 Q
IELDFSA ;EP
 D H1
 F BGPPC1="22.1","22.2","22.3" D PI
 D I1AGE^BGP6ELLL
 Q
IELDASA ;EP
 D H1
 F BGPPC1="23.1" D PI
 S BGPNODEN=1 S BGPPC1="23.2" D PI K BGPNODEN
 D I1AGE^BGP6ELLM
 Q
IELDPHA ;EP
 D IELDPHA^BGP6ELLN
 Q
IRAO ;EP
 D H1
 F BGPPC1="20.1" D PI
 D I1AGE^BGP6ELLO
 Q
IRAA ;EP
 D H1
 F BGPPC1="21.1" D PI
 D I1AGE^BGP6ELLP
 Q
PCV ;EP
 D H1
 S BGPNODEN=1 F BGPPC9=1:1:30 S BGPPC1="27."_BGPPC9  S BGPNODEN=1 D PI K BGPNODEN
 K BGPNODEN
 ;F BGPPC9=31:1:33 S BGPPC1="27."_BGPPC9 D PI
 ;D I1AGE^BGP6ELLW
 Q
AWV ;EP
 D H1
 F BGPPC9=1:1:3 S BGPPC1="28."_BGPPC9 D PI
 D I1AGE^BGP6ELLX
 Q
PI ;EP
 S BGPDENP=0
 S BGPPC2=0 F  S BGPPC2=$O(^BGPELIIM("ABC",BGPPC1,BGPPC2)) Q:BGPPC2=""  S BGPPC=$O(^BGPELIIM("ABC",BGPPC1,BGPPC2,0)) D PI1
 ;S BGPPC2=0 F  S BGPPC2=$O(^BGPELIIM("AB",BGPPC1,BGPPC2)) Q:BGPPC2=""  S BGPPC=$O(^BGPELIIM("AB",BGPPC1,BGPPC2,0)) D PI1
 Q
PI1 ;
 S BGPDF=$P(^BGPELIIM(BGPPC,0),U,8)
 ;get denominator value of measure
 S BGPNP=$P(^DD(90557.03,BGPDF,0),U,4),N=$P(BGPNP,";"),P=$P(BGPNP,";",2)
 S BGPCYD=$$V(1,BGPRPT,N,P)
 S BGPPRD=$$V(2,BGPRPT,N,P)
 S BGPBLD=$$V(3,BGPRPT,N,P)
 ;write out denominator
 I 'BGPDENP S Y=" " D S(Y,1,1) D
 .Q:$G(BGPNODEN)
 .S Y=$$LABELE^BGP6UTL1(BGPPC,BGPRTYPE,BGPPTYPE,"D") D S(Y,1,1)
 .S Y=BGPCYD_"^^"_BGPPRD_"^^^"_BGPBLD D S(Y,,2)
 .I BGPPC2'=12.1 S BGPDENP=1
  S BGPNF=$P(^BGPELIIM(BGPPC,0),U,9)
 S BGPNP=$P(^DD(90557.03,BGPNF,0),U,4),N=$P(BGPNP,";"),P=$P(BGPNP,";",2)
 D SETN
 ;write header for 1.A.1
 S Y=" " D S(Y,1,1)
 S Y=$$LABELE^BGP6UTL1(BGPPC,BGPRTYPE,BGPPTYPE,"N") D S(Y,1,1)
 D H2^BGP6ELL2
 Q
SETN ;EP set numerator fields
 S BGPCYN=$$V(1,BGPRPT,N,P)
 S BGPPRN=$$V(2,BGPRPT,N,P)
 S BGPBLN=$$V(3,BGPRPT,N,P)
 S BGPCYP=$S(BGPCYD:((BGPCYN/BGPCYD)*100),1:"")
 S BGPPRP=$S(BGPPRD:((BGPPRN/BGPPRD)*100),1:"")
 S BGPBLP=$S(BGPBLD:((BGPBLN/BGPBLD)*100),1:"")
 Q
SL(V) ;
 I V="" S V=0
 Q $$STRIP^XLFSTR($J(V,5,1)," ")
V(T,R,N,P) ;EP
 I $G(BGPAREAA) G VA
 NEW X
 I T=1 S X=$P($G(^BGPELDCM(R,N)),U,P) Q $S(X]"":X,1:0)
 I T=2 S X=$P($G(^BGPELDPM(R,N)),U,P) Q $S(X]"":X,1:0)
 I T=3 S X=$P($G(^BGPELDBM(R,N)),U,P) Q $S(X]"":X,1:0)
 Q ""
VA ;
 NEW X,V,C S X=0,C="" F  S X=$O(BGPSUL(X)) Q:X'=+X  D
 .I T=1 S C=C+$P($G(^BGPELDCM(X,N)),U,P)
 .I T=2 S C=C+$P($G(^BGPELDPM(X,N)),U,P)
 .I T=3 S C=C+$P($G(^BGPELDBM(X,N)),U,P)
 .Q
 Q $S(C:C,1:0)
C(X,X2,X3) ;
 D COMMA^%DTC
 Q X
S(Y,F,P) ;set up array
 I '$G(F) S F=0
 S %=$P(^TMP($J,"BGPDEL",0),U)+F,$P(^TMP($J,"BGPDEL",0),U)=%
 I '$D(^TMP($J,"BGPDEL",%)) S ^TMP($J,"BGPDEL",%)=""
 S $P(^TMP($J,"BGPDEL",%),U,P)=Y
 Q
CALC(N,O) ;
 NEW Z
 S Z=N-O,Z=$FN(Z,"+,",1)
 Q Z
SB(X) ;EP - Strip leading and trailing blanks from X.
 X ^DD("FUNC",$O(^DD("FUNC","B","STRIPBLANKS",0)),1)
 Q X
H2 ;
 S BGPX=""
 S BGPX=BGPCYN
 S $P(BGPX,U,2)=$$SB^BGP6ELL2($J(BGPCYP,5,1)),$P(BGPX,U,3)=BGPPRN,$P(BGPX,U,4)=$$SB^BGP6ELL2($J(BGPPRP,5,1)),$P(BGPX,U,5)=$$SB^BGP6ELL2($J($$CALC(BGPCYP,BGPPRP),6)),$P(BGPX,U,6)=BGPBLN,$P(BGPX,U,7)=$$SB^BGP6ELL2($J(BGPBLP,5,1))
 S $P(BGPX,U,8)=$$SB^BGP6ELL2($J($$CALC(BGPCYP,BGPBLP),6))
 D S(BGPX,,2)
 Q
H1 ;EP
 S Y="REPORT" D S(Y,1,2)
 S Y="%" D S(Y,,3)
 S Y="PREV YR" D S(Y,,4)
 S Y="%" D S(Y,,5)
 S Y="CHG from" D S(Y,,6)
 S Y="BASE" D S(Y,,7)
 S Y="%" D S(Y,,8)
 S Y="CHG from" D S(Y,,9)
 S Y="PERIOD" D S(Y,1,2)
 S Y="PERIOD" D S(Y,,4)
 S Y="PREV YR %" D S(Y,,6)
 S Y="PERIOD" D S(Y,,7)
 S Y="BASE %" D S(Y,,9)
 Q
BGP6ELL1  ; IHS/CMI/LAB - print ind 1 ; 20 Jan 2016  4:52 PM
 +1       ;;16.1;IHS CLINICAL REPORTING;;MAR 22, 2016;Build 170
 +2       ;
 +3       ;
I1        ;EP
 +1        DO H1
I1A1      ;001.A, 001.B, 001.C
 +1        FOR BGPPC1="1.1","1.2","1.3"
               DO PI
 +2        DO I1AGE^BGP6ELL2
 +3        QUIT 
I2        ;EP
 +1        DO H1
 +2        FOR BGPPC1="2.1"
               DO PI
 +3        DO I1AGE^BGP6ELL3
 +4        QUIT 
I3        ;EP
 +1        DO H1
 +2        FOR BGPPC1="3.1"
               DO PI
 +3        DO I1AGE^BGP6ELL4
 +4        QUIT 
STAT      ;
 +1        DO H1
 +2        FOR BGPPC1="4.1","4.2","4.3","4.4","4.5","4.6"
               DO PI
 +3       ;D I1AGE^BGP6ELL5
 +4        QUIT 
I5        ;EP
 +1        DO H1
 +2        FOR BGPPC1="5.1"
               DO PI
 +3        DO I1AGE^BGP6ELL6
 +4        QUIT 
I6        ;EP
 +1        DO H1
 +2        FOR BGPPC1="6.1"
               DO PI
 +3        DO I1AGE^BGP6ELL7
 +4        QUIT 
I7        ;EP
 +1        DO H1
 +2        FOR BGPPC1="7.1"
               DO PI
 +3        DO I1AGE^BGP6ELL8
 +4        QUIT 
I8        ;EP
 +1        DO H1
 +2        FOR BGPPC1="8.1"
               DO PI
 +3        DO I1AGE^BGP6ELL9
 +4        QUIT 
I9        ;EP
 +1        DO H1
 +2        FOR BGPPC1="9.1"
               DO PI
 +3        DO I1AGE^BGP6ELLA
 +4        QUIT 
I10       ;EP
 +1        DO H1
 +2        FOR BGPPC1="10.1"
               DO PI
 +3        DO I1AGE^BGP6ELLB
 +4        QUIT 
I11       ;EP
 +1        DO H1
 +2        FOR BGPPC1="11.1"
               DO PI
 +3        DO I1AGE^BGP6ELLC
 +4        QUIT 
I12       ;EP
 +1        DO H1
 +2        FOR BGPPC1="12.1","12.2","12.3"
               DO PI
 +3        DO I1AGE^BGP6ELLD
 +4        QUIT 
I13       ;EP
 +1        DO H1
 +2        FOR BGPPC1="13.1","13.2","13.3"
               DO PI
 +3        DO I1AGE^BGP6ELLE
 +4        QUIT 
I14       ;EP
 +1        DO H1
 +2        FOR BGPPC1="14.1"
               DO PI
 +3        DO I1AGE^BGP6ELLF
 +4        QUIT 
I15       ;EP
 +1        DO H1
 +2        FOR BGPPC1="15.1","15.2","15.3"
               DO PI
 +3        DO I1AGE^BGP6ELLG
 +4        QUIT 
I16       ;EP
 +1        DO H1
 +2        FOR BGPPC1="16.1","16.2","16.3"
               DO PI
 +3        DO I1AGE^BGP6ELLH
 +4        QUIT 
I17       ;EP
 +1        DO H1
 +2        FOR BGPPC1="17.1","17.2","17.3"
               DO PI
 +3        DO I1AGE^BGP6ELLI
 +4        QUIT 
I18       ;EP
 +1        DO H1
 +2        FOR BGPPC1="18.1","18.2","18.3"
               DO PI
 +3        DO I1AGE^BGP6ELLJ
 +4        QUIT 
I19       ;EP
 +1        DO H1
 +2        FOR BGPPC1="19.1"
               DO PI
 +3        DO I1AGE^BGP6ELLK
 +4        QUIT 
EFR       ;EP
 +1        DO H1
 +2        SET BGPPC0=$PIECE(^BGPELIM(BGPIC,0),U,6)
 +3        FOR BGPPCX=1,2,3
               SET BGPPC1=BGPPC0_"."_BGPPCX
               DO PI
 +4        DO I1AGE^BGP6ELLR
 +5        QUIT 
IEDA      ;EP
 +1        DO H1
 +2        SET BGPPC0=$PIECE(^BGPELIM(BGPIC,0),U,6)
 +3        FOR BGPPCX=1,2,3
               SET BGPPC1=BGPPC0_"."_BGPPCX
               DO PI
 +4        DO I1AGE^BGP6ELLS
 +5        QUIT 
IELDFSA   ;EP
 +1        DO H1
 +2        FOR BGPPC1="22.1","22.2","22.3"
               DO PI
 +3        DO I1AGE^BGP6ELLL
 +4        QUIT 
IELDASA   ;EP
 +1        DO H1
 +2        FOR BGPPC1="23.1"
               DO PI
 +3        SET BGPNODEN=1
           SET BGPPC1="23.2"
           DO PI
           KILL BGPNODEN
 +4        DO I1AGE^BGP6ELLM
 +5        QUIT 
IELDPHA   ;EP
 +1        DO IELDPHA^BGP6ELLN
 +2        QUIT 
IRAO      ;EP
 +1        DO H1
 +2        FOR BGPPC1="20.1"
               DO PI
 +3        DO I1AGE^BGP6ELLO
 +4        QUIT 
IRAA      ;EP
 +1        DO H1
 +2        FOR BGPPC1="21.1"
               DO PI
 +3        DO I1AGE^BGP6ELLP
 +4        QUIT 
PCV       ;EP
 +1        DO H1
 +2        SET BGPNODEN=1
           FOR BGPPC9=1:1:30
               SET BGPPC1="27."_BGPPC9
               SET BGPNODEN=1
               DO PI
               KILL BGPNODEN
 +3        KILL BGPNODEN
 +4       ;F BGPPC9=31:1:33 S BGPPC1="27."_BGPPC9 D PI
 +5       ;D I1AGE^BGP6ELLW
 +6        QUIT 
AWV       ;EP
 +1        DO H1
 +2        FOR BGPPC9=1:1:3
               SET BGPPC1="28."_BGPPC9
               DO PI
 +3        DO I1AGE^BGP6ELLX
 +4        QUIT 
PI        ;EP
 +1        SET BGPDENP=0
 +2        SET BGPPC2=0
           FOR 
               SET BGPPC2=$ORDER(^BGPELIIM("ABC",BGPPC1,BGPPC2))
               IF BGPPC2=""
                   QUIT 
               SET BGPPC=$ORDER(^BGPELIIM("ABC",BGPPC1,BGPPC2,0))
               DO PI1
 +3       ;S BGPPC2=0 F  S BGPPC2=$O(^BGPELIIM("AB",BGPPC1,BGPPC2)) Q:BGPPC2=""  S BGPPC=$O(^BGPELIIM("AB",BGPPC1,BGPPC2,0)) D PI1
 +4        QUIT 
PI1       ;
 +1        SET BGPDF=$PIECE(^BGPELIIM(BGPPC,0),U,8)
 +2       ;get denominator value of measure
 +3        SET BGPNP=$PIECE(^DD(90557.03,BGPDF,0),U,4)
           SET N=$PIECE(BGPNP,";")
           SET P=$PIECE(BGPNP,";",2)
 +4        SET BGPCYD=$$V(1,BGPRPT,N,P)
 +5        SET BGPPRD=$$V(2,BGPRPT,N,P)
 +6        SET BGPBLD=$$V(3,BGPRPT,N,P)
 +7       ;write out denominator
 +8        IF 'BGPDENP
               SET Y=" "
               DO S(Y,1,1)
               Begin DoDot:1
 +9                IF $GET(BGPNODEN)
                       QUIT 
 +10               SET Y=$$LABELE^BGP6UTL1(BGPPC,BGPRTYPE,BGPPTYPE,"D")
                   DO S(Y,1,1)
 +11               SET Y=BGPCYD_"^^"_BGPPRD_"^^^"_BGPBLD
                   DO S(Y,,2)
 +12               IF BGPPC2'=12.1
                       SET BGPDENP=1
               End DoDot:1
 +13       SET BGPNF=$PIECE(^BGPELIIM(BGPPC,0),U,9)
 +14       SET BGPNP=$PIECE(^DD(90557.03,BGPNF,0),U,4)
           SET N=$PIECE(BGPNP,";")
           SET P=$PIECE(BGPNP,";",2)
 +15       DO SETN
 +16      ;write header for 1.A.1
 +17       SET Y=" "
           DO S(Y,1,1)
 +18       SET Y=$$LABELE^BGP6UTL1(BGPPC,BGPRTYPE,BGPPTYPE,"N")
           DO S(Y,1,1)
 +19       DO H2^BGP6ELL2
 +20       QUIT 
SETN      ;EP set numerator fields
 +1        SET BGPCYN=$$V(1,BGPRPT,N,P)
 +2        SET BGPPRN=$$V(2,BGPRPT,N,P)
 +3        SET BGPBLN=$$V(3,BGPRPT,N,P)
 +4        SET BGPCYP=$SELECT(BGPCYD:((BGPCYN/BGPCYD)*100),1:"")
 +5        SET BGPPRP=$SELECT(BGPPRD:((BGPPRN/BGPPRD)*100),1:"")
 +6        SET BGPBLP=$SELECT(BGPBLD:((BGPBLN/BGPBLD)*100),1:"")
 +7        QUIT 
SL(V)     ;
 +1        IF V=""
               SET V=0
 +2        QUIT $$STRIP^XLFSTR($JUSTIFY(V,5,1)," ")
V(T,R,N,P) ;EP
 +1        IF $GET(BGPAREAA)
               GOTO VA
 +2        NEW X
 +3        IF T=1
               SET X=$PIECE($GET(^BGPELDCM(R,N)),U,P)
               QUIT $SELECT(X]"":X,1:0)
 +4        IF T=2
               SET X=$PIECE($GET(^BGPELDPM(R,N)),U,P)
               QUIT $SELECT(X]"":X,1:0)
 +5        IF T=3
               SET X=$PIECE($GET(^BGPELDBM(R,N)),U,P)
               QUIT $SELECT(X]"":X,1:0)
 +6        QUIT ""
VA        ;
 +1        NEW X,V,C
           SET X=0
           SET C=""
           FOR 
               SET X=$ORDER(BGPSUL(X))
               IF X'=+X
                   QUIT 
               Begin DoDot:1
 +2                IF T=1
                       SET C=C+$PIECE($GET(^BGPELDCM(X,N)),U,P)
 +3                IF T=2
                       SET C=C+$PIECE($GET(^BGPELDPM(X,N)),U,P)
 +4                IF T=3
                       SET C=C+$PIECE($GET(^BGPELDBM(X,N)),U,P)
 +5                QUIT 
               End DoDot:1
 +6        QUIT $SELECT(C:C,1:0)
C(X,X2,X3) ;
 +1        DO COMMA^%DTC
 +2        QUIT X
S(Y,F,P)  ;set up array
 +1        IF '$GET(F)
               SET F=0
 +2        SET %=$PIECE(^TMP($JOB,"BGPDEL",0),U)+F
           SET $PIECE(^TMP($JOB,"BGPDEL",0),U)=%
 +3        IF '$DATA(^TMP($JOB,"BGPDEL",%))
               SET ^TMP($JOB,"BGPDEL",%)=""
 +4        SET $PIECE(^TMP($JOB,"BGPDEL",%),U,P)=Y
 +5        QUIT 
CALC(N,O) ;
 +1        NEW Z
 +2        SET Z=N-O
           SET Z=$FNUMBER(Z,"+,",1)
 +3        QUIT Z
SB(X)     ;EP - Strip leading and trailing blanks from X.
 +1        XECUTE ^DD("FUNC",$ORDER(^DD("FUNC","B","STRIPBLANKS",0)),1)
 +2        QUIT X
H2        ;
 +1        SET BGPX=""
 +2        SET BGPX=BGPCYN
 +3        SET $PIECE(BGPX,U,2)=$$SB^BGP6ELL2($JUSTIFY(BGPCYP,5,1))
           SET $PIECE(BGPX,U,3)=BGPPRN
           SET $PIECE(BGPX,U,4)=$$SB^BGP6ELL2($JUSTIFY(BGPPRP,5,1))
           SET $PIECE(BGPX,U,5)=$$SB^BGP6ELL2($JUSTIFY($$CALC(BGPCYP,BGPPRP),6))
           SET $PIECE(BGPX,U,6)=BGPBLN
           SET $PIECE(BGPX,U,7)=$$SB^BGP6ELL2($JUSTIFY(BGPBLP,5,1))
 +4        SET $PIECE(BGPX,U,8)=$$SB^BGP6ELL2($JUSTIFY($$CALC(BGPCYP,BGPBLP),6))
 +5        DO S(BGPX,,2)
 +6        QUIT 
H1        ;EP
 +1        SET Y="REPORT"
           DO S(Y,1,2)
 +2        SET Y="%"
           DO S(Y,,3)
 +3        SET Y="PREV YR"
           DO S(Y,,4)
 +4        SET Y="%"
           DO S(Y,,5)
 +5        SET Y="CHG from"
           DO S(Y,,6)
 +6        SET Y="BASE"
           DO S(Y,,7)
 +7        SET Y="%"
           DO S(Y,,8)
 +8        SET Y="CHG from"
           DO S(Y,,9)
 +9        SET Y="PERIOD"
           DO S(Y,1,2)
 +10       SET Y="PERIOD"
           DO S(Y,,4)
 +11       SET Y="PREV YR %"
           DO S(Y,,6)
 +12       SET Y="PERIOD"
           DO S(Y,,7)
 +13       SET Y="BASE %"
           DO S(Y,,9)
 +14       QUIT