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

BUDDRP6Y.m

Go to the documentation of this file.
  1. BUDDRP6Y ; IHS/CMI/LAB - UDS REPORT PROCESSOR 01 Dec 2016 4:03 PM ;
  1. ;;11.0;IHS/RPMS UNIFORM DATA SYSTEM;;JAN 18, 2017;Build 66
  1. ;
  1. ;
  1. ;
  1. HEPB(P,BDATE,EDATE) ;EP
  1. ;check for a contraindication from DOB to 2nd birthday
  1. NEW G,X,N,BUDZ,T,%,E,Y,Z,BUDG,BUDD,BUDX,BUDHEPB,BUDVS,TIEN,CTR,VDATE,VIEN
  1. S G=""
  1. S X=0 F S X=$O(^GMR(120.8,"B",P,X)) Q:X'=+X!(G) D
  1. .;Q:$P($P($G(^GMR(120.8,X,0)),U,4),".")>EDATE ;entered after 2ND birthday
  1. .S N=$P($G(^GMR(120.8,X,0)),U,2),N=$$UP^XLFSTR(N)
  1. .Q:'$$ANAREACT^BUDDRP6C(X) ;quit if anaphylactic is not a reaction/sign/symptom
  1. .I N["BAKER'S YEAST"!(N["BAKERS YEAST")!(N["YEAST") S G="1^HEP B: CONTRA "_$$DATE^BUDDUTL1($P($P($G(^GMR(120.8,X,0)),U,4),"."))_" Allergy Tracking: "_N
  1. I G]"" Q G
  1. S BUDZ=0,X="",T=$O(^BUDDTSSC("B","T6B IMM HEP B CODES",0))
  1. F S BUDZ=$O(^BUDDTSSC(T,15,"B",BUDZ)) Q:BUDZ=""!(X]"") S X=$$ANCONT^BUDDRP6C(P,BUDZ,EDATE) Q:X]""
  1. I X]"" Q "1^HEP B: CONTRA IMM package "_$$DATE^BUDDUTL1($P(X,U))_" "_$P(X,U,2)
  1. ;V11.0 ICD10
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM CONTRA HEP B",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^HEP B: CONTRA DX "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,1101) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^HEP B: CONTRA DX "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM CONTRA HEP B",EDATE,0) I X Q "1^HEP B: CONTRA DX "_$P(X,U,2)_" on Problem List"
  1. ;999.4 THING
  1. S X=$$CONTRA^BUDDRP6C(P,$$DOB^AUPNPAT(P),EDATE,$O(^BUDDTSSC("B","T6B IMM HEP B CODES",0)),"HEP B")
  1. I X]"" Q X
  1. ;now check for evidence of disease
  1. HEPBEVID ;
  1. ;V11.0 ICD10
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM EVIDENCE HEP B",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^HEP B: Evidence "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U)) Q
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,.01) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^HEP B: Evidence "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM EVIDENCE HEP B",EDATE,0) I X Q "1^HEP B: Evidence: "_$P(X,U,2)_" on Problem List"
  1. K BUDD,BUDG,BUDX
  1. K BUDHEPB
  1. HEPBIMM ;get all immunizations
  1. S BUDHEPB=0
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BUDVS") ;all visits in 42 days to end
  1. S TIEN=$O(^BUDDTSSC("B","T6B IMM HEP B CODES",0))
  1. S CTR=0 F S CTR=$O(BUDVS(CTR)) Q:CTR'=+CTR D
  1. .S VIEN=$P(BUDVS(CTR),U,5)
  1. .S VDATE=$P(BUDVS(CTR),U,1)
  1. .S X=0 F S X=$O(^AUPNVIMM("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVIMM(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.11,X,.01)
  1. ..S Y=+$P($G(^AUTTIMM(Y,0)),U,3)
  1. ..Q:'Y
  1. ..I $D(^BUDDTSSC(TIEN,15,"B",Y)) S BUDHEPB(VDATE)="CVX "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;CPT
  1. .S X=0 F S X=$O(^AUPNVCPT("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVCPT(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.18,X,.01)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDHEPB(VDATE)="CPT "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V TRANS
  1. .S X=0 F S X=$O(^AUPNVTC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVTC(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.33,X,.07)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDHEPB(VDATE)="CPT/TRAN "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V PROC
  1. .S X=0 F S X=$O(^AUPNVPRC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPRC(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.08,X,.01)
  1. ..I $D(^BUDDTSSC("AP",Y,TIEN)) S BUDHEPB(VDATE)="PROC "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .S X=0 F S X=$O(^AUPNVPOV("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPOV(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.07,X,1101)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AS",Y,TIEN)) S BUDHEPB(VDATE)="SNOMED "_Y_" on "_$$DATE^BUDDUTL1(VDATE) 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(BUDHEPB(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 BUDHEPB(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 3 of them
  1. S BUDHEPB=0,X=0 F S X=$O(BUDHEPB(X)) Q:X'=+X S BUDHEPB=BUDHEPB+1
  1. I BUDHEPB>2 S Y="1^HEP B: total #: "_BUDHEPB,X="" F S X=$O(BUDHEPB(X)) Q:X'=+X S Y=Y_" "_BUDHEPB(X)
  1. I BUDHEPB>2 Q Y
  1. Q "0^"_(3-BUDHEPB)_" HEP B"
  1. HIB(P,BDATE,EDATE) ;EP
  1. ;check for a contraindication from DOB to 2nd birthday
  1. NEW BUDZ,X,T,BUDG,G,S,Z,BUDD,BUDX,BUDHIB,BUDVS,TIEN,CTR,VIEN,VDATE,Y
  1. ;now check for evidence of disease
  1. S BUDZ=0,X="",T=$O(^BUDDTSSC("B","T6B IMM HIB CODES",0))
  1. F S BUDZ=$O(^BUDDTSSC(T,15,"B",BUDZ)) Q:BUDZ=""!(X]"") S X=$$ANCONT^BUDDRP6C(P,BUDZ,EDATE) Q:X]""
  1. I X]"" Q "1^HIB: CONTRA IMM package "_$$DATE^BUDDUTL1($P(X,U))_" "_$P(X,U,2)
  1. ;V11.0 ICD10
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM CONTRA HIB",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^HIB: CONTRA DX "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,1101) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^HIB: CONTRA DX "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM CONTRA HIB",EDATE,0) I X Q "1^HIB: CONTRA DX "_$P(X,U,2)_" on Problem List"
  1. ;999.4 THING
  1. S X=$$CONTRA^BUDDRP6C(P,$$DOB^AUPNPAT(P),EDATE,$O(^BUDDTSSC("B","T6B IMM HIB CODES",0)),"HIB")
  1. I X]"" Q X
  1. ;now check for evidence of disease
  1. HIBEVID ;
  1. ;V11.0 ICD10
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM EVIDENCE HIB",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^HIB: Evidence "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U)) Q
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,1101) I S]"",$D(^BUDDTSSC("AS",S,T)) S BUDG="1^HIB: Evidence "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U)) Q
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM EVIDENCE HIB",EDATE,0) I X Q "1^HIB: Evidence "_$P(X,U,2)_" on Problem List"
  1. K BUDD,BUDG,BUDX
  1. K BUDHIB
  1. HIBIMM ;get all immunizations
  1. S BUDHIB=0
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BUDVS") ;all visits in 42 days to end
  1. S TIEN=$O(^BUDDTSSC("B","T6B IMM HIB CODES",0))
  1. S CTR=0 F S CTR=$O(BUDVS(CTR)) Q:CTR'=+CTR D
  1. .S VIEN=$P(BUDVS(CTR),U,5)
  1. .S VDATE=$P(BUDVS(CTR),U,1)
  1. .S X=0 F S X=$O(^AUPNVIMM("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVIMM(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.11,X,.01)
  1. ..S Y=+$P($G(^AUTTIMM(Y,0)),U,3)
  1. ..Q:'Y
  1. ..I $D(^BUDDTSSC(TIEN,15,"B",Y)) S BUDHIB(VDATE)="CVX "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;CPT
  1. .S X=0 F S X=$O(^AUPNVCPT("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVCPT(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.18,X,.01)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDHIB(VDATE)="CPT "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V TRANS
  1. .S X=0 F S X=$O(^AUPNVTC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVTC(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.33,X,.07)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDHIB(VDATE)="CPT/TRAN "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V PROC
  1. .S X=0 F S X=$O(^AUPNVPRC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPRC(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.08,X,.01)
  1. ..I $D(^BUDDTSSC("AP",Y,TIEN)) S BUDHIB(VDATE)="PROC "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .S X=0 F S X=$O(^AUPNVPOV("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPOV(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.07,X,1101)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AS",Y,TIEN)) S BUDHIB(VDATE)="SNOMED "_Y_" on "_$$DATE^BUDDUTL1(VDATE) 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(BUDHIB(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 BUDHIB(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 3 of them
  1. S BUDHIB=0,X=0 F S X=$O(BUDHIB(X)) Q:X'=+X S BUDHIB=BUDHIB+1
  1. I BUDHIB>2 S Y="1^HIB: total #: "_BUDHIB,X="" F S X=$O(BUDHIB(X)) Q:X'=+X S Y=Y_" "_BUDHIB(X)
  1. I BUDHIB>2 Q Y
  1. Q "0^"_(3-BUDHIB)_" HIB (3 recommended)"
  1. VAR(P,BDATE,EDATE) ;EP
  1. ;first check for contraindications
  1. VARC ;
  1. NEW BUDG,%,E,T,X,G,Y,Z,BUDZ,BUDVAR,BUDVS,TIEN,CTR,VIEN,VDATE
  1. ;V10.0 ICD10
  1. K BUDG S %=P_"^ALL DX;DURING "_BDATE_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM CONTRA VARICELLA/MMR",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^Varicella: CONTRA DX "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,1101) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^Varicella: CONTRA DX "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM CONTRA VARICELLA/MMR",EDATE,0) I X Q "1^Varicella: CONTRA DX "_$P(X,U,2)_" on Problem List"
  1. S G=""
  1. S X=0 F S X=$O(^GMR(120.8,"B",P,X)) Q:X'=+X!(G) D
  1. .;Q:$P($P($G(^GMR(120.8,X,0)),U,4),".")>EDATE ;entered after 2ND birthday
  1. .S N=$P($G(^GMR(120.8,X,0)),U,2),N=$$UP^XLFSTR(N)
  1. .Q:'$$ANAREACT^BUDDRP6C(X) ;quit if anaphylactic is not a reaction/sign/symptom
  1. .I N["NEOMYCIN" S G="1^Varicella: CONTRA "_$$DATE^BUDDUTL1($P($P($G(^GMR(120.8,X,0)),U,4),"."))_" Allergy Tracking: "_N
  1. I G]"" Q G
  1. F BUDZ=21,94 S X=$$MMRCONT^BUDDRP6C(P,BUDZ,EDATE) Q:X]""
  1. I X]"" Q "1^Varicella: CONTRA "_$P(X,U,2)_" on "_$$DATE^BUDDUTL1($P(X,U,1))_" Immunization Package"
  1. S X=$$CONTRA^BUDDRP6C(P,$$DOB^AUPNPAT(P),EDATE,$O(^BUDDTSSC("B","T6B IMM VARICELLA CODES",0)),"VAR")
  1. I X]"" Q X
  1. VAREVID ;
  1. ;any evidence of VAR?
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM EVIDENCE VARICELLA",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Y=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Y,T)) S G="1^Varicella: Evidence "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U)) Q
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,.01) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^Varicella: Evidence "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM EVIDENCE VARICELLA",EDATE,0) I X Q "1^Varicella: Evidence "_$P(X,U,2)_" on Problem List"
  1. VARI ;
  1. S BUDVAR=""
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BUDVS") ;all visits in 42 days to end
  1. S TIEN=$O(^BUDDTSSC("B","T6B IMM VARICELLA CODES",0))
  1. S CTR=0 F S CTR=$O(BUDVS(CTR)) Q:CTR'=+CTR D
  1. .S VIEN=$P(BUDVS(CTR),U,5)
  1. .S VDATE=$P(BUDVS(CTR),U,1)
  1. .S X=0 F S X=$O(^AUPNVIMM("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVIMM(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.11,X,.01)
  1. ..S Y=+$P($G(^AUTTIMM(Y,0)),U,3)
  1. ..Q:'Y
  1. ..I $D(^BUDDTSSC(TIEN,15,"B",Y)) S BUDVAR="CVX "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;CPT
  1. .S X=0 F S X=$O(^AUPNVCPT("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVCPT(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.18,X,.01)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDVAR="CPT "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V TRANS
  1. .S X=0 F S X=$O(^AUPNVTC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVTC(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.33,X,.07)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDVAR="CPT/TRAN "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V PROC
  1. .S X=0 F S X=$O(^AUPNVPRC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPRC(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.08,X,.01)
  1. ..I $D(^BUDDTSSC("AP",Y,TIEN)) S BUDVAR="PROC "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .S X=0 F S X=$O(^AUPNVPOV("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPOV(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.07,X,1101)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AS",Y,TIEN)) S BUDVAR="SNOMED: "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. I BUDVAR]"" Q "1^VAR "_BUDVAR
  1. ;
  1. Q "0^1 VAR"
  1. ;
  1. PNEU(P,BDATE,EDATE) ;EP
  1. NEW BUDD,BUDG,BUDX,BUDZ,X,Y,G,Z,BUDPNEU,BUCDV,TIEN,CTR,VIEN,VDATE,C
  1. F BUDZ=33,100,109,133,152 S X=$$ANCONT^BUDDRP6C(P,BUDZ,EDATE)
  1. I X]"" Q "1^PNEUMO: CONTRA IMM package: "_$$DATE^BUDDUTL1($P(X,U))_" "_$P(X,U,2)
  1. K BUDG S %=P_"^ALL DX;DURING "_$$DOB^AUPNPAT(P)_"-"_EDATE,E=$$START1^APCLDF(%,"BUDG(")
  1. S T=$O(^BUDDTSSC("B","T6B IMM CONTRA PNEUMO",0))
  1. S X=0,G="" F S X=$O(BUDG(X)) Q:X'=+X!(G]"") D
  1. .S Y=+$P(BUDG(X),U,4)
  1. .S Z=$P($G(^AUPNVPOV(Y,0)),U,1)
  1. .I $D(^BUDDTSSC("AD",Z,T)) S G="1^PNEUMO: CONTRA DX "_$P(BUDG(X),U,2)_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. .S S=$$VAL^XBDIQ1(9000010.07,Y,1101) I S]"",$D(^BUDDTSSC("AS",S,T)) S G="1^PNEUMO: CONTRA DX "_S_" on "_$$DATE^BUDDUTL1($P(BUDG(X),U))
  1. I G]"" Q G
  1. S X=$$PLCL^BUDDDU(P,"T6B IMM CONTRA PNEUMO",EDATE,0) I X Q "1^PNEUMO: CONTRA DX "_$P(X,U,2)_" on Problem List"
  1. S X=$$CONTRA^BUDDRP6C(P,$$DOB^AUPNPAT(P),EDATE,$O(^BUDDTSSC("B","T6B IMM PNEUMO CODES",0)),"PNEUMO")
  1. I X]"" Q X
  1. PNEUIMM ;get all immunizations
  1. S BUDPNEU=""
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BUDVS") ;all visits in 42 days to end
  1. S TIEN=$O(^BUDDTSSC("B","T6B IMM PNEUMO CODES",0))
  1. S CTR=0 F S CTR=$O(BUDVS(CTR)) Q:CTR'=+CTR D
  1. .S VIEN=$P(BUDVS(CTR),U,5)
  1. .S VDATE=$P(BUDVS(CTR),U,1)
  1. .S X=0 F S X=$O(^AUPNVIMM("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVIMM(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.11,X,.01)
  1. ..S Y=+$P($G(^AUTTIMM(Y,0)),U,3)
  1. ..Q:'Y
  1. ..I $D(^BUDDTSSC(TIEN,15,"B",Y)) S BUDPNEU(VDATE)="CVX "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;CPT
  1. .S X=0 F S X=$O(^AUPNVCPT("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVCPT(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.18,X,.01)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDPNEU(VDATE)="CPT "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V TRANS
  1. .S X=0 F S X=$O(^AUPNVTC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVTC(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.33,X,.07)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AC",Y,TIEN)) S BUDPNEU(VDATE)="CPT/TRAN "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .;V PROC
  1. .S X=0 F S X=$O(^AUPNVPRC("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPRC(X,0))
  1. ..S Y=$$VALI^XBDIQ1(9000010.08,X,.01)
  1. ..I $D(^BUDDTSSC("AP",Y,TIEN)) S BUDPNEU(VDATE)="PROC "_Y_" on "_$$DATE^BUDDUTL1(VDATE) Q
  1. .S X=0 F S X=$O(^AUPNVPOV("AD",VIEN,X)) Q:X'=+X D
  1. ..Q:'$D(^AUPNVPOV(X,0))
  1. ..S Y=$$VAL^XBDIQ1(9000010.07,X,1101)
  1. ..Q:Y=""
  1. ..I $D(^BUDDTSSC("AS",Y,TIEN)) S BUDPNEU(VDATE)="SNOMED "_Y_" on "_$$DATE^BUDDUTL1(VDATE) 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(BUDPNEU(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 BUDPNEU(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 4 of them
  1. S BUDPNEU=0,X=0 F S X=$O(BUDPNEU(X)) Q:X'=+X S BUDPNEU=BUDPNEU+1
  1. I BUDPNEU>3 S Y="1^PNEUMO: total #: "_BUDPNEU,X="" F S X=$O(BUDPNEU(X)) Q:X'=+X S Y=Y_" "_BUDPNEU(X)
  1. I BUDPNEU>3 Q Y
  1. S X=4-BUDPNEU
  1. Q "0^"_X_" PNEUMO"