-
Notifications
You must be signed in to change notification settings - Fork 0
Integration of VISIAN into DV #575
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
base: develop-annotation-service
Are you sure you want to change the base?
Integration of VISIAN into DV #575
Conversation
Co-authored-by: Richard Keil <[email protected]>
…m/HealthML/visian into 566-integration-of-visian-into-dv
Flipping for rois is also fixed now. Additionally I renamed methods and classes of DV to reflect the concepts of VISIAN (such as layers and annotation groups) that are named differently in DV. |
Hey @richartkeil @Alorcus, I took the opportunity to document the review strategy and review task abstract classes. This should have been done months ago when we initially implemented them, but only now I realized that due to the complexity of the import logic, this is necessary for future developers. During that process I noticed, that the intended behavior of the "strategy" is to handle the VISIAN concepts (layers, document, annotation groups, etc.) and that the "task" is usually only responsible for conversion to backend specific data formats and backend calling. It operates on generic types like files or metadata etc. For DV we handle it a bit differently, because the task directly operates on documents, layers etc. The code for DV is well readable, but I am wondering whether we should enforce this responsibility division? What do you think? @Alorcus could you elaborate on why the interface of |
Thank you for all the improvements! That makes a lot of parts much smoother! Regarding the division of ReviewStrategy and ReviewTask, this can definitely be separated. During the implementation, it was not clear to me where exactly the boundary between the two classes lies. Since, as you have now also helpfully added, there was no documentation about it. |
The update Annotation method should be called in order to store all the changes of one Annotation Group (remember, for MIA and the WHO an Annotation consists of multiple layers, which is called Annotation Group in Visian, because it groups the layers -> one could probably think of a more consistent naming here). Referencing the MIA and WHO strategy, such an annotation is uniquely identified by an ID, but may contain multiple layers (
For the WHO we store an intermediate task object that we update in this method. We do not send the changes to the backend yet in the So the rough workflow for export would look like this:
Please let me know if the current documentation is sufficient to understand that or which improvements the documentation could need. So the question now remains, how do we continue with this PR? Would you be able to implement some of the things mentioned before your holiday? I am unsure for two reasons:
|
As part of the goal of having VISIAN ready for a handover, we should focus on having a clean repo at the end. PRs that are still incomplete at the end - as we had at the beginning of the semester - are - as we also had to realize - more of a burden for subsequent teams than a gain. I therefore recommend leaving it at the current implementation. We now have a detailed description of the next steps for integration here in this PR. I can also refer to this in our report so that it is communicated transparently. |
This branch makes it possible to import, export and work with scans from the Discovery Viewer (DV) from Mt. Sinai in Visian.
Due to the lack of an API interface from DV, the import still has to be done manually. An example import file has been provided for this purpose (see _libs\utils\src\lib\backend\dv\importExample_schema.json). This branch implements a new strategy: DVReviewStrategy with associated DVReviewTask (comparable to the integration of the WHO). In addition, a number of objects are introduced which are required for successful import and export. Finally, smaller methods have also been added to Visian, but their scope is very limited and does not further change the functionality of Visian.
Please note:
As it is not yet possible to recognise whether the DV strategy should be active, the code must be adapted manually. To do this under libs\utils\src\lib\url-utils.ts isFromDV change return false to return true, so that the DV strategy is used and the demo json is automatically imported.