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

BGP8D91.m

Go to the documentation of this file.
  1. BGP8D91 ;IHS/CMI/LAB - MEASURE LOGIC;
  1. ;;18.1;IHS CLINICAL REPORTING;;MAY 25, 2018;Build 66
  1. ;
  1. EOST ;
  1. NEW BGPOXV,BGPD,BGPN
  1. K BGPOXV
  1. I 'BGPACTUP S BGPSTOP=1 Q ;no active user pop
  1. I BGPAGEB<18 S BGPSTOP=1 Q ;don't process this measure, pt under 18
  1. S BGPD1=0
  1. S BGPN1=0,BGPVALUE=""
  1. S BGPTIA=$$TIAFIB(DFN,$$DOB^AUPNPAT(DFN),BGPEDATE) ;RETURN DATE OF DX
  1. I 'BGPTIA Q ;no tia dx ever
  1. ;now evaluate result
  1. S BGPD1=1
  1. S BGPTHER=$$ANTICOAG(DFN,BGPBDATE,BGPEDATE) ;DATE DRUG
  1. I BGPTHER]"" S BGPN1=1
  1. ;
  1. S BGPVALUE="UP"_"|||"_"DX: "_$$DATE^BGP8UTL(BGPTIA)_" THERAPY: "_$S(BGPTHER]"":BGPTHER,1:"None")
  1. Q
  1. ;
  1. TIAFIB(P,BDATE,EDATE) ;EP
  1. NEW A,X,V,BGPG,G,C,T,B,E,BGPX,BGPV,BGPD
  1. K BGPR,BGPG,BGPX
  1. S BGPR="",BGPR(0)=""
  1. S X=P_"^ALL DX [BGP TIA DXS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,"BGPG(")
  1. I '$D(BGPG(1)) Q "" ;NO TIA
  1. ;now go through and get rid of H and CHS
  1. S X=0,G=0 F S X=$O(BGPG(X)) Q:X'=+X!(G) D
  1. .S V=$P(BGPG(X),U,5) ;visit ien
  1. .;is there a atrial fib on this visit
  1. .S Y=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y D
  1. ..S C=$P($G(^AUPNVPOV(Y,0)),U)
  1. ..Q:C=""
  1. ..I $$ICD^BGP8UTL2(C,$O(^ATXAX("B","BGP ATRIAL FIBRILLATION DXS",0)),9) S G=$$VD^APCLV(V)
  1. I 'G Q "" ;;NO DX
  1. Q G
  1. ANTICOAG(P,BDATE,EDATE) ;EP - was there ANTICOAG
  1. NEW BGPD,X,N,E,Y,T,D,C,BGPLT,L,J,BGPG,S
  1. K BGPG S Y="BGPG(",X=P_"^ALL MED;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,Y)
  1. S X=0,G="" F S X=$O(BGPG(X)) Q:X'=+X!(G]"") D
  1. .S N=+$P(BGPG(X),U,4) ;ien of v med
  1. .S C=$$ANTIDRUG(N) ;not one of the drugs
  1. .Q:'$P(C,U)
  1. .;c=1^category of drug
  1. .;I $P(^AUPNVMED(N,0),U,8)]"",$P(^AUPNVMED(N,0),U,8)'>EDATE Q ;discontinued before discharge date
  1. .;S S=$P(^AUPNVMED(N,0),U,7)
  1. .;I $P($P(^AUPNVSIT($P(^AUPNVMED(N,0),U,3),0),U),".")=EDATE S G=$$DATE^BGP8UTL(EDATE)_" MET: "_$P(C,U,2)_"^1" ;PRESCRIBED ON DISCHARGE DATE
  1. .;S V=$P(^AUPNVMED(N,0),U,3)
  1. .;S V=$P($P(^AUPNVSIT(V,0),U),".")
  1. .;I $$FMADD^XLFDT(V,S)<EDATE Q ;not valid through discharge date
  1. .S G=$$DATE^BGP8UTL($P(BGPG(X),U,1))_" "_$P(C,U,2)
  1. I G]"" Q G
  1. Q ""
  1. ;
  1. ANTIDRUG(N) ;
  1. NEW G,T,I
  1. I '$D(^AUPNVMED(N,0)) Q 0
  1. I $$UP^XLFSTR($P($G(^AUPNVMED(N,11)),U))["RETURNED TO STOCK" Q 0
  1. S I=$P($G(^AUPNVMED(N,0)),U)
  1. I 'I Q 0
  1. S G=0
  1. S T=$O(^ATXAX("B","DM AUDIT ASPIRIN DRUGS",0))
  1. I T,$D(^ATXAX(T,21,"B",I)) Q "1^ASA"
  1. S T=$O(^ATXAX("B","BGP CMS WARFARIN MEDS",0))
  1. I T,$D(^ATXAX(T,21,"B",I)) Q "1^WARF"
  1. S T=$O(^ATXAX("B","BGP ANTI-PLATELET DRUGS",0))
  1. I T,$D(^ATXAX(T,21,"B",I)) Q "1^ANTI-PLT"
  1. S G=$P(^PSDRUG(I,0),U,2)
  1. I G="BL700" Q "1^ANTI-PLT"
  1. I $P(^PSDRUG(I,0),U)["WARFARIN" Q "1^WARF"
  1. I $$VAPI^BGP8D81(I,$O(^ATXAX("B","BGP CMS WARFARIN VAPI",0))) Q "1^WARF"
  1. Q ""