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
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
Release Notes
Version 5.0
Version 4.1
Version 4.0
Version 3.0.1
Version 3.0
Version 2.1
Version 2.0
Version 1.0.1
Version 1.0