CrCl
Rule an alternative Method MUSE Regional 2004
Herb
Bromenshenkel RPh
North
Country Health Services
218-333-5527
At MUSE International 2004, I presented
the below rule.
During that time, Bruce Mathias suggested
rather than coding for each drug, use one rule and pull from a drug CDS.
Below
is a method to calculate Estimated CrCL.
The advantages of this method versus other methods is:
1) Displays patient data used to make
calculation
2) Displays reasons why CrCl cant be
calculated
3) If CrCl cant be calculated,
displays all known variables to assist with clinical judgment
4) Displays historical data. Multiple
Cr with date and times
5) Gives general dosing guidelines if
CrCL not available
6) Displays all info, including dose
recommendations in one message/screen
Three
rules are listed
1) Calc. Rule which calculates CrCl
2) Cefazolin Rule if PHA DTS 6233 is
in system
CALC RULE
This rule
calculates CrCl. If any of the
necessary 5 data fields are missing, a message stating missing info is stored
in the XZ variable.
Key
points:
1) All potential missing data starts
with a *
2) 1st checks to see if a
Cr exist. A rule will reference
location #9 to look for C
3) Minimum Cr used in calculation is
1.0. If Cr is less than 1.0, 1.0 is substituted.
CRCL.ADJAR Y
EST. CRCL c ADJUSTED WT - REV
N CALC
;THIS CALCULATES AN ESTIMATED CRCL
BASED ON AN ADJUSTED BODY WEIGHT. NOTE,
; THIS HAS BEEN MODIFIED FROM
CRCL.ADJW (THE MESSAGE "UNABLE TO CAC.. HAS BEEN
;REMOVED. I LEFT IT IN THE RULE, BUT DID NOT REFERENCE
IT. IN THE LINE UNDER
; THE MESSAGE, I REPLACED THE
MESSAGE PROMPT WITH ""
""^XZ,
IF{IF{[f rx last ver
result]("CR")^SRCR_.=. XZ_"*Missing Cr "^XZ},
IF{[f pt sex]^SX_.=.
XZ_"*Missing Sex "^XZ},
IF{[f pt oe ht cm]^HT_.=.
XZ_"*Missing Ht "^XZ},
IF{[f pt oe wt kgs]^WT_.=.
XZ_"*Missing Wt "^XZ},
IF{[f pt cur age]^AGE_.=.
XZ_"*Missing Age"^XZ},XZ;
IF{SX="M" 50;45.5}^S,
IF{SX="M" 1;0.85}^F,
IF{SRCR<1.01 1.0^SRCR},
S+(2.3*((HT/2.54)-60)!0)^IBW_.=.,
IF{[f pt oe wt kgs]>1
IBW*1.2}^ADBW_.=.,
IF{[f pt oe wt kgs]<IBW [f pt
oe wt kgs]^IBW_.=.},
IF{[f pt oe wt kgs]>ADBW ([f pt
oe wt kgs]-IBW)^OW},
IF{OW'<0 (OW*0.4)^OWC_.=.},
IF{OW'<0 (OWC+IBW)^IBW_.=.},
(140-AGE*IBW:6D/(72*SRCR)*F):0D}^CRCL.ADJW;
CrCl Rule for cefazolin if have PHA
DTS6233 (Not using drug CDS)
CRCL2.CEFA Y
CEFAZOLIN CRCL
N RX N
MED
;This rule calculates the
Estimated CrCL based on an Adjusted body weight
;CEFAZOLIN specific
; A>=55, B= 35-54, C=11-34, D=
<10, W= ESTIMATED CR CL
;"Full dose"^A,
;"REC. DOSE: Full dose with
at least 8 hr intervals."^B,
;"REC. DOSE: 1/2 usual dose
with 12 hour intervals"^C,
;"REC. DOSE: 1/2 usual dose
q18 - 24h"^D,
IF{[f pt cur age]<18 1;
("Pat. Data: Age: "_[f
pt adm/ser age]_" Sex:"_[f pt
sex])^BLANK,
;------ checking if weight exist -
is so - displays ----------
IF{[f pt oe wt kgs]_.=. 1;
[f pt oe wt kgs]^KG,
(" Weight = ",(KG):0D,"kgs
("_((KG*2.2):0D),"lbs)")^KGLB,
BLANK_KGLB^BLANK},
;------------------------
[f rx
calc]("CRCL.ADJAR")^CRCL,
IF{CRCL#0="*" 1,
[f rx win init],
[f rx win add]("Est. CrCl can
not be calculated for the following reason(s)"),
[f rx win add](CRCL),
IF{CRCL#9'="C" 1,
[f rx nth ver
Res-RES]("CR",1)^RE1,
("FYI Last Cr info: "_(RE1#"0,")_"
@"_(RE1#"1,")_" "_(RE1#"2,"))^L1},
[f rx win add](L1),
[f rx win add](BLANK),
"General dose guidelines: 1 gram Q8H unless CrCL <35,
then give q12h"^L2,
[f rx win add](L2),
[f rx win disp],1;
;----- STARTING TO CALCULATE IF
CRCL IS AVAILABLE ------------------
IF{[f rx nth ver Res-RES]("CR",1)^RE1,
("Based on Cr:
"_(RE1#"0,")_" on "_(RE1#"1,")_" @
"_(RE1#"2,"))^M1,
IF{[f rx nth ver
Res-RES]("CR",2)^RE2_.=. " "^M2;
(" ":27_"Previous
Cr "_(RE2#"0,")_" on "_(RE2#"1,")_" @
"_(RE2#"2,"))^M2},
IF{[f rx nth ver Res-RES]("CR",3)^RE3_.=. "
"^M3;
("
":39_(RE3#"0,")_" on "_(RE3#"1,")_" @
"_(RE3#"2,"))^M3},
(("Est. CrCl =
",CRCL," ml/min
"):26T_M1)^EST},
IF{55<CRCL 1,
"Since CrCl>55 ml/min, No
need for dose adjustment"^DOSE;
(55.5>CRCL&(34.5<CRCL))
1,
"Since CrCL is between 35 -
55, Recommended dose is 1 g Q8H"^DOSE;
(34.5'<CRCL&(CRCL'<10.5)) 1,
"Since CrCl is between 10 -
34, Recommended dose is 1 g Q12H"^DOSE;
(10.4'<CRCL&(CRCL'<0))
1,
"Since CrCl is <10,
Recommended dose is 1 Q24H"^DOSE;},
[f rx win init],
[f rx win add](EST),
[f rx win add](M2),
[f rx win add](M3),
[f rx win add](BLANK),
[f rx win add](DOSE),
[f rx win disp],1}};
Note:
IF{CRCL#0="*" 1, - is the code which checks to see if any data was
found missing.
- All missing data started with a *
Note:
IF{CRCL#9'="C" 1, - is code which checks the calc rule to see if
person had a Cr.
If no Cr, it still gathers
CRCL Using Drug CDS

;Modified
from Herb's presentation at MUSE & Bruce Mathiase CrCl
;This
rule calculates the Estimated CrCL based on an Adjusted body weight
;and
pulls the appropriate text from the Drug CDS to display suggested dose
;Set as
global rule, only displays if all 5 crcl fields have data
;
IF{[q
PHACRCL50]_.=.!([q PHACRCL40]_.=.)!([q PHACRCL30]_.=.) 1;
IF{[q
PHACRCL20]_.=.!([q PHACRCL10]_.=.) 1;
IF{([f
z user mis office]="PHARMACY"!([f user]="HAB")) 1,
IF{[f
pt cur age]<18 1;
;F{'[q
PHACRCL50]&'[q PHACRCL40]&'[q PHACRCL30]&'[q PHACRCL20]&'[q
PHACRCL50] 1;
("Pat.
Data: Age: "_[f pt adm/ser age]_"
Sex:"_[f pt sex])^BLANK,
;------
checking if weight exist - is so - displays ----------
IF{[f
pt oe wt kgs]_.=. 1;
[f pt
oe wt kgs]^KG,
(" Weight = ",(KG):0D,"kgs
("_((KG*2.2):0D),"lbs)")^KGLB,
BLANK_KGLB^BLANK},
;------------------------
[f rx
calc]("CRCL.ADJAR")^CRCL,
IF{CRCL#0="*"
1,
[f rx
win init],
[f rx
win add]("Est. CrCl can not be calculated for the following
reason(s)"),
[f rx
win add](CRCL),
IF{CRCL#9'="C"
1,
[f rx
nth ver Res-RES]("CR",1)^RE1,
("FYI
Last Cr info:
"_(RE1#"0,")_" @"_(RE1#"1,")_"
"_(RE1#"2,"))^L1},
[f rx
win add](L1),
[f rx
win add](BLANK),
[f rx
win add](L2),
[f rx
win disp],1;
;-----
STARTING TO CALCULATE IF CRCL IS AVAILABLE ------------------
IF{[f
rx nth ver Res-RES]("CR",1)^RE1,
("Based
on Cr: "_(RE1#"0,")_" on "_(RE1#"1,")_"
@ "_(RE1#"2,"))^M1,
IF{[f
rx nth ver Res-RES]("CR",2)^RE2_.=. " "^M2;
("
":27_"Previous Cr "_(RE2#"0,")_" on
"_(RE2#"1,")_" @ "_(RE2#"2,"))^M2},
IF{[f
rx nth ver Res-RES]("CR",3)^RE3_.=. " "^M3;
("
":39_(RE3#"0,")_" on "_(RE3#"1,")_" @
"_(RE3#"2,"))^M3},
(("Est.
CrCl = ",CRCL," ml/min
"):26T_M1)^EST},
IF{49.999<CRCL
1,
"Since
CrCl>50 ml/min, No need for dose adjustment"^DOSE;
(50>CRCL&(39.999<CRCL))
1,
"Suggested
Dose: "_[q PHACRCL50]^DOSE;
(40>CRCL&(29.999<CRCL))
1,
"Suggested
Dose: "_[q PHACRCL40]^DOSE;
(30>CRCL&(19.999<CRCL))
1,
"Suggested
Dose: "_[q PHACRCL30]^DOSE;
(20>CRCL&(9.999<CRCL))
1,
"Suggested
Dose: "_[q PHACRCL20]^DOSE;
(10>CRCL&(CRCL'<0))
1,
"Suggested:
"_[q PHACRCL10]^DOSE;},
[f rx
win init],
[f rx
win add](DOSE),
[f rx
win add](EST),
[f rx
win add](M2),
[f rx
win add](M3),
[f rx
win add](BLANK),
[f rx
win disp],1}};1}}};
Sample
Messages
All
Data Present Only one Cr Level

All
Data Present With Historical values

Missing
Some Data
