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

BGP0D3A.m

Go to the documentation of this file.
  1. BGP0D3A ; IHS/CMI/LAB - measure 11 17 Oct 2008 12:40 PM ;
  1. ;;10.0;IHS CLINICAL REPORTING;**1**;JUN 18, 2010
  1. ;
  1. ;
  1. SEALDEV(P,BDATE,EDATE) ;EP
  1. NEW BGPG,BGPX,BGPC,%,X,V,T
  1. S BGPC=0
  1. S %=P_"^ALL ADA 1351;DURING "_$$DATE^BGP0UTL(BDATE)_"-"_$$DATE^BGP0UTL(EDATE),E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) Q 1_U_"ADA 1351 "_$$DATE^BGP0UTL($P(BGPG(1),U,1))
  1. S %="",E=+$$CODEN^ICPTCOD("D1351"),%=$$CPTI^BGP0DU(P,BDATE,EDATE,E)
  1. I % Q 1_"^CPT D1351 "_$$DATE^BGP0UTL($P(%,U,2))
  1. S T=$$FMADD^XLFDT(EDATE,-1096)
  1. S %=P_"^ALL ADA 0007;DURING "_$$DATE^BGP0UTL(T)_"-"_$$DATE^BGP0UTL(EDATE),E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) Q 1_U_"ADA 0007 "_$$DATE^BGP0UTL($P(BGPG(1),U,1))
  1. S T=$$FMADD^XLFDT(EDATE,-1096)
  1. S %="",E=+$$CODEN^ICPTCOD("D0007"),%=$$CPTI^BGP0DU(P,T,EDATE,E)
  1. I % Q 1_"^CPT D0007 "_$$DATE^BGP0UTL($P(%,U,2))
  1. Q ""
  1. TF(P,BDATE,EDATE) ;EP
  1. NEW T,A,%,X,Y,T,Z,G,BGPZ,BGPJ,R
  1. K BGPG,BGPZ S BGPC=0
  1. K ^TMP($J,"A")
  1. S A="^TMP($J,""A"","
  1. S Z=$O(^ATXAX("B","BGP TOPICAL FLUORIDE ADA CODES",0))
  1. S %=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,A)
  1. S X=0,Y=0 F S X=$O(^TMP($J,"A",X)) Q:X'=+X!(BGPC>3) S V=$P(^TMP($J,"A",X),U,5) D
  1. .S Y=0,G=0 F S Y=$O(^AUPNVDEN("AD",V,Y)) Q:Y'=+Y!(G>0)!($P(BGPC,U,1)>3) D
  1. ..S A=$P($G(^AUPNVDEN(Y,0)),U) D
  1. ...I $D(^ATXAX(Z,21,"B",A)) S T=1 S $P(BGPC,U,1)=$P(BGPC,U,1)+1,G=G+1,$P(BGPC,U,BGPC+1)=$$VD^APCLV($P(^AUPNVDEN(Y,0),U,3))_"|ADA "_$$VAL^XBDIQ1(9000010.05,Y,.01) ;one per visit
  1. ...Q
  1. .Q:G
  1. .S Y=0,G=0 F S Y=$O(^AUPNVCPT("AD",V,Y)) Q:Y'=+Y!(G)!(BGPC>3) D
  1. ..S A=$P($G(^AUPNVCPT(Y,0)),U)
  1. ..Q:'A
  1. ..I $$ICD^ATXCHK(A,$O(^ATXAX("B","BGP CPT TOPICAL FLUORIDE",0)),1) S T=1 S $P(BGPC,U,1)=$P(BGPC,U,1)+1,G=G+1,$P(BGPC,U,BGPC+1)=$$VD^APCLV($P(^AUPNVCPT(Y,0),U,3))_"|CPT "_$$VAL^XBDIQ1(9000010.18,Y,.01) ;one per visit
  1. .Q:G ;one per visit
  1. .S Y=0,G=0 F S Y=$O(^AUPNVPOV("AD",V,Y)) Q:Y'=+Y!(G)!(BGPC>3) D
  1. ..S A=$P($G(^AUPNVPOV(Y,0)),U) I A S A=$P($$ICDDX^ICDCODE(A),U,2) D
  1. ...I A="V07.31" S $P(BGPC,U,1)=$P(BGPC,U,1)+1,G=1,$P(BGPC,U,BGPC+1)=$$VD^APCLV($P(^AUPNVPOV(Y,0),U,3))_"|POV "_$$VAL^XBDIQ1(9000010.07,Y,.01) ;one per visit
  1. ...Q
  1. I BGPC Q BGPC
  1. ;one refusal per patient
  1. S G=""
  1. S BGPJ="" F S BGPJ=$O(^ATXAX(Z,21,"B",BGPJ)) Q:BGPJ'=+BGPJ!(G) D
  1. .S G=$$REFUSAL^BGP0UTL1(P,9999999.31,BGPJ,BDATE,EDATE)
  1. .I G S R=1_"^"_$P(G,U,2)_"^Refused ADA "_$P(^AUTTADA(BGPJ,0),U,1)
  1. I $P(G,U)=1 Q "1^"_$P(G,U,2)_"^Refused ADA 1201"
  1. S G="",R=""
  1. S Z=$O(^ATXAX("B","BGP CPT TOPICAL FLUORIDE",0))
  1. S G=$$CPTREFT^BGP0UTL1(P,BDATE,EDATE,Z)
  1. I G S R=1_"^"_$P(G,U,2)_"^Refused CPT "_$P(G,U,4)
  1. I $P(G,U)=1 Q R
  1. Q ""
  1. SEAL(P,BDATE,EDATE) ;EP
  1. NEW A,%,X,Y,BGPC,BGPG,BGPX,G,T,S,V,BGPCNT
  1. K BGPG,BGPX
  1. S BGPCNT=0
  1. K ^TMP($J,"A")
  1. S A="^TMP($J,""A"","
  1. S BGPC=0
  1. S %=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,A)
  1. S X=0,Y=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,G=0 F S Y=$O(^AUPNVDEN("AD",V,Y)) Q:Y'=+Y D
  1. ..S A=$P($G(^AUPNVDEN(Y,0)),U) I A S A=$P($G(^AUTTADA(A,0)),U) D
  1. ...Q:A'=1351
  1. ...S G=1
  1. ...S T=$P($G(^AUPNVDEN(Y,0)),U,4) S:T=""!(T=0) T=1
  1. ...S S=$P(^AUPNVDEN(Y,0),U,5)
  1. ...I S]"" D
  1. ....I $G(BGPX(S))<2 D
  1. .....I T=1 S BGPX(S)=$G(BGPX(S))+T
  1. .....I T'=1 S T=$S(T>(2-$G(BGPX(S))):(2-$G(BGPX(S))),1:T),BGPX(S)=$G(BGPX(S))+T ;only first 2 per tooth
  1. .....S BGPCNT=BGPCNT+1 S BGPSEALS(BGPCNT,$$VD^APCLV($P(^AUPNVDEN(Y,0),U,3)))="ADA 1351 ("_T_")"
  1. ...I S="" S BGPX("NO OS")=$G(BGPX("NO OS"))+T,BGPCNT=BGPCNT+1,BGPSEALS(BGPCNT,$$VD^APCLV($P(^AUPNVDEN(Y,0),U,3)))="ADA 1351 ("_T_")"
  1. ...Q
  1. .Q:G ;had ADA codes so skip cpts
  1. .S Y=0,G=0 F S Y=$O(^AUPNVCPT("AD",V,Y)) Q:Y'=+Y D
  1. ..S A=$P($G(^AUPNVCPT(Y,0)),U)
  1. ..Q:'A
  1. ..S A=$P($$CPT^ICPTCOD(A),U,2) I A="D1351" D
  1. ...S T=$P($G(^AUPNVCPT(Y,0)),U,16) S:T=""!(T=0) T=1
  1. ...S BGPX("CPT")=$G(BGPX("CPT"))+T,BGPCNT=BGPCNT+1,BGPSEALS(BGPCNT,$$VD^APCLV($P(^AUPNVCPT(Y,0),U,3)))="CPT D1351 ("_T_")"
  1. S X="" F S X=$O(BGPX(X)) Q:X="" I X'="CPT" S BGPC=BGPC+$S(BGPX(X)>2:2,1:BGPX(X))
  1. S BGPC=BGPC+$G(BGPX("CPT"))
  1. I BGPC S BGPSEAL=BGPC Q
  1. SEALREF ;
  1. ;now gather up refusals - one per patient
  1. S G=$$REFUSAL^BGP0UTL1(P,9999999.31,$O(^AUTTADA("B","1351",0)),BDATE,EDATE)
  1. I $P(G,U)=1 S BGPSEAL="1^"_$P(G,U,2)_"^Refused ADA 1351" Q
  1. S G=$$REFUSAL^BGP0UTL1(P,81,+$$CODEN^ICPTCOD("D1351"),BDATE,EDATE)
  1. I $P(G,U)=1 S BGPSEAL="1^"_$P(G,U,2)_"^Refused CPT D1351" Q
  1. Q