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

BDMDE1T.m

Go to the documentation of this file.
  1. BDMDE1T ; IHS/CMI/LAB - 2017 DIABETES AUDIT ;
  1. ;;2.0;DIABETES MANAGEMENT SYSTEM;**10**;JUN 14, 2007;Build 12
  1. ;
  1. ;
  1. TOBACCO(P,BDATE,EDATE) ;EP
  1. I '$G(P) Q ""
  1. NEW BDMTOB,BDMSDX,BDMXPND,BDM1320,BDMSCPT,BDMALL,D,%,F,BDMTOBS,BDMSBD,BDMTOBC,G
  1. S BDMSBD=BDATE
  1. D TOBACCOS ;get last hf in BDMTOBS, BDMTOBC
  1. ;now get date of latest health factor and check for any of these next things after the HF
  1. S BDMSBD=$P(BDMTOBS,U,3)
  1. S BDMSDX=$$DX(P,$S(BDMSBD:BDMSBD,1:BDATE),EDATE) ;get last dx in format code^date and compare to bdmdob
  1. I BDMSDX]"",$P(BDMSDX,U,3)>BDMSBD S BDMTOBS=BDMSDX
  1. S BDMSBD=$P(BDMTOBS,U,3)
  1. S BDM1320=$$DENT(P,$S(BDMSBD:BDMSBD,1:BDATE),EDATE)
  1. I BDM1320]"",$P(BDM1320,U,3)>BDMSBD S BDMTOBS=BDM1320
  1. S BDMSBD=$P(BDMTOBS,U,3)
  1. S BDMSCPT=$$CPTSM(P,$S(BDMSBD:BDMSBD,1:BDATE),EDATE)
  1. I BDMSCPT]"",$P(BDMSCPT,U,3)>BDMSBD S BDMTOBS=BDMSCPT
  1. Q BDMTOBS
  1. ;
  1. DX(P,BDATE,EDATE) ;EP
  1. NEW BDMG,T,X,G,Y,F,I,Z
  1. S BDMG=$$LASTDXT^BDMAPIU(P,BDATE,EDATE,"BGP TOBACCO DXS","E")
  1. I BDMG]"" D Q G
  1. .S G=""
  1. .S I=$P(BDMG,U,6)
  1. .S F=$P(BDMG,U,5)
  1. .S Z=$$VALI^XBDIQ1(F,I,.01)
  1. .; check for non smoker dxs here as well
  1. .I '$$ICD^BDMUTL(Z,"BGP TOBACCO USER DXS",9) S G="2^2 Not a Current User "_$P(BDMG,U,2)_" "_$P(BDMG,U,3)_" "_$$DATE^BDMS9B1($P(BDMG,U,1))_U_$P(BDMG,U,1) Q
  1. .S G="1^1 Current User "_$P(BDMG,U,2)_" "_$P(BDMG,U,3)_" "_$$DATE^BDMS9B1($P(BDMG,U,1))_U_$P(BDMG,U,1) Q
  1. S T=$O(^ATXAX("B","BGP TOBACCO DXS",0))
  1. S X=0,G="" F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(G]"") D
  1. .Q:$P(^AUPNPROB(X,0),U,12)'="A"
  1. .Q:$P(^AUPNPROB(X,0),U,3)>EDATE
  1. .Q:$P(^AUPNPROB(X,0),U,3)<BDATE
  1. .S Y=$P(^AUPNPROB(X,0),U)
  1. .Q:'$$ICD^BDMUTL(Y,$P(^ATXAX(T,0),U),9) ;cmi/maw 05/15/2014 p8
  1. .S Z=$P(^ICD9(Y,0),U,1)
  1. .;see what the non smoker dxs are here in the BGP SMOKING DXS taxonomy and if many create a new taxonomy to point to
  1. .I '$$ICD^BDMUTL(Z,"BGP TOBACCO USER DXS",9) S G="2^2 Not a Current User "_$P($$ICDDX^BDMUTL(Y),U,2)_" PROBLEM LIST "_" "_$$DATE^BDMS9B1($P(^AUPNPROB(X,0),U,3))_U_$P(^AUPNPROB(X,0),U,3)
  1. .S G="1^1 Current User "_$P($$ICDDX^BDMUTL(Y),U,2)_" PROBLEM LIST "_" "_$$DATE^BDMS9B1($P(^AUPNPROB(X,0),U,3))_U_$P(^AUPNPROB(X,0),U,3)
  1. .Q
  1. Q G
  1. TOBACCOS ;EP
  1. K BDM
  1. S BDMTOBS="",BDMTOBC=""
  1. S BDMTOBS=$$LASTHF(P,"TOBACCO (SMOKING)",BDATE,EDATE) K O,D,H
  1. S BDMTOBC=$$LASTHF(P,"TOBACCO (SMOKELESS - CHEWING/DIP)",BDATE,EDATE) K O,D,H
  1. I '$O(^AUTTHF("B","TOBACCO (SMOKING)",0)) S BDMTOBS=$$LASTHF(P,"TOBACCO",BDATE,EDATE) K O,D,H
  1. ;if have both then take the one that indicates tobacco use
  1. I $P(BDMTOBS,U)=1 Q
  1. I $P(BDMTOBC,U)=1 S BDMTOBS=BDMTOBC Q
  1. I BDMTOBS=2 Q
  1. I BDMTOBC=2 S BDMTOBS=BDMTOBC Q
  1. Q
  1. ;
  1. LASTHF(P,C,BDATE,EDATE) ;EP - get last factor in category C for patient P
  1. S C=$O(^AUTTHF("B",C,0)) ;ien of category passed
  1. I '$G(C) Q ""
  1. NEW H,D,O,F,Z
  1. S (H,D)=0 K O
  1. F S H=$O(^AUTTHF("AC",C,H)) Q:'+H D
  1. .Q:'$D(^AUPNVHF("AA",P,H))
  1. .S D="" F S D=$O(^AUPNVHF("AA",P,H,D)) Q:D'=+D D
  1. ..Q:(9999999-D)>EDATE ;after time frame
  1. ..Q:(9999999-D)<BDATE ;before time frame
  1. ..S Z=$O(^AUPNVHF("AA",P,H,D,0))
  1. ..S F=$$VAL^XBDIQ1(9000010.23,Z,.01)
  1. ..I F="SMOKER IN HOME"!(F="SMOKE FREE HOME")!(F["CEREMONIAL")!(F["EXPOSURE TO") Q
  1. ..S O(D)=$O(^AUPNVHF("AA",P,H,D,""))
  1. .Q
  1. S D=$O(O(0))
  1. I D]"" D Q Z
  1. .S Z=$$TUHF($$VAL^XBDIQ1(9000010.23,O(D),.01))
  1. .S Z=Z_U_$S(Z=1:"1 Current User ",1:"2 Not a Current User ")_$$VAL^XBDIQ1(9000010.23,O(D),.01)_" "_$$DATE^BDMS9B1(9999999-D)_"^"_(9999999-D)
  1. S (H,D)=0 K O
  1. F S H=$O(^AUTTHF("AC",C,H)) Q:'+H D
  1. .Q:'$D(^AUPNVHF("AA",P,H))
  1. .S D="" F S D=$O(^AUPNVHF("AA",P,H,D)) Q:D'=+D D
  1. ..Q:(9999999-D)>EDATE ;after time frame
  1. ..Q:(9999999-D)<BDATE ;before time frame
  1. ..S Z=$O(^AUPNVHF("AA",P,H,D,0))
  1. ..S F=$$VAL^XBDIQ1(9000010.23,Z,.01)
  1. ..I F="SMOKER IN HOME"!(F="SMOKE FREE HOME")!(F["CEREMONIAL")!(F["EXPOSURE TO") S O(D)=$O(^AUPNVHF("AA",P,H,D,""))
  1. .Q
  1. S D=$O(O(0))
  1. I D Q 2_"^2 Not a Current User "_$$VAL^XBDIQ1(9000010.23,O(D),.01)_" "_$$DATE^BDMS9B1(9999999-D)_"^"_(9999999-D)
  1. Q "3^3 Not Documented"
  1. ;
  1. TUHF(V) ;
  1. I V="" Q 3
  1. I V["CURRENT" Q 1
  1. I V["CESSATION" Q 1
  1. I V["HEAVY TOBACCO" Q 1
  1. I V["LIGHT TOBACCO" Q 1
  1. I V="SMOKELESS TOBACCO, STATUS UNKNOWN" Q 3
  1. I V["STATUS UNKNOWN" Q 3
  1. Q 2
  1. ;
  1. DENT(P,BDATE,EDATE) ;EP
  1. K ^TMP($J,"A")
  1. NEW A,B,E,X,G,Z
  1. S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$DATE^BDMS9B1(BDATE)_"-"_$$DATE^BDMS9B1(EDATE),E=$$START1^APCLDF(B,A)
  1. I '$D(^TMP($J,"A",1)) Q ""
  1. S (X,G)=0 F S X=$O(^TMP($J,"A",X)) Q:X'=+X!(G) S V=$P(^TMP($J,"A",X),U,5) D
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:'$P(^AUPNVSIT(V,0),U,9)
  1. .Q:$P(^AUPNVSIT(V,0),U,11)
  1. .S Z=0 F S Z=$O(^AUPNVDEN("AD",V,Z)) Q:Z'=+Z!(G) S B=$P($G(^AUPNVDEN(Z,0)),U) I B S B=$P($G(^AUTTADA(B,0)),U) I B=1320 S G=1_U_$P($P(^AUPNVSIT(V,0),U),".")
  1. .Q
  1. K ^TMP($J,"A")
  1. I G=0 Q ""
  1. Q "1^1 Current User ADA 1320 "_$$DATE^BDMS9B1($P(G,U,2))_U_$P(G,U,2)
  1. ;
  1. CPTSM(P,BDATE,EDATE) ;EP - did pat have smoking cpt?
  1. NEW X,G,Z
  1. S G=""
  1. S X=$$LASTCPTT^BDMAPIU(P,BDATE,EDATE,"BGP TOBACCO SCREEN CPTS","E")
  1. I X="" Q ""
  1. S Z=$$VALI^XBDIQ1(9000010.18,$P(X,U,6),.01)
  1. I '$$ICD^BDMUTL(Z,"BGP TOBACCO USER CPTS",1) Q "2^2 Not a Current User "_$P(X,U,2)_" "_$$DATE^BDMS9B1($P(X,U,1))_U_$P(X,U,1)
  1. Q "1^1 Current User "_$P(X,U,2)_" "_$$DATE^BDMS9B1($P(X,U,1))_U_$P(X,U,1)
  1. ENDS(P,BD,ED) ;EP
  1. I $G(P)="" Q ""
  1. NEW X
  1. S X=$$LASTHF^BDMSMU(P,"ELECTRONIC NICOTINE DELIV SYSTEM (ENDS)","B",BD,ED)
  1. I X="" Q "2^3"
  1. I $P(X,U,1)["CURRENT"!($P(X,U,1)["CESSATION") Q "1^1^"_X
  1. I $P(X,U,1)["PREVIOUS"!($P(X,U,1)["NEVER") Q "1^2^"_X
  1. Q ""