- BGP8PC65 ; IHS/CMI/LAB - measure I2 ; 02 Feb 2018 11:25 AM
- ;;18.1;IHS CLINICAL REPORTING;**1**;MAY 25, 2018;Build 65
- ;
- VZV(P) ;
- NEW A730,X,Y,Z,TCVX,TCPT,C,BGPIMMS,D,V,BGPZ
- S TCVX=$O(^ATXAX("B","BGP IPC VZV CVX CODES",0))
- S TCPT=$O(^ATXAX("B","BGP IPC VZV CPT CODES",0))
- S A730=$$FMADD^XLFDT($$DOB^AUPNPAT(P),730)
- S X=0 F S X=$O(^AUPNVIMM("AC",P,X)) Q:X'=+X D
- .Q:'$D(^AUPNVIMM(X,0)) ;happens
- .S Y=$P(^AUPNVIMM(X,0),U)
- .Q:'Y ;happens too
- .S I=$P($G(^AUTTIMM(Y,0)),U,3) ;get HL7/CVX code
- .Q:'$D(^ATXAX(TCVX,21,"B",I))
- .S D=$P($P($G(^AUPNVIMM(X,12)),U,1),".")
- .I D="" S V=$P(^AUPNVIMM(X,0),U,3) I V S D=$P($P($G(^AUPNVSIT(V,0)),U),".")
- .Q:D>A730
- .S BGPIMMS(D)=Y
- .Q
- ;go through and set into array if 1 days apart
- S X="",Y="",C=0 F S X=$O(BGPIMMS(X)) Q:X'=+X S C=C+1 D
- .I C=1 S Y=X Q
- .I $$FMDIFF^XLFDT(X,Y)<1 K BGPIMMS(X) Q
- .S Y=X
- ;see if there are 1 of them, if there are quit
- S BGPIMMS=0,X=0 F S X=$O(BGPIMMS(X)) Q:X'=+X S BGPIMMS=BGPIMMS+1
- I BGPIMMS>0 Q 1_U_"1 VZV"
- ;now get cpts
- S G="",X=0
- F S X=$O(^AUPNVCPT("AC",P,X)) Q:X="" D
- .Q:'$D(^AUPNVCPT(X,0))
- .S Y=$P(^AUPNVCPT(X,0),U)
- .Q:'$$ICD^BGP8UTL2(Y,TCPT,1)
- .S V=$P(^AUPNVCPT(X,0),U,3) Q:'V
- .S D=$$VD^APCLV(V)
- .Q:D>A730
- .S BGPIMMS(D)=""
- ;get tran codes
- S X=0 F S X=$O(^AUPNVTC("AC",P,X)) Q:X'=+X D
- .Q:'$D(^AUPNVTC(X,0))
- .S Y=$P(^AUPNVTC(X,0),U,7) Q:'Y
- .Q:'$$ICD^BGP8UTL2(Y,TCPT,1)
- .S V=$P(^AUPNVTC(X,0),U,3) Q:'V
- .S D=$$VD^APCLV(V)
- .Q:D>A730
- .S BGPIMMS(D)=""
- ;
- ;go through and set into array if 1 days apart
- S X="",Y="",C=0 F S X=$O(BGPIMMS(X)) Q:X'=+X S C=C+1 D
- .I C=1 S Y=X Q
- .I $$FMDIFF^XLFDT(X,Y)<1 K BGPIMMS(X) Q
- .S Y=X
- ;see if there are 3 of them, if there are quit
- S BGPIMMS=0,X=0 F S X=$O(BGPIMMS(X)) Q:X'=+X S BGPIMMS=BGPIMMS+1
- I BGPIMMS>0 Q 1_U_"1 VZV"
- ;NOW CHECK FOR CONTRAINDICATION
- ;IMM PKG ANAPHYLACTIS
- S BGPZ=0
- F S BGPZ=$O(^ATXAX(TCVX,21,"B",BGPZ)) Q:BGPZ=""!(X]"") D
- .S X=$$ANVZV(P,BGPZ,A730)
- I X]"" Q 1_U_"VZV CONTRA ANAPHYLACTIC/NEOMYCIN"
- S X=$$ANSNVZV(P,A730) I X Q 1_U_"VZV CONTRA ANAPHYLACTIC REACTION"
- S X=$$DIS(P,A730) I X Q 1_U_"VZV CONTRA DIS IMMUNE SYS"
- S X=$$HIV(P,A730) I X Q 1_U_"VZV CONTRA HIV"
- S X=$$MNLHT(P,A730) I X Q 1_U_"VZV CONTRA NEOPLASM"
- S X=$$EVIDVZV(P,A730) I X Q 1_U_"EVIDENCE OF VZV"
- Q ""
- ANSNVZV(P,EDATE) ;
- ;V POV OR PROBLEM LIST
- NEW X,Y,Z,G,T,S,D,I
- S (X,Y,I)=0
- F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(I) D
- .Q:'$D(^AUPNPROB(X,0))
- .Q:$P(^AUPNPROB(X,0),U,12)="D"
- .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
- .I $P(^AUPNPROB(X,0),U,13)="",$P(^AUPNPROB(X,0),U,8)>EDATE Q ;entered after report period, skip
- .S S=$$VAL^XBDIQ1(9000011,X,80001)
- .I S=292927007 S I=1 Q
- .Q
- I I Q I
- ;NOW V POV SNOMED
- ;NOW SNOMED USING ASNC
- S G="",I=""
- S S="" F S S=$O(^AUPNVPOV("ASNC",P,S)) Q:S=""!(G) D
- .S I=0
- .I S=292927007 S I=1
- .Q:'I
- .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
- ..S Y=9999999-D
- ..Q:Y>EDATE
- ..S G=1
- I G Q G
- ;REFUSAL FILE
- S I="" F S I=$O(^AUPNPREF("AA",P,9002318.4,I)) Q:I=""!(G) D
- .I I'=292927007 Q ;IF IT'S SNOMED, MUST BE THAT ONE
- .S ID=0 F S ID=$O(^AUPNPREF("AA",P,9002318.4,I,ID)) Q:ID=""!(G) D
- ..S D=9999999-ID
- ..Q:D>EDATE
- ..S G=1
- Q G
- ANVZV(P,C,ED) ;EP - ANALPHYLAXIS/NEOMYCIN CONTRAINDICATION
- NEW X,G,Y,R,D
- 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
- .S R=$P(^BIPC(X,0),U,3)
- .Q:R=""
- .Q:'$D(^BICONT(R,0))
- .S D=$P(^BIPC(X,0),U,4)
- .Q:D=""
- .;Q:$P(^BIPC(X,0),U,4)<BD
- .Q:$P(^BIPC(X,0),U,4)>ED
- .I $P(^BICONT(R,0),U,1)="Anaphylaxis" S G=D_U_"Contra Anaphylaxis"
- .I $P(^BICONT(R,0),U,1)="Neomycin Allergy" S G=D_U_"Contra: Neomycin Allergy"
- .I $P(^BICONT(R,0),U,1)="Immune Deficiency" S G=D_U_"Contra: Immune Deficiency"
- Q G
- EVIDVZV(P,EDATE) ;
- ;is there HEP B evidence
- ;V POV OR PROBLEM LIST
- NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- I $$PLTAXND^BGP8DU(P,"BGP IPC VARICELLA DXS",EDATE,0) Q 1
- I $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC VZV EVID",EDATE,0) Q 1
- I $$LASTDX^BGP8UTL1(P,"BGP IPC VARICELLA DXS",$$DOB^AUPNPAT(P),EDATE) Q 1
- ;NOW V POV SNOMED
- ;NOW SNOMED USING ASNC
- S T="PXRM BGP IPC VZV EVID"
- S G=""
- S S=0 F S S=$O(^XTMP("BGPSNOMEDSUBSET",$J,T,S)) Q:S=""!(G) D
- .Q:'$D(^AUPNVPOV("ASNC",P,S))
- .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
- ..S Y=9999999-D
- ..Q:Y>EDATE
- ..S G=1
- I G Q 1
- MLT ;
- S E=9999999-EDATE,G="" S D=E-1 F S D=$O(^AUPNVLAB("AE",P,D)) Q:D'=+D!(G) D
- .S L=0 F S L=$O(^AUPNVLAB("AE",P,D,L)) Q:L'=+L!(G) D
- ..S X=0 F S X=$O(^AUPNVLAB("AE",P,D,L,X)) Q:X'=+X!(G) D
- ...Q:'$D(^AUPNVLAB(X,0))
- ...S J=$P($G(^AUPNVLAB(X,11)),U,13) Q:J=""
- ...Q:'$$LOINCVZV(J)
- ...S R=$P(^AUPNVLAB(X,0),U,4)
- ...S R=+R
- ...I R'<1.10 S G=1
- ...Q
- I G Q 1
- Q ""
- LOINCVZV(A) ;is this a HEP B loinc code
- NEW %
- S %=$P($G(^LAB(95.3,A,0)),U)_"-"_$P($G(^LAB(95.3,A,0)),U,15)
- I %="21595-4" Q 1
- I %="22601-9" Q 1
- I %="22602-7" Q 1
- I %="6569-8" Q 1
- Q ""
- DIS(P,EDATE) ;EP
- NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- I $$PLTAXND^BGP8DU(P,"BGP IPC IMMUNE DISORDERS DXS",EDATE,0) Q 1
- I $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC IMMUNE DIS",EDATE,0) Q 1
- I $$LASTDX^BGP8UTL1(P,"BGP IPC IMMUNE DISORDERS DXS",$$DOB^AUPNPAT(P),EDATE) Q 1
- ;NOW V POV SNOMED
- ;NOW SNOMED USING ASNC
- S T="PXRM BGP IPC IMMUNE DIS"
- S G=""
- S S=0 F S S=$O(^XTMP("BGPSNOMEDSUBSET",$J,T,S)) Q:S=""!(G) D
- .Q:'$D(^AUPNVPOV("ASNC",P,S))
- .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
- ..S Y=9999999-D
- ..Q:Y>EDATE
- ..S G=1
- Q G
- HIV(P,EDATE) ;EP
- NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- I $$PLTAXND^BGP8DU(P,"BGP IPC HIV DXS",EDATE,0) Q 1
- I $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC HIV",EDATE,0) Q 1
- I $$LASTDX^BGP8UTL1(P,"BGP IPC HIV DXS",$$DOB^AUPNPAT(P),EDATE) Q 1
- ;NOW V POV SNOMED
- ;NOW SNOMED USING ASNC
- S T="PXRM BGP IPC HIV"
- S G=""
- S S=0 F S S=$O(^XTMP("BGPSNOMEDSUBSET",$J,T,S)) Q:S=""!(G) D
- .Q:'$D(^AUPNVPOV("ASNC",P,S))
- .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
- ..S Y=9999999-D
- ..Q:Y>EDATE
- ..S G=1
- Q G
- MNLHT(P,EDATE) ;EP
- NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- I $$PLTAXND^BGP8DU(P,"BGP IPC LYMPHATIC CANCER DXS",EDATE,0) Q 1
- I $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC LYMPH CANCER",EDATE,0) Q 1
- I $$LASTDX^BGP8UTL1(P,"BGP IPC LYMPHATIC CANCER DXS",$$DOB^AUPNPAT(P),EDATE) Q 1
- ;NOW V POV SNOMED
- ;NOW SNOMED USING ASNC
- S T="PXRM BGP IPC LYMPH CANCER"
- S G=""
- S S=0 F S S=$O(^XTMP("BGPSNOMEDSUBSET",$J,T,S)) Q:S=""!(G) D
- .Q:'$D(^AUPNVPOV("ASNC",P,S))
- .S D=0 F S D=$O(^AUPNVPOV("ASNC",P,S,D)) Q:D=""!(G) D
- ..S Y=9999999-D
- ..Q:Y>EDATE
- ..S G=1
- Q G
- BGP8PC65 ; IHS/CMI/LAB - measure I2 ; 02 Feb 2018 11:25 AM
- +1 ;;18.1;IHS CLINICAL REPORTING;**1**;MAY 25, 2018;Build 65
- +2 ;
- VZV(P) ;
- +1 NEW A730,X,Y,Z,TCVX,TCPT,C,BGPIMMS,D,V,BGPZ
- +2 SET TCVX=$ORDER(^ATXAX("B","BGP IPC VZV CVX CODES",0))
- +3 SET TCPT=$ORDER(^ATXAX("B","BGP IPC VZV CPT CODES",0))
- +4 SET A730=$$FMADD^XLFDT($$DOB^AUPNPAT(P),730)
- +5 SET X=0
- FOR
- SET X=$ORDER(^AUPNVIMM("AC",P,X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +6 ;happens
- IF '$DATA(^AUPNVIMM(X,0))
- QUIT
- +7 SET Y=$PIECE(^AUPNVIMM(X,0),U)
- +8 ;happens too
- IF 'Y
- QUIT
- +9 ;get HL7/CVX code
- SET I=$PIECE($GET(^AUTTIMM(Y,0)),U,3)
- +10 IF '$DATA(^ATXAX(TCVX,21,"B",I))
- QUIT
- +11 SET D=$PIECE($PIECE($GET(^AUPNVIMM(X,12)),U,1),".")
- +12 IF D=""
- SET V=$PIECE(^AUPNVIMM(X,0),U,3)
- IF V
- SET D=$PIECE($PIECE($GET(^AUPNVSIT(V,0)),U),".")
- +13 IF D>A730
- QUIT
- +14 SET BGPIMMS(D)=Y
- +15 QUIT
- End DoDot:1
- +16 ;go through and set into array if 1 days apart
- +17 SET X=""
- SET Y=""
- SET C=0
- FOR
- SET X=$ORDER(BGPIMMS(X))
- IF X'=+X
- QUIT
- SET C=C+1
- Begin DoDot:1
- +18 IF C=1
- SET Y=X
- QUIT
- +19 IF $$FMDIFF^XLFDT(X,Y)<1
- KILL BGPIMMS(X)
- QUIT
- +20 SET Y=X
- End DoDot:1
- +21 ;see if there are 1 of them, if there are quit
- +22 SET BGPIMMS=0
- SET X=0
- FOR
- SET X=$ORDER(BGPIMMS(X))
- IF X'=+X
- QUIT
- SET BGPIMMS=BGPIMMS+1
- +23 IF BGPIMMS>0
- QUIT 1_U_"1 VZV"
- +24 ;now get cpts
- +25 SET G=""
- SET X=0
- +26 FOR
- SET X=$ORDER(^AUPNVCPT("AC",P,X))
- IF X=""
- QUIT
- Begin DoDot:1
- +27 IF '$DATA(^AUPNVCPT(X,0))
- QUIT
- +28 SET Y=$PIECE(^AUPNVCPT(X,0),U)
- +29 IF '$$ICD^BGP8UTL2(Y,TCPT,1)
- QUIT
- +30 SET V=$PIECE(^AUPNVCPT(X,0),U,3)
- IF 'V
- QUIT
- +31 SET D=$$VD^APCLV(V)
- +32 IF D>A730
- QUIT
- +33 SET BGPIMMS(D)=""
- End DoDot:1
- +34 ;get tran codes
- +35 SET X=0
- FOR
- SET X=$ORDER(^AUPNVTC("AC",P,X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +36 IF '$DATA(^AUPNVTC(X,0))
- QUIT
- +37 SET Y=$PIECE(^AUPNVTC(X,0),U,7)
- IF 'Y
- QUIT
- +38 IF '$$ICD^BGP8UTL2(Y,TCPT,1)
- QUIT
- +39 SET V=$PIECE(^AUPNVTC(X,0),U,3)
- IF 'V
- QUIT
- +40 SET D=$$VD^APCLV(V)
- +41 IF D>A730
- QUIT
- +42 SET BGPIMMS(D)=""
- End DoDot:1
- +43 ;
- +44 ;go through and set into array if 1 days apart
- +45 SET X=""
- SET Y=""
- SET C=0
- FOR
- SET X=$ORDER(BGPIMMS(X))
- IF X'=+X
- QUIT
- SET C=C+1
- Begin DoDot:1
- +46 IF C=1
- SET Y=X
- QUIT
- +47 IF $$FMDIFF^XLFDT(X,Y)<1
- KILL BGPIMMS(X)
- QUIT
- +48 SET Y=X
- End DoDot:1
- +49 ;see if there are 3 of them, if there are quit
- +50 SET BGPIMMS=0
- SET X=0
- FOR
- SET X=$ORDER(BGPIMMS(X))
- IF X'=+X
- QUIT
- SET BGPIMMS=BGPIMMS+1
- +51 IF BGPIMMS>0
- QUIT 1_U_"1 VZV"
- +52 ;NOW CHECK FOR CONTRAINDICATION
- +53 ;IMM PKG ANAPHYLACTIS
- +54 SET BGPZ=0
- +55 FOR
- SET BGPZ=$ORDER(^ATXAX(TCVX,21,"B",BGPZ))
- IF BGPZ=""!(X]"")
- QUIT
- Begin DoDot:1
- +56 SET X=$$ANVZV(P,BGPZ,A730)
- End DoDot:1
- +57 IF X]""
- QUIT 1_U_"VZV CONTRA ANAPHYLACTIC/NEOMYCIN"
- +58 SET X=$$ANSNVZV(P,A730)
- IF X
- QUIT 1_U_"VZV CONTRA ANAPHYLACTIC REACTION"
- +59 SET X=$$DIS(P,A730)
- IF X
- QUIT 1_U_"VZV CONTRA DIS IMMUNE SYS"
- +60 SET X=$$HIV(P,A730)
- IF X
- QUIT 1_U_"VZV CONTRA HIV"
- +61 SET X=$$MNLHT(P,A730)
- IF X
- QUIT 1_U_"VZV CONTRA NEOPLASM"
- +62 SET X=$$EVIDVZV(P,A730)
- IF X
- QUIT 1_U_"EVIDENCE OF VZV"
- +63 QUIT ""
- ANSNVZV(P,EDATE) ;
- +1 ;V POV OR PROBLEM LIST
- +2 NEW X,Y,Z,G,T,S,D,I
- +3 SET (X,Y,I)=0
- +4 FOR
- SET X=$ORDER(^AUPNPROB("AC",P,X))
- IF X'=+X!(I)
- QUIT
- Begin DoDot:1
- +5 IF '$DATA(^AUPNPROB(X,0))
- QUIT
- +6 IF $PIECE(^AUPNPROB(X,0),U,12)="D"
- QUIT
- +7 ;if there is a doo and it is after report period skip
- IF $PIECE(^AUPNPROB(X,0),U,13)
- IF $PIECE(^AUPNPROB(X,0),U,13)>EDATE
- QUIT
- +8 ;entered after report period, skip
- IF $PIECE(^AUPNPROB(X,0),U,13)=""
- IF $PIECE(^AUPNPROB(X,0),U,8)>EDATE
- QUIT
- +9 SET S=$$VAL^XBDIQ1(9000011,X,80001)
- +10 IF S=292927007
- SET I=1
- QUIT
- +11 QUIT
- End DoDot:1
- +12 IF I
- QUIT I
- +13 ;NOW V POV SNOMED
- +14 ;NOW SNOMED USING ASNC
- +15 SET G=""
- SET I=""
- +16 SET S=""
- FOR
- SET S=$ORDER(^AUPNVPOV("ASNC",P,S))
- IF S=""!(G)
- QUIT
- Begin DoDot:1
- +17 SET I=0
- +18 IF S=292927007
- SET I=1
- +19 IF 'I
- QUIT
- +20 SET D=0
- FOR
- SET D=$ORDER(^AUPNVPOV("ASNC",P,S,D))
- IF D=""!(G)
- QUIT
- Begin DoDot:2
- +21 SET Y=9999999-D
- +22 IF Y>EDATE
- QUIT
- +23 SET G=1
- End DoDot:2
- End DoDot:1
- +24 IF G
- QUIT G
- +25 ;REFUSAL FILE
- +26 SET I=""
- FOR
- SET I=$ORDER(^AUPNPREF("AA",P,9002318.4,I))
- IF I=""!(G)
- QUIT
- Begin DoDot:1
- +27 ;IF IT'S SNOMED, MUST BE THAT ONE
- IF I'=292927007
- QUIT
- +28 SET ID=0
- FOR
- SET ID=$ORDER(^AUPNPREF("AA",P,9002318.4,I,ID))
- IF ID=""!(G)
- QUIT
- Begin DoDot:2
- +29 SET D=9999999-ID
- +30 IF D>EDATE
- QUIT
- +31 SET G=1
- End DoDot:2
- End DoDot:1
- +32 QUIT G
- ANVZV(P,C,ED) ;EP - ANALPHYLAXIS/NEOMYCIN CONTRAINDICATION
- +1 NEW X,G,Y,R,D
- +2 SET X=0
- SET G=""
- SET Y=$ORDER(^AUTTIMM("C",C,0))
- IF Y
- FOR
- SET X=$ORDER(^BIPC("AC",P,Y,X))
- IF X'=+X!(G)
- QUIT
- Begin DoDot:1
- +3 SET R=$PIECE(^BIPC(X,0),U,3)
- +4 IF R=""
- QUIT
- +5 IF '$DATA(^BICONT(R,0))
- QUIT
- +6 SET D=$PIECE(^BIPC(X,0),U,4)
- +7 IF D=""
- QUIT
- +8 ;Q:$P(^BIPC(X,0),U,4)<BD
- +9 IF $PIECE(^BIPC(X,0),U,4)>ED
- QUIT
- +10 IF $PIECE(^BICONT(R,0),U,1)="Anaphylaxis"
- SET G=D_U_"Contra Anaphylaxis"
- +11 IF $PIECE(^BICONT(R,0),U,1)="Neomycin Allergy"
- SET G=D_U_"Contra: Neomycin Allergy"
- +12 IF $PIECE(^BICONT(R,0),U,1)="Immune Deficiency"
- SET G=D_U_"Contra: Immune Deficiency"
- End DoDot:1
- +13 QUIT G
- EVIDVZV(P,EDATE) ;
- +1 ;is there HEP B evidence
- +2 ;V POV OR PROBLEM LIST
- +3 NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- +4 IF $$PLTAXND^BGP8DU(P,"BGP IPC VARICELLA DXS",EDATE,0)
- QUIT 1
- +5 IF $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC VZV EVID",EDATE,0)
- QUIT 1
- +6 IF $$LASTDX^BGP8UTL1(P,"BGP IPC VARICELLA DXS",$$DOB^AUPNPAT(P),EDATE)
- QUIT 1
- +7 ;NOW V POV SNOMED
- +8 ;NOW SNOMED USING ASNC
- +9 SET T="PXRM BGP IPC VZV EVID"
- +10 SET G=""
- +11 SET S=0
- FOR
- SET S=$ORDER(^XTMP("BGPSNOMEDSUBSET",$JOB,T,S))
- IF S=""!(G)
- QUIT
- Begin DoDot:1
- +12 IF '$DATA(^AUPNVPOV("ASNC",P,S))
- QUIT
- +13 SET D=0
- FOR
- SET D=$ORDER(^AUPNVPOV("ASNC",P,S,D))
- IF D=""!(G)
- QUIT
- Begin DoDot:2
- +14 SET Y=9999999-D
- +15 IF Y>EDATE
- QUIT
- +16 SET G=1
- End DoDot:2
- End DoDot:1
- +17 IF G
- QUIT 1
- MLT ;
- +1 SET E=9999999-EDATE
- SET G=""
- SET D=E-1
- FOR
- SET D=$ORDER(^AUPNVLAB("AE",P,D))
- IF D'=+D!(G)
- QUIT
- Begin DoDot:1
- +2 SET L=0
- FOR
- SET L=$ORDER(^AUPNVLAB("AE",P,D,L))
- IF L'=+L!(G)
- QUIT
- Begin DoDot:2
- +3 SET X=0
- FOR
- SET X=$ORDER(^AUPNVLAB("AE",P,D,L,X))
- IF X'=+X!(G)
- QUIT
- Begin DoDot:3
- +4 IF '$DATA(^AUPNVLAB(X,0))
- QUIT
- +5 SET J=$PIECE($GET(^AUPNVLAB(X,11)),U,13)
- IF J=""
- QUIT
- +6 IF '$$LOINCVZV(J)
- QUIT
- +7 SET R=$PIECE(^AUPNVLAB(X,0),U,4)
- +8 SET R=+R
- +9 IF R'<1.10
- SET G=1
- +10 QUIT
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +11 IF G
- QUIT 1
- +12 QUIT ""
- LOINCVZV(A) ;is this a HEP B loinc code
- +1 NEW %
- +2 SET %=$PIECE($GET(^LAB(95.3,A,0)),U)_"-"_$PIECE($GET(^LAB(95.3,A,0)),U,15)
- +3 IF %="21595-4"
- QUIT 1
- +4 IF %="22601-9"
- QUIT 1
- +5 IF %="22602-7"
- QUIT 1
- +6 IF %="6569-8"
- QUIT 1
- +7 QUIT ""
- DIS(P,EDATE) ;EP
- +1 NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- +2 IF $$PLTAXND^BGP8DU(P,"BGP IPC IMMUNE DISORDERS DXS",EDATE,0)
- QUIT 1
- +3 IF $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC IMMUNE DIS",EDATE,0)
- QUIT 1
- +4 IF $$LASTDX^BGP8UTL1(P,"BGP IPC IMMUNE DISORDERS DXS",$$DOB^AUPNPAT(P),EDATE)
- QUIT 1
- +5 ;NOW V POV SNOMED
- +6 ;NOW SNOMED USING ASNC
- +7 SET T="PXRM BGP IPC IMMUNE DIS"
- +8 SET G=""
- +9 SET S=0
- FOR
- SET S=$ORDER(^XTMP("BGPSNOMEDSUBSET",$JOB,T,S))
- IF S=""!(G)
- QUIT
- Begin DoDot:1
- +10 IF '$DATA(^AUPNVPOV("ASNC",P,S))
- QUIT
- +11 SET D=0
- FOR
- SET D=$ORDER(^AUPNVPOV("ASNC",P,S,D))
- IF D=""!(G)
- QUIT
- Begin DoDot:2
- +12 SET Y=9999999-D
- +13 IF Y>EDATE
- QUIT
- +14 SET G=1
- End DoDot:2
- End DoDot:1
- +15 QUIT G
- HIV(P,EDATE) ;EP
- +1 NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- +2 IF $$PLTAXND^BGP8DU(P,"BGP IPC HIV DXS",EDATE,0)
- QUIT 1
- +3 IF $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC HIV",EDATE,0)
- QUIT 1
- +4 IF $$LASTDX^BGP8UTL1(P,"BGP IPC HIV DXS",$$DOB^AUPNPAT(P),EDATE)
- QUIT 1
- +5 ;NOW V POV SNOMED
- +6 ;NOW SNOMED USING ASNC
- +7 SET T="PXRM BGP IPC HIV"
- +8 SET G=""
- +9 SET S=0
- FOR
- SET S=$ORDER(^XTMP("BGPSNOMEDSUBSET",$JOB,T,S))
- IF S=""!(G)
- QUIT
- Begin DoDot:1
- +10 IF '$DATA(^AUPNVPOV("ASNC",P,S))
- QUIT
- +11 SET D=0
- FOR
- SET D=$ORDER(^AUPNVPOV("ASNC",P,S,D))
- IF D=""!(G)
- QUIT
- Begin DoDot:2
- +12 SET Y=9999999-D
- +13 IF Y>EDATE
- QUIT
- +14 SET G=1
- End DoDot:2
- End DoDot:1
- +15 QUIT G
- MNLHT(P,EDATE) ;EP
- +1 NEW X,Y,Z,G,T,S,D,E,R,L,J,ME
- +2 IF $$PLTAXND^BGP8DU(P,"BGP IPC LYMPHATIC CANCER DXS",EDATE,0)
- QUIT 1
- +3 IF $$IPLSNOND^BGP8DU(P,"PXRM BGP IPC LYMPH CANCER",EDATE,0)
- QUIT 1
- +4 IF $$LASTDX^BGP8UTL1(P,"BGP IPC LYMPHATIC CANCER DXS",$$DOB^AUPNPAT(P),EDATE)
- QUIT 1
- +5 ;NOW V POV SNOMED
- +6 ;NOW SNOMED USING ASNC
- +7 SET T="PXRM BGP IPC LYMPH CANCER"
- +8 SET G=""
- +9 SET S=0
- FOR
- SET S=$ORDER(^XTMP("BGPSNOMEDSUBSET",$JOB,T,S))
- IF S=""!(G)
- QUIT
- Begin DoDot:1
- +10 IF '$DATA(^AUPNVPOV("ASNC",P,S))
- QUIT
- +11 SET D=0
- FOR
- SET D=$ORDER(^AUPNVPOV("ASNC",P,S,D))
- IF D=""!(G)
- QUIT
- Begin DoDot:2
- +12 SET Y=9999999-D
- +13 IF Y>EDATE
- QUIT
- +14 SET G=1
- End DoDot:2
- End DoDot:1
- +15 QUIT G