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

BGP0EO1.m

Go to the documentation of this file.
  1. BGP0EO1 ; IHS/CMI/LAB - calc measures 29 Apr 2009 7:38 PM 14 Nov 2006 5:02 PM 12 Nov 2008 11:03 AM 07 Apr 2009 7:00 AM ;
  1. ;;10.0;IHS CLINICAL REPORTING;;JUN 18, 2010
  1. ;
  1. EODMG1 ;EP
  1. NEW BGPLHGB
  1. I 'BGPDMD2 S BGPSTOP=1 Q ;don't process this measure, pt not diabetic
  1. S BGPD1=1 ;is active diabetic
  1. S BGPN1=0,BGPVALUE=""
  1. S BGPLHGB=$$HGBA1C(DFN,BGPBDATE,BGPEDATE)
  1. S BGPN1=$P(BGPLHGB,U)
  1. S BGPVALUE="AD||| "_$P(BGPLHGB,U,2)
  1. Q
  1. ;
  1. ;
  1. EODMB1 ;EP
  1. NEW BGPBP,S,DS,BGPV
  1. I 'BGPDMD2 S BGPSTOP=1 Q ;don't process this measure, pt not diabetic
  1. S BGPD1=1 ;is active diabetic
  1. S BGPN1=0,BGPVALUE="",BGPV=""
  1. S BGPBP=$$MEANBP^BGP0D2(DFN,BGPBDATE,BGPEDATE)
  1. I BGPBP="" S BGPBP=$$BPCPT(DFN,BGPBDATE,BGPEDATE) I BGPBP]"" D G BPS
  1. .S BGPN1=$P(BGPBP,U),BGPV=$S(BGPN1:"BP: <140/90: BP: ",1:"")_$P(BGPBP,U,2)
  1. I BGPBP="" G BPS
  1. S S=$P(BGPBP," ",1)
  1. S DS=$P(S,"/",2),S=$P(S,"/",1)
  1. I S<140&(DS<90) S BGPN1=1,BGPV="BP: <140/90: BP: "_S_"/"_DS I 1
  1. E S BGPV="BP: "_S_"/"_DS
  1. BPS ;
  1. S BGPVALUE="AD||| "_BGPV
  1. Q
  1. ;
  1. EODML1 ;EP
  1. NEW BGPLDL,S,DS,BGPV,BGPN3,BGPN4,BGPN5
  1. I 'BGPDMD2 S BGPSTOP=1 Q ;don't process this measure, pt not diabetic
  1. S BGPD1=1 ;is active diabetic
  1. S BGPN1=0,BGPVALUE="",BGPV=""
  1. S BGPLDL=$$LDL^BGP0D2(DFN,BGPBDATE,BGPEDATE)
  1. ;now evaluate result
  1. S BGPN4=0 D
  1. .I $P(BGPLDL,U,3)]"",$P(BGPLDL,U,3)["3048F" S BGPN4=1,$P(BGPLDL,U,3)="CPT 3048F LDL<100"
  1. .I $P(BGPLDL,U,3)]"",$P(BGPLDL,U,3)["CPT" Q
  1. .I $P(BGPLDL,U,3)]"",+$P(BGPLDL,U,3)>0,$P(BGPLDL,U,3)<100 S BGPN4=1
  1. S BGPN1=BGPN4
  1. ;
  1. S BGPV="" I BGPLDL]"" S BGPV="LDL DONE: "_$$DATE^BGP0UTL($P(BGPLDL,U,2))_" "_$P(BGPLDL,U,3)
  1. S BGPVALUE="AD||| "_BGPV
  1. Q
  1. ;
  1. EOOX ;
  1. NEW BGPOXV,BGPD,BGPN
  1. I 'BGPACTUP S BGPSTOP=1 Q ;no active user pop
  1. I BGPAGEB<18 S BGPSTOP=1 Q ;don't process this measure, pt under 18
  1. S BGPD1=0 ;Number of pneumonia visits
  1. S BGPN1=0,BGPVALUE=""
  1. K BGPOXV
  1. D PNEUOX(DFN,BGPBDATE,BGPEDATE,.BGPOXV)
  1. ;now evaluate result
  1. S BGPD1=BGPOXV("DENOM") ;number of pneumonia visits
  1. I 'BGPD1 S BGPSTOP=1 Q ;no pneumonia visits
  1. S BGPN1=$P(BGPOXV(0),U,1)
  1. S BGPN2=$P(BGPOXV(0),U,2)
  1. S BGPN3=$P(BGPOXV(0),U,3)
  1. S BGPD="",BGPN=""
  1. S C=0 F S C=$O(BGPOXV(C)) Q:C'=+C D
  1. .S BGPD=BGPD_$S(BGPD]"":"; ",1:"")_$P(BGPOXV(C),U)
  1. .S BGPN=BGPN_$S(BGPN]"":"; ",1:"")_$P(BGPOXV(C),U,2)
  1. ;
  1. S BGPVALUE="UP "_BGPD_"||| "_BGPN
  1. Q
  1. ;
  1. EOST ;
  1. NEW BGPOXV,BGPD,BGPN
  1. K BGPOXV
  1. I 'BGPACTUP S BGPSTOP=1 Q ;no active user pop
  1. I BGPAGEB<18 S BGPSTOP=1 Q ;don't process this measure, pt under 18
  1. S BGPD1=0 ;Number of pneumonia visits
  1. S BGPN1=0,BGPVALUE=""
  1. D TIAFIB(DFN,BGPBDATE,BGPEDATE,.BGPOXV)
  1. ;now evaluate result
  1. S BGPD1=BGPOXV("DENOM") ;number of pneumonia visits
  1. I 'BGPD1 S BGPSTOP=1 Q ;no pneumonia visits
  1. S BGPN1=$P(BGPOXV(0),U,1)
  1. S BGPN2=$P(BGPOXV(0),U,2)
  1. S BGPN3=$P(BGPOXV(0),U,3)
  1. S BGPD="",BGPN=""
  1. S C=0 F S C=$O(BGPOXV(C)) Q:C'=+C D
  1. .S BGPD=BGPD_$S(BGPD]"":"; ",1:"")_$P(BGPOXV(C),U)
  1. .S BGPN=BGPN_$S(BGPN]"":"; ",1:"")_$P(BGPOXV(C),U,2)
  1. ;
  1. S BGPVALUE="UP "_BGPD_"||| "_BGPN
  1. Q
  1. ;
  1. HGBA1C(P,BDATE,EDATE) ;EP
  1. NEW BGPG,BGPT,BGPC,E,%,L,T,BGPLT,D,X,J,C,G
  1. S BGPC=0
  1. S G=$$CPT^BGP0DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP HGBA1C CPTS",0)),5)
  1. I G]"" S BGPC=BGPC+1,BGPT((9999999-$P(G,U,1)),BGPC)=U_"CPT "_$P(G,U,2)
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP HGBA1C LOINC CODES",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT HGB A1C 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)_U_"LAB: "_$$VAL^XBDIQ1(9000010.09,X,.01) Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP0D2(J,T)
  1. ...S BGPC=BGPC+1,BGPT(D,BGPC)=$P(^AUPNVLAB(X,0),U,4)_U_"LAB LOINC: "_$$VAL^XBDIQ1(9000010.09,X,.01)_" "_$P(^AUPNVLAB(X,11),U,13)
  1. ...Q
  1. ; now got though and set return value of done 1 or 0^numerator 2-7^date^value
  1. I '$D(BGPT) Q 1_U_"No documented HgbA1c" ;no tests so is hit in numerator
  1. ; now get rid of all on same day where 1 has a result and the other doesn't
  1. K BGPC S D=0 F S D=$O(BGPT(D)) Q:D'=+D S C=0,G=0 F S C=$O(BGPT(D,C)) Q:C'=+C D
  1. .I $P(BGPT(D,C),U,1)]"" S BGPC(D,C)="" ;=D_U_C
  1. .;I BGPC>0,$P(BGPT(D,C),U,1)="" K BGPT(D,C)
  1. I $D(BGPC) D
  1. .;loop through and get rid of all w/o results
  1. .S D=0 F S D=$O(BGPT(D)) Q:D="" D
  1. ..S C=0 F S C=$O(BGPT(D,C)) Q:C="" D
  1. ...I '$D(BGPC(D,C)) K BGPT(D,C)
  1. S D=0,G=""
  1. S D=$O(BGPT(D))
  1. S C=0,C=$O(BGPT(D,C))
  1. S X=$P(BGPT(D,C),U,1)
  1. I $$UP^XLFSTR(X)="COMMENT" Q 1_U_1_U_0_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" (no result) "_X
  1. I X="" D Q G
  1. .S G=""
  1. .I $P(BGPT(D,C),U,2)="CPT 3046F" S G=1_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D) Q
  1. .I $P(BGPT(D,C),U,2)="CPT 3047F"!($P(BGPT(D,C),U,2)="CPT 3044F")!($P(BGPT(D,C),U,2)="CPT 3045F") S G=0_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D) Q
  1. .S G=1_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" (no result)" Q
  1. S X=$$STRIP^XLFSTR(X," ") ;strip spaces
  1. I X[">9" Q 1_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" "_X
  1. S X=$$STV(X)
  1. I X="" Q 1_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" (no result) "_X
  1. I +X>9 Q 1_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" "_X
  1. Q 0_U_$P(BGPT(D,C),U,2)_" "_$$DATE^BGP0UTL(9999999-D)_" result: "_X
  1. ;
  1. STV(X) ;EP - strip all characters besides numbers and a "."
  1. I X="" Q X
  1. NEW A,B,L
  1. S L=$L(X)
  1. F B=1:1:L S A=$E(X,B) Q:A="" I A'?1N,A'?1"." S X=$$STRIP^XLFSTR(X,A) S B=B-1
  1. Q X
  1. ;
  1. BPCPT(P,BDATE,EDATE) ;EP
  1. NEW S,D,C,E,BGPG,X,Y,G,T
  1. K BGPG S Y="BGPG(",X=P_"^ALL VISIT;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(X,Y)
  1. ;go through and get all cpt codes in the 2 taxonomies and table by date using the lowest value on that day, skip ER visits
  1. S X=0,G="" F S X=$O(BGPG(X)) Q:X'=+X D
  1. .S V=$P(BGPG(X),U,5) ;visit ien
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:$$CLINIC^APCLV(V,"C")=30 ;clinic ER
  1. .Q:'$D(^AUPNVCPT("AD",V)) ;no cpt codes
  1. .S E=0 F S E=$O(^AUPNVCPT("AD",V,E)) Q:E'=+E D
  1. ..S C=$P($G(^AUPNVCPT(E,0)),U)
  1. ..I 'C Q
  1. ..S D=$P($P(^AUPNVSIT(V,0),U),"."),D=(9999999-D)_"."_$P(D,".",2)
  1. ..I $$ICD^ATXCHK(C,$O(^ATXAX("B","BGP SYSTOLIC BP CPTS",0)),1) D
  1. ...S Y=$P($$CPT^ICPTCOD(C),U,2)
  1. ...S:'$D(S(D)) S(D)=Y
  1. ...I +S(D)>+Y S S(D)=Y
  1. ..I $$ICD^ATXCHK(C,$O(^ATXAX("B","BGP DIASTOLIC BP CPTS",0)),1) D
  1. ...S Y=$P($$CPT^ICPTCOD(C),U,2)
  1. ...S:'$D(T(D)) T(D)=Y
  1. ...I +T(D)>+Y S T(D)=Y
  1. I '$D(S),'$D(T) Q ""
  1. S S=$O(S(0)) I S S S=S(S)
  1. S D=$O(T(0)) I D S D=T(D)
  1. I S=""!(D="") Q 0_U_S_"/"_$P(D,".")
  1. I S="3074F",D="3078F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3074F",D="3079F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3075F",D="3078F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3075F",D="3079F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3076F",D="3078F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3076F",D="3079F" Q 1_U_S_"/"_$P(D,".")
  1. I S="3077F",D="3080F" Q 0_U_S_"/"_$P(D,".")
  1. Q 0_U_S_"/"_$P(D,".")
  1. ;
  1. TIAFIB(P,BDATE,EDATE,BGPR) ;EP
  1. NEW A,X,V,BGPG,G,C,T,B,E,BGPX,BGPV,BGPD
  1. K BGPR,BGPG,BGPX
  1. S BGPR="",BGPR(0)=""
  1. S X=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,"BGPG(")
  1. I '$D(BGPG(1)) S BGPR("DENOM")=0 Q
  1. ;now go through and get rid of H and CHS
  1. S T=$O(^ATXAX("B","BGP TIA DXS",0))
  1. S A=0 F S A=$O(BGPG(A)) Q:A'=+A D
  1. .S V=$P(BGPG(A),U,5)
  1. .I '$D(^AUPNVSIT(V,0)) K BGPG(A) Q
  1. .I $P(^AUPNVSIT(V,0),U,3)="C" K BGPG(A) Q
  1. .I $P(^AUPNVSIT(V,0),U,7)'="H" K BGPG(A) Q
  1. .S X=0,G=0,E=0,B=0 F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X D
  1. ..S C=$P($G(^AUPNVPOV(X,0)),U)
  1. ..Q:C=""
  1. ..I $$ICD^ATXCHK(C,T,9) S G=1,$P(BGPG(A),U,15)=$$VAL^XBDIQ1(9000010.07,X,.01)
  1. ..I $$VAL^XBDIQ1(9000010.07,X,.01)="427.31" S E=1
  1. .I G,E S B=1 ;have both
  1. .I 'B K BGPG(A) ;no tia diagnosis
  1. I '$D(BGPG) S BGPR("DENOM")=0 Q
  1. ;reorder the diagnoses by visit date
  1. S A=0 F S A=$O(BGPG(A)) Q:A'=+A S V=$P(BGPG(A),U,5),D=$P($P($G(^AUPNVSIT(V,0)),U),"."),BGPX(D,V)=BGPG(A)
  1. ;now get the first one
  1. S BGPD=0,BGPC=0 F S BGPD=$O(BGPX(BGPD)) Q:BGPD'=+BGPD D
  1. .S BGPV=0 F S BGPV=$O(BGPX(BGPD,BGPV)) Q:BGPV'=+BGPV D
  1. ..S BGPC=BGPC+1,BGPR(BGPC)=BGPC_") "_$$DATE^BGP0UTL(BGPD)_" "_$P(BGPX(BGPD,BGPV),U,15)_"+427.31" ;set denominator
  1. ..S G=$$ANTICOAG^BGP0EO11(P,$$FMADD^XLFDT(BGPD,-365),$$DSCHDATE^APCLV(BGPV),BGPD) ; any ANTICOAG?
  1. ..S $P(BGPR(BGPC),U,2)=BGPC_") "_$P(G,U,1) ;set numerator column
  1. ..S $P(BGPR(0),U,$P(G,U,2))=$P(BGPR(0),U,$P(G,U,2))+1
  1. S BGPR("DENOM")=BGPC
  1. Q
  1. PNEUOX(P,BDATE,EDATE,BGPR) ;EP
  1. NEW A,B,C,D,E,F,G,BGPG,BGPX,BGPD,BGPV,BGPC
  1. K BGPG,BGPR
  1. S BGPR="",BGPR(0)=""
  1. S X=P_"^ALL DX [BGP CMS PNEUMONIA;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE) S E=$$START1^APCLDF(X,"BGPG(")
  1. I '$D(BGPG(1)) S BGPR("DENOM")=0 Q
  1. ;now go through and get rid of CHS or service category not A, O, S
  1. S A=0 F S A=$O(BGPG(A)) Q:A'=+A D
  1. .S V=$P(BGPG(A),U,5)
  1. .I '$D(^AUPNVSIT(V,0)) K BGPG(A)
  1. .I $P(^AUPNVSIT(V,0),U,3)="C" K BGPG(A)
  1. .I "AOS"'[$P(^AUPNVSIT(V,0),U,7) K BGPG(A)
  1. I '$D(BGPG) S BGPR("DENOM")=0 Q ;got rid of them all
  1. ;reorder the diagnoses by visit date
  1. S A=0 F S A=$O(BGPG(A)) Q:A'=+A S V=$P(BGPG(A),U,5),D=$P($P($G(^AUPNVSIT(V,0)),U),"."),BGPX(D,V)=BGPG(A)
  1. ;now get the first one
  1. S BGPD=0,BGPC=0 F S BGPD=$O(BGPX(BGPD)) Q:BGPD'=+BGPD D
  1. .S BGPV=0 F S BGPV=$O(BGPX(BGPD,BGPV)) Q:BGPV'=+BGPV D
  1. ..S BGPC=BGPC+1,BGPR(BGPC)=BGPC_") "_$$DATE^BGP0UTL(BGPD)_" "_$P(BGPX(BGPD,BGPV),U,2) ;set denominator
  1. ..S G=$$OXSAT(BGPV) ; any o2 saturation on this visit?
  1. ..S $P(BGPR(BGPC),U,2)=BGPC_") "_$P(G,U,1) ;set numerator column
  1. ..S $P(BGPR(0),U,$P(G,U,2))=$P(BGPR(0),U,$P(G,U,2))+1
  1. ..;now delete out all visits that are <46 days difference and all other visits on the same day
  1. ..S V=BGPV F S V=$O(BGPX(BGPD,V)) Q:V'=+V K BGPX(BGPD,V)
  1. ..S D=BGPD,V=BGPV F S D=$O(BGPX(D)) Q:D'=+D D
  1. ...S V=0 F S V=$O(BGPX(D,V)) Q:V'=+V I $$FMDIFF^XLFDT(D,BGPD)<46 K BGPX(D,V)
  1. S BGPR("DENOM")=BGPC
  1. Q
  1. ;
  1. OXSAT(V) ;was there ox sat at the visit
  1. ;get all O2 measurements on or after admission date
  1. NEW BGPD,X,N,E,Y,T,D,C,BGPLT,L,J,BGPG,M,M1
  1. S BGPG=""
  1. S BGPD=$P($P(^AUPNVSIT(V,0),U),".")
  1. ;K BGPG S Y="BGPG(",X=P_"^ALL MEAS O2;DURING "_$$FMTE^XLFDT(BD)_"-"_$$FMTE^XLFDT(ED) S E=$$START1^APCLDF(X,Y)
  1. S X=0 F S X=$O(^AUPNVMSR("AD",V,X)) Q:X'=+X!(BGPG]"") I $$VAL^XBDIQ1(9000010.01,X,.01)="O2" S BGPG=$$DATE^BGP0UTL(BGPD)_" MET O2 SAT^1"
  1. I BGPG]"" Q BGPG
  1. ;now check for cpts
  1. S T=$O(^ATXAX("B","BGP CMS ABG CPTS",0))
  1. S X=0 F S X=$O(^AUPNVCPT("AD",V,X)) Q:X'=+X!(BGPG]"") D
  1. .Q:'$D(^AUPNVCPT(X,0))
  1. .S C=$P(^AUPNVCPT(X,0),U)
  1. .Q:'$$ICD^ATXCHK(C,T,1)
  1. .S M=$$VAL^XBDIQ1(9000010.18,X,.08)
  1. .S M1=$$VAL^XBDIQ1(9000010.18,X,.09)
  1. .I $P(^ICPT(C,0),U)="3028F",(M="1P"!(M="2P")!(M="3P")!(M="4P")!(M="8P")) Q ;3028f and has modifier
  1. .I $P(^ICPT(C,0),U)="3028F",(M1="1P"!(M="2P")!(M="3P")!(M="4P")!(M="8P")) Q ;3028f and has modifier
  1. .S BGPG=$$DATE^BGP0UTL(BGPD)_" MET CPT ["_$P($$CPT^ICPTCOD(C),U,2)_"]^1"
  1. .Q
  1. I BGPG]"" Q BGPG
  1. ;now check v tran
  1. S T=$O(^ATXAX("B","BGP CMS ABG CPTS",0))
  1. S X=0 F S X=$O(^AUPNVTC("AD",V,X)) Q:X'=+X!(BGPG]"") D
  1. .Q:'$D(^AUPNVTC(X,0))
  1. .S C=$P(^AUPNVTC(X,0),U,7)
  1. .Q:C=""
  1. .Q:'$$ICD^ATXCHK(C,T,1)
  1. .S BGPG=$$DATE^BGP0UTL(BGPD)_" MET CPT/TRAN ["_$P($$CPT^ICPTCOD(C),U,2)_"]^1"
  1. .Q
  1. I BGPG]"" Q BGPG
  1. ;now check for lab tests
  1. S T=$O(^ATXAX("B","BGP CMS ABG LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP CMS ABG TESTS",0))
  1. S X=0 F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X!(BGPG]"") 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 BGPG=$$DATE^BGP0UTL(BGPD)_" MET "_$$VAL^XBDIQ1(9000010.09,X,.01)_"^1" Q
  1. .Q:'T
  1. .S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. .Q:'$$LOINC^BGP0D21(J,T)
  1. .S BGPG=$$DATE^BGP0UTL(BGPD)_" MET "_$$VAL^XBDIQ1(9000010.09,X,.01)_"^1" Q
  1. I BGPG]"" Q BGPG
  1. ;now go get refusals of any of the above
  1. ;
  1. S G=$$REFUSAL^BGP0UTL1(P,9999999.07,$O(^AUTTMSR("B","O2",0)),BGPD,BGPD)
  1. I G Q $$DATE^BGP0UTL(BGPD)_" NOT MET REFUSAL O2 SAT^2"
  1. ;refusal of lab tests
  1. S T=$O(^ATXLAB("B","BGP CMS ABG TESTS",0))
  1. S L=0 F S L=$O(^ATXLAB(T,21,"B",L)) Q:L'=+L!(BGPG]"") D
  1. .S G=$$REFUSAL^BGP0UTL1(P,60,L,BGPD,BGPD)
  1. .I G S BGPG=$$DATE^BGP0UTL(BGPD)_" NOT MET REFUSAL LAB^2"
  1. I BGPG]"" Q BGPG
  1. S G=$$CPTREFT^BGP0UTL1(P,BGPD,BGPD,$O(^ATXAX("B","BGP CMS ABG CPTS",0)))
  1. I G Q $$DATE^BGP0UTL(BGPD)_" NOT MET REFUSAL CPT^2"
  1. Q $$DATE^BGP0UTL(BGPD)_" NOT MET; NO ASSMT^3"
  1. ;