Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Image store encoding with recent formats #4

Merged
merged 5 commits into from
Aug 27, 2022
Merged

Conversation

Almeida-a
Copy link
Owner

Extra: decoding method is also provided

…butes as well as transfer syntax

Also fixed problem of file creation in MiscUtils
 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)
@Almeida-a Almeida-a merged commit 81bb036 into dev Aug 27, 2022
@Almeida-a Almeida-a deleted the new/image-store-encoding branch August 27, 2022 14:31
@Almeida-a
Copy link
Owner Author

Issue #3

Almeida-a added a commit that referenced this pull request Aug 31, 2022
* Tweaked pom (changed artifactID)

* Main class added

* Reverted artifact ID

* Removed name

* Tweaked pom

* Re-added maven.compiler tags

* Tried multiple mvn compiler versions

* Removed java 8 from CI (for now)

* Re-added java 8 to compiler and ci options

* Re-added java 8 to compiler and ci options

* Re-added java 8 to ci options

* Added test/ci branch to ci scope

* Restructured code into the plugin set form

* Updated dicoogle version pointer

* Template Storage plugin

* Implemented interface contract methods

* Registered storage plugin

* Changed context path name

Plus, added some comments:
 * explaining getJettyHandlers
 * providing a path example to access a servlet

* Fixed target version to 3.0.5

* Fixed target version to 3.0.5

* Simple image viewer (by "get" operation) of uncompressed dicom images

* Image store encoding with recent formats (#4)

* #3 Introduced ability to transcode the pixel-data into newer (compressed) formats

* #3 Complemented transcoding process by adding lossy compression attributes as well as transfer syntax

Also fixed problem of file creation in MiscUtils

* #3 Added format decoding functions

* #3 Fixed multiple bugs

 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)

* #3 decode bugfix: thread waits for decompression subprocess to finish

