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

BDMD915.m

Go to the documentation of this file.
  1. BDMD915 ; IHS/CMI/LAB -IHS -CUMULATIVE REPORT ; [ 02/23/2009 8:14 PM ]
  1. ;;2.0;DIABETES MANAGEMENT SYSTEM;**2**;JUN 14, 2007
  1. ;
  1. ;
  1. CUML ;EP
  1. K BDMCUML
  1. S BDMCUML(10)="Gender"
  1. S BDMCUML(20)="Age"
  1. S BDMCUML(25)="Diabetes Type"
  1. S BDMCUML(30)="Duration of Diabetes"
  1. S BDMCUML(40)="Weight Control (BMI)"
  1. S BDMCUML(50)="Blood Sugar Control"
  1. S BDMCUML(70)="Tuberculosis Status"
  1. S BDMCUML(60)="Mean Blood Pressure"
  1. S BDMCUML(80)="Tobacco use"
  1. S BDMCUML(90)="DIABETES TREATMENT"
  1. S BDMCUML(100)="ANTIPLATELET THERAPY"
  1. S BDMCUML(110)="ACE INHIBITOR (OR ARB) USE"
  1. S BDMCUML(115)="LIPID LOWERING AGENT USE"
  1. S BDMCUML(300)="Depression on Problem List or as POVs"
  1. S BDMCUML(301)="Depression Screening?"
  1. S BDMCUML(120)="EXAMS - Yearly"
  1. S BDMCUML(130)="DIABETES-RELATED EDUCATION - Yearly"
  1. S BDMCUML(140)="IMMUNIZATIONS"
  1. S BDMCUML(145)="LABORATORY EXAMS"
  1. S BDMCUML(150)="EKG (Age 30 and above)"
  1. S BDMCUML(170)="Creatinine obtained in the past 12 months"
  1. S BDMCUML(175)="Estimated GFR documented during audit period"
  1. S BDMCUML(180)="Total Cholesterol obtained in past 12 months"
  1. S BDMCUML(190)="LDL Cholesterol obtained in the past 12 months"
  1. S BDMCUML(195)="HDL Cholesterol obtained in the past 12 months"
  1. S BDMCUML(200)="Triglycerides obtained in past 12 months"
  1. ;
  1. PROCESS ;
  1. S BDMNOGO=0
  1. S BDMPD=0 F S BDMPD=$O(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD)) Q:BDMPD'=+BDMPD D CUML1
  1. Q
  1. ;
  1. CUML1 ;
  1. GENDER ;
  1. I $$DODX^BDMD916(BDMPD,BDMDMRG,"I")>BDMADAT S BDMNOGO=BDMNOGO+1 Q
  1. ;gender BDMCUML(10)="Gender^total^females^males"
  1. S $P(BDMCUML(10),U,2)=$P(BDMCUML(10),U,2)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,20))
  1. S P=$S($E(V)="F":3,$E(V)="M":4,1:5)
  1. S $P(BDMCUML(10),U,P)=$P(BDMCUML(10),U,P)+1
  1. AGE ;
  1. S V=$$AGE^AUPNPAT(BDMPD,BDMADAT)
  1. ;BDMCUML(20)="Age^total^<15^15-44^45-64^>65^unknown"
  1. S $P(BDMCUML(20),U,2)=$P(BDMCUML(20),U,2)+1
  1. S P=$S(V<15:3,V>14&(V<45):4,V>44&(V<65):5,V>64:6,1:7)
  1. S $P(BDMCUML(20),U,P)=$P(BDMCUML(20),U,P)+1
  1. TYPE ;
  1. ;BDMCUML(25)="Total^Type 1^Type 2"
  1. S X=$$TYPE^BDMD916(BDMPD,BDMDMRG,BDMADAT)
  1. S $P(BDMCUML(25),U,2)=$P(BDMCUML(25),U,2)+1
  1. S P=$S(X="":5,X=1:3,X=2:4,1:5)
  1. S $P(BDMCUML(25),U,P)=$P(BDMCUML(25),U,P)+1
  1. DURDMC ;
  1. ;BDMCUML(30)="Duration of Diabetes^total^<10^10 or more^no date of dx on problem list or cms register"
  1. S $P(BDMCUML(30),U,2)=$P(BDMCUML(30),U,2)+1
  1. S V=$$DURDM^BDMD914(BDMPD,BDMDMRG,BDMADAT)
  1. S P=$S(V="":5,V<10:3,1:4)
  1. S $P(BDMCUML(30),U,P)=$P(BDMCUML(30),U,P)+1
  1. BMI ;
  1. ;BDMCUML(40)="Weight Control (BMI) - does not add up to 100%^total^total^overweight^obese^height or weight missing"
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,112))
  1. S $P(BDMCUML(40),U,2)=$P(BDMCUML(40),U,2)+1
  1. D
  1. .I V="" S $P(BDMCUML(40),U,5)=$P(BDMCUML(40),U,5)+1 Q
  1. .I $$OW^BDMD914(BDMPD,V,BDMADAT) S $P(BDMCUML(40),U,3)=$P(BDMCUML(40),U,3)+1 Q
  1. .I $$OB^BDMD914(BDMPD,V,BDMADAT) S $P(BDMCUML(40),U,4)=$P(BDMCUML(40),U,4)+1 Q
  1. .S $P(BDMCUML(40),U,6)=$P(BDMCUML(40),U,6)+1 Q
  1. HGB ;
  1. ;use last hgba1c value only
  1. ;BDMCUML(50)=
  1. S $P(BDMCUML(50),U,2)=$P(BDMCUML(50),U,2)+1
  1. S V=$P($G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,78)),U,2)
  1. S P=""
  1. I V=""!(V="?") S P=9 G HGBS
  1. I V["<" S P=3
  1. I V[">" S P=8
  1. I P G HGBS
  1. S V=$$STV^BDMD918(V,5)
  1. I V="" S P=9 G HGBS
  1. S V=+V
  1. S P=$S(V="":9,V<7.0:3,V>6.9&(V<8.0):4,V>7.9&(V<9.0):5,V>8.9&(V<10.0):6,V<11.0&(V>9.9):7,V>10.9:8,1:9)
  1. HGBS ;
  1. S $P(BDMCUML(50),U,P)=$P(BDMCUML(50),U,P)+1
  1. BPC ;blood pressure control
  1. ;take last 3 bp's and get mean systolic and mean diastolic
  1. S $P(BDMCUML(60),U,2)=$P(BDMCUML(60),U,2)+1
  1. S S=$$SYSMEAN(BDMPD,BDMRBD,BDMRED)
  1. S D=$$DIAMEAN(BDMPD,BDMRBD,BDMRED)
  1. D
  1. .I S=""!(D="") S $P(BDMCUML(60),U,8)=$P(BDMCUML(60),U,8)+1 Q
  1. .I S<120&(D<70) S $P(BDMCUML(60),U,3)=$P(BDMCUML(60),U,3)+1 Q
  1. .I S<130&(D<80) S $P(BDMCUML(60),U,4)=$P(BDMCUML(60),U,4)+1 Q
  1. .I S<140&(D<90) S $P(BDMCUML(60),U,5)=$P(BDMCUML(60),U,5)+1 Q
  1. .I S<160&(D<95) S $P(BDMCUML(60),U,6)=$P(BDMCUML(60),U,6)+1 Q
  1. .S $P(BDMCUML(60),U,7)=$P(BDMCUML(60),U,7)+1
  1. TBSTAT ;
  1. S $P(BDMCUML(70),U,2)=$P(BDMCUML(70),U,2)+1
  1. S V=$$TBCODE^BDMD916(BDMPD,BDMRED,BDMDMRG)
  1. S $P(BDMCUML(70),U,(V+2))=$P(BDMCUML(70),U,(V+2))+1
  1. TOBACCO ;
  1. S $P(BDMCUML(80),U,2)=$P(BDMCUML(80),U,2)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,27))
  1. S V1=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,28))
  1. I +V=1 S $P(BDMCUML(80),U,3)=$P(BDMCUML(80),U,3)+1 S P=$S($E(V1)="1":4,$E(V1)="2":5,1:6) S $P(BDMCUML(80),U,P)=$P(BDMCUML(80),U,P)+1
  1. I +V=2 S $P(BDMCUML(80),U,7)=$P(BDMCUML(80),U,7)+1
  1. I +V=3 S $P(BDMCUML(80),U,8)=$P(BDMCUML(80),U,8)+1
  1. DMTX ;diabetes treatment
  1. S BDM6MBD=$$FMADD^XLFDT(BDMADAT,-(6*31)),BDM6MBD=$$FMTE^XLFDT(BDM6MBD)
  1. S $P(BDMCUML(90),U,2)=$P(BDMCUML(90),U,2)+1
  1. S V=$$THERAPY^BDMD916(BDMPD,BDM6MBD,BDMRED)
  1. I V=1 S $P(BDMCUML(90),U,3)=$P(BDMCUML(90),U,3)+1
  1. I V="R" S $P(BDMCUML(90),U,12)=$P(BDMCUML(90),U,12)+1
  1. N I
  1. F I=1:1:$L(V) D
  1. . S Q=$E(V,I,I)
  1. . S P=$S(Q=2:4,Q=3:5,Q=4:6,Q=5:7,Q=6:8,Q=7:9,Q=8:10,Q=9:11,1:"") S $P(BDMCUML(90),U,P)=$P(BDMCUML(90),U,P)+1 ;cmi/maw 4/2/2009 modified for incretin/dpp4 per gary
  1. I $L(V)>1 D
  1. .I V[2 S $P(BDMCUML(90),U,14)=$P(BDMCUML(90),U,14)+1 Q
  1. .S C=0
  1. .I V[3 S C=C+1
  1. .I V[4 S C=C+1
  1. .I V[5 S C=C+1
  1. .I V[6 S C=C+1
  1. .I V[8 S C=C+1
  1. .I C>1 S $P(BDMCUML(90),U,13)=$P(BDMCUML(90),U,13)+1
  1. ASPIRIN ;
  1. ;only tally if patient is 30 and older
  1. G ACE:$$AGE^AUPNPAT(BDMPD,BDMADAT)<30
  1. S $P(BDMCUML(100),U,2)=$P(BDMCUML(100),U,2)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,62))
  1. S P=$S($E(V)=1:3,$E(V)=3:5,$E(V)=2:4,1:4)
  1. S $P(BDMCUML(100),U,P)=$P(BDMCUML(100),U,P)+1
  1. ACE ;110 title^total pts^total pts with protein^# of those on ace^# with htn^# of those on ace"
  1. S $P(BDMCUML(110),U,2)=$P(BDMCUML(110),U,2)+1
  1. ;set 3rd piece with # with proteinuria
  1. S P=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,92)) ;01/09/08
  1. S H=$E($G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,34)))
  1. S A=$E($G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,60)))
  1. S $P(BDMCUML(110),U,3)=$P(BDMCUML(110),U,3)+1 ;TOTAL ACE
  1. I $E(H)=1 S $P(BDMCUML(110),U,5)=$P(BDMCUML(110),U,5)+1 I A=1 S $P(BDMCUML(110),U,7)=$P(BDMCUML(110),U,7)+1 ;TOTAL HTN
  1. I $P(P,U,5)=1 S V=$P(P,U,2) D
  1. .I V[">" S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 D Q
  1. ..I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. .S V=$$STV^BDMD918(V,8)
  1. .I V>299.99 S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. I $P(P,U,5)=2 S V=$P(P,U,2) D
  1. .I V["-" Q ;S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 Q ;I A S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. .I V["300" S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 D Q
  1. ..I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. .I V[">" S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 D Q
  1. ..I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. .S V=$$STV^BDMD918(V,5,1)
  1. .I +V>299.99 S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 D Q
  1. ..I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. I $P(P,U,5)=5 S V=$P(P,U,2) D
  1. .S $P(BDMCUML(110),U,4)=$P(BDMCUML(110),U,4)+1 I A=1 S $P(BDMCUML(110),U,8)=$P(BDMCUML(110),U,8)+1 Q
  1. LIPID ;115
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,61))
  1. S L=$$LDL^BDMD918(BDMPD,BDMBDAT,BDMADAT,"I"),L=$P(L,U)
  1. S T=$$CHOL^BDMD918(BDMPD,BDMBDAT,BDMADAT,"I"),T=$P(T,U)
  1. S T=$$STV^BDMD918(T,5,1)
  1. S L=$$STV^BDMD918(L,5,1)
  1. ;I $E(V)=4!(V=5) G LIPID1 ;NOT ON LIPID AGENT
  1. I T]"",T>239.999999 S $P(BDMCUML(115),U,3)=$P(BDMCUML(115),U,3)+1 I "123"[$E(V) S $P(BDMCUML(115),U,4)=$P(BDMCUML(115),U,4)+1
  1. I L]"",L>100 S $P(BDMCUML(115),U,5)=$P(BDMCUML(115),U,5)+1 I "123"[$E(V) S $P(BDMCUML(115),U,6)=$P(BDMCUML(115),U,6)+1
  1. LIPID1 ;lipid agents
  1. ;7 - all w/agent 8 - all with statin only 9 - all with non-statin 10 - both.fx
  1. I "123"[$E(V) S $P(BDMCUML(115),U,7)=$P(BDMCUML(115),U,7)+1
  1. I $E(V)="1" S $P(BDMCUML(115),U,8)=$P(BDMCUML(115),U,8)+1
  1. I $E(V)="2" S $P(BDMCUML(115),U,9)=$P(BDMCUML(115),U,9)+1
  1. I $E(V)="3" S $P(BDMCUML(115),U,10)=$P(BDMCUML(115),U,10)+1
  1. I $E(V)="5" S $P(BDMCUML(115),U,11)=$P(BDMCUML(115),U,11)+1
  1. DEP ;
  1. S $P(BDMCUML(300),U,2)=$P(BDMCUML(300),U,2)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,200))
  1. I $E(V)="1" S $P(BDMCUML(300),U,3)=$P(BDMCUML(300),U,3)+1
  1. I $E(V)'="1" S $P(BDMCUML(301),U,2)=$P(BDMCUML(301),U,2)+1 D
  1. .S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,210))
  1. .I $E(V)="1" S $P(BDMCUML(301),U,3)=$P(BDMCUML(301),U,3)+1
  1. .I $E(V)="2" S $P(BDMCUML(301),U,4)=$P(BDMCUML(301),U,4)+1
  1. .I $E(V)="3" S $P(BDMCUML(301),U,5)=$P(BDMCUML(301),U,5)+1
  1. EXAMS ;
  1. S:'$D(BDMCUML(120)) BDMCUML(120)="EXAMS - Yearly"
  1. S $P(BDMCUML(120),U,2)=$P(BDMCUML(120),U,2)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,38))
  1. I $E(V)="1" S $P(BDMCUML(120),U,3)=$P(BDMCUML(120),U,3)+1
  1. I $E(V)="3" S $P(BDMCUML(120),U,6)=$P(BDMCUML(120),U,6)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,40))
  1. I $E(V)="1" S $P(BDMCUML(120),U,4)=$P(BDMCUML(120),U,4)+1
  1. I $E(V)="3" S $P(BDMCUML(120),U,7)=$P(BDMCUML(120),U,7)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,42))
  1. I $E(V)="1" S $P(BDMCUML(120),U,5)=$P(BDMCUML(120),U,5)+1
  1. I $E(V)="3" S $P(BDMCUML(120),U,8)=$P(BDMCUML(120),U,8)+1
  1. I $P(^DPT(BDMPD,0),U,2)="F" S $P(BDMCUML(120),U,9)=$P(BDMCUML(120),U,9)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,108))
  1. I $E(V)="1" S $P(BDMCUML(120),U,10)=$P(BDMCUML(120),U,10)+1
  1. I $E(V)="3" S $P(BDMCUML(120),U,11)=$P(BDMCUML(120),U,11)+1
  1. EDUC ;
  1. S:'$D(BDMCUML(130)) BDMCUML(130)="DIABETES-RELATED EDUCATION - Yearly"
  1. S $P(BDMCUML(130),U,2)=$P(BDMCUML(130),U,2)+1
  1. S G=0,V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,44))
  1. I $E(V)="1"!($E(V)=2)!($E(V)=3) S $P(BDMCUML(130),U,3)=$P(BDMCUML(130),U,3)+1 S G=1
  1. I $E(V)="5" S $P(BDMCUML(130),U,7)=$P(BDMCUML(130),U,7)+1
  1. I $E(V)="1" S $P(BDMCUML(130),U,10)=$P(BDMCUML(130),U,10)+1 S G=1
  1. I $E(V)="3" S $P(BDMCUML(130),U,10)=$P(BDMCUML(130),U,10)+1 S G=1 ;cmi/maw 1/15/08
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,46))
  1. I $E(V)="1" S $P(BDMCUML(130),U,4)=$P(BDMCUML(130),U,4)+1 S G=1
  1. I $E(V)="3" S $P(BDMCUML(130),U,8)=$P(BDMCUML(130),U,8)+1
  1. S V=$G(^XTMP("BDMDM91",BDMJOB,BDMBTH,"AUDIT",BDMPD,48))
  1. I $E(V)="3" S $P(BDMCUML(130),U,9)=$P(BDMCUML(130),U,9)+1
  1. I $E(V)="1" S $P(BDMCUML(130),U,5)=$P(BDMCUML(130),U,5)+1 S G=1
  1. I G S $P(BDMCUML(130),U,6)=$P(BDMCUML(130),U,6)+1
  1. D ^BDMD911
  1. Q
  1. SYSMEAN(P,BDATE,EDATE) ;EP
  1. NEW X S X=$$BPS^BDMD913(P,BDATE,EDATE,"I")
  1. I X="" Q ""
  1. NEW Y,C S C=0 F Y=1:1:3 I $P(X,";",Y)]"" S C=C+1
  1. I C'=3 Q ""
  1. S C=0 F Y=1:1:3 S C=$P($P(X,";",Y),"/")+C
  1. Q C\3
  1. Q ""
  1. DIAMEAN(P,BDATE,EDATE) ;EP
  1. NEW X S X=$$BPS^BDMD913(P,BDATE,EDATE,"I")
  1. I X="" Q ""
  1. NEW Y,C S C=0 F Y=1:1:3 I $P(X,";",Y)]"" S C=C+1
  1. I C'=3 Q ""
  1. S C=0 F Y=1:1:3 S C=$P($P(X,";",Y),"/",2)+C
  1. Q C\3