460 likes | 469 Views
Learn about RBS interfaces, rule types, and the various actions that can be triggered by RBS rules. Discover how to convert normal RBS screens to textual format and enter calculations in an RBS rule.
E N D
RBS – Second Rule to the Right and Straight on ‘Til Morning James R. Pomicter, BS,MLS(ASCP) jamespo@softcomputer.com
Objectives • RBS interfaces • RBS Rule Types • RBS rules can: cause messages to appear, call requests to be made, tests to be reflexed, reports to print, control instrument posting via RBS, etc. • How to convert normal RBS screen (Grid form) to textual format • Enter calculations in an RBS rule
RBS Rules – Types D- test ordering restriction W- test ordering warning R- reflex test ordering G- draw charge C- test call request M- send message/warning I- print instant report • A- OE add-on • U- OE update • V- Pathologist Review • S- Stop auto-posting • H- Stop auto-verification • B- Positive for Epi Report • P- post result
Flags – Type of Search With a time frame of 1, date of 03/18 at 1300, then:
Flags – Cancel reflex when trigger is canceled Only available for Reflex Rule Type - SoftLab 4.5
Pre-Active status, the system does not actually trigger the rule on any orders/results, but a log is kept that allows the user to see all the times this rule was evaluated and the response of the system to each of the criteria listed in the rule. 4.5.x Only
Start Date RBS rule’s activation date/time. It onlytells RBS when rule becomes active, and has no relation to ordering time. This DOES NOT limit the Rule from firing on historical results before the rule became Active ***You can control when the rule is applied based on order level to be collected date, ordered date, or even stay admission date or specific test’s collection date. GETDBF("ASRCDATE")>20180501 GETDBF("ACCDATE")>20180126
Inactivating RBS Rules Containing • Canned Message Calculations For the proper ‘shutdown’ of a RBS rule that contains a Canned Message calculation listed in Textual format: If the Canned Massage is Expired, the RBSrule will not do anything but will keep producing syntax errors by RBS since RBS will still try to evaluate it as an Active rule.. • It is recommended to: • Inactivate the RBS rule and leave the Canned Message as is (No Expiration Date needed in Canned Message setup). • Or • Expire the RBS rule with End Date
Inactivating RBS Rules Containing • Canned Message Calculations Canned Message remains Active in system Expire Option = Select End Date Expire Option = Select Not Active
Tests – Test ID Fields [4] • Used differently depending on the Rule Type selection. These fields may indicate the tests that will be affected, canceled, ordered, called, etc. • test ordering restriction - Enter up to four test ID’s that will NOT be able to be ordered if the criteria of the rule are met. Enter “@ALL@” to prevent any tests from being ordered if criteria are met. • test ordering warning - When the tests listed in these fields are ordered, a warning message will appear in OE if the criteria of the rule are met. Enter “@ALL@” to display the warning if any test is ordered and the criteria are met. • reflex test ordering - Enter up to four test ID’s that will be added to current order when rule criteria is met. • test call request - There are three possible entries for the fields with Call rules. Enter “@ALL@” to cause the entire order to be marked. If a test ID is entered in this field, only the entered test will be marked in the call list. Leaving the field empty will cause all tests included in the logic section (bottom of window) to be marked on the call list when the criteria are met. • send message/warning - Not used. Do not enter any test ID’s in these fields. • print instant report - Not used. Do not enter any test ID’s in these fields. • OE add-on - Enter up to 4 tests to be added to the current order upon saving. • OE update - The test in the first field will be canceled. The tests in fields 2-4 will be added to the order upon saving. • Pathologist Review - Enter up to four tests that will be marked for pathologist review based on the included criteria. Tests are sent for pathologist review when the criteria are met. • Post Result - Only the first test field is used. The rule will cause a result to be entered or appended for the test entered in the first field. • Stop autoposting - Enter up to four test ID’s that should NOT autopost based on criteria setup. • Stop autoverification - Enter up to four test ID’s that should NOT autoverify based on criteria setup. • Draw Charge - Enter the Test ID of the billing test that will be added to the order 4.5.x Only • Positive for epi report - Enter the test(s) to be qualified to the epi report if different than the tests listed in the logic area. 4.5.x Only
>T – send to terminal causing the rule to take place >D – send to the Autoprinter designated in the Doctor setup file >C – send to the Autoprinter designated in the Ward/Clinic setup file Printer Field
Age Range • Enter an age range in the format X## - X## where X is: • D = Day (0-14) • W = Week (0-4) • M = Month (0-36) • No Prefix = Year (default) Can then format as ###-###
Collection Type Only available for SoftLab 4.5
Maximum of60 characters Additional Criteria !D Requesting physician (if no requesting physician, attending physician is used.) !C Clinic !I Insurance carrier !P Patient type !G Clinic group !GC Groups of Clinics (4.5 versions only) !IG Insurance group !F Report format !L Report layout !O Group of doctors !LB PRN PRN is printer code for label printing (reflex test ordering) !LBL XXXXXXX Label layout ID for label printing (reflex test ordering) !R Region (Can use single Region character and/or Region-Depot combination) Entering codes within parenthesis indicates negative logic. In other words, a rule can work for every entry “except” what is within the parentheses. EXAMPLE: !D (1324,VAFA); !C PCCU; !I MCR; !P IO; !G ABC
Logic Section – Grid Form Comp column has 4 additional choices COL, REC, TRU, and NOT Only available SoftLab4.5 COL = Collected RCV = Received TRU = RBS rule ID in ‘Test/Rule’ column is ‘True’ NOT = RBS rule ID in ‘Test/Rule’ column is Not ‘True’
TRU This operator evaluates the rule associated with the RBS rule ID included in the Test/Rule column. The system evaluates the Logic section (bottom section) of the rule to determine if those criteria have already been met. If they have, the logic is True. The TRUE operator does not look specifically to see if another rule has fired, but only at whether the criteria included have been met. NOT This operator evaluates the rule associated with the RBS rule ID included in the Test/Rule column. The system evaluates the Logic section (bottom section) of the rule to determine if those criteria have not already been met. If they have not, the logic is True. The NOT operator does not look specifically to see if another rule has not been fired, but only
Logic Section – Grid Form Comp column TRU Select TRU from the ‘Comp’ column Select the Rule ID from the dropdown in the Test/Rule column
RBS Only Operators/Calculations RESETNTEST( ) Sets sequential access to a Testin the current order. Resets the pointer NTHTEST. @NTHTEST does not point to any test GETNTEST() Sets the @NTHTEST to the next test in the current order. First call after RESETNTEST() sets @NTHTEST to the first test in the order. • Example: Entering the following formula in a Reflex rule. This formula returns TRUE if any test in the current order is flagged as absurd or panic. $A:=0.0; RESETNTEST(); WHILE(!$A && GETNTEST()) DO( IF ( @NTHTEST->"AFLAGS2" & FLG("XP")) THEN $A:=1.0 ELSE 0.0 ); $A
RBS Only Operators/Calculations RESETNSPEC( ) Sequential access to Specimensin current order. Resets the pointer NTHTEST. @NTHTEST does not point to any test. GETNSPEC( ) Sets the @NTHTEST to the first test on the next specimen in the current order. First call after RESETNTEST() sets @NTHTEST to the first test on the first specimen in the order. Formula returns TRUE if "LAV" specimen was collected for current order. • Example: $A:=0.0; RESETNTEST(); WHILE(!$A && GETNTEST()) DO( IF ( @NTHTEST->"ASPECIM" = "LAV" && (@NTHTEST->"ASFLAGS"&4))THEN $A:=1.0 ELSE 0.0 ); $A • Example: Add some test (BUN) for any order that has a test ordered that has atwrkid that is defined in the calculation. In this case, "QUEST" workstation. This type of example could be used for something like an extra handling fee for sendouts. $A:=0.0; RESETNTEST(); WHILE(!$A && GETNTEST()) DO( IF ( @NTHTEST->"ATWRKID" == "QUEST" ) THEN $A:=1.0 ELSE 0.0 );$A
Time Frames • Calculations can only look back in time if written in a Post Result RBS rule. • @TEST[2] Example: @CREAT[2] >3 Search back 2 days for numeric result of CREAT>3 (includes current order) • @TEST[-2] Example: @CREAT[-2] >3 Search back 2 hours for numeric result of CREAT>3 (includes current order) • @TEST{1}[2] Example: @CREAT{1}[2] >3 Search back 2 days for numeric result of CREAT>3 but skip current order
Time FramesExamples STRSTR($@PTI,"@")>0?$@PTI:($@ACOAG[3] == "COUMADIN"? $@PTI+" @COUM":($@ACOAG[0] == "HEPARIN"? $@PTI+"@HEPA":$@PTI)) MATCH("*@*",$@PTI)?$@PTI:($@ACOAG[3] == "COUMADIN"? $@PTI+" @COUM": ($@ACOAG[0] == "HEPARIN"? $@PTI+"@HEPA":$@PTI)) The MATCH or the STRSTR function at the beginning of the calculation and will stop any looping by looking for a canned message character, specifically the “@” in any position of the result field and returning a ‘true’ value.
Time FramesMATCH for Subsequent Order Updates (MATCH("POS*",($@TREP{1}[365])))||(MATCH("POS*",($@TREP{2}[365])))||(MATCH("POS*",($@TREP{3}[365])))||(MATCH("POS*",($@TREP{4}[365])))||(MATCH("POS*",($@TREP{5}[365])))||(MATCH("POS*",($@TREP{6}[365])))||(MATCH("POS*",($@TREP{7}[365])))||(MATCH("POS*",($@TREP{8}[365])))||(MATCH("POS*",($@TREP{9}[365])))||(MATCH("POS*",($@TREP{10}[365])))||(MATCH("POS*",($@TREP{11}[365])))||(MATCH("POS*",($@TREP{12}[365]))) Needed to check all 12 (monthly) results for a POS* match result for test ID = TREP Using @TREP[365] would find the ‘most recent’ result as far back as 365 days. It does NOT account for any POS* result within the 365 days
Delta Check on Any Test on the Order This formula checks if any test in the order is flagged with %D. However, it is not possible to check if the current test result is greater than the previous one, i.e. the rule will be triggered for both flags +%D and -%D Create a RBS rule (type = message/warning) to apply to all tests in the client system that flag as a %D (or any other AFLAGS) . $A:=0.0;RESETNTEST();WHILE(!$A && GETNTEST())DO( IF ( (@@NTHTEST & 16)==16)THEN $A:=1.0 ELSE 0.0 ); $A.
Draw Charge Rule for ER Collected Phlebotomy Containers: RBS reflex to trigger charges for VENIP when specimens come from a specific Ward/Clinic (in this case the RBS rule is built for ER Ward/Clinic.) $A:=0.0; RESETNTEST(); WHILE (!$A && GETNTEST()) DO (IF ( @NTHTEST-> "ASPECIM" == "BLU" || @NTHTEST-> "ASPECIM" == "BRL" || @NTHTEST-> "ASPECIM" == "CLO" || @NTHTEST-> "ASPECIM" == "ESR" || @NTHTEST-> "ASPECIM" == "GGG" || @NTHTEST-> "ASPECIM" == "GRN" || @NTHTEST-> "ASPECIM" == "LAV" || @NTHTEST-> "ASPECIM" == "PST" || @NTHTEST-> "ASPECIM" == "XBC" || @NTHTEST-> "ASPECIM" == "XBC" ) THEN $A:=1.0 ELSE 0.0); $A && !#@VENIP[1]
NO Draw Charge Rule for Nurse Collected Phlebotomy Containers: • VENP rule active (as is with no changes) except added additional criteria line : • !C (ICN,NSY,PNY) 2. Created new RBS rule ID = VENIP with the same added additional criteria line : !C ICN,NSY,PNY 3. Added calculation to rule = VENIP to have the system check each specimen on the order for the presence of specific containers (container code) for GRN,LAV,BLU, etc. if the order was a NURSE Draw type. $A:=0.0; $B:=0.0; RESETNTEST(); WHILE(!$A && GETNTEST()) DO ( IF (STRSTR("BLU,BLUE,BT0,G5R,GC3,GEN,GIC,GRN,GRN1,GWB,L1C,LAV,LBB,LCT,LDT,LFL", @NTHTEST->"ASPECIM") > 0 ||STRSTR("LHG,LIM,LMO,LPC,LV0,MDXC,MR9,SDR,SER,SST,STX,PFA,PL9,PNK,PR9,PST", @NTHTEST->"ASPECIM") > 0 ||STRSTR("R2C,R3C,RBB,RCF,RED,RGR,RHV,RLB,RMD,RNA,RPR,RRL,RTD,T0C,T1C,T2C,T3C", @NTHTEST->"ASPECIM") > 0 ||STRSTR("T4C,T5C,T6C,T7C,T8C,TTT,VE9,WNL,X1C,XBC,XFU,XIA,XMY,XNB,XPD,YEL,Z1R", @NTHTEST->"ASPECIM") > 0 ||STRSTR("Z2R,Z3L,Z5E,Z6F,Z7A,Z8A,Z9L,ZB9,ZD9,ZE9,ZG9,ZL9,ZR9,ZS9,ZV9,ZY9,AL9", @NTHTEST->"ASPECIM") > 0 ||STRSTR("XZW",@NTHTEST->"ASPECIM") > 0 ||STRSTR("AR9,B00,BAL,CR9,DBN,DE9,DG0,DKB,ESR,EVR,FDP,GYT,HEM,HGR,HIV,IM0", @NTHTEST->"ASPECIM") > 0)THEN $A:=1.0 ELSE 0.0 ); RESETNTEST(); WHILE(!$B && GETNTEST()) DO ( IF (@NTHTEST->"ATESTID" == "NUR") THEN $B:=1.0 ELSE 0.0 ); $A && !$B
Please remember to take a few moments to fill out the session survey. You can find the QR code in your Conference Brochure as well as hyperlinks to the survey online at www.snuginconline.org with the SNUG 2019 handouts.