BDMPC19 ; IHS/CMI/LAB - 2003 DIABETES AUDIT ;
;;2.0;DIABETES MANAGEMENT SYSTEM;**8,9,10,11,12**;JUN 14, 2007;Build 51
;
;
W:$D(IOF) @IOF
W !!,"Checking for Taxonomies to support the 2015 Pre-Diabetes Audit. ",!,"Please enter the device for printing.",!
ZIS ;
S XBRC="",XBRP="TAXCHK^BDMPC19",XBNS="",XBRX="XIT^BDMPC19"
D ^XBDBQUE
D XIT
Q
TAXCHK ;EP
W:$D(IOF) @IOF
K BDMQUIT
W !,"Checking for Taxonomies to support the 2015 Pre-Diabetes Audit...",!
NEW A,BDMX,I,Y,Z,J,BDMY,B,C
K A,B
S C=0
S T="TAXS" F J=1:1 S Z=$T(@T+J),BDMX=$P(Z,";;",2),Y=$P(Z,";;",3) Q:BDMX="" D
.I '$D(^ATXAX("B",BDMX)) S A(BDMX)=Y_"^is Missing" Q
.S I=$O(^ATXAX("B",BDMX,0))
.I '$D(^ATXAX(I,21,"B")) S A(BDMX)=Y_"^has no entries "
S T="LAB" F J=1:1 S Z=$T(@T+J),BDMX=$P(Z,";;",2),Y=$P(Z,";;",3) Q:BDMX="" D
.I '$D(^ATXLAB("B",BDMX)) S A(BDMX)=Y_"^is Missing " Q
.S I=$O(^ATXLAB("B",BDMX,0))
.I '$D(^ATXLAB(I,21,"B")) S A(BDMX)=Y_"^has no entries " Q
.I '$P(^ATXLAB(I,0),U,11) D
..;check for panels and warn
..Q:$P(^ATXLAB(I,0),U)="BGP PAP SMEAR TAX"
..S BDMY=0 F S BDMY=$O(^ATXLAB(I,21,"B",BDMY)) Q:BDMY'=+BDMY D
...I $O(^LAB(60,BDMY,2,0)) S C=C+1,B(BDMX,C)=Y_"^contains a panel test: "_$P(^LAB(60,BDMY,0),U)_" and should not."
I $Y>(IOSL-2) D PAGE
I '$D(A),'$D(B) W !,"All taxonomies are present.",! K A,BDMX,Y,I,Z Q
W !!,"In order for the 2015 Diabetes Audit to find all necessary data, several",!,"taxonomies must be established. The following taxonomies are missing, have",!,"no entries or contain a panel test and should not:",!
S BDMX="" F S BDMX=$O(A(BDMX)) Q:BDMX=""!($D(BDMQUIT)) D
.I $Y>(IOSL-2) D PAGE Q:$D(BDMQUIT)
.W !,$P(A(BDMX),U)," [",BDMX,"] ",$P(A(BDMX),U,2)
.Q
G:$D(BDMQUIT) DONE
S BDMX="" F S BDMX=$O(B(BDMX)) Q:BDMX=""!($D(BDMQUIT)) D
.S BDMY=0 F S BDMY=$O(B(BDMX,BDMY)) Q:BDMY'=+BDMY!($D(BDMQUIT)) D
..W !,$P(B(BDMX,BDMY),U)," [",BDMX,"] ",$P(B(BDMX,BDMY),U,2)
DONE ;
I $E(IOST)="C",IO=IO(0) S DIR(0)="EO",DIR("A")="End of taxonomy check. HIT RETURN" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
Q
XIT ;EP
K BDM,BDMX,BDMQUIT,BDMLINE,BDMJ,BDMX,BDMTEXT,BDM
K X,Y,J
Q
LASTHF(P,C,BDATE,EDATE,F) ;EP - get last factor in category C for patient P
I '$G(P) Q ""
I $G(C)="" Q ""
I $G(F)="" S F=""
S C=$O(^AUTTHF("B",C,0)) ;ien of category passed
I '$G(C) Q ""
NEW H,D,O S H=0 K O
F S H=$O(^AUTTHF("AC",C,H)) Q:'+H D
. Q:'$D(^AUPNVHF("AA",P,H))
. S D="" F S D=$O(^AUPNVHF("AA",P,H,D)) Q:D'=+D D
.. Q:(9999999-D)>EDATE ;after time frame
.. Q:(9999999-D)<BDATE ;before time frame
.. S O(D)=$O(^AUPNVHF("AA",P,H,D,""))
. Q
S D=$O(O(0))
I D="" Q D
I F="F" Q $P(^AUTTHF($P(^AUPNVHF(O(D),0),U),0),U)
;
Q 1
;;
BANNER ;EP - banner for 2003 audit menu
S BDMTEXT="TEXTD",BDM("VERSION")="2.0 (Patch 12)"
F BDMJ=1:1 S BDMX=$T(@BDMTEXT+BDMJ),BDMX=$P(BDMX,";;",2) Q:BDMX="QUIT"!(BDMX="") S BDMLINE=BDMJ
PRINT D ^XBCLS W:$D(IOF) @IOF
F BDMJ=1:1:BDMLINE S BDMX=$T(@BDMTEXT+BDMJ),BDMX=$P(BDMX,";;",2) W !?80-$L(BDMX)\2,BDMX K BDMX
W !?80-(8+$L(BDM("VERSION")))/2,"Version ",BDM("VERSION")
G XIT:'$D(DUZ(2)) G:'DUZ(2) XIT S BDM("SITE")=$P(^DIC(4,$S($G(BDMDUZ2):BDMDUZ2,1:DUZ(2)),0),"^") W !!?80-$L(BDM("SITE"))\2,BDM("SITE")
D XIT
Q
TEXTD ;EP
;;****************************************
;;** Diabetes Management System **
;;** 2015 Diabetes Audit Report Menu **
;;****************************************
;;QUIT
PAGE ;
I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BDMQUIT="" Q
Q
BMIEPI(H,W) ;EP ;
NEW %
I H="" Q ""
I W="" Q ""
S W=W*.45359,H=(H*.0254),H=(H*H),%=(W/H),%=$J(%,4,1)
Q %
TAXS ;
;;SURVEILLANCE DIABETES;;Diabetes Diagnoses Codes
;;SURVEILLANCE HYPERTENSION;;Hypertension Diagnoses Codes
;;DM AUDIT DIET EDUC TOPICS;;Diabetes Diet Education Topics
;;DM AUDIT EXERCISE EDUC TOPICS;;Diabetes Excercise Education Topics
;;DM AUDIT SMOKING CESS EDUC;;Smoking Cess Education Topics
;;DM AUDIT TOBACCO HLTH FACTORS;;Tobacco Health Factors
;;DM AUDIT PROBLEM SMOKING DXS;;Smoking related diagnoses for Problem List
;;DM AUDIT PROBLEM HTN DIAGNOSES;;Hypertension Diagnoses
;;DM AUDIT PROBLEM DIABETES DX;;Diabetes Diagnoses
;;DM AUDIT SMOKING RELATED DXS;;Smoking related diagnoses for POVs
;;DM AUDIT CESSATION HLTH FACTOR;;Smoking Cessation Health Factors
;;DM AUDIT SULFONYLUREA DRUGS;;Sulfonylurea Drug Taxonomy
;;DM AUDIT METFORMIN DRUGS;;Metformin Drug Taxonomy
;;DM AUDIT ACARBOSE DRUGS;;Acarbose Drug Taxonomy
;;DM AUDIT LIPID LOWERING DRUGS;;Lipid Lowering Drug Taxonomy
;;DM AUDIT STATIN DRUGS;;Statin Drug Taxonomy
;;DM AUDIT GLITAZONE DRUGS;;Glitzaone Drug Taxonomy
;;DM AUDIT ACE INHIBITORS;;ACE Inhibitor Drug Taxonomy
;;DM AUDIT ASPIRIN DRUGS;;Aspirin Drug Taxonomy
;;DM AUDIT ANTI-PLATELET DRUGS;;Anti-Platelet Drug Taxonomy
;;
LAB ;
;;DM AUDIT FASTING GLUCOSE TESTS;;Fasting Glucose Tests Taxonomy
;;DM AUDIT CHOLESTEROL TAX;;Cholesterol Lab Taxonomy
;;DM AUDIT LDL CHOLESTEROL TAX;;LDL Cholesterol Lab Taxonomy
;;DM AUDIT HDL TAX;;HDL Lab Taxonomy
;;DM AUDIT TRIGLYCERIDE TAX;;Triglyceride Lab Taxonomy
;;DM AUDIT 75GM 2HR GLUCOSE;;75 gm 2hr glucose test taxonomy
;;DM AUDIT AST TAX
;;DM AUDIT ALT TAX
;;BGP PAP SMEAR TAX
;;
BDMPC19 ; IHS/CMI/LAB - 2003 DIABETES AUDIT ;
+1 ;;2.0;DIABETES MANAGEMENT SYSTEM;**8,9,10,11,12**;JUN 14, 2007;Build 51
+2 ;
+3 ;
+4 IF $DATA(IOF)
WRITE @IOF
+5 WRITE !!,"Checking for Taxonomies to support the 2015 Pre-Diabetes Audit. ",!,"Please enter the device for printing.",!
ZIS ;
+1 SET XBRC=""
SET XBRP="TAXCHK^BDMPC19"
SET XBNS=""
SET XBRX="XIT^BDMPC19"
+2 DO ^XBDBQUE
+3 DO XIT
+4 QUIT
TAXCHK ;EP
+1 IF $DATA(IOF)
WRITE @IOF
+2 KILL BDMQUIT
+3 WRITE !,"Checking for Taxonomies to support the 2015 Pre-Diabetes Audit...",!
+4 NEW A,BDMX,I,Y,Z,J,BDMY,B,C
+5 KILL A,B
+6 SET C=0
+7 SET T="TAXS"
FOR J=1:1
SET Z=$TEXT(@T+J)
SET BDMX=$PIECE(Z,";;",2)
SET Y=$PIECE(Z,";;",3)
IF BDMX=""
QUIT
Begin DoDot:1
+8 IF '$DATA(^ATXAX("B",BDMX))
SET A(BDMX)=Y_"^is Missing"
QUIT
+9 SET I=$ORDER(^ATXAX("B",BDMX,0))
+10 IF '$DATA(^ATXAX(I,21,"B"))
SET A(BDMX)=Y_"^has no entries "
End DoDot:1
+11 SET T="LAB"
FOR J=1:1
SET Z=$TEXT(@T+J)
SET BDMX=$PIECE(Z,";;",2)
SET Y=$PIECE(Z,";;",3)
IF BDMX=""
QUIT
Begin DoDot:1
+12 IF '$DATA(^ATXLAB("B",BDMX))
SET A(BDMX)=Y_"^is Missing "
QUIT
+13 SET I=$ORDER(^ATXLAB("B",BDMX,0))
+14 IF '$DATA(^ATXLAB(I,21,"B"))
SET A(BDMX)=Y_"^has no entries "
QUIT
+15 IF '$PIECE(^ATXLAB(I,0),U,11)
Begin DoDot:2
+16 ;check for panels and warn
+17 IF $PIECE(^ATXLAB(I,0),U)="BGP PAP SMEAR TAX"
QUIT
+18 SET BDMY=0
FOR
SET BDMY=$ORDER(^ATXLAB(I,21,"B",BDMY))
IF BDMY'=+BDMY
QUIT
Begin DoDot:3
+19 IF $ORDER(^LAB(60,BDMY,2,0))
SET C=C+1
SET B(BDMX,C)=Y_"^contains a panel test: "_$PIECE(^LAB(60,BDMY,0),U)_" and should not."
End DoDot:3
End DoDot:2
End DoDot:1
+20 IF $Y>(IOSL-2)
DO PAGE
+21 IF '$DATA(A)
IF '$DATA(B)
WRITE !,"All taxonomies are present.",!
KILL A,BDMX,Y,I,Z
QUIT
+22 WRITE !!,"In order for the 2015 Diabetes Audit to find all necessary data, several",!,"taxonomies must be established. The following taxonomies are missing, have",!,"no entries or contain a panel test and should not:",!
+23 SET BDMX=""
FOR
SET BDMX=$ORDER(A(BDMX))
IF BDMX=""!($DATA(BDMQUIT))
QUIT
Begin DoDot:1
+24 IF $Y>(IOSL-2)
DO PAGE
IF $DATA(BDMQUIT)
QUIT
+25 WRITE !,$PIECE(A(BDMX),U)," [",BDMX,"] ",$PIECE(A(BDMX),U,2)
+26 QUIT
End DoDot:1
+27 IF $DATA(BDMQUIT)
GOTO DONE
+28 SET BDMX=""
FOR
SET BDMX=$ORDER(B(BDMX))
IF BDMX=""!($DATA(BDMQUIT))
QUIT
Begin DoDot:1
+29 SET BDMY=0
FOR
SET BDMY=$ORDER(B(BDMX,BDMY))
IF BDMY'=+BDMY!($DATA(BDMQUIT))
QUIT
Begin DoDot:2
+30 WRITE !,$PIECE(B(BDMX,BDMY),U)," [",BDMX,"] ",$PIECE(B(BDMX,BDMY),U,2)
End DoDot:2
End DoDot:1
DONE ;
+1 IF $EXTRACT(IOST)="C"
IF IO=IO(0)
SET DIR(0)="EO"
SET DIR("A")="End of taxonomy check. HIT RETURN"
DO ^DIR
KILL DIR
IF $DATA(DUOUT)
SET DIRUT=1
+2 QUIT
XIT ;EP
+1 KILL BDM,BDMX,BDMQUIT,BDMLINE,BDMJ,BDMX,BDMTEXT,BDM
+2 KILL X,Y,J
+3 QUIT
LASTHF(P,C,BDATE,EDATE,F) ;EP - get last factor in category C for patient P
+1 IF '$GET(P)
QUIT ""
+2 IF $GET(C)=""
QUIT ""
+3 IF $GET(F)=""
SET F=""
+4 ;ien of category passed
SET C=$ORDER(^AUTTHF("B",C,0))
+5 IF '$GET(C)
QUIT ""
+6 NEW H,D,O
SET H=0
KILL O
+7 FOR
SET H=$ORDER(^AUTTHF("AC",C,H))
IF '+H
QUIT
Begin DoDot:1
+8 IF '$DATA(^AUPNVHF("AA",P,H))
QUIT
+9 SET D=""
FOR
SET D=$ORDER(^AUPNVHF("AA",P,H,D))
IF D'=+D
QUIT
Begin DoDot:2
+10 ;after time frame
IF (9999999-D)>EDATE
QUIT
+11 ;before time frame
IF (9999999-D)<BDATE
QUIT
+12 SET O(D)=$ORDER(^AUPNVHF("AA",P,H,D,""))
End DoDot:2
+13 QUIT
End DoDot:1
+14 SET D=$ORDER(O(0))
+15 IF D=""
QUIT D
+16 IF F="F"
QUIT $PIECE(^AUTTHF($PIECE(^AUPNVHF(O(D),0),U),0),U)
+17 ;
+18 QUIT 1
+19 ;;
BANNER ;EP - banner for 2003 audit menu
+1 SET BDMTEXT="TEXTD"
SET BDM("VERSION")="2.0 (Patch 12)"
+2 FOR BDMJ=1:1
SET BDMX=$TEXT(@BDMTEXT+BDMJ)
SET BDMX=$PIECE(BDMX,";;",2)
IF BDMX="QUIT"!(BDMX="")
QUIT
SET BDMLINE=BDMJ
PRINT DO ^XBCLS
IF $DATA(IOF)
WRITE @IOF
+1 FOR BDMJ=1:1:BDMLINE
SET BDMX=$TEXT(@BDMTEXT+BDMJ)
SET BDMX=$PIECE(BDMX,";;",2)
WRITE !?80-$LENGTH(BDMX)\2,BDMX
KILL BDMX
+2 WRITE !?80-(8+$LENGTH(BDM("VERSION")))/2,"Version ",BDM("VERSION")
+3 IF '$DATA(DUZ(2))
GOTO XIT
IF 'DUZ(2)
GOTO XIT
SET BDM("SITE")=$PIECE(^DIC(4,$SELECT($GET(BDMDUZ2):BDMDUZ2,1:DUZ(2)),0),"^")
WRITE !!?80-$LENGTH(BDM("SITE"))\2,BDM("SITE")
+4 DO XIT
+5 QUIT
TEXTD ;EP
+1 ;;****************************************
+2 ;;** Diabetes Management System **
+3 ;;** 2015 Diabetes Audit Report Menu **
+4 ;;****************************************
+5 ;;QUIT
PAGE ;
+1 IF $EXTRACT(IOST)="C"
IF IO=IO(0)
WRITE !
SET DIR(0)="EO"
DO ^DIR
KILL DIR
IF Y=0!(Y="^")!($DATA(DTOUT))
SET BDMQUIT=""
QUIT
+2 QUIT
BMIEPI(H,W) ;EP ;
+1 NEW %
+2 IF H=""
QUIT ""
+3 IF W=""
QUIT ""
+4 SET W=W*.45359
SET H=(H*.0254)
SET H=(H*H)
SET %=(W/H)
SET %=$JUSTIFY(%,4,1)
+5 QUIT %
TAXS ;
+1 ;;SURVEILLANCE DIABETES;;Diabetes Diagnoses Codes
+2 ;;SURVEILLANCE HYPERTENSION;;Hypertension Diagnoses Codes
+3 ;;DM AUDIT DIET EDUC TOPICS;;Diabetes Diet Education Topics
+4 ;;DM AUDIT EXERCISE EDUC TOPICS;;Diabetes Excercise Education Topics
+5 ;;DM AUDIT SMOKING CESS EDUC;;Smoking Cess Education Topics
+6 ;;DM AUDIT TOBACCO HLTH FACTORS;;Tobacco Health Factors
+7 ;;DM AUDIT PROBLEM SMOKING DXS;;Smoking related diagnoses for Problem List
+8 ;;DM AUDIT PROBLEM HTN DIAGNOSES;;Hypertension Diagnoses
+9 ;;DM AUDIT PROBLEM DIABETES DX;;Diabetes Diagnoses
+10 ;;DM AUDIT SMOKING RELATED DXS;;Smoking related diagnoses for POVs
+11 ;;DM AUDIT CESSATION HLTH FACTOR;;Smoking Cessation Health Factors
+12 ;;DM AUDIT SULFONYLUREA DRUGS;;Sulfonylurea Drug Taxonomy
+13 ;;DM AUDIT METFORMIN DRUGS;;Metformin Drug Taxonomy
+14 ;;DM AUDIT ACARBOSE DRUGS;;Acarbose Drug Taxonomy
+15 ;;DM AUDIT LIPID LOWERING DRUGS;;Lipid Lowering Drug Taxonomy
+16 ;;DM AUDIT STATIN DRUGS;;Statin Drug Taxonomy
+17 ;;DM AUDIT GLITAZONE DRUGS;;Glitzaone Drug Taxonomy
+18 ;;DM AUDIT ACE INHIBITORS;;ACE Inhibitor Drug Taxonomy
+19 ;;DM AUDIT ASPIRIN DRUGS;;Aspirin Drug Taxonomy
+20 ;;DM AUDIT ANTI-PLATELET DRUGS;;Anti-Platelet Drug Taxonomy
+21 ;;
LAB ;
+1 ;;DM AUDIT FASTING GLUCOSE TESTS;;Fasting Glucose Tests Taxonomy
+2 ;;DM AUDIT CHOLESTEROL TAX;;Cholesterol Lab Taxonomy
+3 ;;DM AUDIT LDL CHOLESTEROL TAX;;LDL Cholesterol Lab Taxonomy
+4 ;;DM AUDIT HDL TAX;;HDL Lab Taxonomy
+5 ;;DM AUDIT TRIGLYCERIDE TAX;;Triglyceride Lab Taxonomy
+6 ;;DM AUDIT 75GM 2HR GLUCOSE;;75 gm 2hr glucose test taxonomy
+7 ;;DM AUDIT AST TAX
+8 ;;DM AUDIT ALT TAX
+9 ;;BGP PAP SMEAR TAX
+10 ;;