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

BGP2D861.m

Go to the documentation of this file.
  1. BGP2D861 ; IHS/CMI/LAB - measure C ;
  1. ;;12.1;IHS CLINICAL REPORTING;;MAY 17, 2012;Build 66
  1. ;
  1. NDC(A,B) ;
  1. S BGPNDC=$P($G(^PSDRUG(A,2)),U,4)
  1. I BGPNDC]"",B,$D(^ATXAX(B,21,"B",BGPNDC)) Q 1
  1. Q 0
  1. CBC4(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPLAB
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP CBC LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP CBC TESTS",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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>3:1,1:"")
  1. CBC6(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPLAB
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP CBC LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP CBC TESTS",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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>5:1,1:"")
  1. SERUM6(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPLAB
  1. S BGPC=0
  1. S T=$O(^ATXAX("B","BGP CREATININE CPTS",0))
  1. S %=$$CPT^BGP2DU(P,BDATE,EDATE,T,3)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,1))=""
  1. S T=$O(^ATXAX("B","BGP CREATININE CPTS",0))
  1. S %=$$TRAN^BGP2DU(P,BDATE,EDATE,T,3)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,1))=""
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP CREATININE LOINC CODES",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT CREATININE 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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>5:1,1:"")
  1. LFT6(P,BDATE,EDATE) ;EP
  1. K BGPC
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(84460),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(84450),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(80076),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. ;TRAN
  1. S %="",E=+$$CODEN^ICPTCOD(84460),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(84450),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(80076),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,2))=""
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP ALT LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT ALT 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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now get all AST
  1. S T=$O(^ATXAX("B","BGP AST LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT AST 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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP LIVER FUNCTION LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP LIVER FUNCTION TESTS",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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>5:1,1:"")
  1. CBC(P,BDATE,EDATE) ;EP
  1. K BGPC
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"85025"
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"85027"
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"85025 TRAN"
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"85027 TRAN"
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP CBC LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP CBC TESTS",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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. Q BGPC
  1. POT(P,BDATE,EDATE) ;EP
  1. K BGPC
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(84132),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84132"
  1. S %="",E=+$$CODEN^ICPTCOD(84132),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84132 TRAN"
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP POTASSIUM LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP POTASSIUM TESTS",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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. Q BGPC
  1. LFT(P,BDATE,EDATE) ;EP
  1. K BGPC
  1. S BGPC=0
  1. S %="",E=+$$CODEN^ICPTCOD(84460),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84460"
  1. S %="",E=+$$CODEN^ICPTCOD(84450),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84450"
  1. S %="",E=+$$CODEN^ICPTCOD(80076),%=$$CPTI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"80076"
  1. ;TRAN
  1. S %="",E=+$$CODEN^ICPTCOD(84460),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84460 TRAN"
  1. S %="",E=+$$CODEN^ICPTCOD(84450),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"84450 TRAN"
  1. S %="",E=+$$CODEN^ICPTCOD(80076),%=$$TRANI^BGP2DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC=1_U_$P(%,U,2)_U_"80076 TRAN"
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP ALT LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT ALT 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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. I BGPC Q BGPC
  1. ;now get all AST
  1. S T=$O(^ATXAX("B","BGP AST LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT AST 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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. I BGPC Q BGPC
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP LIVER FUNCTION LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP LIVER FUNCTION TESTS",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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. Q BGPC
  1. SERUM12(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPLAB
  1. S BGPC=0
  1. S T=$O(^ATXAX("B","BGP CREATININE CPTS",0))
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$CPT^BGP2DU(P,BDATE,EDATE,T,3)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,1))=""
  1. S T=$O(^ATXAX("B","BGP CREATININE CPTS",0))
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$TRAN^BGP2DU(P,BDATE,EDATE,T,3)
  1. I %]"" S BGPC=BGPC+1,BGPC($P(%,U,1))=""
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP CREATININE LOINC CODES",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT CREATININE 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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>11:1,1:"")
  1. UP4(P,BDATE,EDATE) ;EP
  1. K BGPC,BGPLAB
  1. S BGPC=0
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","DM AUDIT URINE PROTEIN TAX",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP URINE PROTEIN LOINC CODES",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,BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=BGPC+1,BGPC(9999999-D)=""
  1. ...Q
  1. ;now check to see if they are all spaced 10 days apart, if not, kill off the odd ones
  1. S (X,Y)="",C=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1 D
  1. .I C=1 S Y=X Q
  1. .I $$FMDIFF^XLFDT(X,Y)<11 K BGPC(X) Q
  1. .S Y=X
  1. S C=0,X=0 F S X=$O(BGPC(X)) Q:X'=+X S C=C+1
  1. Q $S(C>3:1,1:"")
  1. GLUCOSE(P,BDATE,EDATE) ;EP
  1. K BGPC
  1. S BGPC=0
  1. S T=$O(^ATXAX("B","BGP GLUCOSE CPTS",0))
  1. S %=$$CPT^BGP2DU(P,BDATE,EDATE,T,5)
  1. I %]"" S BGPC=1_U_$P(%,U,1)_U_$P(%,U,2)
  1. S T=$O(^ATXAX("B","BGP GLUCOSE CPTS",0))
  1. S %=$$TRAN^BGP2DU(P,BDATE,EDATE,T,5)
  1. I %]"" S BGPC=1_U_$P(%,U,1)_U_$P(%,U,2)
  1. ;now get all loinc/taxonomy tests
  1. S T=$O(^ATXAX("B","BGP GLUCOSE LOINC",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT GLUCOSE TESTS 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)!($P(BGPC,U)) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!($P(BGPC,U)) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!($P(BGPC,U)) 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=1_U_(9999999-D)_U_"LAB" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP2D21(J,T)
  1. ...S BGPC=1_U_(9999999-D)_U_"LOINC"
  1. ...Q
  1. Q BGPC