Version : 87
Released : 2026-05-31
Changes in this Release
Issue |
Type |
Module(s) |
Description |
|---|---|---|---|
4730 |
Feature |
Users can now discover, generate, and download document templates for drafts and projects via REST API. |
|
4738 |
Feature |
Users with the new "Can Use API Tokens" permission can now create, view, and
revoke their own API tokens from the user profile. Token values are shown only
once at creation; existing tokens continue to work and are migrated
automatically. Note that |
|
4685 |
Feature |
Action preconditions can now reference draft properties using d("draft_property_name"), alongside the existing p() for project properties. |
|
4686 |
Feature |
Action preconditions can now reference draft labels using draft_has_label("label_name"). |
|
4687 |
Feature |
Action preconditions can now reference project labels using project_has_label("label_name"). |
|
4733 |
System |
TrialGrid administrators can search and open uploaded draft files. |
|
4749 |
Feature |
The URL Team list now uses a spreadsheet-style grid. |
|
4751 |
Bug |
The Custom Diagnostic agent was creating a diagnostic when running tests; it should not have created a diagnostic at this point. This has been corrected. |
|
4752 |
System |
An Orchestration Framework has been introduced to help TrialGrid Ltd design and develop Agents. |
|
4756 |
Feature |
The Field Visibility Advisor (Medidata) and Progressive Display Advisor (Veeva) agents have been updated for a more responsive and consistent experience. Any in-progress conversations with these agents will be cleared when this release is deployed; just start a fresh chat to continue. |
|
4757 |
Feature |
The Custom Function Review agent has been migrated to the new orchestrator framework. |
|
4760 |
Feature |
The Test Case Creator agents have been migrated to the new orchestrator framework. |
|
4763 |
Feature |
The Custom Function creator agent has been migrated to the new orchestrator framework. |
|
4781 |
Feature |
The Test Case search agent has been migrated to the new orchestrator framework. |
|
4651 |
Bug |
Test Case generation for date window edit checks now includes equality and ±1 unit boundary scenarios for each AddDay/AddSec/AddMin/AddHour/AddMonth/AddYear comparison when Additional scenarios is enabled. |
|
4669 |
Feature |
There is a new Veeva Test Case step to set visit method, change reason, planned date override and externally owned for Events. Note that existing Veeva drafts will not include the visit method and the SDS must be imported again to pick up the visit method. |
|
4670 |
Feature |
Veeva 'set event to did not occur' steps can now include a reason. |
|
4681 |
Bug |
The Test Case Advisor should choose the same form, if possible, when processing derived fields. |
|
4682 |
Bug |
There should not be warnings in the Test Case editor if a related Edit Check has derived fields which are not directly included in the Test Case. |
|
4501 |
Feature |
The Veeva Test Case editor now shows warnings for invalid date, datetime and time values in data entry steps. |
|
4735 |
Bug |
Fixed an issue where the Veeva Test Case Advisor could place generated queries on the wrong event when an edit check's Action Target field was not on the form bound to the rule's first event. |
|
4736 |
Feature |
The Veeva Test Case Advisor now generates 'I update event' and 'I set event ... to did not occur' steps for rules that reference event change reasons or the did-not-occur attribute. |
|
4767 |
System |
Specification Review agent migrated to the V2 orchestrator framework — same user-facing workflow, with the folder ambiguity prompt now combining "Any folder (wildcard)" and per-folder options into a single click. |
|
4768 |
Bug |
Test case runs no longer restart from the beginning when the cached Rave EDC URL lands on a page that does not expose the roles list. The cache entry is invalidated and the run recovers by navigating via the launcher. |
|
4769 |
Bug |
The Test Set Run wizard now correctly verifies user access for every required site instead of stopping after the first site that succeeded. |
|
4770 |
Bug |
When the Test Set Run wizard cannot read the user's Rave EDC roles from iMedidata, a clear "Could not determine Rave EDC roles" message is now shown instead of a generic "Error checking study access". |
|
4771 |
Bug |
The Test Set Run wizard no longer strands users on a non-fillable credentials step when the URL uses TrialGrid service-account credentials. Transient service-account login failures are now retried and do not clear the last successful login record. |
|
4772 |
Bug |
Several small refinements to Test Set Run access checks - empty study-site payloads now report a clear message, the study-site-number hint is correctly spaced, service-account login retries pause briefly before the second attempt, and dead code paths in the wizard's iMedidata access lookup were removed. |
|
4774 |
Bug |
For multi-site Test Set Runs, the Rave EDC access records now store the correct study_site_number per site. Previously every record for a user shared the first matched site's value, which could cause runner navigation to land on the wrong site when site numbers and study site numbers differ. |
|
4775 |
Bug |
Service-account login retries are now applied consistently to all wizard workers and skip retry when the failure is a credential rejection, account state problem or wrong two-factor code, so users see real errors immediately and transient iMedidata flakes are absorbed without losing a run. |
|
4782 |
Bug |
Test Case runs now retry the form save when Rave EDC responds with a 504 gateway timeout, instead of failing the step on a transient Rave infrastructure error. The audit history is consulted before each retry so that data which Rave persisted before timing out the response is not re-entered. |
|
4783 |
Bug |
Veeva Test Case generator now produces date values on different dates (not just different times) when comparing a date/time form item against an event date, and uses date-only strings for event date steps. |
|
4784 |
Bug |
Veeva test case generator now computes each event's date from its Event Window (Offset Event + Offset Days) instead of using the base time for every event, so generated 'I add event' steps fall inside the event's accepted date range. |
|
4785 |
Bug |
Veeva test case generator now emits the negative scenario before the positive for rules whose action adds an Event Group, Event, or Form — so the negative assertion runs against a clean subject state instead of one that already contains the artefact added by the positive scenario. |
|
4786 |
Bug |
The Veeva Test Case generator now detects dynamic forms and add an 'I add form' step before the data-entry table (for repeating forms) or data entry steps to trigger the dynamic add form rule (for non-repeating forms). |
|
4787 |
Feature |
There is a new Test Case step 'I add form "X" to event "EG.EV"' which creates an empty form in an existing event, for use only with repeating forms. |
|
4788 |
Bug |
The Veeva test case generator now skips rules that reference linked forms and reports which linked forms are involved. The Veeva API has no endpoint to link forms, so a generated test case for such a rule could not be run, so we skip the rule entirely rather than producing an unrunnable feature file. |
|
4789 |
Feature |
The Veeva Test Case generator will switch to using a Background section, creating subjects per scenario, if necessary to test different events. |
|
4790 |
Feature |
Veeva Test Case runs will automatically submit an unsubmitted form before checking for a derived value. |
|
4791 |
Bug |
The Veeva Test Case generator was producing incorrect year values. This has been corrected. |
|
4792 |
Bug |
The Veeva Test Case generator was not respecting numeric formats when checking data values. This has been corrected. |
|
4793 |
Bug |
Veeva Test Case generation failed for rules binding a form with commas in its label. This has been corrected. |
|
4794 |
Bug |
The Veeva Test Case generator was not generating correct values for some rules with wildcards. This has been corrected. |
|
4795 |
Feature |
The Veeva Test Case generator will not now try to create test cases for lab forms. |
|
4798 |
Feature |
When several rules share the same query text and action target, the Veeva Test Case generator now produces a single combined scenario instead of one per rule. |
|
4801 |
Feature |
The Veeva Test Case generator now handles a wider range of rule shapes correctly - "Date of Visit" InWindow rules whose arguments are two event dates (including the bare and Not(InWindow(...)) forms), Max/Min wrappers around wildcard references such as Max($EG.EV[*].FORM.IG.ITEM), IsBlank arguments inside Add Event/Group predicates, attribute references shared across multiple events (for example $TX.D2.event_date__v and $TX.D15.event_date__v), 2-part event identifiers, and Action Targets written in either the "$EG" or "{EG}" form. |
|
4802 |
Feature |
The Veeva Test Case generator now sequences Login-block events and data entries in phases driven by the Add Event Group cascade, so gating data is entered before the events it enables; requires every gating value in an Add Event Group predicate to match before keeping per-event data (avoiding "Unique Event Group cannot be found" rejections); uses a single definition of "rule is Active" throughout; and keeps prereq block and datapoint lists paired when collecting isolated prerequisites. |
|
4803 |
Bug |
The Veeva Test Case generator was not processing dates and times consistently across timezones. |
|
4804 |
Feature |
The Veeva Test Case generator now generates test cases for rules that reference previous or next instances of repeating event groups, events, forms, and item groups via the [-1] / [+1] wildcard identifiers. |
|
4805 |
Feature |
The Veeva Test Case generator now surfaces a 'Subject ID must be set' issue in the 'Given I have resolved these issues' placeholder step when a rule writes data to the itemgroup containing the Subject-Identifier item, since the generator cannot pick a value that's unique against existing subjects. |
|
4806 |
Feature |
Has value step results now display both the User String and Coded Data when the field uses a data dictionary, matching what users see in Medidata Rave. If the actual coded value isn't in the copy of the dictionary in TrialGrid, the result notes the dictionary name so users can investigate the mismatch. |
|
4807 |
Bug |
When checking access to a Rave study before a test case run, a hung page load could cause the access check to retry for up to an hour. The access check is now time-limited and fails with a clear "Study access check timed out" message instead of hanging. |
|
4663 |
Feature |
Timeline Templates can be created at URL level for use in Project settings. |
|
4664 |
Feature |
A Timeline Template can be added to a Project so that progress against milestones can be tracked. |
|
4624 |
Feature |
Custom properties now support the URI data type. URI properties validate that values are valid web addresses with a scheme (http, https, ftp). |
|
4648 |
Feature |
Custom properties now support the Color data type. Color properties validate hex color codes (#RRGGBB), display as colored swatches in listings, and use a color picker for input. |
|
4659 |
Feature |
Custom properties now support the Numeric data type. Numeric properties validate values as numbers with optional minimum/maximum bounds and decimal place constraints. |
|
4679 |
Bug |
Looking up a custom icon by name no longer fails with an attribute error. |
|
4671 |
Feature |
Custom properties now support the Date data type. Date properties use a native calendar picker for input and display in object listings using the user's date format preference. All date values are stored as ISO dates (YYYY-MM-DD). (Property sheet columns currently still display the raw ISO format) |
|
4694 |
Bug |
When a custom object referenced by a Reference Property is deleted, the property values pointing at it are now removed automatically and dependent fingerprints and standards compliance are recalculated. |
|
4695 |
Feature |
Custom properties now support the DateTime data type. DateTime properties use a native datetime picker for input and render in object listings using the user's date format preference. Values are stored in ISO format (YYYY-MM-DD HH:MM[:SS]). |
|
4705 |
Bug |
Search on the custom object list no longer matches text inside the rendered HTML of the Used In column. |
|
4706 |
Feature |
Custom object lists now have a Search columns filter so users can choose which columns the search box matches against. |
|
4707 |
Feature |
The Copy from dialog for custom objects now has the same Search columns control as the list page, so users can restrict the search box to a single column. |
|
4708 |
Feature |
Custom properties now support a Set type, allowing multi-value selection from a defined list of allowed values. The URL settings export and App Script YAML dumper now include numeric (min/max/decimal places) and Set (values/separator) property settings. |
|
4440 |
Feature |
Custom object layout Field nodes now accept an optional renderer that replaces the default property input with a specialised widget. Built-in renderers cover numeric properties (number-spinner), choice properties (radio-buttons), and set properties (transfer-list). |
|
4739 |
Feature |
Text custom properties with a length of less than 100 characters are now rendered as inputs rather than text areas. |
|
4676 |
Feature |
TrialGrid Ltd staff can now export and re-apply customer-authored diagnostics and document templates between URLs via app-script YAML files. |
|
4689 |
Feature |
New diagnostic flags Veeva ItemGroups where Header Visible or Visual Group is not set to Yes, with an autofix to enable them and a configurable Item Group Name exclusion list. |
|
4690 |
Feature |
New diagnostic flags Veeva Items where the Control Type does not match the codelist size: Picklist is required for codelists with more than 6 entries, and Radio Buttons - Horizontal is unsuitable for codelists with more than 3 entries. The autofix sets the recommended Control Type and an Item Name exclusion list lets users skip specific Items. |
|
4691 |
Feature |
New diagnostic flags Veeva Forms with mixed Radio Button orientations: items whose Control Type does not match the Form's majority orientation are reported with an autofix that switches them to the majority (Vertical wins ties). Form Name and Item Name exclusion lists let users skip specific forms or items. |
|
4692 |
Feature |
New diagnostic groups Veeva codelists with identical entries (same Choice Codes and Labels regardless of order) and flags Items whose Control Type does not match the most-used valid type within the group, with Picklist beating Vertical beating Horizontal on ties. Codelist Name and Item Name exclusion lists let users skip specific groups or items. |
|
4693 |
Feature |
New diagnostic flags Veeva Items whose Item Name is longer than a configurable threshold (default 8 characters). The fix prompts for a replacement name; an Item Name exclusion list lets users skip specific items. |
|
4697 |
Feature |
TrialGrid now flags Veeva Date and Date/Time Items whose 'No Future Date' is not set to Yes, with an autofix that sets it to Yes. |
|
4698 |
Feature |
TrialGrid now flags Veeva Items whose Length does not match the maximum Choice Code length of their Codelist, with an autofix that sets Length to the correct value. |
|
4699 |
Feature |
TrialGrid now flags Veeva data Items that do not have Required set to Yes (skipping Read-only and Derived items), with an autofix that sets Required to Yes. |
|
4700 |
Feature |
TrialGrid now flags Veeva Forms whose order relative to other Forms is inconsistent across the Events in which they appear. |
|
4702 |
Feature |
TrialGrid now flags Veeva measurement Items (height, weight, vitals, etc.) that do not have an appropriate Unit Codelist. |
|
4703 |
Feature |
TrialGrid now flags Veeva measurement Items whose Length, Decimal, or value range is implausible for the kind of measurement they capture. |
|
4704 |
Feature |
TrialGrid now flags Veeva Unit Codelists whose conversion formulas do not match the canonical conversion factors for the units they contain, with an autofix that rewrites the formula. |
|
4715 |
Feature |
TrialGrid now provides a Veeva diagnostic that flags objects whose External ID does not match their Name, with an autofix that copies the Name into External ID. The list of object types to check is configurable; Form is selected by default. |
|
4716 |
Feature |
TrialGrid now provides a Veeva diagnostic that classifies Items as lot numbers, kit numbers, or accession numbers and flags any whose Data Type is not Text. The autofix sets Data Type to Text. |
|
4717 |
Feature |
TrialGrid now provides a Veeva diagnostic that flags Concomitant Medications forms which collect Total Daily Dose alongside Dose and Frequency, since these dosing views are mutually exclusive. |
|
4742 |
Feature |
Diagnostic 0180 (Item Name and External ID Reserved Words) now flags lab-prefix Items only when Enable Local Labs is not set to Yes in Study Settings, since TrialGrid auto-creates these Items when local labs are enabled. |
|
4743 |
Feature |
Diagnostic 0186 (Veeva ItemGroup Header Visible and Visual Group Selected) now excludes the LBHEADER ItemGroup by default, since TrialGrid auto-creates LBHEADER when local labs are enabled. |
|
4744 |
Feature |
Diagnostic 0188 (Veeva Form Radio Button Layout Consistency) now groups Items by Codelist entry count when checking radio orientation consistency, so radio Items with a 2-entry codelist are compared only against other 2-entry codelist Items. |
|
4745 |
Feature |
Diagnostic 0190 (Veeva Item Name Length) now excludes TrialGrid-auto-created lab Items by default (LBNRIND_*, LBTEST_*, LBCLSIG_*, LBORRES_*, LBORNRLO_*, LBORNRHI_*, LBOVRDNRLO_*, LBOVRDNRHI_*). |
|
4650 |
Feature |
The URL Document Templates list can now be filtered by scope, format and active state. |
|
4653 |
Feature |
Document templates now support an {% ai instruction="..." %}...{% endai %} tag that transforms block content using an AI call, making it easier to summarise or rewrite template sections at generation time. |
|
4676 |
Feature |
TrialGrid Ltd staff can now export and re-apply customer-authored diagnostics and document templates between URLs via app-script YAML files. |
|
4758 |
Bug |
Inline formatting (e.g. bold) inside HTML list items is now preserved when document templates use the convert_html filter for Word and Excel output. |
|
4759 |
Bug |
Newlines between formatted runs of text in Excel document template output are no longer dropped during rendering. |
|
4666 |
System |
Internal changes to consolidate code adding/removing Labels. |
|
4667 |
Feature |
|company| staff can now export a URL's customizations (custom object definitions, custom properties, object identifiers, and per-object visibility settings) to a file and re-apply them to a new URL. |
|
4668 |
System |
Reduced calls to a system cache to improve performance. |
|
4676 |
Feature |
TrialGrid Ltd staff can now export and re-apply customer-authored diagnostics and document templates between URLs via app-script YAML files. |
|
4754 |
System |
URL type display names ('URL' or 'Vault') are now derived from a single overridable method on the URL model and not hard-coded. |
|
4725 |
Feature |
Labels can now be applied to Fields. The Draft Fields list, Form editor, and Copy Form modal all support managing and filtering by Field labels. Label removal conditions can also be configured for Field attributes so a Field's label is auto-removed when its attributes change. |
|
4737 |
Bug |
Searching the URL Labels list now matches only the label name and no longer matches against the label id values. |
|
4668 |
System |
Reduced calls to a system cache to improve performance. |
|
4674 |
System |
The performance of saving test cases has been improved. |
|
4675 |
System |
The performance of viewing Rave draft objects has been improved. |
|
4677 |
System |
The performance of the Test Set Run view has been improved. |
|
4678 |
System |
The performance of saving Forms when Fields have been re-ordered has been improved. |
|
4675 |
System |
The performance of viewing draft objects has been improved. |
|
4813 |
System |
Property sheets now load faster by reducing the server-side work needed to build large grids. |
|
4673 |
Feature |
A new 'Drafts.Merge Draft' Project Role permission now controls access to the draft merge flow. Users without this permission will not see the Merge option on the draft upload page and cannot apply merges. |
|
4684 |
Feature |
Project roles now have a separate "Assign Users" permission that controls whether users can assign people to objects from object lists, draft objects, and property sheets. Existing roles default to disabled and the permission can be granted as needed. |
|
4688 |
Bug |
Clicking on a checkbox cell in a property sheet to select it or to start a drag selection no longer toggles the checkbox value. The checkbox now toggles only on a true single click. |
|
4714 |
Feature |
Property sheet column definitions now have an Exclude Blanks option in the default filter, which hides rows where the column has no value. |
|
4724 |
Feature |
Property sheets for Forms can now be created. |
|
4732 |
Bug |
Activity records were not being created when new Folders or Forms were added on a property sheet. This has been corrected. |
|
4740 |
Feature |
Property sheets now have a read-only property which disables all editing. |
|
4741 |
Feature |
Child object definitions can now have read-only Property Sheets. |
|
4761 |
Feature |
Choice columns in property sheets now use an in-cell dropdown with type-to-filter instead of a popup dialog. |
|
4764 |
Feature |
Clicking a choice or checkbox cell in a spreadsheet now selects it; the dropdown opens only when you click the arrow and the checkbox toggles only when you click the box. |
|
4765 |
Feature |
Color custom properties in spreadsheet views now show a color swatch with the hex code and can be edited with a color picker. |
|
4766 |
Feature |
Set custom properties in property sheet spreadsheets can now be edited with a multi-select drop-down of the allowed values. |
|
4773 |
Feature |
Date and datetime custom properties now display in your chosen date format and edit with a date/time picker in spreadsheet views. |
|
4813 |
System |
Property sheets now load faster by reducing the server-side work needed to build large grids. |
|
4680 |
Feature |
TrialGrid Ltd can now configure a minimum password length above the system default of 9 characters on a per-organization basis. |
|
4738 |
Feature |
Users with the new "Can Use API Tokens" permission can now create, view, and
revoke their own API tokens from the user profile. Token values are shown only
once at creation; existing tokens continue to work and are migrated
automatically. Note that |
|
4753 |
System |
Additional measures to reduce the possibility of XSS attacks. |
|
3100 |
System |
Validation documentation now includes a Security Oversight Summary covering how service suppliers secure hosting IT components and how the build pipeline checks third-party component security. |
|
4778 |
System |
Additional protections have been introduced when handling external URL references. |
|
4780 |
System |
Changing multiple Project Properties in a single save in TrialGrid now triggers one combined rule recalculation instead of a separate background task per property, improving performance. |
|
4726 |
Feature |
URLs can now disable the standards compliance approval workflow at the URL level. When disabled, compliance is still calculated for drafts linked to a library but Request Approval / Approve / Reject UI and actions are hidden across TrialGrid. |
|
4723 |
Feature |
TrialGrid now provides an Amendment Advisor that compares two Drafts in a Project and highlights structural, field, and edit-check changes that could cause data loss when a Rave Amendment Manager migration runs. |
|
4725 |
Feature |
Labels can now be applied to Fields. The Draft Fields list, Form editor, and Copy Form modal all support managing and filtering by Field labels. Label removal conditions can also be configured for Field attributes so a Field's label is auto-removed when its attributes change. |
|
4746 |
Feature |
The Draft Fields list has a 'Copy from' button so that fields can be copied from another draft. |
|
4701 |
Bug |
Tickets in a project now always receive a unique identifier, even when the New Ticket form is submitted twice in rapid succession. |
|
4709 |
Feature |
Buttons on list views have been consolidated into 'Add' and 'Actions' groups. |
|
4747 |
Feature |
Cloning a draft with no user assignments now starts immediately, skipping the assignment-handling prompt. |
|
4748 |
Feature |
Project role administrators can now use Select All and Select None buttons to toggle every permission at once on the Project Role edit page. |
|
4749 |
Feature |
The URL Team list now uses a spreadsheet-style grid. |
|
3090 |
Feature |
Each issue in the validation documentation now links to the release notes for the production version(s) in which it was fixed, and issues that are not yet part of a released version are no longer listed. |
|
3100 |
System |
Validation documentation now includes a Security Oversight Summary covering how service suppliers secure hosting IT components and how the build pipeline checks third-party component security. |
|
3680 |
System |
Suppressed Python dependency vulnerabilities now record a last-reviewed date and the build fails if any suppression has not been reviewed within 60 days, with this control described in the validation documentation. |
|
4660 |
Feature |
When adding a Veeva Vault the roles, labels, custom objects, custom properties, actions and other settings can now be copied from an existing Vault. |
|
4669 |
Feature |
There is a new Veeva Test Case step to set visit method, change reason, planned date override and externally owned for Events. Note that existing Veeva drafts will not include the visit method and the SDS must be imported again to pick up the visit method. |
|
4670 |
Feature |
Veeva 'set event to did not occur' steps can now include a reason. |
|
4683 |
Bug |
When uploading a Veeva SDS some properties were incorrectly assigned to Events instead of Event Group Events (the Event Group / Event combination in the Schedule). Existing Veeva Drafts will be automatically corrected. |
|
4689 |
Feature |
New diagnostic flags Veeva ItemGroups where Header Visible or Visual Group is not set to Yes, with an autofix to enable them and a configurable Item Group Name exclusion list. |
|
4690 |
Feature |
New diagnostic flags Veeva Items where the Control Type does not match the codelist size: Picklist is required for codelists with more than 6 entries, and Radio Buttons - Horizontal is unsuitable for codelists with more than 3 entries. The autofix sets the recommended Control Type and an Item Name exclusion list lets users skip specific Items. |
|
4691 |
Feature |
New diagnostic flags Veeva Forms with mixed Radio Button orientations: items whose Control Type does not match the Form's majority orientation are reported with an autofix that switches them to the majority (Vertical wins ties). Form Name and Item Name exclusion lists let users skip specific forms or items. |
|
4692 |
Feature |
New diagnostic groups Veeva codelists with identical entries (same Choice Codes and Labels regardless of order) and flags Items whose Control Type does not match the most-used valid type within the group, with Picklist beating Vertical beating Horizontal on ties. Codelist Name and Item Name exclusion lists let users skip specific groups or items. |
|
4693 |
Feature |
New diagnostic flags Veeva Items whose Item Name is longer than a configurable threshold (default 8 characters). The fix prompts for a replacement name; an Item Name exclusion list lets users skip specific items. |
|
4697 |
Feature |
TrialGrid now flags Veeva Date and Date/Time Items whose 'No Future Date' is not set to Yes, with an autofix that sets it to Yes. |
|
4698 |
Feature |
TrialGrid now flags Veeva Items whose Length does not match the maximum Choice Code length of their Codelist, with an autofix that sets Length to the correct value. |
|
4699 |
Feature |
TrialGrid now flags Veeva data Items that do not have Required set to Yes (skipping Read-only and Derived items), with an autofix that sets Required to Yes. |
|
4700 |
Feature |
TrialGrid now flags Veeva Forms whose order relative to other Forms is inconsistent across the Events in which they appear. |
|
4702 |
Feature |
TrialGrid now flags Veeva measurement Items (height, weight, vitals, etc.) that do not have an appropriate Unit Codelist. |
|
4703 |
Feature |
TrialGrid now flags Veeva measurement Items whose Length, Decimal, or value range is implausible for the kind of measurement they capture. |
|
4704 |
Feature |
TrialGrid now flags Veeva Unit Codelists whose conversion formulas do not match the canonical conversion factors for the units they contain, with an autofix that rewrites the formula. |
|
4715 |
Feature |
TrialGrid now provides a Veeva diagnostic that flags objects whose External ID does not match their Name, with an autofix that copies the Name into External ID. The list of object types to check is configurable; Form is selected by default. |
|
4716 |
Feature |
TrialGrid now provides a Veeva diagnostic that classifies Items as lot numbers, kit numbers, or accession numbers and flags any whose Data Type is not Text. The autofix sets Data Type to Text. |
|
4717 |
Feature |
TrialGrid now provides a Veeva diagnostic that flags Concomitant Medications forms which collect Total Daily Dose alongside Dose and Frequency, since these dosing views are mutually exclusive. |
|
4718 |
Feature |
EventGroup Event and EventForm custom object definitions are now displayed for Veeva URLs, so their per-relationship properties are visible in lists. On EventGroup Event, Visit Method and Dynamic are surfaced as list columns. Existing Veeva URLs are updated by data migration. |
|
4719 |
Feature |
Codelist Entry and Unit Codelist Entry custom object definitions are now displayed for Veeva URLs, so codelist choices are visible in lists. Choice Label is surfaced as a list column on Codelist Entry; Choice Label, Standard, and Conversion are surfaced on Unit Codelist Entry. Existing Veeva URLs are updated by data migration. |
|
4720 |
Feature |
Properties on Veeva URLs that store names of other Veeva objects (Codelist and Unit Codelist on Item; Event Group, Event, Form, Item Group, and Item on Casebook Variable, Rule, Repeating Event Group, Review Plan, Safety Form Configuration, and Comparison Rule) are now reference properties pointing at the relevant custom object definitions, enabling dropdown selection and reference validation in place of free-form text. Existing Veeva URLs are converted by data migration; values that match an object in the draft are translated to the object reference, and unmatched names are cleared. |
|
4721 |
Bug |
Casebook is no longer part of the Event Group object identifier on Veeva URLs, fixing reference lookups from Casebook Variables, Rules, Comparison Rules, and Repeating Event Groups that store the bare Event Group Name. Existing Veeva URLs are updated by data migration that recomputes Event Group and EventGroup Event identifiers. |
|
4722 |
Bug |
Draft Merge was not working for Veeva Drafts. This has been corrected. |
|
4734 |
Bug |
External ID values are now imported correctly for Forms and Item Groups when loading a Study Design Specification. |
|
4735 |
Bug |
Fixed an issue where the Veeva Test Case Advisor could place generated queries on the wrong event when an edit check's Action Target field was not on the form bound to the rule's first event. |
|
4736 |
Feature |
The Veeva Test Case Advisor now generates 'I update event' and 'I set event ... to did not occur' steps for rules that reference event change reasons or the did-not-occur attribute. |
|
4742 |
Feature |
Diagnostic 0180 (Item Name and External ID Reserved Words) now flags lab-prefix Items only when Enable Local Labs is not set to Yes in Study Settings, since TrialGrid auto-creates these Items when local labs are enabled. |
|
4743 |
Feature |
Diagnostic 0186 (Veeva ItemGroup Header Visible and Visual Group Selected) now excludes the LBHEADER ItemGroup by default, since TrialGrid auto-creates LBHEADER when local labs are enabled. |
|
4744 |
Feature |
Diagnostic 0188 (Veeva Form Radio Button Layout Consistency) now groups Items by Codelist entry count when checking radio orientation consistency, so radio Items with a 2-entry codelist are compared only against other 2-entry codelist Items. |
|
4745 |
Feature |
Diagnostic 0190 (Veeva Item Name Length) now excludes TrialGrid-auto-created lab Items by default (LBNRIND_*, LBTEST_*, LBCLSIG_*, LBORRES_*, LBORNRLO_*, LBORNRHI_*, LBOVRDNRLO_*, LBOVRDNRHI_*). |
|
4713 |
Feature |
There are a default set of Property Sheets for Veeva URLs. |
|
4783 |
Bug |
Veeva Test Case generator now produces date values on different dates (not just different times) when comparing a date/time form item against an event date, and uses date-only strings for event date steps. |
|
4784 |
Bug |
Veeva test case generator now computes each event's date from its Event Window (Offset Event + Offset Days) instead of using the base time for every event, so generated 'I add event' steps fall inside the event's accepted date range. |
|
4785 |
Bug |
Veeva test case generator now emits the negative scenario before the positive for rules whose action adds an Event Group, Event, or Form — so the negative assertion runs against a clean subject state instead of one that already contains the artefact added by the positive scenario. |
|
4786 |
Bug |
The Veeva Test Case generator now detects dynamic forms and add an 'I add form' step before the data-entry table (for repeating forms) or data entry steps to trigger the dynamic add form rule (for non-repeating forms). |
|
4787 |
Feature |
There is a new Test Case step 'I add form "X" to event "EG.EV"' which creates an empty form in an existing event, for use only with repeating forms. |
|
4788 |
Bug |
The Veeva test case generator now skips rules that reference linked forms and reports which linked forms are involved. The Veeva API has no endpoint to link forms, so a generated test case for such a rule could not be run, so we skip the rule entirely rather than producing an unrunnable feature file. |
|
4789 |
Feature |
The Veeva Test Case generator will switch to using a Background section, creating subjects per scenario, if necessary to test different events. |
|
4790 |
Feature |
Veeva Test Case runs will automatically submit an unsubmitted form before checking for a derived value. |
|
4791 |
Bug |
The Veeva Test Case generator was producing incorrect year values. This has been corrected. |
|
4792 |
Bug |
The Veeva Test Case generator was not respecting numeric formats when checking data values. This has been corrected. |
|
4793 |
Bug |
Veeva Test Case generation failed for rules binding a form with commas in its label. This has been corrected. |
|
4794 |
Bug |
The Veeva Test Case generator was not generating correct values for some rules with wildcards. This has been corrected. |
|
4795 |
Feature |
The Veeva Test Case generator will not now try to create test cases for lab forms. |
|
4798 |
Feature |
When several rules share the same query text and action target, the Veeva Test Case generator now produces a single combined scenario instead of one per rule. |
|
4801 |
Feature |
The Veeva Test Case generator now handles a wider range of rule shapes correctly - "Date of Visit" InWindow rules whose arguments are two event dates (including the bare and Not(InWindow(...)) forms), Max/Min wrappers around wildcard references such as Max($EG.EV[*].FORM.IG.ITEM), IsBlank arguments inside Add Event/Group predicates, attribute references shared across multiple events (for example $TX.D2.event_date__v and $TX.D15.event_date__v), 2-part event identifiers, and Action Targets written in either the "$EG" or "{EG}" form. |
|
4802 |
Feature |
The Veeva Test Case generator now sequences Login-block events and data entries in phases driven by the Add Event Group cascade, so gating data is entered before the events it enables; requires every gating value in an Add Event Group predicate to match before keeping per-event data (avoiding "Unique Event Group cannot be found" rejections); uses a single definition of "rule is Active" throughout; and keeps prereq block and datapoint lists paired when collecting isolated prerequisites. |
|
4803 |
Bug |
The Veeva Test Case generator was not processing dates and times consistently across timezones. |
|
4804 |
Feature |
The Veeva Test Case generator now generates test cases for rules that reference previous or next instances of repeating event groups, events, forms, and item groups via the [-1] / [+1] wildcard identifiers. |
|
4805 |
Feature |
The Veeva Test Case generator now surfaces a 'Subject ID must be set' issue in the 'Given I have resolved these issues' placeholder step when a rule writes data to the itemgroup containing the Subject-Identifier item, since the generator cannot pick a value that's unique against existing subjects. |