EXPERTRULE CURINE_S "URINE CULTURE REFLEX - SERVER" { LINK S_TESTSPECIFIC; TESTREQ { UAMIC = TESTREQ["UAMIC",SKIPCANCEL]; CURINE = TESTREQ["CURINE",PATIENT,TIME0060,SKIPCANCEL]; REFTEST = TESTREQ["CURINE",CALCULATED]; } PTRESULT { UAWBC = UAMIC.PTRESULT["UAWBC",CONTRIBUTOR]; UABAC = UAMIC.PTRESULT["UABAC"]; } CONST { SITE_CODE = TESTREQ.PREA_SITEKEY("CODE"); TIMELIMIT = 60; UAMICLEN = STRLEN(STRING(UAMIC.EXPECTED)); CURINELEN = STRLEN(STRING(CURINE.EXPECTED)); UAMICMIN = IF( UAMICLEN = 12 AND CURINELEN = 12, ELAPSED(CHRONO(200001010000), CURINE.EXPECTED,"M"), 0 ); CURINEMIN = IF( UAMICLEN = 12 AND CURINELEN = 12, ELAPSED(CHRONO(200001010000), UAMIC.EXPECTED,"M"), 0 ); } RULE ( UAMIC.FINDTEST AND CONTRIBCHANGED AND CONTRIBPRESENT AND NOT UAMIC.ANYTESTCOM("CURINE REFLEXED BY RULE CURINE_S") AND NOT UAMIC.ANYTESTCOM("CURINE REFLEXED BY RULE UACI_REFL_S") AND ( NOT CURINE.FINDTEST OR (CURINE.FINDTEST AND ABS(UAMICMIN - CURINEMIN) >= TIMELIMIT) ) AND ( ( MATCH(SITE_CODE,"LR") AND MATCH(TESTREQ.PTCODE,"LRER") AND ( MATCH(UAWBC.VALUE,"5-10","10-20","20-30","30-40","40-50","50-100","100-180","\\AB180","\\TNTC") ) AND UAMIC.ANYTESTCOM("MICROSCOPIC REFLEXED FROM UA") ) OR ( MATCH(SITE_CODE,"MR") AND MATCH(TESTREQ.PTCODE,"MRCOUR","MRSERI") AND ( MATCH(UAWBC.VALUE,"5-10","10-20","20-30","30-40","40-50","50-100","100-180","\\AB180","\\TNTC") ) AND UAMIC.ANYTESTCOM("MICROSCOPIC REFLEXED FROM UACI") ) OR ( MATCH(SITE_CODE,"CH") AND ( MATCH(UAWBC.VALUE,"5-10","10-20","20-30","30-40","40-50","50-100","100-180","\\AB180","\\TNTC") OR (NOT UABAC.MISSING AND UABAC.DATACHANGED("VALUE") AND MATCH(UABAC.VALUE, "2+", "3+", "4+")) ) AND UAMIC.ANYTESTCOM("MICROSCOPIC REFLEXED FROM UACI") ) ) ) { ENTORDER.ADDTEST("CURINE"); UAMIC.TESTCOMMENT("N","CURINE REFLEXED BY RULE CURINE_S"); REFTEST.TESTCOMMENT("N","TEST REFLEXED FROM ACCN: " & UAMIC.ACCESSION); } RULE ( UAMIC.FINDTEST AND CONTRIBCHANGED AND CONTRIBPRESENT AND NOT UAMIC.ANYTESTCOM("CURINE REFLEXED BY RULE CURINE_S") AND MATCH(SITE_CODE,"CH") AND UAMIC.ANYTESTCOM("MICROSCOPIC REFLEXED FROM UACI") AND NOT UAMIC.ANYTESTCOM("This Specimen Did Not Indicate A Urine Culture Based On Criteria Set By CMCH Medical Staff") AND ( NOT CURINE.FINDTEST OR (CURINE.FINDTEST AND ABS(UAMICMIN - CURINEMIN) >= TIMELIMIT) ) AND ( NOT MATCH(UAWBC.VALUE,"5-10","10-20","20-30","30-40","40-50","50-100","100-180","\\AB180","\\TNTC") AND (UABAC.MISSING OR (UABAC.DATACHANGED("VALUE") AND NOT MATCH(UABAC.VALUE, "2+", "3+", "4+"))) ) ) { UAMIC.TESTCOMMENT("Y","This Specimen Did Not Indicate A Urine Culture Based On Criteria Set By CMCH Medical Staff"); } // ***************** REFLEX RULES ****************** // DATE-USER-DESCRIPTION // 09/16/2011-LARRYC-FOR SITE LR AND MR, REFLEX A URINE CULTURE IF PATIENT IS OF TYPE LRER OR MRCOUR AND WBC IS > 5 // 10/24/2011-LARRYC-ADDED MRSERI PATIENT TYPE // 11/18/2011-LARRYC-CORRECTED LRMC ISSUE WHERE THE URINE CULTURE WAS NOT BEING REFLEXED. // 12/10/2011-DRICHMOND-ADDED SITE CH // 12/10/2011-DRICHMOND-ORGANIZED SITES INTO SUBGROUPS FOR CLARITY // 01/04/2012-DRICHMOND-ADDED COMMENT CHECK IF RULE DIRECTLY REFLEXED FROM UA CHEM RESULTS // 01/04/2012-DRICHMOND-REMOVED BAC AS A CONTRIBUTOR BECAUSE IT IS NOT A REQUIRED ANALYTE // 01/30/2012-NHIGSON-ADDED NOT CURINE.FINDTEST SO REFLEX WONT FIRE IF CULTURE ALREADY ORDERED // ************************************************* // ADDITIONAL REFLEX OF URINE CULTURE COMES FROM RULE UACI_REFL_S // ************************************************* }