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

BGP4D87.m

Go to the documentation of this file.
  1. BGP4D87 ; IHS/CMI/LAB - measure calc ; 01 Nov 2013 2:35 PM
  1. ;;14.1;IHS CLINICAL REPORTING;;MAY 29, 2014;Build 114
  1. ;
  1. IHFL ;EP - heart failure/LVS
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. I 'BGPACTUP S BGPSTOP=1 Q
  1. I 'BGPACTCL S BGPSTOP=1 Q ;must be active clinical
  1. ;I BGPAGEB<18 S BGPSTOP=1 Q ;18 and older
  1. S BGPHHF=$$HFADM(DFN,BGPBDATE,BGPEDATE)
  1. I 'BGPHHF S BGPSTOP=1 Q ;no hosp stay for heart failure
  1. S BGPAD=$P(BGPHHF,U,2)
  1. I $$AGE^AUPNPAT(DFN,BGPAD)<18 S BGPSTOP=1 Q ;less than 18 on admission date
  1. S BGPD1=1
  1. S BGPDD=$P(BGPHHF,U,4)
  1. S BGPNV=$$LSV(DFN,$$FMADD^XLFDT(BGPDD,-365),BGPDD,BGPAD)
  1. S BGPN1=+BGPNV
  1. S BGPVALUE=$S(BGPD1:"AC",1:"")_"|||"_"Admission: "_$$DATE^BGP4UTL($P(BGPHHF,U,2))_" LVS: "_$S(BGPN1:$P(BGPNV,U,3)_" "_$P(BGPNV,U,4)_" "_$P(BGPNV,U,5),1:"NOT DOCUMENTED")
  1. K X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T,BGPAD,BGPDD,BGPNV,BGPHHF
  1. Q
  1. HFADM(P,BDATE,EDATE) ;
  1. ;look for any H with HF 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 HEART FAILURE DXS",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:$P(^AUPNVSIT(V,0),U,6)'=DUZ(2)
  1. .;Q:"CV"[$P(^AUPNVSIT(V,0),U,3)
  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^BGP4D72(H) ;ama
  1. ..Q:$$TRANS^BGP4D72(H) ;transferred
  1. ..Q:$$EXPIRED^BGP4D72(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^BGP4UTL2(%,T,9) S D=1
  1. .I D D
  1. ..;skip the hospital admission if there is a dx of PALLITATIVE
  1. ..S (A,Y)=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(A) I $D(^AUPNVPOV(Y,0)) S %=$$VALI^XBDIQ1(9000010.07,Y,.01) I $$ICD^BGP4UTL2(%,$O(^ATXAX("B","BGP PALLIATIVE CARE DXS",0)),9) S A=1
  1. ..Q:A
  1. ..;skip if there was a LVAD/heart transplant procedure adm date to discharge date
  1. ..S A=$$LASTPRC^BGP4UTL1(P,"BGP CRS LVAD/HEART TRANS PROC",$P($P(^AUPNVSIT(V,0),U),"."),$P($P(^AUPNVINP(H,0),U),"."))
  1. ..I A Q ;has procedure type
  1. ..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. LSV(P,BDATE,EDATE,ADMDATE) ;
  1. NEW BGPG
  1. S BGPG=""
  1. S BGPG=$$CEFMEAS(P,BDATE,EDATE)
  1. I BGPG Q BGPG
  1. S BGPG=$$LASTPRC^BGP4UTL1(P,"BGP CMS EJECTION FRACTION PROC",BDATE,EDATE)
  1. I BGPG Q 1_"^"_$P(BGPG,U,3)_"^"_$$DATE^BGP4UTL($P(BGPG,U,3))_"^"_"Proc "_$P(BGPG,U,2)_"^^"_9000010.08_"^"_$P(BGPG,U,5)_"^"_$P(^AUPNVPRC($P(BGPG,U,5),0),U,3)
  1. S BGPG=$$CPT^BGP4DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP CMS EJECTION FRACTION CPTS",0)),6)
  1. I BGPG Q 1_"^"_$P(BGPG,U,2)_"^"_$$DATE^BGP4UTL($P(BGPG,U,2))_"^"_"CPT "_$P(BGPG,U,3)_"^^"_9000010.18_"^"_$P(BGPG,U,4)_"^"_$P(^AUPNVCPT($P(BGPG,U,4),0),U,3)
  1. S BGPG=$$RCIS^BGP4UTL2(P,ADMDATE,EDATE,"CARDIOVASCULAR DISORDERS","EVALUATION AND/OR MANAGEMENT;NON-SURGICAL PROCEDURES;DIAGNOSTIC IMAGING")
  1. I BGPG Q BGPG
  1. S BGPG=$$LASTPRC^BGP4UTL1(P,"BGP CMS ECHOCARDIOGRAM PROCS",BDATE,EDATE)
  1. I BGPG Q 1_"^"_$P(BGPG,U,3)_"^"_$$DATE^BGP4UTL($P(BGPG,U,3))_"^"_"Proc "_$P(BGPG,U,2)_"^^"_9000010.08_"^"_$P(BGPG,U,5)_"^"_$P(^AUPNVPRC($P(BGPG,U,5),0),U,3)
  1. S BGPG=$$LASTPRC^BGP4UTL1(P,"BGP CMS NUCLEAR MEDICINE PROCS",BDATE,EDATE)
  1. I BGPG Q 1_"^"_$P(BGPG,U,3)_"^"_$$DATE^BGP4UTL($P(BGPG,U,3))_"^"_"Proc "_$P(BGPG,U,2)_"^^"_9000010.08_"^"_$P(BGPG,U,5)_"^"_$P(^AUPNVPRC($P(BGPG,U,5),0),U,3)
  1. S BGPG=$$LASTPRC^BGP4UTL1(P,"BGP CMS CARDIAC CATH/LV PROCS",BDATE,EDATE)
  1. I BGPG Q 1_"^"_$P(BGPG,U,3)_"^"_$$DATE^BGP4UTL($P(BGPG,U,3))_"^"_"Proc "_$P(BGPG,U,2)_"^^"_9000010.08_"^"_$P(BGPG,U,5)_"^"_$P(^AUPNVPRC($P(BGPG,U,5),0),U,3)
  1. Q BGPG
  1. ;
  1. CEFMEAS(P,BDATE,EDATE) ;
  1. NEW %,X,Y,BGPX,E
  1. K BGPX
  1. S %="",Y="BGPX("
  1. S X=P_"^LAST MEAS CEF;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(X,Y)
  1. I $D(BGPX(1)) Q 1_"^"_$P(BGPX(1),U)_"^"_$$DATE^BGP4UTL($P(BGPX(1),U))_"^"_"Meas CEF"_"^"_$P(BGPX(1),U,2)_"^"_9000010.01_"^"_+$P(BGPX(1),U,4)_"^"_$P(BGPX(1),U,5)
  1. Q ""