OpenCDISC Validator version 1.2 (released 24-January-2011) API - Added DataDetails class to provide more detailed record-level metadata (enhancement) - Added EntityDetails class to provide more consolidated source-level metadata (enhancement) - Added overwrite capabilities to ReportOtions (enhancement) - Deprecated DataIdentity in favor of the new DataDetails and EntityDetails classes (maintenance) - Deprecated Severity across the API with the expectation that it may be phased out in the future (maintenance) Engine - Added support for a limited set of functions in expressions; see change comment in Configuration section (enhancement) - Added PreparedQuery class to pre-parse the clauses of Metadata and Lookup rules, avoiding the significant overhead involved in doing this on a per-row basis (enhancement) - Added support for fuzzy equality, useful for comparing a variable against the results of a division; see change in Configuration section (enhancement) - Added reference to CDISC-provided XSL at the top of generated define.xml documents (enhancement) - Updated configuration parser to take source metadata into account when performing rule replications (enhancement) - Updated configuration parser to defer rule creation until later in the load process, reducing some upfront overhead (enhancement) - Updated magic variable parsing code to be more powerful and flexible; see change comments in Configuration section (enhancement) - Updated SasTransportDataSource parser rounding to use a more efficient math-based method (enhancement) - Updated DataCache to use a customized BitSet in an effort to reduce memory consumption of lookups, and improve union/intersect performance (enhancement) - Updated Excel report to drop Severity column if Severity is not included in the recorded Message objects (enhancement) - Updated Excel report to defer creation of heavy objects until the end, in an effort to reduce in-process memory demands (enhancement) - Updated DataEntry compareTo method and implicit type determination process to avoid unnecessary overhead (enhancement) - Updated codebase to externalize more strings (maintenance) - Fixed issue in DataCache where OR clauses in Lookup rule Where clauses weren't functioning correctly (bug fix) - Fixed issues where file handles were being opened needlessly and left unclosed throughout the process (bug fix) - Fixed issues where large numeric values would fail string-based tests due to scientific notation (bug fix) Configuration - Added support for chained properties on magic variables via the $ separator (enhancement) - Added support for backreferences via %Variable.#% (enhancement) - Updated magic variable name clause to support multiple clauses via ; (enhancement) - Updated magic variable name clause to support negative clauses via leading ! (enhancement) - Updated magic variable name clause to support more refined group via #/@/_ with optional * (enhancement) - Updated Metadata rule to only fire on From failure when a Variable clause isn't present (enhancement) - Updated prototypes to match on any key variable (enhancement) GUI - Added support for ADaM and SEND as options in the Standard drop-down box (enhancement) - Added support for tab-delimited files through the use of \t in the Delimiter field (enhancement / bug fix) - Added post-generation step to copy over CDISC-provided define XSL file from Validator folder to define output location (enhancement) - Fixed issue where overflows in the Excel report would throw an exception instead of providing an informative error message (bug fix) - Removed HTML report option from report options drop down temporarily due to issues with HTML generation process (maintenance / bug fix) OpenCDISC Validator version 1.1 (released 02-June-2010) API - Added Settings class to API to expose internal configurable properties (enhancement) - Added lib/properties/settings.properties to define settings externally (enhancement) - Added MessageMetrics, making it possible to get information about messages generated during validation (enhancement) - Updated SimpleMetrics to make it thread-safe (enhancement) Engine - Added multithreading support (enhancement) - Added support for showing additional variables in report messages; see change comment in Configuration section (enhancement) - Added support for optional expression variables, which receive a null DataEntry when not present; see change comment in Configuration section (enhancement / bug fix) - Added support for checks against a global metadata table; see change comment in Configuration section (enhancement) - Added support for defining rule SD0061 natively in configuration; see change comment in Configuration section (enhancement) - Added support for accepting Lookup Where clause failure as a positive condition, preventing error generation; see change Comment in Configuration section (enhancement / bug fix) - Updated scripting environment to custom solution to reduce overhead caused by BeanShell (enhancement) - Updated XmlConfigurationParser to receive cues about when to drop rules based on codelist presence, for Controlled Terminology; see change comment in Configuration section (enhancement) - Updated implicit type determination methodology in DataEntry to improve performance / reduce blocking condition scenario in multithreading mode (enhancement / bug fix) - Fixed NullPointerException when SimpleAttribute had been assigned with a null value in DefineDocumentGenerator (bug fix) - Fixed situation where DefineDocumentGenerator would create ItemDefs with DataType="datetime" and blank Length attribute (bug fix) - Fixed SasTransportDataSource so it uses the correct encoding when converting the byte stream to Java strings (bug fix) - Fixed SasTransportDataSource so it handles short observations at the end of the file correctly (bug fix) - Removed some unnecessary code fragments and text entries (maintenance) Configuration - Added Display attribute on rule definition elements to select additional variables for viewing in the report (enhancement) - Added Optional attribute on scriptable rule definition elements to select optional expression variables (enhancement / bug fix) - Added GLOBAL ItemGroupDef to define rules to be run against the global metadata table (enhancement) - Added ActiveUnless attribute on rule definition elements to drop the rule when a certain magic variable condition is true; currently only %Variables[VAR].Define.WithCodeList% (enhancement) - Added support for %Domains.Define% in Terms attribute for rule definition elements in the GLOBAL ItemGroupDef (enhancement) - Added support for WhereFailure="Ignore" on lookup rule definitions to avoid failing lookup if Where condition fails (enhancement / bug fix) GUI - Added support for multiple progress update threads OpenCDISC Validator version 1.0.1 (released 17-March-2010) Engine - Added relative path resolution support for environments where the current working directory is not set correctly (bug fix) - Added support in SasTransportDataSource for header record padding other than ASCII spaces (bug fix) - Fixed NullPointerException when an invalid codelist was referenced in the codelist template in DefineDocumentGenerator (bug fix) GUI - Updated location of interface.xml in distribution package to lib/properties/interface.xml (maintenance) - Fixed condition where selected values were not persisted while toggling between specifications (bug fix)