Breaking changes

Templates created with older visionCATS versions may not work anymore after updating. If you only modified a few things, it may be easier to redo these modifications from an up to date template.

In the case you did some complex and extensive modifications, please use the following list of changes to update your templates.

visionCATS 4.0

JSON

As the way the JSON data is generated has changed, some small JSON structure changed:

  • Partials/Evaluation/evaluationResultsSubstancesGroups.html

    The dictionary LimitTestDisplayItemsDictionary should now be accessed as an object with properties, not as a list of keys and values.

  • Scripts/main.js

    Main Point data (used for ChartData) were modified from _x and _y to X and Y.

  • Comparison’s Partials/profileTrack.html

    ProfileTrackViewModel property is deleted, replaced by several direct properties: ImportName, ImportedBy, ImportDate and DisplayedColor.

  • DisplayedColor of Comparison’s Profile and Spectrum

    The color is now in the hexadecimal RGB format of CSS Color Module Level 3 specification. This change removes the need to use rgb() in chart and for chartLegendRectangleItem style.

  • Date format

    Every date fields use now a string representation using ISO 8601 format, the helpers like dateFormat were modified accordingly.

Report data

  • There is now a IsAts4Application JSON property used in analysis report templates to determine whether the ATS 4 rack position column must be displayed.

  • The IsAnalysis property of SequenceData items is now correctly set.

  • The following unused JSON properties have been removed because they were not used:

    • IsEvaluation

    • IsSST

    • IsSign

    • IsSequence

    • IsSystem

SCSS files

The Sass compiler (to generate the CSS from SCSS files) was switched to a recent DartSass (1.59.3). Some sass language features were deprecated, but more are now available.

To remove a warning, global.scss was modified from

$report-side-margin: (getPageWidthMm() - $report-width) / 2;

to

$report-side-margin: calc((getPageWidthMm() - $report-width) / 2);

Also, getPageWidthMm now correctly return value with the mm unit suffix.

A new rule was added:

.propertiesTable td img {
   vertical-align: bottom;
}

visionCATS 3.2

Evaluation results

While visionCATS 3.2 includes a lot of changes in the Evaluation part of methods/analyses, these changes result essentially in new data, which should not break existing reports, except for the whole new structure Evaluation Results display and limit test options. The new structure is now organized in a tree Substance->Sample->Volume->Track result where each level has its own display items and associated limit tests. To learn how the new structure works, browse the following files in the built-in Full report analysis report template:

  • Partials/Evaluation/evaluationResults.html

  • Partials/Evaluation/evaluationResultsDisplayValue.html

  • Partials/Evaluation/evaluationResultsLimitTestDescription.html

visionCATS 3.1

CSS files

The PDF rendering engine use now @page rule to handle left and right margin.

The global CSS file (see Global CSS) should now contains the following rules. If you modified it in the past, you should add these rules.

$report-side-margin: (getPageWidthMm() - $report-width) / 2;

/* Main styles */

@page {
   margin-left: $report-side-margin;
   margin-right: $report-side-margin;
}

The main.scss of each template should now override the $report-width SASS variable if the report width isn’t the one defined in the global CSS.

 //The override of SASS variable should be before import
 $report-width: 180mm;

 @import 'global.scss';

Libraries changes

  • wkhtmltopdf was replaced by EO.PDF

  • Handlebars was upgraded to 4.7.3

  • SignalR and Metamorphic were removed

  • Flot was replaced by D3.js

These modifications should not have visible impact (expect minor rendering difference like margin value), therefore no update to the custom template is needed, other than the above CSS changes.

Rendering changes

As noted above, wkhtmltopdf was discarded in favor of EO.PDF, which use the Chromium browser engine to render the HTML reports in PDF. This change allow the usage of modern web technologies, like many HTML 5 or new CSS features.

Note

The Chromium version is displayed in About visionCATS.

D3.js replacing Flot

Standard templates use now D3.js for plotting charts. Older custom templates will still work with Flot, only having a bit blurry display.

If you want to update your custom report to D3.js, the easiest way would be to replace the main.js file of your template by the one from the standard template you used as base.

Warning

If your main.js was modified, you should update it more carefully (function by function, or with a compare tool).

JavaScript version

The version of the language is now ES6 (ECMAScript 2015).

HTML changes

The rendering engine change made the CSS class hiddenTitle obsolete. Its usage was removed, so the corresponding titles are now displayed in both report and table of content.

visionCATS 3.0

New instrument names

As instruments were renamed in visionCATS, the conditions used to select specific instrument partial templates needed to change. To avoid future changes, the user friendly names were discarded and replaced by an integer values.

2.5:

{{#ifCond InstrumentType "Derivatization dip"}}

3.0:

{{#ifCond Instrument 1002}}

It affects chromatography.html and dataAcquisition.html files.

2.5

3.0

InstrumentType “ATS4”

Instrument 5

InstrumentType “Linomat5”

Instrument 7

InstrumentType “Nanomat”

Instrument 101

InstrumentType “ADC2”

Instrument 8

InstrumentType “AMD2”

Instrument 4

InstrumentType “Chamber”

Instrument 100

InstrumentType “Derivatization dip”

Instrument 100

InstrumentType “Derivatization spray”

Instrument 1004

InstrumentType “Derivatizer”

Instrument 1005

InstrumentType “Visualizer”

Instrument 9

InstrumentType “Visualizer 2”

Should be removed (is also Instrument 9)

InstrumentType “Scanner3”

Instrument 3

InstrumentType “Scanner4”

Instrument 10

visionCATS 2.5

Unit converter functions

The convertMicroConcentrationToBestUnit and convertMicroMassToBestUnit functions used in JavaScript and the corresponding Handlebars helpers are now obsolete. The text will be rendered as <OBSOLETE>. Please use the convertMicroConcentrationToBestUnitV2 and convertMicroMassToBestUnitV2 functions instead.

Sample reference amount

Sample reference amount was added in default templates.