BGP0D42 ; IHS/CMI/LAB - measure 11 ;
;;10.0;IHS CLINICAL REPORTING;;JUN 18, 2010
;
;
IRAO ;EP
S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPD1,BGPD2,BGPD3,BGPD4)=0
I BGPAGEB<65 S BGPSTOP="" Q ;65 and older
I $P(^DPT(DFN,0),U,2)'="F" S BGPSTOP="" Q ;only females
I BGPACTUP S BGPD2=1
I BGPACTCL S BGPD1=1
I 'BGPD2,'BGPD1 S BGPSTOP=1 Q ;not in either denom so quit
S T=$O(^ATXAX("B","BGP OSTEOPOROSIS DXS",0))
I 'T W BGPBOMB Q
I $$LASTDX^BGP0UTL1(DFN,"BGP OSTEOPOROSIS DXS",$P(^DPT(DFN,0),U,3),BGPEDATE) S BGPSTOP=1 Q ;had osteoporosis dx
S BGPPAP=$$OSTEOSCR(DFN,$$FMADD^XLFDT(BGPBDATE,-(365*2)),BGPEDATE)
I BGPPAP S BGPN1=1
I $P(BGPPAP,U)=3 S BGPN2=1
S BGPVALUE="UP"
I BGPD1 S BGPVALUE=BGPVALUE_";AC"
S BGPVALUE=BGPVALUE_"|||"_$P(BGPPAP,U,2)_" "_$$DATE^BGP0UTL($P(BGPPAP,U,3))_$S($P(BGPPAP,U,1)=3:" (refused)",1:"")
K BGPPAP,X
Q
;
OSTEOSCR(P,BDATE,EDATE) ;EP
S X=$$LASTPRCI^BGP0UTL1(P,"88.98",BDATE,EDATE)
I X Q X
S X=$$LASTDXI^BGP0UTL1(P,"V82.81",BDATE,EDATE)
I X Q X
S X=$$CPT^BGP0DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
I X Q 1_U_$P(X,U,3)_U_$P(X,U,2)
S X=$$TRAN^BGP0DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
I X Q 1_U_$P(X,U,3)_U_$P(X,U,2)
;now check for refusal
S X=$$RAD^BGP0DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
I X Q 1_U_$P(X,U,3)_U_$P(X,U,2)
;
S X=$$RADREF^BGP0UTL1(P,$$FMADD^XLFDT(EDATE,-365),EDATE,$O(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)))
I X Q 3_U_$P(X,U,3)_U_$P(X,U,2)
Q ""
BGP0D42 ; IHS/CMI/LAB - measure 11 ;
+1 ;;10.0;IHS CLINICAL REPORTING;;JUN 18, 2010
+2 ;
+3 ;
IRAO ;EP
+1 SET (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPN7,BGPN8,BGPD1,BGPD2,BGPD3,BGPD4)=0
+2 ;65 and older
IF BGPAGEB<65
SET BGPSTOP=""
QUIT
+3 ;only females
IF $PIECE(^DPT(DFN,0),U,2)'="F"
SET BGPSTOP=""
QUIT
+4 IF BGPACTUP
SET BGPD2=1
+5 IF BGPACTCL
SET BGPD1=1
+6 ;not in either denom so quit
IF 'BGPD2
IF 'BGPD1
SET BGPSTOP=1
QUIT
+7 SET T=$ORDER(^ATXAX("B","BGP OSTEOPOROSIS DXS",0))
+8 IF 'T
WRITE BGPBOMB
QUIT
+9 ;had osteoporosis dx
IF $$LASTDX^BGP0UTL1(DFN,"BGP OSTEOPOROSIS DXS",$PIECE(^DPT(DFN,0),U,3),BGPEDATE)
SET BGPSTOP=1
QUIT
+10 SET BGPPAP=$$OSTEOSCR(DFN,$$FMADD^XLFDT(BGPBDATE,-(365*2)),BGPEDATE)
+11 IF BGPPAP
SET BGPN1=1
+12 IF $PIECE(BGPPAP,U)=3
SET BGPN2=1
+13 SET BGPVALUE="UP"
+14 IF BGPD1
SET BGPVALUE=BGPVALUE_";AC"
+15 SET BGPVALUE=BGPVALUE_"|||"_$PIECE(BGPPAP,U,2)_" "_$$DATE^BGP0UTL($PIECE(BGPPAP,U,3))_$SELECT($PIECE(BGPPAP,U,1)=3:" (refused)",1:"")
+16 KILL BGPPAP,X
+17 QUIT
+18 ;
OSTEOSCR(P,BDATE,EDATE) ;EP
+1 SET X=$$LASTPRCI^BGP0UTL1(P,"88.98",BDATE,EDATE)
+2 IF X
QUIT X
+3 SET X=$$LASTDXI^BGP0UTL1(P,"V82.81",BDATE,EDATE)
+4 IF X
QUIT X
+5 SET X=$$CPT^BGP0DU(P,BDATE,EDATE,$ORDER(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
+6 IF X
QUIT 1_U_$PIECE(X,U,3)_U_$PIECE(X,U,2)
+7 SET X=$$TRAN^BGP0DU(P,BDATE,EDATE,$ORDER(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
+8 IF X
QUIT 1_U_$PIECE(X,U,3)_U_$PIECE(X,U,2)
+9 ;now check for refusal
+10 SET X=$$RAD^BGP0DU(P,BDATE,EDATE,$ORDER(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)),6)
+11 IF X
QUIT 1_U_$PIECE(X,U,3)_U_$PIECE(X,U,2)
+12 ;
+13 SET X=$$RADREF^BGP0UTL1(P,$$FMADD^XLFDT(EDATE,-365),EDATE,$ORDER(^ATXAX("B","BGP OSTEO SCREEN CPTS",0)))
+14 IF X
QUIT 3_U_$PIECE(X,U,3)_U_$PIECE(X,U,2)
+15 QUIT ""