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.
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.
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.