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

BGP6D37.m

Go to the documentation of this file.
  1. BGP6D37 ; IHS/CMI/LAB - IMMUNIZATIONS ;
  1. ;;16.1;IHS CLINICAL REPORTING;;MAR 22, 2016;Build 170
  1. ;
  1. FLU ;EP
  1. NEW BGPG,BGPLFLU,EDATE,X,E,%,I,T,J,V,G,D,R,CVX,BGPT
  1. K BGPG
  1. S BGPLFLU=""
  1. I $G(BD)="" S BD=$$FMADD^XLFDT(ED,-365)
  1. S EDATE=$$FMTE^XLFDT(ED),BDATE=$$FMTE^XLFDT(BD)
  1. S T=$O(^ATXAX("B","BGP FLU IZ CVX CODES",0))
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .S I=$P($G(^AUPNVIMM(X,0)),U,1)
  1. .I 'I Q
  1. .S CVX=$P($G(^AUTTIMM(I,0)),U,3)
  1. .Q:CVX=""
  1. .I '$D(^ATXAX(T,21,"B",CVX)) Q ;NOT IN TAXONOMY
  1. .S D=$$VD^APCLV($P(^AUPNVIMM(X,0),U,3))
  1. .Q:D<BD
  1. .Q:D>ED
  1. .I $P(BGPLFLU,U)<D S BGPLFLU=D_U_"Imm "_CVX
  1. K BGPG S %=P_"^LAST DX [BGP FLU IZ DX V04.8;DURING "_BDATE_"-"_EDATE,E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) I $P(BGPLFLU,U)<$P(BGPG(1),U,1) S BGPLFLU=$P(BGPG(1),U,1)_U_$P(BGPG(1),U,2)
  1. ;S BGPG=$$LASTPRC^BGP6UTL1(P,"BGP FLU IZ PROCEDURES",BD,ED) ;NOT IN 14.1
  1. ;I $P(BGPG,U,1)=1,$P(BGPLFLU,U)<$P(BGPG,U,3) S BGPLFLU=$P(BGPG,U,3)_U_"Proc "_$P(BGPG,U,2)
  1. K BGPG S %=P_"^LAST DX [BGP FLU IZ DXS;DURING "_BDATE_"-"_EDATE,E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) D
  1. .S T=$O(^ATXAX("B","SURVEILLANCE CPT H1N1",0))
  1. .S X=0 F S X=$O(BGPG(X)) Q:X'=+X D
  1. ..S V=$P(BGPG(X),U,5)
  1. ..S G=0
  1. ..S J=0 F S J=$O(^AUPNVCPT("AD",V,J)) Q:J'=+J S I=$P(^AUPNVCPT(J,0),U,1) I $$ICD^BGP6UTL2(I,T,1)!($$H1(I)) S G=1
  1. ..Q:G=1
  1. ..I $P(BGPLFLU,U)<$P(BGPG(X),U,1) S BGPLFLU=$P(BGPG(1),U,1)_U_$P(BGPG(1),U,2)
  1. S T=$O(^ATXAX("B","BGP CPT FLU",0))
  1. I T D I X]"" I $P(BGPLFLU,U)<X S BGPLFLU=$P(X,U)_U_"CPT "_$P(X,U,2)
  1. .S X=$$CPT^BGP6DU(P,,ED,T,5) I X]"" Q
  1. .S X=$$TRAN^BGP6DU(P,,ED,T,5)
  1. I BGPLFLU]"" Q BGPLFLU_U_1
  1. ;Contraindication new in 8.0
  1. S BGPT=$O(^ATXAX("B","BGP FLU IZ CVX CODES",0))
  1. S BGPZ=0 F S BGPZ=$O(^ATXAX(BGPT,21,"B",BGPZ)) Q:BGPZ=""!(X]"") S X=$$FLCONT(P,BGPZ,$$DOB^AUPNPAT(P),ED)
  1. ;F BGPZ=15,16,88,111,135,140,141,144,149,150,151,153,155,158,161 S X=$$FLCONT(P,BGPZ,$$DOB^AUPNPAT(P),ED) Q:X]""
  1. I X]"" Q X_U_3
  1. ;NMI Refusal
  1. S BGPZ=0,G="" F S BGPZ=$O(^ATXAX(BGPT,21,"B",BGPZ)) Q:BGPZ=""!(G) D
  1. .S G=$$NMIREF^BGP6UTL1(P,9999999.14,$O(^AUTTIMM("C",BGPZ,0)),$$DOB^AUPNPAT(P),ED)
  1. .I $P(G,U)=1 S G=$P(G,U,2)_U_"NMI Refusal"_U_3
  1. I G Q G
  1. S R=$$CPTREFT^BGP6UTL1(P,$$DOB^AUPNPAT(P),ED,$O(^ATXAX("B","BGP CPT FLU",0)),"N")
  1. I R Q $P(R,U,2)_U_"NMI Refusal "_$P(R,U,4)_U_3
  1. ;now check Refusals in imm pkg
  1. Q ""
  1. FLCONT(P,C,BD,ED) ;EP
  1. NEW X,G,Y,R,D
  1. S X=0,G="",Y=$O(^AUTTIMM("C",C,0)) I Y F S X=$O(^BIPC("AC",P,Y,X)) Q:X'=+X!(G) D
  1. .S R=$P(^BIPC(X,0),U,3)
  1. .Q:R=""
  1. .Q:'$D(^BICONT(R,0))
  1. .S D=$P(^BIPC(X,0),U,4)
  1. .Q:D=""
  1. .Q:$P(^BIPC(X,0),U,4)<BD
  1. .Q:$P(^BIPC(X,0),U,4)>ED
  1. .I $P(^BICONT(R,0),U,1)="Egg Allergy" S G=D_U_"Contra: Egg Allergy"
  1. .I $P(^BICONT(R,0),U,1)="Anaphylaxis" S G=D_U_"Contra Anaphylaxis"
  1. Q G
  1. H1(I) ;
  1. I $P($G(^ICPT(I,0)),U,1)=90664 Q 1
  1. I $P($G(^ICPT(I,0)),U,1)=90666 Q 1
  1. I $P($G(^ICPT(I,0)),U,1)=90667 Q 1
  1. I $P($G(^ICPT(I,0)),U,1)=90668 Q 1
  1. Q ""
  1. ROTA2(P,EDATE) ;EP
  1. NEW BGPC,BGPG,BGPX,BGPROTA,C,X,ED,BD,G,V,Y,T,I,R,BGPIMM,BGPNMI
  1. K BGPC,BGPG,BGPX
  1. ;gather up all immunizations, cpts, povs and check for 3 each ten days apart
  1. K BGPROTA
  1. ;get all immunizations
  1. S C="119"
  1. D GETIMMS^BGP6D32(P,EDATE,C,.BGPX)
  1. ;go through and set into array if 10 days apart
  1. S X=0 F S X=$O(BGPX(X)) Q:X'=+X S BGPROTA(X)=""
  1. ;now get cpts
  1. S ED=9999999-EDATE,BD=9999999-$$DOB^AUPNPAT(P),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) S Z=$P($$CPT^ICPTCOD(Y),U,2) I Z=90681 S BGPROTA(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 Z=$P($$CPT^ICPTCOD(Y),U,2) I Z=90681 S BGPROTA(9999999-$P(ED,"."))=""
  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(BGPROTA(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 BGPROTA(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 2 of them
  1. S BGPROTA=0,X=0 F S X=$O(BGPROTA(X)) Q:X'=+X S BGPROTA=BGPROTA+1
  1. I BGPROTA>1 Q 1_U_"2 Rota"
  1. F BGPZ=119 S X=$$ANIMCONT^BGP6D31(P,BGPZ,EDATE) Q:X]"" ;cmi/maw 12/17/07 missing edate
  1. I X]"" Q 4_U_"Contra Rota"
  1. ;
  1. S B=$$DOB^AUPNPAT(P),E=EDATE,BGPNMI="",R=""
  1. F BGPIMM=119 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) I $P(^AUPNPREF(Y,0),U,7)="N" S BGPNMI=1 S R=1
  1. I R Q $S(BGPNMI:4,1:3)_U_$S(BGPNMI:"NMI",1:"Ref")_" Rota"
  1. ;now check Refusals in imm pkg
  1. S BGPNMI=""
  1. ;F BGPIMM=119 S R=$$IMMREF^BGP6D32(P,BGPIMM,$$DOB^AUPNPAT(P),EDATE)+R
  1. ;I R Q 3_U_$S(BGPNMI:"NMI",1:"Ref")_" Rota"
  1. Q ""
  1. ROTA3(P,EDATE) ;EP
  1. NEW BGPC,BGPG,BGPX,BGPROTA,C,X,ED,BD,G,V,Y,T,I,R,BGPIMM,BGPNMI
  1. K BGPC,BGPG,BGPX
  1. ;gather up all immunizations, cpts, povs and check for 3 each ten days apart
  1. K BGPROTA
  1. ;get all immunizations
  1. S C="74^116^122^119"
  1. D GETIMMS^BGP6D32(P,EDATE,C,.BGPX)
  1. ;go through and set into array if 10 days apart
  1. S X=0 F S X=$O(BGPX(X)) Q:X'=+X S BGPROTA(X)=""
  1. ;now get cpts
  1. S ED=9999999-EDATE,BD=9999999-$$DOB^AUPNPAT(P),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) S Z=$P($$CPT^ICPTCOD(Y),U,2) I Z=90680!(Z=90681) S BGPROTA(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 Z=$P($$CPT^ICPTCOD(Y),U,2) I Z=90680!(Z=90681) S BGPROTA(9999999-$P(ED,"."))=""
  1. ..S X=0 F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X D
  1. ...S Y=$P(^AUPNVPOV(X,0),U,1) Q:'Y S Z=$P(^ICD9(Y,0),U,1) I Z="V05.8" S BGPROTA(9999999-$P(ED,"."))=""
  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(BGPROTA(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 BGPROTA(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 2 of them
  1. S BGPROTA=0,X=0 F S X=$O(BGPROTA(X)) Q:X'=+X S BGPROTA=BGPROTA+1
  1. I BGPROTA>2 Q 1_U_"3 Rota"
  1. F BGPZ=119,74,116,122 S X=$$ANIMCONT^BGP6D31(P,BGPZ,EDATE) Q:X]"" ;cmi/maw 12/17/07 missing edate
  1. I X]"" Q 4_U_"Contra Rota"
  1. ;
  1. S B=$$DOB^AUPNPAT(P),E=EDATE,BGPNMI="",R=""
  1. F BGPIMM=119,74,116,122 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) I $P(^AUPNPREF(Y,0),U,7)="N" S BGPNMI=1 S R=1
  1. I R Q $S(BGPNMI:4,1:3)_U_$S(BGPNMI:"NMI",1:"Ref")_" Rota"
  1. F BGPIMM=90680,90681 D
  1. .S I=+$$CODEN^ICPTCOD(BGPIMM) Q:'I
  1. .S X=0 F S X=$O(^AUPNPREF("AA",P,81,I,X)) Q:X'=+X S Y=0 F S Y=$O(^AUPNPREF("AA",P,81,I,X,Y)) Q:Y'=+Y S D=$P(^AUPNPREF(Y,0),U,3) I D'<B&(D'>E) I $P(^AUPNPREF(Y,0),U,7)="N" S BGPNMI=1 S R=1
  1. I R Q $S(BGPNMI:4,1:3)_U_$S(BGPNMI:"NMI",1:"Ref")_" Rota"
  1. ;now check Refusals in imm pkg
  1. S BGPNMI=""
  1. ;F BGPIMM=119,74,116,122 S R=$$IMMREF^BGP6D32(P,BGPIMM,$$DOB^AUPNPAT(P),EDATE)+R
  1. ;I R Q 3_U_$S(BGPNMI:"NMI",1:"Ref")_" Rota"
  1. Q ""
  1. HEPA(P,EDATE) ;EP
  1. NEW BGPC,BGPG,BGPX,BGPHEPA,C,X,ED,BD,G,V,Y,T,I,R,BGPIMM,BGPNMI
  1. K BGPC,BGPG,BGPX
  1. ;gather up all immunizations, cpts, povs and check for 3 each ten days apart
  1. K BGPHEPA
  1. ;get all immunizations
  1. S C="31^52^83^84^85^104"
  1. D GETIMMS^BGP6D32(P,EDATE,C,.BGPX)
  1. ;go through and set into array if 10 days apart
  1. S X=0 F S X=$O(BGPX(X)) Q:X'=+X S BGPHEPA(X)=""
  1. ;now get cpts
  1. S ED=9999999-EDATE,BD=9999999-$$DOB^AUPNPAT(P),G=0
  1. S T=$O(^ATXAX("B","BGP HEPATITIS A CPTS",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) S Z=$P($$CPT^ICPTCOD(Y),U,2) I $$ICD^BGP6UTL2(Y,T,1) S BGPHEPA(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 Z=$P($$CPT^ICPTCOD(Y),U,2) I $$ICD^BGP6UTL2(Y,T,1) S BGPHEPA(9999999-$P(ED,"."))=""
  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(BGPHEPA(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 BGPHEPA(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 2 of them
  1. S BGPHEPA=0,X=0 F S X=$O(BGPHEPA(X)) Q:X'=+X S BGPHEPA=BGPHEPA+1
  1. I BGPHEPA>0 Q 1_U_"1 Hep A"
  1. ;check for Evidence of desease and Contraindications and if yes, then quit
  1. K BGPG S %=P_"^LAST DX [BGP HEPATITIS A EVIDENCE;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BGPG(")
  1. I $D(BGPG(1)) Q 4_U_"Evid Hep A"
  1. I $$PLTAX^BGP6DU(P,"BGP HEPATITIS A EVIDENCE") Q 4_U_"Evid Hep A"
  1. ;
  1. F BGPZ=31,52,83,84,85,104 S X=$$ANCONT^BGP6D31(P,BGPZ,EDATE) Q:X]"" ;cmi/maw 12/17/07 missing edate
  1. I X]"" Q 4_U_"Contra Hep A"
  1. ;
  1. S B=$$DOB^AUPNPAT(P),E=EDATE,BGPNMI="",R=""
  1. F BGPIMM=31,52,83,84,85,104 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) I $P(^AUPNPREF(Y,0),U,7)="N" S BGPNMI=1 S R=1
  1. I R Q $S(BGPNMI:4,1:3)_U_$S(BGPNMI:"NMI",1:"Ref")_" Hep A"
  1. S R=$$CPTREFT^BGP6UTL1(P,$$DOB^AUPNPAT(P),EDATE,$O(^ATXAX("B","BGP HEPATITIS A CPTS",0)))
  1. I R,$P(R,U,3)="N" S BGPNMI=1 Q $S(BGPNMI:4,1:3)_U_$S(BGPNMI:"NMI",1:"Ref")_" Hep A"
  1. ;now check Refusals in imm pkg
  1. S BGPNMI=""
  1. ;F BGPIMM=31,52,83,84,85,104 S R=$$IMMREF^BGP6D32(P,BGPIMM,$$DOB^AUPNPAT(P),EDATE)+R
  1. ;I R Q 3_U_$S(BGPNMI:"NMI",1:"Ref")_" Hep A"
  1. Q ""