-
Notifications
You must be signed in to change notification settings - Fork 82
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
New UID constants + SOP class dictionary #372
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Enet4
added
breaking change
Hint that this may require a major version bump on release
C-dictionary
Crate: dictionary-std
C-core
Crate: dicom-core
C-dictionary-builder
Crate: dicom-dictionary-builder
labels
Jun 19, 2023
- rename DictionaryEntry to pertain more about data element - update stub dictionary module - [dictionary-builder] adjust generated Rust code output accordingly - [dictionary-std] move impl to data_element module - [dictionary-std] only expose StandardDictionaryRegistry and StandardDataDictionary in crate root - [dictionary-std] update tags module according to changes
- not necessarily a primitive data element
- move to devtools directory - move data element dictionary generation to `data-elements` (tags as alias) - update documentation accordingly
- move data element (tag) type definitions to `dictionary::data_element` - add `dictionary::uid` and respective types
- add better module-level documentation - split UIDs by types into different array declarations
- add Cargo features for run-time entries - add uids module - also update tags - add module-level documentation to `data_element` nad `sop`
- allow dead code in some parts (since with feature gating they might be unused)
- allow dead code and unused imports in some parts (since with feature gating they might be unused)
- [core] declare and export trait UidDictionary - move test data_element::constants_available to root - add test uids_constants_available - reimplement SOP class dictionary indexing through an `index_all` method - implement SOP class dictionary proper - add tests for SOP class dictionary
- remove redundant (RETIRED)
- deprecate retired UIDs
…ds module [dictionary-std] and fix uids module in crate accordingly
- add Cargo feature sop-class, enabled by default - if available, look up standard SOP class dictionary and show name in meta dump
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
breaking change
Hint that this may require a major version bump on release
C-core
Crate: dicom-core
C-dictionary
Crate: dictionary-std
C-dictionary-builder
Crate: dicom-dictionary-builder
C-dump
Crate: dicom-dump
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This preliminary set of major changes enable the core and standard dictionary components to harbor new kinds of DICOM dictionaries, namely those which involve recognized DICOM unique identifiers.
Summary
devtools
foldertags
subcommand is equivalent to the previous version: produces a module of DICOM tags from the DCMTK DICOM dictionary.uid
subcommand collects UID records from part 6 of the standard (in XML) and writes them as Rust code constants and in-memory static entries. Whether to include the static slices is gated on Cargo features, so that they do not incur a size cost when they are not used.DictionaryEntry
and a few other types to include theData
part, so that they are not mistaken with other dictionariesdictionary
module for describing data element dictionary types indata_element
and UID dictionary types inuid
sop-class
Cargo feature is enabledsop-class
Cargo feature is enabled.Open concerns
dicom_dictionary_std::uids
.Known caveats
dicom-dictionary-builder uid
without the first argument will currently not work because the server hosting the standard (dicom.nema.org) is using outdated TLS protocols, and Rustls will not accept negotiating with it directly. The workaround is to download part06.xml separately and pass it along.