Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions element.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ type Element struct {
RawValueRepresentation string `json:"rawVR"`
ValueLength uint32 `json:"valueLength"`
Value Value `json:"value"`
TagName string `json:"tagName"`
}

// Equals returns true if this Element equals the provided target Element,
Expand All @@ -44,13 +45,9 @@ func (e *Element) Equals(target *Element) bool {
}

func (e *Element) String() string {
var tagName string
if tagInfo, err := tag.Find(e.Tag); err == nil {
tagName = tagInfo.Keyword
}
return fmt.Sprintf("[\n Tag: %s\n Tag Name: %s\n VR: %s\n VR Raw: %s\n VL: %d\n Value: %s\n]\n\n",
e.Tag.String(),
tagName,
e.TagName,
e.ValueRepresentation.String(),
e.RawValueRepresentation,
e.ValueLength,
Expand Down Expand Up @@ -161,6 +158,7 @@ func NewElement(t tag.Tag, data any) (*Element, error) {
ValueRepresentation: tag.GetVRKind(t, rawVR),
RawValueRepresentation: rawVR,
Value: value,
TagName: tagInfo.Name,
}, nil
}

Expand All @@ -178,8 +176,14 @@ func mustNewPrivateElement(t tag.Tag, rawVR string, data any) *Element {
log.Panic(fmt.Errorf("error creating value: %w", err))
}

var tagName string
if tagInfo, err := tag.Find(t); err == nil {
tagName = tagInfo.Name
}

return &Element{
Tag: t,
TagName: tagName,
ValueRepresentation: tag.GetVRKind(t, rawVR),
RawValueRepresentation: rawVR,
ValueLength: 0,
Expand Down
10 changes: 9 additions & 1 deletion read.go
Original file line number Diff line number Diff line change
Expand Up @@ -861,7 +861,15 @@ func (r *reader) readElement(d *Dataset, fc chan<- *frame.Frame) (*Element, erro
return nil, fmt.Errorf("readElement: error when reading value for element %v: %w", t, err)
}

return &Element{Tag: *t, ValueRepresentation: tag.GetVRKind(*t, vr), RawValueRepresentation: vr, ValueLength: vl, Value: val}, nil
info, err := tag.Find(*t)
var tagName string
if err != nil {
tagName = "Unknown"
} else {
tagName = info.Name
}

return &Element{Tag: *t, TagName: tagName, ValueRepresentation: tag.GetVRKind(*t, vr), RawValueRepresentation: vr, ValueLength: vl, Value: val}, nil
}

// Read an Item object as raw bytes, useful when parsing encapsulated PixelData.
Expand Down