This extends the attribute operations API (dicom_core::ops) so that operation descriptors specify a full attribute selector instead of just a tag. This enables the consumer to specify any attribute at an arbitrary depth (even within nested data sets).
For example:
obj.apply(AttributeOp::new(
(
// navigate to Sequence of Ultrasound Regions
tags::SEQUENCE_OF_ULTRASOUND_REGIONS,
// enter the first item
0,
// select Region Spatial Format
Tag(0x0018, 0x6012)
),
AttributeAction::Remove),
)?;
Parsing from text is also supported:
let selector: AttributeSelector = StandardDataDictionary.parse_selector(
"SequenceOfUltrasoundRegions[0].(0018,6012)"
).unwrap();
Summary
add DataElement::items_mut and DataElements::fragments_mut
add AttributeSelector and AttributeSelectorStep
contains multiple conversions from Tag and tuples of interleaved tags and items, plus dynamic constructor new
replace tag in AttributeOp with new selector
adjust implementations of ApplyOp accordingly
add a method in DataDictionary for parsing attribute selectors in text form
This extends the attribute operations API (
dicom_core::ops
) so that operation descriptors specify a full attribute selector instead of just a tag. This enables the consumer to specify any attribute at an arbitrary depth (even within nested data sets).For example:
Parsing from text is also supported:
Summary
DataElement::items_mut
andDataElements::fragments_mut
AttributeSelector
andAttributeSelectorStep
Tag
and tuples of interleaved tags and items, plus dynamic constructornew
tag
inAttributeOp
with newselector
ApplyOp
accordinglyDataDictionary
for parsing attribute selectors in text formDataDictionary