* Viewer for encoded dicom images. (#6)

* #5 decode feature: provided method to retrieve buffered image from a dicom object with an encoded pixel-data

* #5 image viewer: finalized the feature

Also: other minor fixes and tweaks.

* #5 image viewer: Added configuration to choose the format

Also: fixed the "davif" command decode - using avif_decode (rust) instead
Almeida-a added a commit that referenced this pull request Aug 31, 2022
* Tweaked pom (changed artifactID)

* Main class added

* Reverted artifact ID

* Removed name

* Tweaked pom

* Re-added maven.compiler tags

* Tried multiple mvn compiler versions

* Removed java 8 from CI (for now)

* Re-added java 8 to compiler and ci options

* Re-added java 8 to compiler and ci options

* Re-added java 8 to ci options

* Added test/ci branch to ci scope

* Restructured code into the plugin set form

* Updated dicoogle version pointer

* Template Storage plugin

* Implemented interface contract methods

* Registered storage plugin

* Changed context path name

Plus, added some comments:
 * explaining getJettyHandlers
 * providing a path example to access a servlet

* Fixed target version to 3.0.5

* Fixed target version to 3.0.5

* Simple image viewer (by "get" operation) of uncompressed dicom images

* Image store encoding with recent formats (#4)

* #3 Introduced ability to transcode the pixel-data into newer (compressed) formats

* #3 Complemented transcoding process by adding lossy compression attributes as well as transfer syntax

Also fixed problem of file creation in MiscUtils

* #3 Added format decoding functions

* #3 Fixed multiple bugs

 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)

* #3 decode bugfix: thread waits for decompression subprocess to finish

* Viewer for encoded dicom images. (#6)

* #5 decode feature: provided method to retrieve buffered image from a dicom object with an encoded pixel-data

* #5 image viewer: finalized the feature

Also: other minor fixes and tweaks.

* #5 image viewer: Added configuration to choose the format

Also: fixed the "davif" command decode - using avif_decode (rust) instead

* Bump maven version tag to v0.1.0-a0
Almeida-a added a commit that referenced this pull request Sep 26, 2022
* Hotfix: bump the maven tag to v0.1.0-a0 (#8)

* Tweaked pom (changed artifactID)

* Main class added

* Reverted artifact ID

* Removed name

* Tweaked pom

* Re-added maven.compiler tags

* Tried multiple mvn compiler versions

* Removed java 8 from CI (for now)

* Re-added java 8 to compiler and ci options

* Re-added java 8 to compiler and ci options

* Re-added java 8 to ci options

* Added test/ci branch to ci scope

* Restructured code into the plugin set form

* Updated dicoogle version pointer

* Template Storage plugin

* Implemented interface contract methods

* Registered storage plugin

* Changed context path name

Plus, added some comments:
 * explaining getJettyHandlers
 * providing a path example to access a servlet

* Fixed target version to 3.0.5

* Fixed target version to 3.0.5

* Simple image viewer (by "get" operation) of uncompressed dicom images

* Image store encoding with recent formats (#4)

* #3 Introduced ability to transcode the pixel-data into newer (compressed) formats

* #3 Complemented transcoding process by adding lossy compression attributes as well as transfer syntax

Also fixed problem of file creation in MiscUtils

* #3 Added format decoding functions

* #3 Fixed multiple bugs

 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)

* #3 decode bugfix: thread waits for decompression subprocess to finish

* Viewer for encoded dicom images. (#6)

* #5 decode feature: provided method to retrieve buffered image from a dicom object with an encoded pixel-data

* #5 image viewer: finalized the feature

Also: other minor fixes and tweaks.

* #5 image viewer: Added configuration to choose the format

Also: fixed the "davif" command decode - using avif_decode (rust) instead

* Bump maven version tag to v0.1.0-a0

* Bump to 0.1.0-a1 (#23)

* Allow storing pixel-data in native format (#17)

* #14 Feature: Allow for native transfer syntaxes

By default or if specified

* #14 Refactor: organized the enums into a single package

& cherry-picked the readme from main
& changed the 'same' keyword that is to keep the transfer syntax to 'keep'

* #14 Feature: Enable saving all transfer syntaxes at once

By all TS, it is meant all new formats' TSs, as well as the native version (as long the original format is not lossy)

* #14 Feature: Enable viewing any available TS version of a dicom object

 * Using the tsuid or codec parameter - if left unspecified, then use native form
 * TS - Transfer Syntax(es)

* #14 Docs: Updates on the viewer http request parameters

* Fixed readme merge mistake

* Docs: Add table of contents to the readme

* #14 Fix: Adding 'all' to the codec config tag

* Create CODE_OF_CONDUCT.md (#18)

* Update issue templates

* Added contributing section to readme

* Allow defining encoding parameters (#19)

* #15 Feature: quality and speed parameters available

However, still beyond reach of configuration by the user
Also: error handling for subprocesses

* #15 fix: merge mistake

* #15 refactor: inlined encode function into encodePNGFile

Also, encoding options are now set to default

* #15 Feature: Default encoding options are now extracted from yml

From encoding-options.yaml
Also, quality value number type of each encoder is now specified in NewFormat enum
Also, removed unused code

* #15 Feature: Allow defining quality and speed encoding parameters

Configuration is performed at DicoogleDir/Plugins/settings/imodec-plugin-set.xml

* #15 Feature: Warning when encoding parameters are invalid

* Support for storing multi-frame images* (#22)

* #11 Refactor: Paved way to start developing support for multi-frame dicom objects

* #11 Refactor: Memory optimization when codec -> all

Optimization is to use iterator, for each dicom object clone, instead of array - more memory efficient
Also, fixed bug when getting uri (was not getting the correct TS sometimes)
Also, changed some dependencies

* #11 Feature: Store multi-frame images

* #11 Finished feature*: Viewing raw multi-frame images as gif

 * Workaround - Could not find a way yet to display animated images. Thus, server can only view them locally by a file:// link
 * I marked the source of the above problem with a 'fixme 16-09-22' tag

* #11 Finished feature: Multi-frame store operation

* #11 [Bugfix] Some old features that were broken

By the multi-frame support feature

* Code cleanup

* [Refactor] Moves functions pertaining utility to *Utils.java

* #11 [Bugfix] could not read single frame avif

* #11 [README] Informed that `all` does not work with multi-frames storing operation
Almeida-a added a commit that referenced this pull request Sep 26, 2022
* Update with main (#26)

* Hotfix: bump the maven tag to v0.1.0-a0 (#8)

* Tweaked pom (changed artifactID)

* Main class added

* Reverted artifact ID

* Removed name

* Tweaked pom

* Re-added maven.compiler tags

* Tried multiple mvn compiler versions

* Removed java 8 from CI (for now)

* Re-added java 8 to compiler and ci options

* Re-added java 8 to compiler and ci options

* Re-added java 8 to ci options

* Added test/ci branch to ci scope

* Restructured code into the plugin set form

* Updated dicoogle version pointer

* Template Storage plugin

* Implemented interface contract methods

* Registered storage plugin

* Changed context path name

Plus, added some comments:
 * explaining getJettyHandlers
 * providing a path example to access a servlet

* Fixed target version to 3.0.5

* Fixed target version to 3.0.5

* Simple image viewer (by "get" operation) of uncompressed dicom images

* Image store encoding with recent formats (#4)

* #3 Introduced ability to transcode the pixel-data into newer (compressed) formats

* #3 Complemented transcoding process by adding lossy compression attributes as well as transfer syntax

Also fixed problem of file creation in MiscUtils

* #3 Added format decoding functions

* #3 Fixed multiple bugs

 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)

* #3 decode bugfix: thread waits for decompression subprocess to finish

* Viewer for encoded dicom images. (#6)

* #5 decode feature: provided method to retrieve buffered image from a dicom object with an encoded pixel-data

* #5 image viewer: finalized the feature

Also: other minor fixes and tweaks.

* #5 image viewer: Added configuration to choose the format

Also: fixed the "davif" command decode - using avif_decode (rust) instead

* Bump maven version tag to v0.1.0-a0

* Bump to 0.1.0-a1 (#23)

* Allow storing pixel-data in native format (#17)

* #14 Feature: Allow for native transfer syntaxes

By default or if specified

* #14 Refactor: organized the enums into a single package

& cherry-picked the readme from main
& changed the 'same' keyword that is to keep the transfer syntax to 'keep'

* #14 Feature: Enable saving all transfer syntaxes at once

By all TS, it is meant all new formats' TSs, as well as the native version (as long the original format is not lossy)

* #14 Feature: Enable viewing any available TS version of a dicom object

 * Using the tsuid or codec parameter - if left unspecified, then use native form
 * TS - Transfer Syntax(es)

* #14 Docs: Updates on the viewer http request parameters

* Fixed readme merge mistake

* Docs: Add table of contents to the readme

* #14 Fix: Adding 'all' to the codec config tag

* Create CODE_OF_CONDUCT.md (#18)

* Update issue templates

* Added contributing section to readme

* Allow defining encoding parameters (#19)

* #15 Feature: quality and speed parameters available

However, still beyond reach of configuration by the user
Also: error handling for subprocesses

* #15 fix: merge mistake

* #15 refactor: inlined encode function into encodePNGFile

Also, encoding options are now set to default

* #15 Feature: Default encoding options are now extracted from yml

From encoding-options.yaml
Also, quality value number type of each encoder is now specified in NewFormat enum
Also, removed unused code

* #15 Feature: Allow defining quality and speed encoding parameters

Configuration is performed at DicoogleDir/Plugins/settings/imodec-plugin-set.xml

* #15 Feature: Warning when encoding parameters are invalid

* Support for storing multi-frame images* (#22)

* #11 Refactor: Paved way to start developing support for multi-frame dicom objects

* #11 Refactor: Memory optimization when codec -> all

Optimization is to use iterator, for each dicom object clone, instead of array - more memory efficient
Also, fixed bug when getting uri (was not getting the correct TS sometimes)
Also, changed some dependencies

* #11 Feature: Store multi-frame images

* #11 Finished feature*: Viewing raw multi-frame images as gif

 * Workaround - Could not find a way yet to display animated images. Thus, server can only view them locally by a file:// link
 * I marked the source of the above problem with a 'fixme 16-09-22' tag

* #11 Finished feature: Multi-frame store operation

* #11 [Bugfix] Some old features that were broken

By the multi-frame support feature

* Code cleanup

* [Refactor] Moves functions pertaining utility to *Utils.java

* #11 [Bugfix] could not read single frame avif

* #11 [README] Informed that `all` does not work with multi-frames storing operation

* Update maven version tag to v0.1.0-b0
Almeida-a added a commit that referenced this pull request Sep 26, 2022
* Update with main (#26)

* Hotfix: bump the maven tag to v0.1.0-a0 (#8)

* Tweaked pom (changed artifactID)

* Main class added

* Reverted artifact ID

* Removed name

* Tweaked pom

* Re-added maven.compiler tags

* Tried multiple mvn compiler versions

* Removed java 8 from CI (for now)

* Re-added java 8 to compiler and ci options

* Re-added java 8 to compiler and ci options

* Re-added java 8 to ci options

* Added test/ci branch to ci scope

* Restructured code into the plugin set form

* Updated dicoogle version pointer

* Template Storage plugin

* Implemented interface contract methods

* Registered storage plugin

* Changed context path name

Plus, added some comments:
 * explaining getJettyHandlers
 * providing a path example to access a servlet

* Fixed target version to 3.0.5

* Fixed target version to 3.0.5

* Simple image viewer (by "get" operation) of uncompressed dicom images

* Image store encoding with recent formats (#4)

* #3 Introduced ability to transcode the pixel-data into newer (compressed) formats

* #3 Complemented transcoding process by adding lossy compression attributes as well as transfer syntax

Also fixed problem of file creation in MiscUtils

* #3 Added format decoding functions

* #3 Fixed multiple bugs

 * Thread waits for compression processes to finish
 * Files generated by the encoders are now deleted upon exit
 * Added logic for detecting and avoiding duplicate file storing (although, this may already be enforced by dicoogle itself)

* #3 decode bugfix: thread waits for decompression subprocess to finish

* Viewer for encoded dicom images. (#6)

* #5 decode feature: provided method to retrieve buffered image from a dicom object with an encoded pixel-data

* #5 image viewer: finalized the feature

Also: other minor fixes and tweaks.

* #5 image viewer: Added configuration to choose the format

Also: fixed the "davif" command decode - using avif_decode (rust) instead

* Bump maven version tag to v0.1.0-a0

* Bump to 0.1.0-a1 (#23)

* Allow storing pixel-data in native format (#17)

* #14 Feature: Allow for native transfer syntaxes

By default or if specified

* #14 Refactor: organized the enums into a single package

& cherry-picked the readme from main
& changed the 'same' keyword that is to keep the transfer syntax to 'keep'

* #14 Feature: Enable saving all transfer syntaxes at once

By all TS, it is meant all new formats' TSs, as well as the native version (as long the original format is not lossy)

* #14 Feature: Enable viewing any available TS version of a dicom object

 * Using the tsuid or codec parameter - if left unspecified, then use native form
 * TS - Transfer Syntax(es)

* #14 Docs: Updates on the viewer http request parameters

* Fixed readme merge mistake

* Docs: Add table of contents to the readme

* #14 Fix: Adding 'all' to the codec config tag

* Create CODE_OF_CONDUCT.md (#18)

* Update issue templates

* Added contributing section to readme

* Allow defining encoding parameters (#19)

* #15 Feature: quality and speed parameters available

However, still beyond reach of configuration by the user
Also: error handling for subprocesses

* #15 fix: merge mistake

* #15 refactor: inlined encode function into encodePNGFile

Also, encoding options are now set to default

* #15 Feature: Default encoding options are now extracted from yml

From encoding-options.yaml
Also, quality value number type of each encoder is now specified in NewFormat enum
Also, removed unused code

* #15 Feature: Allow defining quality and speed encoding parameters

Configuration is performed at DicoogleDir/Plugins/settings/imodec-plugin-set.xml

* #15 Feature: Warning when encoding parameters are invalid

* Support for storing multi-frame images* (#22)

* #11 Refactor: Paved way to start developing support for multi-frame dicom objects

* #11 Refactor: Memory optimization when codec -> all

Optimization is to use iterator, for each dicom object clone, instead of array - more memory efficient
Also, fixed bug when getting uri (was not getting the correct TS sometimes)
Also, changed some dependencies

* #11 Feature: Store multi-frame images

* #11 Finished feature*: Viewing raw multi-frame images as gif

 * Workaround - Could not find a way yet to display animated images. Thus, server can only view them locally by a file:// link
 * I marked the source of the above problem with a 'fixme 16-09-22' tag

* #11 Finished feature: Multi-frame store operation

* #11 [Bugfix] Some old features that were broken

By the multi-frame support feature

* Code cleanup

* [Refactor] Moves functions pertaining utility to *Utils.java

* #11 [Bugfix] could not read single frame avif

* #11 [README] Informed that `all` does not work with multi-frames storing operation

* Update maven version tag to v0.1.0-b0

* [Chore] (pom.xml): Fixed some build warning problems

* [Tests]: Hidden home directory & Fixed a test

 The test fixed was an unintentionally skipped one, which I didn't previously notice.
 That skip was caused by a (now fixed) bug, and the test itself had errors (shadowed by the skip).
 Those errors were fixed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant