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

BGP3D73.m

Go to the documentation of this file.
  1. BGP3D73 ; IHS/CMI/LAB - measure 31 ;
  1. ;;13.0;IHS CLINICAL REPORTING;;NOV 20, 2012;Build 81
  1. ;
  1. ;
  1. ID ;EP
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. S BGPVALUE=""
  1. I BGPACTUP,BGPAGEB>22 S BGPD1=1
  1. I BGPACTCL,BGPACTUP,BGPAGEB>22 S BGPD2=1
  1. I BGPACTCL,$$CHD^BGP3D729(DFN,BGP365,BGPEDATE) S BGPIHD=1,BGPD3=1
  1. I '(BGPD1+BGPD2+BGPD3) S BGPSTOP=1 Q
  1. CHEL ;EP - called from elder care
  1. S BGPVALUE=$$CHOL(DFN,$$FMADD^XLFDT(BGPEDATE,-(5*365)),BGPEDATE)
  1. I $P(BGPVALUE,U,1)]"" S BGPN1=1
  1. S R=$P(BGPVALUE,U,3),R=+R I R,R>239 S BGPN2=1
  1. S BGPLDL=$$LDL^BGP3D2(DFN,$$FMADD^XLFDT(BGPEDATE,-(5*365)),BGPEDATE) ;date^value
  1. I $P(BGPLDL,U)=1 S BGPN3=1
  1. I $P(BGPLDL,U,3)]"" D
  1. .S V=$P(BGPLDL,U,3)
  1. .I V["CPT" S:V["3048F" BGPN4=1 Q
  1. .S V=+V
  1. .I 'V Q
  1. .I V]"",+V'>100 S BGPN4=1
  1. .I +V>100,+V<131 S BGPN5=1
  1. .I +V>130,+V<161 S BGPN6=1
  1. .I +V>160 S BGPN7=1
  1. S V=$S(BGPD1:"UP",1:"")_$S(BGPD2:",AC",1:"")_$S(BGPD3:",CHD",1:"")_"|||"
  1. I BGPVALUE]"" S V=V_"CHOL: "_$$DATE^BGP3UTL($P(BGPVALUE,U,2))_" "_$P(BGPVALUE,U,3)
  1. I $P(BGPLDL,U) S V=V_$S(BGPVALUE]"":"; ",1:"") S V=V_"LDL: "_$$DATE^BGP3UTL($P(BGPLDL,U,2))_" "_$P(BGPLDL,U,3)
  1. S BGPVALUE=V
  1. K X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T,BGPLDL
  1. Q
  1. CHOL(P,BDATE,EDATE,NORES) ;EP
  1. K BGPG,BGPT,BGPC
  1. S BGPC=0
  1. S NORES=$G(NORES)
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP TOTAL CHOLESTEROL LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT CHOLESTEROL TAX",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) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X D
  1. ...Q:'$D(^AUPNVLAB(X,0))
  1. ...I BGPLT,$P(^AUPNVLAB(X,0),U),$D(^ATXLAB(BGPLT,21,"B",$P(^AUPNVLAB(X,0),U))) S BGPC=BGPC+1,BGPT(D,BGPC)=$P(^AUPNVLAB(X,0),U,4) Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC(J,T)
  1. ...S R=$P(^AUPNVLAB(X,0),U,4)
  1. ...S BGPC=BGPC+1,BGPT(D,BGPC)=R
  1. ...Q
  1. ; now got though and set return value of done 1 or 0^VALUE^date
  1. S D=0,G="" F S D=$O(BGPT(D)) Q:D'=+D!(G]"") D
  1. .S C=0 F S C=$O(BGPT(D,C)) Q:C'=+C!(G]"") D
  1. ..S X=BGPT(D,C)
  1. ..I $E(X)'=+$E(X) Q
  1. ..S G=(9999999-D)_U_X
  1. ..Q
  1. I 'NORES,G]"" Q 1_U_G ;IF WANT A RESULT AND THERE IS ONE QUIT
  1. S E=+$$CODEN^ICPTCOD(82465),%=$$CPTI^BGP3DU(P,BDATE,EDATE,E) I %]"" Q $P(%,U,2)_"^CPT 82465"
  1. S E=+$$CODEN^ICPTCOD(82465),%=$$TRANI^BGP3DU(P,BDATE,EDATE,E) I %]"" Q $P(%,U,2)_"^TRAN 82465"
  1. Q ""
  1. ;
  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 ""