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

BDWUTIL1.m

Go to the documentation of this file.
  1. BDWUTIL1 ; IHS/CMI/LAB - Data Warehouse Utilities ;
  1. ;;1.0;IHS DATA WAREHOUSE;**1,2,4**;JAN 23, 2006;Build 24
  1. ;
  1. ;
  1. ;
  1. ORF(P) ;EP patient has ORF?
  1. I '$G(P) Q 0
  1. NEW FLAG,D
  1. S FLAG=0
  1. ;
  1. S D=0
  1. F S D=$O(^AUPNPAT(P,41,D)) Q:+D=0 D
  1. . Q:$P($G(^AGFAC(D,0)),"^",21)'="Y" ;only want ORFs
  1. . S FLAG=1 ;found one
  1. . Q
  1. Q FLAG
  1. CHART(V) ;PEP - returns ASUFAC_HRN ( 12 digits, HRN is left zero filled)
  1. ;V = visit ien, returns asufac_hrn for this visit
  1. NEW L,%,C,S,P,Z
  1. S %=""
  1. I V="" Q $$CHARTREG^BDWUTIL1(DFN) ;p4
  1. I '$D(^AUPNVSIT(V,0)) Q % ;bogus visit
  1. S Z=^AUPNVSIT(V,0)
  1. S P=$P(Z,U,5) ;get patient pointer
  1. I 'P Q % ;no patient so quit
  1. S L=$P(Z,U,6) ;location of encounter of visit
  1. I 'L Q "" ;if no loc then quit, shouldn't happen
  1. I $D(^AUPNPAT(P,41,L,0)) S %=$$GETCHART(P,L) I %]"" Q % ;get hrn at loc of enc if have one use it
  1. S L=$P($G(^AUTTSITE(1,0)),U) S %=$$GETCHART(P,L) I %]"" Q % ;get hrn at rpms site, if have one use it
  1. I $G(DUZ(2)) S L=DUZ(2) S %=$$GETCHART(P,L) I %]"" Q % ;get hrn at logged in site, if have one use it
  1. S L=0 F S L=$O(^AUPNPAT(P,41,L)) Q:L'=+L!(%]"") S %=$$GETCHART(P,L) ;get first one in multiple that is an official reg fac
  1. Q %
  1. GETCHART(P,L) ;
  1. NEW R,S
  1. S R=""
  1. I $P($G(^AGFAC(L,0)),U,21)'="Y" Q "" ;not an official reg fac so quit, must be an orf
  1. S S=$P(^AUTTLOC(L,0),U,10) ;get asufac for this location
  1. I S="" Q ""
  1. S C=$P($G(^AUPNPAT(P,41,L,0)),U,2) ;get hrn for this location
  1. I C="" Q ""
  1. S R=S_C ;return asufac_hrn
  1. Q R
  1. ;
  1. CHARTREG(P) ;EP
  1. I '$G(P) Q ""
  1. I '$D(^AUPNPAT(P)) Q ""
  1. NEW L,%,C,S
  1. S %=""
  1. S L=$P($G(^AUTTSITE(1,0)),U) S %=$$GETCHART(P,L) I %]"" Q % ;get hrn at rpms site, if have one use it
  1. I $G(DUZ(2)) S L=DUZ(2) S %=$$GETCHART(P,L) I %]"" Q % ;get hrn at logged in site, if have one use it
  1. S L=0 F S L=$O(^AUPNPAT(P,41,L)) Q:L'=+L!(%]"") S %=$$GETCHART(P,L) ;get first one in multiple that is an official reg fac
  1. Q %
  1. HDL(V) ;
  1. Q $$LABDONE^BDWUTIL(V,"DM AUDIT HDL TAX")
  1. HDLVALUE(V) ;
  1. Q $$LABRES^BDWUTIL(V,"DM AUDIT HDL TAX")
  1. ;
  1. LDL(V) ;
  1. Q $$LABDONE^BDWUTIL(V,"DM AUDIT LDL CHOLESTEROL TAX")
  1. ;
  1. LDLVALUE(V) ;
  1. Q $$LABRES^BDWUTIL(V,"DM AUDIT LDL CHOLESTEROL TAX")
  1. ;
  1. TRI(V) ;
  1. Q $$LABDONE^BDWUTIL(V,"DM AUDIT TRIGLYCERIDE TAX")
  1. ;
  1. TRIVALUE(V) ;
  1. Q $$LABRES^BDWUTIL(V,"DM AUDIT TRIGLYCERIDE TAX")
  1. ;
  1. PSA(V) ;
  1. Q $$LABDONE^BDWUTIL(V,"BDW PSA TESTS TAX")
  1. ;
  1. FECAL(V) ;
  1. Q $$LABDONE^BDWUTIL(V,"APCH FECAL OCCULT BLOOD")
  1. ;
  1. NLAB(V) ;
  1. NEW X,Y
  1. S (X,Y)=0 F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X S Y=Y+1
  1. Q Y
  1. CHSPO(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 A
  1. S A=$P(^AUPNVCHS(C,0),U)
  1. S A=$P($G(^AUTTLOC(A,0)),U,10)
  1. Q $P(^AUPNVCHS(C,0),U,4)_"^"_A
  1. ST(RETVAL,BDWV) ;EP -
  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(^AUPNVSK("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVSK(BDWI,0))
  1. .S BDWE=$P(^AUPNVSK(BDWI,0),"^")
  1. .I '$D(^AUTTSK(BDWE,0)) Q
  1. .S BDWE=$P(^AUTTSK(BDWE,0),"^",2)
  1. .S BDWC=BDWC+1,RETVAL(BDWC)=BDWE_"^"_$P(^AUPNVSK(BDWI,0),"^",4)_"^"_$P(^AUPNVSK(BDWI,0),"^",5)
  1. .Q
  1. Q
  1. ;
  1. IFC(RETVAL,BDWV) ;EP -
  1. K RETVAL
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC,BDWE,BDWIE
  1. S (BDWI,BDWC)=0
  1. F S BDWI=$O(^AUPNVIF("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVIF(BDWI,0))
  1. .S BDWIE=$$GET1^DIQ(9000010.44,BDWI,.01,"I")
  1. .S BDWE=$$GET1^DIQ(9000010.44,BDWI,.01)
  1. .S BDWC=BDWC+1,RETVAL(BDWC)=BDWIE_"^"_BDWE
  1. .Q
  1. Q
  1. ;
  1. PROV(RETVAL,BDWV) ;EP
  1. NEW BDWP,BDWS,BDWC,BDWPIEN,BDWCS,BDWAD,X,Y,G,D
  1. K RETVAL
  1. I '$D(^AUPNVPRV("AD",BDWV)) Q
  1. S BDWP="",BDWCS=1
  1. F S BDWP=$O(^AUPNVPRV("AD",BDWV,BDWP)) Q:BDWP'=+BDWP D
  1. .Q:'$D(^AUPNVPRV(BDWP,0))
  1. .I $P(^AUPNVPRV(BDWP,0),"^",4)="P" S BDWC=1
  1. .I $P(^AUPNVPRV(BDWP,0),"^",4)'="P" S BDWCS=BDWCS+1,BDWC=BDWCS
  1. .S BDWPIEN=$P(^AUPNVPRV(BDWP,0),"^")
  1. .S BDWAD=$$O(BDWPIEN)
  1. .S RETVAL(BDWC)=$P(^AUPNVPRV(BDWP,0),"^")_"^"_$S($P(^DD(9000010.06,.01,0),"^",2)[200:200,1:6)_"^"_BDWAD_"^"_$$C(BDWPIEN)_"^"_$S($E(BDWAD,2,3)=17:1,1:"")
  1. .;6th is classification
  1. .;7th is specialty
  1. .;8th is type
  1. .S Y=BDWPIEN ;ien in file 200 should be in Y
  1. .I $P(^DD(9000010.06,.01,0),U,2)[6 S Y=$G(^DIC(16,BDWPIEN,"A3"))
  1. .I Y="" Q
  1. .;get USC1 node value
  1. .S D=$P(^AUPNVPRV(BDWP,0),"^",3) Q:D=""
  1. .S D=$P($G(^AUPNVSIT(D,0)),"^"),D=$P(D,".",1)
  1. .I D="" Q
  1. .S G=$$PCC(Y,D)
  1. .S $P(RETVAL(BDWC),"^",6)=G
  1. .Q
  1. Q
  1. PCC(P,D) ;EP - RETURN CLASS^SPEC^TYPE for provider P on date D
  1. I $G(P)="" Q ""
  1. I $G(D)="" Q ""
  1. I '$D(^VA(200,P,0)) Q ""
  1. I '$O(^VA(200,P,"USC1",0)) Q ""
  1. NEW X,Y,Z
  1. S (X,Z)=0 F S X=$O(^VA(200,P,"USC1",X)) Q:X'=+X!(Z) D
  1. .S Y=$G(^VA(200,P,"USC1",0))
  1. .I $P(Y,U,2)]"",$P(Y,U,3)]"",D'<$P(Y,U,2),D'>$P(Y,U,3) S Z=X Q ;both dates and a match
  1. .I $P(Y,U,2)]"",$P(Y,U,3)="",D'<$P(Y,U,2) S Z=X Q ;beg date, no expire visit after beg
  1. .Q
  1. I 'Z S Z=$O(^VA(200,P,"USC1",0))
  1. S Z=$P(^VA(200,P,"USC1",Z,0),U)
  1. I 'Z Q ""
  1. I '$D(^USC(8932.1,Z,0)) Q ""
  1. S Z=$P(^USC(8932.1,Z,0),U,7)
  1. Q $E(Z,3,4)_"^"_$E(Z,5,9)_"^"_$E(Z,1,2)
  1. PROC(RETVAL,BDWV) ;EP
  1. NEW BDWP,BDWC
  1. S (BDWP,BDWC)=0 F S BDWP=$O(^AUPNVPRC("AD",BDWV,BDWP)) Q:BDWP'=+BDWP D
  1. .S BDWC=BDWC+1
  1. .N CS,ICDP ;ihs/cmi/maw 10/17/2012 patch 4 added coding system for icd10
  1. .S ICDP=$P($G(^AUPNVPRC(BDWP,0)),U)
  1. .I $D(^ICDS(0)) S CS=$S($P($$ICDOP^ICDEX(ICDP,,,"I"),U,15)=31:"I10",1:"I9")
  1. .I '$D(^ICDS(0)) S CS="I9"
  1. .S RETVAL(BDWC)=$$VAL^XBDIQ1(9000010.08,BDWP,.01)_"^"_$P(^AUPNVPRC(BDWP,0),"^",6)_"^"_$P(^AUPNVPRC(BDWP,0),"^",8)_"^"_$$O($P(^AUPNVPRC(BDWP,0),"^",11))_"^"_$$X(BDWP)_"^"_$$VAL^XBDIQ1(9000010.08,BDWP,.16)
  1. .S $P(RETVAL(BDWC),"^",10)=$G(CS) ;coding system
  1. . N MOD1,MOD1C,MOD1I,MOD2,MOD2C,MOD2I,MOD1STR,MOD2STR
  1. . S MOD1I=$$GET1^DIQ(9000010.08,BDWP,.17,"I")
  1. . S MOD1=$$GET1^DIQ(9000010.08,BDWP,.17)
  1. . S MOD1C=$$GET1^DIQ(81.3,MOD1I,.02)
  1. . S MOD1STR=$S(MOD1]"":MOD1_"!"_MOD1C_"!"_"CPTM",1:"")
  1. . S MOD2I=$$GET1^DIQ(9000010.08,BDWP,.18,"I")
  1. . S MOD2=$$GET1^DIQ(9000010.08,BDWP,.18)
  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(BDWC),"^",13)=MOD1STR
  1. .. I $G(MOD2STR)]"" S $P(RETVAL(BDWC),"^",13)=MOD1STR_"~"_MOD2STR
  1. . I $G(MOD1STR)="" D
  1. .. I $G(MOD2STR)]"" S $P(RETVAL(BDWC),"^",13)=MOD2STR
  1. .S Y=$P(^AUPNVPRC(BDWP,0),"^",11) ;ien in file 200 should be in Y
  1. .Q:'Y
  1. .I $P(^DD(9000010.08,.11,0),U,2)[6 S Y=$G(^DIC(16,$P(^AUPNVPRC(BDWP,0),"^",11),"A3"))
  1. .I Y="" Q
  1. .;get USC1 node value
  1. .S D=$P(^AUPNVPRC(BDWP,0),"^",3) Q:BDWP=""
  1. .S D=$P($G(^AUPNVSIT(D,0)),"^"),D=$P(D,".",1)
  1. .I D="" Q
  1. .S G=$$PCC(Y,D)
  1. .S $P(RETVAL(BDWC),"^",7)=G
  1. .S $P(RETVAL(BDWC),"^",10)=$G(CS) ;coding system
  1. .;the following is for CPT modifier
  1. . N MOD1,MOD1C,MOD1I,MOD2,MOD2C,MOD2I,MOD1STR,MOD2STR
  1. . S MOD1I=$$GET1^DIQ(9000010.08,BDWP,.17,"I")
  1. . S MOD1=$$GET1^DIQ(9000010.08,BDWP,.17)
  1. . S MOD1C=$$GET1^DIQ(81.3,MOD1I,.02)
  1. . S MOD1STR=$S(MOD1]"":MOD1_"!"_MOD1C_"!"_"CPTM",1:"")
  1. . S MOD2I=$$GET1^DIQ(9000010.08,BDWP,.18,"I")
  1. . S MOD2=$$GET1^DIQ(9000010.08,BDWP,.18)
  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),"^",13)=MOD1STR
  1. .. I $G(MOD2STR)]"" S $P(RETVAL(C),"^",13)=MOD1STR_"~"_MOD2STR
  1. . I $G(MOD1STR)="" D
  1. .. I $G(MOD2STR)]"" S $P(RETVAL(C),"^",13)=MOD2STR
  1. .Q
  1. Q
  1. IMM(RETVAL,BDWV) ;EP
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC
  1. K RETVAL S BDWC=0
  1. S BDWI=0 F S BDWI=$O(^AUPNVIMM("AD",BDWV,BDWI)) Q:BDWI'=+BDWI S BDWC=BDWC+1 D
  1. .S I=$P($G(^AUPNVIMM(BDWI,0)),"^")
  1. .Q:'I
  1. .Q:'$D(^AUTTIMM(I,0))
  1. .S $P(RETVAL(BDWC),"^",4)=$P(^AUTTIMM(I,0),"^",$S($$BI:20,1:3)) ;IHS OLD CODE
  1. .S $P(RETVAL(BDWC),"^",3)=$S('$$BI:"",1:$P(^AUTTIMM(I,0),"^",3))
  1. .S $P(RETVAL(BDWC),"^",5)=$P(^AUPNVIMM(BDWI,0),"^",4)
  1. Q
  1. BI() ;IHS/CMI/LAB - new subroutine patch 4 1/5/1999
  1. Q $S($O(^AUTTIMM(0))<100:0,1:1)
  1. ;
  1. C(P) ;EP
  1. NEW %
  1. S %=$S($P(^DD(9000010.06,.01,0),"^",2)[200:$P($G(^VA(200,P,9999999)),"^",2),1:$P($G(^DIC(6,P,9999999)),"^",2))
  1. Q %
  1. A ;EP
  1. S %=$S($P(^DD(9000010.06,.01,0),"^",2)[200:$P($G(^VA(200,P,9999999)),"^"),1:$P($G(^DIC(6,P,9999999)),"^")) Q
  1. Q
  1. F ;EP
  1. S %=$$VALI^XBDIQ1($S($P(^DD(9000010.06,.01,0),"^",2)[200:200,1:6),P,$S($P(^DD(9000010.06,.01,0),"^",2)[200:53.5,1:2))
  1. Q
  1. D ;EP
  1. D F
  1. Q:%=""
  1. S %=$P($G(^DIC(7,%,9999999)),"^")
  1. Q
  1. ;
  1. X(Z) ; ;diagnosis done for
  1. NEW % S %=""
  1. NEW M S M=$P(^AUPNVPRC(Z,0),"^",5)
  1. NEW V S V=$P(^AUPNVPRC(Z,0),"^",3)
  1. S I=$$PRIMPOV^APCLV(V,"I") I M=I S %=1 Q %
  1. F I=1:1:25 Q:% S J=$$SECPOV^APCLV(V,"I",I) I J]"",J=M S %=I+1
  1. Q %
  1. O(P) ;EP
  1. I $G(P)="" Q ""
  1. NEW A,%
  1. D A
  1. I %="" Q ""
  1. S A=%,%=""
  1. D D
  1. I %="" Q ""
  1. S %=A_%
  1. Q %
  1. ;
  1. MCD(BDWV) ;EP
  1. NEW P,%
  1. S P=$P(^AUPNVSIT(BDWV,0),"^",5)
  1. I 'P Q ""
  1. S %=$$MCD^AUPNPAT(DFN,$P($P(^AUPNVSIT(BDWV,0),"^"),".")) S %=$S(%=1:"Y",%=0:"N",1:"")
  1. Q %
  1. MCR(BDWV) ;
  1. NEW P,%
  1. S P=$P(^AUPNVSIT(BDWV,0),"^",5)
  1. I 'P Q ""
  1. S %=$$MCR^AUPNPAT(DFN,$P($P(^AUPNVSIT(BDWV,0),"^"),".")) S %=$S(%=1:"Y",%=0:"N",1:"")
  1. Q %
  1. ;
  1. PI(BDWV) ;EP
  1. NEW P,%
  1. S P=$P(^AUPNVSIT(BDWV,0),"^",5)
  1. I 'P Q ""
  1. S %=$$PI^AUPNPAT(DFN,$P($P(^AUPNVSIT(BDWV,0),"^"),".")) S %=$S(%=1:"Y",%=0:"N",1:"")
  1. Q %
  1. HTN(BDWV,F) ;EP - is htn documented for this patient ever? Y or N retured
  1. NEW R,X,E,BDWG,P
  1. S P=$P(^AUPNVSIT(BDWV,0),"^",5)
  1. I 'P Q ""
  1. S R=""
  1. I '$D(^DPT(P)) Q R
  1. I $P(^DPT(P,0),"^",19) Q R
  1. I '$D(^AUPNVPOV("AC",P)) Q R ;no povs on file
  1. NEW X,E S X=P_"^LAST DX [SURVEILLANCE HYPERTENSION" S E=$$START1^APCLDF(X,"BDWG(")
  1. I $D(BDWG(1)) Q $S(F="Y":"Y",1:$P(BDWG(1),"^"))
  1. Q $S(F="Y":"N",1:"")
  1. ;
  1. MED(RETVAL,BDWV) ;EP
  1. K RETVAL
  1. I $P($G(^BDWSITE(1,11)),U,1) Q
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWC,BDWD,BDWQ,BDWNDC,BDWCLS
  1. S (BDWI,BDWC)=0 F S BDWI=$O(^AUPNVMED("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .Q:'$D(^AUPNVMED(BDWI,0)) ;cmi/anch/maw 9/11/2007 patch 2
  1. .S BDWD=$P(^AUPNVMED(BDWI,0),"^") Q:'$D(^PSDRUG(BDWD,0))
  1. .S BDWC=BDWC+1
  1. .S BDWQ=$P(^AUPNVMED(BDWI,0),"^",6)
  1. .S BDWNDC=$P($G(^PSDRUG($P(^AUPNVMED(BDWI,0),"^"),2)),"^",4)
  1. .I BDWNDC="" S BDWNDC=$P($G(^PSDRUG($P(^AUPNVMED(BDWI,0),"^"),2)),"^",4)
  1. .S BDWCLS=$P(^PSDRUG($P(^AUPNVMED(BDWI,0),"^"),0),"^",2)
  1. .S RETVAL(BDWC)=$P(^PSDRUG(BDWD,0),"^")_"^"_BDWQ_"^"_BDWNDC_"^"_BDWCLS
  1. .Q
  1. Q
  1. PAP(V) ;EP - was pap performed Y/N
  1. I '$G(V) Q ""
  1. I $P($G(^BDWSITE(1,11)),U,1) Q ""
  1. NEW T S T=$O(^ATXLAB("B","BDW PAP SMEAR LAB TESTS",0))
  1. I 'T Q ""
  1. NEW X,Y,Z S Y="N",X=0 F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X!(Y="Y") S Z=$P(^AUPNVLAB(X,0),U) I $D(^ATXLAB(T,21,"B",Z)) S Y="Y"
  1. Q Y
  1. GLUCOSE(V) ;EP - return glucose test value on this visit
  1. I '$G(V) Q ""
  1. I $P($G(^BDWSITE(1,11)),U,1) Q ""
  1. NEW T S T=$O(^ATXLAB("B","DM AUDIT GLUCOSE TESTS TAX",0))
  1. I 'T Q ""
  1. NEW X,Y,Z S Y="",X=0 F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X!(Y]"") S Z=$P(^AUPNVLAB(X,0),U) I $D(^ATXLAB(T,21,"B",Z)) S Y=$P(^AUPNVLAB(X,0),U,4)
  1. Q Y
  1. HGBA1C(V) ;EP - called to return value of HGBA1C if done on this visit
  1. ;V is visit ien
  1. NEW R
  1. S R=""
  1. I '$D(^AUPNVSIT(V)) Q R
  1. I '$D(^AUPNVLAB("AD",V)) Q R ;no v labs to check
  1. I '$D(^ATXLAB("B","DM AUDIT HGB A1C TAX")) Q R
  1. NEW Y S Y=$O(^ATXLAB("B","DM AUDIT HGB A1C TAX",0))
  1. I 'Y Q R ;no taxonomy to look at
  1. NEW X,Z
  1. S X=0 F S X=$O(^AUPNVLAB("AD",V,X)) Q:X'=+X S Z=$P(^AUPNVLAB(X,0),U) I Z,$D(^ATXLAB(Y,21,"B",Z)) S R=$P(^AUPNVLAB(X,0),U,4)
  1. Q R
  1. ;
  1. ACE(V) ;EP - ace inhibitor filled this visit
  1. ;V is visit ien
  1. I '$D(^AUPNVSIT(V)) Q ""
  1. I '$D(^AUPNVMED("AD",V)) Q "N" ;no v meds to check
  1. NEW Y S Y=$O(^ATXAX("B","DM AUDIT ACE INHIBITORS",0))
  1. I 'Y Q ""
  1. NEW X,Z,R
  1. S R=""
  1. S X=0 F S X=$O(^AUPNVMED("AD",V,X)) Q:X'=+X S Z=$P(^AUPNVMED(X,0),U) I $D(^ATXAX(Y,21,"B",Z)) S R=1
  1. Q $S($G(R):"Y",1:"N")
  1. ;
  1. MC(RETVAL,BDWV) ;EP
  1. ;medical condition, at this time health factors only
  1. K RETVAL
  1. I $P($G(^BDWSITE(1,11)),U,1) Q
  1. I '$G(BDWV) Q
  1. I '$D(^AUPNVSIT(BDWV)) Q
  1. NEW BDWI,BDWH,BDWC
  1. S (BDWC,BDWI)=0
  1. F S BDWI=$O(^AUPNVHF("AD",BDWV,BDWI)) Q:BDWI'=+BDWI D
  1. .S BDWH=$P($G(^AUPNVHF(BDWI,0)),"^")
  1. .Q:BDWH=""
  1. .Q:'$D(^AUTTHF(BDWH,0))
  1. .S BDWC=BDWC+1
  1. .S RETVAL(BDWC)="HF"_"^"_$P(^AUTTHF(BDWH,0),"^")_"^"_$P(^AUTTHF(BDWH,0),"^",2)_"^"_$$VAL^XBDIQ1(9999999.64,BDWH,.03)_"^"_$S($P(^AUTTHF(BDWH,0),"^",3)]"":$P(^AUTTHF($P(^AUTTHF(BDWH,0),"^",3),0),"^",2),1:"")
  1. .Q
  1. Q
  1. CDEATH(PAT) ;-- get the cause of death and coding system
  1. N CDI,CD,CS
  1. S CDI=$$GET1^DIQ(9000001,PAT,1114,"I")
  1. I 'CDI Q ""
  1. S CD=$$GET1^DIQ(9000001,PAT,1114)
  1. S CS=$S($D(^ICDS(0)):$P($$ICDDX^ICDEX(CD),U,20),1:"")
  1. Q CD_U_U_$S(CS=30:"I10",1:"I9")
  1. ;