Editing Notes Groups

To edit a group click on the Edit button to the right of the group you want to edit. The group's properties are displayed:

Rename the group by entering a new name.

If you want to hide the group of notes you can set the active field to No. The group and its associated items will not appear in the SilhouetteConnect and SilhouetteCentral Desktop note screens.

Click on Save to save your changes.

Conditional Validation Rules

When a user enters notes within SilhouetteConnect or SilhouetteCentral validation rules can be applied to ensure that note items within a group are answered in a consistent manor. For example you may have a question that asks if the patient smokes, and another asking the total number of cigarettes smoked per day. A custom validation rule could be used to ensure if the first question is answered "No" that an answer isn't recorded for the second question. Other uses of custom validation rules could include scenarios such as:

To add a conditional validation rule to a group of notes click the Add Validation Rule button a Conditional Validation Rule dialog will appear.

 

 

Display Item

A drop-down list of note items within the current group will be displayed.

Select the note item a validation error should be displayed against if the conditional validation rule indicates the user made an error in their data entry.

Error Message

Specify the error message that should be displayed to the user when the validation rule indicates the user made an error in their data entry.

Expression

Specify an expression that should always evaluate to true assuming the user has entered their notes data correctly. If this expression evaluates to false using the current notes entered by the user the associated error message will be displayed to the user and the user will be stopped from saving their updated notes until the error is corrected.

 

The expression specified can only make use of note items within the current group that have been assigned a variable name (Adding Items to Notes Groups).

 

Once one or more conditional validation rules have been defined the order in which they are evaluated can be controlled by clicking and dragging the order of the rules around within the dialog. The conditional validation rule at the top of the dialog will be evaluated first, and evaluation will stop as soon as a rule evaluates to false. In other words as soon as one rule indicates the user has made an error, no additional validation rules will be checked until the user has corrected the current notes data entry error and attempted to save their changes again.

If a conditional validation rule is no longer needed the Remove button can be pressed to delete it.

Conditional Validation Rule Expression Syntax

The expressions that can be specified within a conditional validation rule can refer to any notes item that has been assigned a variable name. If a variable name refers to a notes item that the user has not recorded a value in, a default value (0 for numbers, an empty string for text items) will be used for calculation purposes.

As well as referring to variables conditional validation rule expressions can contain constant values. Numbers must be written in decimal, or scientific notation and text must be enclosed in single quotes, e.g.

braden_score > 5

temperature <= 32.75

mass_of_planet_earth_in_kg == 5.98e24

approval_status == 'undecided'

as demonstrated in the previous sample expressions it is possible to compare two or more values in an expression. The following logical operators are available.

Operator Description Example Expression
<= Less than or equal to height <= 150
< Less than height > 145
>= Greater than or equal to weight >= 275
> Greater than temperature > 35
== Equal to smoking_history == 'never smoked'
!= Not equal to admission_status != 'admitted'
! Negation !edema_present
&& And impaired_sensation_left && impaired_sensation_right
|| Or palliative_care || edema_present

Simple calculations can also be performed using the following mathematical operators

Operator Description Example Expression
+ Addition left_area + right_area > 25
- Subtraction Initial - final > 14
* Multiplication length * width == 45
/ Division volume / depth == area
% Modulo x % 5 == 1

There are also a number of functions available for use that can perform specialist operations:

Function Description Example Expressions
Contains(x, y)

Returns true if 'x' contains the string 'y'.

 

NOTE: This function requires both arguments to be strings and can be useful when comparing the user's selection within a multilist notes item.

Contains('pointer', 'int')
HasValue(x)

Returns true if variable 'x' contains a value. In other words it will return true if the user has recorded a value in the notes items within Silhouette.

 

NOTE: The single argument to HasValue must be a name of a variable.

HasValue(admission_status)
HasNoValue(x) Returns true if variable 'x' does not contain a value. This is a convenience instead of having to write !HasValue(x) HasNoValue(admission_status)
ListContains(x, y)

Returns true if the multi-select list variable 'x' contains item 'y'.

 

NOTE: The first argument to ListContains must be the name of a variable.

ListContains(contributing_factors, 'Shearing')
ListLength(x)

Returns the number of items selected in a multi-select list variable 'x'.

 

NOTE: The single argument to ListLengthH must be the name of a variable.

ListLength(contributing_factors)
IsNull(x, y)

Returns the value of variable 'x' if the user has recorded a value in the notes field within Silhouette, otherwise returns the value 'y'.

 

NOTE: The first argument to IsNull must be the name of a variable.

IsNull(contributing_factors, 'Unspecified')
Abs(x) Returns the absolute value of a number Abs(-1) == Abs(1)
Acos Returns the angle whose cosine is the number Acos(1)
Asin Returns the angle whose sine is the number Asin(1)
Atan Returns the angle whose tangent is the number Atan(0)
Ceiling Returns the smallest integer greater than or equal to the number Ceiling(1.5) == 2
Cos Returns the cosine of the angle Cos(0)
Exp Returns e raised to the power Exp(1)
Floor Returns the largest integer less than or equal to the number Floor(1.5)
Log10 Returns the base 10 logarithm of a number Log10(1)
Log Returns the logarithm of a number in a specified base Log(1, 10) == Log10(1)
Max Returns the larger of two numbers Max(2, 5) == 5
Min Returns the smaller of two numbers Min(2, 5) == 2
Pow Returns a number raised to the specified power Pow(3, 2) == 9
Round Rounds a value to the nearest integer or specified number of decimal places Round(3.222, 2) == 3.22
Sign Returns a value indicating the sign of a number Sign(-10) == -1
Sin Returns the sine of the angle Sin(0)
Sqrt Returns the square root of a number Sqrt(4)
Tan Returns the tangent of the angle Tan(0)
Truncate Returns the integral part of a number Truncate(1.7) == 1
In Returns whether an element specified by the first parameter, is in a set of values In(x, 1, 2, 5)
If Returns a value based upon a condition If(x > 5, 'true', 'false')
ParseInt Converts a string argument into an integer value. Causes an error f the argument is not correctly formatted. ParseInt('5') + 3 == 8
ParseDecimal Converts a string argument into a decimal value. Causes an error if the argument is not correctly formatted. ParseDecimal('5.25') + 3 == 8.25

Expressions are evaluated with standard precedence of operators. You can place sub-expressions in brackets, or parenthesis to alter the precedence if required.

Note: All references to variables and function names are case insensitive, e.g. "admission_status", "ADMISSION_STATUS" and "AdMiSiOn_StAtUs" all refer to the same variable.