Release Notes

Version 5.0

  • Server Status — New endpoints have been added that return server status. SERVER_IP/healthcheck returns status 200 if server is healthy. SERVER_IP/connections returns a JSON object with server statistics, including server upTime, memory usage, and activeConnections. SERVER_IP/version returns server status information in an HTML formatted page. SERVER_IP/version?full=true provides more detailed server information
  • Upgraded internal Node.js version to the latest Node.js LTS version 14
  • 32TF and 256TF mode — By default at launch time, the WebSDK server uses 32 transfer functions (label volumes). If more than 32 are required, change the configuration.xml setting to 256. Note, this mode will impact rendering performance by 10-15% and also consumes additional memory.
  • Plugin Architecture — customFunctions and customLoad methods are now available through a dynamic plugin loading mechanism that can be easily extended to support direct access to native image data. This permits the image data to be manipulated directly through server-side C++ code with direct access to the Fovia SDK in-process API. Plugin source is found in the Example/plugins, with binaries found in nodeaddon/plugins. Existing pre-5.0 custom functions will need to be refactored into this design pattern, contact Fovia support if you have questions.
  • 2D Segmentation Plugin — provides various 2D painting / editing segmentation tools available via plugin_segmentation3D
  • RenderParams editor — a renderParams (3D) editor is a JavaScript application that loads and creates specific 3D presets. The output can be saved as a file-based preset or as a Javascript code snippet. This is available as an example in public/apps/rpEditor.
  • DICOM Palette Color Tables — an 8-bit color LUT can be applied to a 2D image using the renderParams2D variable colorPaletteName. This references a color table found in config/color_tables and is applied post Window/Level. See apps/hellofovia/2d_color.html as an example. Note, this only applies to 2D rendering, similar capabilities is available through the renderParams editor
  • Max number of connections — the ability to limit the number of concurrent connections can be specified in configuration.xml using the setting. By default, this is set to 0 and does not limit the number of connections.
  • 16-bit signed data support — This change does not affect customers using custom data loading. Previously the DICOM image loader did not support 16 bit signed data, since the render engine did not support it. Now the loader converts 16-bit signed data to unsigned 16-bit data for internal storage and adjusts the rescale slope and intercept to reflect the adjusted data values. If you use any preset files you will need to adjust them, (our defaults are updated in data/presets to use Hounsfield units). If you are currently using other preset files beyond the defaults, please verify they still work well (it would be very obvious if there is an issue), in particular with 16-bit signed datasets.
Please contact support@fovia.com if you have questions or encounter any issues with upgrading to WebSDK 5.0

Version 4.1

  • create new custom function interfaces for both 2D and 3D data
  • added custom loader for 2D data loading
  • added custom loader for NIfTI data loading
  • added optional paramter to RenderEngineContext3D.setRenderParams() which specifies optionalRender via the Fovia.RenderRequest enum and avoids an unnecessary round trip to trigger a render. This defaults to noRender.
  • change native custom functions to take the binary CBOR rather than the full JSON. The native code inside custom functions is responsible for extracting the JSON as is shown in the example application.
  • added API support for GSPS and CADSR rendering, along with built-in annotation adaptors. See apps/gpsp for examples and documentation.
  • added support for reading of multi-frame DICOM images
  • added support for DICOM VOILUT rendering of 2D data

