-
Notifications
You must be signed in to change notification settings - Fork 133
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
Machine learning provider interface #631
base: dev
Are you sure you want to change the base?
Machine learning provider interface #631
Conversation
e61b751
to
4480519
Compare
Please resolve the conflicts in this PR. As we previously discussed, we have reached a significant milestone, and it is now appropriate to review the API definition and proceed with merging this pull request. |
Note: dim-providers must be configured in server.xml, otherwise the server fails to launch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just leaving some notes for now.
dicoogle/src/main/java/pt/ua/dicoogle/core/mlprovider/DatastoreRequest.java
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/core/mlprovider/DatastoreRequest.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/core/mlprovider/DatastoreRequest.java
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/core/mlprovider/PrepareDatastoreTask.java
Outdated
Show resolved
Hide resolved
438808b
to
ea37d05
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went through the code as an initial review iteration. Please look into the comments inline.
sdk/src/main/java/pt/ua/dicoogle/sdk/mlprovider/ML_DATA_TYPE.java
Outdated
Show resolved
Hide resolved
sdk/src/main/java/pt/ua/dicoogle/sdk/mlprovider/MLProviderInterface.java
Outdated
Show resolved
Hide resolved
sdk/src/main/java/pt/ua/dicoogle/sdk/mlprovider/MLProviderInterface.java
Outdated
Show resolved
Hide resolved
sdk/src/main/java/pt/ua/dicoogle/sdk/mlprovider/MLProviderInterface.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/server/web/servlets/mlprovider/TrainServlet.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/server/web/servlets/mlprovider/TrainServlet.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/server/web/servlets/mlprovider/TrainServlet.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/server/web/servlets/mlprovider/TrainServlet.java
Outdated
Show resolved
Hide resolved
dicoogle/src/main/java/pt/ua/dicoogle/core/settings/part/ArchiveImpl.java
Outdated
Show resolved
Hide resolved
Looks good! And of course, it works as we have been using with it internally. I will keep diving on the API to hopefully merge this one soon. |
I'm open to any name change, on any of the data objects or even the interface. I'm not sure how this could be accomplished directly from viewer applications, but maybe for third party services that can compute tabular data it could be useful. But I do not have any plans to implement it soon. |
cb0e99d
to
89524c3
Compare
… receive a model id.
…Dataset signature to dataStore. Added new server setting to enable WSI operation. Some code adjustments.
… return DICOM Seg files.
…with DICOM codes. Several code improvements.
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
…agnification level.
1eaaab2
to
14470f6
Compare
Summary
This is a work in progress to implement a new interface for image analysis providers in Dicoogle.
The endgoal is to provide a standard interface, compatible with DICOM to manage image analysis providers and algorithms. This is particularly important in Pathology, given the heterogeneity in the field. Another important consideration with this interface is the possibility to integrate services like Google AI, that exposes AutoML interfaces, allowing users with little IT knowledge to develop their own inference models.
Here is a draft of the intended architecture:
The basic idea is to provide a standard interface that developers can use to implement image analysis providers. These providers should allow the creation and management of inference models, i.e, creation of labels, labelled datasets, and inference requests.
All the methods from the providers are exposed via servlets located in Dicoogle core. The API definitions took inspiration from MONAI and the DICOM Standards for image segmentation and overlays.
This PR should be seen as the initial step in supporting AI integrations in Dicoogle. It currently implements the following endpoints/functionalities:
Additionally, the following miscellaneous features were implemented:
Future Work
Tasks to be implemented in this PR
Resources
Test plan