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

BGP5D3A.m

Go to the documentation of this file.
  1. BGP5D3A ; IHS/CMI/LAB - measure 11 17 Oct 2009 12:40 PM 15 Apr 2015 8:06 AM ;
  1. ;;15.1;IHS CLINICAL REPORTING;;MAY 06, 2015;Build 143
  1. ;
  1. ;
  1. SEALDEV(P,BDATE,EDATE) ;EP
  1. NEW BGPG,BGPX,BGPC,%,X,V,T
  1. S BGPC=0
  1. S T=$$FMADD^XLFDT(EDATE,-1096)
  1. K BGPG
  1. S %=P_"^ALL ADA 0007;DURING "_$$DATE^BGP5UTL(T)_"-"_$$DATE^BGP5UTL(EDATE),E=$$START1^APCLDF(%,"BGPG(")
  1. S %="",X=0
  1. F S X=$O(BGPG(X)) Q:X'=+X S V=$P(BGPG(X),U,5) I '$$HAS13(V) S %=1_U_$$DATE^BGP5UTL($P(BGPG(1),U,1))_" ADA 0007"
  1. Q %
  1. HAS13(V) ;
  1. NEW X,Y,Z
  1. S Z=0
  1. S X=0 F S X=$O(^AUPNVDEN("AD",V,X)) Q:X'=+X!(Z) S Y=$$VAL^XBDIQ1(9000010.05,X,.01) I Y="1351"!(Y="1352") S Z=1
  1. S X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X!(Z) S Y=$$VAL^XBDIQ1(9000010.18,X,.01) I Y="D1351"!(Y="D1352") S Z=1
  1. Q Z
  1. ;I $D(BGPG(1)) Q 1_U_$$DATE^BGP5UTL($P(BGPG(1),U,1))_" ADA 0007"
  1. ;S T=$$FMADD^XLFDT(EDATE,-1096)
  1. ;S %="",E=+$$CODEN^ICPTCOD("D0007"),%=$$CPTI^BGP5DU(P,T,EDATE,E)
  1. ;I % Q 1_"^"_$$DATE^BGP5UTL($P(%,U,2))_" CPT D0007"
  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^BGP5UTL2(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 D
  1. ...I $$ICD^BGP5UTL2(A,$O(^ATXAX("B","BGP TOPICAL FLUORIDE DXS",0)),9) 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. 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. ...I A'=1351,A'=1352 Q
  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 "_A_" ("_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 ADA1351/1352 codes so skip cpts/0007
  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. S BGPSEAL=BGPC
  1. Q
  1. SEALR(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. ...I A'=1353 Q
  1. ...S G=1
  1. ...S T=1 ;$P($G(^AUPNVDEN(Y,0)),U,4) S:T=""!(T=0) T=1 DOESN'T MATTER HOW MANY, WE ARE ONLY COUNTING 1 PER TOOTH
  1. ...S S=$P(^AUPNVDEN(Y,0),U,5)
  1. ...I S]"" D
  1. ....I $G(BGPX(S))<1 D
  1. .....S BGPX(S)=$G(BGPX(S))+1
  1. .....S BGPCNT=BGPCNT+1 S BGPSEALS(BGPCNT,$$VD^APCLV($P(^AUPNVDEN(Y,0),U,3)))="ADA "_A_" ("_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 ADA1353 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="D1353" 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 D1353 ("_T_")"
  1. S X="" F S X=$O(BGPX(X)) Q:X="" I X'="CPT" S BGPC=BGPC+$S(BGPX(X)>1:1,1:BGPX(X))
  1. S BGPC=BGPC+$G(BGPX("CPT"))
  1. S BGPSEALR=BGPC
  1. Q
  1. HIGHR(P,EDATE) ;EP
  1. ;must have 2 dx in past 3 years, then check problem list before EDATE
  1. NEW BGPG,Y,X,G,V,BDATE,C,D
  1. S BDATE=$$FMADD^XLFDT(EDATE,-(3*365))
  1. S Y="BGPG(",G="",C=0
  1. S X=P_"^ALL DX [BGP HIGH RISK FLU DXS;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPG(1)) G HRPL
  1. K Y S X=0,G=0 F S X=$O(BGPG(X)) Q:X'=+X!(G) D
  1. .S D=$P(BGPG(X),U,1)
  1. .Q:$D(Y(D)) ;already had one on that day
  1. .S Y(D)=""
  1. .S C=C+1
  1. .I C>1 S G=1
  1. I G Q G
  1. HRPL ;
  1. S G=""
  1. S T=$O(^ATXAX("B","BGP HIGH RISK FLU DXS",0))
  1. S (X,G)=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(G) D
  1. .Q:$P(^AUPNPROB(X,0),U,8)>EDATE ;if added to pl after beginning of time period, no go
  1. .S Y=$P(^AUPNPROB(X,0),U)
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .Q:$P(^AUPNPROB(X,0),U,12)="I"
  1. .Q:'$$ICD^BGP5UTL2(Y,T,9)
  1. .S G=1
  1. .Q
  1. Q G
  1. DTAP(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPG,BGPX,BD,ED,BGPVARI,C,V,X,Y,BGPZ,BGPIMM
  1. ;gather up all immunizations, cpts, povs and check for 3 each ten days apart
  1. K BGPVARI
  1. ;get all immunizations
  1. S C="115"
  1. D GETIMMS^BGP5D32(P,EDATE,C,.BGPX)
  1. ;go through and set into array if 10 days apart
  1. I $O(BGPX(0)) Q 1_U_$$DATE^BGP5UTL($O(BGPX(0)))_" Imm 115"
  1. ;now get cpts
  1. S ED=9999999-EDATE-1,BD=9999999-BDATE,G=0
  1. F S ED=$O(^AUPNVSIT("AA",P,ED)) Q:ED=""!($P(ED,".")>BD) D
  1. .S V=0 F S V=$O(^AUPNVSIT("AA",P,ED,V)) Q:V'=+V D
  1. ..Q:'$D(^AUPNVSIT(V,0))
  1. ..S X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X D
  1. ...S Y=$P(^AUPNVCPT(X,0),U),Y=$P($$CPT^ICPTCOD(Y),U,2) I Y=90715 S BGPVARI(9999999-$P(ED,"."))=""
  1. ..S X=0 F S X=$O(^AUPNVTC("AD",V,X)) Q:X'=+X D
  1. ...S Y=$P(^AUPNVTC(X,0),U,7) Q:'Y S Y=$P($$CPT^ICPTCOD(Y),U,2) I Y=90715 S BGPVARI(9999999-$P(ED,"."))=""
  1. I $D(BGPVARI) Q 1_U_$$DATE^BGP5UTL($O(BGPVARI(0)))_" CPT 90715"
  1. F BGPZ=115 S X=$$ANCONT^BGP5D31(P,BGPZ,EDATE) Q:X]""
  1. I X]"" Q 2_U_$$DATE^BGP5UTL($P(X,U,1))_" "_$P(X,U,2)
  1. ;now go to Refusals
  1. S B=$$DOB^AUPNPAT(P),E=EDATE,BGPNMI="",R=""
  1. F BGPIMM=115 D
  1. .S I=$O(^AUTTIMM("C",BGPIMM,0)) Q:'I
  1. .S X=0 F S X=$O(^AUPNPREF("AA",P,9999999.14,I,X)) Q:X'=+X S Y=0 F S Y=$O(^AUPNPREF("AA",P,9999999.14,I,X,Y)) Q:Y'=+Y S D=$P(^AUPNPREF(Y,0),U,3) I D'<B&(D'>E) D
  1. ..Q:$P(^AUPNPREF(Y,0),U,7)'="N"
  1. ..S R=D ;S:$P(^AUPNPREF(Y,0),U,7)="N" BGPNMI=1 S R=1
  1. I R Q 2_U_$$DATE^BGP5UTL(R)_" "_"NMI Dtap"
  1. S R="",B=+$$CODEN^ICPTCOD(90715)
  1. S G=$$NMIREF^BGP5UTL1(P,81,B,$$DOB^AUPNPAT(P),EDATE)
  1. I G Q 2_U_$$DATE^BGP5UTL($P(G,U,2))_" "_"NMI Dtap 90715"
  1. Q ""
  1. DTAPTD(P,BDATE,EDATE) ;EP
  1. NEW BDM,X,E,B,%DT,Y,TDD,D,LTD,G,C,Z,TK,BGPC,BGPG,BGPX,BD,ED,BGPVARI,C,V,X,Y,BGPZ,BGPIMM
  1. K TDD
  1. D LASTTDN ;get td from v imm
  1. S LTD=$O(TDD(0))
  1. I LTD]"" S LTD=9999999-LTD Q 1_U_$$DATE^BGP5UTL(LTD)_" Imm "_TDD(9999999-LTD)
  1. ;now check cpt codes
  1. S ED=9999999-EDATE-1,BD=9999999-BDATE,G=0
  1. F S ED=$O(^AUPNVSIT("AA",P,ED)) Q:ED=""!($P(ED,".")>BD) D
  1. .S V=0 F S V=$O(^AUPNVSIT("AA",P,ED,V)) Q:V'=+V D
  1. ..Q:'$D(^AUPNVSIT(V,0))
  1. ..S X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X D
  1. ...S Y=$P(^AUPNVCPT(X,0),U),Y=$P($$CPT^ICPTCOD(Y),U,2) I Y=90715!(Y=90714)!(Y=90718) S BGPVARI(9999999-$P(ED,"."))=Y
  1. ..S X=0 F S X=$O(^AUPNVTC("AD",V,X)) Q:X'=+X D
  1. ...S Y=$P(^AUPNVTC(X,0),U,7) Q:'Y S Y=$P($$CPT^ICPTCOD(Y),U,2) I Y=90715!(Y=90714)!(Y=90718) S BGPVARI(9999999-$P(ED,"."))=Y
  1. I $D(BGPVARI) S Y=$O(BGPVARI(0)) Q 1_U_$$DATE^BGP5UTL($O(BGPVARI(0)))_" CPT "_BGPVARI(Y)
  1. K BGPG S %=P_"^LAST DX [BGP TD IZ DXS;DURING "_BDATE_"-"_EDATE,E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) Q 1_U_$$DATE^BGP5UTL($P(BGPG(1),U))_" DX V06.5"
  1. F BGPZ=115,9,113,138,139 S X=$$ANCONT^BGP5D31(P,BGPZ,EDATE) Q:X]""
  1. I X]"" Q 2_U_$$DATE^BGP5UTL($P(X,U,1))_" "_$P(X,U,2)
  1. ;now go to Refusals
  1. S B=$$DOB^AUPNPAT(P),E=EDATE,BGPNMI="",R=""
  1. F BGPIMM=115,9,113,138,139 D
  1. .S I=$O(^AUTTIMM("C",BGPIMM,0)) Q:'I
  1. .S X=0 F S X=$O(^AUPNPREF("AA",P,9999999.14,I,X)) Q:X'=+X S Y=0 F S Y=$O(^AUPNPREF("AA",P,9999999.14,I,X,Y)) Q:Y'=+Y S D=$P(^AUPNPREF(Y,0),U,3) I D'<B&(D'>E) D
  1. ..Q:$P(^AUPNPREF(Y,0),U,7)'="N"
  1. ..S R=D ;S:$P(^AUPNPREF(Y,0),U,7)="N" BGPNMI=1 S R=1
  1. I R Q 2_U_$$DATE^BGP5UTL(R)_" NMI Dtap/Td"
  1. S R="",B=+$$CODEN^ICPTCOD(90715)
  1. S G=$$NMIREF^BGP5UTL1(P,81,B,$$DOB^AUPNPAT(P),EDATE)
  1. I G Q 2_U_$$DATE^BGP5UTL($P(G,U,2))_" "_"NMI Dtap 90715"
  1. S R="",B=+$$CODEN^ICPTCOD(90714)
  1. S G=$$NMIREF^BGP5UTL1(P,81,B,$$DOB^AUPNPAT(P),EDATE)
  1. I G Q 2_U_$$DATE^BGP5UTL($P(G,U,2))_" "_"NMI Dtap 90714"
  1. S R="",B=+$$CODEN^ICPTCOD(90718)
  1. S G=$$NMIREF^BGP5UTL1(P,81,B,$$DOB^AUPNPAT(P),EDATE)
  1. I G Q 2_U_$$DATE^BGP5UTL($P(G,U,2))_" "_"NMI Dtap 90718"
  1. Q ""
  1. ;
  1. LASTTDN ;
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S Y=$P(^AUPNVIMM(X,0),U) Q:'Y
  1. .Q:'$D(^AUTTIMM(Y,0))
  1. .S Y=$P(^AUTTIMM(Y,0),U,3)
  1. .S D=$P(^AUPNVIMM(X,0),U,3) Q:'D
  1. .S D=$P($P($G(^AUPNVSIT(D,0)),U),".")
  1. .I D<BDATE Q ;too early
  1. .I D>EDATE Q ;after time frame
  1. .I Y=9 S TDD(9999999-D)=9 Q
  1. .I Y=113 S TDD(9999999-D)=113 Q
  1. .I Y=115 S TDD(9999999-D)=115 Q
  1. .I Y=138 S TDD(9999999-D)=138 Q
  1. .I Y=139 S TDD(9999999-D)=139 Q
  1. Q
  1. ;;
  1. HIGHRP(P,EDATE) ;EP
  1. ;must have 2 dx in past 3 years, then check problem list before EDATE
  1. NEW BGPG,Y,X,G,V,BDATE,C,D
  1. S BDATE=$$FMADD^XLFDT(EDATE,-(3*365))
  1. S Y="BGPG(",G="",C=0
  1. S X=P_"^ALL DX [BGP HIGH RISK PNEUMO DXS;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(X,Y)
  1. I '$D(BGPG(1)) G HRPL
  1. K Y S X=0,G=0 F S X=$O(BGPG(X)) Q:X'=+X!(G) D
  1. .S D=$P(BGPG(X),U,1)
  1. .Q:$D(Y(D)) ;already had one on that day
  1. .S Y(D)=""
  1. .S C=C+1
  1. .I C>1 S G=1
  1. I G Q G
  1. HRPLP ;
  1. S G=""
  1. S T=$O(^ATXAX("B","BGP HIGH RISK PNEUMO DXS",0))
  1. S (X,G)=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(G) D
  1. .Q:$P(^AUPNPROB(X,0),U,8)>EDATE ;if added to pl after beginning of time period, no go
  1. .S Y=$P(^AUPNPROB(X,0),U)
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .Q:$P(^AUPNPROB(X,0),U,12)="I"
  1. .Q:'$$ICD^BGP5UTL2(Y,T,9)
  1. .S G=1
  1. .Q
  1. Q G
  1. GA(P,BDATE,EDATE) ;EP
  1. NEW T,A,%,X,Y,T,Z,G,BGPZ,BGPJ,R,BGPC,BGPGA,BGPGASSC
  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 GEN ANESTHESIA 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 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) D
  1. ...I $D(^ATXAX(Z,21,"B",A)) S BGPZ(V)=""
  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. ..I $$ICD^BGP5UTL2(A,$O(^ATXAX("B","BGP CPT DENT GEN ANESTHESIA",0)),1) S BGPZ(V)=""
  1. ;ARRAY BGPZ has all visits with general anesthesia
  1. S BGPGA=0 S X=0 F S X=$O(BGPZ(X)) Q:X'=+X S BGPGA=BGPGA+1
  1. ;LOOP THROUGH THESES VISITS AND SEE IF THEY HAVE A SSC
  1. S Z=$O(^ATXAX("B","BGP SSC ADA CODES",0))
  1. S V=0 F S V=$O(BGPZ(V)) Q:V'=+V D
  1. .S Y=0 F S Y=$O(^AUPNVDEN("AD",V,Y)) Q:Y'=+Y D
  1. ..S A=$P($G(^AUPNVDEN(Y,0)),U) D
  1. ...I $D(^ATXAX(Z,21,"B",A)) S BGPZ(V)=1
  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. ..I $$ICD^BGP5UTL2(A,$O(^ATXAX("B","BGP CPT DENTAL SSC",0)),1) S BGPZ(V)=1
  1. I 'BGPGA Q ""
  1. S BGPGASSC=0,X=0 F S X=$O(BGPZ(X)) Q:X'=+X I BGPZ(X) S BGPGASSC=BGPGASSC+1
  1. S Z="",X=0 F S X=$O(BGPZ(X)) Q:X'=+X S:Z]"" Z=Z_"; " S Z=Z_$$DATE^BGP5UTL($$VD^APCLV(X))_": GEN ANESTH"_$S(BGPZ(X):", SSC",1:"")
  1. Q BGPGA_U_BGPGASSC_U_Z