-
Notifications
You must be signed in to change notification settings - Fork 52
Added DICOM text SR assets and updated all operator test functions. #201
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
Conversation
47b688f
to
cb14410
Compare
Signed-off-by: mmelqin <[email protected]>
313cacf
to
1f2fa41
Compare
Signed-off-by: mmelqin <[email protected]>
963ace4
to
505796f
Compare
Signed-off-by: mmelqin <[email protected]>
Signed-off-by: mmelqin <[email protected]>
… and is handled. Signed-off-by: mmelqin <[email protected]>
51c1a84
to
810f632
Compare
Signed-off-by: mmelqin <[email protected]>
Signed-off-by: mmelqin <[email protected]>
Signed-off-by: mmelqin <[email protected]>
All checks, except the code coverage one, succeeded. Code coverage is allow to show failure, but both functional and integration testing was performed and succeeded.
So the PR is ready to be merged. |
Signed-off-by: mmelqin <[email protected]>
Signed-off-by: mmelqin <[email protected]>
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.
Thank you Ming!
Looks good to me!
examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py
Outdated
Show resolved
Hide resolved
Signed-off-by: mmelqin <[email protected]>
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.
Thanks Ming!
On top of it, the following change would be needed before releasing.
--- a/docs/source/release_notes/index.md
+++ b/docs/source/release_notes/index.md
@@ -6,6 +6,14 @@
+## Version 0.2
+
+```{toctree}
+:maxdepth: 1
+
+v0.2.0
+```
+
## Version 0.1
docs/source/release_notes/v0.2.0.md
Outdated
### Series Selection Operator | ||
This is to support the use case where whole DICOM studies are used as input to an AI inference application even though only specific series are applicable. | ||
|
||
The selection rules are defined in JSON, allowing multiple selections, each with a set of matching conditions. The rules processing engine is implemented in the `DICOMSeriesSelectorOperator`, which itself is regarded as a base class with default implementation. More advanced rules and processing engine can be implemented in derived classes. |
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.
The selection rules are defined in JSON, allowing multiple selections, each with a set of matching conditions. The rules processing engine is implemented in the `DICOMSeriesSelectorOperator`, which itself is regarded as a base class with default implementation. More advanced rules and processing engine can be implemented in derived classes. | |
The selection rules are defined in JSON, allowing multiple selections, each with a set of matching conditions. The rules processing engine is implemented in the `DICOMSeriesSelectorOperator`, which itself is regarded as a base class with the default implementation. More advanced rules and processing engines can be implemented in derived classes. |
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.
It was meant to say "rules processing engine"
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.
One second thought, rules can be redefined too, if the base class is not used for the new definition of rules.
docs/source/release_notes/v0.2.0.md
Outdated
Multiple instances of the series selection operators, each having its own rules, can be chained in a MONAI Deploy application. In part this is made possible by the new App SDK Domain classes which encapsulate the selected series in a DICOM study, and are used as the output of each series selection operator. | ||
|
||
### DICOM Comprehensive Structured Report Writer | ||
This is introduced to support generating DICOM SR SOP instances for AI classification result, and as such, the DICOM SR writer is limited to support textual results. |
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.
This is introduced to support generating DICOM SR SOP instances for AI classification result, and as such, the DICOM SR writer is limited to support textual results. | |
This is introduced to support generating DICOM SR SOP instances for the AI classification result, and as such, the DICOM SR writer is limited to support textual results. |
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.
changed result to results.
docs/source/release_notes/v0.2.0.md
Outdated
This is introduced to support generating DICOM SR SOP instances for AI classification result, and as such, the DICOM SR writer is limited to support textual results. | ||
|
||
The DICOM SR writer is implemented in `DICOMTextSRWriterOperator`, it | ||
- loads AI result from in-memory object as well as from file path, with memory taking precedence |
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.
- loads AI result from in-memory object as well as from file path, with memory taking precedence | |
- loads the AI result from the in-memory object as well as from file path, with memory taking precedence |
docs/source/release_notes/v0.2.0.md
Outdated
The DICOM SR writer is implemented in `DICOMTextSRWriterOperator`, it | ||
- loads AI result from in-memory object as well as from file path, with memory taking precedence | ||
- copies applicable DICOM tags from the original DICOM series used as input for the inference application, as well as generating tags anew when there is no DICOM series provided. | ||
- supports assigning DICOM tags via a dictionary with DICOM keywords and value, so that an application can customize the tags in the DICOM SR instance |
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.
- supports assigning DICOM tags via a dictionary with DICOM keywords and value, so that an application can customize the tags in the DICOM SR instance | |
- supports assigning DICOM tags via a dictionary with DICOM keywords and values, so that an application can customize the tags in the DICOM SR instance |
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.
value to their respective values, just to be specific.
docs/source/release_notes/v0.2.0.md
Outdated
### Updated example applications | ||
- [The AI Spleen Segmentation](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps/ai_spleen_seg_app) application updated to demonstrate the use of series selection rules | ||
- [The MedNIST Classifier application](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps/mednist_classifier_monaideploy) updated to demonstrate the use of DCIOM SR writing (without initial DICOM input) | ||
- Updated are the main functions of the built-in [operators](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/monai/deploy/operators), which serve as examples on parsing the output objects |
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.
- Updated are the main functions of the built-in [operators](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/monai/deploy/operators), which serve as examples on parsing the output objects | |
- Updated are the main functions of the built-in [operators](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/monai/deploy/operators), which serve as examples of parsing the output objects |
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.
changed to examples on how to parse
, wanted to emphasize the how
, as the Domain classes are getting more complex now, mingled with native classes from underlying packages.
Signed-off-by: mmelqin <[email protected]>
…201) * Added DICOM text SR assets and updated all operator test functions. Signed-off-by: mmelqin <[email protected]> * Correcr style checker errors. Signed-off-by: mmelqin <[email protected]> * More style checker fix Signed-off-by: mmelqin <[email protected]> * More style checker fix to add Union[<type>, None] Signed-off-by: mmelqin <[email protected]> * Why the checker is so dumb, None for the typed object should be fine, and is handled. Signed-off-by: mmelqin <[email protected]> * Correct SR class name Signed-off-by: mmelqin <[email protected]> * Integrated DICOM SR Writer Operator to MedNIST classifier example Signed-off-by: mmelqin <[email protected]> * Correct typos in the comments Signed-off-by: mmelqin <[email protected]> * Add release note Signed-off-by: mmelqin <[email protected]> * Added updates to notebooks and fixed issues. Signed-off-by: mmelqin <[email protected]> * Cleaned up comment lines per review comments Signed-off-by: mmelqin <[email protected]> * Updated release_notes index.md, as well as release note itself Signed-off-by: mmelqin <[email protected]>
This PR intends to add the DICOM text SR related assets as well as updating operator test functions,