- BGP7D52 ; IHS/CMI/LAB - measure 31 ;
- ;;17.1;IHS CLINICAL REPORTING;;MAY 10, 2017;Build 29
- ;
- WASS ;
- S (BGPN1,BGPN2,BGPN3,BGPN4,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5)=0
- NEW BGPBMI,BGPNUTR,BGPPHY
- I 'BGPACTCL S BGPSTOP=1 Q ;must be active clinical
- I BGPAGEE<3 Q ;age at end must be 3 or older
- S BGPD1=1
- I BGPAGEE>2,BGPAGEE<12 S BGPD2=1
- I BGPAGEE>11,BGPAGEE<18 S BGPD3=1
- I BGPAGEE>17 S BGPD4=1
- I BGPAGEE>2,BGPAGEE<18 S BGPD5=1
- S BGPBMI=$$BMI^BGP7D6(DFN,BGPEDATE,BGPAGEE)
- I BGPBMI="" S BGPBMI=$$LASTDX^BGP7UTL1(DFN,"BGP BMI DXS",BGPBDATE,BGPEDATE) I BGPBMI S BGPBMI=$P(BGPBMI,U,2)
- S BGPN2=$S(BGPBMI]"":1,1:0)
- S BGPNUTR=$$NUTR(DFN,BGPBDATE,BGPEDATE),BGPN3=$S(BGPNUTR]"":1,1:0)
- S BGPPHY=$$PHY(DFN,BGPBDATE,BGPEDATE),BGPN4=$S(BGPPHY]"":1,1:0)
- I BGPN2,BGPN3,BGPN4 S BGPN1=1
- S BGPVALUE="AC|||"
- S N=""
- I BGPN1 S N="COMP ASSESS"
- I BGPN2 D
- .I N]"" S N=N_"; "
- .S N=N_"BMI: "_$S('$E(BGPBMI):BGPBMI,1:$J(BGPBMI,5,2))
- I BGPN3 D
- .I N]"" S N=N_"; "
- .S N=N_"NUTR: "_$$DATE^BGP7UTL($P(BGPNUTR,U))_" "_$P(BGPNUTR,U,2)
- I BGPN4 D
- .I N]"" S N=N_"; "
- .S N=N_"PHY: "_$$DATE^BGP7UTL($P(BGPPHY,U))_" "_$P(BGPPHY,U,2)
- S BGPVALUE=BGPVALUE_N
- S BGPVALUD=BGPVALUE
- Q
- ;
- NUTR(P,BDATE,EDATE) ;EP
- NEW BGPG,X,BGPALLED,Y,E,D,T,%,S
- S X=P_"^LAST DX [BGP DIETARY SURVEILLANCE DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,"BGPG(")
- I $D(BGPG(1)) Q $P(BGPG(1),U)_U_"DX "_$P(BGPG(1),U,2)
- S BGPG=$$CPT^BGP7DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP CPT NUTRITION COUNSELING",0)),5)
- I BGPG Q $P(BGPG,U,1)_U_"CPT "_$P(BGPG,U,2) ;BGPG
- S Y="BGPALLED("
- S X=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
- S (X,D)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(%]"") D
- .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
- .Q:'T
- .Q:'$D(^AUTTEDT(T,0))
- .S T=$P(^AUTTEDT(T,0),U,2)
- .I $P(T,"-",2)="N"!($P(T,"-",2)="DT")!($P(T,"-",2)="MNT") S %=$P(BGPALLED(X),U)_U_"EDUC: "_T Q
- .S S=$P(T,"-",1)
- .S S=$$ICDDX^BGP7UTL2(S)
- .I $P(S,U,1)'="-1",$$ICD^BGP7UTL2($P(S,U,1),$O(^ATXAX("B","BGP DIETARY SURVEILLANCE DXS",0)),9) S %=$P(BGPALLED(X),U)_U_"EDUC: "_T Q
- .S S=$P(T,"-",1),S=$$CPT^ICPTCOD(S)
- .I $P(S,U,1)'="-1",$$ICD^BGP7UTL2($P(S,U,1),$O(^ATXAX("B","BGP CPT NUTRITION COUNSELING",0)),1) S %=$P(BGPALLED(X),U)_U_"EDUC: "_T Q
- I %]"" Q %
- Q ""
- PHY(P,BDATE,EDATE) ;EP
- NEW BGPG,X,E,BGPALLED,T,%,D
- S X=P_"^LAST DX [BGP EXERCISE COUNSELING DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,"BGPG(")
- I $D(BGPG(1)) Q $P(BGPG(1),U)_U_"DX "_$P(BGPG(1),U,2)
- S BGPG=$$CPT^BGP7DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP CPT PHYSICAL ACTIVITY",0)),5)
- I BGPG Q $P(BGPG,U,1)_U_"CPT "_$P(BGPG,U,2) ;BGPG
- S Y="BGPALLED("
- S X=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
- S (X,D)=0,%="",T="" F S X=$O(BGPALLED(X)) Q:X'=+X!(%]"") D
- .S T=$P(^AUPNVPED(+$P(BGPALLED(X),U,4),0),U)
- .Q:'T
- .Q:'$D(^AUTTEDT(T,0))
- .S T=$P(^AUTTEDT(T,0),U,2)
- .I $P(T,"-",2)="EX" S %=$P(BGPALLED(X),U)_U_T Q
- .S S=$P(T,"-",1)
- .S S=$$ICDDX^BGP7UTL2(S)
- .I $P(S,U,1)'="-1",$$ICD^BGP7UTL2($P(S,U,1),$O(^ATXAX("B","BGP EXERCISE COUNSELING DXS",0)),9) S %=$P(BGPALLED(X),U)_U_T Q
- .S S=$P(T,"-",1),S=$$CPT^ICPTCOD(S)
- .I $P(S,U,1)'="-1",$$ICD^BGP7UTL2($P(S,U,1),$O(^ATXAX("B","BGP CPT PHYSICAL ACTIVITY",0)),1) S %=$P(BGPALLED(X),U)_U_"EDUC: "_T Q
- I %]"" Q %
- Q ""
- EAPT(P,BDATE,EDATE,BGPDAYS,BGPGAP,BGPDAYS1) ;EP
- ;get all ANTIDEPRESSANTS
- K ^TMP($J,"MEDS")
- K BGPZ,M
- S (G,N,Y,X,T,T1,T2,M,K,S,C,R,A)=""
- S K=0
- S Y="^TMP($J,""MEDS"",",X=P_"^ALL MED;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
- S T=$O(^ATXAX("B","BGP HEDIS ANTIDEPRESSANT MEDS",0))
- S T2=$O(^ATXAX("B","BGP HEDIS ANTIDEPRESSANT VA CLASS",0))
- S X=0 F S X=$O(^TMP($J,"MEDS",X)) Q:X'=+X S Y=+$P(^TMP($J,"MEDS",X),U,4) D
- .Q:'$D(^AUPNVMED(Y,0))
- .S V=$P(^AUPNVMED(Y,0),U,3)
- .Q:'$D(^AUPNVSIT(V,0))
- .S G=0
- .S D=$P(^AUPNVMED(Y,0),U)
- .I T,$D(^ATXAX(T,21,"B",D)) S G=1 G EAPT1
- .S C=$P($G(^PSDRUG(D,0)),U,2)
- .I C]"",T2,$D(^ATXAX(T2,21,"B",C)) S G=1 G EAPT1
- .Q:'G
- EAPT1 .;
- .S J=$P(^AUPNVMED(Y,0),U,8)
- .S S=$$DAYS^BGP7D82(Y,V,EDATE)
- .S K=S+K ;TOTAL DAYS SUPPLY
- .I R]"" S R=R_";"
- .S R=R_$$DATE^BGP7UTL($P($P(^AUPNVSIT(V,0),U),"."))_"("_S_")"
- .S F=$P($P(^AUPNVSIT(V,0),U),".")
- .S A=$$FMADD^XLFDT(F,$P(^AUPNVMED(Y,0),U,7))
- .I J]"",J<A S A=J
- .S M(F)=A ;$S(J:J,1:$$FMADD^XLFDT(F,$P(^AUPNVMED(Y,0),U,7)))
- ;I K>83 S BGPREG=1_U_Q 1_U_" total days beta blocker: "_K
- GAP ;now FIGURE OUT GAP DAYS
- S G=0 ;gap days
- S B=0 F S B=$O(M(B)) Q:B'=+B S E=M(B) D
- .S Y=$O(M(B)) ;NEXT BEGINNING
- .;I Y="" S Y=$$FMADD^XLFDT(BDATE,BGPDAYS1)
- .I Y="" Q
- .I Y>EDATE Q
- .S Z=$$FMDIFF^XLFDT(Y,E)
- .I Z>0 S G=Z+G
- .Q
- I G>BGPGAP!(K<BGPDAYS) Q 0_U_R_U_"DAYS="_K_", GAP="_G
- Q 1_U_R_U_"DAYS="_K_", GAP="_G
- BGP7D52 ; IHS/CMI/LAB - measure 31 ;
- +1 ;;17.1;IHS CLINICAL REPORTING;;MAY 10, 2017;Build 29
- +2 ;
- WASS ;
- +1 SET (BGPN1,BGPN2,BGPN3,BGPN4,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5)=0
- +2 NEW BGPBMI,BGPNUTR,BGPPHY
- +3 ;must be active clinical
- IF 'BGPACTCL
- SET BGPSTOP=1
- QUIT
- +4 ;age at end must be 3 or older
- IF BGPAGEE<3
- QUIT
- +5 SET BGPD1=1
- +6 IF BGPAGEE>2
- IF BGPAGEE<12
- SET BGPD2=1
- +7 IF BGPAGEE>11
- IF BGPAGEE<18
- SET BGPD3=1
- +8 IF BGPAGEE>17
- SET BGPD4=1
- +9 IF BGPAGEE>2
- IF BGPAGEE<18
- SET BGPD5=1
- +10 SET BGPBMI=$$BMI^BGP7D6(DFN,BGPEDATE,BGPAGEE)
- +11 IF BGPBMI=""
- SET BGPBMI=$$LASTDX^BGP7UTL1(DFN,"BGP BMI DXS",BGPBDATE,BGPEDATE)
- IF BGPBMI
- SET BGPBMI=$PIECE(BGPBMI,U,2)
- +12 SET BGPN2=$SELECT(BGPBMI]"":1,1:0)
- +13 SET BGPNUTR=$$NUTR(DFN,BGPBDATE,BGPEDATE)
- SET BGPN3=$SELECT(BGPNUTR]"":1,1:0)
- +14 SET BGPPHY=$$PHY(DFN,BGPBDATE,BGPEDATE)
- SET BGPN4=$SELECT(BGPPHY]"":1,1:0)
- +15 IF BGPN2
- IF BGPN3
- IF BGPN4
- SET BGPN1=1
- +16 SET BGPVALUE="AC|||"
- +17 SET N=""
- +18 IF BGPN1
- SET N="COMP ASSESS"
- +19 IF BGPN2
- Begin DoDot:1
- +20 IF N]""
- SET N=N_"; "
- +21 SET N=N_"BMI: "_$SELECT('$EXTRACT(BGPBMI):BGPBMI,1:$JUSTIFY(BGPBMI,5,2))
- End DoDot:1
- +22 IF BGPN3
- Begin DoDot:1
- +23 IF N]""
- SET N=N_"; "
- +24 SET N=N_"NUTR: "_$$DATE^BGP7UTL($PIECE(BGPNUTR,U))_" "_$PIECE(BGPNUTR,U,2)
- End DoDot:1
- +25 IF BGPN4
- Begin DoDot:1
- +26 IF N]""
- SET N=N_"; "
- +27 SET N=N_"PHY: "_$$DATE^BGP7UTL($PIECE(BGPPHY,U))_" "_$PIECE(BGPPHY,U,2)
- End DoDot:1
- +28 SET BGPVALUE=BGPVALUE_N
- +29 SET BGPVALUD=BGPVALUE
- +30 QUIT
- +31 ;
- NUTR(P,BDATE,EDATE) ;EP
- +1 NEW BGPG,X,BGPALLED,Y,E,D,T,%,S
- +2 SET X=P_"^LAST DX [BGP DIETARY SURVEILLANCE DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
- SET E=$$START1^APCLDF(X,"BGPG(")
- +3 IF $DATA(BGPG(1))
- QUIT $PIECE(BGPG(1),U)_U_"DX "_$PIECE(BGPG(1),U,2)
- +4 SET BGPG=$$CPT^BGP7DU(P,BDATE,EDATE,$ORDER(^ATXAX("B","BGP CPT NUTRITION COUNSELING",0)),5)
- +5 ;BGPG
- IF BGPG
- QUIT $PIECE(BGPG,U,1)_U_"CPT "_$PIECE(BGPG,U,2)
- +6 SET Y="BGPALLED("
- +7 SET X=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
- SET E=$$START1^APCLDF(X,Y)
- +8 SET (X,D)=0
- SET %=""
- SET T=""
- FOR
- SET X=$ORDER(BGPALLED(X))
- IF X'=+X!(%]"")
- QUIT
- Begin DoDot:1
- +9 SET T=$PIECE(^AUPNVPED(+$PIECE(BGPALLED(X),U,4),0),U)
- +10 IF 'T
- QUIT
- +11 IF '$DATA(^AUTTEDT(T,0))
- QUIT
- +12 SET T=$PIECE(^AUTTEDT(T,0),U,2)
- +13 IF $PIECE(T,"-",2)="N"!($PIECE(T,"-",2)="DT")!($PIECE(T,"-",2)="MNT")
- SET %=$PIECE(BGPALLED(X),U)_U_"EDUC: "_T
- QUIT
- +14 SET S=$PIECE(T,"-",1)
- +15 SET S=$$ICDDX^BGP7UTL2(S)
- +16 IF $PIECE(S,U,1)'="-1"
- IF $$ICD^BGP7UTL2($PIECE(S,U,1),$ORDER(^ATXAX("B","BGP DIETARY SURVEILLANCE DXS",0)),9)
- SET %=$PIECE(BGPALLED(X),U)_U_"EDUC: "_T
- QUIT
- +17 SET S=$PIECE(T,"-",1)
- SET S=$$CPT^ICPTCOD(S)
- +18 IF $PIECE(S,U,1)'="-1"
- IF $$ICD^BGP7UTL2($PIECE(S,U,1),$ORDER(^ATXAX("B","BGP CPT NUTRITION COUNSELING",0)),1)
- SET %=$PIECE(BGPALLED(X),U)_U_"EDUC: "_T
- QUIT
- End DoDot:1
- +19 IF %]""
- QUIT %
- +20 QUIT ""
- PHY(P,BDATE,EDATE) ;EP
- +1 NEW BGPG,X,E,BGPALLED,T,%,D
- +2 SET X=P_"^LAST DX [BGP EXERCISE COUNSELING DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
- SET E=$$START1^APCLDF(X,"BGPG(")
- +3 IF $DATA(BGPG(1))
- QUIT $PIECE(BGPG(1),U)_U_"DX "_$PIECE(BGPG(1),U,2)
- +4 SET BGPG=$$CPT^BGP7DU(P,BDATE,EDATE,$ORDER(^ATXAX("B","BGP CPT PHYSICAL ACTIVITY",0)),5)
- +5 ;BGPG
- IF BGPG
- QUIT $PIECE(BGPG,U,1)_U_"CPT "_$PIECE(BGPG,U,2)
- +6 SET Y="BGPALLED("
- +7 SET X=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
- SET E=$$START1^APCLDF(X,Y)
- +8 SET (X,D)=0
- SET %=""
- SET T=""
- FOR
- SET X=$ORDER(BGPALLED(X))
- IF X'=+X!(%]"")
- QUIT
- Begin DoDot:1
- +9 SET T=$PIECE(^AUPNVPED(+$PIECE(BGPALLED(X),U,4),0),U)
- +10 IF 'T
- QUIT
- +11 IF '$DATA(^AUTTEDT(T,0))
- QUIT
- +12 SET T=$PIECE(^AUTTEDT(T,0),U,2)
- +13 IF $PIECE(T,"-",2)="EX"
- SET %=$PIECE(BGPALLED(X),U)_U_T
- QUIT
- +14 SET S=$PIECE(T,"-",1)
- +15 SET S=$$ICDDX^BGP7UTL2(S)
- +16 IF $PIECE(S,U,1)'="-1"
- IF $$ICD^BGP7UTL2($PIECE(S,U,1),$ORDER(^ATXAX("B","BGP EXERCISE COUNSELING DXS",0)),9)
- SET %=$PIECE(BGPALLED(X),U)_U_T
- QUIT
- +17 SET S=$PIECE(T,"-",1)
- SET S=$$CPT^ICPTCOD(S)
- +18 IF $PIECE(S,U,1)'="-1"
- IF $$ICD^BGP7UTL2($PIECE(S,U,1),$ORDER(^ATXAX("B","BGP CPT PHYSICAL ACTIVITY",0)),1)
- SET %=$PIECE(BGPALLED(X),U)_U_"EDUC: "_T
- QUIT
- End DoDot:1
- +19 IF %]""
- QUIT %
- +20 QUIT ""
- EAPT(P,BDATE,EDATE,BGPDAYS,BGPGAP,BGPDAYS1) ;EP
- +1 ;get all ANTIDEPRESSANTS
- +2 KILL ^TMP($JOB,"MEDS")
- +3 KILL BGPZ,M
- +4 SET (G,N,Y,X,T,T1,T2,M,K,S,C,R,A)=""
- +5 SET K=0
- +6 SET Y="^TMP($J,""MEDS"","
- SET X=P_"^ALL MED;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE)
- SET E=$$START1^APCLDF(X,Y)
- +7 SET T=$ORDER(^ATXAX("B","BGP HEDIS ANTIDEPRESSANT MEDS",0))
- +8 SET T2=$ORDER(^ATXAX("B","BGP HEDIS ANTIDEPRESSANT VA CLASS",0))
- +9 SET X=0
- FOR
- SET X=$ORDER(^TMP($JOB,"MEDS",X))
- IF X'=+X
- QUIT
- SET Y=+$PIECE(^TMP($JOB,"MEDS",X),U,4)
- Begin DoDot:1
- +10 IF '$DATA(^AUPNVMED(Y,0))
- QUIT
- +11 SET V=$PIECE(^AUPNVMED(Y,0),U,3)
- +12 IF '$DATA(^AUPNVSIT(V,0))
- QUIT
- +13 SET G=0
- +14 SET D=$PIECE(^AUPNVMED(Y,0),U)
- +15 IF T
- IF $DATA(^ATXAX(T,21,"B",D))
- SET G=1
- GOTO EAPT1
- +16 SET C=$PIECE($GET(^PSDRUG(D,0)),U,2)
- +17 IF C]""
- IF T2
- IF $DATA(^ATXAX(T2,21,"B",C))
- SET G=1
- GOTO EAPT1
- +18 IF 'G
- QUIT
- EAPT1 ;
- +1 SET J=$PIECE(^AUPNVMED(Y,0),U,8)
- +2 SET S=$$DAYS^BGP7D82(Y,V,EDATE)
- +3 ;TOTAL DAYS SUPPLY
- SET K=S+K
- +4 IF R]""
- SET R=R_";"
- +5 SET R=R_$$DATE^BGP7UTL($PIECE($PIECE(^AUPNVSIT(V,0),U),"."))_"("_S_")"
- +6 SET F=$PIECE($PIECE(^AUPNVSIT(V,0),U),".")
- +7 SET A=$$FMADD^XLFDT(F,$PIECE(^AUPNVMED(Y,0),U,7))
- +8 IF J]""
- IF J<A
- SET A=J
- +9 ;$S(J:J,1:$$FMADD^XLFDT(F,$P(^AUPNVMED(Y,0),U,7)))
- SET M(F)=A
- End DoDot:1
- +10 ;I K>83 S BGPREG=1_U_Q 1_U_" total days beta blocker: "_K
- GAP ;now FIGURE OUT GAP DAYS
- +1 ;gap days
- SET G=0
- +2 SET B=0
- FOR
- SET B=$ORDER(M(B))
- IF B'=+B
- QUIT
- SET E=M(B)
- Begin DoDot:1
- +3 ;NEXT BEGINNING
- SET Y=$ORDER(M(B))
- +4 ;I Y="" S Y=$$FMADD^XLFDT(BDATE,BGPDAYS1)
- +5 IF Y=""
- QUIT
- +6 IF Y>EDATE
- QUIT
- +7 SET Z=$$FMDIFF^XLFDT(Y,E)
- +8 IF Z>0
- SET G=Z+G
- +9 QUIT
- End DoDot:1
- +10 IF G>BGPGAP!(K<BGPDAYS)
- QUIT 0_U_R_U_"DAYS="_K_", GAP="_G
- +11 QUIT 1_U_R_U_"DAYS="_K_", GAP="_G