BDMPD13 ; IHS/CMI/LAB - 2003 DIABETES AUDIT ;
;;2.0;DIABETES MANAGEMENT SYSTEM;**9**;JUN 14, 2007;Build 78
;
;
;cmi/anch/maw 9/12/2007 code set versioning in PLDMDXS,IFG,IGT,MS,ABNG
;
LASTWT(P,EDATE,F) ;PEP - return last wt
I 'P Q ""
I $G(F)="" S F="E"
S BDATE=$$FMADD^XLFDT(EDATE,-365)
NEW %,BDMARRY,E,BDMW,X,BDMN,BDM,BDMD,BDMZ,BDMX,W,H,BDMC
;NEW BDMV221 S BDMV221=$O(^ICD9("BA","V22.1 ",""))
K BDM S BDMW="" S BDMX=P_"^LAST 30 MEAS WT;DURING "_BDATE_"-"_EDATE S E=$$START1^APCLDF(BDMX,"BDM(")
S BDMC=0,BDMN=0 F S BDMN=$O(BDM(BDMN)) Q:BDMN'=+BDMN!(BDMC>2) D
. S BDMZ=$P(BDM(BDMN),U,5)
. I '$D(^AUPNVPOV("AD",BDMZ)) S BDMC=BDMC+1,BDMW=BDMW_"|"_$P(BDM(BDMN),U,2)_" lbs "_$$FMTE^XLFDT($P(BDM(BDMN),U)) Q
. S BDMD=0 F S BDMD=$O(^AUPNVPOV("AD",BDMZ,BDMD)) Q:'BDMD!(BDMW]"") D
.. ;lets change this code here to look at the taxonomy p8 06/04/2014
.. N TAX,CODE
.. S TAX=$O(^ATXAX("B","BGP PREGNANCY DIAGNOSES 2",0))
.. S CODE=$P($G(^AUPNVPOV(BDMD,0)),U)
.. I '$$ICD^BDMUTL(CODE,"BGP PREGNANCY DIAGNOSES 2",9) S BDMC=BDMC+1,BDMW=BDMW_"|"_$P(BDM(BDMN),U,2)_" lbs "_$$FMTE^XLFDT($P(BDM(BDMN),U))
..Q
Q $S(F="E":BDMW,1:+BDMW)
LASTWC(P,EDATE,F) ;PEP - return last ht and date
I 'P Q ""
I $G(F)="" S F="E"
I '$D(^AUPNVSIT("AC",P)) Q ""
S BDATE=$$FMADD^XLFDT(EDATE,-365)
NEW %,BDMARRY,H,E,W
S %=P_"^LAST MEAS WC;DURING "_BDATE_"-"_EDATE NEW X S E=$$START1^APCLDF(%,"BDMARRY(") S H=$P($G(BDMARRY(1)),U,2)
Q H_" "_$$FMTE^XLFDT($P($G(BDMARRY(1)),U))
;
IFG(P,BDMRET) ;EP
K BDMRET
NEW BDMC,BDM
S BDMC=0
K BDM
;look at problem list then povs
;return where found^dx code^provider narr^date (either visit date or doo from pl)
;look for first and last pov
S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
.S I=$P(^AUPNPROB(X,0),U)
.Q:$P(^AUPNPROB(X,0),U,12)="D"
.;ihs/cmi/maw 06/04/2014 p8
.;S I=$P($$ICDDX^BDMUTL(I),U,2)
.;Q:I'="790.21"
.Q:'$$ICD^BDMUTL(I,"BGP IMPAIRED FASTING GLUCOSE",9)
.S BDMC=BDMC+1,BDMRET(BDMC)="Problem List: "_$P($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
.Q
;now look at first and last pov
S Y="BDM("
S X=P_"^LAST DX [BGP IMPAIRED FASTING GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="Last POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
K BDM S X=P_"^FIRST DX [BGP IMPAIRED FASTING GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="First POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
Q
IGT(P,BDMRET) ;EP
K BDMRET
NEW BDMC,BDM
S BDMC=0
K BDM
;look at problem list then povs
;return where found^dx code^provider narr^date (either visit date or doo from pl)
;look for first and last pov
S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
.S I=$P(^AUPNPROB(X,0),U)
.Q:$P(^AUPNPROB(X,0),U,12)="D"
.;ihs/cmi/maw 06/04/2014 p8
.;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
.;Q:I'="790.22"
.Q:'$$ICD^BDMUTL(I,"DM AUDIT IGT DXS",9)
.S BDMC=BDMC+1,BDMRET(BDMC)="Problem List: "_$P($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
.Q
;now look at first and last pov
S Y="BDM("
S X=P_"^LAST DX [DM AUDIT IGT DXS;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="Last POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
K BDM S X=P_"^FIRST DX [DM AUDIT IGT DXS;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="First POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
Q
MS(P,BDMRET) ;EP
K BDMRET
NEW BDMC,BDM
S BDMC=0
K BDM
;look at problem list then povs
;return where found^dx code^provider narr^date (either visit date or doo from pl)
;look for first and last pov
S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
.S I=$P(^AUPNPROB(X,0),U)
.Q:$P(^AUPNPROB(X,0),U,12)="D"
.;ihs/cmi/maw 06/04/2014 p8
.;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
.;Q:I'="277.7"
.Q:'$$ICD^BDMUTL(I,"DM AUDIT METABOLIC SYNDROME",9)
.S BDMC=BDMC+1,BDMRET(BDMC)="Problem List: "_$P($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
.Q
;now look at first and last pov
S Y="BDM("
S X=P_"^LAST DX [DM AUDIT METABOLIC SYNDROME;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="Last POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
K BDM S X=P_"^FIRST DX [DM AUDIT METABOLIC SYNDROME;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="First POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
Q
ABNG(P,BDMRET) ;EP
K BDMRET
NEW BDMC
S BDMC=0
;look at problem list then povs
;return where found^dx code^provider narr^date (either visit date or doo from pl)
;look for first and last pov
S X=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X D
.S I=$P(^AUPNPROB(X,0),U)
.Q:$P(^AUPNPROB(X,0),U,12)="D"
.;ihs/cmi/maw 06/04/2014 p8
.;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
.;Q:I'="790.29"
.Q:'$$ICD^BDMUTL(I,"DM AUDIT ABNORMAL GLUCOSE",9)
.S BDMC=BDMC+1,BDMRET(BDMC)="Problem List: "_$P($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
.Q
;now look at first and last pov
S Y="BDM("
S X=P_"^LAST DX [DM AUDIT ABNORMAL GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="Last POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
K BDM S X=P_"^FIRST DX [DM AUDIT ABNORMAL GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT S E=$$START1^APCLDF(X,Y)
I $D(BDM(1)) S BDMC=BDMC+1,BDMRET(BDMC)="First POV in PCC: "_$P(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($P(BDM(1),U))
Q
BDMPD13 ; IHS/CMI/LAB - 2003 DIABETES AUDIT ;
+1 ;;2.0;DIABETES MANAGEMENT SYSTEM;**9**;JUN 14, 2007;Build 78
+2 ;
+3 ;
+4 ;cmi/anch/maw 9/12/2007 code set versioning in PLDMDXS,IFG,IGT,MS,ABNG
+5 ;
LASTWT(P,EDATE,F) ;PEP - return last wt
+1 IF 'P
QUIT ""
+2 IF $GET(F)=""
SET F="E"
+3 SET BDATE=$$FMADD^XLFDT(EDATE,-365)
+4 NEW %,BDMARRY,E,BDMW,X,BDMN,BDM,BDMD,BDMZ,BDMX,W,H,BDMC
+5 ;NEW BDMV221 S BDMV221=$O(^ICD9("BA","V22.1 ",""))
+6 KILL BDM
SET BDMW=""
SET BDMX=P_"^LAST 30 MEAS WT;DURING "_BDATE_"-"_EDATE
SET E=$$START1^APCLDF(BDMX,"BDM(")
+7 SET BDMC=0
SET BDMN=0
FOR
SET BDMN=$ORDER(BDM(BDMN))
IF BDMN'=+BDMN!(BDMC>2)
QUIT
Begin DoDot:1
+8 SET BDMZ=$PIECE(BDM(BDMN),U,5)
+9 IF '$DATA(^AUPNVPOV("AD",BDMZ))
SET BDMC=BDMC+1
SET BDMW=BDMW_"|"_$PIECE(BDM(BDMN),U,2)_" lbs "_$$FMTE^XLFDT($PIECE(BDM(BDMN),U))
QUIT
+10 SET BDMD=0
FOR
SET BDMD=$ORDER(^AUPNVPOV("AD",BDMZ,BDMD))
IF 'BDMD!(BDMW]"")
QUIT
Begin DoDot:2
+11 ;lets change this code here to look at the taxonomy p8 06/04/2014
+12 NEW TAX,CODE
+13 SET TAX=$ORDER(^ATXAX("B","BGP PREGNANCY DIAGNOSES 2",0))
+14 SET CODE=$PIECE($GET(^AUPNVPOV(BDMD,0)),U)
+15 IF '$$ICD^BDMUTL(CODE,"BGP PREGNANCY DIAGNOSES 2",9)
SET BDMC=BDMC+1
SET BDMW=BDMW_"|"_$PIECE(BDM(BDMN),U,2)_" lbs "_$$FMTE^XLFDT($PIECE(BDM(BDMN),U))
+16 QUIT
End DoDot:2
End DoDot:1
+17 QUIT $SELECT(F="E":BDMW,1:+BDMW)
LASTWC(P,EDATE,F) ;PEP - return last ht and date
+1 IF 'P
QUIT ""
+2 IF $GET(F)=""
SET F="E"
+3 IF '$DATA(^AUPNVSIT("AC",P))
QUIT ""
+4 SET BDATE=$$FMADD^XLFDT(EDATE,-365)
+5 NEW %,BDMARRY,H,E,W
+6 SET %=P_"^LAST MEAS WC;DURING "_BDATE_"-"_EDATE
NEW X
SET E=$$START1^APCLDF(%,"BDMARRY(")
SET H=$PIECE($GET(BDMARRY(1)),U,2)
+7 QUIT H_" "_$$FMTE^XLFDT($PIECE($GET(BDMARRY(1)),U))
+8 ;
IFG(P,BDMRET) ;EP
+1 KILL BDMRET
+2 NEW BDMC,BDM
+3 SET BDMC=0
+4 KILL BDM
+5 ;look at problem list then povs
+6 ;return where found^dx code^provider narr^date (either visit date or doo from pl)
+7 ;look for first and last pov
+8 SET X=0
FOR
SET X=$ORDER(^AUPNPROB("AC",P,X))
IF X'=+X
QUIT
Begin DoDot:1
+9 SET I=$PIECE(^AUPNPROB(X,0),U)
+10 IF $PIECE(^AUPNPROB(X,0),U,12)="D"
QUIT
+11 ;ihs/cmi/maw 06/04/2014 p8
+12 ;S I=$P($$ICDDX^BDMUTL(I),U,2)
+13 ;Q:I'="790.21"
+14 IF '$$ICD^BDMUTL(I,"BGP IMPAIRED FASTING GLUCOSE",9)
QUIT
+15 SET BDMC=BDMC+1
SET BDMRET(BDMC)="Problem List: "_$PIECE($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
+16 QUIT
End DoDot:1
+17 ;now look at first and last pov
+18 SET Y="BDM("
+19 SET X=P_"^LAST DX [BGP IMPAIRED FASTING GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+20 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="Last POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+21 KILL BDM
SET X=P_"^FIRST DX [BGP IMPAIRED FASTING GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+22 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="First POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+23 QUIT
IGT(P,BDMRET) ;EP
+1 KILL BDMRET
+2 NEW BDMC,BDM
+3 SET BDMC=0
+4 KILL BDM
+5 ;look at problem list then povs
+6 ;return where found^dx code^provider narr^date (either visit date or doo from pl)
+7 ;look for first and last pov
+8 SET X=0
FOR
SET X=$ORDER(^AUPNPROB("AC",P,X))
IF X'=+X
QUIT
Begin DoDot:1
+9 SET I=$PIECE(^AUPNPROB(X,0),U)
+10 IF $PIECE(^AUPNPROB(X,0),U,12)="D"
QUIT
+11 ;ihs/cmi/maw 06/04/2014 p8
+12 ;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
+13 ;Q:I'="790.22"
+14 IF '$$ICD^BDMUTL(I,"DM AUDIT IGT DXS",9)
QUIT
+15 SET BDMC=BDMC+1
SET BDMRET(BDMC)="Problem List: "_$PIECE($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
+16 QUIT
End DoDot:1
+17 ;now look at first and last pov
+18 SET Y="BDM("
+19 SET X=P_"^LAST DX [DM AUDIT IGT DXS;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+20 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="Last POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+21 KILL BDM
SET X=P_"^FIRST DX [DM AUDIT IGT DXS;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+22 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="First POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+23 QUIT
MS(P,BDMRET) ;EP
+1 KILL BDMRET
+2 NEW BDMC,BDM
+3 SET BDMC=0
+4 KILL BDM
+5 ;look at problem list then povs
+6 ;return where found^dx code^provider narr^date (either visit date or doo from pl)
+7 ;look for first and last pov
+8 SET X=0
FOR
SET X=$ORDER(^AUPNPROB("AC",P,X))
IF X'=+X
QUIT
Begin DoDot:1
+9 SET I=$PIECE(^AUPNPROB(X,0),U)
+10 IF $PIECE(^AUPNPROB(X,0),U,12)="D"
QUIT
+11 ;ihs/cmi/maw 06/04/2014 p8
+12 ;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
+13 ;Q:I'="277.7"
+14 IF '$$ICD^BDMUTL(I,"DM AUDIT METABOLIC SYNDROME",9)
QUIT
+15 SET BDMC=BDMC+1
SET BDMRET(BDMC)="Problem List: "_$PIECE($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
+16 QUIT
End DoDot:1
+17 ;now look at first and last pov
+18 SET Y="BDM("
+19 SET X=P_"^LAST DX [DM AUDIT METABOLIC SYNDROME;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+20 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="Last POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+21 KILL BDM
SET X=P_"^FIRST DX [DM AUDIT METABOLIC SYNDROME;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+22 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="First POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+23 QUIT
ABNG(P,BDMRET) ;EP
+1 KILL BDMRET
+2 NEW BDMC
+3 SET BDMC=0
+4 ;look at problem list then povs
+5 ;return where found^dx code^provider narr^date (either visit date or doo from pl)
+6 ;look for first and last pov
+7 SET X=0
FOR
SET X=$ORDER(^AUPNPROB("AC",P,X))
IF X'=+X
QUIT
Begin DoDot:1
+8 SET I=$PIECE(^AUPNPROB(X,0),U)
+9 IF $PIECE(^AUPNPROB(X,0),U,12)="D"
QUIT
+10 ;ihs/cmi/maw 06/04/2014 p8
+11 ;S I=$P($$ICDDX^BDMUTL(I),U,2) ;cmi/anch/maw 9/12/2007 csv
+12 ;Q:I'="790.29"
+13 IF '$$ICD^BDMUTL(I,"DM AUDIT ABNORMAL GLUCOSE",9)
QUIT
+14 SET BDMC=BDMC+1
SET BDMRET(BDMC)="Problem List: "_$PIECE($$ICDDX^BDMUTL(I),U,2)_" Date of Onset: "_$$VAL^XBDIQ1(9000011,X,.13)
+15 QUIT
End DoDot:1
+16 ;now look at first and last pov
+17 SET Y="BDM("
+18 SET X=P_"^LAST DX [DM AUDIT ABNORMAL GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+19 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="Last POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+20 KILL BDM
SET X=P_"^FIRST DX [DM AUDIT ABNORMAL GLUCOSE;DURING "_$$DOB^AUPNPAT(P,"E")_"-"_DT
SET E=$$START1^APCLDF(X,Y)
+21 IF $DATA(BDM(1))
SET BDMC=BDMC+1
SET BDMRET(BDMC)="First POV in PCC: "_$PIECE(BDM(1),U,2)_" Date: "_$$FMTE^XLFDT($PIECE(BDM(1),U))
+22 QUIT