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

BGP5EL4.m

Go to the documentation of this file.
  1. BGP5EL4 ; IHS/CMI/LAB - measure 1,2,3,4 05 Apr 2010 1:44 PM ;
  1. ;;15.1;IHS CLINICAL REPORTING;;MAY 06, 2015;Build 143
  1. ;
  1. I18 ;EP
  1. S (BGPD1,BGPD2,BGPD3,BGPD4,BGPD5)=0
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7)=0
  1. I BGPAGEB<55 S BGPSTOP=1 Q
  1. I 'BGPACTCL S BGPSTOP=1 Q
  1. S BGPD1=1
  1. I BGPAGEB>54,BGPAGEB<65 S BGPD2=1
  1. I BGPAGEB>64,BGPAGEB<75 S BGPD3=1
  1. I BGPAGEB>74,BGPAGEB<85 S BGPD4=1
  1. I BGPAGEB>84 S BGPD5=1
  1. D CHEL^BGP5D73
  1. S BGPVALUE="AC|||"_$P(BGPVALUE,"|||",2)
  1. K X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T,BGPLDL
  1. Q
  1. ;
  1. PALLCARE ;EP
  1. S (BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9,BGPD10)=0
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7)=0
  1. I BGPAGEB<55 S BGPSTOP=1 Q
  1. I 'BGPACTCL S BGPSTOP=1 Q
  1. S BGPD1=1
  1. I BGPAGEB>54,BGPAGEB<65 S BGPD2=1
  1. I BGPAGEB>64,BGPAGEB<75 S BGPD3=1
  1. I BGPAGEB>74,BGPAGEB<85 S BGPD4=1
  1. I BGPAGEB>84 S BGPD5=1
  1. S BGPVAL=$$PCV^BGP5D24(DFN,BGPBDATE,BGPEDATE) ;return #visits^list string
  1. S BGPN1=$P(BGPVAL,U)
  1. ;S BGPCANCE=$$CANCER^BGP5D24(DFN,BGPBDATE,BGPEDATE)
  1. ;I BGPCANCE S BGPD6=1 D
  1. ;.I BGPAGEB>54,BGPAGEB<65 S BGPD7=1
  1. ;.I BGPAGEB>64,BGPAGEB<75 S BGPD8=1
  1. ;.I BGPAGEB>74,BGPAGEB<85 S BGPD9=1
  1. ;.I BGPAGEB>84 S BGPD10=1
  1. ;S BGPVAL=$$PCV(DFN,BGPBDATE,BGPEDATE) ;return #visits^list string
  1. S BGPN1=$P(BGPVAL,U)
  1. ;I BGPCANCE,BGPN1>1 S BGPN5=1
  1. S BGPVALUE="AC"_"|||"_BGPN1_$S(BGPN1'=1:" visits: ",1:" visit: ")_$P(BGPVAL,U,2)
  1. K BGPVAL
  1. Q
  1. ;
  1. FUNCTION(P,BDATE,EDATE) ;EP
  1. S BD=(9999999-BDATE)
  1. S ED=(9999999-EDATE)-1
  1. K BGPG
  1. S (BGP1,BGP2)=0
  1. F S ED=$O(^AUPNVELD("AA",P,ED)) Q:ED=""!(ED>BD) D
  1. .S BGPX=0 F S BGPX=$O(^AUPNVELD("AA",P,ED,BGPX)) Q:BGPX'=+BGPX D
  1. ..S Y=^AUPNVELD(BGPX,0)
  1. ..I $P(Y,U,4)]"" S:'$O(BGPG("TLT",0)) BGPG("TLT",ED)="",BGP1=1
  1. ..I $P(Y,U,5)]"" S:'$O(BGPG("BATH",0)) BGPG("BATH",ED)="",BGP1=1
  1. ..I $P(Y,U,6)]"" S:'$O(BGPG("DRES",0)) BGPG("DRES",ED)="",BGP1=1
  1. ..I $P(Y,U,7)]"" S:'$O(BGPG("XFER",0)) BGPG("XFER",ED)="",BGP1=1
  1. ..I $P(Y,U,8)]"" S:'$O(BGPG("FEED",0)) BGPG("FEED",ED)="",BGP1=1
  1. ..I $P(Y,U,9)]"" S:'$O(BGPG("CONT",0)) BGPG("CONT",ED)="",BGP1=1
  1. ..I $P(Y,U,11)]"" S:'$O(BGPG("FIN",0)) BGPG("FIN",ED)="",BGP2=1
  1. ..I $P(Y,U,12)]"" S:'$O(BGPG("COOK",0)) BGPG("COOK",ED)="",BGP2=1
  1. ..I $P(Y,U,13)]"" S:'$O(BGPG("SHOP",0)) BGPG("SHOP",ED)="",BGP2=1
  1. ..I $P(Y,U,14)]"" S:'$O(BGPG("HSWK",0)) BGPG("HSWK",ED)="",BGP2=1
  1. ..I $P(Y,U,15)]"" S:'$O(BGPG("MEDS",0)) BGPG("MEDS",ED)="",BGP2=1
  1. ..I $P(Y,U,16)]"" S:'$O(BGPG("TRNS",0)) BGPG("TRNS",ED)="",BGP2=1
  1. K BGPV
  1. S X="" F S X=$O(BGPG(X)) Q:X="" S ED=$O(BGPG(X,0)) S:$D(BGPV(ED)) BGPV(ED)=BGPV(ED)_", " S BGPV(ED)=$G(BGPV(ED))_X
  1. S BGPQ=""
  1. S BGPQ=$S((BGP1+BGP2)=2:1,1:0)_U
  1. S Y=0 F S Y=$O(BGPV(Y)) Q:Y'=+Y D
  1. .S $P(BGPQ,U,2)=$P(BGPQ,U,2)_$$DATE^BGP5UTL((9999999-Y))_" "_BGPV(Y)_" "
  1. K BGPV,BGPG
  1. Q BGPQ
  1. ;
  1. PHNV(P,BDATE,EDATE,HOMELOC) ;EP
  1. S HOMELOC=$G(HOMELOC)
  1. K ^TMP($J,"A") S A="^TMP($J,""A"","
  1. S 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^0^0^0^0^0^0^0^0^0^0^0"
  1. S (X,Y)=0,C="0^0^0^0^0^0^0^0^0^0^0^0" F S X=$O(^TMP($J,"A",X)) Q:X'=+X S V=$P(^TMP($J,"A",X),U,5) D
  1. .;S Y=0 I $$CLINIC^APCLV(V,"C")=45 S Y=1 Q
  1. .S (D,Y,Z)=0
  1. .F S D=$O(^AUPNVPRV("AD",V,D)) Q:D'=+D S Q=$P(^AUPNVPRV(D,0),U) D
  1. ..Q:Q=""
  1. ..S %=$$VALI^XBDIQ1($S($P(^DD(9000010.06,.01,0),U,2)["200":200,1:6),Q,$S($P(^DD(9000010.06,.01,0),U,2)["200":53.5,1:2))
  1. ..I % S %=$P($G(^DIC(7,+%,9999999)),U)
  1. ..I %'=13,%'=91 Q ;not a phn or driver
  1. ..S $P(C,U,1)=$P(C,U,1)+1
  1. ..I %=91 S $P(C,U,6)=$P(C,U,6)+1
  1. ..D HOME
  1. ..D AGE
  1. Q C
  1. ;
  1. HOME ;
  1. S HV=0
  1. I $$CLINIC^APCLV(V,"C")=11 S $P(C,U,7)=$P(C,U,7)+1,HV=1 S:%=91 $P(C,U,12)=$P(C,U,12)+1 Q
  1. Q:HOMELOC=""
  1. I HOMELOC=$P(^AUPNVSIT(V,0),U,6) S $P(C,U,7)=$P(C,U,7)+1,HV=1 S:%=91 $P(C,U,12)=$P(C,U,12)+1 Q
  1. Q
  1. AGE ;
  1. NEW YRS
  1. S YRS=$$AGE^AUPNPAT(P,$P($P(^AUPNVSIT(V,0),U),"."))
  1. I YRS>54,YRS<65 S $P(C,U,2)=$P(C,U,2)+1 S:HV=1 $P(C,U,8)=$P(C,U,8)+1 Q
  1. I YRS>64,YRS<75 S $P(C,U,3)=$P(C,U,3)+1 S:HV=1 $P(C,U,9)=$P(C,U,9)+1 Q
  1. I YRS>74,YRS<85 S $P(C,U,4)=$P(C,U,4)+1 S:HV=1 $P(C,U,10)=$P(C,U,10)+1 Q
  1. I YRS>84 S $P(C,U,5)=$P(C,U,5)+1 S:HV=1 $P(C,U,11)=$P(C,U,11)+1 Q
  1. W BGPBOMB
  1. Q
  1. TXBMD(P,BDATE,EDATE,HOSP) ;EP
  1. ;first see if there are any procedures in this date range
  1. S HOSP=$G(HOSP)
  1. K BGPG
  1. S BGPG=$$LASTPRC^BGP5UTL1(P,"BGP BMD PROCEDURES",BDATE,EDATE)
  1. I $P(BGPG,U)=1 Q 1_U_$$DATE^BGP5UTL($P(BGPG,U,3))_" PROC "_$P(BGPG,U,2)
  1. ;now check dx
  1. S BGPG=$$LASTDX^BGP5UTL1(P,"BGP BMD DXS",BDATE,EDATE)
  1. I $P(BGPG,U)=1 Q 1_U_$$DATE^BGP5UTL($P(BGPG,U,3))_"DX "_$P(BGPG,U,2)
  1. ;now check cpts
  1. S T=$O(^ATXAX("B","BGP BMD CPTS",0))
  1. S BGPG=$$CPT^BGP5DU(P,BDATE,EDATE,T,5)
  1. I BGPG]"" Q 1_U_$$DATE^BGP5UTL($P(BGPG,U,1))_" CPT "_$P(BGPG,U,2)
  1. S T=$O(^ATXAX("B","BGP BMD CPTS",0))
  1. S BGPG=$$TRAN^BGP5DU(P,BDATE,EDATE,T,5)
  1. I BGPG]"" Q 1_U_$$DATE^BGP5UTL($P(BGPG,U,1))_" CPT/TRAN "_$P(BGPG,U,2)
  1. ;now check RAD
  1. S T=$O(^ATXAX("B","BGP BMD CPTS",0))
  1. S BGPG=$$RAD^BGP5DU(P,BDATE,EDATE,T,5)
  1. I BGPG]"" Q 1_U_$$DATE^BGP5UTL($P(BGPG,U,1))_" RAD/CPT "_$P(BGPG,U,2)
  1. I HOSP Q ""
  1. ;now check all meds
  1. K ^TMP($J,"MEDS")
  1. S G=0 K BGPZ
  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 OSTEOPOROSIS DRUGS",0))
  1. S T1=$O(^ATXAX("B","BGP HEDIS OSTEOPOROSIS NDC",0))
  1. ;S T2="" I TAX3]"" S T2=$O(^ATXAX("B",TAX3,0))
  1. S X=0 F S X=$O(^TMP($J,"MEDS",X)) Q:X'=+X!(G) 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. .S C=$P($G(^PSDRUG(D,0)),U,2)
  1. .;I C]"",T2,$D(^ATXAX(T2,21,"B",C)) S G=X
  1. .S C=$P($G(^PSDRUG(D,2)),U,4)
  1. .I C]"",T1,$D(^ATXAX(T1,21,"B",C)) S G=$P(^TMP($J,"MEDS",X),U)
  1. .I T,$D(^ATXAX(T,21,"B",D)) S G=$P(^TMP($J,"MEDS",X),U)_U_$P(^TMP($J,"MEDS",X),U,2)
  1. .Q
  1. K ^TMP($J,"MEDS")
  1. I G Q 1_U_$$DATE^BGP5UTL($P(G,U,1))_" Med "_$P(G,U,2)
  1. Q ""