Custom Properties (Metadata)
Custom Properties allow you to add metadata fields to objects in TrialGrid. Think of them as user-defined attributes that extend the built-in properties of each object type.
When you define a Custom Property for an object type in a URL, that property becomes available to all objects of that type in that URL. For example, adding a "Version" property to Fields means every field in your URL will have a Version attribute you can edit.
Supported Objects
Custom Properties can be associated with:
Property Types
Type |
Description |
|---|---|
Text |
Free text up to 8,000 characters. Optionally constrained by a maximum length and/or a validation pattern (see Text Validation below). |
HTML |
Rich text with HTML formatting support. HTML content is sanitized for security — script tags and potentially dangerous HTML are automatically removed. |
Choice |
A set of predefined options from which users select a value |
Reference |
A reference to a custom object type. Creates a dynamic pick-list from custom objects of the referenced type in the same Draft. |
Important
Reference properties are only valid for Drafts and objects within Drafts. Projects cannot have reference properties. Note also that referenced properties cannot be self-referential so a custom object of type "Approval State" cannot have a reference property that relates to objects of type Approval State.
Property Attributes
Each Custom Property has several configurable attributes:
Attribute |
Description |
|---|---|
Display Order |
Controls the sequence in which properties appear. Properties with the same order value appear in undefined order. Negative values are allowed. |
Active |
Determines if the property is available for use. Unchecking this retires the property while preserving existing data. |
Show in Lists |
Makes the property visible in object listings alongside standard attributes like Name and OID. |
Reserved for Actions |
Prevents manual editing. Only Actions can modify these values. Read-only properties display with a icon. |
Include in Compliance Calculations |
Controls whether property values affect compliance checks when comparing objects for standards deviations. |
Text Validation
Text-type properties support two optional validation constraints that are enforced wherever property values are entered — the form editor, property sheets, and action dialogs.
- Maximum Length
Limits the number of characters allowed. Values exceeding this limit are rejected with a message indicating the maximum length.
- Validation Pattern
A regular expression that values must match in full. For example,
[A-Z]{2}\d+requires two uppercase letters followed by one or more digits. A good introduction to regular expressions is available at https://regexone.com/ and you can test patterns at https://regex101.com/.
Both constraints are configured on the property definition form when the value type is set to Text. They appear automatically and are hidden for other value types.
When editing a property definition, TrialGrid checks existing values against new constraints. If any existing values would violate the new constraint, the change is rejected with an example of a conflicting value.
Tip
Keep validation patterns simple. Common examples include [A-Z0-9]+ for alphanumeric codes or \d{4}-\d{2}-\d{2}
for date-like strings. Patterns that could cause excessive backtracking (nested quantifiers like (a+)+) are
automatically rejected.
Managing Choice Values
Choice-type properties have a dedicated management page for their value list. To access it, edit the property and click Manage Value Choices.
- Adding values
Enter a new value and click Add. Duplicate values (case-insensitive) are not allowed.
- Renaming values
Click the rename button next to a value, enter the new name and confirm. TrialGrid updates the definition immediately and queues a background task to update all objects that use the old value. If the new name matches an existing value you are offered the option to merge instead.
- Merging values
When renaming would create a duplicate, TrialGrid offers to merge the source value into the target. Merging removes the source from the value list and updates all objects that used it to the target value.
- Deleting values
A value can only be deleted if it is not currently assigned to any object. TrialGrid checks usage in the background and reports an error if the value is in use.
- Reordering values
Use the up/down arrows to change the display order of values. The order is reflected in all dropdown selectors.
- Activating and deactivating values
Individual choice values can be deactivated without removing them. Deactivated values:
Do not appear in dropdown selectors for new selections
Still appear in dropdowns where an object already has that value, so existing data is preserved
Remain in the value list on the management page and can be reactivated at any time
Tip
Deactivating a value is useful when a choice should no longer be assigned to new objects but existing assignments must be preserved.
Inactive Properties
When a property is marked inactive, it becomes hidden in most contexts but remains functional where already in use:
- Hidden from:
New object creation screens
Property listings
Spreadsheet views (unless at least one row has a value)
Metadata tabs in editors (unless a value exists)
Comparison views (unless either object has a value)
- Still active in:
Compliance calculations and rules
Diagnostic processing
ALS imports and exports
Existing projects that already use the property
Tip
Use inactive properties to phase out metadata fields without breaking existing projects or losing historical data.
Compliance Calculations
The "Include in Compliance Calculations" setting is particularly useful for library objects that contain metadata not relevant to study drafts.
- Example scenario:
A library form might have properties like "Standards Reference" or "Usage Instructions" that shouldn't trigger compliance failures when absent from study drafts.
Import and Export
Custom Properties integrate with the Architect Loader Spreadsheet format:
- Export
Properties are exported to worksheets named
TG_<objectname>Properties(e.g.,TG_FieldProperties)- Import
Properties can be imported from these same worksheets, with one critical requirement:
Important
TrialGrid only imports properties that already exist in the destination URL. For example, if your spreadsheet contains a "DOMAIN" property for Fields, it will only import if "DOMAIN" is already defined as a Field property in the target URL. Undefined properties are skipped with a warning.
Note
Medidata Rave ignores Custom Property worksheets in Architect Loader Spreadsheets uploaded to Architect.
Common Use Cases
- Version Management
Add a "Version" text property to track iteration numbers across draft objects
- Documentation
Add an HTML-enabled "Instructions" text property to provide formatted guidance within objects