Version 4.0

  • upgraded DICOM library with support for most transfer syntaxes, including JP2K and all imaging modalities, including CR, DR, DX, MG, US, XA, etc.
  • loadDICOMDir updated to return DICOM tags as part of the VolumeDataContext
  • scanDICOMDir returns a directory hierarchy, organized by studies, series, and subSeries, where a subSeries is a set of images in the series that can be used to create a volume
  • added support for a 2D DICOM rendering pipeline (independent of the 3D/MPR HDVR® rendering pipeline). This mechanism generates the resultant image based on individual DICOM data. This supports all imaging modalities (not just cross-sectional CT/MR)
  • new classes and methods to support 2D DICOM rendering pipeline, including createRenderEngine2D(), RenderEngineContext2D, RenderParams2D, HTMLViewport2D, HTMLDoubleBufferViewport2D. The procedure for set/get renderParams and use of render/renderFinal is the same for both 2D and 3D
  • HTMLViewport classes (2D and 3D) have basic display of ruler, patient orientation markers, and DICOM text overlay
  • added helper functions to easily map between DICOM frame-of-reference (FOR) and the Fovia 3D/MPR coordinate system. Examples show how to correlate 2D, MPR, and 3D views using 3D cursor and for display of 2D localizer lines
  • added support to return resulting image using lossless PNG rather than JPEG (this is available in both 2D and 3D modes
  • loadCustomData now takes as input a JSON object which includes a path (or generic ID) to the data, and returns a JSON object, which includes the volumeDataContext object, and any other data that the native custom loader wants to include as part of the JSON object
  • support for F.A.S.T.® Cinematic Rendering

Version 3.0.1

  • added ability to specify separate location for server logs
  • added ability to specify alternate socketIO path (rather than /socket.io/)
  • addressed issue with orthogonal MPR scrolling adaptor to ensure it does not go past the end-of-volume

Version 3.0

  • Added Ubuntu and RHEL (Red Hat Enterprise Linux) support (in addition to Windows)
  • Added Docker deployment options for Ubuntu and RHEL distributions
  • Added MPR Fusion Support (see public\apps\fusion example, BlendedRenderEngineContext and BlendedRenderParams classes)
  • Added ability to create polygon object from a set of vertices from client-side application code (see ServerContext.createPolygonContext)
  • Native HDVR engine now supports datasets up to 32K x 32K x 32K
  • Upgraded internal Node.js pacakges to use 6.10 LTS
  • Optional lung, cardiac, kidneys, and fusion datasets are now available for download (http://www.fovia.com/bdtransfer/builds/websdk_democases.zip)

Version 2.1

  • Added RenderEngineContext3D.setCurvedMPRPath
  • Created example CurvedMPR app that supports both “straighten” and “flatten” line algorithms
  • Added ServerContext.loadXMLTransferFunction and saveXMLTransferFunction (which includes the complete set of render ranges for all TF)
  • Created stand alone JavaScript-based TF Editor
  • Included F.A.S.T.® Interactive Segmentation workflows (Renal, Lung, and Cardiac)
  • Included F.A.S.T.® Cloud App Builder (Angular2 example application)
  • Updated documentation and migrated F.A.S.T. Native SDK concept chapters into this documentation
  • API cleanup
    • RenderParams3D.loadXMLPreset/saveXMLPreset are now moved to ServerContext.loadXMLPreset/saveXMLPreset (ServerContext is where all file I/O occurs)
    • ServerContext.createRenderEngine now takes VolumeDataContext and OctreeContext objects (using objects rather than number IDs)
    • Fovia.Util.displayToStoredUnit is now Fovia.Util.displayToStoredUnits (made it plural)

Version 2.0

  • Added Segmentation API
  • Added Polygon API
  • Created an asynchronous scrolling adaptor that can be easily incorporated into 2D/MPR applications
  • Expose full RENDER_PARAMS structure, support loading and saving of XML presets
  • Include the RENDER_PARAMS structure with each image returned to the client, provides the complete rendering state of the current image.
  • Remove the necessity to call render() at least one time prior to a renderFinal()
  • Added SSL support for communication between client and server
  • Moved all configuration files into a single "config\configuration.xml"
  • Moved all datasets, presets, and sample data to "data\"

Version 1.0.1

  • Created System Tray icon for monitoring of the F.A.S.T. Cloud SDK server; menu provides access to system logging information
  • Label log messages to indicate if generated from client or server API
  • Extend FoviaAPI.requestServerConnection to accept a disconnect session handler that is called when the session times out or connection to the server is lost
  • Extend FoviaAPI.requestServerConnection to accept a global error handler that is call when an unrecoverable system error (an unlikely case in production environments, but should still be handled)
  • Added a default session timeout in properties.cfg (default value is 0, never timeout)
  • Upgraded internally to Node.js 0.12.13 (most recent "0.12" LTS)
  • Exposed lower-level Fovia API, including ServerContext.createOctree and ServerContext.createRenderEngine
  • Provided public\apps\hellofovia\lowlevel.js/html example apps for creating a basic HTML5 element, without using Fovia.UI.HTMLViewport3D container

Version 1.0

  • First release of the F.A.S.T. Cloud SDK