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

BDMDF1J.m

Go to the documentation of this file.
  1. BDMDF1J ; IHS/CMI/LAB -IHS -CUMULATIVE REPORT 10 Oct 2014 9:50 AM ;
  1. ;;2.0;DIABETES MANAGEMENT SYSTEM;**11**;JUN 14, 2007;Build 30
  1. ;
  1. CUML ;EP
  1. ;
  1. COMORBID ;USE 400
  1. S:'$D(BDMCUML(400)) BDMCUML(400)="Comorbidities"
  1. S $P(BDMCUML(400),U,2)=$P(BDMCUML(400),U,2)+1 ;TOTAL # of patients
  1. ;active depression piece 3
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,200))
  1. I $E(V)="1" S $P(BDMCUML(400),U,3)=$P(BDMCUML(400),U,3)+1,BDMCOMOR=BDMCOMOR+1
  1. ;tobacco use piece 4
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,27))
  1. I +V=1 S $P(BDMCUML(400),U,4)=$P(BDMCUML(400),U,4)+1,BDMCOMOR=BDMCOMOR+1
  1. ;SEVERELY OBESE PIECE 5
  1. I BDMSEVOB S $P(BDMCUML(400),U,5)=$P(BDMCUML(400),U,5)+1,BDMCOMOR=BDMCOMOR+1
  1. ;HYPERTENSION DIAGNOSED PIECE 6
  1. S H=$E($G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,34)))
  1. I $E(H)=1 S $P(BDMCUML(400),U,6)=$P(BDMCUML(400),U,6)+1,BDMCOMOR=BDMCOMOR+1
  1. ;HTN AND MEAN BP <140/<90 PIECE 7
  1. I $E(H)=1,BDMBP140 S $P(BDMCUML(400),U,7)=$P(BDMCUML(400),U,7)+1
  1. ;cvd piece 8
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,116))
  1. I $E(V)=1 S $P(BDMCUML(400),U,8)=$P(BDMCUML(400),U,8)+1,BDMCOMOR=BDMCOMOR+1
  1. ;
  1. ;CVD & BP <140/<90 PIECE 9
  1. I $E(V)=1,BDMBP140 S $P(BDMCUML(400),U,9)=$P(BDMCUML(400),U,9)+1
  1. ;CVD AND NOT A TOBACCO USER PIECE 10
  1. S T=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,27))
  1. I $E(T)=2,$E(V)=1 S $P(BDMCUML(400),U,10)=$P(BDMCUML(400),U,10)+1
  1. ;CVD AND STATIN PRESCRIBED PIECE 11
  1. S T=+$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,300))
  1. I $E(V)=1,T=1 S $P(BDMCUML(400),U,11)=$P(BDMCUML(400),U,11)+1
  1. I $E(V)=1,T'=3 S $P(BDMCUML(400),U,34)=$P(BDMCUML(400),U,34)+1 ;DENOM W/O ALLERGY
  1. ;CVD AND ASPIRIN PIECE 12
  1. S T=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,62))
  1. I $E(V)=1,$E(T)=1 S $P(BDMCUML(400),U,12)=$P(BDMCUML(400),U,12)+1
  1. ;
  1. ;CKD PIECE 13 & 14
  1. ;CKD IS EGFR <60 OR UACR >=30
  1. I $$AGE^AUPNPAT(BDMPD,BDMADAT)<18 G N
  1. S $P(BDMCUML(400),U,13)=$P(BDMCUML(400),U,13)+1 ;over 18 denom
  1. I BDMCKD S $P(BDMCUML(400),U,14)=$P(BDMCUML(400),U,14)+1,BDMCOMOR=BDMCOMOR+1 ;HAS CKD
  1. ;CKD AND BP <140/<90 PIECE 15
  1. I BDMCKD,BDMBP140 S $P(BDMCUML(400),U,15)=$P(BDMCUML(400),U,15)+1
  1. ;CKD AND ACE PIECE 16
  1. S A=$E($G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,60)))
  1. I A=1,BDMCKD S $P(BDMCUML(400),U,16)=$P(BDMCUML(400),U,16)+1
  1. ;EGFR AND UACR DONE PIECE 17
  1. S G=0
  1. I BDMEGFRU S $P(BDMCUML(400),U,17)=$P(BDMCUML(400),U,17)+1 D I G G N
  1. .;NORMAL PIECE 18
  1. .I BDMEGFRV>59,BDMUACRV="<30" S $P(BDMCUML(400),U,18)=$P(BDMCUML(400),U,18)+1 S G=1
  1. .;STAGE 1/2 EGFR =>60, UACR =>30
  1. .I BDMEGFRV>59,BDMUACRV=">30" S $P(BDMCUML(400),U,19)=$P(BDMCUML(400),U,19)+1 S G=1
  1. ;STAGE 3 EGFR 30-59
  1. I BDMEGFRV]"",BDMEGFRV'<30,BDMEGFRV<60 S $P(BDMCUML(400),U,20)=$P(BDMCUML(400),U,20)+1 G N
  1. ;STAGE 4 EGFR 15-20 PIECE 21
  1. I BDMEGFRV]"",BDMEGFRV'<15,BDMEGFRV'>29 S $P(BDMCUML(400),U,21)=$P(BDMCUML(400),U,21)+1 G N
  1. ;STAGE 5 EGFR <15
  1. I BDMEGFRV]"",BDMEGFRV<15 S $P(BDMCUML(400),U,22)=$P(BDMCUML(400),U,22)+1 G N
  1. ;UACR AND EGFR NOT DONE
  1. S $P(BDMCUML(400),U,23)=$P(BDMCUML(400),U,23)+1
  1. N ;p12 HEP C AND RETINOPATHY
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,222))
  1. I $E(V)="1" S $P(BDMCUML(400),U,35)=$P(BDMCUML(400),U,35)+1,BDMCOMOR=BDMCOMOR+1 G R
  1. ;
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,223))
  1. I $E(V)="1" S $P(BDMCUML(400),U,37)=$P(BDMCUML(400),U,37)+1
  1. I $E(V)'=3 S $P(BDMCUML(400),U,36)=$P(BDMCUML(400),U,36)+1 ;hep c screen denom
  1. R ;RETINOPATHY
  1. S V=$G(^XTMP("BDMDM18",BDMJOB,BDMBTH,"AUDIT",BDMPD,224))
  1. I $E(V)="1" S $P(BDMCUML(400),U,38)=$P(BDMCUML(400),U,38)+1,BDMCOMOR=BDMCOMOR+1
  1. V ;NONE PIECE 25
  1. I BDMCOMOR=0 S $P(BDMCUML(400),U,25)=$P(BDMCUML(400),U,25)+1
  1. I BDMCOMOR=1 S $P(BDMCUML(400),U,26)=$P(BDMCUML(400),U,26)+1
  1. I BDMCOMOR=2 S $P(BDMCUML(400),U,27)=$P(BDMCUML(400),U,27)+1
  1. I BDMCOMOR=3 S $P(BDMCUML(400),U,28)=$P(BDMCUML(400),U,28)+1
  1. I BDMCOMOR=4 S $P(BDMCUML(400),U,29)=$P(BDMCUML(400),U,29)+1
  1. I BDMCOMOR>4 S $P(BDMCUML(400),U,30)=$P(BDMCUML(400),U,30)+1 ;P11
  1. ;I BDMCOMOR=6 S $P(BDMCUML(400),U,31)=$P(BDMCUML(400),U,31)+1 ;P11
  1. Q
  1. REC(DFN,BDMRTYP,BDMRBD,BDMRED,BDMED,BDMDMRG,BDMBDAT) ;EP - called to send back a visit record as
  1. NEW BDMX,BDMREC,BDMEPIX,BDMTTT,X,Y,Z
  1. S BDMREC=""
  1. S BDMRTYP("IEN")=$O(^BDMRECD("B",BDMRTYP,0))
  1. I 'BDMRTYP("IEN") Q BDMREC
  1. PROC ;
  1. S BDMEPIX=0
  1. F S BDMEPIX=$O(^BDMRECD(BDMRTYP("IEN"),11,"AC",BDMEPIX)) Q:BDMEPIX'=+BDMEPIX!(BDMREC=-1) S BDMTTT=$O(^BDMRECD(BDMRTYP("IEN"),11,"AC",BDMEPIX,0)) D
  1. .S X="" X:$D(^BDMRECD(BDMRTYP("IEN"),11,BDMTTT,11)) ^BDMRECD(BDMRTYP("IEN"),11,BDMTTT,11)
  1. .;I X="" S X=" "
  1. .S $P(BDMREC,U,$P(^BDMRECD(BDMRTYP("IEN"),11,BDMTTT,0),U,2))=X
  1. Q BDMREC
  1. EPICHK ;create epi info record in ^BDMDATA("BDMEPI",$J,n)
  1. ;skip this patient if dodx is greater than the audit date
  1. S X=$$DODX^BDMDF16(BDMPD,BDMDMRG,"I")
  1. I X>BDMADAT Q
  1. ;I DUZ=2881,BDMPD'=8932 Q
  1. NEW BDMECNT,BDMEPIR,BDMTHER
  1. S BDMEPIR="",BDMTHER="",BDMECNT=0
  1. S BDMEPIR=$$REC(BDMPD,"DM AUDIT 2018 EXPORT RECORD",BDMRBD,BDMRED,BDMADAT,BDMDMRG,BDMBDAT)
  1. ;CHECK ERRORS ON BDMEPIR
  1. S BDMRTYP("IEN")=$O(^BDMRECD("B","DM AUDIT 2018 EXPORT RECORD",0))
  1. S Z=0 F S Z=$O(^BDMRECD(BDMRTYP("IEN"),21,Z)) Q:Z'=+Z D
  1. .X:$D(^BDMRECD(BDMRTYP("IEN"),21,Z,1)) ^BDMRECD(BDMRTYP("IEN"),21,Z,1)
  1. .Q:'$T
  1. .S S=""
  1. .I BDMQSRT="P" S S=$P(^DPT(BDMPD,0),U,1)
  1. .I BDMQSRT="E" S S=$P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,1)
  1. .S BDMECNT=BDMECNT+1
  1. .S $P(^XTMP("BDMDM18 ERRORS",BDMJOB,BDMBTH,"PATS",S,BDMPD,BDMECNT),U,1)=$P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,1)
  1. .S J=$P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,2)
  1. .S $P(^XTMP("BDMDM18 ERRORS",BDMJOB,BDMBTH,"PATS",S,BDMPD,BDMECNT),U,2)=$S(J="P":"POTENTIAL",J="D":"DEFINITE",1:"")
  1. .S $P(^XTMP("BDMDM18 ERRORS",BDMJOB,BDMBTH,"PATS",S,BDMPD,BDMECNT),U,3)=$P($G(^BDMRECD(BDMRTYP("IEN"),21,Z,11)),U,1)
  1. .S P=$P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,4)
  1. .S A=""
  1. .I P="" D
  1. ..I $P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,1)["BMI" S A=$$BMI^BDMDF18(BDMPD,BDMRBD,BDMRED)
  1. ..I $P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,1)["HEIGHT TOTAL" S A="" I $P(BDMEPIR,U,18)]"" S A=$P(BDMEPIR,U,18)*12,A=A+$P(BDMEPIR,U,19)
  1. ..I $P(^BDMRECD(BDMRTYP("IEN"),21,Z,0),U,1)["DURATION" S A=$$DURDM^BDMDF16(BDMPD,BDMDMRG,BDMADAT)
  1. .I P S A=$P(BDMEPIR,U,P)
  1. .S $P(^XTMP("BDMDM18 ERRORS",BDMJOB,BDMBTH,"PATS",S,BDMPD,BDMECNT),U,4)=A
  1. Q
  1. QUALCHK ;EP - addl questions for data quality report
  1. ;get sort value
  1. S BDMQSRT=""
  1. S DIR(0)="S^P:PATIENT NAME;E:ERROR FIELD NAME",DIR("A")="How should the report be sorted",DIR("B")="P" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) S BDMSTP=1 Q
  1. S BDMQSRT=Y
  1. Q