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

BDWUTIL.m

Go to the documentation of this file.
  1. BDWUTIL ; IHS/CMI/LAB - DW UTILITIES ;
  1. ;;1.0;IHS DATA WAREHOUSE;**4**;JAN 23, 2006;Build 24
  1. ;
  1. ;
  1. POVS(RETVAL,BDWV) ;EP
  1. NEW BDWP,BDWS,BDWC,BDWY
  1. K RETVAL
  1. I '$D(^AUPNVPOV("AD",BDWV)) Q
  1. S BDWP="",BDWY=0
  1. I $P(^AUPNVSIT(BDWV,0),"^",7)="H" F S BDWY=$O(^AUPNVPOV("AD",BDWV,BDWY)) Q:BDWY'=+BDWY!(BDWP) I $P(^AUPNVPOV(BDWY,0),"^",12)="P" S BDWP=BDWY
  1. I $P(^AUPNVSIT(BDWV,0),"^",7)'="H" S BDWP=$O(^AUPNVPOV("AD",BDWV,0))
  1. S BDWC=1
  1. I $P(^AUPNVSIT(BDWV,0),U,7)="H",'BDWP S RETVAL(BDWC)=""
  1. I BDWP D ;ihs/cmi/maw 10/17/2012 patch 4 added coding system for icd10
  1. . N CS,ICDP,CSE,COIP,PN
  1. . S ICDP=$P($G(^AUPNVPOV(BDWP,0)),U)
  1. . S PN=$TR($$GET1^DIQ(9000010.07,BDWP,.04),"|","") ;p5 ALPMR
  1. . I $D(^ICDS(0)) S CS=$S($P($$ICDDX^ICDEX(ICDP),U,20)=30:"I10",1:"I9")
  1. . I '$D(^ICDS(0)) S CS="I9"
  1. . S COIP=$P($G(^AUPNVPOV(BDWP,0)),U,9)
  1. . I $G(COIP) D
  1. .. I $D(^ICDS(0)) S CSE=$S($P($$ICDDX^ICDEX(COIP),U,20)=30:"I10",1:"I9")
  1. .. I '$D(^ICDS(0)) S CSE="I9"
  1. . S RETVAL(BDWC)=$$VAL^XBDIQ1(9000010.07,BDWP,.01)_"^"_$P(^AUPNVPOV(BDWP,0),"^",7)_"^"_$$VAL^XBDIQ1(9000010.07,BDWP,.09)_"^"_$P(^AUPNVPOV(BDWP,0),"^",11)
  1. . S $P(RETVAL(BDWC),"^",10)=$G(CS) ;coding system
  1. . S $P(RETVAL(BDWC),"^",11)=$G(CSE) ;coding system
  1. . S $P(RETVAL(BDWC),"^",12)=$TR($G(PN),"|","") ;provider narrative p5 ALPMR
  1. S BDWS=0 F S BDWS=$O(^AUPNVPOV("AD",BDWV,BDWS)) Q:BDWS'=+BDWS D
  1. . Q:BDWS=BDWP
  1. . ;ihs/cmi/maw 10/17/2012 patch 4 added coding system for icd10
  1. . N CS,ICDP,CSE,COIP,PN
  1. . S ICDP=$P($G(^AUPNVPOV(BDWS,0)),U)
  1. . S PN=$TR($$GET1^DIQ(9000010.07,BDWS,.04),"|","") ;p5 ALPMR
  1. . I $D(^ICDS(0)) S CS=$S($P($$ICDDX^ICDEX(ICDP),U,20)=30:"I10",1:"I9")
  1. . I '$D(^ICDS(0)) S CS="I9"
  1. . S COIP=$P($G(^AUPNVPOV(BDWS,0)),U,9)
  1. . I $G(COIP) D
  1. .. I $D(^ICDS(0)) S CSE=$S($P($$ICDDX^ICDEX(COIP),U,20)=30:"I10",1:"I9")
  1. .. I '$D(^ICDS(0)) S CSE="I9"
  1. . S BDWC=BDWC+1,RETVAL(BDWC)=$$VAL^XBDIQ1(9000010.07,BDWS,.01)_"^"_$P(^AUPNVPOV(BDWS,0),"^",7)_"^"_$$VAL^XBDIQ1(9000010.07,BDWS,.09)_"^"_$P(^AUPNVPOV(BDWS,0),"^",11)
  1. . S $P(RETVAL(BDWC),"^",10)=$G(CS) ;coding system
  1. . S $P(RETVAL(BDWC),"^",11)=$G(CSE) ;coding system
  1. . S $P(RETVAL(BDWC),"^",12)=$TR($G(PN),"|","") ;provider narrative p5 ALPMR
  1. Q
  1. DATE(D) ;EP - return YYYYMMDD from internal fm format
  1. I $G(D)="" Q ""
  1. Q ($E(D,1,3)+1700)_$E(D,4,7)
  1. RZERO(V,L) ;ep right zero fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=V_"0"
  1. Q V
  1. LZERO(V,L) ;EP - left zero fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V="0"_V
  1. Q V
  1. LBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=" "_V
  1. Q V
  1. RBLK(V,L) ;EP right blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=V_" "
  1. Q V
  1. ;
  1. DISPER(V) ;EP - called to get ER disposition
  1. I '$G(V) Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. NEW Y S Y=$O(^AUPNVER("AD",V,0)) I 'Y Q ""
  1. Q $$VALI^XBDIQ1(9000010.29,Y,.11)
  1. CPT(RETVAL,V) ;EP cpt and quantity
  1. K AUPNCPT,RETVAL,MOD1,MOD2
  1. NEW X,C,E S X=$$CPT^AUPNCPT(V)
  1. I '$D(AUPNCPT) Q
  1. S (X,C)=0 F S X=$O(AUPNCPT(X)) Q:X'=+X D
  1. . S C=C+1
  1. . S RETVAL(C)=$P(AUPNCPT(X),"^")
  1. .;ihs/cmi/maw p5 alpmr
  1. . I $P(AUPNCPT(X),"^",4)=9000010.18 D
  1. .. S E=$P(AUPNCPT(X),"^",5),$P(RETVAL(C),"^",2)=$P($G(^AUPNVCPT(E,0)),"^",16)
  1. .. N MOD1,MOD1C,MOD1I,MOD2,MOD2C,MOD2I,MOD1STR,MOD2STR
  1. .. S MOD1I=$$GET1^DIQ(9000010.18,E,.08,"I")
  1. .. S MOD1=$$GET1^DIQ(9000010.18,E,.08)
  1. .. S MOD1C=$$GET1^DIQ(81.3,MOD1I,.02)
  1. .. S MOD1STR=$S(MOD1]"":MOD1_"!"_MOD1C_"!"_"CPTM",1:"")
  1. .. S MOD2I=$$GET1^DIQ(9000010.18,E,.09,"I")
  1. .. S MOD2=$$GET1^DIQ(9000010.18,E,.09)
  1. .. S MOD2C=$$GET1^DIQ(81.3,MOD2I,.02)
  1. .. S MOD2STR=$S(MOD2]"":MOD2_"!"_MOD2C_"!"_"CPTM",1:"")
  1. .. I $G(MOD1STR)]"" D
  1. ... S $P(RETVAL(C),"^",3)=MOD1STR
  1. ... I $G(MOD2STR)]"" S $P(RETVAL(C),"^",3)=MOD1STR_"~"_MOD2STR
  1. .. I $G(MOD1STR)="" D
  1. ... I $G(MOD2STR)]"" S $P(RETVAL(C),"^",3)=MOD2STR
  1. Q
  1. DSCHTYPE(V) ;EP
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. I $P(^AUPNVSIT(V,0),"^",7)'="H" Q ""
  1. NEW %,Y,Z
  1. I $P(^AUPNVSIT(V,0),"^",3)="C" G CHSDT
  1. S %="",Z=$O(^AUPNVINP("AD",V,0))
  1. I 'Z Q Z
  1. S Y=$$VALI^XBDIQ1(9000010.02,Z,.06)
  1. I 'Y Q ""
  1. I $P(^DD(9000010.02,.06,0),"^",2)[42.2 Q $P($G(^DIC(42.2,Y,9999999)),"^")
  1. I $P(^DD(9000010.02,.06,0),"^",2)[405.1 Q $P($G(^DG(405.1,Y,"IHS")),"^")
  1. Q ""
  1. VENTYP(V) ;EP return vendor type from VCHS
  1. I '$G(V) Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. NEW C S C=$O(^AUPNVCHS("AD",V,0))
  1. I 'C Q ""
  1. I '$D(^AUPNVCHS(C,0)) Q ""
  1. NEW E,T
  1. S E=$P(^AUPNVCHS(C,0),"^",14)
  1. I 'E Q ""
  1. S T=$$VAL^XBDIQ1(9999999.11,E,1103)
  1. Q T
  1. CHSDT ;
  1. S Z=$O(^AUPNVCHS("AD",V,0)) I 'Z Q ""
  1. S Y=$$VALI^XBDIQ1(9000010.03,Z,.08)
  1. S Y=$S(Y="":"",Y=1:1,Y=2:3,Y=3:5,Y=4:7,Y=5:2,1:"")
  1. Q Y
  1. DSCHDATE(V) ;EP
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. I $P(^AUPNVSIT(V,0),"^",7)'="H" Q ""
  1. NEW Y,Z
  1. S Z=$O(^AUPNVINP("AD",V,0)) I 'Z G CHSDD
  1. S Y=$P(^AUPNVINP(Z,0),"^")
  1. I Y="" Q Y
  1. Q $P(Y,".")
  1. CHSDD ;
  1. S Z=$O(^AUPNVCHS("AD",V,0)) I 'Z Q Z
  1. S Y=$P(^AUPNVCHS(Z,0),"^",7)
  1. I Y="" Q Y
  1. Q $P(Y,".")
  1. LOS(V) ;EP
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. I $P(^AUPNVSIT(V,0),"^",7)'="H" Q ""
  1. NEW Y,Z,X,X1,X2
  1. I $P(^AUPNVSIT(V,0),"^",3)="C" G CHSLOS
  1. S Z=$O(^AUPNVINP("AD",V,0)) I 'Z Q ""
  1. S X1=$P($P(^AUPNVINP(Z,0),"^"),"."),X2=$P($P(^AUPNVSIT($P(^AUPNVINP(Z,0),"^",3),0),"^"),".") D ^%DTC
  1. S:X=0 X=1
  1. Q X
  1. CHSLOS ;
  1. S Z=$O(^AUPNVCHS("AD",V,0)) I 'Z Q ""
  1. S X1=$P($P(^AUPNVCHS(Z,0),"^",7),"."),X2=$P($P(^AUPNVSIT($P(^AUPNVCHS(Z,0),"^",3),0),"^"),".") D ^%DTC
  1. S:X=0 X=1
  1. Q X
  1. PHNAC(V) ;
  1. I '$G(V) Q ""
  1. I '$$PHN(V) Q "" ;not a phn visit
  1. I $P(^AUPNVSIT(V,0),"^",7)="N" Q "03"
  1. I $$CLINIC^APCLV(V,"C")=11 Q "01"
  1. Q "02"
  1. PHN(V) ;
  1. ;is one of the providers a CHN?
  1. I '$G(V) Q ""
  1. NEW X,%,D,N
  1. I $$PRIMPROV^APCLV(V,"D")=13!($$PRIMPROV^APCLV(V,"D")=32) Q 1
  1. S (X,%,N)=0 F S X=$O(^AUPNVPRV("AD",V,X)) Q:X'=+X I $P(^AUPNVPRV(X,0),"^",4)'="P" S N=N+1 S D=$$SECPROV^APCLV(V,"D",N) I D=13!(D=32) S %=1
  1. Q %
  1. LEVEL(V) ;EP
  1. I '$G(V) Q ""
  1. I '$$PHN(V) Q ""
  1. NEW P S P=$O(^AUPNVPHN("AD",V,0))
  1. I 'P Q ""
  1. Q $P(^AUPNVPHN(P,0),"^",5)
  1. ;
  1. MEAS(RETVAL,BDWV) ;EP -
  1. K RETVAL
  1. I $P($G(^BDWSITE(1,11)),U,1) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. I '$D(^AUPNVMSR("AD",BDWV)) Q
  1. NEW BDWC,BDWI,BDWM
  1. S (BDWI,BDWC)=0 F S BDWI=$O(^AUPNVMSR("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .S BDWM=$$VAL^XBDIQ1(9000010.01,BDWI,.01)
  1. .;ihs/cmi/maw 06/05/2014 p5 ALPMR don't screen any measurement types
  1. .;I BDWM'="BP",BDWM'="HT",BDWM'="WT" Q
  1. .S BDWVAL=$P(^AUPNVMSR(BDWI,0),"^",4) I BDWM="HT"!(BDWM="WT") S BDWVAL=BDWVAL+.05,BDWVAL=+($P(BDWVAL,".")_"."_$E($P(BDWVAL,".",2),1))
  1. .S BDWC=BDWC+1
  1. .S RETVAL(BDWC)=$P(^AUTTMSR($P(^AUPNVMSR(BDWI,0),"^"),0),"^",3)_"^"_BDWVAL
  1. .Q
  1. Q
  1. EXAM(RETVAL,BDWV) ;EP - return nth v exam on this visit
  1. K RETVAL
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC,BDWE
  1. S (BDWI,BDWC)=0
  1. F S BDWI=$O(^AUPNVXAM("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVXAM(BDWI,0))
  1. .S BDWE=$P(^AUPNVXAM(BDWI,0),"^")
  1. .I '$D(^AUTTEXAM(BDWE,0)) Q
  1. .S BDWE=$P(^AUTTEXAM(BDWE,0),"^",2)
  1. .S BDWC=BDWC+1,RETVAL(BDWC)=BDWE
  1. .Q
  1. Q
  1. ;
  1. PED(RETVAL,BDWV) ;EP - return nth v patient ed on this visit
  1. K RETVAL
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC,BDWE
  1. S (BDWI,BDWC)=0
  1. F S BDWI=$O(^AUPNVPED("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVPED(BDWI,0))
  1. .S BDWE=$P(^AUPNVPED(BDWI,0),"^")
  1. .I '$D(^AUTTEDT(BDWE,0)) Q
  1. .S BDWE=$P(^AUTTEDT(BDWE,0),"^",2)
  1. .S BDWC=BDWC+1,RETVAL(BDWC)=BDWE
  1. .I $P($G(^BDWSITE(1,11)),U,1) Q
  1. .S RETVAL(BDWC)=RETVAL(BDWC)_"^"_$P(^AUPNVPED(BDWI,0),"^",6)_"^"_$P(^AUPNVPED(BDWI,0),"^",8)
  1. .Q
  1. Q
  1. ;
  1. DENTCOST(V) ;COST OF THIS VISIT
  1. I '$G(V) Q ""
  1. NEW X,Y,C
  1. S X=0,C=""
  1. F S X=$O(^AUPNVDEN("AD",V,X)) Q:X'=+X S C=C+$P(^AUPNVDEN(X,0),U,7)
  1. Q $S(C=0:"",1:$P((C+.5),"."))
  1. DENT(RETVAL,BDWV) ;EP
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. K RETVAL
  1. NEW BDWI,BDWC
  1. S (BDWI,BDWC)=0
  1. F S BDWI=$O(^AUPNVDEN("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVDEN(BDWI,0))
  1. .S BDWC=BDWC+1
  1. .S RETVAL(BDWC)=$$VAL^XBDIQ1(9000010.05,BDWI,.01)_"^"_$P(^AUPNVDEN(BDWI,0),"^",4)_"^"_$P(^AUPNVDEN(BDWI,0),"^",7)_"^"_$S($P(^AUPNVSIT(BDWV,0),"^",3)="C":"K",1:"D")
  1. .S $P(RETVAL(BDWC),"^",5)=$$DENTSSN(BDWV)
  1. .I $P(^AUPNVDEN(BDWI,0),"^",5)]"" S $P(RETVAL(BDWC),"^",6)=$$VAL^XBDIQ1(9002010.03,$P(^AUPNVDEN(BDWI,0),"^",5),8801)
  1. .S $P(RETVAL(BDWC),"^",7)=$P(^AUPNVDEN(BDWI,0),"^",6)
  1. .I BDWC=1 S $P(RETVAL(BDWC,0),"^",8)=$$DENTCOST(BDWV)
  1. Q
  1. DENTSSN(V) ;EP - if a provider is a 52 get SSN
  1. I '$G(V) Q ""
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. NEW X,Y,S S S="",X=0 F S X=$O(^AUPNVPRV("AD",V,X)) Q:X'=+X!(S]"") S Y=$P(^AUPNVPRV(X,0),"^") D
  1. .S D=$$CLS(Y)
  1. .I D=52 S S=$$SSN(Y)
  1. .Q
  1. Q S
  1. CLS(P) ;return ihs class code for provider P
  1. I '$G(P) Q ""
  1. NEW % S %=""
  1. I $P(^DD(9000010.06,.01,0),"^",2)[200 D Q %
  1. .Q:'$D(^VA(200,P))
  1. .NEW %1 S %1=$P($G(^VA(200,P,"PS")),"^",5)
  1. .I '%1 Q
  1. .S %=$P($G(^DIC(7,%1,9999999)),"^")
  1. .Q
  1. I '$D(^DIC(6,P,0)) Q ""
  1. NEW %1 S %1=$P(^DIC(6,P,0),"^",4)
  1. I '%1 Q ""
  1. Q $P($G(^DIC(7,%1,9999999)),"^",1)
  1. ;
  1. SSN(P) ;return provider's ssn
  1. I '$G(P) Q ""
  1. I $P(^DD(9000010.06,.01,0),"^",2)[200 Q $P($G(^VA(200,P,1)),"^",9)
  1. I $P(^DD(9000010.06,.01,0),"^",2)[6 Q $P($G(^DIC(16,P,0)),"^",9)
  1. ;
  1. DMNUTR(V) ;EP - was dm nutrition educ done on this visit, Y or N
  1. I '$G(V) Q "N"
  1. I '$D(^AUPNVSIT(V)) Q "N"
  1. I '$D(^AUPNVPED("AD",V)) Q "N"
  1. NEW Y S Y=$O(^ATXAX("B","DM AUDIT DIET EDUC TOPICS",0))
  1. I 'Y Q ""
  1. NEW X,Z,R
  1. S R=""
  1. S X=0 F S X=$O(^AUPNVPED("AD",V,X)) Q:X'=+X S Z=$P(^AUPNVPED(X,0),"^") I $D(^ATXAX(Y,21,"B",Z)) S R=1
  1. Q $S($G(R):"Y",1:"N")
  1. ;
  1. LABDONE(V,T) ;EP - return Y/N
  1. I $P($G(^BDWSITE(1,11)),U,1) Q ""
  1. I '$G(V) Q ""
  1. I $G(T)="" Q ""
  1. S T=$O(^ATXLAB("B",T,0)) I 'T Q ""
  1. NEW %,X,Y S %="N",X=0
  1. F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X!(%="Y") S Y=$P(^AUPNVLAB(X,0),"^") I $D(^ATXLAB(T,21,"B",Y)) S %="Y"
  1. Q %
  1. LABRES(V,T) ;EP - return result of lab test in taxonomy T
  1. I $P($G(^BDWSITE(1,11)),U,1) Q ""
  1. I '$G(V) Q ""
  1. I $G(T)="" Q ""
  1. S T=$O(^ATXLAB("B",T,0)) I 'T Q ""
  1. NEW %,X,Y S %="",X=0
  1. F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X!(%]"") S Y=$P(^AUPNVLAB(X,0),"^") I $D(^ATXLAB(T,21,"B",Y)) S %=$P(^AUPNVLAB(X,0),"^",4)
  1. Q %
  1. ;
  1. LAB(RETVAL,BDWV) ;EP
  1. I $P($G(^BDWSITE(1,11)),U,1) Q
  1. K RETVAL
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC,BDWL,BDWS,BDWLNI,BDWIENS
  1. S (BDWI,BDWC)=0
  1. F S BDWI=$O(^AUPNVLAB("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVLAB(BDWI,0))
  1. .S BDWL=$P(^AUPNVLAB(BDWI,0),"^")
  1. .I '$D(^LAB(60,BDWL,0)) Q
  1. .S BDWS=$P($G(^AUPNVLAB(BDWI,11)),U,3)
  1. .S BDWIENS=BDWS_","_BDWL_","
  1. .S BDWLOINC=$S(BDWS]"":$$GET1^DIQ(60.01,BDWIENS,95.3),1:"")
  1. .;ihs/cmi/maw 06/02/2014 p5 ALPMR dont screen out any lab tests
  1. .;S BDWLOINC=$$LOINC($P(^AUPNVLAB(BDWI,0),U))
  1. .;Q:BDWLOINC="" ;don't want that test
  1. .S BDWC=BDWC+1
  1. .;S RETVAL(BDWC)=$$VAL^XBDIQ1(9000010.09,BDWI,1113)_"^"_$P(^LAB(60,BDWL,0),"^")_"^"_$P(^AUPNVLAB(BDWI,0),"^",4)_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^")_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^",4)_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^",5)
  1. .S RETVAL(BDWC)=BDWLOINC_"^"_$P(^LAB(60,BDWL,0),"^")_"^"_$P(^AUPNVLAB(BDWI,0),"^",4)_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^")_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^",4)_"^"_$P($G(^AUPNVLAB(BDWI,11)),"^",5)
  1. .Q
  1. Q
  1. ;
  1. LOINC(X) ;is this a test we want?
  1. NEW T
  1. S T=$O(^ATXLAB("B","DM AUDIT HGB A1C TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "4548-4"
  1. S T=$O(^ATXLAB("B","BDW PAP SMEAR LAB TESTS",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "19762-4"
  1. I $P(^LAB(60,X,0),U)="PAP SMEAR" Q "19762-4"
  1. S T=$O(^ATXLAB("B","DM AUDIT GLUCOSE TESTS TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2345-7"
  1. S T=$O(^ATXLAB("B","DM AUDIT HDL TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2085-9"
  1. S T=$O(^ATXLAB("B","DM AUDIT LDL CHOLESTEROL TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2089-1"
  1. S T=$O(^ATXLAB("B","DM AUDIT TRIGLYCERIDE TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2571-8"
  1. S T=$O(^ATXLAB("B","BDW PSA TESTS TAX",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2857-1"
  1. S T=$O(^ATXLAB("B","APCH FECAL OCCULT BLOOD",0))
  1. I T,$D(^ATXLAB(T,21,"B",X)) Q "2335-8"
  1. Q ""
  1. FACTX(V) ;EP
  1. NEW %,Y,Z
  1. S %="",Z=$O(^AUPNVINP("AD",V,0))
  1. I 'Z Q %
  1. S Y=$P(^AUPNVINP(Z,0),"^",9)
  1. I Y="" Q ""
  1. I Y'["DIC(4" Q ""
  1. S Y=+Y
  1. I '$D(^AUTTLOC(Y,0)) Q ""
  1. Q $P(^AUTTLOC(Y,0),"^",10)
  1. ;