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

BGP4D53.m

Go to the documentation of this file.
  1. BGP4D53 ; IHS/CMI/LAB - measure calc ;
  1. ;;14.1;IHS CLINICAL REPORTING;;MAY 29, 2014;Build 114
  1. ;\
  1. IK ;EP
  1. S (BGPN1,BGPN2,BGPN3,BGPN4,BGPN5,BGPN6,BGPD1,BGPD2,BGPD3,BGPD4,BGPD5,BGPD6,BGPD7,BGPD8,BGPD9)=0
  1. I 'BGPACTUP S BGPSTOP=1 Q
  1. I BGPSEX'="F" S BGPSTOP=1 Q
  1. I BGPAGEB<16 S BGPSTOP=1 Q
  1. I BGPAGEB>25 S BGPSTOP=1 Q
  1. I BGPACTUP S BGPD2=1
  1. I BGPACTCL S BGPD1=1
  1. I BGPACTCL,BGPAGEB>15,BGPAGEB<21 S BGPD3=1
  1. I BGPACTCL,BGPAGEB>20,BGPAGEB<26 S BGPD4=1
  1. I BGPACTUP,BGPAGEB>15,BGPAGEB<21 S BGPD5=1
  1. I BGPACTUP,BGPAGEB>20,BGPAGEB<26 S BGPD6=1
  1. S BGPNV=$$CHL(DFN,BGP365,BGPEDATE)
  1. S BGPN1=+BGPNV
  1. S BGPVALUE=$S(BGPD2:"UP",1:"")_$S(BGPD1:",AC",1:"")_"|||"_$P(BGPNV,U,3)_" "_$P(BGPNV,U,2)
  1. K X,Y,Z,%,A,B,C,D,E,H,BDATE,EDATE,P,V,S,F,T
  1. Q
  1. CHL(P,BDATE,EDATE) ;EP
  1. I '$G(P) Q ""
  1. S BGPC=""
  1. K BGPG S %=P_"^LAST DX [BGP CHLAMYDIA SCREEN DXS;DURING "_BDATE_"-"_EDATE,E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) Q 1_U_$$DATE^BGP4UTL($P(BGPG(1),U))_U_$P(BGPG(1),U,2)
  1. ;check cpt taxonomy
  1. S T=$O(^ATXAX("B","BGP CHLAMYDIA CPTS",0))
  1. I T D I X Q 1_U_"CPT "_$P(X,U,3)_U_$$DATE^BGP4UTL($P(X,U,2))
  1. .S X=$$CPT^BGP4DU(P,BDATE,EDATE,T,6) I X]"" Q
  1. .S X=$$TRAN^BGP4DU(P,BDATE,EDATE,T,6)
  1. ;now get all loinc/taxonomy tests
  1. S BGPC=""
  1. S T=$O(^ATXAX("B","BGP CHLAMYDIA LOINC CODES",0))
  1. S BGPLT=$O(^ATXLAB("B","BGP CHLAMYDIA 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)!(BGPC) D
  1. .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!(BGPC) D
  1. ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!(BGPC) 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_"Lab test"_U_$$DATE^BGP4UTL((9999999-D)) Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC(J,T)
  1. ...S R=$P(^AUPNVLAB(X,0),U,4)
  1. ...S BGPC=1_U_"Lab Test "_U_$$DATE^BGP4UTL((9999999-D))
  1. ...Q
  1. I BGPC Q BGPC
  1. S B=9999999-BDATE,E=9999999-EDATE S D=E-1 F S D=$O(^AUPNVMIC("AE",P,D)) Q:D'=+D!(D>B)!(BGPC) D
  1. .S L=0 F S L=$O(^AUPNVMIC("AE",P,D,L)) Q:L'=+L!(BGPC) D
  1. ..S X=0 F S X=$O(^AUPNVMIC("AE",P,D,L,X)) Q:X'=+X!(BGPC) D
  1. ...Q:'$D(^AUPNVMIC(X,0))
  1. ...I BGPLT,$P(^AUPNVMIC(X,0),U),$D(^ATXLAB(BGPLT,21,"B",$P(^AUPNVMIC(X,0),U))) S BGPC=1_U_"Micro test"_U_$$DATE^BGP4UTL((9999999-D)) Q
  1. ...Q:'T
  1. ...S J=$P($G(^AUPNVMIC(X,11)),U,13) Q:J=""
  1. ...Q:'$$LOINC(J,T)
  1. ...S R=$P(^AUPNVMIC(X,0),U,4)
  1. ...S BGPC=1_U_"Micro Test "_U_$$DATE^BGP4UTL((9999999-D))
  1. ...Q
  1. Q BGPC
  1. LOINC(A,B) ;
  1. NEW %
  1. S %=$P($G(^LAB(95.3,A,9999999)),U,2)
  1. I %]"",$D(^ATXAX(B,21,"B",%)) Q 1
  1. S %=$P($G(^LAB(95.3,A,0)),U)_"-"_$P($G(^LAB(95.3,A,0)),U,15)
  1. I $D(^ATXAX(B,21,"B",%)) Q 1
  1. Q ""