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

BGP5D75.m

Go to the documentation of this file.
  1. BGP5D75 ; IHS/CMI/LAB - measure 31 ;
  1. ;;15.1;IHS CLINICAL REPORTING;;MAY 06, 2015;Build 143
  1. ;
  1. ;
  1. IAMT ;EP
  1. S (BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPN9,BGPN10,BGPN11,BGPN12,BGPN13,BGPN14,BGPN15,BGPN16,BGPN17)=0
  1. S BGPVALUE="" K BGPBETA
  1. I BGPAGEB<35 S BGPSTOP=1 Q
  1. I 'BGPACTCL 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,3)) S BGPSTOP=1 Q
  1. S BGPV=$P(BGPAMI,U,3)
  1. S BGPD1=1
  1. I $P(^DPT(DFN,0),U,2)="M" S BGPD2=1
  1. I $P(^DPT(DFN,0),U,2)="F" S BGPD3=1
  1. K BGPBETA
  1. S BGPBETA("RX")=$$RX7(DFN,$$FMADD^XLFDT($P(BGPAMI,U,2),-180),$$FMADD^XLFDT($P(BGPAMI,U,4),7),$P(BGPAMI,U,4),$O(^ATXAX("B","BGP HEDIS BETA BLOCKER MEDS",0)),,,$O(^ATXAX("B","BGP HEDIS BETA BLOCKER NDC",0)))
  1. I BGPBETA("RX") S BGPN2=1,BGPN3=0,BGPN4=0
  1. ;I 'BGPN2 S BGPBETA("REF")=$$BETAREF^BGP5D721(DFN,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPBETA("REF") S BGPN3=1
  1. I 'BGPN2 S BGPBETA("CONTRA")=$$BETACONT^BGP5D721(DFN,$$DOB^AUPNPAT(DFN),BGPEDATE,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPBETA("CONTRA") S BGPN4=1 ;beta Contraindication
  1. I 'BGPN2 S BGPBETA("ADR")=$$BETAALG1^BGP5D72(DFN,BGPEDATE) I BGPBETA("ADR") S BGPN4=1
  1. I (BGPN2+BGPN4) S BGPN1=1
  1. ;
  1. K BGPASA
  1. S C=$O(^ATXAX("B","BGP CMS ANTI-PLATELET CLASS",0))
  1. S BGPASA("RX")=$$RX7(DFN,$$FMADD^XLFDT($P(BGPAMI,U,2),-180),$$FMADD^XLFDT($P(BGPAMI,U,4),7),$P(BGPAMI,U,4),$O(^ATXAX("B","DM AUDIT ASPIRIN DRUGS",0)),$O(^ATXAX("B","BGP ANTI-PLATELET DRUGS",0)),,,,C)
  1. I BGPASA("RX") S BGPN6=1
  1. ;I 'BGPN6 S BGPASA("REF")=$$ASAREF^BGP5D721(DFN,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPASA("REF") S BGPN7=1
  1. I 'BGPN6 S BGPASA("CONTRA")=$$ASACONTR(DFN,BGPBDATE,BGPEDATE,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPASA("CONTRA") S BGPN8=1 ;beta Contraindication
  1. I 'BGPN6 S BGPASA("ADR")=$$ASAALLEG^BGP5D721(DFN,BGPEDATE) I BGPASA("ADR") S BGPN8=1
  1. I (BGPN6+BGPN8) S BGPN5=1
  1. K BGPACE
  1. S T=$O(^ATXAX("B","BGP HEDIS ACEI MEDS",0))
  1. S BGPACE("RX")=$$RX7(DFN,$$FMADD^XLFDT($P(BGPAMI,U,2),-180),$$FMADD^XLFDT($P(BGPAMI,U,4),7),$P(BGPAMI,U,4),T,,$O(^ATXAX("B","BGP HEDIS ACEI NDC",0)),$O(^ATXAX("B","BGP HEDIS ARB MEDS",0)),$O(^ATXAX("B","BGP HEDIS ARB NDC",0)))
  1. I BGPACE("RX") S BGPN10=1
  1. ;I 'BGPN10 S BGPACE("REF")=$$ACEREF^BGP5D722(DFN,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPACE("REF") S BGPN11=1
  1. I 'BGPN10 S BGPACE("CONTRA")=$$ACECONT(DFN,$$DOB^AUPNPAT(DFN),BGPEDATE,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7),BGPBDATE) I BGPACE("CONTRA") S BGPN12=1 ;beta Contraindication
  1. I 'BGPN10 S BGPACE("ADR")=$$ACEALG^BGP5D722(DFN,BGPBDATE,BGPEDATE) I BGPACE("ADR") S BGPN12=1
  1. I (BGPN10+BGPN12) S BGPN9=1
  1. K BGPSTAT
  1. S BGPSTAT("RX")=$$RX7(DFN,$$FMADD^XLFDT($P(BGPAMI,U,2),-180),$$FMADD^XLFDT($P(BGPAMI,U,4),7),$P(BGPAMI,U,4),$O(^ATXAX("B","BGP PQA STATIN MEDS",0)),,,$O(^ATXAX("B","BGP HEDIS STATIN NDC",0)))
  1. I BGPSTAT("RX") S BGPN14=1
  1. ;I 'BGPN14 S BGPSTAT("REF")=$$STATREF^BGP5D722(DFN,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPSTAT("REF") S BGPN15=1
  1. I 'BGPN14 S BGPSTAT("CONTRA")=$$STATCON^BGP5D722(DFN,BGPBDATE,BGPEDATE,$P(BGPAMI,U,2),$$FMADD^XLFDT($P(BGPAMI,U,4),7)) I BGPSTAT("CONTRA") S BGPN16=1 ;beta Contraindication
  1. I 'BGPN14 S BGPSTAT("ADR")=$$STATALG^BGP5D722(DFN,$$DOB^AUPNPAT(DFN),BGPEDATE,BGPBDATE,BGPEDATE) I BGPSTAT("ADR") S BGPN16=1
  1. I (BGPN14+BGPN16) S BGPN13=1
  1. I BGPN1,BGPN5,BGPN9,BGPN13 S BGPN17=1
  1. S BGPVALUE="AC|||"
  1. S BGPVALUE=BGPVALUE_$S(BGPN17:"ALL MEDS: ",1:"")
  1. I BGPN2!(BGPN3)!(BGPN4) S BGPVALUE=BGPVALUE_$S($P(BGPVALUE,"|||",2)]"":" ",1:"") S BGPVALUE=BGPVALUE_"BETA: " F X="RX","REF","CONTRA","ADR" I $P($G(BGPBETA(X)),U,1),$P($G(BGPBETA(X)),U,2)]"" D
  1. .S BGPVALUE=BGPVALUE_$P(BGPBETA(X),U,2)_$S($P(BGPBETA(X),U,3)]"":" "_$P(BGPBETA(X),U,3),1:"")
  1. I BGPN6!(BGPN7)!(BGPN8) S BGPVALUE=BGPVALUE_$S($P(BGPVALUE,"|||",2)]"":"; ",1:"") S BGPVALUE=BGPVALUE_"ASA: " F X="RX","REF","CONTRA","ADR" I $P($G(BGPASA(X)),U,1),$P($G(BGPASA(X)),U,2)]"" D
  1. .S BGPVALUE=BGPVALUE_$P(BGPASA(X),U,2)_$S($P(BGPASA(X),U,3)]"":" "_$P(BGPASA(X),U,3),1:"")
  1. I BGPN10!(BGPN11)!(BGPN12) S BGPVALUE=BGPVALUE_$S($P(BGPVALUE,"|||",2)]"":"; ",1:"") S BGPVALUE=BGPVALUE_"ACEI/ARB: " F X="RX","REF","CONTRA","ADR" I $P($G(BGPACE(X)),U,1),$P($G(BGPACE(X)),U,2)]"" D
  1. .S BGPVALUE=BGPVALUE_$P(BGPACE(X),U,2)_$S($P(BGPACE(X),U,3)]"":" "_$P(BGPACE(X),U,3),1:"")
  1. I BGPN14!(BGPN15)!(BGPN16) S BGPVALUE=BGPVALUE_$S($P(BGPVALUE,"|||",2)]"":"; ",1:"") S BGPVALUE=BGPVALUE_"STATIN: " F X="RX","REF","CONTRA","ADR" I $P($G(BGPSTAT(X)),U,1),$P($G(BGPSTAT(X)),U,2)]"" D
  1. .S BGPVALUE=BGPVALUE_$P(BGPSTAT(X),U,2)_$S($P(BGPSTAT(X),U,3)]"":" "_$P(BGPSTAT(X),U,3),1:"")
  1. K BGPIHD,BGPBETA,BGPMEDS1,BGPASA,BGPACE,BGPSTAT
  1. K ^TMP($J)
  1. Q
  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. .;Q:"CV"[$P(^AUPNVSIT(V,0),U,3)
  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) ;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)) D
  1. ..S %=$P(^AUPNVPOV(Y,0),U) Q:'$$ICD^BGP5UTL2(%,T,9)
  1. ..I $P(^AUPNVPOV(Y,0),U,6)]"",$P(^AUPNVPOV(Y,0),U,6)'="F" Q ;modifier
  1. ..S N=$$VAL^XBDIQ1(9000010.07,Y,.04)
  1. ..S N=$$UP^XLFSTR(N)
  1. ..I $E(N,1,8)="CONSIDER" Q
  1. ..I $E(N,1,8)="DOUBTFUL" Q
  1. ..I $E(N,1,5)="MAYBE" Q
  1. ..I $E(N,1,8)="POSSIBLE" Q
  1. ..I $E(N,1,7)="PERHAPS" Q
  1. ..I $E(N,1,8)="RULE OUT" Q
  1. ..I $E(N,1,3)="R/O" Q
  1. ..I $E(N,1,8)="PROBABLE" Q
  1. ..I $E(N,1,8)="RESOLVED" Q
  1. ..I $E(N,1,7)="SUSPECT" Q
  1. ..I $E(N,1,10)="SUSPICIOUS" Q
  1. ..I $E(N,1,11)="STATUS POST" Q
  1. ..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. NEW ED,G,X,V,E
  1. S ED=$$FMADD^XLFDT(D,7),G=0,D1=$$FMADD^XLFDT(D,1)
  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:V=PV ;same visit
  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. 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) ;
  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) ;
  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. RX7(P,BDATE,EDATE,BGPDD,BGPTD1,BGPTD2,BGPTD3,BGPTN1,BGPTN2,BGPTN3,BGPTC1,BGPTC2,BGPTC3,BGPDN1,BGPDN2) ;
  1. ;see if there ACTIVE PRESCRIPTION of these meds in time window
  1. K BGPMEDS1
  1. S K=0,R="",BGPG=""
  1. D GETMEDS^BGP5UTL2(P,BDATE,EDATE,,,,,.BGPMEDS1)
  1. I '$D(BGPMEDS1) Q ""
  1. S BGPG="",X=0 F S X=$O(BGPMEDS1(X)) Q:X'=+X!($P(BGPG,U)) S Y=+$P(BGPMEDS1(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 $G(BGPTD1),$D(^ATXAX(BGPTD1,21,"B",D)) S G=1 G RX71
  1. .I $G(BGPTD2),$D(^ATXAX(BGPTD2,21,"B",D)) S G=1 G RX71
  1. .I $G(BGPTD3),$D(^ATXAX(BGPTD3,21,"B",D)) S G=1 G RX71
  1. .S N=$P($G(^PSDRUG(D,2)),U,4)
  1. .I N]"",$G(BGPTN1),$D(^ATXAX(BGPTN1,21,"B",N)) S G=1 G RX71
  1. .I N]"",$G(BGPTN2),$D(^ATXAX(BGPTN2,21,"B",N)) S G=1 G RX71
  1. .I N]"",$G(BGPTN3),$D(^ATXAX(BGPTN3,21,"B",N)) S G=1 G RX71
  1. .S C=$P($G(^PSDRUG(D,0)),U,2)
  1. .I C]"",$G(BGPTC1),$D(^ATXAX(BGPTC1,21,"B",C)) S G=1 G RX71
  1. .I C]"",$G(BGPTC2),$D(^ATXAX(BGPTC2,21,"B",C)) S G=1 G RX71
  1. .I C]"",$G(BGPTC3),$D(^ATXAX(BGPTC3,21,"B",C)) S G=1 G RX71
  1. .S N=$P($G(^PSDRUG(D,0)),U,1)
  1. .I $G(BGPDN1)]"",N[BGPDN1 S G=1 G RX71
  1. .I $G(BGPDN2)]"",N[BGPDN2 S G=1 G RX71
  1. .Q:'G ;NOT A DRUG OF INTEREST
  1. RX71 .;
  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. .I J]"" Q:J<EDATE ;discontinued W/IN 7 days of discharge date
  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^BGP5UTL($P($P(^AUPNVSIT(V,0),U),"."))_U_$P(^PSDRUG(D,0),U)
  1. .Q
  1. Q BGPG
  1. ASACONTR(P,BDATE,EDATE,BGPADM,BGPDD) ;does patient have an aspirin allergy
  1. K BGPMEDS1
  1. S K=0,R="",BGPG=""
  1. D GETMEDS^BGP5UTL2(P,$$FMADD^XLFDT(BGPADM,-180),BGPDD,,,,,.BGPMEDS1)
  1. I '$D(BGPMEDS1) G HEM
  1. S T=$O(^ATXAX("B","BGP CMS WARFARIN MEDS",0))
  1. S X=0 F S X=$O(BGPMEDS1(X)) Q:X'=+X!(BGPG) S Y=+$P(BGPMEDS1(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 WAR71
  1. .S N=$P($G(^PSDRUG(D,0)),U,1)
  1. .I N["WARFARIN" S G=1 G WAR71
  1. .I $$VAPI^BGP5D81(D,$O(^ATXAX("B","BGP CMS WARFARIN VAPI",0))) S G=1 G WAR71
  1. .Q:'G
  1. WAR71 .;
  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. .I J]"" Q:J<BGPDD ;discontinued W/IN 7 days of discharge date
  1. .S S=$P(^AUPNVMED(Y,0),U,7)
  1. .S E=$P($P(^AUPNVSIT(V,0),U),".")
  1. .;was it prescribed on discharge date? if so, a hit
  1. .I E=BGPDD S BGPG=1_U_$$DATE^BGP5UTL($P($P(^AUPNVSIT(V,0),U),"."))_U_$P(^PSDRUG(D,0),U) Q
  1. .S Z=$$FMDIFF^XLFDT(BGPDD,$P($P(^AUPNVSIT(V,0),U),"."))
  1. .I S>Z S BGPG=1_U_$$DATE^BGP5UTL($P($P(^AUPNVSIT(V,0),U),"."))_U_$P(^PSDRUG(D,0),U)
  1. .Q
  1. I BGPG Q 1_U_$P(BGPG,U,2)_" Contra warfarin rx "_$P(BGPG,U,3)
  1. HEM ;now check for dx 459
  1. K BGPG S BGPG=$$LASTDX^BGP5UTL1(P,"BGP HEMORRHAGE DXS",$$DOB^AUPNPAT(P),EDATE)
  1. I BGPG Q 1_U_"asa Contra "_$P(BGPG,U,2)_" "_$$DATE^BGP5UTL($P(BGPG,U,3))
  1. ;
  1. ;nmi in Refusal file for aspirin
  1. S BGPG=""
  1. S T=$O(^ATXAX("B","DM AUDIT ASPIRIN DRUGS",0))
  1. S X=0 F S X=$O(^AUPNPREF("AA",P,50,X)) Q:X'=+X D
  1. .Q:'$D(^ATXAX(T,21,"B",X)) ;not an aspirin
  1. .S D=0 F S D=$O(^AUPNPREF("AA",P,50,X,D)) Q:D'=+D D
  1. ..I Y<BGPADM Q ;before admission
  1. ..I Y>BGPDD Q ;documented EDATE OF REPORT PERIOD
  1. ..S N=0 F S N=$O(^AUPNPREF("AA",P,50,X,D,N)) Q:N'=+N D
  1. ...Q:$P($G(^AUPNPREF(N,0)),U,7)'="N"
  1. ...S BGPG=1_U_$$DATE^BGP5UTL($P(^AUPNPREF(N,0),U,3))_" Contra NMI Aspirin "_$$VAL^XBDIQ1(9000022,N,.04) ;_" "__" "_$$VAL^XBDIQ1(9000022,X,1101)
  1. ..Q
  1. .Q
  1. I BGPG Q BGPG
  1. ;now check for CPT code G8008
  1. S X=$$CPTI^BGP5DU(P,BGPADM,BGPDD,+$$CODEN^ICPTCOD("G8008"))
  1. I X Q 1_U_$$DATE^BGP5UTL($P(X,U,2))_" Contra CPT G8008"
  1. S X=$$TRANI^BGP5DU(P,BGPADM,BGPDD,+$$CODEN^ICPTCOD("G8008"))
  1. I X Q 1_U_$$DATE^BGP5UTL($P(X,U,2))_" Contra Tran G8008"
  1. Q ""
  1. ACECONT(P,BDATE,EDATE,NMIB,NMIE,RPBD) ;EP does patient have an ACEI Contra
  1. NEW ED,BD,BGPG,BGPC,X,Y,Z,N,E
  1. S RPBD=$G(RPBD)
  1. K BGPG S Y="BGPG(",X=P_"^LAST DX [BGP CMS AORTIC STENOSIS DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. I $D(BGPG(1)) Q 1_U_$$DATE^BGP5UTL($P(BGPG(1),U))_" Contra POV "_$P(BGPG(1),U,2) ;_"]" ;_$$VAL^XBDIQ1(9000010.07,+$P(BGPG(1),U,4),.04)
  1. ;
  1. ;nmi in Refusal
  1. S BGPG=""
  1. S T=$O(^ATXAX("B","BGP HEDIS ACEI MEDS",0))
  1. S X=0 F S X=$O(^AUPNPREF("AA",P,50,X)) Q:X'=+X D
  1. .Q:'$D(^ATXAX(T,21,"B",X)) ;not an ACEI
  1. .S D=0 F S D=$O(^AUPNPREF("AA",P,50,X,D)) Q:D'=+D D
  1. ..S Y=9999999-D I Y<NMIB Q
  1. ..I Y>NMIE Q
  1. ..S N=0 F S N=$O(^AUPNPREF("AA",P,50,X,D,N)) Q:N'=+N D
  1. ...Q:$P($G(^AUPNPREF(N,0)),U,7)'="N"
  1. ...S BGPG=1_U_$$DATE^BGP5UTL($P(^AUPNPREF(N,0),U,3))_" Contra NMI "_$$VAL^XBDIQ1(9000022,N,.04) ;_" "__" "_$$VAL^XBDIQ1(9000022,X,1101)
  1. ..Q
  1. .Q
  1. I BGPG Q BGPG
  1. ;nmi
  1. S BGPG=""
  1. S T=$O(^ATXAX("B","BGP HEDIS ARB MEDS",0))
  1. S X=0 F S X=$O(^AUPNPREF("AA",P,50,X)) Q:X'=+X D
  1. .Q:'$D(^ATXAX(T,21,"B",X)) ;not an ACEI
  1. .S D=0 F S D=$O(^AUPNPREF("AA",P,50,X,D)) Q:D'=+D D
  1. ..S Y=9999999-D I Y<NMIB Q
  1. ..I Y>NMIE Q
  1. ..S N=0 F S N=$O(^AUPNPREF("AA",P,50,X,D,N)) Q:N'=+N D
  1. ...Q:$P($G(^AUPNPREF(N,0)),U,7)'="N"
  1. ...S BGPG=1_U_$$DATE^BGP5UTL($P(^AUPNPREF(N,0),U,3))_" Contra NMI "_$$VAL^XBDIQ1(9000022,N,.04) ;_" "_" "_$$VAL^XBDIQ1(9000022,X,1101)
  1. ..Q
  1. .Q
  1. I BGPG Q BGPG
  1. ;PREGNANCY
  1. S X=$$PREG^BGP5D7(P,$S($G(RPBD):RPBD,1:NMIB),EDATE,0,1) I X Q 1_U_"Contra pregnant"
  1. ;breastfeeding
  1. K BGPG S Y="BGPG(",X=P_"^LAST DX [BGP BREASTFEEDING DXS;DURING "_$$FMTE^XLFDT($S(RPBD:RPBD,1:NMIB))_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. I $D(BGPG(1)) Q 1_U_$$DATE^BGP5UTL($P(BGPG(1),U))_" Contra POV "_$P(BGPG(1),U,2) ;_"]" ;_$$VAL^XBDIQ1(9000010.07,+$P(BGPG(1),U,4),.04)
  1. K BGPG
  1. S Y="BGPG("
  1. S X=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT($S(RPBD:RPBD,1:NMIB))_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. S (X,D)=0,%="",T="" F S X=$O(BGPG(X)) Q:X'=+X!(%]"") D
  1. .S T=$P(^AUPNVPED(+$P(BGPG(X),U,4),0),U)
  1. .Q:'T
  1. .Q:'$D(^AUTTEDT(T,0))
  1. .S T=$P(^AUTTEDT(T,0),U,2)
  1. .I T="BF-BC" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-BP" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-CS" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-EQ" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-FU" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-HC" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-ON" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-M" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-MK" S %=T_U_$P(BGPG(X),U) Q
  1. .I T="BF-N" S %=T_U_$P(BGPG(X),U) Q
  1. I %]"" Q 1_U_$$DATE^BGP5UTL($P(%,U,2))_" Contra "_$P(%,U,1)
  1. Q ""