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

Add domain model #71

Merged
merged 5 commits into from
Aug 17, 2024
Merged

Add domain model #71

merged 5 commits into from
Aug 17, 2024

Conversation

sjswerdloff
Copy link
Owner

@sjswerdloff sjswerdloff commented Aug 17, 2024

While pydicom provides a great generic model for DICOM datasets, I find it more convenient to work with a domain model that represents the IODs and Sequences. This allows one to take advantage of property based code completion (a.k.a. "Intellisense").
The IODs and sequences were created using code generation based on the json files that the innolitics DICOM project creates

https://github.com/innolitics/dicom-standard/tree/master/standard

With some manual post processing to eliminate duplicates.
There are still some aspects that need to be tidied up where the same sequence contains different elements in different IODs or just in different parent sequences.
The code generator for the domain model will be placed in a separate project/repo

The domain model was used to model the RT Ion Plan and RT Ion Beams Treatment Records IODs to assist in synthesising "perfectly delivered" treatment records from a plan. Those treatment records are intended to be used in the TDW-II workflow as one of the final steps (Store Treatment Delivery Results to OST [RO-63]).

initially generated by Claude 3.5 Sonnet, but significant corrections required and will still be required
this is just to get it set in a branch so I can get back to other work
domain models for all known IODs and Sequences in DICOM 2024, generated based on innolitics standard/*.json files
@sjswerdloff sjswerdloff self-assigned this Aug 17, 2024
@sjswerdloff sjswerdloff merged commit 3542b78 into main Aug 17, 2024
3 checks passed
@sjswerdloff
Copy link
Owner Author

Claude generated classes didn't work. I wrote my own code generator and overwrote what I got from Claude. Although I did use Claude to help me tweak the specific code content (vs. constructing the object tree and visiting it, which was based on AnyTree and the innolitics/dicom-standard json files).

@sjswerdloff sjswerdloff deleted the add_domain_model branch August 17, 2024 11:36
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