CrCl Rule – an alternative Method – MUSE Regional 2004

Herb Bromenshenkel RPh

North Country Health Services

hbromenshenkel@nchs.com

218-333-5527

WWW.BROMENSHENKEL.NET

 

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 can’t be calculated

3)    If CrCl can’t 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