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

BGP8D864.m

Go to the documentation of this file.
  1. BGP8D864 ; IHS/CMI/LAB - measure C ;
  1. ;;18.1;IHS CLINICAL REPORTING;;MAY 25, 2018;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. GOLDLAB(P,BDATE,EDATE) ;EP
  1. K BGPIM,BGPLAB
  1. K BGPMEDS1
  1. D GETMEDS^BGP8UTL2(P,BDATE,EDATE,,,,,.BGPMEDS1)
  1. I '$D(BGPMEDS1) Q ""
  1. S T1=$O(^ATXAX("B","BGP RA IM GOLD MEDS",0))
  1. S T4=$O(^ATXAX("B","BGP RA IM GOLD NDC",0))
  1. S X=0 F S X=$O(BGPMEDS1(X)) Q:X'=+X S V=$P(BGPMEDS1(X),U,5),Y=+$P(BGPMEDS1(X),U,4) D
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .S Z=$P($G(^AUPNVMED(Y,0)),U) ;get drug ien
  1. .Q:Z="" ;BAD POINTER
  1. .I $D(^ATXAX(T1,21,"B",Z))!($$NDC(Z,T4)),$P(^AUPNVMED(Y,0),U,8)="" S BGPIM($P($P(^AUPNVSIT(V,0),U),"."))=""
  1. I '$D(BGPIM) Q "" ;no gold im
  1. ;CBC'S
  1. K BGPC
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$CPTI^BGP8DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$CPTI^BGP8DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85025),%=$$TRANI^BGP8DU(P,BDATE,EDATE,E)
  1. I %]"" S BGPC($P(%,U,2))=""
  1. S %="",E=+$$CODEN^ICPTCOD(85027),%=$$TRANI^BGP8DU(P,BDATE,EDATE,E)
  1. I %]"" S 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(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP8D21(J,T)
  1. ...S BGPC(9999999-D)=""
  1. ...Q
  1. I '$D(BGPC) Q "0^no CBC tests"
  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. ;check to see if there is one for every med
  1. S G=1,X=0 F S X=$O(BGPIM(X)) Q:X'=+X I '$D(BGPC(X)) S G=0
  1. I 'G Q G_U_"no CBC for each IM GOLD"
  1. ;now urine protein
  1. K BGPC
  1. S T=$O(^ATXAX("B","BGP URINE PROTEIN LOINC CODES",0))
  1. S BGPLT=$O(^ATXLAB("B","DM AUDIT URINE PROTEIN 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))) D
  1. ....S BGPC(9999999-D)="" Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC^BGP8D21(J,T)
  1. ...S BGPC(9999999-D)=""
  1. ...Q
  1. I '$D(BGPC) Q "0^no Urine Protein tests"
  1. S G=1,X=0 F S X=$O(BGPIM(X)) Q:X'=+X I '$D(BGPC(X)) S G=0
  1. I 'G Q G_U_"no Urine Protein for each IM GOLD"
  1. Q 1_U_"CBC and Urine protein w/each IM Gold"