jamesposoftcomputercom This presentation will address the following What Can Calculations Do Where To Write Calculations How To Write Basic Calculations What Can Calculations Do Automatically result a test using results from other tests ID: 779373
Download The PPT/PDF document "Calculations - Basic James R. Pomicter, ..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Calculations - Basic
James R. Pomicter, BS, MLS(ASCP)
jamespo@softcomputer.com
Slide2This presentation will address the following:What Can Calculations Do
Where To Write Calculations
How To Write Basic Calculations
Slide3What Can Calculations DoAutomatically result a test using results from other tests BUN/CREAT ratio Calculate corrected WBC based on NRBC’s
Cancel a test
"."
Attach interpretive comment to a result
" @MESG"
Slide4Where To Write CalculationsIndividual test240 characters
RBS
255 characters
Multiple time frames
Can be used conditionally
Canned messages
>240 characters
ID entered in individual test or RBS as <<CMSG>>
Slide5How To Write Basic Calculations Use Only Individual Tests when evaluating result level
All
tests included in calculation must be in the same order number
[Except RBS rules]
Best Practice
: Do
NOT
use special characters in Test ID
Slide6CalculationsBasic Math – Algebra Level
Slide7Syntax - Operators
Slide8Straight quote marks Only - typically used to specify alphanumeric characters in a result field."POSITIVE"" @CANN"Should use straight "quotes"
Not
“
quotes
”
or
“
quotes”Be careful when Copying and Pasting from Word or e-mails because these will use a different style of quotation marks, e.g.,-
“quotes”. Write the Calculations inside the application or use Notepad if you want to Copy/Paste
@
= Numeric result
Example: @
GLU reads as “Numeric result of test GLU”
BUN/CREAT Ratio
@
BUN/@CREATUse Parenthesis when needed @LYMPT - (@WBCX/100)
Follow the Syntax
Slide9True/False? =
:
=
If this is true
Otherwise do this
If this happens
?
Then do this
:
Otherwise do this
Condition
?
Command if true
:
Command if false
@
DIG
<
0.2? "NONE DETECTED":@DIG@DIG<0.2? "<0.2":@DIG
If the numeric value of DIG test is less than 0.2, and that is True, result NONE DETECTED. Otherwise result the numeric value of DIG.
Calculations - Common
Slide10Numeric Test With An Alphanumeric Result
@
DIG
<
0.2
?
"<0.2
"
:@
DIG
What if DIG results >5 also need to be converted to report as
"
>5
"
?
Slide11We Need More Syntax
Syntax
We need to string together “If This is True/Otherwise Do This” expressions
Keep in mind: For every true statement we
MUST
have and Otherwise statement
?
=
:
=
If this is true
Otherwise do this
$@
DIG
= the
Alphanumeric
result of DIG
at the end of the calculation ensures that any alphanumeric result in the result field will be maintained e.g.
2.2 @CONF@DIG<0.2 ?"<0.2" :(@
DIG>5.0?
"
>5
"
:
$@
DIG)
Slide12String Multiple True/False Conditions@SWEAT=40
?
1
@
SWEAT
+"
@SWTN
":
1
(@SWEAT=60?
2@SWEAT+" @SWTP
":2(@SWEAT
=
80
?
3
@
SWEAT
+"
@SWTQ":3@SWEAT+" @SWTB")) TIPCount all of your Open Parentheses and make sure you have the EXACT same number of Closing Parenthesis @FHGBR>=0.0000&&@FHGBR<=0.0045?"1":(@FHGBR>=0.0046&&@FHGBR<0.0091?"3":(@FHGBR>=0.0091&&@FHGBR<0.0136?"4":(@FHGBR>=0.0136&&@FHGBR<0.0181?"5":(@FHGBR>=0.0181&&@FHGBR<0.0226?"6":(@FHGBR>=0.0226&&@FHGBR<0.0271?"7":(
@FHGBR>=0.0271&&@FHGBR<0.0315
?
"8"
:
"Not Indicated"
))))))
Slide13&& = AND = expressions/ conditions on Both sides of the && symbols must
be met for the expression to be True
@
HGB
<
5
&& @
HCT
<
20
?
"BAD"
:
"GOOD“
Only if the result of the HGB is less than 5
AND
the result of the HCT is less than 20 will the word BAD be placed in the result field of this test. Otherwise, if either of these are not true, will the word GOOD be placed in the result field.
Need
More than 1 Condition to be True
Slide14$@UCOLR=="Brown" || $@UCOLR=="Red" ||
$@UBLD == "Trace-intact" ||
$@UBLD == "Trace-Intact" ||
$@UBLD == "TRACE-INTACT" ||
$@UBLD == "Trace-lysed" ||
$@UBLD == "Trace-Lysed" ||
$@UBLD == "Trace-LYSED" ||
$@UBLD == "1+" ||
$@UBLD == "2+" ||
$@UBLD == "3+" ||
$@ULEU == "Trace" ||
$@ULEU == "1+" ||
$@ULEU == "2+" ||
$@ULEU == "3+" ||
$@UNIT == "
Positive" ? "See Microscopic"
:
"Not Indicated"
||
= expression/ condition on
Either
side of the
||
symbols must be met for the expression to be True
Need
Only
1
Condition to be
True
Slide15ANY()
or
#
=
Looking to see if test has been resulted
ANY(
@AUER
)
?@BLAST +" @LEUK":@BLAST
Same as
#
@AUER?@BLAST + " @LEUK" :@BLAST
Is the
Test ID
Resulted
On The
Order
?
Creatinine
Clearance
with no correction for BSA and assuming a 24 hour
collection
#@CREAO?((@UCRE1*@UVOL)/(@CREAO*1440)):((@UCRE1*@UVOL)/(@CREAN*1440))
Slide16Serial Tests – Lactic Acid
S
etup
a Series test to include as many Lactic Acid draws as needed and set them to be drawn X hours apart.
My
example is set to have a subsequent LA drawn 3 hours after the first.
You
must build a unique Test ID for each Lactic Acid you want to order/draw e.g. LA, LA3
LA = Already built Lactic Acid test ID
LA3 = new test created for 3 hour Lactic Acid.
[
MUST be assigned a different Tube type built/assigned to this test from the original LA]
Calculation on new LA3 test should be @LA
<=2.0?".":@
LA3
Slide17Serial Tests – Lactic Acid
Combine those individual test ID’s into a Group test. (SERIES TEST must be checked)
Slide18[Used on OVERD Test ID]( (@ACETM > 50) && (@H > 500) ) || ( (@ACETM > 30 && @ACETM < 50) && (@H > 250) ) || ( (@ACETM > 15 && @ACETM < 30) && (@H > 40))
Calculated
Osmolality
9+(1.86*@NA)+(@GLU/18
)+(@
BUN/2.8)
[Used on ICTO Test ID
]
$@
UBIL != "Negative"?"Result Required":$@
ICTO
[Used on UBIL Test ID
]
$@
ICTO=="Negative"?"Negative"+" @CNF":(@ICTO=="Result Required"?"Result Required":@UBIL
)
Examples
Slide19In a post-live environment, it becomes important to protect historical data. Care must be taken when modifying calculations so that old results are not affected. There are three options to preserving historical information:
Calculation
Addition
and/or
Modification
Option #11. Create a new test and inactivate the old test.
Calculation
Addition
and/or
Modification
With a command, tell the system to only perform the calculation before or after a specified date. The GETDBF function works well in this situation. Example:
Because of a new methodology, all Vitamin D (VITD) instrument results must be multiplied by .04
The new methodology will take place on December 1, 2010
It was been decided to retain the original test ID, so a calculation will be entered in VITD to only perform the calculation after the specific date.
GETDBF("ACCDATE")<20180101?$@VITD:@VITD*0.04
TIP –
Build your Calculation as a Canned Message…you’ll be glad you did if you ever need to change it
. Place the following in the Calculation field of the Individual Test.
<<
CANMG
>>
This calculation looks at the order collection date (ACCDATE) and if it’s before 01/01/2018, the result will stay the same. If it’s after that date, the result will be multiplied by .04
In the calculation the date format must follow YYYYMMDD
Calculation -
Addition
Option # 2
Slide22Option #3
Use the expiration date functionality in the Canned
M
essage setup file.
Once the calculation is entered into a Canned
M
essage then the Canned
M
essage ID is entered in the Individual Test calculation field.
MESEXPDATE("CMID",GETDBF("ACCDATE"));<<CMID>>
When the Canned
M
essage ID is entered into the calculation field, it must be in a specific syntax so that the individual test evaluates the expiration date field of the Canned
M
essage.
Calculation -
Modification
Preserve Historical DataMESEXPDATE(<expr1>,<expr2>) Checks the expiration date for the canned messages used in the calculation where <expr1>returns the code of the message <expr2> returns the date according which program will search for the message.
Example:
MESEXPDATE("MES",GETDBF(ACCDATE"));<<MES>>
This calculation is using function MESEXPDATE, which is looking at the canned message expiration date for message “MES” and comparing it to the order collection date (ACCDATE).
Slide24Easy Steps To FollowCreate a Canned Message (Type=Other) with the OLD calculation. Expire this Canned Message.
Create a NEW Canned Message calculation, using the OLD canned message ID (The Canned Message ID’s will be the Same)
Enter the new calculation. This Canned Message will NOT be expired as the old one was. Save the message.
Place the new canned message ID in the calculation box of the Individual test following the format below.
MESEXPDATE("MES",GETDBF(ACCDATE"));<<MES>>
Slide25Create a Canned Message (Type=Other) with the OLD calculation.
Expire this Canned Message
Slide26Create a NEW Canned Message calculation, using the OLD canned message ID (The
Canned Message ID’s will be the Same)
Enter the new calculation. This Canned Message will NOT be expired as the old one was.
Save the message
Slide27Don’t Forget About The Translation Table
Slide28Test Maintenance
Slide29Don’t Forget About The Values Tab
Slide30Questions ????