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

BGP1D72.m

Go to the documentation of this file.
  1. BGP1D72 ; IHS/CMI/LAB - measure 31 ;
  1. ;;11.1;IHS CLINICAL REPORTING SYSTEM;;JUN 27, 2011;Build 33
  1. ;
  1. ;
  1. IHEDBBH ;EP
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. S BGPVALUE="" K BGPBETA
  1. I BGPAGEB<36 S BGPSTOP=1 Q
  1. I 'BGPACTUP S BGPSTOP=1 Q
  1. S BGPAMI=$$AMIH(DFN,BGPBDATE,$$FMADD^XLFDT(BGPBDATE,(51*7)))
  1. I '$P(BGPAMI,U) S BGPSTOP=1 Q ;no ami
  1. I $$READM(DFN,$P(BGPAMI,U,4),$P(BGPAMI,U,2)) S BGPSTOP=1 Q
  1. S BGPV=$P(BGPAMI,U,3)
  1. S BGPBETAC=$$BETACONT(DFN,"",$S($P(BGPAMI,U,4)]"":$P(BGPAMI,U,4),1:$P(BGPAMI,U,2)))
  1. I $P(BGPBETAC,U) S BGPSTOP=1 Q ;beta contraindication
  1. S BGPBETAL=$$BETAALG1(DFN,$S($P(BGPAMI,U,4)]"":$P(BGPAMI,U,4),1:$P(BGPAMI,U,2))) ;beta allergy
  1. I $P(BGPBETAL,U) S BGPSTOP=1 Q
  1. I BGPACTCL S BGPD1=1
  1. I BGPACTUP S BGPD2=1
  1. S BGPBETA=$$BETA7(DFN,$$FMADD^XLFDT($P(BGPAMI,U,2),-60),$$FMADD^XLFDT($P(BGPAMI,U,4),7),$P(BGPAMI,U,4))
  1. I $P(BGPBETA,U)=1 S BGPN1=1
  1. S BGPVALUE=$S(BGPRTYPE=3:"",BGPD2:"UP",1:"")_$S(BGPD1:";AC",1:"")_"|||"_$S($P(BGPBETA,U):$P(BGPBETA,U,2)_" "_$P(BGPBETA,U,3),1:"")
  1. K BGPAMI,BGPBETA,BGPBETAC,BGPBETAL
  1. K ^TMP($J)
  1. Q
  1. IHEDPBH ;EP
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. K BGPBETA,BGPAMI,BGPV,BGPBETAC,BGPBETAL,BGPVALUE
  1. I BGPAGEB<18 S BGPSTOP=1 Q
  1. I 'BGPACTUP S BGPSTOP=1 Q
  1. S BGPAMI=$$AMI(DFN,$$FMADD^XLFDT(BGPBDATE,-180),$$FMADD^XLFDT(BGPBDATE,180))
  1. I '$P(BGPAMI,U) S BGPSTOP=1 Q
  1. S BGPBETAC=$$BETACONT(DFN,"",$S($P(BGPAMI,U,4)]"":$P(BGPAMI,U,4),1:$P(BGPAMI,U,2)))
  1. I $P(BGPBETAC,U) S BGPSTOP=1 Q ;beta contraindication
  1. S BGPBETAL=$$BETAALG1(DFN,$S($P(BGPAMI,U,4)]"":$P(BGPAMI,U,4),1:$P(BGPAMI,U,2))) ;beta allergy
  1. I $P(BGPBETAL,U) S BGPSTOP=1 Q
  1. I BGPACTCL S BGPD1=1
  1. I BGPACTUP S BGPD2=1
  1. S BGPBETA=$$BETA(DFN,$P(BGPAMI,U,2),$P(BGPAMI,U,4))
  1. I $P(BGPBETA,U)=1 S BGPN1=1
  1. S BGPVALUE=$S(BGPRTYPE=3:"",BGPD2:"UP")_$S(BGPD1:";AC",1:"")_"|||"_$S($P(BGPBETA,U):"YES, beta blocker 135+ "_$P(BGPBETA,U,2),1:"")
  1. K BGPAMI,BGPBETA,BGPBETAC,BGPBETAL
  1. K ^TMP($J)
  1. Q
  1. IHEDCHM ;EP
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. I BGPAGEB<18 S BGPSTOP=1 Q
  1. I BGPAGEB>75 S BGPSTOP=1 Q
  1. I 'BGPACTUP S BGPSTOP=1 Q
  1. S BGPAMI=$$AMIO(DFN,BGPBDATE,BGPEDATE) I '$P(BGPAMI,U) S BGPSTOP=1 Q
  1. I BGPACTUP S BGPD2=1
  1. I BGPACTCL S BGPD1=1
  1. I BGPRTYPE=3,'BGPD1 S BGPSTOP=1 Q
  1. S BGPLDL=$$LDL^BGP1D2(DFN,BGPBDATE,BGPEDATE,$S(BGPRTYPE=3:1,1:""))
  1. I $P(BGPLDL,U)=1 S BGPN1=1
  1. I $P(BGPLDL,U,3)]"",BGPRTYPE'=3 D
  1. .S V=$P(BGPLDL,U,3)
  1. .I V["CPT" S:V["3048F" BGPN2=1 Q
  1. .S V=+V
  1. .I 'V Q
  1. .I V]"",+V'>100 S BGPN2=1
  1. .I +V>100,+V<131 S BGPN3=1
  1. .I +V>130 S BGPN4=1
  1. I $P(BGPLDL,U,3)]"",BGPRTYPE=3 D ;HEDIS ONLY
  1. .S V=$P(BGPLDL,U,3)
  1. .I V["CPT" S:V["3048F" BGPN2=1 Q
  1. .S V=+V
  1. .I 'V Q
  1. .I V]"",+V<100 S BGPN2=1
  1. S BGPXPBV=$P(BGPLDL,U,3)
  1. S V=$S(BGPRTYPE=3:"",1:"UP")_$S(BGPD1:",AC",1:"")_","_$P(BGPAMI,U,2)_"|||"
  1. I $P(BGPLDL,U) S V=V_$$DATE^BGP1UTL($P(BGPLDL,U,2))_" LDL: "_$P(BGPLDL,U,3)
  1. S BGPVALUE=V
  1. K V,BGPAMI,BGPLDL,D
  1. K ^TMP($J)
  1. Q
  1. CHOL(P,BDATE,EDATE) ;
  1. K BGPG
  1. S (Q,R,S,M,N,O,B,D,E,L,G)=""
  1. S R=$O(^ATXLAB("B","DM AUDIT CHOLESTEROL TAX",0))
  1. S N=$O(^ATXAX("B","BGP TOTAL CHOLESTEROL LOINC",0))
  1. S B=9999999-BDATE,E=9999999-EDATE S D=E-1 F S D=$O(^AUPNVLAB("AE",P,D)) Q:D'=+D!(D>B)!(G]"") D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!(G]"") D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!(G]"") D
  1. ...Q:'$D(^AUPNVLAB(X,0))
  1. ...I R,$P(^AUPNVLAB(X,0),U),$D(^ATXLAB(R,21,"B",$P(^AUPNVLAB(X,0),U))) S G=(9999999-D)_"^CHOL"_"^"_$P(^AUPNVLAB(X,0),U,4) Q
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...I $$LOINC(J,N) S G=(9999999-D)_"^CHOL LOINC"_"^"_$P(^AUPNVLAB(X,0),U,4) Q
  1. ...Q
  1. I G]"" Q G
  1. S E=+$$CODEN^ICPTCOD(82465),%=$$CPTI^BGP1DU(P,BDATE,EDATE,E) I %]"" Q $P(%,U,2)_"^CPT 82465"
  1. S E=+$$CODEN^ICPTCOD(82465),%=$$TRANI^BGP1DU(P,BDATE,EDATE,E) I %]"" Q $P(%,U,2)_"^TRAN 82465"
  1. Q ""
  1. LOINC(A,B) ;
  1. NEW %
  1. S %=$P($G(^LAB(95.3,A,9999999)),U,2)
  1. I %]"",$D(^ATXAX(B,21,"B",%)) Q 1
  1. S %=$P($G(^LAB(95.3,A,0)),U)_"-"_$P($G(^LAB(95.3,A,0)),U,15)
  1. I $D(^ATXAX(B,21,"B",%)) Q 1
  1. Q ""
  1. AMIO(P,BDATE,EDATE) ;
  1. NEW BGPG
  1. K BGPG
  1. S Y="BGPG("
  1. S X=P_"^LAST DX [BGP AMI DXS (HEDIS);DURING "_$$FMADD^XLFDT(BDATE,-365)_"-"_$$FMADD^XLFDT(BDATE,-60) S E=$$START1^APCLDF(X,Y)
  1. I $D(BGPG(1)) Q 1_U_"AMI DX" ;has a dx
  1. ;check for procedure in BGP CABG PROCS
  1. S BGPG=$$LASTPRC^BGP1UTL1(P,"BGP CABG PROCS",$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60))
  1. I $P(BGPG,U) Q 1_U_"CABG PROC"
  1. ;now check cpts
  1. S BGPG=$$CPT^BGP1DU(P,$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60),$O(^ATXAX("B","BGP CABG CPTS",0)),6)
  1. I $P(BGPG,U) Q 1_U_"CABG CPT"
  1. S BGPG=$$TRAN^BGP1DU(P,$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60),$O(^ATXAX("B","BGP CABG CPTS",0)),6)
  1. I $P(BGPG,U) Q 1_U_"CABG TRAN"
  1. ;check for procedure in BGP PTCA PROCS
  1. S BGPG=$$LASTPRC^BGP1UTL1(P,"BGP PCI CM PROCS",$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60))
  1. I $P(BGPG,U) Q 1_U_"PCI PROC"
  1. ;now check cpts
  1. S BGPG=$$CPT^BGP1DU(P,$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60),$O(^ATXAX("B","BGP PCI CM CPTS",0)),6)
  1. I $P(BGPG,U) Q 1_U_"PCI CPT"
  1. S BGPG=$$TRAN^BGP1DU(P,$$FMADD^XLFDT(BDATE,-365),$$FMADD^XLFDT(BDATE,-60),$O(^ATXAX("B","BGP PCI CM CPTS",0)),6)
  1. I $P(BGPG,U) Q 1_U_"PCI TRAN"
  1. ;now check IVD dxs
  1. S BGPG(1)=$$LASTDX^BGP1UTL1(P,"BGP IVD DXS",BDATE,EDATE)
  1. S BGPG(2)=$$LASTDX^BGP1UTL1(P,"BGP IVD DXS",$$FMADD^XLFDT(BDATE,-365),BDATE)
  1. I $P(BGPG(1),U),$P(BGPG(2),U) Q 1_U_"IVD DXS"
  1. Q ""
  1. AMI(P,BDATE,EDATE) ;
  1. ;look for any H with AMI discharge dx
  1. K ^TMP($J,"A"),G
  1. S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
  1. I '$D(^TMP($J,"A",1)) Q 0 ;no HOSP
  1. S T=$O(^ATXAX("B","BGP AMI DXS (HEDIS)",0))
  1. S (BGPX,G,M,D,E)=0 F S BGPX=$O(^TMP($J,"A",BGPX)) Q:BGPX'=+BGPX S V=$P(^TMP($J,"A",BGPX),U,5) D
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:'$P(^AUPNVSIT(V,0),U,9)
  1. .Q:$P(^AUPNVSIT(V,0),U,11)
  1. .;Q:$P(^AUPNVSIT(V,0),U,6)'=DUZ(2)
  1. .Q:"AOSH"'[$P(^AUPNVSIT(V,0),U,7)
  1. .S H=0
  1. .I $P(^AUPNVSIT(V,0),U,7)="H" S H=$O(^AUPNVINP("AD",V,0)) D Q:'B
  1. ..S B=0
  1. ..I 'H Q
  1. ..Q:$$AMA(H) ;ama
  1. ..Q:$$TRANS(H) ;transferred
  1. ..Q:$$EXPIRED(H) ;died
  1. ..S B=1
  1. .S (D,Y)=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(D) I $D(^AUPNVPOV(Y,0)) S %=$P(^AUPNVPOV(Y,0),U) I $$ICD^ATXCHK(%,T,9) S D=1
  1. .I D S G=G+1,G($P($P(^AUPNVSIT(V,0),U),"."))=V ;got one visit
  1. I 'G Q G
  1. S D=$O(G(0)),V=G(D),H=$O(^AUPNVINP("AD",V,0))
  1. Q 1_U_$O(G(0))_U_V_U_$S(H:$P($P(^AUPNVINP(H,0),U),"."),1:"")_U_H
  1. ;
  1. AMIH(P,BDATE,EDATE) ;
  1. ;look for any H with AMI discharge dx
  1. K ^TMP($J,"A"),G
  1. S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
  1. I '$D(^TMP($J,"A",1)) Q 0 ;no HOSP
  1. S T=$O(^ATXAX("B","BGP AMI IND 30",0))
  1. S (BGPX,G,M,D,E)=0 F S BGPX=$O(^TMP($J,"A",BGPX)) Q:BGPX'=+BGPX S V=$P(^TMP($J,"A",BGPX),U,5) D
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:'$P(^AUPNVSIT(V,0),U,9)
  1. .Q:$P(^AUPNVSIT(V,0),U,11)
  1. .Q:$P(^AUPNVSIT(V,0),U,7)'="H"
  1. .S H=0
  1. .S H=$O(^AUPNVINP("AD",V,0)) D Q:'B
  1. ..S B=0
  1. ..I 'H Q
  1. ..Q:$P($P(^AUPNVINP(H,0),U),".")>EDATE
  1. ..Q:$$AMA(H)
  1. ..Q:$$TRANS(H)
  1. ..Q:$$EXPIRED(H)
  1. ..S B=1
  1. .S (D,Y)=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(D) I $D(^AUPNVPOV(Y,0)) S %=$P(^AUPNVPOV(Y,0),U) I $$ICD^ATXCHK(%,T,9) S D=1
  1. .I D S G=G+1,G($P($P(^AUPNVSIT(V,0),U),"."))=V ;got one visit
  1. I 'G Q G
  1. S D=$O(G(0)),V=G(D),H=$O(^AUPNVINP("AD",V,0))
  1. Q 1_U_$O(G(0))_U_V_U_$S(H:$P($P(^AUPNVINP(H,0),U),"."),1:"")_U_H
  1. READM(P,D,PV) ;EP
  1. S ED=$$FMADD^XLFDT(D,7),G=0
  1. S X=0,V=0 F S X=$O(^AUPNVSIT("AAH",P,X)) Q:X'=+X D
  1. .S V=0 F S V=$O(^AUPNVSIT("AAH",P,X,V)) Q:V'=+V D
  1. ..Q:PV=V
  1. ..S E=$P($P($G(^AUPNVSIT(V,0)),U),".")
  1. ..Q:E<D
  1. ..Q:E>ED
  1. ..S G=1
  1. Q G
  1. BETACONT(P,BDATE,EDATE) ;EP BETA BLOCKER CONTRAINDICATION
  1. I $G(BDATE)="" S BDATE=$$DOB^AUPNPAT(P)
  1. K BGPG,BGPD
  1. S Y="BGPG("
  1. S X=P_"^ALL DX [BGP ASTHMA DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. S (X,G)=0 F S X=$O(BGPG(X)) Q:X'=+X S BGPD($P(BGPG(X),U))=""
  1. S (X,G)=0 F S X=$O(BGPD(X)) Q:X'=+X S G=G+1
  1. I G>1 Q 1_U_"2 dx asthma contra" ;has 2 dx of asthma so contraindication
  1. S BGPG=$$LASTDX^BGP1UTL1(P,"BGP HYPOTENSION DXS",$$DOB^AUPNPAT(P),EDATE)
  1. I $P(BGPG,U)=1 Q 1_U_"hypotension dx contra" ;has hypotension dx
  1. S BGPG=$$LASTDX^BGP1UTL1(P,"BGP CMS 2/3 HEART BLOCK DXS",$$DOB^AUPNPAT(P),EDATE)
  1. I $P(BGPG,U)=1 Q 1_U_"heart blk contra" ;has heart block dx
  1. K BGPG,BGPD
  1. S Y="BGPG("
  1. S X=P_"^ALL DX [BGP COPD DXS BB CONT;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. S (X,G)=0 F S X=$O(BGPG(X)) Q:X'=+X S BGPD($P(BGPG(X),U))=""
  1. S (X,G)=0 F S X=$O(BGPD(X)) Q:X'=+X S G=G+1
  1. I G>1 Q 1_U_"copd dx contra"
  1. Q 0
  1. AMA(H) ;EP
  1. S X=$P(^AUPNVINP(H,0),U,6)
  1. I X="" Q 0
  1. S X=$P($G(^DG(405.1,X,"IHS")),U,1)
  1. I X=3 Q 1
  1. Q 0
  1. EXPIRED(H) ;EP
  1. S X=$P(^AUPNVINP(H,0),U,6)
  1. I X="" Q 0
  1. S X=$P($G(^DG(405.1,X,"IHS")),U,1)
  1. I X=4!(X=5)!(X=6)!(X=7) Q 1
  1. Q 0
  1. DSCH(H) ;
  1. Q $P($P(^AUPNVINP(H,0),U),".")
  1. TRANS(H) ;EP
  1. S X=$P(^AUPNVINP(H,0),U,6)
  1. I X="" Q 0
  1. S X=$P($G(^DG(405.1,X,"IHS")),U,1)
  1. I X=2 Q 1
  1. Q 0
  1. BETA(P,BGPADMD,BGPDD) ;EP
  1. ;get all beta blockers
  1. I BGPADMD="" Q ""
  1. K ^TMP($J,"MEDS")
  1. S BGPC1=0 K BGPZ
  1. I $G(BGPDD)="" S BGPDD=BGPADMD
  1. S (G,N,Y,X,T,T1,T2,M,K,S,C,K,R)=""
  1. S Y="^TMP($J,""MEDS"",",X=P_"^ALL MED;DURING "_$$FMTE^XLFDT(BGPADMD)_"-"_$$FMTE^XLFDT($$FMADD^XLFDT(BGPDD,180)) S E=$$START1^APCLDF(X,Y)
  1. S T=$O(^ATXAX("B","BGP HEDIS BETA BLOCKER MEDS",0))
  1. S T1=$O(^ATXAX("B","BGP HEDIS BETA BLOCKER NDC",0))
  1. S X=0 F S X=$O(^TMP($J,"MEDS",X)) Q:X'=+X S Y=+$P(^TMP($J,"MEDS",X),U,4) D
  1. .Q:'$D(^AUPNVMED(Y,0))
  1. .Q:$$UP^XLFSTR($P($G(^AUPNVMED(Y,11)),U))["RETURNED TO STOCK"
  1. .S G=0
  1. .S D=$P(^AUPNVMED(Y,0),U)
  1. .I T,$D(^ATXAX(T,21,"B",D)) S G=1 G BETA1
  1. .S C=$P($G(^PSDRUG(D,0)),U,2)
  1. .S N=$P($G(^PSDRUG(D,2)),U,4)
  1. .I N]"",T1,$D(^ATXAX(T1,21,"B",N)) S G=1
  1. .Q:'G
  1. BETA1 .;
  1. .S J=$P(^AUPNVMED(Y,0),U,8)
  1. .S V=$P(^AUPNVMED(Y,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .I J]"" S S=$$FMDIFF^XLFDT(J,$P($P(^AUPNVSIT(V,0),U),"."))
  1. .I J="" S S=$P(^AUPNVMED(Y,0),U,7)
  1. .S K=S+K
  1. .I R]"" S R=R_";"
  1. .S R=R_$$DATE^BGP1UTL($P($P(^AUPNVSIT(V,0),U),"."))_"("_S_")"
  1. I K>134 Q 1_U_" total days beta blocker: "_K
  1. BETAADM ;now add in any before admission
  1. K ^TMP($J,"MEDS")
  1. S Y="^TMP($J,""MEDS"",",X=P_"^LAST 30 MED;DURING "_$$FMTE^XLFDT($$DOB^AUPNPAT(P))_"-"_$$FMTE^XLFDT($$FMADD^XLFDT(BGPADMD,-1)) S E=$$START1^APCLDF(X,Y)
  1. S X=0 F S X=$O(^TMP($J,"MEDS",X)) Q:X'=+X S Y=+$P(^TMP($J,"MEDS",X),U,4) D
  1. .Q:'$D(^AUPNVMED(Y,0))
  1. .Q:$$UP^XLFSTR($P($G(^AUPNVMED(Y,11)),U))["RETURNED TO STOCK"
  1. .S G=0
  1. .S D=$P(^AUPNVMED(Y,0),U)
  1. .I T,$D(^ATXAX(T,21,"B",D)) S G=1 G BETA2
  1. .S C=$P($G(^PSDRUG(D,0)),U,2)
  1. .I C]"",T2,$D(^ATXAX(T2,21,"B",C)) S G=1 G BETA2
  1. .S N=$P($G(^PSDRUG(D,2)),U,4)
  1. .I N]"",T1,$D(^ATXAX(T1,21,"B",N)) S G=1
  1. .Q:'G
  1. BETA2 .;
  1. .S J=$P(^AUPNVMED(Y,0),U,8)
  1. .S V=$P(^AUPNVMED(Y,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .;S IS DAYS SUPPLY, J IS DATE DISCONTINUED
  1. .Q:J]"" ;don't use if discontinued
  1. .S D=$$FMDIFF^XLFDT(BGPDD,$P($P(^AUPNVSIT(V,0),U),"."))
  1. .S S=$P(^AUPNVMED(Y,0),U,7)
  1. .S S=S-D ;subtract the number of days used
  1. .S:S<0 S=0
  1. .S K=S+K ;TOTAL DAYS SUPPLY
  1. .I R]"" S R=R_";"
  1. .S R=R_$$DATE^BGP1UTL($P($P(^AUPNVSIT(V,0),U),"."))_"("_S_")"
  1. I K>134 Q 1_U_" total days beta blocker: "_K
  1. Q 0_U_R_" total days beta blocker: "_K
  1. BETA7(P,BDATE,EDATE,BGPDD) ;
  1. ;see if there ACTIVE PRESCRIPTION of beta blockers
  1. K ^TMP($J,"MEDS")
  1. S BGPG=0
  1. S Y="^TMP($J,""MEDS"",",X=P_"^ALL MED;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. S T=$O(^ATXAX("B","BGP HEDIS BETA BLOCKER MEDS",0))
  1. S T1=$O(^ATXAX("B","BGP HEDIS BETA BLOCKER NDC",0))
  1. S X=0 F S X=$O(^TMP($J,"MEDS",X)) Q:X'=+X!(BGPG) S Y=+$P(^TMP($J,"MEDS",X),U,4) D
  1. .Q:'$D(^AUPNVMED(Y,0))
  1. .Q:$$UP^XLFSTR($P($G(^AUPNVMED(Y,11)),U))["RETURNED TO STOCK"
  1. .S G=0
  1. .S D=$P(^AUPNVMED(Y,0),U)
  1. .I T,$D(^ATXAX(T,21,"B",D)) S G=1 G BETA8
  1. .S C=$P($G(^PSDRUG(D,0)),U,2)
  1. .S N=$P($G(^PSDRUG(D,2)),U,4)
  1. .I N]"",T1,$D(^ATXAX(T1,21,"B",N)) S G=1
  1. .Q:'G
  1. BETA8 .;
  1. .S J=$P(^AUPNVMED(Y,0),U,8)
  1. .S V=$P(^AUPNVMED(Y,0),U,3)
  1. .Q:'V
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .I J]"" Q:J<EDATE ;discontinued W/IN 7 days of discharge
  1. .S S=$P(^AUPNVMED(Y,0),U,7)
  1. .S Z=$$FMDIFF^XLFDT(EDATE,$P($P(^AUPNVSIT(V,0),U),"."))
  1. .I S>Z S BGPG=1_U_$$DATE^BGP1UTL($P($P(^AUPNVSIT(V,0),U),"."))_U_$P(^PSDRUG(D,0),U)
  1. .Q
  1. Q BGPG
  1. BETAALG1(P,BGPD) ;EP - Beta Blocker allergy
  1. S BGPC=0
  1. BETAPOV ;
  1. K BGPG,BGPY S Y="BGPG(",X=P_"^ALL DX [BGP ASA ALLERGY 995.0-995.3;DURING "_$$FMTE^XLFDT($$DOB^AUPNPAT(P))_"-"_$$FMTE^XLFDT(BGPD) S E=$$START1^APCLDF(X,Y)
  1. S X=0 F S X=$O(BGPG(X)) Q:X'=+X S Y=+$P(BGPG(X),U,4) D
  1. .S N=$$VAL^XBDIQ1(9000010.07,Y,.04) S N=$$UP^XLFSTR(N)
  1. .I N["BETA BLOCK"!(N["BBLOCK")!(N["B BLOCK") S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(BGPG(X),U))_" ADR POV ["_$P(BGPG(X),U,2)_"]" Q
  1. .S Z=$P(^AUPNVPOV(Y,0),U,9) I Z]"",$P($$ICDDX^ICDCODE(Z),U,2)="E942.0" S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(BGPG(X),U))_" ADR POV ["_$P(BGPG(X),U,2)_" + E942.0]" Q
  1. .S Z=$P(^AUPNVPOV(Y,0),U,18) I Z]"",$P($$ICDDX^ICDCODE(Z),U,2)="E942.0" S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(BGPG(X),U))_" ADR POV ["_$P(BGPG(X),U,2)_" + E942.0]" Q
  1. .S Z=$P(^AUPNVPOV(Y,0),U,19) I Z]"",$P($$ICDDX^ICDCODE(Z),U,2)="E942.0" S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(BGPG(X),U))_" ADR POV ["_$P(BGPG(X),U,2)_" + E942.0]" Q
  1. .Q
  1. I BGPC>0 Q 1_U_BGPY(BGPC)
  1. K BGPG S BGPC=0 S Y="BGPG(",X=P_"^ALL DX V14.8;DURING "_$$FMTE^XLFDT($$DOB^AUPNPAT(DFN))_"-"_$$FMTE^XLFDT(BGPD) S E=$$START1^APCLDF(X,Y)
  1. S X=0 F S X=$O(BGPG(X)) Q:X'=+X S Y=+$P(BGPG(X),U,4) D
  1. .S N=$$VAL^XBDIQ1(9000010.07,Y,.04),N=$$UP^XLFSTR(N)
  1. .I N["BETA BLOCK"!(N["BBLOCK")!(N["B BLOCK") S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(BGPG(X),U))_" ADR POV ["_$P(BGPG(X),U,2)_"] "
  1. I BGPC>0 Q 1_U_BGPY(BGPC)
  1. ;now check problem list for these codes
  1. S BGPC=0
  1. S T="",T=$O(^ATXAX("B","BGP ASA ALLERGY 995.0-995.3",0))
  1. S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
  1. .S I=$P($G(^AUPNPROB(X,0)),U),Y=$P($$ICDDX^ICDCODE(I),U,2)
  1. .S N=$$VAL^XBDIQ1(9000011,X,.05),N=$$UP^XLFSTR(N)
  1. .Q:$P(^AUPNPROB(X,0),U,8)>BGPD
  1. .I Y="V14.8"!($$ICD^ATXCHK(I,T,9)),N["BETA BLOCK"!(N["BBLOCK")!(N["B BLOCK") S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(^AUPNPROB(X,0),U,8))_" ADR Problem List ["_Y_"] "
  1. .Q
  1. I BGPC>0 Q 1_U_BGPY(BGPC)
  1. ;now check allergy tracking
  1. S BGPC=0
  1. S X=0 F S X=$O(^GMR(120.8,"B",P,X)) Q:X'=+X D
  1. .Q:$P($P($G(^GMR(120.8,X,0)),U,4),".")>BGPD ;entered after end date
  1. .S N=$P($G(^GMR(120.8,X,0)),U,2),N=$$UP^XLFSTR(N)
  1. .I N["BETA BLOCK" S BGPC=BGPC+1,BGPY(BGPC)=$$DATE^BGP1UTL($P(^GMR(120.8,X,0),U,4))_" ADR ALLERGY TRACKING "_N
  1. I BGPC>0 Q 1_U_BGPY(BGPC)
  1. Q 0