* overlay customization
* custom overlay definition and examples
* minor fix - import statement difference between cornerstone and cornerstone3D
* move "VOI" and "Zoom" calulation to the ViewportOverlay component, make OverlayItem fairly dull
* type specifications
* follow up fixes for CustomizationService changes on upstream
* [fix] various fixes related to custom overlays (formatting, toggling)
* [fix] various fixes related to custom overlays (formatting, toggling)
* right side overlay panels - align right
* [fix] remove "notification" from toggleOverlay command
* comments
* [refactor] remove unused imports
* documentation of customizable overlay configuration
* prettify
* review of documentation of customization service
* fix useCallback() dependencies
* fix useCallback dependencies
* documentation for customization service
* documentation for customization service
* added utilities to get frameNumber from imageId and add frameNumber to per-frame instance copy
* Fix measurements' display texts on the Measurements Panel to have the correct instance number and frame number
* fixed minor React bugs (errors on console)
* fixed React's console bugs that are logged for some series that doesn't have "description"
* bug fix - multi-frame files was not loading frames correctly. It was loading Frame 1 twice, and not loading the last frame. Due to wrong frame number indexing (frame number begins with 1, not 0)
* metadata parser fix - providing default values of imagePlaneModule
* measurement SR support on multi-frame DICOM
* bug fix - jumping to the selected measurment on multi-frame DICOM
* upgrade dcmjs dependency to 2.8.1
* StudySummary component - allow "description" to be null
* make getUIDsFromImageID() method public from MetadataProvider
* imageId usage fixes to be more stable
* change the variable name to be more meaningful
* fix metaProvider importing
* for(...of) instead of for(i=0;i<length;..)
as that doesn't assume anything about the layout/design and just gets next until done.
* use Array.findIndex instead of plain for loop
* use ReferencedSOPSequence[0] - because the ReferencedSOPSequence is an array that happens to have attributes of child zero when of length 1, but you shouldn't count on that.
* DisplaySetService.getDisplaySetForSOPInstanceUID() - added optional frameNumber parameter for future usage : now they are just ignored as we are not supporting multiframe splits
* simple code refactoring
* refactoring for checking undefined values - mappedAnnotations
* remove unreachable code
* code refactoring - prefer conditional chaining
* fix how we access imageIds of viewport (StackViewport)