Closed adriatic closed 3 years ago
After a bit of research using Visual Studio code on my MBP I believe that I found a workaround - simply comment out this line and the command mvn install
results with:
[INFO] --- maven-install-plugin:2.4:install (default-install) @ dicoogle ---
[INFO] Installing /Users/nikolajivancic/work/vetrad/PACS/Dicoogle/dicoogle/dicoogle/target/dicoogle.jar to /Users/nikolajivancic/.m2/repository/pt/ua/ieeta/dicoogle/3.0.3-SNAPSHOT/dicoogle-3.0.3-SNAPSHOT.jar
[INFO] Installing /Users/nikolajivancic/work/vetrad/PACS/Dicoogle/dicoogle/dicoogle/dependency-reduced-pom.xml to /Users/nikolajivancic/.m2/repository/pt/ua/ieeta/dicoogle/3.0.3-SNAPSHOT/dicoogle-3.0.3-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dicoogle-all 3.0.3-SNAPSHOT:
[INFO]
[INFO] dicoogle-all ....................................... SUCCESS [ 16.421 s]
[INFO] dicoogle-sdk ....................................... SUCCESS [ 31.315 s]
[INFO] dicoogle-sdk-ext ................................... SUCCESS [ 2.655 s]
[INFO] dicoogle ........................................... SUCCESS [ 39.505 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:29 min
[INFO] Finished at: 2021-07-05T20:36:24-04:00
[INFO] ----------------------------------------------------------------------
I am not yet sure that the generated target/dicoogle.jar
file is fully functional - I will report back once I run the provided tests
The next obstacle appears when trying to run the command (note that I copied the file dicoogle.jar to the folder where I am trying to run PACS)
➜ PACS java -jar dicoogle.jar -s
INFO settings.ServerSettingsManager (ServerSettingsManager.java:90) - Creating server settings file confs/server.xml ...
INFO plugins.PluginController (PluginController.java:94) - Creating PluginController Instance
INFO plugins.PluginController (PluginController.java:101) - Creating new Plugin Folder
INFO plugins.PluginController (PluginController.java:113) - Loaded Local Plugins
INFO plugins.PluginController (PluginController.java:148) - Creating Local Settings Folder
INFO plugins.PluginController (PluginController.java:118) - Added default storage plugin
INFO plugins.PluginController (PluginController.java:231) - Initializing plugin rest interfaces
INFO plugins.PluginController (PluginController.java:245) - Finished initializing rest interfaces
INFO plugins.PluginController (PluginController.java:249) - Initializing jetty interface
INFO server.ControlServices (ControlServices.java:137) - Starting DICOM Storage SCP
INFO net.NetworkConnection$1 (NetworkConnection.java:631) - Start listening on 0.0.0.0/0.0.0.0:6666
INFO net.NetworkConnection$1 (NetworkConnection.java:631) - Start listening on 0.0.0.0/0.0.0.0:1045
INFO server.ControlServices (ControlServices.java:162) - Starting DICOM QueryRetrieve
INFO server.ControlServices (ControlServices.java:184) - Starting WebServer
INFO web.DicoogleWeb (DicoogleWeb.java:127) - Starting Web Services in DicoogleWeb. Port: 8080
INFO server.ControlServices (ControlServices.java:191) - Starting Dicoogle Web
INFO plugins.PluginController (PluginController.java:126) - Initialized plugins
Instead of seeing the Dicoogle login page after executing the command http://localhost:8080
- I am getting GET http://localhost:8080/ 403 (Forbidden)
, consistently across all browsers I tried.
Can please help with this it ought to be something simple 😃
Hello @adriatic. That first finding is nice. Indeed, there should have been no need to import that Immutable
symbol, and can just be removed. It is possible that some JVMs no longer include the Nashorn module, which leads to the compilation error.
The second issue is likely related with recent changes to the web application's build process. Can you please checkout #481 and see if this produces a good dicoogle jar in your setup?
Thank you @Enet4 for responding. I am a software developer for nearly million years, with no experience in radiology tools, so my presence here is the consequence of helping my daughter who knows a lot about Osirix, PACS and other tools (she is a veterinary radiologist) but knows nothing about software development.
I will check the https://github.com/bioinformatics-ua/dicoogle/pull/481 PR, apply it locally, and let you know the result is.
In addition, I have an idea what caused this 403
response. If I am guessing right, I will let you know as well.
Finally, tell me if you care about a PR that addresses all of the many cosmetic issues like
The value of the field PluginsServlet.logger is not used
I used this PluginsServlet.logger
just as an example, this is not the only issue
Great to know!
In addition, I have an idea what caused this 403 response. If I am guessing right, I will let you know as well.
It typically emerges when the webapp's assets are missing in the jar, meaning that it did not build successfully. Presenting a different message to the user would make this less confusing, I admit.
Finally, tell me if you care about a PR that addresses all of the many cosmetic issues like
Sure, bringing in a PR to remove unused imports would be appreciated. Especially considering that some of them were causing trouble in some environments.
Hello, @Enet4
A quick question if I may: The variable depth
(the SearchServlet.java) is declared on the line 98 as final int depth
- and java compiler flags it as never used.
At the same time (see the image of the code section from the same file( below)
this variable is being assigned values to - so we have actually two bugs:
Note that my VSCode instance is running in the project's root folder, so the VSCode editor has been able to pick the compiler messages but I am not sure that such pickup is correct, since I compiled the code using the command mvn install
Several questions, as I would like to know whether is this "pre-alpha code" that can have syntax errors / logical bugs - the screenshot below shows just the first few of the total of 506 issues for just this one file
If this code is not ready for a trivial cleanup of unused code, then I would be wasting my time trying to just use my knowledge of Java without a good understanding of the program's logic
Can you tell me what is the intent to build Dicoogle? I used the command mvn install
while you write about using npm. I would be happy to use npm - and update the the README.md
Thank you for bringing these matters to our attention. Some of the documentation became outdated as we began transitioning to Dicoogle 3 more recently. I have pushed an updated readme file in #483. In any case, the recommended source of guidance to Dicoogle users and developers at this time is the Dicoogle Learning Pack, which also has a section on Building Dicoogle from sources.
As for the raised topics:
mvn install
is sufficient to build the full Dicoogle core, including the web app (for Dicoogle 3 this behavior is fixed in #481). Node.js does not have to be installed in the system for this. However, it is possible to handle the webapp building process separately, which is where having Node.js and npm is required, and the command mvn install -Dskip.installnodenpm -Dskip.npm
comes in. In this case, the developer would build the webapp, then call this command.depth
variable part is intriguing. That it is declared as final
isn't a problem, because the subsequent code assigns a value to it once and only once. However, the variable should have been read so as to indicate the DIM aggregation level. I suspect that this part of the API was not well integrated with DIMGeneric
after this component was updated. This is definitely worth looking into.I made significant progress by shrinking the number VSCode reported issues / warnings (including the "intriguing" case of the depth
variable). The "fix" is simple: i removed all traces of Visual Studio Code, Java SDK and everything else that I believe is needed to develop Java apps on OSX. Then in reinstalled "all java parts" following the Getting Started with Java in VS Code. Lastly I cloned dev branch of Dicoogle and built Dicoogle as stated in Building Dicoogle
Tomorrow I hope to go through the Setup section
The build from source succeded:
[INFO]
[INFO] --- license-maven-plugin:2.4:check (default) @ dicoogle ---
[INFO] Checking licenses...
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ dicoogle ---
[INFO] Installing /Users/nikolajivancic/work/vetrad/PACS/dicoogle/dicoogle/target/dicoogle.jar to /Users/nikolajivancic/.m2/repository/pt/ua/ieeta/dicoogle/3.0.3-SNAPSHOT/dicoogle-3.0.3-SNAPSHOT.jar
[INFO] Installing /Users/nikolajivancic/work/vetrad/PACS/dicoogle/dicoogle/dependency-reduced-pom.xml to /Users/nikolajivancic/.m2/repository/pt/ua/ieeta/dicoogle/3.0.3-SNAPSHOT/dicoogle-3.0.3-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dicoogle-all 3.0.3-SNAPSHOT:
[INFO]
[INFO] dicoogle-all ....................................... SUCCESS [ 2.757 s]
[INFO] dicoogle-sdk ....................................... SUCCESS [ 3.209 s]
[INFO] dicoogle-sdk-ext ................................... SUCCESS [ 1.368 s]
[INFO] dicoogle ........................................... SUCCESS [ 17.656 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.083 s
[INFO] Finished at: 2021-07-07T19:02:41-04:00
[INFO] ------------------------------------------------------------------------
The Setup may need some additional information about Set up the Dicoogle Platform:
In particular, Installing plugins mentions lucene.jar
and filestorage.jar
plugins leaving the explanation of how to get these plugins. There is the download page on a different site, which has several variants of downloading data, so I am presuming that this is the way to get these two plugins. While I am waiting for these plugins, I suggest to improve the
Installing plugins by explicitly stating this.
Running mvn install
command does not result in the creation of lucene.jar
and filestorage.jar
plugins (as mentioned in the above paragraph), however it does result with two variants of dicoogle.jar
, significantly different in size (Can you explain that difference, please, and which one should I use)
In conclusion, I was unable to run Dicoogle, because I need lucene.jar
and filestorage.jar
plugins, which I hope to get by requesting them in [Download form])https://dicoogle.com/downloads/)
That is correct, the lucene and filestorage plugins are separate projects which can be downloaded from the official website, both binaries (as jars ready to be deployed) and source code. This is described a few sections earlier, in Obtain Dicoogle and Plugins, but perhaps we can remind the readers again at that point.
As the learning pack is also open-source, improvements to any of these pages can be suggested by clicking the pencil on top of each page (or through a typical Git/GitHub workflow). Your feedback is much appreciated!
As the learning pack is also open-source, improvements to any of these pages can be suggested by clicking the pencil on top (or through a typical Git/GitHub workflow)
Eduardo, I am well aware of that - and I am not yet sure that my understanding of Dicoogle is sufficient to do more than to warn about "rough patches". In my perception Dicoogle is a big project, the code is very well written but the team kept adding functionality (using the "metadata" maintained in their heads) without updating the global view of the whole beast.
I am a very big fan of Visual Studio Code and I am not sure whether anyone on your team uses this tool.
In my perception Dicoogle is a big project, the code is very well written but the team kept adding functionality (using the "metadata" maintained in their heads) without updating the global view of the whole beast.
Hi @adriatic. Thanks for contributing with feedback. I would like to have more hits about what you mean by "updating the global view of the whole beast". To be honest, I would say the opposite, we tried to focus on big picture, rahter than small components. So I'm truely interested to receive your opinion.
From my side, I used most of the times InteliJ or to build directly maven component/plugins directly in terminal.
Let us know if you have any problems running it and if you feel any lacks for particular use cases. Good luck!
Hello @bastiao
I would like to have more hits about what you mean by "updating the global view of the whole beast". To be honest, I would say the opposite, we tried to focus on big picture, rahter than small components. So I'm truely interested to receive your opinion.
My introduction to Dicoogle is very different from yours and that explains my completely different view of the Dicoogle. My interest was to create a PACS application (from (open) source, so I can intervene if something needs small adaptation) for a friend who is building a small vet practice. Once I read a bit through the architecture and code, I got excited about trying to get a Mac based PACS which keeps its data in the local cloud - NAS.
It's the lack of information for a "developer profile" (where I am interested in how to build this app - not how to use it) that slows me down. Regardless of whether your intent is to only "feed" the app users (not app developers), I would love to be able to augment your documentation by pointing out what I found as insufficient for my task.
In order to create such information I need to spent more time writing it as I want to do at least a decent job, which require a bit of thinking. So, give me some time, without forgetting why am I here 😄 .
For starters let me ask whether you care to have a centrally located document that discusses how to build the app (enumerating supported tools (IntelliJ, Visual Studio Code, Eclipse, etc, where I would offer to provide information on VSCode, expecting that other users can describe their preferred tools) I would start with Getting Started with Java in VS Code and add "Building Dicoogle on OSX specific remarks"
My open issue is with the dicoogle-plugins-sources-v3.0.0.zip
I received, where I expected a few README.md files that explains how to build the plugins from the (included) source as well as already built these plugins (.jar files)
The term centrally located document would address the current situation where pars of that information are "dispersed" amongst several sites (https://bioinformatics-ua.github.io/dicoogle-api/, https://bioinformatics-ua.github.io/dicoogle-learning-pack/ and https://github.com/bioinformatics-ua/dicoogle#readme.
Perhaps the simplest solution would be to rewrite this README.md so it is consistent with the information in the Learning Pack and to prevent the duplication of data make this README.md a summary of the Learning Pack and include the reference to Learning Pack
Great! Thanks for your feedback. We will keep trying to improve it, and hopefully, the community can also contribute with it.
The complete error message is
SearchServlet.java:[33,42] error: package jdk.nashorn.internal.ir.annotations does not exist
. This error is generated in the process of installing the Dicoogle PACS from the source code, callingmvn install
Note that this issue is reported whether I run
mvn install
or `mvn install -Dskip.installnodenpm -Dskip.npm' command.This failure results with
The resulting jar file can be found in "./dicoogle/target".
being false.Is there a workaround ?