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

BUDHRP6C.m

Go to the documentation of this file.
  1. BUDHRP6C ;IHS/CMI/LAB - UDS T6B PROCESS;
  1. ;;13.0;IHS/RPMS UNIFORM DATA SYSTEM;;OCT 12, 2018;Build 90
  1. ;
  1. ;
  1. GETIMMS(P,BDATE,EDATE,C,BUDX) ;EP
  1. K BUDX
  1. NEW X,Y,I,Z,V
  1. S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
  1. .Q:'$D(^AUPNVIMM(X,0)) ;happens
  1. .S Y=$P(^AUPNVIMM(X,0),U)
  1. .Q:'Y ;happens too
  1. .S I=$P($G(^AUTTIMM(Y,0)),U,3) ;get HL7/CVX code
  1. .F Z=1:1:$L(C,U) I I=$P(C,U,Z) S V=$P(^AUPNVIMM(X,0),U,3) I V S D=$P($P($G(^AUPNVSIT(V,0)),U),".") I D]"",D'>EDATE,D'<BDATE S BUDX(D)="CVX: "_I_" on "_$$DATE^BUDHUTL1(D)
  1. .Q
  1. Q
  1. ;
  1. IMM ;EP - IMM
  1. ;must have 2ND DOB between in the year - 2
  1. S BUDX2YRB=($E(BUDBD,1,3)-2)_"0101"
  1. S BUDX2YRE=($E(BUDED,1,3)-2)_"1231"
  1. S BUDDOB=$P(^DPT(DFN,0),U,3)
  1. Q:BUDDOB<BUDX2YRB
  1. Q:BUDDOB>BUDX2YRE
  1. S BUD2NDBD=$E(BUDDOB,1,3)+2_$E(BUDDOB,4,7)
  1. S BUD1STBD=$E(BUDDOB,1,3)+1_$E(BUDDOB,4,7)
  1. ;
  1. Q:BUDMEDV<1 ;didn't have at least 1 medical visit
  1. ;V18 hospice
  1. Q:$$HOSPIND(DFN,BUDBD,BUDED) ;new v18, hospice during report period
  1. ;
  1. S BUDSECTC("PTS")=$G(BUDSECTC("PTS"))+1
  1. S BUDX42D=$$FMADD^XLFDT(BUDDOB,42)
  1. S BUDX180D=$$FMADD^XLFDT(BUDDOB,180)
  1. S (BUDNDTP,BUDNIPV,BUDNMMR,BUDNHEP,BUDNHIB,BUDNVAR,BUDNPNEU,BUDNHEPA,BUDNROTA,BUDNFLU)=""
  1. S BUDNDTP=$$DTAP^BUDHRP6X(DFN,BUDX42D,BUD2NDBD)
  1. S BUDNIPV=$$IPV(DFN,BUDX42D,BUD2NDBD)
  1. S BUDNMMR=$$MMR^BUDHRP6D(DFN,BUDDOB,BUD2NDBD)
  1. S BUDNHIB=$$HIB^BUDHRP6Y(DFN,BUDX42D,BUD2NDBD)
  1. S BUDNHEP=$$HEPB^BUDHRP6Y(DFN,BUDDOB,BUD2NDBD)
  1. S BUDNVAR=$$VAR^BUDHRP6Y(DFN,BUD1STBD,BUD2NDBD)
  1. S BUDNPNEU=$$PNEU^BUDHRP6Y(DFN,BUDDOB,BUD2NDBD)
  1. S BUDNHEPA=$$HEPA^BUDHRP6H(DFN,BUDDOB,BUD2NDBD)
  1. S BUDNROTA=$$ROTA^BUDHRP6H(DFN,BUDX42D,BUD2NDBD)
  1. S BUDNFLU=$$FLU^BUDHRP6H(DFN,BUDX180D,BUD2NDBD)
  1. I $P(BUDNDTP,U,1)=1,$P(BUDNIPV,U,1)=1,$P(BUDNMMR,U,1)=1,$P(BUDNHEP,U,1)=1,$P(BUDNHIB,U,1)=1,$P(BUDNVAR,U,1)=1,$P(BUDNPNEU,U,1)=1,$P(BUDNHEPA,U,1)=1,$P(BUDNROTA,U,1)=1,$P(BUDNFLU,U,1)=1 S BUDSECTC("IMM")=$G(BUDSECTC("IMM"))+1 D Q
  1. .I $G(BUDIMM1L) D
  1. ..S X=$P(BUDNDTP,U,2)_U_$P(BUDNIPV,U,2)_U_$P(BUDNMMR,U,2)_U_$P(BUDNHEP,U,2)_U_$P(BUDNHIB,U,2)_U_$P(BUDNVAR,U,2)_U_$P(BUDNPNEU,U,2)_U_$P(BUDNHEPA,U,2)_U_$P(BUDNROTA,U,2)_U_$P(BUDNFLU,U,2)_"|||"_U_BUDMEDVI
  1. ..S ^XTMP("BUDHRP6B",BUDJ,BUDH,"IMM1",$P(^DPT(DFN,0),U),BUDCCOM,DFN)=X
  1. ..Q
  1. I $G(BUDIMM2L) D
  1. .S V=""
  1. .S V=$S($P(BUDNDTP,U,1)=1:"",1:$P(BUDNDTP,U,2))
  1. .I $P(BUDNIPV,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNIPV,U,2)
  1. .I $P(BUDNMMR,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNMMR,U,2)
  1. .I $P(BUDNHEP,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNHEP,U,2)
  1. .I $P(BUDNHIB,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNHIB,U,2)
  1. .I $P(BUDNVAR,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNVAR,U,2)
  1. .I $P(BUDNPNEU,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNPNEU,U,2)
  1. .I $P(BUDNHEPA,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNHEPA,U,2)
  1. .I $P(BUDNROTA,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNROTA,U,2)
  1. .I $P(BUDNFLU,U,1)'=1 S:V]"" V=V_"; " S V=V_$P(BUDNFLU,U,2)
  1. .S ^XTMP("BUDHRP6B",BUDJ,BUDH,"IMM2",$P(^DPT(DFN,0),U),BUDCCOM,DFN)=V
  1. Q
  1. ;
  1. HOSPIND(P,BDATE,EDATE) ;EP - Hospice indicator IPC
  1. ;GET ALL VISITS IN TIME PERIOD
  1. ;CHECK SNOMED FOR INPATIENT AND DSCH
  1. ;CHECK OUTPATIENT SNOMED IN V POV
  1. ;CHECK PROBLEM LIST ENTRIES FOR NOT INACTIVE AND NOT DELETED
  1. ;
  1. ;1. CHECK V POV FOR SNOMED CODES
  1. NEW S,Y,T,G,D,M,O,A,B,V,T1
  1. S T=$O(^BUDHTSSC("B","PXRM BGP IPC HOSPICE",0))
  1. S G=""
  1. S S=0 F S S=$O(^BUDHTSSC(T,13,"B",S)) Q:S=""!(G) D
  1. .Q:'$D(^AUPNVPOV("ASNC",P,S))
  1. .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
  1. ..S Y=9999999-D
  1. ..Q:Y<BDATE
  1. ..Q:Y>EDATE
  1. ..S G=1
  1. I G Q G
  1. I $$IPLSNOND^BUDHDU(P,"PXRM BGP IPC HOSPICE",EDATE,1) Q 1
  1. I G Q G
  1. ;check all discharges V Hospitalization discharges during the report period
  1. S X=0,G=""
  1. F S X=$O(^AUPNVINP("AC",P,X)) Q:X'=+X!(G) D
  1. .Q:'$D(^AUPNVINP(X,0))
  1. .S D=$P($P(^AUPNVINP(X,0),U),".")
  1. .I D<BDATE Q
  1. .I D>EDATE Q
  1. .;is where seen correct?
  1. .S V=$P(^AUPNVINP(X,0),U,3)
  1. .Q:'V
  1. .S Z=0
  1. .S T=$O(^BUDHTSSC("B","PXRM BGP IPC INPT ENC",0))
  1. .S T1=$O(^BUDHTSSC("B","PXRM BGP IPC DISCHG HOSPICE",0))
  1. .S A=0 F S A=$O(^AUPNVSIT(V,26,"B",A)) Q:A="" I $D(^BUDHTSSC(T,13,"B",A)) S Z=1
  1. .S Y=$$VAL^XBDIQ1(9000010.02,X,6107)
  1. .I Z,Y]"",$D(^BUDHTSSC(T1,13,"B",Y)) S G=1
  1. .I G Q
  1. .S A=0 F S A=$O(^AUPNVSIT(V,28,"B",A)) Q:A="" I $D(^BUDHTSSC(T,13,"B",A)) S Z=1
  1. .S Y=$$VAL^XBDIQ1(9000010.02,X,6107)
  1. .I Z,Y]"",$D(^BUDHTSSC(T1,13,"B",Y)) S G=1
  1. Q G
  1. CONTRA(P,BD,ED,T1,LABEL) ;EP - CONTRA TO ALL VACCINES T CODES
  1. NEW D,BUDG,E,%
  1. K BUDG S %=P_"^ALL DX;DURING "_BD_"-"_ED,E=$$START1^APCLDF(%,"BUDG(")
  1. NEW X,Y,G,T,V,Z,A
  1. S T=$O(^BUDHTSSC("B","T6B IMM CONTRA ALL VACCINES",0))
  1. S G=""
  1. S X=0 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. .Q:'$D(^BUDHTSSC("AD",Y,T))
  1. .S V=$P(BUDG(X),U,5)
  1. .S Z=0 F S Z=$O(^AUPNVIMM("AD",V,Z)) Q:Z'=+Z!(G) D
  1. ..S A=$P(^AUPNVIMM(Z,0),U,1)
  1. ..S A=+$P($G(^AUTTIMM(A,0)),U,3)
  1. ..I A="" Q
  1. ..Q:'$D(^BUDHTSSC(T1,15,"B",A))
  1. ..S G=1_U_LABEL_": CONTRA "_$P(BUDG(X),U,2)_"/"_A_" on "_$$DATE^BUDHUTL1($P(BUDG(X),U,1))
  1. .;CPT
  1. .S Z=0 F S Z=$O(^AUPNVCPT("AD",V,Z)) Q:Z'=+Z!(G) D
  1. ..S A=$$VAL^XBDIQ1(9000010.18,Z,.01)
  1. ..I A="" Q
  1. ..Q:'$D(^BUDHTSSC("AC",A,T1))
  1. ..S G=1_U_LABEL_": CONTRA "_$P(BUDG(X),U,2)_"/"_A_" on "_$$DATE^BUDHUTL1($P(BUDG(X),U,1))
  1. .;POV
  1. .S Z=0 F S Z=$O(^AUPNVPOV("AD",V,Z)) Q:Z'=+Z!(G) D
  1. ..S A=$$VALI^XBDIQ1(9000010.07,Z,.01)
  1. ..I A="" Q
  1. ..I $D(^BUDHTSSC("AD",A,T1)) S G=1_U_LABEL_": CONTRA "_$P(BUDG(X),U,2)_"/"_$$VAL^XBDIQ1(9000010.07,Z,.01)_" on "_$$DATE^BUDHUTL1($P(BUDG(X),U,1))
  1. ..S A=$$VAL^XBDIQ1(9000010.07,Z,1101)
  1. ..Q:A=""
  1. ..I $D(^BUDHTSSC("AS",A,T1)) S G=1_U_LABEL_": CONTRA "_$P(BUDG(X),U,2)_"/"_A_" on "_$$DATE^BUDHUTL1($P(BUDG(X),U,1))
  1. Q G
  1. ANAREACT(I) ;EP
  1. NEW X,Y,R
  1. S X=0,Y=0 F S X=$O(^GMR(120.8,I,10,X)) Q:X'=+X D
  1. .S R=$P($G(^GMR(120.8,I,10,X,0)),U)
  1. .Q:R=""
  1. .S R=$P($G(^GMRD(120.83,R,0)),U)
  1. .I R'="ANAPHYLAXIS" Q
  1. .S Y=1
  1. .Q
  1. Q Y
  1. ;
  1. ANCONT(P,C,ED) ;EP - ANALPHYLAXIS CONTRA
  1. NEW X,G,D,R,Y
  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)="Anaphylaxis" S G=D_U_"Anaphylaxis"
  1. .I $P(^BICONT(R,0),U,1)="Baker's Yeast Allergy" S G=D_U_"Baker's Yeast Allergy"
  1. .I $P(^BICONT(R,0),U,1)="Yeast Allergy" S G=D_U_"Yeast Allergy"
  1. Q G
  1. ;
  1. EGGCONT(P,C,ED) ;EP - EGG CONTRA
  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_"Egg Allergy"
  1. Q G
  1. ANNECONT(P,C,ED) ;EP - ANALPHYLAXIS/NEOMYCIN CONTRA
  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. .I $P(^BICONT(R,0),U,1)="Anaphylaxis" S G=D_U_"Anaphylaxis"
  1. .I $P(^BICONT(R,0),U,1)="Neomycin Allergy" S G=D_U_"Neomycin Allergy"
  1. .I $P(^BICONT(R,0),U,1)="Streptomycin Allergy" S G=D_U_"Streptomycin Allergy"
  1. .I $P(^BICONT(R,0),U,1)="Polymyxin B Allergy" S G=D_U_"Polymyxin B Allergy"
  1. Q G
  1. ;
  1. MMRCONT(P,C,ED) ;EP - ANALPHYLAXIS/NEOMYCIN/IMMUNE CONTRA
  1. NEW X,R,Y,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)="Anaphylaxis" S G=D_U_"Anaphylaxis"
  1. .I $P(^BICONT(R,0),U,1)="Neomycin Allergy" S G=D_U_"Neomycin Allergy"
  1. .I $P(^BICONT(R,0),U,1)="Immune Deficiency" S G=D_U_"Immune Deficiency"
  1. .I $P(^BICONT(R,0),U,1)["Immune Deficient" S G=D_U_"Immune Deficient"
  1. .I $P(^BICONT(R,0),U,1)="Immune" S G=D_U_"Immune"
  1. Q G
  1. ;
  1. ;
  1. IPV(P,BDATE,EDATE) ;EP
  1. ;check for a contraindication from DOB to 2nd birthday
  1. NEW G,X,N,T,BUDZ,BUDG,%,E,Y,BUDD,BUDX,BUDOPV,BUDVS,TIEN,CTR,VIEN,VDATE,C
  1. IPVCONT ;check allergy tracking
  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. .I N["STREPTOMYCIN"!(N["POLYMYXIN B")!(N["NEOMYCIN") S G="1^IPV: CONTRA "_$$DATE^BUDHUTL1($P($P($G(^GMR(120.8,X,0)),U,4),"."))_" Allergy Tracking: "_N
  1. .Q:'$$ANAREACT(X) ;quit if anaphylactic is not a reaction/sign/symptom
  1. I G]"" Q G
  1. ;now check immunization package
  1. S T=$O(^BUDHTSSC("B","T6B IMM IPV CODES",0))
  1. S X=""
  1. S BUDZ=0 F S BUDZ=$O(^BUDHTSSC(T,15,"B",BUDZ)) Q:BUDZ'=+BUDZ!(X]"") D
  1. .S X=$$ANNECONT(P,BUDZ,EDATE)
  1. I X]"" Q "1^IPV: CONTRA IMM package: "_$$DATE^BUDHUTL1($P(X,U))_" "_$P(X,U,2)
  1. S T=$O(^BUDHTSSC("B","T6B IMM IPV CODES",0))
  1. S BUDZ=0 F S BUDZ=$O(^BUDHTSSC(T,15,"B",BUDZ)) Q:BUDZ'=+BUDZ!(X]"") D
  1. .S X=$$MMRCONT(P,BUDZ,EDATE)
  1. I X]"" Q "1^IPV: CONTRA IMM package: "_$$DATE^BUDHUTL1($P(X,U))_" "_$P(X,U,2)
  1. ;ALL VACCINE CONTRA
  1. S X=$$CONTRA(P,$$DOB^AUPNPAT(P),EDATE,$O(^BUDHTSSC("B","T6B IMM IPV CODES",0)),"IPV")
  1. I X]"" Q X
  1. ;now check snomed contra codes
  1. ;SNOMED ANALPHALACTIC V POV OR PROBLEM LIST?
  1. S T=$O(^BUDHTSSC("B","T6B IMM CONTRA IPV",0))
  1. S (X,Y,I)=0
  1. F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(I) D
  1. .Q:'$D(^AUPNPROB(X,0))
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .I $P(^AUPNPROB(X,0),U,13),$P(^AUPNPROB(X,0),U,13)>EDATE Q ;if there is a doo and it is after report period skip
  1. .I $P(^AUPNPROB(X,0),U,13)="",$P(^AUPNPROB(X,0),U,8)>EDATE Q ;entered after report period, skip
  1. .S S=$$VAL^XBDIQ1(9000011,X,80001)
  1. .I S]"",$D(^BUDHTSSC("AS",S,T)) S I="1^IPV: CONTRA PL "_S Q
  1. .Q
  1. I I Q I
  1. ;NOW V POV SNOMED
  1. S G="",I=""
  1. S S="" F S S=$O(^AUPNVPOV("ASNC",P,S)) Q:S=""!(G) D
  1. .S I=0
  1. .I $D(^BUDHTSSC("AS",S,T)) S I="1^IPV: CONTRA POV "_S
  1. .Q:'I
  1. .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
  1. ..S Y=9999999-D
  1. ..Q:Y>EDATE
  1. ..S G=I_"^"_$$DATE^BUDHUTL1(Y)
  1. I G Q G
  1. IPVEVID ;
  1. ;NOW EVIDENCE OF DISEASE
  1. S G=$$PLTAXND^BUDHDU(P,"BUD 18 IPV EVIDENCE",EDATE,0) I G Q "1^IPV: EVID PL "_$P(G,U,2)_" on "_$$DATE^BUDHUTL1($P(G,U,3))
  1. S G=$$LASTDX^BUDHUTL1(P,"BUD 18 IPV EVIDENCE",$$DOB^AUPNPAT(P),EDATE) I G Q "1^IPV: EVID DX "_$P(G,U,2)_" on "_$$DATE^BUDHUTL1($P(BUDG(X),U,3))
  1. K BUDD,BUDG,BUDX
  1. K BUDOPV,BUDAPOV
  1. IPVIMM ;get all immunizations
  1. S BUDOPV=0
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BUDVS") ;all visits in 42 days to end
  1. S TIEN=$O(^BUDHTSSC("B","T6B IMM IPV 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(^BUDHTSSC(TIEN,15,"B",Y)) S BUDOPV(VDATE)="CVX "_Y_" on "_$$DATE^BUDHUTL1(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(^BUDHTSSC("AC",Y,TIEN)) S BUDOPV(VDATE)="CPT "_Y_" on "_$$DATE^BUDHUTL1(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(^BUDHTSSC("AC",Y,TIEN)) S BUDOPV(VDATE)="CPT/TRAN "_Y_" on "_$$DATE^BUDHUTL1(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(^BUDHTSSC("AP",Y,TIEN)) S BUDOPV(VDATE)="PROC "_Y_" on "_$$DATE^BUDHUTL1(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(^BUDHTSSC("AS",Y,TIEN)) S BUDOPV(VDATE)="SNOMED "_Y_" on "_$$DATE^BUDHUTL1(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(BUDOPV(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 BUDOPV(X) Q
  1. .S Y=X
  1. ;now count them and see if there are 3 of them
  1. S BUDOPV=0,X=0 F S X=$O(BUDOPV(X)) Q:X'=+X S BUDOPV=BUDOPV+1
  1. I BUDOPV>2 S Y="1^IPV: total #: "_BUDOPV,X="" F S X=$O(BUDOPV(X)) Q:X'=+X S Y=Y_" "_BUDOPV(X)
  1. I BUDOPV>2 Q Y
  1. Q "0^"_(3-BUDOPV)_" IPV"
  1. ;
  1. ANALCONT(P,C,ED) ;EP - ANALPHYLAXIS CONTRA
  1. NEW X,G,D,R,Y
  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)="Anaphylaxis" S G=D_U_"Anaphylaxis"
  1. Q G
  1. ;