Options
All
  • Public
Menu

Class ReleaseNotesWebSDK

Release Notes

Version 7.0

  • Client / hybrid / server 2D rendering supported (see public/apps/ClientHybridServer)
  • Add application level support for reading, display, rendering, and writing of GSPS objects
  • Add support for reading and writing of KOS objects
  • Add support for reading and writing of SR Objects (basic text, enhanced, comprehensive, comprehensive 3D )
  • Option to override the socketiopath via app
  • Add ability to invert thin and thick MIP rendering
  • renamed the following methods to for consistency in the API
    • renamed Fovia.Util.Cmpr_CalculateSingleTangent to Fovia.Util.cmprCalculateSingleTangent
    • renamed Fovia.Util.Cmpr_CalculateTangents to Fovia.Util.cmprCalculateTangents
    • renamed Fovia.Util.Cmpr_InterpolateCurve to Fovia.Util.cmprInterpolateCurve
    • renamed Fovia.Util.Cmpr_MakeFlattenedMatriciesFromPoints to Fovia.Util.cmprMakeFlattenedMatriciesFromPoints
    • renamed Fovia.Util.Cmpr_MakeStraightenedMatriciesFromPoints to Fovia.Util.cmprMakeStraightenedMatriciesFromPoints
    • renamed Fovia.Util.Cmpr_UpdateMatriciesFlattened to Fovia.Util.cmprUpdateMatriciesFlattened
    • renamed Fovia.Util.GenerateCrossSection to Fovia.Util.generateCrossSection
    • renamed Fovia.Util.GenerateFlatCMPRImage to Fovia.Util.generateFlatCMPRImage
    • renamed Fovia.Util.GenerateStraightCMPRImage to Fovia.Util.generateStraightCMPRImage
    • renamed Fovia.Util.Intersects to Fovia.Util.intersects
    • renamed Fovia.Util.MatrixMultiply to Fovia.Util.matrixMultiply
    • renamed Fovia.Util.RotatePointAroundVector to Fovia.Util.rotatePointAroundVector
    • renamed Fovia.Util.TransformInStraightCurvedMPRProjectionPlane to Fovia.Util.
      • Updated ScrollAdaptors (axis aligned and general (non-axis aligned) to handle when dataset is not captured along the z-direction.

        This ensures that scrolling, slice navigation, and spacing values are based on the captured direction, not necessarily using the z-vector. At the application level, spacing and slice information must now be accessed from scroll adaptors. To ensure correct calculations, the following mehtods have been removed.

        RenderEngineContext3D.prototype. computeScrollAndRender() is removed and now throws an excpetion
        Util. getSliceFromOffsetsinOrthogonal is removed and now throws an excpetion
        HTMLViewportMPR. computeSliceNumber() is removed and now throws an excpetion
        ScrollAdaptorData updateCurrentandTotalSlicefromRP is removed and now throws an excpetion
        ScrollMouseAdaptor getAdaptorSliceInformation is removed and now throws an excpetion

        Since slice numbers make no sense when associated with a non-axis aligned navigation, the onImageMetaDataReceived() data.scrollObject's .currentSlice and .totalSlices property will only be valid when using the axis aligned adaptors. Otherwise those properties will have the value of "undefined".

      Version 6.0

      • Logging handled through Winston (see config/logging_configuration.json to modify/add additional transports)
      • Add 2D paintbrush segmentation tools (see public/apps/segment/paintbrush.html)
      • All mouse coordinates are now localized to the viewport fixing an earlier inconsistency across mouse adaptors. Use the viewportadjusted.x and viewportadjusted.y values
      • Use of async/await for mouse adaptors
      • Add API to return polygon cross section data to the client
      • restrict WebSDK file access to specific folder locations (see in config/configuration.xml to limit file access to specific locations)
      • restrict WebSDK from making GET/POST calls (see and in config/configuration to enable specific URLs)
      • Upgraded internal Node.js version to the Node.js LTS version 18
      • socket.io reconnection settings exposed via config/configuraiton.xml
      • upgrade socket.io to 4.x
      • RHEL9 is minimum requirement

      Version 5.1

      • Multi-Language / Multi-byte support for reading/writing of DICOM files. Strings are returned as UTF8 and can be directly displayed using JavaScript
      • Node-based distribution (via npm and import statements)
      • Ability to query WADO server to retrieve DICOM images, which can then be loaded into WebSDK via custom function)
      • Improvements for 4D handling of data (via HTMLViewport.reInit()
      Other
      • Curved MPR now support an unlimited number of points
      • Ability to mark the nodeaddon directory as read-only, which uses currently install number of transfer functions
      • Corrected translation between 2D DICOM Frame-of-reference and 3D for non-axial assigned studies

      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.
      • 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()
      • 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

Hierarchy

  • ReleaseNotesWebSDK